:root{
  --abyss:#031322; --deep:#06314d; --teal:#0d5f7a; --aqua:#6fe3ff;
  --gold:#f0be4f; --gold-d:#a8741a; --sand:#f3e6c4; --ink:#d9ecf2;
  --serif:'Cinzel',Georgia,serif; --body:'Cinzel',Georgia,serif;
  --noise:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 .07 0'/></filter><rect width='160' height='160' filter='url(%23n)'/></svg>");
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--abyss);color:var(--ink);font:500 1.02rem/1.75 var(--body);font-variant-numeric:lining-nums tabular-nums;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:var(--gold)}
:focus-visible{outline:2px solid var(--aqua);outline-offset:3px}

/* loader */
.loader{position:fixed;inset:0;z-index:99;background:var(--abyss);display:grid;place-content:center;justify-items:center;gap:1rem;transition:opacity .8s,visibility .8s}
.loader img{width:220px;animation:pulse 1.6s ease-in-out infinite}
.loader p{font-family:var(--serif);letter-spacing:.3em;color:var(--gold)}
.loader.done{opacity:0;visibility:hidden}
@keyframes pulse{50%{transform:scale(1.06);filter:drop-shadow(0 0 24px var(--aqua))}}

/* nav */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:.6rem clamp(1rem,4vw,3rem);transition:background .4s,backdrop-filter .4s}
.count-dock:empty{display:none}
.nav.has-count{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center}
.nav.has-count .count-dock{display:flex;justify-content:center}
.nav.solid{background:rgba(3,19,34,.82);backdrop-filter:blur(10px);border-bottom:1px solid rgba(240,190,79,.3)}
.brand img{height:78px;width:auto;filter:drop-shadow(0 2px 8px #000)}
.nav-toggle{display:none}
.nav nav{display:flex;gap:1.15rem;align-items:center}
.nav nav a{font-family:var(--serif);font-size:.95rem;letter-spacing:.08em;text-decoration:none;color:var(--sand)}
.nav nav a:hover,.nav nav a[aria-current]{color:var(--gold)}
@media(max-width:1040px){
  .brand img{height:64px}
  .nav-toggle{display:inline-flex;align-items:center;font-family:var(--serif);letter-spacing:.12em;font-size:1rem;text-transform:uppercase;color:var(--sand);background:rgba(3,19,34,.55);border:1px solid var(--gold);padding:.55rem .9rem;cursor:pointer}
  .nav nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;padding:.35rem 1.1rem 1.1rem;background:rgba(3,19,34,.96);border-bottom:1px solid rgba(240,190,79,.35)}
  .nav nav.open{display:flex}
  .nav nav a{padding:.8rem .15rem;border-bottom:1px solid rgba(240,190,79,.16)}
  .nav nav a.btn{margin-top:.85rem;text-align:center}
  .nav.has-count{display:flex;flex-wrap:wrap}
  .nav.has-count .count-dock{flex-basis:100%;order:3;padding-top:.35rem}
}

/* buttons */
.btn{display:inline-block;font-family:var(--serif);font-weight:700;letter-spacing:.1em;text-decoration:none;color:#2a1700;padding:.9rem 2rem;border-radius:2px;
  background:linear-gradient(180deg,#ffe29a,var(--gold) 45%,var(--gold-d));border:1px solid #ffe9b0;
  box-shadow:0 6px 0 #6b4509,0 12px 30px rgba(240,190,79,.35);transition:transform .15s,box-shadow .15s}
.btn:hover{transform:translateY(3px);box-shadow:0 3px 0 #6b4509,0 8px 24px rgba(240,190,79,.4)}
.btn-ghost{background:rgba(3,19,34,.55);color:var(--gold);border-color:var(--gold);box-shadow:none}
.btn-sm{padding:.45rem 1rem;font-size:.8rem;box-shadow:none;color:#2a1700!important}

/* hero */
.hero{position:relative}
.hero-pin{position:relative;min-height:100vh;min-height:100dvh;overflow:hidden;perspective:1200px;display:flex;flex-direction:column}
.scene{position:absolute;inset:0;overflow:hidden}
.scene img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:center center}
.diver{position:fixed;z-index:35;left:max(6px,.8vw);top:16vh;display:flex;align-items:flex-end;gap:.4rem;width:max-content;pointer-events:none;will-change:top,transform}
.diver .scuba{width:min(96px,14vw);height:auto;display:block;animation:wait-bob 3.8s ease-in-out infinite}
.depth-meter{display:grid;justify-items:center;gap:.15rem;opacity:0;transform:translateY(10px);transition:opacity .35s ease,transform .35s ease}
.diver.diving .depth-meter{opacity:1;transform:none}
.depth-meter span{font-family:var(--serif);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:#9fd8ea;text-shadow:0 2px 6px #000}
.depth-meter b{font-family:var(--serif);font-size:1.05rem;line-height:1;color:#ffe7a8;font-variant-numeric:lining-nums tabular-nums;text-shadow:0 2px 6px #000}
.depth-tube{width:12px;height:78px;border-radius:999px;border:1px solid #f0be4f;background:rgba(3,19,34,.62);box-shadow:inset 0 0 0 1px #4a3010;display:flex;align-items:flex-end;overflow:hidden}
.depth-tube i{display:block;width:100%;height:0;background:linear-gradient(180deg,#bff6ff,#0d5f7a);box-shadow:0 0 10px rgba(111,227,255,.7)}
.wa-float{position:fixed;z-index:60;right:1rem;bottom:1rem;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#25d366;box-shadow:0 8px 22px rgba(0,0,0,.4);text-decoration:none}
.wa-float svg{width:34px;height:34px;fill:#fff}
.wa-float:hover{transform:translateY(-2px)}
.scuba{width:100%;height:auto;overflow:visible;filter:drop-shadow(0 12px 10px rgba(0,20,40,.45))}
.scuba .suit{fill:#07324a;stroke:#021018;stroke-width:2}
.scuba .leg,.scuba .arm,.scuba .hose{fill:none;stroke:#021018;stroke-width:7;stroke-linecap:round}
.scuba .hose{stroke-width:2.5;stroke:#1b303c}
.scuba .tank{fill:#e4eef4;stroke:#60788a;stroke-width:1.5}
.scuba .valve{fill:#8ea4b3}
.scuba .head{fill:#f2c4a4}
.scuba .mask{fill:#b7f3ff;stroke:#042033;stroke-width:2}
.scuba .glint{fill:#fff}
.scuba .fins polygon{fill:#1aa3c7;stroke:#06344a;stroke-width:1.2}
.scuba .bubbles circle{fill:rgba(230,250,255,.9);animation:rise 2.6s ease-in infinite}
.scuba .bubbles circle:nth-child(2){animation-delay:.5s}
.scuba .bubbles circle:nth-child(3){animation-delay:1s}
.scuba .bubbles circle:nth-child(4){animation-delay:1.5s}
.fins{transform-origin:60px 168px;animation:fin-wait 1.3s ease-in-out infinite}
.scuba .wave{transform-origin:80px 98px;animation:wave 1.6s ease-in-out infinite}
@keyframes wait-bob{0%,100%{transform:translateY(8px) rotate(-2deg)}50%{transform:translateY(-12px) rotate(2deg)}}
@keyframes wave{0%,100%{transform:rotate(0deg)}50%{transform:rotate(-16deg)}}
@keyframes fin-wait{0%,100%{transform:rotate(-8deg)}50%{transform:rotate(10deg)}}
@keyframes rise{0%{transform:translateY(0);opacity:.15}40%{opacity:.95}100%{transform:translateY(-36px);opacity:0}}
#fx{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;mix-blend-mode:screen}
.rays{position:absolute;inset:0;pointer-events:none;opacity:.5;mix-blend-mode:screen;
  background:repeating-conic-gradient(from 200deg at 50% -10%,rgba(111,227,255,.22) 0 2deg,transparent 2deg 7deg);
  mask-image:linear-gradient(#000,transparent 80%);animation:sway 9s ease-in-out infinite alternate}
@keyframes sway{to{transform:rotate(3deg) scale(1.08)}}
.vignette{position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 35%,rgba(3,19,34,.85) 100%),linear-gradient(rgba(3,19,34,.55),transparent 30%,transparent 60%,rgba(3,19,34,.7))}
.hero-inner{position:relative;z-index:2;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:clamp(.28rem,.9vh,.55rem);padding:6.2rem 1.4rem 4.6rem;transform-style:preserve-3d}
.hero-inner::before{content:"";position:absolute;z-index:-1;left:50%;top:48%;width:min(980px,96vw);height:92%;transform:translate(-50%,-50%);pointer-events:none;background:radial-gradient(ellipse at center,rgba(3,22,42,.72) 0%,rgba(3,22,42,.4) 48%,transparent 76%)}
.hero-logo{width:auto;height:auto;max-width:min(300px,62vw);max-height:min(16vh,140px);object-fit:contain;filter:drop-shadow(0 16px 28px rgba(0,0,0,.7)) drop-shadow(0 0 22px rgba(111,227,255,.28));transform:translateZ(40px);will-change:transform}
.hero-banner{display:grid;justify-items:center;gap:.28rem;width:min(980px,94vw)}
.hero h1{font-family:var(--serif);font-weight:700;letter-spacing:.06em;text-transform:uppercase;font-size:clamp(1.7rem,2.8vw,2.9rem);line-height:1.12;text-align:center;background:linear-gradient(180deg,#fff9e4 0%,#ffe7a4 22%,#f0be4f 48%,#c4841a 72%,#ffe7a8 100%);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 1px 0 #7a5310) drop-shadow(0 3px 0 #3d2606) drop-shadow(0 8px 14px rgba(2,12,24,.75))}
.hero h1 span{display:inline;white-space:nowrap}
.hero h1 span + span::before{content:" "}
.point-copy{display:block;min-height:3.6em;line-height:1.2}
.hero .kicker{display:flex;align-items:center;justify-content:center;gap:clamp(.35rem,1.2vw,.7rem);width:100%;font-family:var(--serif);font-weight:700;letter-spacing:.22em;text-transform:uppercase;font-size:clamp(.7rem,.9vw,.95rem);color:#f3d48a;text-shadow:0 2px 0 #5c3a08,0 4px 10px rgba(2,14,28,.85);white-space:nowrap}
.flourish{width:clamp(36px,8vw,92px);height:auto;flex:none;color:#e8c36a;filter:drop-shadow(0 2px 2px rgba(0,0,0,.45))}
.flourish.flip{transform:scaleX(-1)}
.hero .lede{max-width:62ch;font-weight:500;font-size:clamp(.78rem,.86vw,.9rem);line-height:1.55;color:#f6e7c2;text-shadow:0 2px 10px rgba(2,14,28,.95),0 0 2px #071422}
.hero .lede strong{color:#ffe08a;font-weight:700}
.hero-points{list-style:none;display:flex;flex-wrap:nowrap;justify-content:center;gap:.35rem .4rem;width:auto;max-width:min(760px,96vw);margin:.25rem auto .1rem}
.hero-points li{flex:0 1 6.6rem;width:6.6rem;max-width:6.8rem;display:grid;justify-items:center;align-content:start;gap:.22rem;text-align:center;font-family:var(--serif);font-weight:500;font-size:.58rem;letter-spacing:.05em;line-height:1.2;text-transform:uppercase;color:#f6e7c2;text-shadow:0 2px 8px rgba(2,14,28,.95);font-variant-numeric:lining-nums tabular-nums}
.medal{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;color:#f0be4f;background:radial-gradient(circle at 50% 38%,#0e5274,#041628 72%);border:2.5px solid #f0be4f;box-shadow:0 0 0 1px #6b4509,0 8px 16px rgba(0,0,0,.45),inset 0 0 14px rgba(240,190,79,.28)}
.medal svg{width:62%;height:62%;fill:currentColor}
.hero .tickets{font-family:var(--serif);font-weight:700;letter-spacing:.12em;text-transform:uppercase;font-size:clamp(.95rem,1.15vw,1.15rem);line-height:1.35;color:#ffe29a;text-shadow:0 2px 8px rgba(2,14,28,.95);max-width:24ch}
.hero .cta .btn{font-size:1.05rem;letter-spacing:.14em;padding:.9rem 2.8rem}
.cta{display:flex;gap:1.1rem;flex-wrap:wrap;justify-content:center;margin-top:.4rem}
.cta.c{margin-top:1.5rem}
.hero .opens{font-family:var(--serif);letter-spacing:.18em;font-size:.85rem;color:#ffe29a;text-shadow:0 2px 8px rgba(2,14,28,.95),0 0 1px #3a2808}
.descend{position:absolute;z-index:3;bottom:.65rem;left:50%;translate:-50% 0;display:grid;justify-items:center;gap:.25rem;color:#ffe7b0;text-decoration:none;font-family:var(--serif);font-size:.68rem;letter-spacing:.22em;transition:opacity .3s;text-shadow:0 2px 8px rgba(2,14,28,.9)}
.descend i{width:1px;height:28px;background:linear-gradient(var(--gold),transparent);animation:drip 1.8s infinite}
@keyframes drip{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
@media(max-height:820px){
  .hero-inner{padding:5.6rem 1.15rem 6.2rem;gap:.22rem}
  .hero-logo{max-height:25vh}
  .medal{width:52px;height:52px}
}
@media(max-width:1100px){
  .hero h1 span{display:block}
  .hero h1 span + span::before{content:none}
  .hero-points{flex-wrap:wrap;width:min(18.5rem,92vw);gap:.6rem .35rem}
  .hero-points li{flex:1 1 calc(50% - .35rem);width:auto;max-width:8.2rem;font-size:.68rem}
  .diver .scuba{width:72px}
  .depth-tube{height:64px}
}
@media(max-width:700px){
  .diver .scuba{width:58px}
  .depth-meter b{font-size:.95rem}
  .depth-tube{height:54px;width:10px}
  .wa-float{width:52px;height:52px;right:.7rem;bottom:.7rem}
  .wa-float svg{width:30px;height:30px}
}
@media(max-height:560px){
  .diver .scuba{width:52px}
  .descend i{display:none}
  .descend{bottom:.4rem}
}
@media(max-width:640px){
  .hero-inner{padding-inline:1.1rem}
  .hero h1{white-space:normal;font-size:clamp(1.2rem,6.4vw,1.7rem);letter-spacing:.03em}
  .hero .kicker{white-space:normal;font-size:clamp(.78rem,3.2vw,.95rem);letter-spacing:.08em;gap:.35rem}
  .flourish{width:36px}
  .hero-points{gap:.55rem .3rem}
  .hero-points li{max-width:8rem;font-size:.66rem}
}
#pop{position:fixed;inset:0;z-index:80;pointer-events:none;overflow:hidden}
.pop-bubble{position:absolute;border-radius:50%;border:1.5px solid rgba(190,245,255,.9);background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.75),rgba(120,210,255,.18) 58%,transparent 70%);animation:pop-up .9s ease-out forwards}
@keyframes pop-up{to{transform:translateY(-72px) scale(1.35);opacity:0}}

/* sections */
.sec{position:relative;padding:clamp(4rem,10vw,8rem) 1.5rem;background:linear-gradient(var(--abyss),#041a2e)}
.sec::before{content:"";position:absolute;inset:0;background:var(--noise);pointer-events:none}
.sec>*{position:relative}
.wrap{max-width:1180px;margin:auto}.narrow{max-width:760px}.center{text-align:center}
.title{font-family:var(--serif);font-weight:900;font-size:clamp(1.8rem,4.2vw,3.2rem);line-height:1.15;text-align:center;
  background:linear-gradient(180deg,#fff0bf,var(--gold) 55%,var(--gold-d));-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 3px 0 rgba(0,0,0,.5))}
.title.left{text-align:left}
.sub{max-width:60ch;margin:1rem auto 3rem;text-align:center;color:#bcd6df}.sub.left{text-align:left;margin-left:0}
.body{margin-top:1.4rem;color:#cfe3ea;text-align:left}

/* cards: carved stone tablets */
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.6rem;perspective:1000px}
.card{padding:2rem 1.6rem;border:1px solid rgba(240,190,79,.5);
  background:var(--noise),linear-gradient(145deg,#0c4560,#06263b 60%,#04182a);
  box-shadow:inset 0 0 0 5px #04182a,inset 0 0 0 6px rgba(240,190,79,.35),0 24px 40px rgba(0,0,0,.5);
  clip-path:polygon(14px 0,calc(100% - 14px) 0,100% 14px,100% calc(100% - 14px),calc(100% - 14px) 100%,14px 100%,0 calc(100% - 14px),0 14px)}
.card h3{font-family:var(--serif);font-size:1.15rem;color:var(--gold);margin-bottom:.7rem;letter-spacing:.04em}
.card p{font-size:1.12rem;color:#cfe3ea}
.tilt{transform-style:preserve-3d;transition:transform .25s ease-out;will-change:transform}
.tilt.glare{position:relative}

.split{display:grid;grid-template-columns:minmax(0,420px) 1fr;gap:clamp(2rem,6vw,5rem);align-items:center}
.split.flip{grid-template-columns:1fr minmax(0,420px)}
.split.flip .poster{order:2}
.split .sub.left{margin-bottom:1.15rem}
@media(max-width:820px){
  .split,.split.flip{grid-template-columns:1fr}
  .split.flip .poster{order:0}
}
.poster img,.invites img,.mantra{border:2px solid var(--gold);box-shadow:0 30px 60px rgba(0,0,0,.65),0 0 50px rgba(111,227,255,.22)}
.day{background:radial-gradient(ellipse at 80% 20%,#1a4a62,var(--abyss) 68%)}
.night{background:radial-gradient(ellipse at 20% 50%,#0a3a58,var(--abyss) 70%)}
.slots{display:grid;grid-template-columns:1fr;gap:.7rem;margin:0 0 1.5rem;max-width:34rem}
.slot{display:grid;grid-template-columns:48px minmax(0,1fr) auto;grid-template-areas:"icon name time";align-items:center;gap:.35rem 1.1rem;padding:.8rem 1.05rem;text-align:left;border:1px solid rgba(240,190,79,.55);background:linear-gradient(160deg,#0e4e6c,#04182a);box-shadow:inset 0 0 0 4px #04182a,inset 0 0 0 5px rgba(240,190,79,.28)}
.slot-icon{grid-area:icon;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;color:#f0be4f;border:2px solid #f0be4f;background:radial-gradient(circle at 50% 38%,#14607e,#031422)}
.slot-icon svg{width:26px;height:26px}
.slot b{grid-area:name;font-family:var(--serif);letter-spacing:.12em;font-size:.95rem;color:#9fd8ea;text-transform:uppercase}
.slot .when{grid-area:time;justify-self:end;font-family:var(--serif);color:var(--gold);font-size:clamp(1.05rem,1.6vw,1.28rem);line-height:1.25;white-space:nowrap;font-variant-numeric:lining-nums tabular-nums}
@media(max-width:1100px){
  .slot{grid-template-columns:48px minmax(0,1fr);grid-template-areas:"icon name" "icon time";align-items:center;row-gap:.15rem}
  .slot .when{justify-self:start;font-size:1.25rem}
}
.ticket-banner{display:flex;align-items:flex-start;gap:.75rem;text-align:left;font-family:var(--serif);font-size:.78rem;letter-spacing:.04em;line-height:1.55;text-transform:uppercase;color:#2a1700;background:linear-gradient(180deg,#ffe29a,var(--gold));padding:1rem 1.15rem;margin:0 auto 1.4rem}
.ticket-banner input{margin-top:.2rem;width:1.15rem;height:1.15rem;flex:none;accent-color:#6b4509}
.check{display:flex;gap:.85rem;text-align:left;align-items:flex-start;color:var(--sand);font-size:1.08rem;line-height:1.45}
.check input{margin-top:.35rem;width:1.15rem;height:1.15rem;flex:none;accent-color:#a8741a}
.agree-note{margin-top:.8rem;color:#ffb4a8;font-family:var(--serif);font-size:.95rem}
.foot-links{display:flex;flex-wrap:wrap;justify-content:center;gap:.4rem 1.4rem;margin:0 auto 1.1rem}
.foot-links a{font-family:var(--serif);font-size:.78rem;letter-spacing:.12em;text-decoration:none;color:var(--sand)}
.foot-links a:hover{color:var(--gold)}
.page-top{padding:8.2rem 1.5rem 1rem;text-align:center}
.page-top p{max-width:46ch;margin:.8rem auto 0;color:#bcd6df}
.legal{max-width:820px;margin:0 auto;padding:1rem 1.5rem 4.5rem}
.legal h2{font-family:var(--serif);color:var(--gold);font-size:1.25rem;letter-spacing:.04em;margin:2.1rem 0 .55rem}
.legal h3{font-family:var(--serif);color:var(--sand);font-size:1.05rem;letter-spacing:.03em;margin:1.35rem 0 .4rem}
.legal p,.legal li{color:#d5e7ee}
.legal ul{margin:.35rem 0 1rem 1.2rem}
.legal li{margin:.25rem 0}
.contact-card{max-width:640px;margin:0 auto;padding:2rem 1.6rem;border:1px solid rgba(240,190,79,.5);background:linear-gradient(145deg,#0c4560,#06263b 60%,#04182a);text-align:center}
.contact-card .title{font-size:clamp(1.4rem,3vw,2rem);margin-bottom:.2rem}
.contact-card address{margin:.4rem 0 1rem}
.facts{list-style:none;margin:0 0 2rem}
.facts li{padding:.55rem 0 .55rem 1.8rem;border-bottom:1px solid rgba(240,190,79,.2);position:relative}
.facts li::before{content:"";position:absolute;left:0;top:1.05rem;width:.7rem;height:.7rem;rotate:45deg;background:var(--gold);box-shadow:0 0 10px var(--gold)}
.facts b{color:var(--gold);font-family:var(--serif)}

.count{display:flex;justify-content:center;gap:.32rem;margin:.3rem 0 0;flex-wrap:wrap}
.count div{min-width:46px;padding:.18rem .32rem .12rem;border-radius:999px;border:1px solid rgba(240,190,79,.75);background:radial-gradient(circle at 50% 0%,rgba(255,226,154,.18),transparent 55%),linear-gradient(180deg,#0a3a52,#041018);box-shadow:0 0 0 1px #4a3010,0 4px 10px rgba(0,0,0,.35)}
.count b{display:block;font:700 1.05rem/1 var(--serif);letter-spacing:.04em;color:#ffe7a8;font-variant-numeric:lining-nums tabular-nums}
.count span{font-family:var(--serif);font-size:.4rem;letter-spacing:.12em;color:#9fd8ea}
.nav .count{margin:0;gap:.28rem}
.nav .count div{min-width:4.8rem;padding:.28rem .55rem .18rem;border-radius:8px;display:grid;justify-items:center}
.nav .count b{font-size:.74rem;line-height:1.1}
.nav .count span{font-size:.42rem;letter-spacing:.04em;line-height:1.15;margin-top:.06rem}
.legal .ticket-banner{color:#2a1700;margin:1.2rem 0 1.6rem}
.invites{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,380px));gap:2rem;justify-content:center;perspective:1000px}

.tabs{display:inline-flex;margin:2rem 0;border:1px solid var(--gold)}
.tabs button{font:700 .9rem var(--serif);letter-spacing:.15em;padding:.7rem 1.6rem;background:none;color:var(--gold);border:0;cursor:pointer}
.tabs button.on{background:var(--gold);color:#2a1700}
.mantra{width:min(460px,100%);margin:auto}

address{font-style:normal;margin:1.5rem 0;font-size:1.4rem;color:var(--sand);font-variant-numeric:lining-nums tabular-nums}
.park{margin:.2rem auto .35rem;text-align:center;color:#bcd6df;font-size:1.25rem}
.book{background:radial-gradient(ellipse at 50% 100%,#0d5f7a55,transparent 70%),#031322}
#checkout:empty{display:none}
footer{text-align:center;padding:3rem 1.5rem;border-top:1px solid rgba(240,190,79,.4);background:#020b14}
footer img{height:80px;margin:0 auto 1rem}
footer p{max-width:44ch;margin:auto;font-style:italic;color:var(--sand)}
footer small{display:block;margin-top:1rem;color:#7f9fae}

@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}html{scroll-behavior:auto}}

@media(min-width:1400px){
  body{font-size:1.32rem}
  .wrap{max-width:1240px}
  .sec{padding-inline:2rem}
  .nav nav a{font-size:1.02rem}
  .card h3{font-size:1.3rem}
  .card p{font-size:1.2rem}
}
@media(min-width:1101px){
  .hero h1{font-size:clamp(1.7rem,2.8vw,2.9rem);letter-spacing:.06em;white-space:nowrap}
}
@media(max-width:1200px){
  .nav{padding-inline:1.1rem}
  .nav nav{gap:.75rem}
  .title{font-size:clamp(1.7rem,3.6vw,2.6rem)}
}
@media(max-width:1024px){
  .hero h1,.hero .kicker{white-space:normal}
  .hero h1{font-size:clamp(1.45rem,4.6vw,2.15rem)}
  .hero .kicker{font-size:.8rem}
  .hero .lede{font-size:.84rem}
  .hero .tickets{font-size:1rem}
  .grid{grid-template-columns:1fr 1fr}
  .invites{grid-template-columns:1fr 1fr}
  .page-top{padding-top:7.2rem}
  .nav nav a{font-size:1rem}
}
@media(max-width:768px){
  body{font-size:1.15rem}
  .sec{padding:3.2rem 1.1rem}
  .title{font-size:clamp(1.7rem,7vw,2.4rem)}
  .sub{margin-bottom:1.8rem;font-size:1.12rem}
  .grid,.invites{grid-template-columns:1fr}
  .hero-points{gap:.55rem .35rem}
  .hero-points li{max-width:8.2rem;font-size:.68rem}
  .card{padding:1.4rem 1.15rem}
  .card h3{font-size:1.28rem}
  .card p,.body,.legal p,.legal li{font-size:1.12rem}
  .legal,.page-top{padding-inline:1.1rem}
  .contact-card{padding:1.4rem 1rem}
  .tabs{display:flex;width:min(100%,28rem)}
  .tabs button{flex:1;padding:.75rem .4rem;font-size:1rem}
  footer img{height:64px}
  footer p{font-size:1.1rem}
  .nav nav a{font-size:1.15rem;padding:.9rem .15rem}
  .ticket-banner{font-size:.95rem}
  address{font-size:1.2rem}
}
@media(max-width:560px){
  .hero-inner{padding:5.5rem .9rem 4.4rem}
  .hero h1{font-size:clamp(1.25rem,6.6vw,1.65rem)}
  .hero .kicker{font-size:.85rem}
  .hero .lede{font-size:.8rem}
  .hero .tickets{font-size:.92rem}
  .hero .opens{font-size:.85rem}
  .hero h1{line-height:1.2}
  .hero-points{gap:.5rem .28rem}
  .hero-points li{width:auto;max-width:8rem;font-size:.64rem}
  .medal{width:48px;height:48px}
  .cta{width:100%}
  .cta .btn{width:100%;text-align:center}
  .btn{padding:.9rem 1.2rem;font-size:1.05rem}
  .slot{grid-template-columns:44px minmax(0,1fr);grid-template-areas:"icon name" "icon time";padding:.85rem .9rem}
  .slot-icon{width:44px;height:44px}
  .slot .when{grid-area:time;grid-column:auto;justify-self:start;white-space:nowrap;font-size:1.15rem}
  .slot b{grid-area:name;font-size:1rem}
  .facts li{font-size:1.08rem}
  .foot-links a{font-size:1rem}
  .page-top{padding-top:6.4rem}
  .mantra{width:100%}
  .count{gap:.25rem}
  .nav .count{width:100%}
}
@media(max-width:400px){
  .brand img{height:52px}
  .hero h1{font-size:1.55rem;line-height:1.2}
  .hero .kicker{font-size:.78rem;letter-spacing:.05em}
  .hero-points{gap:.45rem .22rem}
  .hero-points li{width:auto;max-width:7.4rem;font-size:.6rem}
  .hero-logo{max-width:70vw}
  .legal h2{font-size:1.2rem}
  .contact-card .title{font-size:1.45rem}
  .nav-toggle{font-size:.95rem;padding:.55rem .75rem}
  footer{padding:2.2rem .9rem}
}
