/* NYE in Sydney. Design tokens: ink base, bone text, one gold accent. */
:root{
  --ink:#080a10;--ink-1:#0e121a;--ink-2:#151a24;--ink-3:#1d2330;
  --line:rgba(242,234,217,.10);--line-2:rgba(242,234,217,.2);
  --bone:#f2ead9;--text:#e6dfd0;--mute:#a8a191;
  --gold:#e3ac4c;--gold-2:#efc271;--on-gold:#1a1307;--gold-a:rgba(227,172,76,.14);
  --r-s:10px;--r:18px;--r-l:28px;--r-pill:999px;
  --f-d:"Bricolage Grotesque",ui-sans-serif,system-ui,sans-serif;
  --f-b:"Geist",ui-sans-serif,system-ui,sans-serif;
  --f-m:"Geist Mono",ui-monospace,SFMono-Regular,monospace;
  --ease-out:cubic-bezier(.16,1,.3,1);--ease-in:cubic-bezier(.7,0,.84,0);
  --shadow:0 30px 60px -24px rgba(2,4,10,.85),0 8px 18px -10px rgba(2,4,10,.6);
  --max:1240px;--nav-h:72px;
  --z-fx:1;--z-shade:2;--z-content:3;--z-grain:40;--z-nav:50;--z-skip:100;
  color-scheme:dark;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:calc(var(--nav-h) + 16px)}
body{margin:0;background:var(--ink);color:var(--text);font:400 1.0625rem/1.6 var(--f-b);-webkit-font-smoothing:antialiased;overflow-x:clip}
img{max-width:100%;height:auto;display:block}
a{color:var(--gold);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--gold-2)}
h1,h2,h3{font-family:var(--f-d);color:var(--bone);font-weight:700;letter-spacing:-.025em;line-height:1.02;margin:0 0 .5em;text-wrap:balance}
h2{font-size:clamp(2rem,4.2vw,3.4rem)}
h3{font-size:1.3rem;letter-spacing:-.015em;line-height:1.15}
p{margin:0 0 1em;text-wrap:pretty}
.wrap{width:100%;max-width:var(--max);margin:0 auto;padding:0 clamp(16px,4vw,32px)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:-999px;top:8px;z-index:var(--z-skip);background:var(--bone);color:var(--ink);padding:10px 14px;border-radius:var(--r-s)}
.skip:focus{left:8px}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:6px}
.ph{line-height:1}

/* Grain (fixed, non-interactive) */
.grain{position:fixed;inset:0;pointer-events:none;z-index:var(--z-grain);opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:52px;padding:0 24px;border-radius:var(--r-pill);
  font:600 1rem/1 var(--f-b);text-decoration:none;white-space:nowrap;border:1px solid transparent;cursor:pointer;
  transition:transform .16s var(--ease-out),background-color .2s var(--ease-out),border-color .2s var(--ease-out),color .2s var(--ease-out)}
.btn:active{transform:scale(.97)}
.btn .ph{font-size:1.1em;transition:transform .25s var(--ease-out)}
.btn:hover .ph-arrow-right{transform:translateX(3px)}
.btn:hover .ph-arrow-up-right{transform:translate(2px,-2px)}
.btn-gold{background:var(--gold);color:var(--on-gold)}
.btn-gold:hover{background:var(--gold-2);color:var(--on-gold)}
.btn-ghost{background:rgba(8,10,16,.35);color:var(--bone);border-color:var(--line-2);backdrop-filter:blur(10px)}
.btn-ghost:hover{border-color:var(--bone);color:var(--bone)}
.btn-ink{background:var(--ink);color:var(--bone)}
.btn-ink:hover{background:var(--ink-3);color:var(--bone)}
.btn-sm{min-height:44px;padding:0 18px;font-size:.92rem}
.btn-block{width:100%}
.icon-btn{width:48px;height:48px;border-radius:50%;border:1px solid var(--line-2);background:transparent;color:var(--bone);display:grid;place-items:center;font-size:1.15rem;cursor:pointer;transition:border-color .2s,transform .16s var(--ease-out)}
.icon-btn:hover{border-color:var(--gold);color:var(--gold)}
.icon-btn:active{transform:scale(.94)}

