:root {
  --ivory: #f7f4ed;
  --ink: #151713;
  --muted: rgba(247, 244, 237, .72);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: #11130f;
  color: var(--ivory);
  font-family: "Avenir Next", "Helvetica Neue", Arial, sans-serif;
}

.hero {
  position: relative;
  min-height: 100svh;
  overflow: hidden;
  isolation: isolate;
  background: #161914;
}

.hero__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  z-index: -4;
  filter: brightness(.74) saturate(.88) contrast(1.04);
  transform: scale(1.01);
}

.hero__shade {
  position: absolute;
  inset: 0;
  z-index: -3;
  background:
    linear-gradient(to bottom, rgba(8,10,8,.34) 0%, rgba(8,10,8,.06) 27%, rgba(8,10,8,.06) 66%, rgba(8,10,8,.34) 100%);
}

.hero__vignette {
  position: absolute;
  inset: 0;
  z-index: -2;
  pointer-events: none;
  background: radial-gradient(ellipse at center, transparent 42%, rgba(5,7,5,.08) 62%, rgba(5,7,5,.55) 100%);
}

.site-header {
  position: relative;
  min-height: 118px;
  display: grid;
  grid-template-columns: 96px 1fr 96px;
  align-items: center;
  gap: 18px;
  padding: 14px 26px 0;
}

.back-button {
  grid-column: 1;
  justify-self: start;
  width: 72px;
  height: 72px;
  border-radius: 24px;
  background: rgba(255,255,255,.94);
  display: grid;
  place-items: center;
  text-decoration: none;
  box-shadow: 0 10px 35px rgba(0,0,0,.08);
  backdrop-filter: blur(10px);
}

.back-button span {
  width: 30px;
  height: 30px;
  border-left: 3px solid #111;
  border-bottom: 3px solid #111;
  transform: rotate(45deg) translate(5px,-5px);
}


.nav {
  grid-column: 2;
  grid-row: 1;
  width: min(1040px, 76vw);
  justify-self: center;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(18px, 3vw, 52px);
  padding: 0 clamp(80px, 9vw, 150px);
  pointer-events: none;
}

.nav a {
  pointer-events: auto;
  color: rgba(255,255,255,.92);
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: .28em;
  font-size: 12px;
  font-weight: 500;
  white-space: nowrap;
  text-shadow: 0 2px 12px rgba(0,0,0,.22);
  transition: opacity .25s ease, transform .25s ease;
}

.nav a:hover { opacity: .7; transform: translateY(-1px); }

.sound-toggle {
  grid-column: 5;
  justify-self: end;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.36);
  background: rgba(0,0,0,.14);
  color: #fff;
  backdrop-filter: blur(10px);
  display: grid;
  place-items: center;
  cursor: pointer;
}

.sound-toggle__icon {
  width: 18px;
  height: 14px;
  position: relative;
}

.sound-toggle__icon::before,
.sound-toggle__icon::after {
  content: "";
  position: absolute;
  bottom: 0;
  width: 2px;
  border-radius: 999px;
  background: currentColor;
  animation: pulse 1s ease-in-out infinite alternate;
}
.sound-toggle__icon::before { left: 4px; height: 8px; }
.sound-toggle__icon::after { right: 4px; height: 14px; animation-delay: .2s; }
.sound-toggle[aria-pressed="false"] .sound-toggle__icon::before,
.sound-toggle[aria-pressed="false"] .sound-toggle__icon::after { animation-play-state: paused; height: 2px; }
.sound-toggle__label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
@keyframes pulse { to { height: 4px; } }

