@font-face{font-family:"Marcellus";src:url("fonts/marcellus-latin.woff2") format("woff2");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url("fonts/cormorant-garamond-latin.woff2") format("woff2");font-style:normal;font-weight:400 600;font-display:swap}
@font-face{font-family:"Cormorant Garamond";src:url("fonts/cormorant-garamond-italic-latin.woff2") format("woff2");font-style:italic;font-weight:400 600;font-display:swap}

:root{
  color-scheme:dark;
  --ink:#0b120e;
  --ink-soft:#101a15;
  --ink-raised:#142019;
  --bone:#eee7d3;
  --body:#c9c1aa;
  --muted:#aaa087;
  --gold:#c9a55c;
  --gold-soft:rgba(201,165,92,.26);
  --line:rgba(201,165,92,.3);
  --display:"Marcellus",Georgia,serif;
  --serif:"Cormorant Garamond",Georgia,serif;
  --header-height:68px;
}

*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;scroll-padding-top:var(--header-height)}
body{margin:0;background:var(--ink);color:var(--bone);font-family:var(--serif);font-size:18px;-webkit-font-smoothing:antialiased}
body,button,input{font-family:var(--serif)}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button,input{font:inherit}
button{color:inherit}
em{font-family:var(--serif);font-weight:500;color:var(--gold);line-height:1.12;padding-bottom:.05em}

.skip-link{position:fixed;left:16px;top:12px;z-index:200;transform:translateY(-140%);background:var(--bone);color:var(--ink);padding:10px 14px;font-family:var(--display);font-size:13px}
.skip-link:focus{transform:none}
:focus-visible{outline:2px solid var(--gold);outline-offset:4px}

#loadveil{position:fixed;inset:0;z-index:150;display:grid;grid-template-columns:1fr 1fr;pointer-events:none}
#loadveil span{background:#08100c;transition:transform .72s cubic-bezier(.65,0,.35,1)}
body.ready #loadveil span:first-child{transform:translateX(-102%)}
body.ready #loadveil span:last-child{transform:translateX(102%)}

.container{width:min(1180px,calc(100% - 96px));margin:0 auto}
.section{position:relative;padding:clamp(96px,10vw,144px) 0;overflow:hidden}
.section-heading{max-width:720px;margin-bottom:48px}
.section-heading h2,.story-copy h2,.rsvp-heading h2{margin:0;color:var(--bone);font-family:var(--display);font-size:clamp(42px,5vw,64px);font-weight:400;line-height:1.08;letter-spacing:-.025em}
.section-heading p,.rsvp-heading p{max-width:620px;margin:24px 0 0;color:var(--muted);font-size:21px;font-style:italic;line-height:1.55}