/* Nav */
.nav{position:fixed;top:0;left:0;right:0;z-index:var(--z-nav);height:var(--nav-h);transition:background-color .35s var(--ease-out),border-color .35s,backdrop-filter .35s;border-bottom:1px solid transparent}
.nav.is-solid{background:rgba(8,10,16,.8);backdrop-filter:blur(14px) saturate(1.2);border-bottom-color:var(--line)}
.nav-in{height:100%;display:flex;align-items:center;gap:28px}
.logo{font:700 1.3rem/1 var(--f-d);letter-spacing:-.02em;color:var(--bone);text-decoration:none;white-space:nowrap}
.logo span{color:var(--gold)}
.logo:hover{color:var(--bone)}
.nav nav{margin-left:auto}
.nav ul{display:flex;gap:4px;list-style:none;margin:0;padding:0}
.nav ul a{display:block;padding:10px 12px;border-radius:var(--r-pill);color:var(--text);text-decoration:none;font-size:.95rem;font-weight:500;transition:color .2s,background-color .2s}
.nav ul a:hover{color:var(--bone);background:rgba(242,234,217,.07)}
.nav ul a[aria-current]{color:var(--gold)}
.menu-btn{display:none;width:44px;height:44px;border-radius:50%;border:1px solid var(--line-2);background:rgba(8,10,16,.4);color:var(--bone);font-size:1.25rem;cursor:pointer;place-items:center}
.nav-sentinel{position:absolute;top:0;height:120px;width:1px}
@media (max-width:1024px){
  .menu-btn{display:grid;margin-left:auto}
  .nav nav{margin-left:0}
  .nav-cta{display:none}
  .nav ul{position:fixed;top:var(--nav-h);left:0;right:0;flex-direction:column;gap:0;padding:12px 16px 20px;background:rgba(8,10,16,.96);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);
    opacity:0;transform:translateY(-8px);pointer-events:none;transition:opacity .2s var(--ease-out),transform .25s var(--ease-out)}
  .nav ul.open{opacity:1;transform:none;pointer-events:auto}
  .nav ul a{padding:14px 8px;border-radius:var(--r-s);font-size:1.05rem}
}

/* Hero */
.hero{position:relative;min-height:100dvh;display:grid;align-items:end;overflow:hidden;isolation:isolate;background:var(--ink)}
.hero--page{min-height:min(88dvh,820px)}
.hero-media{position:absolute;inset:0;z-index:0}
.hero-img{width:100%;height:100%;object-fit:cover;object-position:var(--pos,center);transform:scale(1.08);animation:settle 2.2s var(--ease-out) .05s forwards}
.fx{position:absolute;inset:0;width:100%;height:100%;z-index:var(--z-fx);pointer-events:none}
.hero-shade{position:absolute;inset:0;z-index:var(--z-shade);pointer-events:none;
  background:linear-gradient(90deg,rgba(8,10,16,.92) 0%,rgba(8,10,16,.72) 38%,rgba(8,10,16,.18) 72%,rgba(8,10,16,.3) 100%),
             linear-gradient(0deg,var(--ink) 0%,rgba(8,10,16,0) 34%),linear-gradient(180deg,rgba(8,10,16,.55) 0%,rgba(8,10,16,0) 22%)}
.hero-grid{position:relative;z-index:var(--z-content);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:clamp(24px,4vw,64px);align-items:end;
  padding-top:calc(var(--nav-h) + 48px);padding-bottom:clamp(40px,8vh,88px)}
.hero h1{font-size:clamp(3rem,8vw,7.4rem);line-height:.92;letter-spacing:-.045em;max-width:11ch;margin-bottom:.32em}
.hero--page h1{font-size:clamp(2.5rem,5.6vw,5rem);max-width:16ch}
.hero h1 .accent{color:var(--gold)}
.hero-sub{font-size:clamp(1.05rem,1.5vw,1.25rem);color:var(--text);max-width:44ch;margin-bottom:28px}
.hero-ctas{display:flex;flex-wrap:wrap;gap:12px}
.hero-aside{justify-self:end}
.w{display:inline-block;overflow:hidden;vertical-align:top;padding-bottom:.1em;margin-bottom:-.1em}
.w>span{display:inline-block;transform:translateY(108%);animation:rise 1s var(--ease-out) forwards;animation-delay:calc(var(--i) * 70ms + 120ms)}
.crumbs{font-size:.88rem;color:var(--mute);margin-bottom:20px}
.crumbs a{color:var(--mute);text-decoration:none}
.crumbs a:hover{color:var(--bone)}
.crumbs [aria-current]{color:var(--text)}
@media (max-width:900px){
  .hero-grid{grid-template-columns:1fr;align-items:end}
  .hero-aside{justify-self:stretch}
  .hero-shade{background:linear-gradient(0deg,var(--ink) 4%,rgba(8,10,16,.82) 52%,rgba(8,10,16,.35) 100%)}
}

/* Countdown */
.cd{background:rgba(8,10,16,.5);border:1px solid var(--line-2);border-radius:var(--r-l);padding:20px 22px;backdrop-filter:blur(16px) saturate(1.1)}
.cd-row{display:grid;grid-template-columns:repeat(4,auto);gap:clamp(10px,2vw,24px)}
.cd-u{display:flex;flex-direction:column;gap:6px;min-width:0}
.cd-n{display:block;font:500 clamp(2.4rem,4.6vw,4rem)/1 var(--f-m);color:var(--bone);letter-spacing:-.04em;font-variant-numeric:tabular-nums;overflow:hidden}
.cd-n.roll{animation:roll .45s var(--ease-out)}
.cd-l{font:500 .72rem/1 var(--f-m);letter-spacing:.16em;text-transform:uppercase;color:var(--mute)}
.cd--md .cd-n{font-size:clamp(2rem,3.4vw,3rem)}
.cd--sm{padding:14px 16px;border-radius:var(--r);background:var(--ink-1)}
.cd--sm .cd-n{font-size:1.7rem}
.cd--sm .cd-l{font-size:.65rem}
.cd-cap{margin:12px 0 0;font-size:.9rem;color:var(--gold)}
.cd-deadline{display:flex;align-items:center;gap:8px;margin:12px 4px 0;font-size:.88rem;color:var(--mute)}
.foot-brand .cd{margin-top:20px;max-width:320px}
.side .cd{margin-top:20px}