.hero__bottom {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 26px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: end;
  gap: 24px;
  padding: 0 34px;
  text-transform: uppercase;
  letter-spacing: .25em;
  font-size: 10px;
  color: rgba(255,255,255,.7);
}
.place-mark { justify-self: end; }
.scroll-cue { width: 1px; height: 48px; background: rgba(255,255,255,.25); overflow: hidden; }
.scroll-cue span { display: block; width: 1px; height: 22px; background: #fff; animation: scrollLine 1.8s ease-in-out infinite; }
@keyframes scrollLine { 0% { transform: translateY(-24px); } 70%,100% { transform: translateY(52px); } }

.details {
  min-height: 78vh;
  display: grid;
  align-content: center;
  justify-items: center;
  text-align: center;
  padding: 96px 22px;
  background: #f1eee6;
  color: #24261f;
  border-bottom: 1px solid rgba(30,32,27,.1);
}
.details:nth-of-type(even) { background: #e9e6dd; }
.details .eyebrow { margin: 0 0 20px; text-transform: uppercase; letter-spacing: .28em; font-size: 11px; opacity: .58; }
.details h1, .details h2 {
  margin: 0;
  font-family: "Bodoni 72", Didot, "Times New Roman", serif;
  font-weight: 400;
  font-size: clamp(54px, 8vw, 112px);
  line-height: .95;
}
.details p:not(.eyebrow) { max-width: 560px; line-height: 1.8; font-size: 16px; opacity: .68; }

.audio-permission {
  position: fixed;
  inset: 0;
  z-index: 50;
  display: grid;
  place-items: center;
  background: rgba(8,10,8,.18);
  backdrop-filter: blur(3px);
  opacity: 0;
  pointer-events: none;
  transition: opacity .35s ease;
}
.audio-permission.is-visible { opacity: 1; pointer-events: auto; }
.audio-permission__button {
  border: 1px solid rgba(255,255,255,.34);
  background: rgba(20,22,18,.52);
  color: #fff;
  border-radius: 999px;
  padding: 18px 28px 16px;
  min-width: 190px;
  backdrop-filter: blur(14px);
  cursor: pointer;
  font: inherit;
  letter-spacing: .14em;
  text-transform: uppercase;
}
.audio-permission__button span { display: block; font-size: 11px; }
.audio-permission__button small { display: block; margin-top: 5px; opacity: .55; font-size: 9px; letter-spacing: .16em; }

@media (max-width: 1050px) {
  .site-header { grid-template-columns: 82px 1fr 82px; min-height: 104px; }
  .back-button { width: 62px; height: 62px; border-radius: 20px; }
  .sound-toggle { grid-column: 3; grid-row: 1; }
  .nav {
    position: absolute;
    top: 94px;
    left: 0;
    right: 0;
    width: 100%;
    padding: 0 24px;
    justify-content: center;
    gap: 24px;
    flex-wrap: wrap;
  }
  .nav a { font-size: 10px; }
}

@media (max-width: 680px) {
  .site-header { padding: 12px 14px 0; grid-template-columns: 64px 1fr 64px; }
  .back-button { width: 52px; height: 52px; border-radius: 18px; }
  .back-button span { width: 22px; height: 22px; border-width: 2px; }
  .sound-toggle { width: 42px; height: 42px; }
  .nav {
    top: 78px;
    justify-content: flex-start;
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
    padding: 12px 18px;
    mask-image: linear-gradient(to right, transparent, #000 18px, #000 calc(100% - 18px), transparent);
  }
  .nav::-webkit-scrollbar { display: none; }
  .nav a { font-size: 9px; letter-spacing: .22em; }
  .hero__bottom { padding: 0 18px; font-size: 8px; letter-spacing: .18em; }
}

/* ADDITIONS ONLY — all original CSS above is unchanged. */
.video-chapter {position:relative;height:100svh;min-height:540px;background:#11130f;overflow:hidden;}
.video-chapter__video {display:block;width:100%;height:100%;object-fit:cover;object-position:center;}
.video-chapter__scroll {position:absolute;bottom:27px;left:50%;width:1px;height:48px;background:rgba(255,255,255,.3);overflow:hidden;}
.video-chapter__scroll span {display:block;width:1px;height:22px;background:#fff;animation:scrollLine 1.8s ease-in-out infinite;}
.details .detail-copy {display:inline;}
.details p:not(.eyebrow){max-width:800px;}
.wedding-rsvp {display:grid;gap:14px;width:min(540px,100%);text-align:left;margin-top:20px;}
.wedding-rsvp label{display:grid;gap:7px;font-size:12px;letter-spacing:.07em;}
.wedding-rsvp textarea,.wedding-rsvp select{font:inherit;padding:13px;border:1px solid #c6c2b9;background:#fff;color:#252620;border-radius:2px;}
.wedding-rsvp button{padding:13px 20px;background:#252620;color:#fff;border:0;cursor:pointer;letter-spacing:.12em;text-transform:uppercase;font-size:11px;}
.wedding-rsvp .rsvp-note{font-size:12px;line-height:1.5;opacity:.68;text-align:left;}
.rsvp-result pre{white-space:pre-wrap;word-break:break-word;font-size:12px;background:#fff;padding:16px;line-height:1.8;}
.wedding-faq{max-width:740px;text-align:left;}
.wedding-faq p{max-width:740px!important;}

/* Text-content treatment only. Hero, videos, original transitions and scroll remain unchanged. */
.pdf-section__content{width:min(820px,100%);margin-top:42px;display:grid;gap:18px;text-align:left}
.pdf-card{display:flex;align-items:flex-start;gap:18px;padding:20px 22px;border:1px solid rgba(30,32,27,.12);background:rgba(255,255,255,.19);border-radius:3px}
.pdf-card__content{flex:1;min-width:0}
.pdf-card h3{margin:0 0 9px;font:500 17px/1.5 'Avenir Next','Helvetica Neue',Arial,sans-serif;letter-spacing:.02em}
.pdf-card .pdf-copy{margin:0;max-width:none!important;font-size:15px!important;line-height:1.85!important;opacity:.83!important}
.pdf-card .pdf-icon{flex:none;min-width:22px;margin-top:2px;font-size:19px;color:#8b795b;text-align:center}
.pdf-coming{font-family:'Bodoni 72',Didot,serif;font-size:32px!important;text-align:center;max-width:none!important}
.nav{gap:clamp(10px,1.5vw,28px);padding:0 clamp(8px,3vw,50px);width:min(1150px,82vw)}
.nav a{letter-spacing:.17em;font-size:10px}
@media(max-width:1050px){.nav{width:100%;padding:0 18px;gap:16px}.nav a{font-size:9px}}
@media(max-width:680px){.nav{width:100%;justify-content:flex-start;flex-wrap:nowrap;gap:22px;padding:12px 18px}.pdf-card{padding:16px 14px;gap:10px}.pdf-section__content{margin-top:32px}}

/* Entrance: centered, minimal sound activation; site layout and scrolling unchanged. */
.audio-permission{background:rgba(8,10,8,.32);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}
.audio-permission__button{min-width:min(300px,82vw);padding:34px 40px 32px;border:1px solid rgba(247,244,237,.42);border-radius:2px;background:rgba(18,22,18,.53);box-shadow:0 12px 60px rgba(0,0,0,.15);transition:background .25s ease,border-color .25s ease,transform .25s ease}
.audio-permission__button:hover{background:rgba(18,22,18,.7);border-color:rgba(247,244,237,.8);transform:translateY(-2px)}
.audio-permission__symbol{font-size:29px!important;line-height:1.3;letter-spacing:0!important;margin-bottom:18px;font-family:Georgia,serif;opacity:.9}
.audio-permission__title{font-family:'Bodoni 72',Didot,'Times New Roman',serif;font-size:24px!important;font-weight:400;letter-spacing:.1em!important;text-transform:none}
.audio-permission__button small{margin-top:12px;letter-spacing:.21em;font-size:9px;opacity:.77}
@media(max-width:680px){.audio-permission__button{min-width:min(290px,85vw);padding:29px 25px}}


/* 2026 refresh: editorial content, no text boxes. */
.site-header{grid-template-columns:58px minmax(0,1fr) 58px;gap:12px;padding:18px 24px 0}
.nav{grid-column:2;grid-row:1;width:100%;max-width:1240px;padding:0 8px;display:flex;flex-wrap:wrap;justify-content:center;gap:13px clamp(12px,1.75vw,28px);pointer-events:auto}
.nav a{font-size:clamp(8px,.73vw,11px);letter-spacing:.11em;line-height:1.5}
.sound-toggle{grid-column:3;grid-row:1}
.details {min-height:initial;padding:clamp(74px,10vw,132px) 24px;scroll-margin-top:0}
.details h1,.details h2{font-size:clamp(54px,8vw,96px);letter-spacing:-.025em}
.pdf-section__content{width:min(800px,100%);margin-top:52px;display:block;text-align:left}
.pdf-card{display:flex;align-items:baseline;gap:18px;padding:13px 0;border:0;border-radius:0;background:transparent}
.pdf-card__content{flex:1;min-width:0}
.pdf-card .pdf-copy{font-size:clamp(15px,1.45vw,17px)!important;line-height:1.9!important;opacity:.86!important}
.pdf-card .pdf-icon{flex:0 0 26px;min-width:26px;font-size:22px;text-align:center;color:#9b6f67;font-weight:400}
.pdf-card:not(:has(> .pdf-icon)){padding-left:44px}
#travel .pdf-card:not(:has(> .pdf-icon)){padding-left:44px}
#travel .pdf-card:has(> .pdf-icon) .pdf-icon{font-size:20px}
#travel .pdf-card:has(> .pdf-icon):has(.pdf-copy) {align-items:baseline}
.pdf-coming{font-style:italic;font-size:clamp(28px,5vw,39px)!important}
.pdf-section__content em{font-family:Georgia,'Times New Roman',serif;font-style:italic}

/* FAQ accordion: no card outlines or rectangular boxes. */
.faq-section{background:#e9e6dd}
.details .faq-intro{margin:24px 0 0;max-width:720px;opacity:.7;font-size:16px;line-height:1.7}
.faq-list{width:min(800px,100%);text-align:left;margin-top:45px;border-top:1px solid rgba(36,38,31,.25)}
.faq-item{border-bottom:1px solid rgba(36,38,31,.23)}
.faq-item summary{position:relative;list-style:none;cursor:pointer;padding:24px 43px 24px 2px;font-family:Georgia,'Times New Roman',serif;font-size:clamp(18px,2vw,23px);line-height:1.4;transition:color .2s ease}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:'+';position:absolute;right:4px;top:18px;color:#a45e65;font-family:Arial,sans-serif;font-weight:300;font-size:30px;transition:transform .25s ease}
.faq-item[open] summary::after{content:'−'}
.faq-item summary:hover{color:#a45e65}
.faq-item summary:focus-visible{outline:2px solid #a45e65;outline-offset:4px}
.faq-answer{padding:0 35px 22px 2px}
.faq-answer p,.faq-answer li{max-width:none!important;font-size:15px!important;line-height:1.85!important;opacity:.85!important}
.faq-answer p{margin:8px 0 14px}
.faq-answer ul{padding-left:22px;margin:10px 0 12px}
.faq-answer li{padding-left:7px;margin-bottom:9px}

/* Celebration countdown: animation with no content boxes. */
.countdown{position:relative;isolation:isolate;overflow:hidden;min-height:530px;padding:112px 20px 105px;text-align:center;color:#fff6ea;background:radial-gradient(circle at 50% 65%,rgba(229,144,132,.22),transparent 55%),linear-gradient(155deg,#752e4c 0%,#873f51 43%,#af6859 100%)}
.countdown::before,.countdown::after{content:'';position:absolute;width:340px;height:340px;border:1px solid rgba(255,225,199,.11);border-radius:50%;pointer-events:none}
.countdown::before{top:-190px;left:-130px}.countdown::after{bottom:-210px;right:-120px}
.countdown__eyebrow{font-size:11px;letter-spacing:.35em;text-transform:uppercase;color:rgba(255,245,222,.8);margin:0 0 20px}
.countdown h2{font-family:'Bodoni 72',Didot,'Times New Roman',serif;font-size:clamp(43px,7.5vw,91px);line-height:1.05;font-weight:400;letter-spacing:-.02em;margin:0 0 45px;text-wrap:balance}
.countdown__numbers{display:flex;align-items:center;justify-content:center;gap:clamp(5px,2.5vw,34px);margin:0 auto 32px;max-width:900px;font-variant-numeric:tabular-nums}
.countdown__unit{min-width:0;display:grid;gap:10px;justify-items:center;flex:1}
.countdown__number{display:block;font-family:'Bodoni 72',Didot,'Times New Roman',serif;font-size:clamp(45px,8vw,108px);font-weight:400;line-height:1;letter-spacing:-.045em;color:#fffaf2;text-shadow:0 8px 32px rgba(68,17,37,.18)}
.countdown__label{font-size:clamp(9px,1vw,12px);letter-spacing:.2em;text-transform:uppercase;color:rgba(255,247,234,.77)}
.countdown__separator{font-family:Georgia,serif;font-size:clamp(20px,3vw,37px);color:#f2c7a8;align-self:center;transform:translateY(-11px)}
.countdown__date{margin:0 0 15px;letter-spacing:.2em;text-transform:uppercase;font-size:12px;line-height:1.8}
.countdown__date span{padding:0 7px;color:#f5c88b}
.countdown__message{font-family:Georgia,'Times New Roman',serif;font-style:italic;font-size:18px;color:#ffdfbd;margin:0}
.countdown__spark{position:absolute;z-index:-1;font-size:clamp(32px,5vw,65px);line-height:1;color:rgba(255,227,174,.55);user-select:none;pointer-events:none;animation:countdown-twinkle 5s ease-in-out infinite alternate}
.countdown__spark--one{top:14%;left:10%}
.countdown__spark--two{top:22%;right:11%;animation-delay:-1.5s;color:rgba(255,184,206,.58)}
.countdown__spark--three{bottom:15%;left:15%;animation-delay:-3s;font-size:30px}
.countdown__spark--four{bottom:12%;right:15%;animation-delay:-2s;font-size:31px}
@keyframes countdown-twinkle{0%{opacity:.25;transform:scale(.78) rotate(-18deg)}100%{opacity:1;transform:scale(1.1) rotate(16deg)}}

/* RSVP remains a functional form; field edges are understated. */
.wedding-rsvp textarea,.wedding-rsvp select{background:transparent;border:0;border-bottom:1px solid rgba(36,38,31,.42);border-radius:0;padding:12px 2px}
.wedding-rsvp textarea:focus-visible,.wedding-rsvp select:focus-visible{outline:none;border-bottom-color:#a45e65}
.rsvp-result pre{background:transparent;border-left:2px solid #a45e65;padding:12px 16px}

@media(max-width:1050px){
  .site-header{grid-template-columns:54px minmax(0,1fr) 54px;min-height:116px}
  .sound-toggle{grid-column:3;grid-row:1}
  .nav{position:static;grid-column:2;grid-row:1;width:100%;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:10px 16px}
  .nav a{font-size:9px;letter-spacing:.08em}
}
@media(max-width:680px){
  .site-header{padding:10px 13px 0;min-height:100px;grid-template-columns:0 minmax(0,1fr) 44px;gap:3px}
  .sound-toggle{grid-column:3;grid-row:1;width:40px;height:40px}
  .nav{position:absolute;top:60px;left:0;right:0;display:flex;flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;width:100%;padding:10px 18px 15px;gap:18px;mask-image:linear-gradient(to right,transparent,#000 14px,#000 calc(100% - 14px),transparent)}
  .nav a{flex:none;font-size:10px;letter-spacing:.09em}
  .details{padding:74px 23px}
  .pdf-section__content{margin-top:33px}
  .pdf-card{gap:8px;padding:11px 0}
  .pdf-card .pdf-icon{flex-basis:24px;min-width:24px}
  .pdf-card:not(:has(> .pdf-icon)),#travel .pdf-card:not(:has(> .pdf-icon)){padding-left:32px}
  .countdown{padding:92px 14px 86px;min-height:460px}
  .countdown h2{margin-bottom:36px}
  .countdown__numbers{gap:4px}
  .countdown__unit{gap:10px}
  .countdown__number{font-size:clamp(38px,11vw,68px)}
  .countdown__label{font-size:8px;letter-spacing:.08em}
  .countdown__separator{font-size:16px;transform:translateY(-10px)}
  .countdown__date{font-size:10px;letter-spacing:.13em}
  .countdown__spark--one{left:3%}.countdown__spark--two{right:4%}
  .faq-item summary{padding:21px 36px 21px 2px}
}
@media(prefers-reduced-motion:reduce){.countdown__spark{animation:none}.nav a{transition:none}}

/* Adventure introduction is not a list item and carries no bullet indent. */
#travel .pdf-card.adventure-intro{margin-top:16px;padding-left:0}