.site-header{position:fixed;inset:0 0 auto;z-index:100;height:var(--header-height);display:flex;align-items:center;gap:28px;padding:0 40px;background:linear-gradient(180deg,rgba(7,12,9,.92),rgba(7,12,9,.58));border-bottom:1px solid rgba(201,165,92,.1);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.brand{font-family:var(--display);font-size:18px;letter-spacing:.28em;color:var(--gold);white-space:nowrap}
.site-nav{margin-left:auto;display:flex;align-items:center;gap:28px}
.site-nav a,.menu-toggle,.mobile-rsvp{font-family:var(--display);font-size:11px;letter-spacing:.2em;text-transform:uppercase}
.site-nav a{color:#d8d0ba;transition:color .22s ease}
.site-nav a:hover{color:var(--gold)}
.nav-rsvp,.mobile-rsvp{border:1px solid var(--gold);padding:10px 15px;color:var(--gold)!important}
.menu-toggle,.mobile-rsvp{display:none}

.hero{position:relative;min-height:100dvh;overflow:hidden;background:#080d0a}
.hero-media,.hero-media img{position:absolute;inset:0;width:100%;height:100%}
.hero-media img{object-fit:cover;object-position:50% 24%;filter:grayscale(1) contrast(1.06) brightness(.82)}
.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(160deg,rgba(48,74,104,.52),rgba(8,18,28,.58));mix-blend-mode:color}
.hero-atmosphere{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.hero-atmosphere span{position:absolute;width:52vw;height:52vw;border-radius:50%;background:rgba(170,193,184,.08);filter:blur(60px);opacity:0}
.hero-atmosphere span:first-child{left:-16vw;top:12vh}
.hero-atmosphere span:last-child{right:-24vw;top:-12vh;background:rgba(201,165,92,.09)}
.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,9,7,.2),rgba(5,9,7,.08) 38%,rgba(5,9,7,.2) 58%,rgba(5,9,7,.91) 96%)}
.hero-content{position:absolute;z-index:2;left:50%;bottom:clamp(42px,7vh,76px);width:min(1160px,calc(100% - 64px));transform:translateX(-50%);text-align:center;text-shadow:0 3px 26px rgba(0,0,0,.45)}
.hero-pre{margin:0;font-family:var(--display);font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:#ddd5bf}
.hero-names{display:flex;align-items:baseline;justify-content:center;gap:.18em;margin:10px 0 18px;font-family:var(--display);font-size:clamp(62px,8.7vw,122px);font-weight:400;line-height:1.04;letter-spacing:.025em;color:var(--gold)}
.hero-names em{font-size:.38em;color:var(--bone)}
.hero-meta{display:flex;justify-content:center;gap:24px;font-family:var(--display);font-size:14px;letter-spacing:.2em;text-transform:uppercase;color:#eee7d5}
.hero-meta span+span{padding-left:24px;border-left:1px solid rgba(201,165,92,.5)}
.hero-actions{display:flex;justify-content:center;gap:12px;margin-top:26px;text-shadow:none}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 22px;border:1px solid var(--gold);font-family:var(--display);font-size:11px;letter-spacing:.2em;text-transform:uppercase;white-space:nowrap;transition:background-color .2s,color .2s,transform .2s}
.button:hover{transform:translateY(-1px)}
.button:active{transform:translateY(1px)}
.button-primary{background:var(--gold);color:#12100a}
.button-secondary{background:rgba(7,12,9,.42);color:var(--bone);backdrop-filter:blur(8px)}

@media (prefers-reduced-motion:no-preference){
  body.ready .hero-media img{animation:hero-breathe 8s cubic-bezier(.16,1,.3,1) both}
  body.ready .hero-atmosphere span:first-child{animation:atmosphere-drift 7s 1s ease-out both}
  body.ready .hero-atmosphere span:last-child{animation:atmosphere-drift 8s 1.4s ease-out both reverse}
}
@keyframes hero-breathe{from{transform:scale(1.045)}to{transform:scale(1)}}
@keyframes atmosphere-drift{0%{transform:translate3d(-4%,3%,0);opacity:0}30%{opacity:.8}100%{transform:translate3d(6%,-4%,0);opacity:.25}}

.story-section{background:var(--ink)}
.story-copy{max-width:790px;margin-bottom:90px}
.story-copy h2{margin-bottom:28px}
.story-copy>p{max-width:590px;margin:0;color:var(--muted);font-size:22px;font-style:italic;line-height:1.55}
.story-journey{position:relative;display:grid;gap:110px;padding-left:84px}
.story-rail{position:absolute;left:22px;top:12px;bottom:100px;width:1px;background:rgba(201,165,92,.15)}
.story-route{position:absolute;inset:0;background:linear-gradient(var(--gold),rgba(201,165,92,.18));transform-origin:top;transform:scaleY(.08);transition:transform 2s cubic-bezier(.16,1,.3,1)}
.story-journey.has-progress .story-route{transform:scaleY(1)}
.story-rail i{position:sticky;top:38vh;display:block;width:9px;height:9px;margin-left:-4px;border:1px solid var(--gold);background:var(--ink);transform:rotate(45deg)}
.story-chapter{display:grid;grid-template-columns:minmax(0,1.22fr) minmax(280px,.78fr);gap:68px;align-items:center;min-height:520px}
.story-chapter:nth-of-type(even){grid-template-columns:minmax(280px,.78fr) minmax(0,1.22fr)}
.story-chapter:nth-of-type(even) picture{order:2}
.story-chapter picture{display:block;overflow:hidden;aspect-ratio:4/3;background:var(--ink-soft)}
.story-chapter img{width:100%;height:100%;object-fit:cover;filter:grayscale(.7) saturate(.55) contrast(1.04);transform:scale(1.035);transition:filter 1.4s ease,transform 1.8s cubic-bezier(.16,1,.3,1)}
.story-chapter>div{opacity:.48;transform:translateY(18px);transition:opacity .8s ease,transform .8s cubic-bezier(.16,1,.3,1)}
.story-chapter.story-active img{filter:grayscale(0) saturate(.82) contrast(1.02);transform:scale(1)}
.story-chapter.story-active>div{opacity:1;transform:none}
.story-chapter time{font-family:var(--display);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
.story-chapter h3{margin:12px 0 18px;font-family:var(--display);font-size:clamp(35px,4vw,54px);font-weight:400;line-height:1.08}
.story-chapter p{margin:0;color:var(--body);font-size:20px;line-height:1.58}
.story-storm img{filter:grayscale(.75) saturate(.45) sepia(.05) hue-rotate(150deg) contrast(1.08)}
.story-arrival{position:relative;margin-top:130px;min-height:620px;overflow:hidden}
.story-arrival picture,.story-arrival img{position:absolute;inset:0;width:100%;height:100%}
.story-arrival img{object-fit:cover;filter:saturate(.8) brightness(.7)}
.story-arrival::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,13,9,.82),rgba(7,13,9,.16) 70%)}
.story-arrival-copy{position:absolute;z-index:2;left:7%;bottom:12%;max-width:600px}
.story-arrival-copy>span{display:flex;align-items:center;gap:12px;font-family:var(--display);font-size:10px;letter-spacing:.17em;text-transform:uppercase;color:var(--body)}
.story-arrival-copy>span i{width:28px;height:1px;background:var(--gold)}
.story-arrival-copy h3{margin:16px 0 10px;font-family:var(--display);font-size:clamp(48px,6vw,78px);font-weight:400;line-height:1.08}
.story-arrival-copy p{margin:0;color:var(--bone);font-family:var(--display);font-size:13px;letter-spacing:.18em;text-transform:uppercase}