/* Sections */
.sec{padding:clamp(72px,11vw,140px) 0}
.sec--tight{padding:clamp(48px,7vw,88px) 0}
.sec-head{max-width:860px;margin-bottom:clamp(32px,4vw,52px)}
.sec-head p{color:var(--mute);font-size:1.1rem;max-width:56ch}
.sec-head.split{max-width:none;display:grid;grid-template-columns:1.1fr .9fr;gap:24px 56px;align-items:end}
.sec-head.split h2{margin:0}
.sec-head.split p{margin:0}
@media (max-width:820px){.sec-head.split{grid-template-columns:1fr}}

/* Reveal (only hidden when JS is running) */
.js .reveal{transition:opacity .8s var(--ease-out),transform .8s var(--ease-out),filter .8s var(--ease-out);transition-delay:calc(var(--i,0) * 70ms)}
.js .reveal:not(.in){opacity:0;transform:translateY(18px);filter:blur(6px)}
.js .reveal.settled{transition:transform .25s var(--ease-out),border-color .25s,background-color .2s,color .2s,opacity .3s,filter .3s;transition-delay:0s}
.js .zig-media.reveal:not(.in){opacity:1;transform:none;filter:none}
.zig-media img{transition:clip-path 1.2s var(--ease-out),transform 1.8s var(--ease-out)}
.js .zig-media.reveal:not(.in) img{clip-path:inset(0 0 100% 0);transform:scale(1.08)}

/* Marquee (the one per page) */
.marquee{display:flex;overflow:hidden;border-block:1px solid var(--line);padding:18px 0;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.mq-track{display:flex;align-items:center;gap:28px;padding-right:28px;flex-shrink:0;animation:mq 48s linear infinite}
.marquee:hover .mq-track,.marquee:focus-within .mq-track{animation-play-state:paused}
.mq-track a{font:600 clamp(1.2rem,2vw,1.6rem)/1 var(--f-d);letter-spacing:-.02em;color:var(--mute);text-decoration:none;white-space:nowrap;transition:color .2s}
.mq-track a:hover{color:var(--gold)}
.mq-track .ph{color:var(--gold);font-size:.95rem;opacity:.7}

/* Featured rail */
.sec--rail{padding-bottom:clamp(40px,6vw,72px)}
.rail-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:28px}
.rail-head h2{margin:0}
.rail-btns{display:flex;gap:10px}
.rail{display:grid;grid-auto-flow:column;grid-auto-columns:min(400px,84vw);gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;
  padding:6px max(clamp(16px,4vw,32px),calc((100vw - var(--max)) / 2 + 32px)) 18px;scroll-padding-inline:max(clamp(16px,4vw,32px),calc((100vw - var(--max)) / 2 + 32px));scrollbar-width:thin;scrollbar-color:var(--ink-3) transparent}
.rc{scroll-snap-align:start;display:flex;flex-direction:column;min-height:360px;padding:26px;border-radius:var(--r-l);border:1px solid var(--line);text-decoration:none;color:var(--text);
  background:radial-gradient(520px circle at var(--gx) var(--gy),rgba(227,172,76,.17),transparent 60%),var(--ink-1);
  transition:transform .35s var(--ease-out),border-color .3s}
.rc:hover{transform:translateY(-4px);border-color:rgba(227,172,76,.45);color:var(--text)}
.rc:active{transform:translateY(-2px) scale(.99)}
.rc-loc{font-size:.85rem;color:var(--mute);display:flex;align-items:center;gap:6px;margin-bottom:auto}
.rc h3{font-size:clamp(1.6rem,2.4vw,2rem);margin:56px 0 12px}
.rc p{color:var(--mute);font-size:.95rem;margin-bottom:22px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.rc-foot{display:flex;justify-content:space-between;align-items:end;gap:12px;padding-top:16px;border-top:1px solid var(--line)}
.rc-price{font:500 1.9rem/1 var(--f-m);color:var(--gold);letter-spacing:-.03em}
.rc-fw{font-size:.8rem;color:var(--mute);display:flex;gap:6px;align-items:center;text-align:right}

/* Bento */
.bento{display:grid;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(2,minmax(260px,32vh));gap:14px}
.b{position:relative;overflow:hidden;border-radius:var(--r-l);display:flex;align-items:flex-end;text-decoration:none;color:var(--bone);background:var(--ink-1);isolation:isolate;border:1px solid var(--line)}
.b-dinner{grid-column:1/3;grid-row:1/3}
.b-cruise{grid-column:3;grid-row:1/3}
.b-party{grid-column:4;grid-row:1}
.b-family{grid-column:4;grid-row:2;background:var(--gold);color:var(--on-gold);border-color:transparent}
.b-media{position:absolute;inset:0;z-index:-1}
.b-media img{width:100%;height:100%;object-fit:cover;transform:scale(1.02);transition:transform 1.1s var(--ease-out)}
.b-media::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(8,10,16,.92) 0%,rgba(8,10,16,.35) 55%,rgba(8,10,16,.05) 100%)}
.b:hover .b-media img{transform:scale(1.07)}
.b:hover{color:var(--bone)}
.b-copy{padding:clamp(20px,2.4vw,32px)}
.b h3{font-size:clamp(1.4rem,2.2vw,2.2rem);color:inherit;margin-bottom:8px}
.b-dinner h3{font-size:clamp(1.8rem,3.4vw,3.2rem)}
.b p{color:inherit;opacity:.82;font-size:.95rem;margin-bottom:14px;max-width:36ch}
.b-go{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:.95rem}
.b-go .ph{transition:transform .25s var(--ease-out)}
.b:hover .b-go .ph{transform:translateX(4px)}
.b-family:hover{color:var(--on-gold)}
@media (max-width:1024px){.bento{grid-template-columns:1fr 1fr;grid-template-rows:auto}.b{min-height:300px}.b-dinner{grid-column:1/3;grid-row:auto;min-height:380px}.b-cruise,.b-party,.b-family{grid-column:auto;grid-row:auto}}
@media (max-width:640px){.bento{grid-template-columns:1fr}.b-dinner{grid-column:auto}.b{min-height:260px}}

