:root{
  --ivory:#fbf5ec;
  --cream:#fffaf4;
  --paper:#f3e8dc;
  --paper-deep:#e9d7c7;
  --ink:#28131e;
  --ink-soft:#5f4651;
  --wine:#701f45;
  --wine-deep:#421328;
  --rose:#ba2f62;
  --coral:#df695f;
  --emerald:#0d6d61;
  --emerald-deep:#08483f;
  --violet:#7751a0;
  --gold:#c5953f;
  --gold-bright:#e5bd72;
  --line:rgba(40,19,30,.13);
  --line-light:rgba(255,255,255,.2);
  --shadow:0 28px 80px rgba(63,28,43,.16);
  --shadow-soft:0 14px 34px rgba(63,28,43,.10);
  --serif:"Bodoni Moda","Gloock",Georgia,serif;
  --display:"Bodoni Moda","Gloock",Georgia,serif;
  --condensed:"Oswald","Manrope",Arial,sans-serif;
  --script:"Corinthia",cursive;
  --sans:"Manrope",Arial,sans-serif;
  --pad:clamp(1rem,4vw,4.5rem);
  --container:min(1220px,calc(100vw - var(--pad)*2));
  --radius:32px;
  --ease:cubic-bezier(.22,1,.36,1);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--ivory)}
