:root{--bg:#000;--text:#f7f5ef;--yellow:#ffca05;--muted:#aaa;--line:#292929;--paper:#f2f1ef;--ink:#0a0a0a;--max:1800px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,Arial,sans-serif}body.menu-open{overflow:hidden}a{color:inherit}img,video{display:block;max-width:100%}button{font:inherit}.site-header{position:fixed;inset:0 0 auto;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:18px 2.7vw;background:linear-gradient(#000 65%,transparent)}.brand img{width:50px;height:58px;object-fit:contain}.main-menu{display:flex;align-items:center;gap:4.2vw}.main-menu>a{text-decoration:none;font-size:14px}.main-menu>a:not(.button):hover{text-decoration:underline;text-underline-offset:5px}.mobile-header-actions{display:flex;align-items:center;gap:10px}.mobile-language-toggle{display:none}.menu-toggle{display:none;background:transparent;border:1px solid #333;color:#fff;padding:10px 14px}.language-toggle{background:none;border:0;color:#777;padding:8px;cursor:pointer;font-size:13px}.language-toggle .lang-active{color:var(--yellow);font-weight:800}.button{display:inline-flex;align-items:center;justify-content:center;border:2px solid var(--yellow);color:var(--yellow);padding:15px 28px;text-decoration:none;text-transform:uppercase;font-size:13px;letter-spacing:.04em;transition:.2s}.button:hover{background:var(--yellow);color:#000}.button.small{padding:13px 25px}.button.wide{width:100%;max-width:760px;margin-top:38px}.section-shell{max-width:var(--max);margin:auto;padding:135px 6vw 90px}.hero{min-height:100vh;display:grid;grid-template-columns:30% 1fr;gap:5vw;align-items:center;position:relative}.hero-title h1{margin:0;color:var(--yellow);font-size:clamp(66px,7vw,132px);line-height:.82;text-align:center}.hero-title span{font-size:.78em}.hero-media video{width:100%;height:min(68vh,720px);object-fit:cover;background:#111}.scroll-cue{position:absolute;left:50%;bottom:30px;color:var(--yellow);font-size:25px;text-decoration:none;animation:bounce 1.7s infinite}@keyframes bounce{50%{transform:translateY(8px)}}
.announcement{min-height:100vh;display:grid;grid-template-columns:1fr 1.2fr;align-items:center}.floral-wrap img{max-height:570px;margin:auto}.announcement-copy{text-align:center}.eyebrow{font-size:clamp(23px,2vw,38px);font-weight:800;line-height:1.05;color:var(--yellow)}.announcement h2{font-size:clamp(75px,9vw,172px);line-height:.9;color:var(--yellow);margin:25px 0}.countdown{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.section-title{margin:0;color:var(--yellow);font-size:clamp(60px,6vw,112px);line-height:.92}.story-intro{min-height:100vh}.story-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:9vw;align-items:center;margin-top:120px}.artifact{margin:0}.polaroid{max-width:520px;transform:rotate(-2.4deg);box-shadow:0 25px 70px rgba(0,0,0,.45)}.story-copy{font-size:clamp(18px,1.45vw,27px);line-height:1.45}.story-lead{color:var(--yellow);font-size:clamp(30px,3vw,55px);font-weight:800;line-height:1.08}.proposal-wide{position:relative;overflow:hidden}.proposal-wide img{width:100%;height:76vh;object-fit:cover;transition:transform 8s ease}.proposal-wide.visible img{transform:scale(1.035)}.proposal-wide h2{position:absolute;left:7vw;bottom:7vh;margin:0;color:var(--yellow);font-size:clamp(68px,8vw,150px);line-height:.9}.compact{min-height:auto;padding-top:75px;padding-bottom:110px}.proposal-copy p{max-width:920px;font-size:clamp(23px,2.2vw,42px);line-height:1.28}.proposal-split{display:grid;grid-template-columns:1.05fr .95fr;gap:7vw;align-items:center}.proposal-message p{font-size:clamp(27px,3vw,54px);font-weight:800;line-height:1.15;text-align:center}.proposal-split img{height:78vh;width:100%;object-fit:cover}.frames{display:grid;grid-template-columns:280px 340px;gap:24px;align-items:stretch;justify-content:center;max-width:1500px;padding-top:70px}.frames figure{margin:0;justify-self:center;align-self:stretch;width:100%;height:540px;overflow:hidden;line-height:0}.frames img,.frames video{display:block;width:100%;height:540px!important;min-height:540px;max-height:540px}.frame-film{max-width:280px}.frame-film img{object-fit:fill;object-position:center}.frame-video{max-width:340px;background:#080808}.frame-video video{object-fit:cover;object-position:center}.frame-polaroid{max-width:300px;background:#fff}.frame-polaroid img{object-fit:fill;object-position:center}
.content-section{min-height:100vh;display:grid;grid-template-columns:38% 1fr;gap:8vw;align-items:start}.section-content{max-width:820px;font-size:18px;line-height:1.6}.kicker{color:var(--yellow);text-transform:uppercase;letter-spacing:.13em;font-size:12px}.event-list{margin:35px 0}.event-list article{display:grid;grid-template-columns:120px 1fr;padding:24px 0;border-top:1px solid var(--line)}.event-list article:last-child{border-bottom:1px solid var(--line)}time{color:var(--yellow);font-weight:800}.event-list h3{margin:0}.event-list p{margin:5px 0 0;color:var(--muted)}.actions{display:flex;gap:28px;margin-top:18px}.text-link{color:var(--yellow);text-underline-offset:5px}
.light-section{background:var(--paper);color:var(--ink)}.section-title.dark{color:var(--ink)}.travel-layout{display:grid;grid-template-columns:1fr 1fr;gap:10vw;margin-top:85px}.travel-block h3,.hotels-heading h3{font-size:clamp(30px,3vw,55px);margin:0 0 25px}.travel-block{font-size:18px;line-height:1.45}.dark-button{border-color:#111;color:#111;margin-top:20px}.dark-button:hover{background:#111;color:#fff}.drive-times{margin:25px 0}.drive-times div{display:flex;justify-content:space-between;border-top:1px solid #bbb;padding:13px 0}.drive-times div:last-child{border-bottom:1px solid #bbb}.drive-times dd{font-weight:800}.small{font-size:14px}.hotels-heading{margin:130px 0 40px}.hotel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.hotel-card{background:#fff;border:1px solid #d4d4d4}.hotel-card img{width:100%;aspect-ratio:4/3;object-fit:cover}.hotel-copy{padding:24px}.hotel-copy h4{font-size:20px;line-height:1.2;margin:12px 0}.hotel-copy p{line-height:1.45}.badge{display:inline-block;background:#111;color:#fff;padding:6px 9px;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.distance{font-weight:800}.dark-link{color:#000}.hotel-phone{display:inline-block;margin-top:6px;color:#000;text-underline-offset:3px}.gift-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:38px}.gift-card{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:28px 0}.gift-card h3{color:var(--yellow);font-size:25px;margin:0 0 20px}.gift-card p{margin:17px 0}.gift-card a{color:var(--text);text-underline-offset:4px}

/* Interactive travel map */
.adventures-section{padding-top:145px;padding-bottom:130px}.adventures-heading{max-width:980px}.adventures-intro{max-width:820px;font-size:clamp(18px,1.5vw,27px);line-height:1.5;margin-top:35px;color:#d1d1d1}.adventures-controls{display:flex;flex-wrap:wrap;gap:10px;margin:48px 0 28px}.adventure-filter{border:1px solid #3b3b3b;background:#090909;color:#d9d9d9;padding:10px 15px;cursor:pointer;text-transform:uppercase;letter-spacing:.08em;font-size:11px}.adventure-filter:hover,.adventure-filter.active{border-color:var(--yellow);background:var(--yellow);color:#000}.adventure-map-wrap{position:relative;border:1px solid #252525;background:radial-gradient(circle at 50% 45%,#151515,#050505 68%);overflow:hidden;min-height:510px}.adventure-map{width:100%;height:auto;min-height:500px}.map-grid path{stroke:#1f1f1f;stroke-width:1;fill:none}.continents path{fill:#161616;stroke:#383838;stroke-width:1.4;transition:fill .25s}.destination-marker{cursor:pointer;transform-origin:center}.destination-marker .marker-pulse{fill:none;stroke:var(--yellow);stroke-width:2;opacity:.45;animation:mapPulse 2.2s infinite}.destination-marker .marker-dot{fill:var(--yellow);stroke:#000;stroke-width:3;transition:transform .18s}.destination-marker:hover .marker-dot,.destination-marker.active .marker-dot{transform:scale(1.45)}.destination-marker.hidden{display:none}@keyframes mapPulse{0%{r:5;opacity:.6}70%,100%{r:17;opacity:0}}.map-card{position:absolute;left:28px;bottom:28px;width:min(330px,calc(100% - 56px));background:rgba(0,0,0,.88);border-left:3px solid var(--yellow);padding:20px 22px;display:grid;gap:6px;backdrop-filter:blur(8px)}.map-card strong{font-size:22px;color:var(--yellow)}.map-card span:last-child{font-size:13px;color:#bbb}.map-card-count{text-transform:uppercase;letter-spacing:.12em;font-size:10px!important;color:#888!important}.destination-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.destination-chip{border:1px solid #292929;background:transparent;color:#bbb;padding:9px 12px;font-size:12px;cursor:pointer}.destination-chip:hover,.destination-chip.active{border-color:var(--yellow);color:var(--yellow)}.destination-chip.hidden{display:none}.registry-polaroid{width:min(340px,75%);margin:65px auto 0}.registry-polaroid img{width:100%;height:auto;box-shadow:0 28px 65px rgba(0,0,0,.4)}

.faq-section{min-height:100vh;display:grid;grid-template-columns:38% 1fr;gap:8vw}.attire-feature{display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:60px}.attire-feature h3{font-size:clamp(28px,2.6vw,50px);margin-top:0}.attire-feature p{line-height:1.55}.attire-feature img{max-height:690px;justify-self:center}.faq-list details{border-top:1px solid var(--line);padding:22px 0}.faq-list details:last-child{border-bottom:1px solid var(--line)}summary{cursor:pointer;list-style:none;color:var(--yellow);font-size:clamp(19px,1.5vw,27px);font-weight:800}summary::-webkit-details-marker{display:none}summary:after{content:'+';float:right}details[open] summary:after{content:'–'}.faq-list p{max-width:750px;color:#ccc;line-height:1.55}.rsvp{min-height:100vh;display:grid;place-items:center;text-align:center}.rsvp-inner{max-width:900px}.rsvp h2{margin:20px 0 45px;color:var(--yellow);font-size:clamp(100px,15vw,250px);line-height:.75}footer{position:relative;padding:120px 20px;text-align:center;color:var(--yellow)}.footer-logo{width:auto;height:46px;margin:18px auto 20px;object-fit:contain}.frame-mark{position:absolute;right:30px;bottom:25px;color:#666;font-size:12px;letter-spacing:.14em}.reveal{opacity:0;transform:translateY(28px);transition:opacity .85s ease,transform .85s ease}.reveal.visible{opacity:1;transform:none}.delay-1{transition-delay:.12s}
@media(max-width:950px){.site-header{padding:13px 18px}.mobile-language-toggle{display:block;padding:10px 3px}.desktop-language-toggle{display:none}.menu-toggle{display:block}.main-menu{position:fixed;inset:74px 14px auto;display:none;flex-direction:column;align-items:stretch;gap:0;background:#080808;border:1px solid #333;padding:8px}.main-menu.open{display:flex}.main-menu>a,.main-menu .language-toggle{padding:16px;border-bottom:1px solid #222;text-align:left}.main-menu .button{margin:8px}.section-shell{padding:105px 24px 70px}.hero{grid-template-columns:1fr;gap:30px}.hero-media{order:1}.hero-title{order:2}.hero-title h1{text-align:center}.hero-media video{height:55vh}.announcement,.content-section,
/* Interactive travel map */
.adventures-section{padding-top:145px;padding-bottom:130px}.adventures-heading{max-width:980px}.adventures-intro{max-width:820px;font-size:clamp(18px,1.5vw,27px);line-height:1.5;margin-top:35px;color:#d1d1d1}.adventures-controls{display:flex;flex-wrap:wrap;gap:10px;margin:48px 0 28px}.adventure-filter{border:1px solid #3b3b3b;background:#090909;color:#d9d9d9;padding:10px 15px;cursor:pointer;text-transform:uppercase;letter-spacing:.08em;font-size:11px}.adventure-filter:hover,.adventure-filter.active{border-color:var(--yellow);background:var(--yellow);color:#000}.adventure-map-wrap{position:relative;border:1px solid #252525;background:radial-gradient(circle at 50% 45%,#151515,#050505 68%);overflow:hidden;min-height:510px}.adventure-map{width:100%;height:auto;min-height:500px}.map-grid path{stroke:#1f1f1f;stroke-width:1;fill:none}.continents path{fill:#161616;stroke:#383838;stroke-width:1.4;transition:fill .25s}.destination-marker{cursor:pointer;transform-origin:center}.destination-marker .marker-pulse{fill:none;stroke:var(--yellow);stroke-width:2;opacity:.45;animation:mapPulse 2.2s infinite}.destination-marker .marker-dot{fill:var(--yellow);stroke:#000;stroke-width:3;transition:transform .18s}.destination-marker:hover .marker-dot,.destination-marker.active .marker-dot{transform:scale(1.45)}.destination-marker.hidden{display:none}@keyframes mapPulse{0%{r:5;opacity:.6}70%,100%{r:17;opacity:0}}.map-card{position:absolute;left:28px;bottom:28px;width:min(330px,calc(100% - 56px));background:rgba(0,0,0,.88);border-left:3px solid var(--yellow);padding:20px 22px;display:grid;gap:6px;backdrop-filter:blur(8px)}.map-card strong{font-size:22px;color:var(--yellow)}.map-card span:last-child{font-size:13px;color:#bbb}.map-card-count{text-transform:uppercase;letter-spacing:.12em;font-size:10px!important;color:#888!important}.destination-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.destination-chip{border:1px solid #292929;background:transparent;color:#bbb;padding:9px 12px;font-size:12px;cursor:pointer}.destination-chip:hover,.destination-chip.active{border-color:var(--yellow);color:var(--yellow)}.destination-chip.hidden{display:none}.registry-polaroid{width:min(340px,75%);margin:65px auto 0}.registry-polaroid img{width:100%;height:auto;box-shadow:0 28px 65px rgba(0,0,0,.4)}

.faq-section{grid-template-columns:1fr;gap:45px}.announcement{min-height:100vh}.floral-wrap img{max-height:390px}.story-grid,.proposal-split,.frames,.travel-layout,.attire-feature{grid-template-columns:1fr}.story-grid{margin-top:65px;gap:55px}.polaroid{max-width:430px}.proposal-wide img{height:62vh}.proposal-wide h2{left:24px;bottom:30px}.proposal-split img{height:64vh}.proposal-message p{text-align:left}.frames{grid-template-columns:1fr;gap:32px;max-width:680px;padding-top:40px}.frames figure{height:auto}.frames img,.frames video{height:auto!important;min-height:0;max-height:none}.frame-film{max-width:230px}.frame-video{max-width:360px;aspect-ratio:9/16}.frame-video video{height:100%;object-fit:cover}.frame-polaroid{max-width:320px;aspect-ratio:4/5}.frame-polaroid img{height:100%;object-fit:cover;object-position:center}.gift-options{grid-template-columns:1fr}.adventures-section{padding-top:105px}.adventure-map-wrap{min-height:420px}.adventure-map{min-height:420px;transform:scale(1.18);transform-origin:center}.map-card{left:16px;bottom:16px;width:calc(100% - 32px)}.adventures-controls{gap:8px}.adventure-filter{font-size:10px;padding:9px 11px}.registry-polaroid{width:min(300px,88%)}.hotel-grid{grid-template-columns:1fr}.section-title{font-size:64px}.event-list article{grid-template-columns:95px 1fr}.attire-feature img{max-height:570px}.scroll-cue{display:none}}
@media(max-width:560px){.hero-media video{height:48vh}.hero-title h1{font-size:60px}.announcement h2{font-size:66px}.proposal-wide img{height:54vh}.proposal-wide h2{font-size:58px}.actions{flex-direction:column;gap:10px}.section-title{font-size:55px}.attire-feature img{max-height:480px}.frame-film{max-width:185px}.frame-video{max-width:280px}.frame-polaroid{max-width:280px}.footer-logo{height:36px;margin:16px auto 18px}.rsvp h2{font-size:92px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.scroll-cue{animation:none}.proposal-wide img{transition:none}}

/* v11 refinements: accurate world outlines and left-aligned registry photo */
.adventures-controls{display:none!important}
.world-countries path{fill:#151515;stroke:#444;stroke-width:.65;vector-effect:non-scaling-stroke}
.registry-visual{display:flex;flex-direction:column;align-items:flex-start}
.registry-polaroid{width:min(430px,100%);margin:80px 0 0}
.registry-polaroid img{width:100%;height:auto;box-shadow:0 28px 65px rgba(0,0,0,.4)}
@media(max-width:950px){.registry-section{grid-template-columns:1fr}.registry-polaroid{width:min(360px,88%);margin:48px 0 20px}.adventure-map{transform:none;min-height:420px}}

/* v12 mobile flow corrections */
section[id]{scroll-margin-top:92px}

@media(max-width:950px){
  /* Keep the mobile hero in a clean vertical sequence. */
  .hero{
    min-height:auto;
    padding-top:92px;
    padding-bottom:46px;
  }

  .hero-media{order:1}
  .hero-title{order:2;margin-top:4px}

  /* Orchid should be the first full-width item after the names. */
  .announcement{
    display:flex;
    flex-direction:column;
    grid-template-columns:none;
    min-height:auto;
    gap:30px;
    align-items:center;
    padding-top:38px;
    padding-bottom:86px;
    overflow:visible;
  }

  .floral-wrap{
    order:1;
    width:100%;
    display:flex;
    justify-content:center;
  }

  .floral-wrap img{
    width:min(430px,94vw);
    max-height:none;
    height:auto;
    margin:0 auto;
    object-fit:contain;
  }

  .announcement-copy{
    order:2;
    width:100%;
    position:relative;
    z-index:1;
  }

  .announcement h2{
    margin:20px 0 22px;
    white-space:nowrap;
  }

  /* Prevent later sections and anchored headings from colliding. */
  .content-section,
  .faq-section{
    min-height:auto;
    position:relative;
    clear:both;
  }

  #schedule{
    padding-top:112px;
  }

  #schedule .section-title{
    position:relative;
    z-index:1;
    margin-bottom:18px;
  }
}

@media(max-width:560px){
  .hero{padding-top:84px;padding-bottom:34px}
  .announcement{padding-top:24px;gap:22px;padding-bottom:72px}
  .floral-wrap img{width:min(390px,96vw)}
  .announcement-copy .eyebrow{margin-top:0}
  .announcement h2{font-size:clamp(54px,17vw,72px)}
  #schedule{padding-top:100px}
}


/* v13: simplified headings, accessible map controls, and definitive mobile schedule layout */
.story-copy .story-lead,.adventures-heading .kicker,.adventures-intro,.destination-list{display:none!important}
.adventures-heading{margin-bottom:48px}
.marker-hit{fill:transparent;pointer-events:all}
.map-card-controls{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:8px;align-items:center;margin-top:12px}
.map-nav-button,.destination-select{height:44px;border:1px solid #3a3a3a;background:#090909;color:#f7f5ef}
.map-nav-button{font-size:20px;cursor:pointer;color:var(--yellow)}
.map-nav-button:hover,.map-nav-button:focus-visible{border-color:var(--yellow)}
.destination-select{width:100%;min-width:0;padding:0 10px;font-size:13px}

@media(max-width:950px){
  section[id]{scroll-margin-top:86px}
  #schedule.content-section{
    display:block!important;
    grid-template-columns:none!important;
    min-height:auto!important;
    padding-top:150px!important;
    padding-bottom:90px!important;
  }
  #schedule .section-title{
    display:block!important;
    position:static!important;
    margin:0 0 46px!important;
    line-height:.92!important;
  }
  #schedule .section-content{
    display:block!important;
    width:100%!important;
    max-width:none!important;
  }
  #schedule .section-content>.kicker{
    display:block!important;
    position:static!important;
    margin:0 0 28px!important;
    line-height:1.5!important;
  }
  .adventures-section{padding-left:16px;padding-right:16px}
  .adventures-heading{margin-bottom:28px}
  .adventure-map-wrap{min-height:540px;display:flex;flex-direction:column;overflow:hidden}
  .adventure-map{width:100%;min-height:0;height:auto;transform:none!important;flex:1 1 auto}
  .destination-marker .marker-dot{r:8px}
  .map-card{
    position:relative!important;
    left:auto!important;
    bottom:auto!important;
    width:100%!important;
    margin-top:auto;
    border-left:0;
    border-top:3px solid var(--yellow);
    padding:18px 16px 16px;
    background:#050505;
  }
  .map-card-controls{grid-template-columns:48px minmax(0,1fr) 48px}
  .map-nav-button,.destination-select{height:48px}
}

@media(max-width:560px){
  #schedule.content-section{padding-top:165px!important}
  #schedule .section-title{font-size:clamp(52px,17vw,72px)!important;margin-bottom:52px!important}
  .adventure-map-wrap{min-height:500px}
  .map-card strong{font-size:20px}
  .destination-select{font-size:12px}
}


/* v14: Lakeland, selected-marker state, and wider desktop destination controls */
.destination-marker.active .marker-dot{
  fill:#2f9e5b;
  transform:scale(1.45);
}
.destination-marker.active .marker-pulse{
  stroke:#2f9e5b;
  opacity:.8;
}
@media(min-width:951px){
  .map-card{
    width:min(460px,calc(100% - 56px));
  }
  .map-card-controls{
    grid-template-columns:48px minmax(0,1fr) 48px;
    gap:10px;
  }
  .destination-select{
    padding:0 14px;
    font-size:13px;
  }
}


/* v15: keep the desktop map card clear of South America and animate to each destination */
@media(min-width:951px){
  .map-card{
    left:auto;
    right:28px;
    bottom:28px;
  }
}
#adventure-map{
  will-change:view-box;
}


/* v16: full-world opening view and clearer close-up destination navigation */
.marker-symbol{
  transform-box:fill-box;
  transform-origin:center;
  transition:transform .18s ease;
}
/* Only the active destination pulses; this prevents dense Florida markers from becoming a yellow blur. */
.destination-marker:not(.active) .marker-pulse{
  animation:none;
  opacity:.12;
  r:9px;
}
.destination-marker.active .marker-pulse{
  animation:mapPulse 2.2s infinite;
}