/* Directory */
.dir-tools{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:12px;margin-bottom:16px}
.search,.sel{position:relative;display:flex;align-items:center}
.search .ph{position:absolute;left:18px;color:var(--mute);font-size:1.1rem;pointer-events:none}
.sel .ph{position:absolute;right:16px;color:var(--mute);pointer-events:none}
.search input,.sel select{width:100%;min-height:52px;background:var(--ink-1);border:1px solid var(--line-2);color:var(--bone);border-radius:var(--r-pill);font:500 1rem var(--f-b);transition:border-color .2s}
.search input{padding:0 20px 0 48px}
.sel select{appearance:none;padding:0 44px 0 20px;cursor:pointer}
.search input::placeholder{color:var(--mute)}
.search input:hover,.sel select:hover{border-color:rgba(242,234,217,.35)}
.search input:focus,.sel select:focus{outline:2px solid var(--gold);outline-offset:2px}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:18px}
.chip{min-height:44px;padding:0 18px;border-radius:var(--r-pill);border:1px solid var(--line-2);background:transparent;color:var(--text);font:500 .92rem var(--f-b);cursor:pointer;transition:background-color .18s,color .18s,border-color .18s,transform .16s var(--ease-out)}
.chip:hover{border-color:var(--bone);color:var(--bone)}
.chip:active{transform:scale(.96)}
.chip[aria-pressed="true"]{background:var(--gold);border-color:var(--gold);color:var(--on-gold)}
.count{font:500 .8rem var(--f-m);letter-spacing:.08em;text-transform:uppercase;color:var(--mute);margin:0 0 18px}
@media (max-width:760px){
  .dir-tools{grid-template-columns:1fr 1fr}
  .search{grid-column:1/-1}
  .chips{flex-wrap:nowrap;overflow-x:auto;margin-inline:calc(clamp(16px,4vw,32px) * -1);padding-inline:clamp(16px,4vw,32px);scrollbar-width:none}
  .chip{flex-shrink:0}
}
.ev-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:14px}
.ev{position:relative;display:flex;flex-direction:column;padding:22px;border-radius:var(--r);background:var(--ink-1);border:1px solid var(--line);isolation:isolate;
  transition:transform .25s var(--ease-out),border-color .25s,opacity .8s var(--ease-out),filter .8s var(--ease-out)}
.ev::before{content:"";position:absolute;inset:0;border-radius:inherit;z-index:-1;opacity:0;transition:opacity .3s;
  background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%),rgba(227,172,76,.12),transparent 45%)}