body{
  margin:0;
  min-height:100vh;
  overflow-x:hidden;
  color:var(--ink);
  background:
    radial-gradient(circle at 8% 4%,rgba(186,47,98,.08),transparent 17rem),
    radial-gradient(circle at 96% 18%,rgba(13,109,97,.07),transparent 20rem),
    linear-gradient(180deg,var(--ivory),#f8efe5 62%,var(--ivory));
  font:400 15px/1.75 var(--sans);
}
body.menu-open,body.modal-open{overflow:hidden}
a{color:inherit}
img{display:block;max-width:100%}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
::selection{background:rgba(186,47,98,.18)}

/* Structural utilities */
.skip-link{position:fixed;left:1rem;top:-8rem;z-index:10010;padding:.8rem 1rem;border-radius:999px;background:var(--wine);color:white;text-decoration:none}
.skip-link:focus{top:1rem}
.eyebrow{margin:0 0 .9rem;color:var(--wine);font:600 .68rem/1.2 var(--condensed);letter-spacing:.25em;text-transform:uppercase}
.lead{font:500 clamp(1.35rem,2.4vw,2.25rem)/1.3 var(--serif);color:var(--ink)}
p{margin-top:0;color:var(--ink-soft)}
h1,h2,h3{margin-top:0;font-family:var(--display);font-weight:500;letter-spacing:-.045em;color:var(--ink)}
h2{font-size:clamp(2.6rem,6vw,5.5rem);line-height:.94}
h3{font-size:clamp(1.35rem,2.4vw,2.05rem);line-height:1.02}
small{color:#826b75}
.paper-section,.event-portals,.photo-preview,.dark-section,.gallery-section,.lookbook-section,.party-section,.closing-cta,.deadline-strip,.contact-strip,.dress-editorial,.hotel-section,.resort-section,.faq-section,.rsvp-section{
  width:var(--container);
  margin:0 auto clamp(1.2rem,3vw,2.4rem);
}
.paper-section,.gallery-section,.lookbook-section,.party-section,.closing-cta,.deadline-strip,.faq-section,.rsvp-section,.dress-editorial{
  position:relative;
  overflow:hidden;
  border:1px solid rgba(40,19,30,.1);
  border-radius:var(--radius);
  background:rgba(255,250,244,.86);
  box-shadow:var(--shadow-soft);
}
.dark-section,.photo-preview,.hotel-section,.resort-section,.contact-strip{
  position:relative;
  overflow:hidden;
  border-radius:var(--radius);
  border:1px solid rgba(255,255,255,.12);
  color:white;
  background:
    radial-gradient(circle at 86% 12%,rgba(229,189,114,.18),transparent 18rem),
    linear-gradient(135deg,var(--wine-deep),#251019 70%);
  box-shadow:var(--shadow);
}
.dark-section h2,.dark-section h3,.dark-section p,.dark-section strong,.dark-section a,.photo-preview h2,.photo-preview p,.hotel-section h2,.hotel-section p,.resort-section h2,.resort-section p,.contact-strip p{color:white}
.dark-section .eyebrow,.photo-preview .eyebrow,.hotel-section .eyebrow,.resort-section .eyebrow,.contact-strip .eyebrow{color:var(--gold-bright)}
.section-number{display:inline-flex;align-items:center;gap:.6rem;padding:.5rem .85rem;border:1px solid var(--line);border-radius:999px;color:var(--wine);font:600 .68rem var(--condensed);letter-spacing:.18em;text-transform:uppercase;background:rgba(255,255,255,.65)}
.section-number::before{content:"";width:24px;height:1px;background:var(--gold)}
.hero-peony,.corner-peony,.party-peony{display:none!important}

.button,.text-link{display:inline-flex;align-items:center;gap:.75rem;text-decoration:none}
.button{position:relative;isolation:isolate;overflow:hidden;border:0;border-radius:999px;padding:1rem 1.35rem;background:linear-gradient(135deg,var(--wine),var(--rose));color:#fff;font-weight:700;box-shadow:0 14px 30px rgba(112,31,69,.23);transition:transform .35s var(--ease),box-shadow .35s var(--ease)}
.button::after{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(110deg,transparent 20%,rgba(255,255,255,.34) 48%,transparent 70%);transform:translateX(-130%);transition:transform .8s var(--ease)}
.button:hover{transform:translateY(-3px);box-shadow:0 20px 34px rgba(112,31,69,.27)}
.button:hover::after{transform:translateX(130%)}
.button i{font-style:normal}
.button-light{background:rgba(255,255,255,.08);color:white;border:1px solid rgba(255,255,255,.24);box-shadow:none;backdrop-filter:blur(10px)}
.text-link{font-weight:700;color:var(--wine)}
.text-link span{color:var(--gold)}

/* Show opener / loader */
.page-loader{position:fixed;inset:0;z-index:10000;display:grid;place-content:center;text-align:center;color:white;background:
  radial-gradient(circle at 50% 40%,rgba(229,189,114,.22),transparent 13rem),
  linear-gradient(140deg,var(--wine-deep),#1a0b14 70%);transition:opacity .75s var(--ease),visibility .75s var(--ease)}
.page-loader::before{content:"PREVIOUSLY ON";font:600 .72rem var(--condensed);letter-spacing:.35em;color:var(--gold-bright);margin-bottom:.75rem}
.page-loader.is-hidden{opacity:0;visibility:hidden}
.loader-monogram{font:500 clamp(3.6rem,9vw,8rem)/.85 var(--display);letter-spacing:-.04em}
.loader-monogram span{font-family:var(--script);font-size:1.2em;color:var(--gold-bright)}
.loader-line{width:min(330px,62vw);height:2px;margin:1.3rem auto;background:rgba(255,255,255,.16);overflow:hidden}
.loader-line i{display:block;width:45%;height:100%;background:linear-gradient(90deg,transparent,var(--gold-bright),transparent);animation:loader 1.1s ease-in-out infinite}
.page-loader p{margin:0;color:rgba(255,255,255,.72);font:500 .68rem var(--condensed);letter-spacing:.28em;text-transform:uppercase}
@keyframes loader{from{transform:translateX(-120%)}to{transform:translateX(240%)}}
body.is-leaving::after{content:"";position:fixed;inset:0;z-index:9998;background:linear-gradient(145deg,var(--wine-deep),#160912);transform:translateY(100%);animation:episodeWipe .55s var(--ease) forwards;pointer-events:none}
@keyframes episodeWipe{to{transform:translateY(0)}}

/* Reality-show chrome injected by JS */
.show-progress{position:fixed;z-index:930;top:0;left:0;width:100%;height:3px;background:rgba(112,31,69,.08)}
.show-progress i{display:block;width:0;height:100%;background:linear-gradient(90deg,var(--wine),var(--rose),var(--gold));box-shadow:0 0 12px rgba(186,47,98,.45)}
.on-air-bug{position:fixed;z-index:890;right:1rem;top:5.6rem;display:flex;align-items:center;gap:.45rem;padding:.52rem .72rem;border-radius:999px;background:rgba(255,250,244,.82);border:1px solid var(--line);box-shadow:0 8px 22px rgba(40,19,30,.1);backdrop-filter:blur(12px);font:600 .62rem var(--condensed);letter-spacing:.14em;text-transform:uppercase;color:var(--wine)}
.on-air-bug i{width:7px;height:7px;border-radius:50%;background:#d72e44;box-shadow:0 0 0 0 rgba(215,46,68,.35);animation:recPulse 1.6s infinite}
@keyframes recPulse{50%{box-shadow:0 0 0 7px rgba(215,46,68,0)}}
.episode-badge{display:inline-flex;align-items:center;gap:.6rem;margin-bottom:1rem;padding:.5rem .75rem;border:1px solid rgba(112,31,69,.15);border-radius:999px;background:rgba(255,255,255,.64);color:var(--wine);font:600 .67rem var(--condensed);letter-spacing:.2em;text-transform:uppercase}
.episode-badge::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--rose)}

/* Navigation */
.site-header{position:fixed;z-index:900;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;padding:1.1rem var(--pad);transition:background .35s,padding .35s,box-shadow .35s}
.site-header.scrolled{padding:.72rem var(--pad);background:rgba(255,250,244,.86);backdrop-filter:blur(18px);box-shadow:0 1px 0 rgba(40,19,30,.08)}
.brand{display:inline-grid;grid-template-columns:auto 18px auto;align-items:center;gap:4px;text-decoration:none;color:var(--wine);font:600 1.2rem var(--display)}
.brand i{display:block;width:18px;height:1px;transform:rotate(-55deg);background:var(--gold)}
.desktop-nav{display:flex;align-items:center;gap:clamp(.75rem,1.8vw,1.75rem)}
.desktop-nav a{position:relative;color:var(--ink);text-decoration:none;font:600 .63rem var(--condensed);letter-spacing:.16em;text-transform:uppercase}
.desktop-nav a:not(.nav-rsvp)::after{content:"";position:absolute;left:0;right:100%;bottom:-.42rem;height:2px;background:var(--rose);transition:right .3s var(--ease)}
.desktop-nav a:hover::after,.desktop-nav a.active::after{right:0}
.nav-rsvp{padding:.75rem 1rem;border-radius:999px;background:var(--wine);color:white!important;box-shadow:0 8px 20px rgba(112,31,69,.18)}
.menu-button{display:none;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:rgba(255,255,255,.65);padding:0 10px}
.menu-button span{display:block;height:1.5px;margin:5px 0;background:var(--wine)}
.mobile-menu{position:fixed;inset:0;z-index:950;display:flex;flex-direction:column;justify-content:space-between;padding:1.4rem var(--pad) 2.4rem;color:white;background:
  radial-gradient(circle at 82% 13%,rgba(229,189,114,.2),transparent 18rem),
  linear-gradient(145deg,var(--wine-deep),#1a0913 72%);opacity:0;visibility:hidden;transform:translateY(-2%);transition:.5s var(--ease)}
.mobile-menu.open{opacity:1;visibility:visible;transform:none}
.mobile-menu-top{display:flex;justify-content:space-between;font:500 .68rem var(--condensed);letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.72)}
.menu-close{border:0;background:none;color:white;text-transform:uppercase;letter-spacing:.18em;font:.68rem var(--condensed)}
.mobile-menu nav{display:grid}
.mobile-menu nav a{padding:.25rem 0;border-bottom:1px solid rgba(255,255,255,.12);color:white;text-decoration:none;font:500 clamp(2.4rem,9vw,5rem)/1.08 var(--display);opacity:0;transform:translateY(22px);transition:.45s var(--ease)}
.mobile-menu.open nav a{opacity:1;transform:none}
.mobile-menu.open nav a:nth-child(2){transition-delay:.04s}.mobile-menu.open nav a:nth-child(3){transition-delay:.08s}.mobile-menu.open nav a:nth-child(4){transition-delay:.12s}.mobile-menu.open nav a:nth-child(5){transition-delay:.16s}.mobile-menu.open nav a:nth-child(6){transition-delay:.2s}.mobile-menu.open nav a:nth-child(7){transition-delay:.24s}
.mobile-rsvp{color:var(--gold-bright)!important}
.mobile-menu>p{color:rgba(255,255,255,.72);font:.68rem var(--condensed);letter-spacing:.16em;text-transform:uppercase}

/* Hero = opening credits */
.hero-scene{position:relative;isolation:isolate;overflow:hidden;width:min(1380px,calc(100vw - 1rem));min-height:100svh;margin:.5rem auto clamp(1.2rem,3vw,2.4rem);border-radius:38px;border:1px solid rgba(112,31,69,.11);box-shadow:var(--shadow);background:
  radial-gradient(circle at 16% 16%,rgba(186,47,98,.15),transparent 22rem),
  radial-gradient(circle at 86% 20%,rgba(13,109,97,.12),transparent 20rem),
  linear-gradient(138deg,#fffaf4 0%,#f4e6db 56%,#edddd0 100%)}
.hero-scene::before{content:"";position:absolute;inset:16px;z-index:-1;border-radius:28px;background:
  linear-gradient(var(--wine),var(--wine)) left top/42px 2px no-repeat,
  linear-gradient(var(--wine),var(--wine)) left top/2px 42px no-repeat,
  linear-gradient(var(--wine),var(--wine)) right top/42px 2px no-repeat,
  linear-gradient(var(--wine),var(--wine)) right top/2px 42px no-repeat,
  linear-gradient(var(--wine),var(--wine)) left bottom/42px 2px no-repeat,
  linear-gradient(var(--wine),var(--wine)) left bottom/2px 42px no-repeat,
  linear-gradient(var(--wine),var(--wine)) right bottom/42px 2px no-repeat,
  linear-gradient(var(--wine),var(--wine)) right bottom/2px 42px no-repeat;opacity:.32;pointer-events:none}
.hero-scene::after{content:"SEASON 01";position:absolute;z-index:-1;right:-.03em;bottom:-.14em;color:rgba(112,31,69,.045);font:700 clamp(7rem,19vw,18rem)/1 var(--condensed);letter-spacing:-.04em;white-space:nowrap;pointer-events:none}
.home-hero{display:grid;place-content:center;padding:8rem var(--pad) 5rem}
.page-hero{display:flex;align-items:center;min-height:78svh;padding:8rem var(--pad) 4.5rem}
.home-page .hero-scene{background:
  radial-gradient(circle at 18% 20%,rgba(186,47,98,.17),transparent 22rem),
  radial-gradient(circle at 86% 18%,rgba(13,109,97,.13),transparent 19rem),
  radial-gradient(circle at 76% 86%,rgba(197,149,63,.13),transparent 16rem),
  linear-gradient(135deg,#fffaf4,#f4e6dc 58%,#ead8cc)}
.traditional-hero{background:radial-gradient(circle at 17% 17%,rgba(223,105,95,.2),transparent 20rem),radial-gradient(circle at 85% 16%,rgba(197,149,63,.14),transparent 18rem),linear-gradient(135deg,#fff8f2,#f1ddd2 58%,#ead1c8)}
.white-hero{background:radial-gradient(circle at 16% 18%,rgba(13,109,97,.18),transparent 21rem),radial-gradient(circle at 86% 18%,rgba(119,81,160,.13),transparent 18rem),linear-gradient(135deg,#fffaf4,#e9eee8 58%,#dfe7e0)}
.party-hero{background:radial-gradient(circle at 18% 18%,rgba(186,47,98,.15),transparent 20rem),radial-gradient(circle at 85% 18%,rgba(119,81,160,.15),transparent 18rem),linear-gradient(135deg,#fffaf4,#f0e1e7 58%,#e9d7df)}
.gallery-hero{background:radial-gradient(circle at 16% 18%,rgba(119,81,160,.18),transparent 20rem),radial-gradient(circle at 85% 18%,rgba(13,109,97,.12),transparent 18rem),linear-gradient(135deg,#fffaf4,#ede6f1 58%,#e2dce8)}
.faq-hero{background:radial-gradient(circle at 18% 18%,rgba(197,149,63,.16),transparent 20rem),radial-gradient(circle at 85% 18%,rgba(112,31,69,.12),transparent 18rem),linear-gradient(135deg,#fffaf4,#efe5da 58%,#e7dbd0)}
.rsvp-hero{background:radial-gradient(circle at 16% 18%,rgba(186,47,98,.16),transparent 20rem),radial-gradient(circle at 85% 18%,rgba(13,109,97,.13),transparent 18rem),linear-gradient(135deg,#fffaf4,#eee4e7 58%,#e0e9e4)}
.hero-kicker{position:absolute;left:var(--pad);top:43%;writing-mode:vertical-rl;transform:rotate(180deg);color:var(--wine);font:600 .65rem var(--condensed);letter-spacing:.26em;text-transform:uppercase}
.hero-name{position:relative;width:min(1080px,83vw);margin:0 auto;color:var(--wine);font:500 clamp(5.5rem,14vw,13.2rem)/.8 var(--display);letter-spacing:-.06em;text-transform:uppercase;text-shadow:0 12px 38px rgba(112,31,69,.08)}
.hero-name .offset{padding-left:14%}
.hero-name em{position:absolute;z-index:3;left:17%;top:39%;font:400 clamp(3.3rem,7.5vw,7.3rem)/1 var(--script);text-transform:none;color:var(--gold)}
.hero-line{display:block;overflow:visible!important;padding:.09em 0 .14em}
.hero-line b{display:block;font:inherit;opacity:0;transform:translateY(34px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
body.ready .hero-line b{opacity:1;transform:none}
.hero-line:nth-child(3) b{transition-delay:.12s}
.hero-animate{opacity:0;transform:translateY(16px);transition:opacity .85s var(--ease),transform .85s var(--ease)}
body.ready .hero-animate{opacity:1;transform:none}
.hero-caption{margin:2rem 0 0 34%;color:var(--ink-soft);font:600 .66rem var(--condensed);letter-spacing:.2em;text-transform:uppercase}
.hero-caption p{margin:0 0 .2rem;color:var(--ink);font:500 1.35rem var(--display);letter-spacing:.02em;text-transform:none}
.hero-caption span{color:var(--wine)}
.hero-dates{position:absolute;right:var(--pad);bottom:4rem;display:flex;align-items:center;gap:1.25rem}
.hero-dates a{color:var(--ink-soft);text-decoration:none;font:600 .62rem var(--condensed);letter-spacing:.16em;text-transform:uppercase}
.hero-dates b{display:block;margin-top:.2rem;color:var(--wine);font:500 1.25rem var(--display);letter-spacing:.03em}
.hero-dates i{width:1px;height:54px;background:linear-gradient(transparent,var(--gold),transparent)}
.page-hero-copy{position:relative;z-index:2;width:min(1110px,88vw);margin-left:clamp(0rem,5vw,6rem)}
.page-hero h1{margin:0;color:var(--wine);font:500 clamp(4.2rem,9.5vw,9.5rem)/.9 var(--display);letter-spacing:-.055em;text-transform:uppercase;overflow:visible}
.page-hero h1 span:nth-child(2){padding-left:7%}
.page-hero .hero-line{overflow:visible!important;min-height:1.08em}
.hero-intro{max-width:690px;margin:1.8rem 0 0 14%;color:var(--ink);font:500 clamp(1.2rem,2vw,1.9rem)/1.4 var(--serif)}
.page-hero .button{margin:1.7rem 0 0 14%}
.vertical-date{position:absolute;right:var(--pad);top:33%;display:grid;justify-items:center;color:var(--wine);font:500 1.4rem var(--display)}
.vertical-date i{width:1px;height:28px;margin:.4rem 0;background:linear-gradient(transparent,var(--gold),transparent)}
.gold-thread{position:absolute;z-index:0;right:4%;top:37%;width:min(880px,70vw);pointer-events:none;opacity:.5}
.gold-thread path{fill:none;stroke:var(--gold);stroke-width:1.6;stroke-linecap:round;stroke-dasharray:1200;stroke-dashoffset:1200;transition:stroke-dashoffset 2s .4s var(--ease)}
body.ready .gold-thread path{stroke-dashoffset:0}
.scroll-prompt{position:absolute;left:50%;bottom:1.6rem;transform:translateX(-50%);color:var(--wine);text-decoration:none;font:600 .6rem var(--condensed);letter-spacing:.2em;text-transform:uppercase}
.scroll-prompt span{display:inline-block;width:42px;margin:0 0 3px 9px;border-top:1px solid currentColor;animation:scrollLine 1.7s ease-in-out infinite}
@keyframes scrollLine{50%{width:72px}}

/* Scroll reveal */
.reveal,.reveal-left,.reveal-right{opacity:0;transform:translateY(28px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
.reveal-left{transform:translateX(-28px)}
.reveal-right{transform:translateX(28px)}
.reveal.revealed,.reveal-left.revealed,.reveal-right.revealed{opacity:1;transform:none}

/* Home / episode guide */
.editorial-grid{display:grid;grid-template-columns:auto minmax(240px,.8fr) minmax(320px,1fr);gap:2rem;align-items:start;padding:clamp(1.7rem,4vw,3.2rem)}
.invitation::before{content:"TONIGHT'S PREMISE";position:absolute;right:2rem;top:1.5rem;color:rgba(112,31,69,.08);font:700 clamp(2rem,5vw,4.8rem) var(--condensed);letter-spacing:.04em}
.event-portals{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.event-portal{position:relative;min-height:430px;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:2rem;border-radius:var(--radius);border:1px solid rgba(40,19,30,.1);text-decoration:none;box-shadow:var(--shadow-soft);transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.event-portal::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.78),rgba(255,255,255,.22));z-index:-1}
.event-portal::after{content:"EPISODE";position:absolute;right:-.04em;bottom:-.18em;color:rgba(255,255,255,.2);font:700 7rem var(--condensed);letter-spacing:-.05em;z-index:-1}
.portal-traditional{color:white;background:radial-gradient(circle at 83% 18%,rgba(229,189,114,.25),transparent 12rem),linear-gradient(145deg,#a83c4e,var(--wine-deep))}
.portal-white{color:white;background:radial-gradient(circle at 83% 18%,rgba(229,189,114,.22),transparent 12rem),linear-gradient(145deg,#168577,var(--emerald-deep))}
.event-portal h2,.event-portal p,.event-portal .eyebrow{color:white}
.event-portal .eyebrow{opacity:.76}
.event-portal:hover{transform:translateY(-8px);box-shadow:var(--shadow)}
.portal-index{align-self:flex-start;padding:.5rem .75rem;border:1px solid rgba(255,255,255,.25);border-radius:999px;background:rgba(255,255,255,.1);font:600 .68rem var(--condensed);letter-spacing:.2em;text-transform:uppercase}
.event-portal h2{font-size:clamp(2.4rem,4.5vw,4.4rem);line-height:.93}
.portal-arrow{font-weight:700}
.story-teaser{padding:clamp(1.7rem,4vw,3.2rem);background:linear-gradient(135deg,#fffaf4,#f2e2e8)}
.story-layout{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(320px,1fr);gap:2rem}
.story-layout::after{content:"CONFESSIONAL";position:absolute;right:2rem;bottom:-.12em;color:rgba(112,31,69,.06);font:700 clamp(3.5rem,9vw,8rem) var(--condensed)}
.soundtrack-note strong{color:var(--wine)}
.photo-preview{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(300px,1fr);gap:2rem;padding:clamp(1.7rem,4vw,3.2rem)}
.photo-preview::after{content:"SNEAK PEEK";position:absolute;right:1rem;top:-.14em;color:rgba(255,255,255,.06);font:700 clamp(4rem,12vw,10rem) var(--condensed)}
.preview-stack{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:end}
.preview-stack img{height:220px;object-fit:cover;border-radius:22px;border:1px solid rgba(255,255,255,.15);box-shadow:0 18px 38px rgba(0,0,0,.22)}
.preview-stack img:first-child{grid-column:1/-1;height:335px}

/* Shared cards */
.detail-list>div,.tailor-card,.tailor-note,.look-card,.party-card,.faq-item,.cost-card,.celebration-toggles label span,.payment-plans label span,.gallery-note{border:1px solid var(--line);border-radius:24px;background:rgba(255,255,255,.72);box-shadow:0 8px 22px rgba(63,28,43,.06)}
.detail-list span,.resort-facts span,.card-number,.party-number,.look-number,.gallery-item span,.faq-item summary span,.cost-card dt{display:block;color:var(--wine);font:600 .68rem var(--condensed);letter-spacing:.17em;text-transform:uppercase}

/* Traditional */
.details-spread{display:grid;grid-template-columns:auto minmax(240px,.78fr) minmax(300px,1fr);gap:2rem;padding:clamp(1.7rem,4vw,3.2rem)}
.detail-list{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.detail-list>div{padding:1rem}
.detail-list strong{display:block;margin-top:.35rem;color:var(--ink);line-height:1.45}
.dress-editorial{display:grid;grid-template-columns:minmax(260px,.9fr) minmax(270px,1fr);gap:2rem;align-items:center;padding:clamp(1.7rem,4vw,3.2rem);background:linear-gradient(135deg,#fffaf4,#f4e4df)}
.fabric-art{position:relative;min-height:360px;overflow:hidden;border-radius:28px;background:linear-gradient(145deg,var(--wine),#b34b68);box-shadow:var(--shadow-soft)}
.fabric-art::before{content:"WARDROBE";position:absolute;right:-.03em;top:-.2em;color:rgba(255,255,255,.08);font:700 6rem var(--condensed)}
.fabric-circle{position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.22)}
.fabric-circle.one{width:260px;height:260px;left:8%;top:13%;background:radial-gradient(circle,rgba(229,189,114,.28),transparent 65%)}
.fabric-circle.two{width:180px;height:180px;right:7%;bottom:12%;background:radial-gradient(circle,rgba(119,81,160,.4),transparent 65%)}
.fabric-lines{position:absolute;inset:20px;border-radius:22px;background:repeating-linear-gradient(105deg,transparent 0 18px,rgba(255,255,255,.08) 19px 20px)}
.fabric-art span{position:absolute;left:2rem;bottom:2rem;color:white;font:500 clamp(2rem,4vw,3.7rem)/.95 var(--display)}
.tailor-section{display:grid;grid-template-columns:minmax(260px,.85fr) minmax(280px,1fr);gap:1rem;padding:clamp(1.7rem,4vw,3.2rem)}
.tailor-card,.tailor-note{padding:1.5rem}
.tailor-card h2 small{display:block;margin-top:.5rem;font:600 .95rem var(--sans);letter-spacing:.06em}
.hotel-section{display:grid;grid-template-columns:minmax(250px,.8fr) minmax(300px,1fr);gap:2rem;padding:clamp(1.7rem,4vw,3.2rem)}
.hotel-list,.visa-list{display:grid;gap:.85rem}
.hotel-list a,.visa-list a{display:grid;grid-template-columns:auto 1fr auto;gap:1rem;align-items:center;padding:1rem 1.1rem;border:1px solid rgba(255,255,255,.14);border-radius:22px;background:rgba(255,255,255,.08);color:white;text-decoration:none;transition:transform .3s var(--ease),background .3s}
.hotel-list a:hover,.visa-list a:hover{transform:translateX(7px);background:rgba(255,255,255,.13)}
.hotel-list a span,.visa-list a span{color:var(--gold-bright);font-weight:700}
.hotel-list a i,.visa-list a i{font-style:normal;color:rgba(255,255,255,.7)}
.closing-cta,.contact-strip{padding:clamp(2rem,5vw,3.6rem);text-align:center}
.closing-cta::before{content:"COMING UP";position:absolute;left:50%;top:.5rem;transform:translateX(-50%);color:rgba(112,31,69,.08);font:700 5rem var(--condensed);white-space:nowrap}
.ocean-cta{background:linear-gradient(135deg,#e5f0eb,#eee4f0)}

/* White wedding */
.itinerary-section{display:grid;grid-template-columns:minmax(250px,.75fr) minmax(320px,1fr);gap:2rem;padding:clamp(1.7rem,4vw,3.2rem)}
.itinerary-heading::after{content:"EPISODE GUIDE";display:block;margin-top:1rem;color:rgba(112,31,69,.35);font:700 1rem var(--condensed);letter-spacing:.16em}
.accordion{display:grid;gap:.9rem}
.accordion-item{overflow:hidden;border:1px solid var(--line);border-radius:24px;background:rgba(255,255,255,.7);transition:transform .3s,border-color .3s}
.accordion-item.open{transform:translateY(-2px);border-color:rgba(112,31,69,.25)}
.accordion-item button{width:100%;display:grid;grid-template-columns:auto 1fr auto auto;gap:1rem;align-items:center;padding:1rem 1.1rem;border:0;background:none;text-align:left}
.accordion-item button span{color:var(--wine);font:600 .68rem var(--condensed);letter-spacing:.17em}
.accordion-item button strong{color:var(--ink);font:500 1.45rem var(--display)}
.accordion-item time{color:var(--ink-soft);font:600 .68rem var(--condensed);letter-spacing:.15em}
.accordion-item button i{font-style:normal;color:var(--wine);font-size:1.4rem;transition:transform .3s}
.accordion-item.open button i{transform:rotate(45deg)}
.accordion-panel{max-height:0;overflow:hidden;padding:0 1.1rem;transition:max-height .45s var(--ease),padding .45s var(--ease)}
.accordion-item.open .accordion-panel{max-height:280px;padding:0 1.1rem 1.1rem}
.lookbook-section{padding:clamp(1.7rem,4vw,3.2rem);background:linear-gradient(135deg,#fffaf4,#f3e7e3)}
.lookbook-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.look-card{position:relative;overflow:hidden;padding:1.35rem;transition:transform .35s,border-color .35s}
.look-card::after{content:"LOOK";position:absolute;right:-.03em;bottom:-.25em;color:rgba(112,31,69,.05);font:700 5rem var(--condensed)}
.look-card:hover{transform:translateY(-5px);border-color:rgba(112,31,69,.25)}
.swatches{display:flex;gap:.6rem;margin-top:1rem}
.swatches span{width:42px;height:42px;border-radius:50%;background:var(--sw);box-shadow:inset 0 0 0 2px rgba(255,255,255,.55),0 8px 18px rgba(40,19,30,.12)}
.resort-wave{height:72px;margin-top:1rem;border-radius:999px;background:linear-gradient(90deg,var(--emerald),#53aa98,var(--gold));overflow:hidden}
.resort-wave::after{content:"";display:block;width:50%;height:100%;background:linear-gradient(110deg,transparent,rgba(255,255,255,.35),transparent);animation:wave 4s infinite}
@keyframes wave{from{transform:translateX(-120%)}to{transform:translateX(260%)}}
.resort-section{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(320px,1fr);gap:2rem;padding:clamp(1.7rem,4vw,3.2rem);background:radial-gradient(circle at 88% 14%,rgba(229,189,114,.18),transparent 18rem),linear-gradient(135deg,var(--emerald-deep),#092d29)}
.resort-facts{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}
.resort-facts>div{padding:1rem;border:1px solid rgba(255,255,255,.14);border-radius:22px;background:rgba(255,255,255,.08)}
.resort-facts strong{display:block;color:white;font:500 1.4rem var(--display)}
.resort-facts span{color:var(--gold-bright)}
.resort-facts .button{grid-column:1/-1;justify-self:start}
.visa-section{display:grid;grid-template-columns:minmax(240px,.78fr) minmax(320px,1fr);gap:2rem;padding:clamp(1.7rem,4vw,3.2rem)}
.visa-list a{color:var(--ink);background:white;border-color:var(--line)}
.visa-list a strong{color:var(--ink)}
.visa-list a i{color:var(--ink-soft)}
.visa-list a span{color:var(--wine)}

/* Wedding party = confessionals */
.party-section{padding:clamp(1.7rem,4vw,3.2rem)}
.party-title{max-width:36rem;margin-bottom:1.5rem}
.party-title::after{content:"CONFESSIONALS";display:block;color:rgba(112,31,69,.22);font:700 1rem var(--condensed);letter-spacing:.18em}
.party-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.party-card{position:relative;padding:1.15rem;overflow:hidden;transition:transform .35s,border-color .35s,box-shadow .35s}
.party-card:hover{transform:translateY(-6px);border-color:rgba(112,31,69,.23);box-shadow:var(--shadow-soft)}
.party-card::after{content:"CONFESSIONAL";position:absolute;right:.8rem;top:.75rem;color:rgba(112,31,69,.14);font:700 .58rem var(--condensed);letter-spacing:.16em}
.portrait-placeholder{height:135px;margin-bottom:1rem;display:grid;place-items:center;border-radius:22px;background:radial-gradient(circle at 28% 25%,rgba(229,189,114,.3),transparent 5rem),linear-gradient(145deg,#f0d5dc,#e1d5e9)}
.portrait-placeholder span{color:var(--wine);font:500 3rem var(--display)}
.groom-section{color:white;background:radial-gradient(circle at 88% 14%,rgba(229,189,114,.16),transparent 18rem),linear-gradient(135deg,var(--wine-deep),#21101a)}
.groom-section .party-card{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.13)}
.groom-section .party-card h3,.groom-section .party-card p{color:white}
.groom-section .party-number,.groom-section .eyebrow{color:var(--gold-bright)}
.groom-section .portrait-placeholder{background:radial-gradient(circle at 30% 24%,rgba(229,189,114,.25),transparent 5rem),linear-gradient(145deg,#5e2841,#2a1720)}
.groom-section .portrait-placeholder span{color:white}

/* Gallery = season archive */
.gallery-section{padding:clamp(1.7rem,4vw,3.2rem)}
.gallery-note{display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1rem 1.1rem;margin-bottom:1rem}
.gallery-note::before{content:"SEASON ARCHIVE";color:var(--wine);font:700 .66rem var(--condensed);letter-spacing:.17em}
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.gallery-item{position:relative;overflow:hidden;padding:0;border:1px solid var(--line);border-radius:22px;background:white;transition:transform .35s,box-shadow .35s}
.gallery-item:hover{transform:translateY(-5px) rotate(.3deg);box-shadow:var(--shadow-soft)}
.gallery-item img{width:100%;height:100%;aspect-ratio:4/5;object-fit:cover}
.gallery-item span{position:absolute;left:.8rem;bottom:.8rem;padding:.45rem .62rem;border-radius:999px;background:rgba(255,250,244,.82);backdrop-filter:blur(10px)}
.gallery-item:nth-child(8n+1),.gallery-item:nth-child(8n+5){grid-row:span 2}
.gallery-item:nth-child(8n+1) img,.gallery-item:nth-child(8n+5) img{aspect-ratio:4/7}
.lightbox{position:fixed;inset:0;z-index:980;display:grid;place-items:center;padding:2rem;background:rgba(29,10,20,.9);backdrop-filter:blur(14px);opacity:0;visibility:hidden;transition:.35s}
.lightbox.open{opacity:1;visibility:visible}
.lightbox figure{margin:0;max-width:min(1100px,88vw);max-height:82vh}
.lightbox img{max-height:82vh;width:auto;border-radius:26px;box-shadow:0 30px 80px rgba(0,0,0,.4)}
.lightbox-counter,.lightbox-close,.lightbox-arrow{position:absolute;border:1px solid rgba(255,255,255,.22);border-radius:999px;background:rgba(255,255,255,.1);color:white;backdrop-filter:blur(12px)}
.lightbox-counter{top:1rem;left:50%;transform:translateX(-50%);padding:.7rem 1rem}
.lightbox-close{top:1rem;right:1rem;padding:.7rem 1rem}
.lightbox-arrow{top:50%;transform:translateY(-50%);width:52px;height:52px;display:grid;place-items:center}
.lightbox-arrow.prev{left:1.2rem}.lightbox-arrow.next{right:1.2rem}

/* FAQ */
.faq-section{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;padding:clamp(1.7rem,4vw,3.2rem)}
.faq-column{display:grid;gap:.85rem;align-content:start}
.faq-column-title::after{content:"PRODUCER NOTES";display:block;color:rgba(112,31,69,.2);font:700 .72rem var(--condensed);letter-spacing:.16em}
.faq-item{padding:0 1rem}
.faq-item summary{display:grid;grid-template-columns:auto 1fr auto;gap:1rem;align-items:center;padding:1rem 0;list-style:none;cursor:pointer}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary strong{font-weight:700}
.faq-item summary i{font-style:normal;color:var(--wine);font-size:1.35rem;transition:transform .3s}
.faq-item[open] summary i{transform:rotate(45deg)}
.faq-item p{margin:0;padding:0 0 1rem}
.contact-strip a{color:white;text-decoration:none;font:500 clamp(1.6rem,4vw,3.6rem)/1 var(--display)}
.contact-strip span{color:var(--gold-bright)}

/* RSVP = finale decision */
.deadline-strip{display:flex;align-items:center;justify-content:center;gap:1.2rem;padding:1rem}
.deadline-strip::before{content:"FINAL DECISION";position:absolute;left:1rem;top:.6rem;color:rgba(112,31,69,.07);font:700 3.2rem var(--condensed)}
.deadline-strip>div{flex:1;padding:1rem;text-align:center;border:1px solid var(--line);border-radius:22px;background:white}
.deadline-strip span{display:block;color:var(--wine);font:600 .68rem var(--condensed);letter-spacing:.18em;text-transform:uppercase}
.deadline-strip strong{display:block;margin-top:.3rem;font:500 1.35rem var(--display)}
.deadline-strip i{width:1px;align-self:stretch;background:linear-gradient(transparent,var(--gold),transparent)}
.rsvp-section{padding:clamp(1.7rem,4vw,3.2rem)}
.rsvp-form{display:grid;gap:1rem}
.form-step{padding:1.3rem;border:1px solid var(--line);border-radius:28px;background:rgba(255,255,255,.62)}
.step-label{display:grid;grid-template-columns:auto 1fr;gap:1rem;align-items:start;margin-bottom:1rem}
.step-label>span{width:52px;height:52px;display:grid;place-items:center;border-radius:50%;background:var(--wine);color:white;font:600 .7rem var(--condensed);letter-spacing:.14em}
.step-label h2{margin-bottom:0;font-size:clamp(2.1rem,4.5vw,4rem)}
.celebration-toggles{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.celebration-toggles label,.payment-plans label{position:relative;display:block;cursor:pointer}
.celebration-toggles input,.payment-plans input,.consent input{position:absolute;opacity:0;pointer-events:none}
.celebration-toggles label span,.payment-plans label span{display:block;padding:1.1rem;transition:transform .3s,border-color .3s,background .3s}
.celebration-toggles label small,.payment-plans label small{display:block;font:600 .66rem var(--condensed);letter-spacing:.15em;text-transform:uppercase}
.celebration-toggles label strong,.payment-plans label strong{display:block;margin:.3rem 0;color:var(--ink);font-size:1.1rem}
.celebration-toggles label em{font-style:normal;color:var(--wine);font:600 .75rem var(--condensed);letter-spacing:.15em}
.celebration-toggles input:checked+span,.payment-plans input:checked+span{transform:translateY(-2px);border-color:rgba(112,31,69,.32);background:linear-gradient(145deg,#fff,#f5e5ea);box-shadow:0 12px 24px rgba(112,31,69,.1)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.form-grid label,.calculator-inputs label{display:grid;gap:.45rem;color:var(--ink);font-weight:700}
.form-grid .full,.calculator-inputs .full{grid-column:1/-1}
input,select,textarea{width:100%;padding:.92rem 1rem;border:1px solid rgba(40,19,30,.15);border-radius:17px;outline:none;background:white;transition:border-color .25s,box-shadow .25s}
select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--wine) 50%),linear-gradient(135deg,var(--wine) 50%,transparent 50%);background-position:calc(100% - 18px) 1.2em,calc(100% - 13px) 1.2em;background-size:5px 5px;background-repeat:no-repeat;padding-right:2.4rem}
textarea{min-height:115px;resize:vertical}
input:focus,select:focus,textarea:focus{border-color:rgba(112,31,69,.4);box-shadow:0 0 0 4px rgba(186,47,98,.08)}
.invalid{border-color:#d84154!important;box-shadow:0 0 0 4px rgba(216,65,84,.09)!important}
.punta-booking{display:grid;gap:1rem}
.punta-booking[hidden]{display:none!important}
.calculator-layout{display:grid;grid-template-columns:minmax(280px,1fr) minmax(280px,.85fr);gap:1rem;align-items:start}
.calculator-inputs{display:grid;gap:1rem}
.mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.adult-warning{padding:.9rem;border-radius:16px;border:1px solid rgba(216,65,84,.2);background:#fff0f1;color:#9b2635}
.is-dimmed{opacity:.55}
.payment-plans{display:grid;gap:.75rem;margin:0;padding:0;border:0}
.payment-plans legend{padding:0 0 .7rem;color:var(--wine);font:600 .68rem var(--condensed);letter-spacing:.17em;text-transform:uppercase}
.cost-card{position:sticky;top:6rem;padding:1.35rem;background:linear-gradient(145deg,#fff,#f4e6e9)}
.cost-card::before{content:"ON-SCREEN TOTAL";display:block;margin-bottom:.7rem;color:rgba(112,31,69,.35);font:700 .66rem var(--condensed);letter-spacing:.17em}
.cost-card h3{font-size:2rem}
.cost-card dl{display:grid;gap:.7rem;margin:0 0 1rem}
.cost-card dl>div{padding:.9rem;border:1px solid var(--line);border-radius:18px;background:white}
.cost-card dd{margin:.3rem 0 0;color:var(--ink);font:500 1.15rem var(--display)}
.total-row{background:var(--wine)!important}
.total-row dt,.total-row dd{color:white!important}
.deposit-row{border-color:rgba(197,149,63,.45)!important}
.form-submit{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 0 0}
.consent span{display:inline-flex;align-items:center;gap:.7rem}
.consent span::before{content:"";width:22px;height:22px;border-radius:7px;border:1px solid var(--line);background:white}
.consent input:checked+span::before{background:var(--wine);box-shadow:inset 0 0 0 5px white}
.submit-button{border:0}
.form-status{margin:0;color:var(--wine)}
.submission-modal{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:1rem;background:rgba(39,15,27,.82);backdrop-filter:blur(12px);opacity:0;visibility:hidden;transition:.35s}
.submission-modal.open{opacity:1;visibility:visible}
.submission-modal>div{position:relative;max-width:min(560px,92vw);padding:2rem;border-radius:30px;background:var(--cream);box-shadow:0 30px 80px rgba(0,0,0,.3)}
.submission-close{position:absolute;right:1rem;top:1rem;border:1px solid var(--line);border-radius:999px;background:white;padding:.65rem .9rem}

/* Footer and music */
.site-footer{width:var(--container);margin:0 auto 2rem;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;padding:1.2rem 1.4rem;border:1px solid var(--line);border-radius:26px;background:rgba(255,250,244,.82);backdrop-filter:blur(12px);box-shadow:var(--shadow-soft)}
.site-footer p{margin:0}
.site-footer strong{color:var(--wine);letter-spacing:.07em}
.footer-tag{text-align:right}
.footer-tag span{color:var(--wine)}
.music-toggle{position:fixed;right:1rem;bottom:1rem;z-index:920;display:flex;align-items:center;gap:.65rem;padding:.72rem .9rem;border:1px solid var(--line);border-radius:999px;background:rgba(255,250,244,.88);backdrop-filter:blur(14px);box-shadow:var(--shadow-soft)}
.music-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--wine);color:white}
.music-label{color:var(--ink-soft);font-size:.78rem}
.music-toggle.playing .music-icon{animation:musicPulse 1.6s infinite}
@keyframes musicPulse{50%{box-shadow:0 0 0 8px rgba(186,47,98,.1)}}
.youtube-player{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}

@media(max-width:1080px){
  .party-grid,.lookbook-grid,.gallery-grid{grid-template-columns:repeat(2,1fr)}
  .gallery-item:nth-child(8n+1),.gallery-item:nth-child(8n+5){grid-row:span 1}
  .gallery-item:nth-child(8n+1) img,.gallery-item:nth-child(8n+5) img{aspect-ratio:4/5}
}
@media(max-width:930px){
  .desktop-nav{display:none}.menu-button{display:block}.on-air-bug{top:4.9rem}
  .hero-kicker,.vertical-date{display:none}
  .hero-name{width:min(90vw,900px)}
  .hero-caption{margin-left:0;text-align:center}
  .hero-dates{position:static;justify-content:center;margin-top:1.5rem}
  .page-hero-copy,.hero-intro,.page-hero .button{margin-left:0}
  .editorial-grid,.details-spread,.story-layout,.photo-preview,.dress-editorial,.tailor-section,.hotel-section,.itinerary-section,.resort-section,.visa-section,.faq-section,.calculator-layout{grid-template-columns:1fr}
  .event-portals,.party-grid,.lookbook-grid{grid-template-columns:1fr}
  .site-footer{grid-template-columns:1fr;text-align:center}.footer-brand{justify-self:center}.footer-tag{text-align:center}
}
@media(max-width:700px){
  :root{--pad:1rem}
  .hero-scene{width:calc(100vw - .6rem);margin:.3rem auto 1rem;border-radius:26px}
  .hero-scene::before{inset:10px;border-radius:19px}
  .home-hero,.page-hero{padding:7rem 1.15rem 4rem;min-height:85svh}
  .hero-name{font-size:clamp(3.7rem,18vw,7rem);line-height:.86}
  .hero-name em{left:20%;top:38%;font-size:clamp(2.5rem,10vw,4.6rem)}
  .page-hero h1{font-size:clamp(3rem,15.5vw,5.7rem);line-height:.96;letter-spacing:-.045em}
  .page-hero h1 span:nth-child(2){padding-left:0}
  .page-hero .hero-line{min-height:auto;padding:.1em 0 .17em}
  .hero-intro{font-size:1.1rem}
  .hero-dates{gap:.8rem}.hero-dates i{height:42px}
  .on-air-bug{right:.75rem;top:4.6rem;font-size:.56rem}
  .detail-list,.form-grid,.celebration-toggles,.mini-grid,.resort-facts,.gallery-grid{grid-template-columns:1fr}
  .gallery-note,.deadline-strip,.form-submit{flex-direction:column;align-items:stretch}
  .deadline-strip i{width:100%;height:1px}
  .music-label{display:none}
  .lightbox-arrow.prev{left:.5rem}.lightbox-arrow.next{right:.5rem}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .reveal,.reveal-left,.reveal-right,.hero-animate,.hero-line b{opacity:1!important;transform:none!important}
}
.hero-spotlight{position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(circle 240px at var(--spot-x,50%) var(--spot-y,42%),rgba(255,255,255,.58),rgba(255,255,255,.12) 34%,transparent 68%);mix-blend-mode:soft-light;opacity:.82;transition:opacity .35s}
.home-hero>.episode-badge{justify-self:center;margin-bottom:1.2rem;z-index:2}
.production-lower-third{position:absolute;left:var(--pad);bottom:2rem;z-index:3;display:grid;grid-template-columns:5px auto;gap:.75rem;align-items:stretch;max-width:280px;padding:.75rem .9rem;border:1px solid rgba(40,19,30,.1);border-radius:16px;background:rgba(255,250,244,.8);backdrop-filter:blur(12px);box-shadow:0 10px 26px rgba(63,28,43,.08)}
.production-lower-third::before{content:"";border-radius:999px;background:linear-gradient(var(--rose),var(--gold))}
.production-lower-third strong{display:block;color:var(--wine);font:700 .68rem var(--condensed);letter-spacing:.16em;text-transform:uppercase}
.production-lower-third span{display:block;color:var(--ink-soft);font-size:.72rem}
@media(max-width:700px){.production-lower-third{display:none}.home-hero>.episode-badge{margin-bottom:.8rem}}

/* =========================================================
   EPISODE WORLDS
   Act I: bold cultural celebration / Act II: tropical escape
   ========================================================= */

/* Keep every title comfortably inside its cinematic frame. */
.page-hero{
  min-height:max(760px,84svh);
  padding-top:clamp(8rem,11vw,10.5rem);
  padding-bottom:clamp(5.5rem,8vw,7.5rem);
}
.page-hero-copy{
  width:min(1160px,calc(100% - clamp(2rem,7vw,7rem)));
  overflow:visible;
}
.page-hero h1{
  max-width:100%;
  line-height:.98;
  overflow:visible!important;
}
.page-hero .hero-line{
  min-height:1.12em;
  padding:.12em 0 .2em;
  overflow:visible!important;
}

/* ---------- ACT I: THE CULTURAL EPISODE ---------- */
.traditional-page{
  --trad-wine:#751638;
  --trad-plum:#471740;
  --trad-indigo:#25255e;
  --trad-coral:#e45f45;
  --trad-orange:#ec8e35;
  --trad-gold:#e3b34e;
  --trad-cream:#fff4df;
  background:
    radial-gradient(circle at 5% 8%,rgba(228,95,69,.12),transparent 22rem),
    radial-gradient(circle at 96% 24%,rgba(37,37,94,.10),transparent 24rem),
    linear-gradient(180deg,#fff5e8,#f6e4ce 48%,#fff7ec);
}
.traditional-page .site-header:not(.scrolled) .brand,
.traditional-page .site-header:not(.scrolled) .desktop-nav a{color:#fff8e8}
.traditional-page .site-header:not(.scrolled) .brand i{background:var(--trad-gold)}
.traditional-page .site-header:not(.scrolled) .nav-rsvp{background:var(--trad-gold);color:#361229!important}
.traditional-hero{
  color:#fff7e5;
  border-color:rgba(255,222,153,.32);
  background:
    radial-gradient(circle at 18% 20%,rgba(236,142,53,.42),transparent 19rem),
    radial-gradient(circle at 84% 16%,rgba(227,179,78,.30),transparent 18rem),
    radial-gradient(circle at 76% 86%,rgba(37,37,94,.56),transparent 24rem),
    linear-gradient(125deg,#8b173d 0%,#681637 33%,#40163c 69%,#242258 100%);
  box-shadow:0 32px 92px rgba(84,19,53,.30);
}
.traditional-hero::before{
  opacity:.72;
  background:
    linear-gradient(var(--trad-gold),var(--trad-gold)) left top/54px 3px no-repeat,
    linear-gradient(var(--trad-gold),var(--trad-gold)) left top/3px 54px no-repeat,
    linear-gradient(var(--trad-gold),var(--trad-gold)) right top/54px 3px no-repeat,
    linear-gradient(var(--trad-gold),var(--trad-gold)) right top/3px 54px no-repeat,
    linear-gradient(var(--trad-gold),var(--trad-gold)) left bottom/54px 3px no-repeat,
    linear-gradient(var(--trad-gold),var(--trad-gold)) left bottom/3px 54px no-repeat,
    linear-gradient(var(--trad-gold),var(--trad-gold)) right bottom/54px 3px no-repeat,
    linear-gradient(var(--trad-gold),var(--trad-gold)) right bottom/3px 54px no-repeat;
}
.traditional-hero::after{
  content:"HÉRITAGE";
  right:-.03em;
  bottom:-.08em;
  color:rgba(255,244,223,.055);
  font-size:clamp(6rem,18vw,16rem);
}
.traditional-page .page-hero-copy{z-index:5}
.traditional-page .page-hero h1,
.traditional-page .hero-intro,
.traditional-page .vertical-date{color:#fff7e5;text-shadow:0 12px 34px rgba(34,8,26,.23)}
.traditional-page .page-hero h1{font-weight:600;letter-spacing:-.06em}
.traditional-page .hero-intro{max-width:720px}
.traditional-page .episode-badge{
  color:#401329;
  background:linear-gradient(135deg,#ffe8b6,#e5b552);
  border-color:rgba(255,240,197,.72);
  box-shadow:0 12px 26px rgba(52,10,35,.18);
}
.traditional-page .episode-badge::before{background:var(--trad-coral)}
.traditional-page .gold-thread path{stroke:#ffd67d;stroke-width:2}
.traditional-page .production-lower-third{
  color:#fff7e5;
  background:rgba(54,10,37,.66);
  border-color:rgba(255,221,143,.27);
  box-shadow:0 18px 42px rgba(38,7,30,.22);
}
.traditional-page .production-lower-third strong{color:#ffdb88}
.traditional-page .production-lower-third span{color:rgba(255,248,230,.82)}
.traditional-page .on-air-bug{background:rgba(255,246,224,.92);color:var(--trad-wine)}

.culture-motif{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.culture-disc,.culture-diamond,.culture-thread{position:absolute;display:block}
.culture-disc{border-radius:50%;border:1px solid rgba(255,224,151,.25);background:
  repeating-conic-gradient(from 7deg,rgba(255,220,126,.18) 0 8deg,transparent 8deg 18deg),
  radial-gradient(circle,rgba(236,142,53,.20),transparent 68%)}
.disc-one{width:360px;height:360px;right:-90px;top:12%;animation:cultureSpin 28s linear infinite}
.disc-two{width:205px;height:205px;left:-48px;bottom:8%;animation:cultureSpin 22s linear infinite reverse}
.culture-diamond{width:155px;height:155px;transform:rotate(45deg);border:2px solid rgba(255,215,118,.20);background:
  linear-gradient(90deg,transparent 47%,rgba(255,242,214,.16) 48% 52%,transparent 53%),
  linear-gradient(transparent 47%,rgba(255,242,214,.16) 48% 52%,transparent 53%)}
.diamond-one{right:18%;bottom:9%;animation:diamondFloat 7s ease-in-out infinite alternate}
.diamond-two{left:10%;top:14%;width:88px;height:88px;opacity:.65;animation:diamondFloat 9s ease-in-out infinite alternate-reverse}
.culture-thread{height:12px;border-radius:999px;background:repeating-linear-gradient(90deg,#f6c964 0 14px,#e35c45 14px 28px,#6f1737 28px 42px,#29245e 42px 56px)}
.thread-one{width:44%;right:-7%;top:25%;transform:rotate(-13deg);opacity:.34}
.thread-two{width:36%;left:-9%;bottom:26%;transform:rotate(18deg);opacity:.28}
.woven-credit{
  position:absolute;z-index:6;left:50%;bottom:1.5rem;transform:translateX(-50%);
  display:flex;align-items:center;gap:.72rem;
  color:rgba(255,248,230,.82);font:600 .62rem var(--condensed);letter-spacing:.22em;text-transform:uppercase;
}
.woven-credit i{width:8px;height:8px;transform:rotate(45deg);background:var(--trad-gold)}
@keyframes cultureSpin{to{transform:rotate(360deg)}}
@keyframes diamondFloat{to{transform:rotate(45deg) translate3d(8px,-12px,0)}}

.traditional-page .details-spread{
  border-color:rgba(117,22,56,.17);
  background:
    linear-gradient(90deg,var(--trad-wine) 0 12px,var(--trad-orange) 12px 24px,var(--trad-gold) 24px 36px,var(--trad-indigo) 36px 48px,transparent 48px),
    linear-gradient(135deg,#fffaf0,#f7e8d4);
  box-shadow:0 24px 58px rgba(104,22,55,.13);
}
.traditional-page .details-spread::after{
  content:"01";position:absolute;right:.05em;bottom:-.18em;color:rgba(117,22,56,.055);
  font:700 clamp(8rem,20vw,16rem)/1 var(--condensed);pointer-events:none;
}
.traditional-page .detail-list>div{
  border-color:rgba(117,22,56,.15);
  background:rgba(255,255,255,.75);
  box-shadow:inset 5px 0 0 var(--trad-gold);
}
.traditional-page .detail-list>div:nth-child(2n){box-shadow:inset 5px 0 0 var(--trad-coral)}
.traditional-page .detail-list span,.traditional-page .section-number,.traditional-page .eyebrow{color:var(--trad-wine)}
.traditional-page .traditional-dress{
  border-color:rgba(255,224,151,.24);
  color:#fff8e7;
  background:
    radial-gradient(circle at 15% 18%,rgba(236,142,53,.34),transparent 18rem),
    linear-gradient(125deg,#6f1738,#47163e 54%,#27275f);
}
.traditional-page .traditional-dress h2,
.traditional-page .traditional-dress p,
.traditional-page .traditional-dress .lead{color:#fff8e7}
.traditional-page .traditional-dress .eyebrow{color:#ffd77e}
.traditional-page .fabric-art{
  background:
    radial-gradient(circle at 50% 50%,rgba(255,222,135,.26),transparent 24%),
    conic-gradient(from 45deg at 50% 50%,#e05c44 0 12.5%,#7e193c 12.5% 25%,#ec9a37 25% 37.5%,#29275f 37.5% 50%,#dcb24e 50% 62.5%,#79183a 62.5% 75%,#e05c44 75% 87.5%,#29275f 87.5%);
  border:1px solid rgba(255,238,191,.3);
}
.traditional-page .fabric-art::after{
  content:"";position:absolute;inset:32px;border:2px solid rgba(255,246,218,.22);transform:rotate(45deg);border-radius:12px;
}
.traditional-page .fabric-lines{background:
  repeating-linear-gradient(90deg,transparent 0 31px,rgba(255,247,218,.16) 31px 33px),
  repeating-linear-gradient(0deg,transparent 0 31px,rgba(255,247,218,.13) 31px 33px)}
.traditional-page .tailor-section{background:linear-gradient(135deg,#fff8eb,#f4dfca)}
.traditional-page .tailor-card{border-top:8px solid var(--trad-wine)}
.traditional-page .tailor-note{border-top:8px solid var(--trad-gold)}
.traditional-page .hotel-section{
  background:
    radial-gradient(circle at 86% 10%,rgba(227,179,78,.24),transparent 17rem),
    linear-gradient(130deg,#27265d,#4b1743 58%,#721838);
}
.traditional-page .hotel-list a{border-color:rgba(255,227,161,.18);background:rgba(255,255,255,.08)}
.traditional-page .hotel-list a:hover{background:rgba(255,255,255,.14);border-color:rgba(255,221,139,.42)}
.traditional-page .closing-cta{
  color:#fff8e7;
  background:
    repeating-linear-gradient(135deg,rgba(255,255,255,.04) 0 14px,transparent 14px 28px),
    linear-gradient(120deg,var(--trad-wine),#48143f 58%,var(--trad-indigo));
}
.traditional-page .closing-cta h2,.traditional-page .closing-cta p{color:#fff8e7}
.traditional-page .closing-cta .eyebrow{color:#ffd77e}
.traditional-page .closing-cta .button{background:linear-gradient(135deg,#ffd983,#e8a63f);color:#401429}

/* ---------- ACT II: THE TROPICAL EPISODE ---------- */
.white-page{
  --island-teal:#078d87;
  --island-deep:#075a62;
  --island-palm:#176a4b;
  --island-aqua:#7dded1;
  --island-sky:#bfeee7;
  --island-coral:#f27867;
  --island-mango:#f3b64f;
  --island-sand:#f7dfbd;
  background:
    radial-gradient(circle at 8% 10%,rgba(242,120,103,.11),transparent 20rem),
    radial-gradient(circle at 94% 22%,rgba(7,141,135,.12),transparent 24rem),
    linear-gradient(180deg,#fff9ed,#effaf6 45%,#fff7e9);
}
.white-page .site-header:not(.scrolled) .brand,
.white-page .site-header:not(.scrolled) .desktop-nav a{color:#083f48}
.white-page .site-header:not(.scrolled) .brand i{background:var(--island-coral)}
.white-page .site-header:not(.scrolled) .nav-rsvp{background:var(--island-coral);color:white!important}
.white-hero{
  border-color:rgba(7,141,135,.18);
  background:
    radial-gradient(circle at 80% 14%,rgba(255,246,195,.92),transparent 13rem),
    radial-gradient(circle at 10% 26%,rgba(125,222,209,.45),transparent 20rem),
    linear-gradient(145deg,#d8f6ee 0%,#fff3d6 46%,#f8c8a9 78%,#f3917e 100%);
  box-shadow:0 32px 92px rgba(7,90,98,.19);
}
.white-hero::before{
  opacity:.48;
  background:
    linear-gradient(var(--island-deep),var(--island-deep)) left top/48px 2px no-repeat,
    linear-gradient(var(--island-deep),var(--island-deep)) left top/2px 48px no-repeat,
    linear-gradient(var(--island-deep),var(--island-deep)) right top/48px 2px no-repeat,
    linear-gradient(var(--island-deep),var(--island-deep)) right top/2px 48px no-repeat,
    linear-gradient(var(--island-deep),var(--island-deep)) left bottom/48px 2px no-repeat,
    linear-gradient(var(--island-deep),var(--island-deep)) left bottom/2px 48px no-repeat,
    linear-gradient(var(--island-deep),var(--island-deep)) right bottom/48px 2px no-repeat,
    linear-gradient(var(--island-deep),var(--island-deep)) right bottom/2px 48px no-repeat;
}
.white-hero::after{
  content:"PARADISE";
  color:rgba(7,90,98,.055);
  bottom:-.08em;
  font-size:clamp(6rem,18vw,16rem);
}
.white-page .page-hero-copy{z-index:5}
.white-page .page-hero h1{color:#07545d;font-weight:600;text-shadow:0 12px 34px rgba(255,255,255,.28)}
.white-page .hero-intro{color:#164d50;max-width:720px}
.white-page .vertical-date{color:#07545d}
.white-page .episode-badge{
  color:#064b52;
  background:rgba(255,250,235,.74);
  border-color:rgba(7,90,98,.18);
  box-shadow:0 12px 28px rgba(7,90,98,.09);
}
.white-page .episode-badge::before{background:var(--island-coral)}
.white-page .page-hero .button{background:linear-gradient(135deg,var(--island-coral),#e8556d);box-shadow:0 15px 30px rgba(242,120,103,.27)}
.white-page .gold-thread path{stroke:rgba(7,90,98,.5);stroke-width:2}
.white-page .production-lower-third{
  background:rgba(255,250,235,.72);
  border-color:rgba(7,90,98,.15);
}
.white-page .production-lower-third::before{background:linear-gradient(var(--island-coral),var(--island-teal))}
.white-page .production-lower-third strong{color:#07545d}
.white-page .on-air-bug{color:#07545d;border-color:rgba(7,90,98,.13)}

.tropical-world{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.tropical-sun{position:absolute;right:9%;top:12%;width:180px;height:180px;border-radius:50%;background:radial-gradient(circle at 42% 38%,#fffbe3 0 22%,#ffd77a 48%,rgba(243,182,79,.14) 70%);box-shadow:0 0 0 24px rgba(255,244,185,.13),0 0 70px rgba(243,182,79,.34);animation:islandSun 7s ease-in-out infinite alternate}
.island-orbit{position:absolute;border-radius:50%;border:1px solid rgba(7,90,98,.14)}
.orbit-one{right:5%;top:7%;width:255px;height:255px;animation:cultureSpin 26s linear infinite}
.orbit-two{left:8%;bottom:11%;width:130px;height:130px;border-style:dashed;animation:cultureSpin 18s linear infinite reverse}
.palm-frond{position:absolute;width:250px;height:360px;transform-origin:50% 100%}
.frond-left{left:-48px;bottom:-80px;transform:rotate(22deg);animation:palmSway 6.5s ease-in-out infinite alternate}
.frond-right{right:-54px;bottom:-72px;transform:scaleX(-1) rotate(18deg);animation:palmSway 7.5s ease-in-out infinite alternate-reverse}
.palm-frond::before{content:"";position:absolute;left:50%;bottom:0;width:7px;height:330px;border-radius:999px;background:linear-gradient(#1d7f58,#0a5341);transform:rotate(-10deg);transform-origin:bottom}
.palm-frond i,.palm-frond b,.palm-frond em,.palm-frond u,.palm-frond s{position:absolute;display:block;width:155px;height:46px;border-radius:100% 0 100% 0;background:linear-gradient(145deg,#2a9670,#0f624a);transform-origin:right center;box-shadow:inset -12px -5px 0 rgba(4,68,54,.18)}
.palm-frond i{left:4px;top:40px;transform:rotate(28deg)}
.palm-frond b{left:8px;top:96px;transform:rotate(15deg)}
.palm-frond em{left:2px;top:150px;transform:rotate(4deg)}
.palm-frond u{left:12px;top:205px;transform:rotate(-10deg)}
.palm-frond s{left:28px;top:257px;transform:rotate(-25deg)}
.ocean-ribbon{position:absolute;left:-10%;width:120%;height:120px;border-radius:50%;border-top:3px solid rgba(7,141,135,.26);transform:rotate(-4deg)}
.ribbon-one{bottom:-34px;animation:oceanMove 7s ease-in-out infinite alternate}
.ribbon-two{bottom:10px;border-color:rgba(255,255,255,.46);opacity:.65;animation:oceanMove 9s ease-in-out infinite alternate-reverse}
.island-credit{
  position:absolute;z-index:6;left:50%;bottom:1.5rem;transform:translateX(-50%);
  display:flex;align-items:center;gap:.72rem;color:#07545d;
  font:600 .62rem var(--condensed);letter-spacing:.22em;text-transform:uppercase;
}
.island-credit i{width:7px;height:7px;border-radius:50%;background:var(--island-coral)}
@keyframes islandSun{to{transform:translate3d(8px,-12px,0) scale(1.03)}}
@keyframes palmSway{to{rotate:3deg}}
@keyframes oceanMove{to{transform:translateX(3%) rotate(-2deg)}}

.white-page .itinerary-section{
  border-color:rgba(7,141,135,.16);
  background:
    radial-gradient(circle at 86% 8%,rgba(243,182,79,.18),transparent 16rem),
    linear-gradient(140deg,#f5fff9,#e6f8f4 58%,#fff4dd);
}
.white-page .itinerary-section::after{
  content:"WEEKEND IN PARADISE";position:absolute;right:-.03em;bottom:-.15em;color:rgba(7,90,98,.045);
  font:700 clamp(3.5rem,10vw,9rem)/1 var(--condensed);white-space:nowrap;pointer-events:none;
}
.white-page .itinerary-section .eyebrow,.white-page .lookbook-section .eyebrow,.white-page .visa-section .eyebrow{color:var(--island-teal)}
.white-page .accordion-item{border-color:rgba(7,141,135,.14);background:rgba(255,255,255,.77)}
.white-page .accordion-item.open{border-color:rgba(242,120,103,.34);box-shadow:0 14px 28px rgba(7,90,98,.08)}
.white-page .accordion-item button span,.white-page .accordion-item button i{color:var(--island-coral)}
.white-page .lookbook-section{
  border-color:rgba(242,120,103,.18);
  background:
    radial-gradient(circle at 13% 8%,rgba(125,222,209,.22),transparent 16rem),
    radial-gradient(circle at 88% 14%,rgba(243,182,79,.18),transparent 15rem),
    linear-gradient(135deg,#fffaf0,#f7eee3);
}
.white-page .look-card{overflow:hidden;border-color:rgba(7,141,135,.13);background:rgba(255,255,255,.78)}
.white-page .look-card::after{content:"";position:absolute;right:-24px;bottom:-30px;width:110px;height:110px;border-radius:50%;background:radial-gradient(circle,rgba(125,222,209,.28),transparent 70%)}
.white-page .neutral-look{border-top:8px solid #c99268}
.white-page .bright-look{border-top:8px solid var(--island-coral)}
.white-page .resort-look{border-top:8px solid var(--island-teal)}
.white-page .resort-section{
  border-color:rgba(178,244,232,.18);
  background:
    radial-gradient(circle at 88% 12%,rgba(243,182,79,.28),transparent 17rem),
    radial-gradient(circle at 10% 90%,rgba(125,222,209,.18),transparent 18rem),
    linear-gradient(135deg,#075b62,#087a73 58%,#115445);
}
.white-page .resort-section::after{content:"";position:absolute;left:-8%;right:-8%;bottom:-72px;height:150px;border-radius:50% 50% 0 0;background:rgba(255,255,255,.09);transform:rotate(-2deg)}
.white-page .resort-facts>div{background:rgba(255,255,255,.10);border-color:rgba(255,255,255,.16)}
.white-page .resort-section .button-light{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.28)}
.white-page .visa-section{
  border-color:rgba(243,182,79,.2);
  background:linear-gradient(140deg,#fff9ed,#f7e5ca);
}
.white-page .visa-list a{border-color:rgba(7,90,98,.12);background:rgba(255,255,255,.73)}
.white-page .visa-list a:hover{border-color:rgba(242,120,103,.32);background:white}
.white-page .ocean-cta{
  color:#fff;
  background:
    radial-gradient(circle at 86% 12%,rgba(243,182,79,.32),transparent 16rem),
    radial-gradient(circle at 12% 80%,rgba(125,222,209,.24),transparent 17rem),
    linear-gradient(125deg,#087f79,#075b62 62%,#144e42);
}
.white-page .ocean-cta h2,.white-page .ocean-cta p{color:white}
.white-page .ocean-cta .eyebrow{color:#ffe093}
.white-page .ocean-cta .button{background:linear-gradient(135deg,#ff9a79,var(--island-coral));color:white}

/* Mobile treatment keeps the themes bold without sacrificing readability. */
@media(max-width:930px){
  .traditional-page .site-header:not(.scrolled) .menu-button{border-color:rgba(255,255,255,.25);background:rgba(72,17,53,.34)}
  .traditional-page .site-header:not(.scrolled) .menu-button span{background:#fff8e8}
  .page-hero-copy{width:100%;margin-left:0}
  .woven-credit,.island-credit{display:none}
  .traditional-page .page-hero h1,.white-page .page-hero h1{font-size:clamp(3.4rem,11vw,7.2rem)}
  .traditional-page .hero-intro,.white-page .hero-intro{max-width:620px}
}
@media(max-width:700px){
  .page-hero{min-height:760px;padding-top:7.5rem;padding-bottom:5rem;align-items:flex-start}
  .page-hero h1{line-height:1.02}
  .page-hero .hero-line{padding:.14em 0 .24em}
  .traditional-page .page-hero h1,.white-page .page-hero h1{font-size:clamp(3rem,14vw,5.4rem)}
  .traditional-page .page-hero h1 span:nth-child(2),.white-page .page-hero h1 span:nth-child(2){padding-left:0}
  .culture-disc.disc-one{width:245px;height:245px;right:-100px;top:43%}
  .culture-disc.disc-two{width:140px;height:140px;left:-72px;bottom:6%}
  .culture-diamond{opacity:.6}
  .tropical-sun{width:128px;height:128px;right:-18px;top:18%}
  .palm-frond{width:190px;height:285px;opacity:.75}
  .frond-left{left:-80px;bottom:-68px}
  .frond-right{right:-88px;bottom:-66px}
}

/* ==========================================================
   ACT I REFINED: LUXURY AFRICAN JUNGLE
   Deep greenery, khaki linen, espresso, warm ivory, antique gold.
   ========================================================== */
.traditional-page{
  --jungle-ink:#18221b;
  --jungle-black:#0b130f;
  --jungle-forest:#173a2d;
  --jungle-deep:#0f2a21;
  --jungle-olive:#596146;
  --jungle-moss:#78805e;
  --jungle-khaki:#c8b996;
  --jungle-linen:#eee4d1;
  --jungle-ivory:#fbf6ea;
  --jungle-gold:#b7975b;
  --jungle-gold-bright:#d8bd82;
  --jungle-espresso:#2c241f;
  background:
    url("assets/botanical-shadow.svg") right -14rem top 18rem/42rem auto no-repeat,
    radial-gradient(circle at 8% 10%,rgba(89,97,70,.13),transparent 23rem),
    radial-gradient(circle at 95% 28%,rgba(183,151,91,.10),transparent 25rem),
    linear-gradient(180deg,#f8f2e6 0%,#eee5d4 45%,#f8f3e9 100%);
}
.traditional-page .site-header:not(.scrolled) .brand,
.traditional-page .site-header:not(.scrolled) .desktop-nav a{color:#f8f1df}
.traditional-page .site-header:not(.scrolled) .brand i{background:var(--jungle-gold-bright)}
.traditional-page .site-header:not(.scrolled) .nav-rsvp{
  color:#18221b!important;
  background:linear-gradient(135deg,#e7d3a4,#b7975b);
  box-shadow:0 12px 28px rgba(8,18,13,.22)
}
.traditional-page .site-header.scrolled .brand,
.traditional-page .site-header.scrolled .desktop-nav a{color:var(--jungle-ink)}
.traditional-page .site-header.scrolled .brand i{background:var(--jungle-gold)}
.traditional-page .site-header.scrolled .nav-rsvp{color:#fff!important;background:var(--jungle-forest)}

.traditional-hero{
  color:var(--jungle-ivory);
  min-height:max(800px,88svh);
  border-color:rgba(216,189,130,.32);
  background:
    radial-gradient(circle at 48% 18%,rgba(215,189,133,.17),transparent 20rem),
    radial-gradient(circle at 15% 80%,rgba(120,128,94,.22),transparent 22rem),
    linear-gradient(126deg,#0c1b15 0%,#153126 35%,#253f31 64%,#1b291f 100%);
  box-shadow:0 36px 100px rgba(18,34,26,.28);
}
.traditional-hero::before{
  z-index:7;
  opacity:.55;
  inset:18px;
  background:
    linear-gradient(var(--jungle-gold),var(--jungle-gold)) left top/64px 2px no-repeat,
    linear-gradient(var(--jungle-gold),var(--jungle-gold)) left top/2px 64px no-repeat,
    linear-gradient(var(--jungle-gold),var(--jungle-gold)) right top/64px 2px no-repeat,
    linear-gradient(var(--jungle-gold),var(--jungle-gold)) right top/2px 64px no-repeat,
    linear-gradient(var(--jungle-gold),var(--jungle-gold)) left bottom/64px 2px no-repeat,
    linear-gradient(var(--jungle-gold),var(--jungle-gold)) left bottom/2px 64px no-repeat,
    linear-gradient(var(--jungle-gold),var(--jungle-gold)) right bottom/64px 2px no-repeat,
    linear-gradient(var(--jungle-gold),var(--jungle-gold)) right bottom/2px 64px no-repeat;
}
.traditional-hero::after{
  content:"ROOTED";
  z-index:0;
  right:-.025em;
  bottom:-.08em;
  color:rgba(238,228,209,.045);
  font-size:clamp(7rem,19vw,17rem);
  letter-spacing:-.06em;
}
.traditional-page .page-hero-copy{z-index:8;max-width:1160px}
.traditional-page .page-hero h1{
  max-width:1050px;
  color:var(--jungle-ivory);
  font-weight:500;
  letter-spacing:-.055em;
  text-shadow:0 18px 42px rgba(4,12,8,.28);
}
.traditional-page .hero-intro{
  max-width:700px;
  color:rgba(251,246,234,.88);
  text-shadow:0 8px 24px rgba(4,12,8,.3)
}
.traditional-page .vertical-date{z-index:8;color:var(--jungle-ivory)}
.traditional-page .vertical-date i{background:linear-gradient(transparent,var(--jungle-gold-bright),transparent)}
.traditional-page .episode-badge{
  color:#10241b;
  background:rgba(235,224,199,.9);
  border-color:rgba(216,189,130,.62);
  box-shadow:0 16px 32px rgba(6,19,13,.18);
}
.traditional-page .episode-badge::before{background:var(--jungle-forest)}
.traditional-page .gold-thread{z-index:6;opacity:.52}
.traditional-page .gold-thread path{stroke:var(--jungle-gold-bright);stroke-width:1.7}
.traditional-page .production-lower-third{
  color:#f8f1df;
  background:rgba(9,24,17,.64);
  border-color:rgba(216,189,130,.24);
  box-shadow:0 18px 44px rgba(4,12,8,.26);
  backdrop-filter:blur(16px)
}
.traditional-page .production-lower-third strong{color:var(--jungle-gold-bright)}
.traditional-page .production-lower-third span{color:rgba(248,241,223,.8)}
.traditional-page .on-air-bug{color:var(--jungle-deep);background:rgba(246,239,223,.92);border-color:rgba(23,58,45,.16)}

.jungle-world{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none}
.jungle-canopy{position:absolute;width:118%;max-width:none;left:-9%;bottom:-12%;transform-origin:50% 100%;filter:drop-shadow(0 30px 38px rgba(5,14,9,.28))}
.canopy-back{opacity:.48;transform:scale(1.08) translateY(3%);animation:canopyDrift 11s ease-in-out infinite alternate}
.canopy-front{opacity:.83;animation:canopySway 8s ease-in-out infinite alternate}
.canopy-light{
  position:absolute;inset:-10%;z-index:2;
  background:
    radial-gradient(ellipse at 50% 10%,rgba(236,218,171,.28),transparent 34%),
    repeating-radial-gradient(ellipse at 52% -15%,transparent 0 30px,rgba(229,210,168,.055) 31px 34px,transparent 35px 66px);
  mix-blend-mode:screen;
  filter:blur(1px);
  animation:dappleMove 12s ease-in-out infinite alternate;
}
.gold-haze{position:absolute;border-radius:50%;filter:blur(34px);opacity:.42}
.haze-one{width:240px;height:240px;right:13%;top:14%;background:rgba(216,189,130,.26);animation:hazeFloat 9s ease-in-out infinite alternate}
.haze-two{width:180px;height:180px;left:8%;bottom:12%;background:rgba(120,128,94,.25);animation:hazeFloat 11s ease-in-out infinite alternate-reverse}
.jungle-credit{
  position:absolute;z-index:9;left:50%;bottom:1.55rem;transform:translateX(-50%);
  display:flex;align-items:center;gap:.75rem;white-space:nowrap;
  color:rgba(248,241,223,.72);font:600 .62rem var(--condensed);letter-spacing:.22em;text-transform:uppercase;
}
.jungle-credit i{width:28px;height:1px;background:linear-gradient(90deg,transparent,var(--jungle-gold-bright),transparent)}
@keyframes canopySway{to{transform:translate3d(1.2%,-1%,0) rotate(.8deg)}}
@keyframes canopyDrift{to{transform:scale(1.1) translate3d(-1.2%,-1.5%,0) rotate(-.5deg)}}
@keyframes dappleMove{to{transform:translate3d(2%,-2%,0) scale(1.03);opacity:.76}}
@keyframes hazeFloat{to{transform:translate3d(14px,-18px,0) scale(1.05)}}

.traditional-page .jungle-details{
  border-color:rgba(23,58,45,.14);
  background:
    url("assets/botanical-shadow.svg") right -9rem bottom -10rem/30rem auto no-repeat,
    linear-gradient(90deg,var(--jungle-forest) 0 10px,var(--jungle-gold) 10px 14px,transparent 14px),
    linear-gradient(135deg,#fbf6ea,#e8dfcb 68%,#d8ccb0);
  box-shadow:0 26px 64px rgba(31,48,36,.14);
}
.traditional-page .jungle-details::after{
  content:"01";
  color:rgba(23,58,45,.055);
}
.traditional-page .jungle-details h2,
.traditional-page .jungle-details .lead{color:var(--jungle-ink)}
.traditional-page .jungle-details .eyebrow,
.traditional-page .jungle-details .section-number,
.traditional-page .detail-list span{color:var(--jungle-forest)}
.traditional-page .jungle-details .section-number{border-color:rgba(23,58,45,.15);background:rgba(250,246,235,.72)}
.traditional-page .detail-list>div{
  border-color:rgba(23,58,45,.14);
  background:rgba(252,248,239,.78);
  box-shadow:inset 4px 0 0 var(--jungle-gold),0 12px 26px rgba(39,52,42,.06);
  backdrop-filter:blur(8px)
}
.traditional-page .detail-list>div:nth-child(2n){box-shadow:inset 4px 0 0 var(--jungle-olive),0 12px 26px rgba(39,52,42,.06)}
.traditional-page .detail-list strong{color:var(--jungle-espresso)}

.traditional-page .traditional-dress{
  color:var(--jungle-ivory);
  border-color:rgba(216,189,130,.23);
  background:
    radial-gradient(circle at 15% 18%,rgba(216,189,130,.14),transparent 17rem),
    radial-gradient(circle at 88% 82%,rgba(120,128,94,.18),transparent 20rem),
    linear-gradient(126deg,#0e2a20,#173a2d 58%,#334a34);
}
.traditional-page .traditional-dress::before{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:.18;
  background:url("assets/botanical-shadow.svg") left -8rem bottom -11rem/34rem auto no-repeat;
  filter:invert(1)
}
.traditional-page .traditional-dress h2,
.traditional-page .traditional-dress p,
.traditional-page .traditional-dress .lead{color:var(--jungle-ivory)}
.traditional-page .traditional-dress .eyebrow{color:var(--jungle-gold-bright)}
.traditional-page .jungle-wardrobe{
  min-height:410px;
  border:1px solid rgba(216,189,130,.24);
  background:
    linear-gradient(145deg,rgba(238,228,209,.11),rgba(23,58,45,.04)),
    linear-gradient(135deg,#243e31,#111d17);
  box-shadow:0 28px 58px rgba(4,14,9,.28);
}
.traditional-page .jungle-wardrobe::before{
  content:"";position:absolute;inset:16px;border:1px solid rgba(216,189,130,.22);border-radius:20px;background:none
}
.traditional-page .jungle-wardrobe::after{
  content:"";position:absolute;left:0;right:0;top:0;height:46%;
  background:linear-gradient(180deg,rgba(255,255,255,.08),transparent);transform:none;border:0;border-radius:0
}
.wardrobe-shadow{position:absolute;width:92%;max-width:none;right:-20%;bottom:-28%;opacity:.58;filter:invert(1) sepia(.3) saturate(.65)}
.wardrobe-swatches{position:absolute;z-index:3;left:2rem;top:2rem;display:flex;gap:.6rem}
.wardrobe-swatches span{display:block;width:42px;height:42px;border-radius:50%;border:1px solid rgba(255,255,255,.2);box-shadow:0 12px 24px rgba(3,10,7,.22)}
.swatch-forest{background:#18382c}.swatch-khaki{background:#b8a984}.swatch-espresso{background:#302720}.swatch-gold{background:#b7975b}
.wardrobe-label{position:absolute;z-index:4;left:2rem;right:2rem;bottom:2rem}
.wardrobe-label small{display:block;margin-bottom:.7rem;color:var(--jungle-gold-bright);font:600 .65rem var(--condensed);letter-spacing:.24em;text-transform:uppercase}
.wardrobe-label span{position:static!important;display:block;color:#f8f1df!important;font:500 clamp(2.2rem,4vw,3.8rem)/.92 var(--display)!important}
.wardrobe-label em{display:block;margin-top:.75rem;color:rgba(248,241,223,.68);font-style:normal;letter-spacing:.14em;text-transform:uppercase;font-size:.68rem}

.traditional-page .jungle-tailor{
  border-color:rgba(23,58,45,.13);
  background:
    url("assets/botanical-shadow.svg") right -12rem top -13rem/29rem auto no-repeat,
    linear-gradient(135deg,#f9f4e8,#e7ddc7);
}
.traditional-page .jungle-tailor .tailor-card,
.traditional-page .jungle-tailor .tailor-note{
  background:rgba(255,252,244,.62);
  border-color:rgba(23,58,45,.13);
  box-shadow:0 14px 34px rgba(31,48,36,.07)
}
.traditional-page .jungle-tailor .tailor-card{border-top:7px solid var(--jungle-forest)}
.traditional-page .jungle-tailor .tailor-note{border-top:7px solid var(--jungle-gold)}
.traditional-page .jungle-tailor .eyebrow,
.traditional-page .jungle-tailor .text-link{color:var(--jungle-forest)}
.traditional-page .jungle-tailor h2,
.traditional-page .jungle-tailor .lead{color:var(--jungle-ink)}

.traditional-page .jungle-hotels{
  border-color:rgba(216,189,130,.19);
  background:
    url("assets/botanical-shadow.svg") left -10rem bottom -14rem/34rem auto no-repeat,
    radial-gradient(circle at 84% 12%,rgba(183,151,91,.18),transparent 18rem),
    linear-gradient(132deg,#0d2018,#173429 57%,#2e382b);
}
.traditional-page .jungle-hotels::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(112deg,transparent 12%,rgba(255,255,255,.045) 42%,transparent 68%);
  transform:translateX(-115%);animation:jungleShine 8s ease-in-out infinite
}
.traditional-page .jungle-hotels .eyebrow{color:var(--jungle-gold-bright)}
.traditional-page .jungle-hotels .hotel-list a{
  border-color:rgba(216,189,130,.17);
  background:rgba(239,229,207,.065);
  backdrop-filter:blur(10px)
}
.traditional-page .jungle-hotels .hotel-list a:hover{background:rgba(239,229,207,.12);border-color:rgba(216,189,130,.38)}
.traditional-page .jungle-hotels .hotel-list a span{color:var(--jungle-gold-bright)}
@keyframes jungleShine{0%,55%{transform:translateX(-115%)}80%,100%{transform:translateX(115%)}}

.traditional-page .jungle-closing{
  color:var(--jungle-ivory);
  border-color:rgba(216,189,130,.2);
  background:
    url("assets/botanical-shadow.svg") right -9rem bottom -14rem/33rem auto no-repeat,
    radial-gradient(circle at 13% 15%,rgba(216,189,130,.16),transparent 17rem),
    linear-gradient(122deg,#21372b,#111e17 62%,#343a2c);
}
.traditional-page .jungle-closing h2,
.traditional-page .jungle-closing p{color:var(--jungle-ivory)}
.traditional-page .jungle-closing .eyebrow{color:var(--jungle-gold-bright)}
.traditional-page .jungle-closing .button{
  color:#14231b;
  background:linear-gradient(135deg,#e6d1a0,#b7975b);
  box-shadow:0 15px 30px rgba(5,15,10,.24)
}

@media(max-width:930px){
  .traditional-page .site-header:not(.scrolled) .menu-button{border-color:rgba(248,241,223,.28);background:rgba(10,30,21,.36)}
  .traditional-page .site-header:not(.scrolled) .menu-button span{background:#f8f1df}
  .jungle-credit{display:none}
  .jungle-canopy{width:145%;left:-22%;bottom:-5%;opacity:.7}
}
@media(max-width:700px){
  .traditional-hero{min-height:780px}
  .traditional-page .page-hero h1{font-size:clamp(3rem,13vw,5rem);line-height:1.02}
  .traditional-page .page-hero h1 span:nth-child(2){padding-left:0}
  .jungle-canopy{width:175%;left:-38%;bottom:0}
  .canopy-front{opacity:.58}
  .canopy-back{opacity:.3}
  .wardrobe-swatches{left:1.3rem;top:1.3rem}
  .wardrobe-label{left:1.3rem;right:1.3rem;bottom:1.4rem}
}


/* Final gallery photography */
.flight-interest{position:relative;cursor:pointer;margin-top:.25rem}
.flight-interest input{position:absolute;opacity:0;pointer-events:none}
.flight-interest span{display:flex;align-items:center;gap:.8rem;padding:1rem 1.05rem;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.78);font-weight:650;transition:transform .25s,border-color .25s,background .25s,box-shadow .25s}
.flight-interest span::before{content:"";flex:0 0 23px;width:23px;height:23px;border:1px solid rgba(112,31,69,.35);border-radius:7px;background:white;box-shadow:inset 0 0 0 5px white;transition:background .25s,box-shadow .25s}
.flight-interest input:checked+span{transform:translateY(-2px);border-color:rgba(112,31,69,.38);background:linear-gradient(145deg,#fff,#f5e5ea);box-shadow:0 12px 24px rgba(112,31,69,.09)}
.flight-interest input:checked+span::before{background:var(--wine);box-shadow:inset 0 0 0 5px white}
.flight-interest input:focus-visible+span{outline:3px solid rgba(112,31,69,.22);outline-offset:3px}

.predot-feature{position:relative;display:grid;grid-template-columns:minmax(230px,.56fr) minmax(0,1.44fr);gap:clamp(1.2rem,3vw,3rem);padding:clamp(2rem,5vw,5rem);overflow:hidden;background:radial-gradient(circle at 12% 10%,rgba(211,174,98,.22),transparent 24rem),linear-gradient(135deg,#101d35 0%,#172d4b 52%,#253d5c 100%);color:#fffaf4}
.predot-feature::before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 0 58%,rgba(255,255,255,.035) 58% 59%,transparent 59% 100%);pointer-events:none}
.predot-intro{position:sticky;top:7rem;align-self:start;padding:clamp(1.2rem,2vw,2rem);border:1px solid rgba(255,255,255,.18);border-radius:30px;background:rgba(8,19,36,.52);box-shadow:0 24px 70px rgba(0,0,0,.25);backdrop-filter:blur(14px)}
.predot-intro .eyebrow{color:#dcc187}
.predot-intro h2{margin:.15rem 0 0;color:#fffaf4;font:clamp(3.7rem,8vw,8rem)/.86 var(--display);letter-spacing:-.06em}
.predot-subtitle{margin:.75rem 0 1.2rem;color:#dcc187;font:700 clamp(.78rem,1.3vw,1rem) var(--condensed);letter-spacing:.2em;text-transform:uppercase}
.predot-copy{max-width:34rem;color:rgba(255,250,244,.82);font-size:clamp(.95rem,1.3vw,1.08rem);line-height:1.85}
.predot-rule{display:flex;align-items:center;gap:.8rem;margin-top:1.6rem;color:rgba(255,250,244,.68);font:600 .65rem var(--condensed);letter-spacing:.16em;text-transform:uppercase}
.predot-rule i{width:2.5rem;height:1px;background:#dcc187}
.predot-collage{position:relative;display:block;columns:3;column-gap:1rem}
.predot-collage .gallery-item{display:block;width:100%;margin:0 0 1rem;break-inside:avoid;min-height:0;border-color:rgba(255,255,255,.16);border-radius:24px;background:#0d1c31;box-shadow:0 20px 42px rgba(0,0,0,.22)}
.predot-collage .gallery-item img{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain}
.predot-collage .predot-lead,.predot-collage .predot-tall,.predot-collage .predot-wide{grid-column:auto;grid-row:auto}
.gallery-section{padding:clamp(2rem,5vw,5rem);background:linear-gradient(180deg,#fffaf4 0%,#f6efe7 100%)}
.gallery-note{margin-bottom:1.4rem;padding:1.15rem 1.3rem}
.gallery-note::before{display:none}
.gallery-note>div{display:grid;gap:.22rem}
.gallery-note strong{font:clamp(1.2rem,2vw,1.8rem)/1.15 var(--display);color:var(--ink)}
.gallery-note>span{max-width:27rem;text-align:right;color:var(--muted)}
.gallery-grid{display:block;columns:4;column-gap:1rem}
.gallery-grid .gallery-item{display:block;width:100%;margin:0 0 1rem;break-inside:avoid;min-height:0;border-radius:20px;box-shadow:0 12px 32px rgba(56,39,42,.09)}
.gallery-grid .gallery-item img{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:contain}
.gallery-item{isolation:isolate}
.gallery-item::after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,transparent 58%,rgba(15,16,25,.42));opacity:0;transition:opacity .35s}
.gallery-item:hover::after,.gallery-item:focus-visible::after{opacity:1}
.gallery-view{position:absolute!important;left:auto!important;right:.75rem;bottom:.75rem!important;z-index:2!important;padding:.45rem .72rem!important;color:white!important;background:rgba(10,14,23,.62)!important;border:1px solid rgba(255,255,255,.24);opacity:0;transform:translateY(6px);transition:opacity .3s,transform .3s}
.gallery-item:hover .gallery-view,.gallery-item:focus-visible .gallery-view{opacity:1;transform:none}
.lightbox figure img{max-width:min(90vw,1400px);max-height:82vh;object-fit:contain}
.lightbox figcaption{display:flex;justify-content:space-between;gap:1rem}
@media(max-width:1050px){.predot-feature{grid-template-columns:1fr}.predot-intro{position:relative;top:auto}.gallery-grid{columns:3}}
@media(max-width:760px){.predot-feature{padding:1.3rem}.predot-collage{columns:2}.gallery-grid{columns:2}.gallery-note>span{text-align:left}.gallery-view{opacity:1;transform:none}}
@media(max-width:480px){.predot-collage{columns:1}.gallery-grid{columns:1}.gallery-section{padding:1.25rem}.gallery-grid .gallery-item,.predot-collage .gallery-item{margin-bottom:.8rem}.lightbox figcaption{flex-direction:column;gap:.25rem}}