.itinerary-section{background:#0d1511}
.itinerary-gallery{display:grid;grid-template-columns:1.75fr 1fr;grid-template-rows:1fr 1fr;gap:12px;margin-bottom:80px}
.itinerary-gallery picture{display:block;min-height:180px;overflow:hidden}
.itinerary-gallery .gallery-wide{grid-row:1/3;min-height:440px}
.itinerary-gallery img{width:100%;height:100%;object-fit:cover;filter:saturate(.78) contrast(1.02)}
.day+.day{margin-top:62px}
.day-header{display:flex;align-items:baseline;gap:20px;margin-bottom:4px;border-bottom:1px solid var(--line)}
.day-header h3{margin:0;color:var(--gold);font-size:46px;font-style:italic;font-weight:500;line-height:1.1}
.day-header time{font-family:var(--display);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.solar-arc{position:relative;height:122px;margin:30px 0 4px;border-top:1px solid rgba(201,165,92,.32);background:linear-gradient(90deg,rgba(110,142,142,.04),rgba(201,165,92,.13) 44%,rgba(104,70,54,.08) 66%,rgba(8,13,10,.18));overflow:hidden}
.solar-arc::before{content:"";position:absolute;left:8%;right:8%;top:42px;height:105px;border:1px solid rgba(201,165,92,.28);border-color:rgba(201,165,92,.34) transparent transparent;border-radius:50%}
.solar-sun{position:absolute;left:43%;top:32px;width:19px;height:19px;border:1px solid var(--gold);border-radius:50%;background:var(--gold);box-shadow:0 0 30px rgba(201,165,92,.28)}
.solar-label{position:absolute;bottom:16px;font-family:var(--display);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.solar-start{left:0}.solar-set{left:43%;color:var(--gold);transform:translateX(-34%)}.solar-night{right:0}
.saturday-day .event{position:relative;transition:background-color .4s ease}
.saturday-day .event-sunset{background:linear-gradient(90deg,transparent,rgba(201,165,92,.045),transparent)}
.saturday-day .event-sunset::before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--gold)}
.saturday-day .event-night{background:linear-gradient(90deg,transparent,rgba(4,8,6,.22))}
.event{display:grid;grid-template-columns:150px minmax(0,1fr) 240px;gap:34px;padding:30px 0;border-bottom:1px solid rgba(201,165,92,.18)}
.event-time{padding-top:7px;font-family:var(--display);font-size:13px;letter-spacing:.12em;color:#ddd5be}
.event-kind{margin:0;color:var(--gold);font-size:16px;font-style:italic}
.event h4{margin:4px 0 5px;font-family:var(--display);font-size:28px;font-weight:400;line-height:1.2;color:var(--bone)}
.event-location{margin:0!important;color:var(--muted)!important;font-style:italic}
.event-main>p:last-child{max-width:580px;margin:10px 0 0;color:var(--body);font-size:17px;line-height:1.55}
.attire{padding-top:4px}
.attire summary{list-style:none;cursor:pointer;font-size:21px;font-style:italic;color:var(--gold)}
.attire summary::-webkit-details-marker{display:none}
.attire summary::before{content:"Attire";display:block;margin-bottom:6px;font-family:var(--display);font-size:9px;font-style:normal;letter-spacing:.24em;text-transform:uppercase;color:var(--muted)}
.attire p{margin:8px 0 0;color:var(--muted);font-size:15px;font-style:italic;line-height:1.52}

.rsvp-section{min-height:760px;background:#0b130f}
.rsvp-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px;align-items:start}
.rsvp-heading{position:relative;z-index:2;padding-top:54px}
.rsvp-panel{position:relative;z-index:2;padding:44px;background:var(--ink-soft);border:1px solid var(--line)}
.rsvp-panel label{display:block;margin-bottom:8px;font-family:var(--display);font-size:15px;letter-spacing:.06em;color:var(--bone)}
.rsvp-eyebrow{margin:0 0 9px;font-family:var(--display);font-size:9px!important;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)!important}
.rsvp-access-title,.rsvp-system-state h3{margin:0 0 14px;font-family:var(--display);font-size:clamp(28px,3vw,38px);font-weight:400;line-height:1.16;color:var(--bone)}
.field-hint{margin:0 0 20px;color:var(--muted);font-size:16px}
.rsvp-input{width:100%;padding:10px 0 12px;border:0;border-bottom:1px solid rgba(201,165,92,.62);border-radius:0;outline:0;background:transparent;color:var(--bone);font-size:26px;font-style:italic}
.rsvp-input:focus{border-bottom-color:var(--gold);box-shadow:0 1px 0 var(--gold)}
.access-code-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:end}
.rsvp-code-input{font-family:var(--display);font-size:20px;font-style:normal;letter-spacing:.12em}
.access-button{min-width:130px;padding:0 20px}
.form-status{min-height:24px;margin:16px 0 0;color:var(--muted);font-size:16px}
.form-status.error{color:#e6b29f}
.rsvp-system-state{padding:10px 0}
.rsvp-system-state>p:not(.rsvp-eyebrow){max-width:520px;margin:0 0 24px;color:var(--body);font-size:19px;line-height:1.5}
.state-orbit{display:block;width:30px;height:30px;margin:0 0 24px;border:1px solid rgba(201,165,92,.25);border-top-color:var(--gold);border-radius:50%;animation:state-spin .9s linear infinite}
.system-button{display:inline-block;width:auto;padding:0 24px}
@keyframes state-spin{to{transform:rotate(360deg)}}
.rsvp-household{margin:0 0 6px;color:var(--gold);font-size:30px;font-style:italic}
.rsvp-instruction{margin:0 0 24px;color:var(--muted);font-size:16px}
.guest-fieldset{margin:0;padding:24px 0;border:0;border-top:1px solid var(--line)}
.guest-fieldset legend{padding:0 0 16px;font-family:var(--display);font-size:18px;color:var(--bone)}
.choice-row{display:grid;grid-template-columns:minmax(170px,1fr) auto;align-items:center;gap:18px;margin-bottom:14px}
.choice-label{font-family:var(--display);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.choice-buttons{display:flex;gap:7px}
.choice-button{min-width:84px;padding:8px 12px;border:1px solid rgba(201,165,92,.48);border-radius:0;background:transparent;color:var(--body);font-size:15px;font-style:italic;cursor:pointer}
.choice-button:hover{border-color:var(--gold);color:var(--bone)}
.choice-button[aria-pressed="true"]{border-color:var(--gold);background:var(--gold);color:#171208;font-weight:600}
.choice-row.subchoice{padding-left:18px}
.form-actions{display:flex;align-items:center;gap:18px;margin-top:20px}
.submit-button{flex:1;min-height:48px;border:1px solid var(--gold);border-radius:0;background:var(--gold);color:#171208;font-family:var(--display);font-size:11px;letter-spacing:.2em;text-transform:uppercase;cursor:pointer}
.submit-button:disabled{border-color:#756846;background:#756846;color:#18150e;cursor:not-allowed}
.text-button{border:0;background:transparent;color:var(--muted);font-size:16px;font-style:italic;cursor:pointer}
.text-button:hover{color:var(--gold)}
.song-field{margin:24px 0 0;padding-top:24px;border-top:1px solid var(--line)}
.song-field label{margin-bottom:6px;font-family:var(--display);font-size:13px}
.song-field p{margin:0 0 12px;color:var(--muted);font-size:15px}
.song-input{width:100%;padding:8px 0 10px;border:0;border-bottom:1px solid rgba(201,165,92,.48);border-radius:0;outline:0;background:transparent;color:var(--bone);font-size:20px;font-style:italic}
.song-input:focus{border-bottom-color:var(--gold)}
.submission-state{margin:-44px;padding:0;text-align:left}
.confirmation-image{position:relative;height:230px;overflow:hidden}
.confirmation-image img{width:100%;height:100%;object-fit:cover;filter:saturate(.78) brightness(.64)}
.confirmation-image::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent,rgba(12,20,16,.76))}
.confirmation-mark{position:absolute;z-index:2;right:28px;bottom:22px;font-family:var(--display);font-size:20px;letter-spacing:.22em;color:var(--gold)}
.confirmation-copy{padding:34px 44px 40px}
.review-notice{display:flex;align-items:baseline;gap:10px;margin:0 0 20px!important;padding:10px 12px;border-left:2px solid var(--gold);background:rgba(201,165,92,.08);color:var(--muted)!important;font-size:15px!important}
.review-notice strong{font-family:var(--display);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold)}
.record-seal{display:flex;justify-content:space-between;gap:18px;margin:0 0 22px!important;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-family:var(--display);font-size:9px!important;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)!important}
.record-seal strong{color:var(--gold);font-weight:400}
.delivery-note{display:inline-block;margin-top:8px;color:var(--muted);font-size:15px;font-style:italic}
.reply-review{list-style:none;margin:24px 0;padding:0;border-top:1px solid var(--line)}
.reply-review li{display:grid;grid-template-columns:minmax(120px,.7fr) minmax(0,1.3fr);gap:18px;padding:18px 0;border-bottom:1px solid rgba(201,165,92,.18)}
.reply-review strong,.review-song strong{font-family:var(--display);font-size:12px;font-weight:400;color:var(--bone)}
.reply-review span,.review-song span{color:var(--muted);font-size:16px}
.review-song{display:grid!important;grid-template-columns:minmax(120px,.7fr) minmax(0,1.3fr);gap:18px;margin:0!important;padding:0 0 18px}
.confirmation-copy h3{margin:0;color:var(--gold);font-size:44px;font-style:italic;font-weight:500}
.confirmation-copy>p{margin:12px 0 24px;max-width:490px;color:var(--body);font-size:19px;line-height:1.55}
.confirmation-weekend{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin:0 0 28px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.confirmation-weekend div{padding:18px 12px 18px 0}
.confirmation-weekend div+div{padding-left:18px;border-left:1px solid rgba(201,165,92,.2)}
.confirmation-weekend time{display:block;margin-bottom:5px;font-family:var(--display);font-size:9px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.confirmation-weekend strong{font-family:var(--display);font-size:14px;font-weight:400;color:var(--bone)}
.confirmation-actions{display:flex;flex-wrap:wrap;align-items:center;gap:14px 18px}
.confirmation-actions .button{min-height:42px}

.stay-section{background:var(--ink)}
.stay-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.stay-card{border:1px solid var(--line);background:var(--ink-soft)}
.stay-card picture{display:block;aspect-ratio:16/9;overflow:hidden}
.stay-card img{width:100%;height:100%;object-fit:cover;filter:saturate(.8)}
.stay-content{padding:30px}
.stay-kicker{margin:0 0 7px!important;color:var(--gold)!important;font-size:16px!important;font-style:italic}
.stay-content h3{margin:0 0 13px;font-family:var(--display);font-size:25px;font-weight:400;line-height:1.25}
.stay-content>p{margin:0;color:var(--body);font-size:18px;line-height:1.58}
.booking-status{display:flex;flex-direction:column;gap:4px;margin:22px 0;padding:14px 16px;border-left:2px solid var(--gold);background:rgba(201,165,92,.07)}
.booking-status strong{font-family:var(--display);font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--bone)}
.booking-status span{color:var(--muted);font-size:15px}
.text-link{display:inline-block;padding-bottom:2px;border-bottom:1px solid var(--gold);font-family:var(--display);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold)}
.text-link:hover{color:var(--bone);border-bottom-color:var(--bone)}
.shuttle-note{margin:34px 0 0;text-align:center;color:var(--muted);font-size:17px;font-style:italic}

.experience-section{background:#0d1511}
.experience-intro{display:grid;grid-template-columns:.8fr 1.2fr;gap:72px;align-items:end;margin-bottom:72px}
.experience-intro .section-heading{margin:0}
.experience-intro picture{display:block;aspect-ratio:16/9;overflow:hidden}
.experience-intro img{width:100%;height:100%;object-fit:cover}
.experience-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:28px}
.experience-feature{display:grid;grid-template-columns:1.1fr .9fr;border-top:1px solid var(--line);padding-top:14px}
.experience-feature picture{display:block;min-height:280px;overflow:hidden}
.experience-feature img{width:100%;height:100%;object-fit:cover;filter:saturate(.8)}
.experience-feature>div{display:flex;flex-direction:column;align-items:flex-start;padding:22px 0 8px 24px}
.experience-feature h3{margin:0 0 12px;font-family:var(--display);font-size:23px;font-weight:400}
.experience-feature p{margin:0 0 20px;color:var(--body);font-size:17px;line-height:1.55}
.experience-feature .text-link{margin-top:auto}
.more-experiences{margin-top:44px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.more-experiences>summary{padding:22px 0;cursor:pointer;list-style:none;font-family:var(--display);font-size:17px;color:var(--bone)}
.more-experiences>summary::-webkit-details-marker{display:none}
.more-experiences>summary::after{content:"+";float:right;color:var(--gold)}
.more-experiences[open]>summary::after{content:"-"}
.more-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 40px;padding:0 0 28px}
.more-grid a{display:flex;flex-direction:column;gap:4px;padding:18px 0;border-top:1px solid rgba(201,165,92,.16)}
.more-grid strong{font-family:var(--display);font-size:16px;font-weight:400;color:var(--bone)}
.more-grid span{color:var(--muted);font-size:16px}

.site-footer{padding:88px 0 64px;background:var(--ink);text-align:center}
.footer-brand{margin:0;font-family:var(--display);font-size:28px;letter-spacing:.28em;color:var(--gold)}
.footer-inner>p:nth-child(2){display:flex;justify-content:center;gap:16px;margin:18px 0 0;font-family:var(--display);font-size:10px;letter-spacing:.17em;text-transform:uppercase;color:var(--muted)}
.footer-inner>p:nth-child(2) span+span{padding-left:16px;border-left:1px solid var(--line)}
.footer-note{margin:20px 0 0;color:var(--muted);font-size:17px;font-style:italic}

.reveal{opacity:0;transform:translateY(22px);transition:opacity .72s ease,transform .72s ease}
.reveal.visible{opacity:1;transform:none}

@media (max-width:960px){
  .container{width:min(100% - 48px,720px)}
  .site-header{padding:0 24px;gap:14px}
  .mobile-rsvp,.menu-toggle{display:inline-flex;align-items:center;justify-content:center;height:36px}
  .mobile-rsvp{margin-left:auto;padding:0 12px}
  .menu-toggle{padding:0 4px;border:0;background:transparent;color:var(--bone);cursor:pointer}
  .site-nav{position:absolute;left:0;right:0;top:var(--header-height);display:grid;gap:0;margin:0;padding:0 24px;max-height:0;overflow:hidden;background:rgba(8,14,10,.98);border-bottom:1px solid transparent;transition:max-height .28s ease,padding .28s ease,border-color .28s ease}
  .site-nav.open{max-height:360px;padding-top:10px;padding-bottom:18px;border-bottom-color:var(--line)}
  .site-nav a{padding:14px 2px;border-bottom:1px solid rgba(201,165,92,.13)}
  .site-nav .nav-rsvp{display:none}
  .rsvp-layout,.experience-intro{grid-template-columns:1fr;gap:52px}
  .story-journey{padding-left:54px;gap:84px}
  .story-rail{left:15px}
  .story-chapter,.story-chapter:nth-of-type(even){grid-template-columns:1.08fr .92fr;gap:36px;min-height:430px}
  .event{grid-template-columns:120px minmax(0,1fr);gap:26px}
  .attire{grid-column:2}
  .rsvp-heading{padding-top:0;text-align:center}
  .rsvp-heading p{margin-left:auto;margin-right:auto}
  .stay-grid{grid-template-columns:1fr}
  .experience-intro{align-items:start}
  .experience-grid{grid-template-columns:1fr}
}

@media (max-width:640px){
  :root{--header-height:62px}
  body{font-size:17px}
  .container{width:calc(100% - 40px)}
  .section{padding:84px 0}
  .section-heading{margin-bottom:34px}
  .section-heading h2,.story-copy h2,.rsvp-heading h2{font-size:clamp(38px,12vw,50px);line-height:1.1}
  .section-heading p,.rsvp-heading p{margin-top:18px;font-size:19px}
  .site-header{padding:0 18px}
  .brand{font-size:16px}
  .mobile-rsvp{font-size:10px}
  .hero{min-height:100dvh}
  .hero-media img{object-position:52% 30%}
  .hero-shade{background:linear-gradient(180deg,rgba(5,9,7,.14),rgba(5,9,7,.02) 36%,rgba(5,9,7,.28) 59%,rgba(5,9,7,.96) 95%)}
  .hero-content{bottom:30px;width:calc(100% - 32px)}
  .hero-pre{font-size:10px;letter-spacing:.21em}
  .hero-names{gap:.1em;margin:9px 0 13px;font-size:clamp(44px,14vw,57px);letter-spacing:-.01em}
  .hero-names em{font-size:.34em}
  .hero-meta{flex-direction:column;gap:6px;font-size:10px;letter-spacing:.15em}
  .hero-meta span+span{padding-left:0;border:0;font-family:var(--serif);font-size:17px;font-style:italic;letter-spacing:0;text-transform:none;color:var(--body)}
  .hero-actions{margin-top:18px}
  .button{min-height:43px;padding:0 16px;font-size:10px}
  .story-copy{margin-bottom:58px}
  .story-copy>p{font-size:19px}
  .story-journey{gap:72px;padding-left:0}
  .story-rail{display:none}
  .story-chapter,.story-chapter:nth-of-type(even){grid-template-columns:1fr;gap:24px;min-height:0}
  .story-chapter:nth-of-type(even) picture{order:0}
  .story-chapter picture{aspect-ratio:4/3}
  .story-chapter>div{opacity:1;transform:none}
  .story-chapter h3{margin:9px 0 12px;font-size:34px}
  .story-chapter p{font-size:18px}
  .story-arrival{min-height:520px;margin-top:82px;margin-left:-20px;margin-right:-20px}
  .story-arrival-copy{left:20px;right:20px;bottom:36px}
  .story-arrival-copy>span{gap:8px;font-size:8px;letter-spacing:.11em}
  .story-arrival-copy>span i{width:15px}
  .story-arrival-copy h3{font-size:43px}
  .itinerary-gallery{grid-template-columns:1fr 1fr;grid-template-rows:auto auto;margin-bottom:58px}
  .itinerary-gallery .gallery-wide{grid-column:1/-1;grid-row:auto;min-height:240px}
  .itinerary-gallery picture:not(.gallery-wide){min-height:120px}
  .day+.day{margin-top:48px}
  .day-header{position:sticky;z-index:5;top:var(--header-height);align-items:center;justify-content:space-between;margin-left:-20px;margin-right:-20px;padding:13px 20px;background:rgba(13,21,17,.96);backdrop-filter:blur(8px)}
  .day-header h3{font-size:37px}
  .day-header time{max-width:130px;text-align:right;font-size:9px;line-height:1.45}
  .solar-arc{height:102px;margin-top:20px}
  .solar-label{bottom:12px;font-size:8px;letter-spacing:.1em}
  .event{grid-template-columns:1fr;gap:9px;padding:25px 0}
  .event-time{padding:0;font-size:12px}
  .event h4{font-size:25px}
  .event-main>p:last-child{font-size:16px}
  .attire{grid-column:auto;margin-top:5px;padding-top:12px;border-top:1px solid rgba(201,165,92,.12)}
  .attire:not([open]){padding-bottom:4px}
  .attire summary{display:flex;align-items:center;justify-content:space-between;font-size:18px}
  .attire summary::before{content:"Attire";margin:0;font-size:9px}
  .rsvp-section{min-height:0}
  .rsvp-panel{padding:28px 20px}
  .access-code-row{grid-template-columns:1fr;gap:16px}
  .access-button,.system-button{width:100%}
  .choice-row{grid-template-columns:1fr;gap:9px}
  .choice-buttons{width:100%}
  .choice-button{flex:1;min-width:0}
  .choice-row.subchoice{padding-left:0}
  .form-actions{align-items:stretch;flex-direction:column}
  .submit-button{flex:auto}
  .submission-state{margin:-28px -20px}
  .confirmation-image{height:190px}
  .confirmation-copy{padding:28px 20px 32px}
  .confirmation-copy h3{font-size:37px}
  .confirmation-weekend{grid-template-columns:1fr}
  .confirmation-weekend div{padding:14px 0}
  .confirmation-weekend div+div{padding-left:0;border-left:0;border-top:1px solid rgba(201,165,92,.18)}
  .confirmation-actions{align-items:stretch;flex-direction:column}
  .confirmation-actions .button{width:100%}
  .record-seal{align-items:flex-start;flex-direction:column;gap:5px}
  .reply-review li,.review-song{grid-template-columns:1fr;gap:5px}
  .stay-content{padding:24px 20px 26px}
  .experience-intro{gap:30px;margin-bottom:50px}
  .experience-feature{grid-template-columns:1fr}
  .experience-feature picture{min-height:220px}
  .experience-feature>div{padding:22px 0 14px}
  .more-grid{grid-template-columns:1fr}
  .footer-inner>p:nth-child(2){flex-direction:column;gap:6px}
  .footer-inner>p:nth-child(2) span+span{padding-left:0;border:0}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  #loadveil{display:none}
  .reveal{opacity:1;transform:none}
  .story-route{transform:none}
  .story-chapter img,.story-chapter.story-active img{transform:none}
}