.ev:hover::before{opacity:1}
.ev:hover{transform:translateY(-3px);border-color:var(--line-2)}
.ev.is-feat{border-color:rgba(227,172,76,.35)}
.ev-top{display:flex;justify-content:space-between;gap:10px;margin-bottom:12px;font-size:.84rem}
.ev-loc{color:var(--mute);display:flex;gap:6px;align-items:center}
.ev-feat{font:500 .7rem/1.8 var(--f-m);letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.ev h3{margin-bottom:8px}
.ev-link{color:var(--bone);text-decoration:none}
.ev-link::after{content:"";position:absolute;inset:0;border-radius:inherit}
.ev-link:hover{color:var(--bone)}
.ev p{color:var(--mute);font-size:.94rem;margin-bottom:16px}
.ev-tags{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:0 0 18px}
.ev-tags li{font-size:.76rem;padding:4px 10px;border-radius:var(--r-pill);border:1px solid var(--line-2);color:var(--text)}
.ev-tags .ev-fw{border-color:rgba(227,172,76,.35);color:var(--gold);display:flex;gap:5px;align-items:center}
.ev-foot{margin-top:auto;display:flex;justify-content:space-between;align-items:end;gap:12px;padding-top:16px;border-top:1px solid var(--line)}
.ev-price b{display:block;font:500 1.45rem/1 var(--f-m);color:var(--bone);letter-spacing:-.03em}
.ev-price span{font-size:.75rem;color:var(--mute)}
.ev-book{position:relative;z-index:1}
.ev[hidden]{display:none}
.empty{display:none;text-align:center;color:var(--mute);padding:48px 0}
::view-transition-group(*){animation-duration:.32s;animation-timing-function:var(--ease-out)}

/* Night story */
.night-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(28px,5vw,72px);align-items:start}
.stage{position:sticky;top:calc(var(--nav-h) + 24px);height:min(70vh,620px);border-radius:var(--r-l);overflow:hidden;border:1px solid var(--line);background:#05070d;isolation:isolate}
.sky{position:absolute;inset:0;opacity:0;transition:opacity 1.1s var(--ease-out)}
.sky-0{background:linear-gradient(180deg,#3d5875 0%,#7d93a8 52%,#cdb89a 100%)}
.sky-1{background:linear-gradient(180deg,#1a2136 0%,#5b3f50 48%,#c9864f 100%)}
.sky-2{background:linear-gradient(180deg,#04060b 0%,#0c1322 62%,#18202f 100%)}
.sky-3{background:linear-gradient(180deg,#020307 0%,#070a12 70%,#120e0a 100%)}
.stage[data-sky="0"] .sky-0,.stage[data-sky="1"] .sky-1,.stage[data-sky="2"] .sky-2,.stage[data-sky="3"] .sky-3{opacity:1}
.stage .fx{z-index:1}
.stage-water{position:absolute;left:0;right:0;bottom:0;height:30%;z-index:2;background:linear-gradient(180deg,rgba(5,7,13,.25),rgba(5,7,13,.85));border-top:1px solid rgba(242,234,217,.12);pointer-events:none}
.stage-clock{position:absolute;left:clamp(20px,3vw,32px);top:clamp(18px,3vw,28px);z-index:3;font:700 clamp(2.4rem,5.4vw,4.6rem)/1 var(--f-d);letter-spacing:-.04em;color:var(--bone);text-shadow:0 2px 30px rgba(2,4,10,.5)}
.stage-clock.roll{animation:clockin .6s var(--ease-out)}
.steps{list-style:none;margin:0;padding:0}
.step{min-height:46vh;display:flex;flex-direction:column;justify-content:center;padding:24px 0;border-top:1px solid var(--line);opacity:.32;transition:opacity .45s var(--ease-out)}
.step.on{opacity:1}
.step h3{font:500 .82rem/1 var(--f-m);letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-bottom:14px}
.step p{font:600 clamp(1.3rem,2.2vw,1.8rem)/1.25 var(--f-d);letter-spacing:-.02em;color:var(--bone);margin:0;max-width:24ch}
@media (max-width:860px){
  .night-grid{grid-template-columns:1fr;gap:0}
  .stage{top:calc(var(--nav-h) + 8px);height:38vh;z-index:2;box-shadow:0 -90px 0 0 var(--ink),0 20px 40px -10px var(--ink);overflow:clip}
  .step{min-height:52vh}
}

/* Zigzag vantage teaser */
.zig{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(28px,5vw,72px);align-items:center}
.zig-media{margin:0;border-radius:var(--r-l);overflow:hidden;aspect-ratio:4/5;border:1px solid var(--line)}
.zig-media img{width:100%;height:100%;object-fit:cover;object-position:25% 50%}
.zig-copy p{color:var(--mute);font-size:1.1rem;max-width:44ch}
.vlist{list-style:none;padding:0;margin:8px 0 28px}
.vlist li{display:flex;justify-content:space-between;align-items:center;gap:14px;padding:14px 0;border-bottom:1px solid var(--line)}
.vlist b{display:block;color:var(--bone);font-weight:600}
.vlist div span{font-size:.85rem;color:var(--mute)}
@media (max-width:820px){.zig{grid-template-columns:1fr}.zig-media{aspect-ratio:16/11}}

/* Pills */
.pill{flex-shrink:0;font:500 .72rem/1 var(--f-m);letter-spacing:.06em;text-transform:uppercase;padding:7px 10px;border-radius:var(--r-pill);white-space:nowrap}
.pill--free{border:1px solid var(--line-2);color:var(--bone)}
.pill--paid{background:var(--gold);color:var(--on-gold)}
.pill--check{border:1px dashed var(--line-2);color:var(--mute)}

/* Band */
.band{display:grid;grid-template-columns:1fr auto;gap:24px 40px;align-items:center;padding:clamp(28px,5vw,56px);border-radius:var(--r-l);background:var(--gold);color:var(--on-gold)}
.band h2{color:var(--on-gold);font-size:clamp(1.8rem,3.4vw,2.8rem);margin-bottom:10px}
.band p{margin:0;max-width:52ch;font-weight:500}
@media (max-width:760px){.band{grid-template-columns:1fr}}

/* FAQ */
.faq-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(28px,5vw,80px);align-items:start}
.faq-side{position:sticky;top:calc(var(--nav-h) + 32px)}
.faq-side p{color:var(--mute);font-size:1.1rem}
.faq details{border-bottom:1px solid var(--line)}
.faq details:first-child{border-top:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:22px 0;font:600 1.15rem/1.3 var(--f-d);letter-spacing:-.01em;color:var(--bone);transition:color .2s}
.faq summary::-webkit-details-marker{display:none}
.faq summary:hover{color:var(--gold)}
.faq summary .ph{flex-shrink:0;font-size:1.2rem;color:var(--gold);transition:transform .3s var(--ease-out)}
.faq details[open] summary .ph{transform:rotate(45deg)}
.faq .ans{padding:0 0 22px}
.faq details[open] .ans{animation:fadeup .45s var(--ease-out)}
.faq .ans p{color:var(--mute);margin:0;max-width:62ch}
@media (max-width:860px){.faq-grid{grid-template-columns:1fr}.faq-side{position:static}}

/* Category lede */
.lede{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(28px,5vw,80px);align-items:start}
.lede-text{font:500 clamp(1.25rem,2vw,1.6rem)/1.45 var(--f-d);letter-spacing:-.01em;color:var(--bone);margin:0}
.lede-tips h2{font-size:1.4rem}
.lede-more{color:var(--mute);font-size:1.05rem;margin:20px 0 0;max-width:56ch}
.ticks{list-style:none;padding:0;margin:0}
.ticks li{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.ticks li .ph{color:var(--gold);font-size:1.15rem;margin-top:3px;flex-shrink:0}
.ticks--lg li{font-size:1.1rem;padding:14px 0}
@media (max-width:860px){.lede{grid-template-columns:1fr}}

/* Event page */
.event-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:clamp(28px,5vw,72px);align-items:start}
.event-main h2{font-size:clamp(1.6rem,2.6vw,2.2rem)}
.event-main .prose{margin-top:48px}
.side{position:sticky;top:calc(var(--nav-h) + 24px);background:var(--ink-1);border:1px solid var(--line);border-radius:var(--r-l);padding:28px;box-shadow:var(--shadow)}
.side-price b{display:block;font:500 2.8rem/1 var(--f-m);color:var(--gold);letter-spacing:-.04em}
.side-price span{display:block;margin-top:8px;font-size:.88rem;color:var(--mute)}
.side dl{margin:22px 0;display:grid;grid-template-columns:auto 1fr;gap:10px 18px}
.side dt{font:500 .72rem/1.9 var(--f-m);letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}
.side dd{margin:0;color:var(--bone)}
@media (max-width:860px){.event-layout{grid-template-columns:1fr}.side{position:static}}

/* Prose */
.prose{max-width:68ch}
.prose--wide{max-width:76ch}
.prose h2{font-size:clamp(1.5rem,2.4vw,2rem);margin-top:1.6em}
.prose h2:first-child{margin-top:0}
.prose p,.prose li{color:var(--text)}
.prose ul{padding-left:1.2em}
.prose li{margin-bottom:8px}
.notice{font-size:.9rem;color:var(--mute);border-left:2px solid var(--gold);padding:12px 16px;background:var(--gold-a);border-radius:0 var(--r-s) var(--r-s) 0}

/* Map */
.map-wrap{display:grid;grid-template-columns:1.55fr 1fr;gap:14px;height:min(72vh,640px)}
.vmap{height:100%;border-radius:var(--r-l);overflow:hidden;border:1px solid var(--line);background:var(--ink-1)}
.vps{list-style:none;margin:0;padding:0 6px 0 0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--ink-3) transparent}
.vp{width:100%;text-align:left;background:transparent;border:0;border-bottom:1px solid var(--line);color:var(--text);padding:14px 12px;cursor:pointer;border-radius:var(--r-s);font:inherit;display:grid;gap:4px;transition:background-color .2s}
.vp:hover,.vp.on{background:var(--ink-2)}
.vp-top{display:flex;justify-content:space-between;gap:10px;align-items:center}
.vp-top b{color:var(--bone);font-weight:600}
.vp-meta{font-size:.86rem;color:var(--text)}
.vp-note{font-size:.82rem;color:var(--mute)}
.mk{display:block;width:16px;height:16px;border-radius:50%;background:var(--gold);border:3px solid var(--ink);box-shadow:0 0 0 1px var(--gold);transition:transform .25s var(--ease-out)}
.mk.on{transform:scale(1.5)}
.mk--free{background:var(--bone);box-shadow:0 0 0 1px var(--bone)}
.mk--check{background:var(--mute);box-shadow:0 0 0 1px var(--mute)}
.leaflet-container{background:var(--ink-1);font:inherit}
.tiles-dark{filter:invert(1) hue-rotate(185deg) brightness(.82) contrast(.92) saturate(.35)}
.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:var(--ink-2);color:var(--text);border:1px solid var(--line-2);box-shadow:var(--shadow)}
.leaflet-popup-content b{color:var(--bone)}
.leaflet-control-attribution{background:rgba(8,10,16,.7)!important;color:var(--mute)!important}
.leaflet-control-attribution a{color:var(--text)!important}
.leaflet-bar a{background:var(--ink-2)!important;color:var(--bone)!important;border-color:var(--line)!important}
@media (max-width:860px){.map-wrap{grid-template-columns:1fr;height:auto}.vmap{height:56vh}.vps{max-height:420px}}

/* List page: season */
.months{display:grid;grid-template-columns:.8fr 1fr 1.3fr;gap:clamp(14px,2vw,24px);align-items:start}
.mo{display:flex;flex-direction:column}
.mo-bar{height:clamp(140px,22vw,260px);display:flex;align-items:flex-end;margin-bottom:22px;border-bottom:1px solid var(--line-2)}
.mo-bar span{display:block;width:100%;border-radius:var(--r) var(--r) 0 0;background:linear-gradient(180deg,var(--gold),rgba(227,172,76,.25));transform-origin:bottom;transform:scaleY(.02);transition:transform 1.4s var(--ease-out);transition-delay:calc(var(--i) * 140ms + 200ms)}
.mo-0 .mo-bar span{height:34%;opacity:.55}
.mo-1 .mo-bar span{height:62%;opacity:.78}
.mo-2 .mo-bar span{height:100%}
.mo.in .mo-bar span,html:not(.js) .mo-bar span{transform:scaleY(1)}
.mo h3 span{display:block;font:500 .78rem/1 var(--f-m);letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin-bottom:10px}
.mo h3{font-size:clamp(1.25rem,1.8vw,1.6rem)}
.mo p{color:var(--mute);font-size:.98rem}
.mo .mo-win{color:var(--bone);font-weight:500;display:flex;gap:8px}
.mo-win .ph{color:var(--gold);margin-top:5px}
.fineprint{font-size:.8rem;color:var(--mute);margin-top:12px}
@media (max-width:760px){.months{grid-template-columns:1fr}.mo-bar{height:auto;margin-bottom:14px}.mo-bar span{height:14px!important;width:var(--w,100%);border-radius:var(--r-pill);transform-origin:left;transform:scaleX(.02)}.mo-0 .mo-bar span{--w:34%}.mo-1 .mo-bar span{--w:62%}.mo.in .mo-bar span{transform:scaleX(1)}}

/* List page: offer + ticket */
.offer{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(32px,5vw,80px);align-items:start}
.why{list-style:none;padding:0;margin:0 0 28px;display:grid;grid-template-columns:1fr 1fr;gap:28px 32px}
.why li{display:flex;gap:14px}
.why .ph{font-size:1.6rem;color:var(--gold);flex-shrink:0}
.why b{display:block;color:var(--bone);margin-bottom:4px}
.why span{color:var(--mute);font-size:.95rem}
.payoff{font:500 1.2rem/1.45 var(--f-d);color:var(--bone);padding:20px 22px;border-left:2px solid var(--gold);background:var(--gold-a);border-radius:0 var(--r) var(--r) 0;max-width:52ch}
.ticket{position:sticky;top:calc(var(--nav-h) + 24px);background:var(--bone);color:var(--ink);border-radius:var(--r-l);box-shadow:var(--shadow);transition:transform .5s var(--ease-out)}
.ticket:hover{transform:rotate(-1deg) translateY(-4px)}
.ticket-main{padding:32px 32px 26px}
.ticket-kicker{font:500 .75rem/1 var(--f-m);letter-spacing:.18em;text-transform:uppercase;color:#6b6252;margin-bottom:18px}
.ticket-amt{font:700 clamp(4rem,8vw,5.6rem)/.9 var(--f-d);letter-spacing:-.05em;color:var(--ink)}
.ticket-amt sup{font-size:.4em;vertical-align:top;margin-right:4px;position:relative;top:.25em}
.ticket-sub{color:#5d5547;margin:12px 0 18px;font-size:.92rem}
.ticket .ticks li{border-bottom-color:rgba(8,10,16,.1);color:#2a2620;font-size:.95rem}
.ticket .ticks li .ph{color:#9a6a12}
.ticket-stub{position:relative;padding:22px 32px 30px;border-top:2px dashed rgba(8,10,16,.22);display:grid;gap:14px}
.ticket-stub::before,.ticket-stub::after{content:"";position:absolute;top:-15px;width:28px;height:28px;border-radius:50%;background:var(--ink)}
.ticket-stub::before{left:-14px}
.ticket-stub::after{right:-14px}
.ticket-stub span{font:500 .75rem/1 var(--f-m);letter-spacing:.16em;text-transform:uppercase;color:#6b6252}
@media (max-width:900px){.offer{grid-template-columns:1fr}.ticket{position:static}}
@media (max-width:560px){.why{grid-template-columns:1fr}}

/* Form */
.form-wrap{max-width:900px}
.listing{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:clamp(22px,4vw,40px);border-radius:var(--r-l);background:var(--ink-1);border:1px solid var(--line)}
.fld.full{grid-column:1/-1}
.fld label{display:block;font-size:.9rem;font-weight:500;color:var(--text);margin-bottom:8px}
.fld input,.fld select,.fld textarea{width:100%;min-height:50px;background:var(--ink);border:1px solid var(--line-2);color:var(--bone);border-radius:var(--r-s);padding:12px 14px;font:inherit;transition:border-color .2s}
.fld textarea{min-height:130px;resize:vertical}
.fld input::placeholder,.fld textarea::placeholder{color:#8d8678}
.fld input:hover,.fld select:hover,.fld textarea:hover{border-color:rgba(242,234,217,.35)}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:2px solid var(--gold);outline-offset:1px;border-color:transparent}
.hp{display:none}
.form-status{margin:14px 0 0;color:var(--text);min-height:1.6em}
@media (max-width:640px){.listing{grid-template-columns:1fr}}

/* Footer */
.foot{border-top:1px solid var(--line);padding:72px 0 36px;background:var(--ink)}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:40px}
.foot-brand p{color:var(--mute);max-width:40ch;margin-top:14px}
.foot-h{font:500 .75rem/1 var(--f-m);letter-spacing:.16em;text-transform:uppercase;color:var(--mute);margin:6px 0 18px}
.foot ul{list-style:none;padding:0;margin:0}
.foot li{margin-bottom:10px}
.foot li a{color:var(--text);text-decoration:none;overflow-wrap:anywhere}
.foot li a:hover{color:var(--gold)}
.fine{font-size:.8rem;color:var(--mute);margin:40px 0 0;padding-top:24px;border-top:1px solid var(--line);max-width:110ch}
.fine.credits{margin-top:14px;padding-top:0;border:0}
.fine a{color:var(--mute)}
@media (max-width:820px){.foot-grid{grid-template-columns:1fr 1fr}.foot-brand{grid-column:1/-1}}

/* Keyframes */
@keyframes rise{to{transform:translateY(0)}}
@keyframes settle{to{transform:scale(1)}}
@keyframes roll{from{transform:translateY(55%);opacity:0;filter:blur(3px)}to{transform:none;opacity:1;filter:none}}
@keyframes clockin{from{transform:translateY(16px);opacity:0;filter:blur(6px)}to{transform:none;opacity:1;filter:none}}
@keyframes fadeup{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
@keyframes mq{to{transform:translateX(-100%)}}

/* Reduced motion: decorative motion off, state changes instant */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0s!important;scroll-behavior:auto!important}
  .w>span{transform:none}
  .hero-img{transform:none}
  .js .reveal:not(.in){opacity:1;transform:none;filter:none}
  .js .zig-media.reveal:not(.in) img{clip-path:none;transform:none}
  .mo-bar span{transform:none!important}
  .marquee{overflow-x:auto}
  .mq-track{animation:none}
  .mq-track[aria-hidden]{display:none}
  .ticket:hover,.rc:hover,.ev:hover{transform:none}
  .fx{display:none}
}

/* Floating WhatsApp + email contact (and email or WhatsApp choice on the listing form) */
.muted{color:var(--mute)}
.cf{position:fixed;right:18px;bottom:18px;z-index:80;display:flex;flex-direction:column;align-items:flex-end;gap:12px}
.cf-btn{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:0;cursor:pointer;box-shadow:var(--shadow);transition:transform .2s var(--ease-out)}
.cf-btn:hover{transform:translateY(-2px)}
.cf-btn:active{transform:scale(.95)}
.cf-wa{background:#25d366;color:#fff}
.cf-wa:hover{color:#fff}
.cf-mail{background:var(--ink-2);color:var(--bone);border:1px solid var(--line-2)}
.cf-panel{width:min(360px,calc(100vw - 36px));max-height:calc(100dvh - 110px);overflow:auto;background:var(--ink-1);border:1px solid var(--line-2);border-radius:var(--r-l);padding:24px;box-shadow:var(--shadow);position:relative;transform-origin:bottom right;animation:cfin .3s var(--ease-out)}
.cf-panel[hidden]{display:none}
.cf-panel h3{margin:0 0 6px;padding-right:28px}
.cf-panel p{font-size:.9rem;margin:0 0 12px}
.cf-panel label{display:block;font-size:.88rem;font-weight:500;color:var(--text);margin:12px 0 6px}
.cf-panel input,.cf-panel textarea{width:100%;min-height:46px;background:var(--ink);border:1px solid var(--line-2);color:var(--bone);border-radius:var(--r-s);padding:10px 12px;font:inherit}
.cf-panel input:focus,.cf-panel textarea:focus{outline:2px solid var(--gold);outline-offset:1px;border-color:transparent}
.cf-panel .btn{width:100%;margin-top:16px}
.cf-close{position:absolute;top:10px;right:12px;width:36px;height:36px;background:none;border:0;color:var(--mute);font-size:1.6rem;line-height:1;cursor:pointer;border-radius:50%}
.cf-close:hover{color:var(--bone)}
.cf-status{margin:10px 0 0!important}
.send-choice{display:flex;flex-wrap:wrap;gap:12px}
.send-choice .btn{flex:1 1 220px}
.send-choice .btn svg{flex-shrink:0}
.send-hint{margin:0 0 12px}
.btn-wa{background:#25d366;color:#05210f}
.btn-wa:hover{background:#3be07a;color:#05210f}
.event-layout>*{min-width:0}
@keyframes cfin{from{opacity:0;transform:scale(.94) translateY(6px)}to{opacity:1;transform:none}}
@media (max-width:600px){.cf{right:12px;bottom:12px}.cf-btn{width:50px;height:50px}}
@media (prefers-reduced-motion:reduce){.cf-panel{animation:none}}
