/* Focused usability refinements to the approved design. */
[hidden] {
  display:none!important}
html {
  scroll-padding-top:90px}
.topbar {
  min-height:78px;
  transition:background-color .18s ease}
.topbar.is-scrolled {
  background:var(--ink);
  background-image:none;
  border-bottom:1px solid #faf7f224}
.topbar nav a {
  min-width:44px;
  min-height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center}
.refine-menu-trigger {
  display:none}
.topbar>a img {
  max-width:none}
.arrival-details {
  margin:0 6vw 72px;
  padding:32px 0;
  border-top:1px solid #120e02a3;
  border-bottom:1px solid #120e02a3;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8vw;
  color:var(--ink);
  max-width:1300px}
.arrival-details h2 {
  font:900 clamp(26px,3vw,42px)/1.1 var(--display-c);
  margin:0 0 16px}
.arrival-details p,.arrival-address {
  font:400 17px/1.55 var(--body);
  display:block;
  max-width:360px}
.arrival-details p.arrival-ages {
  font-size:14px;
  margin-top:10px;
  color:#5d524c}
.arrival-link {
  display:inline-flex;
  align-items:center;
  gap:22px;
  min-height:48px;
  font:600 14px var(--body);
  border-bottom:1px solid currentColor;
  margin-top:8px}
.arrival-link:hover {
  color:var(--accent-deep)}
.rsvp-done:focus {
  outline:2px solid var(--accent-bright);
  outline-offset:12px}
.rsvp-form input:not([name=website]),.rsvp-form select {
  min-height:48px}
.wall-pause {
  position:absolute;
  right:6vw;
  top:calc(100svh - 75px);
  z-index:6;
  min-height:44px;
  padding:10px 16px;
  background:#120e0ed9;
  color:var(--paper);
  border:1px solid #faf7f24d;
  border-radius:3px;
  font:500 12px var(--body);
  cursor:pointer}
.wall-pause:hover {
  background:var(--ink)}
.photos-paused .reeltrack {
  animation-play-state:paused!important}
.sheet-overlay {
  position:fixed;
  inset:0;
  z-index:99;
  background:#120e0eaa;
  backdrop-filter:blur(4px)}
.sheet-content {
  position:fixed;
  inset:0 0 0 auto;
  z-index:100;
  background:var(--ink);
  color:var(--paper);
  width:min(440px,100%);
  padding:70px 28px 36px;
  overflow-y:auto;
  overscroll-behavior:contain;
  box-shadow:-20px 0 80px #0005}
.sheet-close {
  position:absolute;
  right:18px;
  top:18px;
  width:48px;
  height:48px;
  border-radius:50%;
  background:#faf7f218;
  color:var(--paper);
  border:0;
  display:grid;
  place-items:center;
  cursor:pointer}
.sheet-close:hover {
  background:#faf7f22b}
.approved-menu-title {
  font:900 44px/1 var(--display-c);
  margin:0}
.approved-menu-description {
  font:400 14px/1.5 var(--body);
  color:var(--paper-dim);
  margin-top:8px}
.approved-menu nav {
  display:grid;
  margin:35px 0}
.approved-menu nav a {
  font:900 30px/1.1 var(--display-c);
  padding:20px 0;
  min-height:65px;
  border-bottom:1px solid #faf7f22b}
.approved-menu nav a:hover {
  color:var(--accent-bright)}
.approved-menu-details {
  font:400 14px/1.6 var(--body);
  display:grid;
  gap:9px}
.approved-menu-details p {
  display:flex;
  justify-content:space-between;
  gap:20px}
.approved-menu-details>a {
  margin-top:12px;
  display:inline-block;
  min-height:44px}
.approved-menu-text {
  display:inline-flex;
  align-items:center;
  min-height:48px;
  border-bottom:1px solid currentColor;
  margin-top:20px;
  font:500 14px var(--body)}
button:focus-visible,a:focus-visible {
  outline:3px solid var(--accent-bright);
  outline-offset:5px}
.sheet-content {
  padding-bottom:max(36px,env(safe-area-inset-bottom))}
.topbar {
  padding-left:max(6vw,env(safe-area-inset-left));
  padding-right:max(6vw,env(safe-area-inset-right))}

@media(max-width:860px) {
  .topbar {
  min-height:70px;
  padding-top:8px;
  padding-bottom:8px;
  background:var(--ink)}
.has-refinements .topbar nav {
  display:none}
.topbar>a img {
  height:36px}
.has-refinements .refine-menu-trigger {
  display:inline-flex;
  align-items:center;
  gap:12px;
  padding:12px 0 12px 16px;
  min-height:48px;
  background:none;
  color:var(--paper);
  font:500 15px var(--body);
  border:0;
  cursor:pointer}
.refine-menu-trigger span {
  font:400 22px var(--body)}
.arrival-details {
  grid-template-columns:1fr;
  margin:0 6vw 52px;
  padding:28px 0;
  gap:30px}
.arrival-details h2 {
  font-size:30px}
.arrival-details p,.arrival-address {
  font-size:16px}
.findus {
  height:auto;
  padding-top:0;
  overflow:hidden}
.findus #findus3d {
  position:relative;
  height:370px;
  inset:auto}
.findus-copy {
  position:relative;
  inset:auto;
  padding:0 6vw 44px;
  max-width:none;
  background:var(--ink);
  z-index:4}
.findus-copy h2 {
  font-size:clamp(35px,9vw,56px);
  max-width:14ch}
.findus::after {
  display:none}
.findus::before {
  height:80px}
.findus-addr {
  font:400 16px/1.6 var(--body);
  letter-spacing:0;
  text-transform:none}
.wall-pause {
  top:calc(100svh - 58px);
  right:6vw;
  min-height:44px;
  font-size:11px;
  padding:8px 12px}
.btn {
  min-height:48px}
footer nav a {
  display:inline-flex;
  align-items:center;
  min-height:44px}
.factstrip span {
  font-size:12px}
}

@media(prefers-reduced-motion:reduce) {
  .wall-pause {
  display:none}
.topbar {
  transition:none}
}

.arrival-details {
  color:var(--paper);
  border-color:var(--hair)}
.arrival-details p.arrival-ages {
  color:var(--paper-dim)}
.arrival-link:hover {
  color:var(--accent-bright)}


/* Native modal dialog preserves keyboard focus and background inertness. */
.sheet-content {
  height:100dvh;
  max-height:none;
  max-width:none;
  margin:0 0 0 auto;
  border:0;
  inset:0 0 0 auto}

.sheet-content::backdrop {
  background:#120e0eaa;
  backdrop-filter:blur(4px)}

html.menu-open {
  overflow:hidden}

.approved-menu nav a[aria-current="page"] {
  color:var(--accent-bright)}

.arrival-address {
  min-height:48px}

.rsvp-form :is(input,select,textarea):focus-visible {
  outline:3px solid var(--accent-bright);
  outline-offset:4px}

.rsvp-fail:focus {
  outline:2px solid var(--accent-bright);
  outline-offset:12px}

