@font-face{font-family:Anton;src:url(fonts/anton-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:"Hanken Grotesk";src:url(fonts/hanken-grotesk-latin-wght-normal.woff2) format("woff2");font-weight:100 900;font-display:swap}
@font-face{font-family:"Anton Fallback";src:local("Impact"),local("Arial Narrow Bold"),local("Arial");size-adjust:88%;ascent-override:110%}
@font-face{font-family:"Hanken Fallback";src:local("Arial"),local("Helvetica");size-adjust:102%}
:root{--bg:#0B0B10;--tx:#F5F3EE;--lime:#C8FF3D;--coral:#FF5A4D;--dim:#A9A7B0;--line:#2a2a35;
--disp:Anton,"Anton Fallback","Bebas Neue",Impact,"Arial Narrow Bold",sans-serif;--body:"Hanken Grotesk","Hanken Fallback",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth;scroll-padding-top:5rem}
body{background:var(--bg);color:var(--tx);font:400 1.0625rem/1.55 var(--body);-webkit-text-size-adjust:100%;overflow-x:hidden;padding-bottom:calc(5rem + env(safe-area-inset-bottom))}
a{color:inherit}
:focus-visible{outline:3px solid var(--lime);outline-offset:3px}
.skip{position:absolute;left:-999px;top:0;background:var(--lime);color:#000;padding:.8rem 1rem;z-index:200}
.skip:focus{left:0}
svg.i{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:square;stroke-linejoin:miter}
/* splash */
#splash{position:fixed;inset:0;z-index:100;background:var(--bg);display:flex;align-items:flex-end;padding:1rem 1.2rem;transition:opacity .5s}
#splash b{font:400 72px/0.85 var(--disp);color:var(--lime);font-variant-numeric:tabular-nums}
@media(min-width:900px){#splash b{font-size:160px}}
html[data-tier=lite] #splash{display:none}
/* nav */
.nav{position:fixed;z-index:50;left:50%;transform:translateX(-50%);bottom:calc(.8rem + env(safe-area-inset-bottom));display:flex;align-items:center;gap:.25rem;background:rgba(20,20,28,.94);border:1px solid var(--line);border-radius:999px;padding:.35rem;max-width:calc(100vw - 1.2rem)}
html[data-tier=full] .nav{backdrop-filter:blur(12px)}
.nav a,.nav button{min-height:44px;display:inline-flex;align-items:center;gap:.35rem;padding:0 .9rem;border-radius:999px;text-decoration:none;font:600 .95rem var(--body);color:var(--tx);background:none;border:0;cursor:pointer}
.nav .logo{padding:0 .6rem;color:var(--lime)}
.nav .cta{background:var(--lime);color:#0B0B10}
.nav .links{display:none}
.nav a[aria-current=true]{color:var(--lime)}
.menu{position:fixed;inset:0;z-index:60;background:var(--bg);display:none;flex-direction:column;justify-content:center;gap:.2rem;padding:2rem}
.menu.open{display:flex}
.menu a{font:400 clamp(3rem,16vw,6rem)/1 var(--disp);text-decoration:none;min-height:44px}
.menu a:hover{color:var(--lime)}
.menu button{position:absolute;top:1rem;right:1rem;min-height:44px;background:var(--lime);color:#000;border:0;border-radius:999px;padding:0 1.2rem;font:700 1rem var(--body)}
@media(min-width:900px){.nav{bottom:auto;top:1rem}.nav .links{display:flex}.nav .mbtn{display:none}}
/* hero */
.hero{position:relative;height:100vh;height:100svh;min-height:520px;overflow:hidden;background:var(--bg)}
.scene{position:absolute;inset:0}
.scene svg{width:100%;height:100%;display:block}
.ring{transform-origin:50% 60%;animation:ring 3.2s ease-out infinite}
.ring:nth-child(2){animation-delay:.8s}.ring:nth-child(3){animation-delay:1.6s}.ring:nth-child(4){animation-delay:2.4s}
@keyframes ring{0%{transform:scale(.2);opacity:.9}100%{transform:scale(1.6);opacity:0}}
.beam{transform-origin:50% 100%;animation:sweep 6s ease-in-out infinite alternate}
.beam.b2{animation-duration:7.5s;animation-direction:alternate-reverse}.beam.b3{animation-duration:5s}
@keyframes sweep{from{transform:rotate(-28deg)}to{transform:rotate(28deg)}}
.paused *{animation-play-state:paused!important}
.ko{position:absolute;inset:0;pointer-events:none}
.ko svg{width:100%;height:100%;display:block}
.ko text{font-family:var(--disp)}
.hero .chip{position:absolute;left:1.2rem;bottom:calc(6rem + env(safe-area-inset-bottom));font:700 .95rem var(--body);background:var(--lime);color:#000;padding:.5rem .9rem;border-radius:4px;z-index:2}
.hero .big{position:absolute;right:1.2rem;bottom:calc(6rem + env(safe-area-inset-bottom));z-index:2;min-height:48px;display:inline-flex;align-items:center;gap:.5rem;background:var(--coral);color:#0B0B10;padding:0 1.4rem;border-radius:999px;text-decoration:none;font:700 1.05rem var(--body)}
@media(min-width:900px){.hero .chip,.hero .big{bottom:2rem}}
.lid{animation:none}
@keyframes lid{to{transform:translateY(-105%)}}
/* marquee */
.mq{border-block:1px solid var(--line);overflow:hidden;padding:.6rem 0;background:var(--bg)}
.mq .row{display:flex;width:max-content;white-space:nowrap;font:400 clamp(2.5rem,9vw,6rem)/1.1 var(--disp);text-transform:uppercase;animation:mq 30s linear infinite}
.mq .row.rev{animation-direction:reverse;color:transparent;-webkit-text-stroke:1.5px var(--coral)}
.mq span{padding-right:1.5rem}
@keyframes mq{to{transform:translateX(-50%)}}
/* sections */
section{padding:clamp(3rem,8vw,7rem) clamp(1rem,4vw,3rem)}
h2{font:400 clamp(3rem,10vw,8rem)/.92 var(--disp);text-transform:uppercase;max-width:14ch}
.lead{color:var(--dim);max-width:52ch;margin-top:1rem}
.grid{display:grid;gap:.8rem;margin-top:2.5rem;grid-template-columns:repeat(2,1fr)}
@media(min-width:640px){.grid{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1024px){.grid{grid-template-columns:repeat(4,1fr)}}
.cell{aspect-ratio:2/3}
.card{display:block;width:100%;height:100%;position:relative;border-radius:6px;overflow:hidden;text-decoration:none;color:var(--tx);transform-origin:right bottom}
.cell.r .card{transform-origin:left bottom}
.card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(11,11,16,0) 40%,rgba(11,11,16,.92))}
.card span{z-index:1}
.bgph{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.5}
.card .nm{position:absolute;left:.7rem;right:.7rem;bottom:.7rem;font:400 clamp(1.6rem,5vw,2.8rem)/.95 var(--disp);text-transform:uppercase}
.card .tg{position:absolute;left:.7rem;top:.7rem;font:700 .75rem var(--body);background:#0B0B10;color:var(--tx);padding:.25rem .5rem;border-radius:3px}
.card .dy{position:absolute;right:.7rem;top:.7rem;color:#0B0B10;font:700 .75rem var(--body);background:var(--lime);padding:.25rem .5rem;border-radius:3px}
/* countdown */
.cd{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem;margin-top:2rem;max-width:900px}
.cd div{border:1px solid var(--line);padding:1rem .5rem;text-align:center;border-radius:6px}
.cd .n{display:block;height:1em;overflow:hidden;font:400 clamp(2.8rem,12vw,7rem)/1 var(--disp);color:var(--lime);font-variant-numeric:tabular-nums;position:relative}
.cd .n i{display:block;font-style:normal;height:1em;transition:transform .35s}
.cd small{color:var(--dim);font-size:.85rem}
.live{font:400 clamp(3rem,10vw,8rem)/1 var(--disp);color:var(--lime);display:none}
/* tickets */
.tiers{display:grid;gap:1rem;margin-top:2.5rem}
@media(min-width:800px){.tiers{grid-template-columns:1fr 1.25fr 1fr;align-items:end}}
.tier{border:1px solid var(--line);border-radius:8px;padding:1.4rem;display:flex;flex-direction:column;gap:.5rem}
.tier h3{font:400 2.2rem/1 var(--disp);text-transform:uppercase}
.tier .p{font:400 3rem/1 var(--disp)}
.tier ul{list-style:none;padding:0;color:var(--dim)}
.tier li{padding:.2rem 0;display:flex;gap:.5rem;align-items:center}
.tier.hot{background:var(--lime);color:#0B0B10;border-color:var(--lime);padding-block:2.4rem}
.tier.hot ul{color:#2a2a15}
.tier a{margin-top:.8rem;min-height:48px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;border:2px solid currentColor;text-decoration:none;font-weight:700}
.tier.hot a{background:#0B0B10;color:var(--lime);border-color:#0B0B10}
/* final */
.final{text-align:left}
.final h2{max-width:none;font-size:clamp(4rem,20vw,18rem);color:var(--coral)}
.final a{display:inline-flex;min-height:56px;align-items:center;background:var(--lime);color:#0B0B10;padding:0 2rem;border-radius:999px;font:700 1.15rem var(--body);text-decoration:none;margin-top:1.5rem}
/* footer */
footer{border-top:1px solid var(--line);padding:3rem clamp(1rem,4vw,3rem) 2rem;position:relative;z-index:70}
footer .cols{display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
footer h3{font:400 1.6rem var(--disp);text-transform:uppercase;color:var(--lime)}
footer a{display:inline-flex;min-height:44px;align-items:center;color:var(--tx)}
footer p{color:var(--dim)}
.credit{text-align:center;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--line);color:var(--tx)}
.credit a{color:var(--lime);font-weight:700;padding:.6rem .4rem;min-height:44px;display:inline-flex;align-items:center;text-underline-offset:4px}
.credit a:focus-visible{background:var(--lime);color:#000}
@media(hover:hover){.credit a:hover{background:var(--lime);color:#000}.tier a:hover{transform:translateY(-2px)}.nav a:hover{color:var(--lime)}.nav .cta:hover{color:#000;background:#fff}}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .6s,transform .6s}
.reveal.in{opacity:1;transform:none}
html[data-tier=lite] .reveal{opacity:1;transform:none;transition:none}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
.nf{min-height:70svh;display:flex;flex-direction:column;justify-content:center;padding:6rem 1.2rem}.nf h1{font:400 clamp(5rem,28vw,20rem)/.85 var(--disp);color:var(--coral)}.nf a{align-self:flex-start;margin-top:1.5rem;min-height:56px;display:inline-flex;align-items:center;background:var(--lime);color:#0B0B10;padding:0 2rem;border-radius:999px;font-weight:700;text-decoration:none}

.nav a:not(.cta)[aria-current]{color:var(--lime)}
#tickets,.final,footer{content-visibility:auto;contain-intrinsic-size:auto 600px}
.ph{padding:7rem clamp(1rem,4vw,3rem) 1.5rem}
.ph h1{font:400 clamp(3.5rem,14vw,11rem)/.9 var(--disp);text-transform:uppercase}
.pg{padding-bottom:3rem}
.wrap{padding:1.5rem clamp(1rem,4vw,3rem);max-width:1200px}
.chips{display:flex;flex-wrap:wrap;gap:.5rem;padding:0 clamp(1rem,4vw,3rem)}
.chip2{min-height:44px;padding:0 1rem;border-radius:999px;border:1px solid #4a4a5a;background:none;color:var(--tx);font:600 .95rem var(--body);cursor:pointer}
.chip2[aria-pressed=true],.chip2[aria-selected=true]{background:var(--lime);color:#0B0B10;border-color:var(--lime)}
.lg{display:grid;gap:.8rem;padding:1.5rem clamp(1rem,4vw,3rem);grid-template-columns:repeat(2,1fr)}
@media(min-width:640px){.lg{grid-template-columns:repeat(3,1fr)}}
@media(min-width:1024px){.lg{grid-template-columns:repeat(4,1fr)}}
.lg .card{aspect-ratio:2/3;height:auto;border:0;padding:0;cursor:pointer;text-align:left;font:inherit;transform:none}
dialog{background:#14141c;color:var(--tx);border:1px solid var(--line);border-radius:10px;padding:0;width:min(92vw,560px);max-height:90svh;overflow:auto;margin:auto}
dialog::backdrop{background:rgba(0,0,0,.75)}
.btn{min-height:52px;padding:0 1.6rem;border:2px solid var(--lime);border-radius:999px;background:var(--lime);color:#0B0B10;font:700 1.05rem var(--body);cursor:pointer;display:inline-flex;align-items:center;text-decoration:none}
.btn.alt{background:none;color:var(--tx);border-color:var(--tx)}
.btn[disabled]{opacity:.5}
.stages{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;padding:1.5rem clamp(1rem,4vw,3rem);-webkit-overflow-scrolling:touch}
.stage{flex:0 0 84%;scroll-snap-align:start;border:1px solid var(--line);border-radius:8px;padding:1rem}
.stage h3{font:400 1.8rem var(--disp);text-transform:uppercase;color:var(--coral);margin-bottom:.5rem}
@media(min-width:900px){.stages{display:grid;grid-template-columns:repeat(3,1fr);overflow:visible}.stage{flex:none}}
.set{display:grid;grid-template-columns:auto 1fr auto;gap:.8rem;align-items:center;padding:.5rem 0;border-top:1px solid var(--line)}
.set b{font:400 1.6rem var(--disp);color:var(--lime)}
.set a{font-weight:700;text-decoration:none}
.set small{color:var(--dim)}
.star{width:44px;height:44px;background:none;border:0;color:var(--dim);cursor:pointer;display:grid;place-items:center}
.star[aria-pressed=true]{color:var(--lime)}.star[aria-pressed=true] svg{fill:currentColor}
.fade{transition:opacity .25s}.fade.out{opacity:0}
.two{display:grid;gap:2.5rem}
@media(min-width:900px){.two{grid-template-columns:1.1fr .9fr}}
.row2{display:flex;align-items:center;justify-content:space-between;gap:1rem;border-top:1px solid var(--line);padding:1rem 0}
.step{display:inline-flex;align-items:center;gap:.4rem}
.step button{width:44px;height:44px;border-radius:50%;border:1px solid var(--tx);background:none;color:var(--tx);font-size:1.4rem;cursor:pointer}
.step button:disabled{opacity:.35;cursor:default}
.step output{min-width:2ch;text-align:center;font:400 1.8rem var(--disp)}
.big-tot{font:400 clamp(2.8rem,9vw,4.5rem)/1 var(--disp);color:var(--lime);font-variant-numeric:tabular-nums}
.fld{margin-bottom:.6rem}.fld label{display:block;font-weight:600;margin-bottom:.3rem}
.fld input,.fld select,.fld textarea{width:100%;min-height:48px;background:#14141c;border:1px solid #6a6a7a;border-radius:6px;color:var(--tx);padding:.7rem .8rem;font:inherit}
.fld [aria-invalid=true]{border-color:var(--coral)}
.err{color:#FF8A80;min-height:1.5em;font-size:.9rem}
.hp{position:absolute;left:-9999px;height:0;overflow:hidden}
.ok{display:none}.ok.show{display:block}
details{border-top:1px solid var(--line)}
summary{min-height:56px;display:flex;align-items:center;cursor:pointer;font-weight:700;font-size:1.1rem}
details p{padding-bottom:1rem;color:var(--dim);max-width:60ch}
.map{width:100%;height:auto;border:1px solid var(--line);border-radius:8px;background:#101018}
.map text{font:700 16px var(--body);fill:#0B0B10}
[role=tabpanel][hidden]{display:none}
.rules{list-style:none;padding:0;margin-top:1.5rem;display:grid;gap:.8rem;max-width:60ch}
.rules li{display:flex;gap:.8rem;align-items:flex-start}.rules svg{flex:none;color:var(--lime);margin-top:.15rem}
@media(hover:hover){.chip2:hover{border-color:var(--lime)}.btn:hover{background:#fff;border-color:#fff;color:#000}}
.steps{display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;list-style:none;padding:0 clamp(1rem,4vw,3rem);counter-reset:s;color:var(--dim);font-weight:600}
.steps li{counter-increment:s;border-bottom:3px solid var(--lime);padding-bottom:.3rem}
.steps li::before{content:counter(s)". ";color:var(--lime)}
.chk{display:flex!important;gap:.8rem;align-items:flex-start;font-weight:400!important;min-height:44px;cursor:pointer}
.fld .chk input{width:24px;min-height:24px;flex:none;margin-top:.1rem;accent-color:#C8FF3D}
/* splash and hero lid can never trap the page, even if scripts fail */
html:not([data-tier]) #splash,html:not([data-tier]) #lid{display:none}
#splash{animation:spOut .5s 3.2s forwards}
@keyframes spOut{to{opacity:0;visibility:hidden;pointer-events:none}}

.hero{--u:min(calc(100vw/1280),calc(100vh/640))}
@supports(height:100svh){.hero{--u:min(calc(100vw/1280),calc(100svh/640))}}
.hero .chip{font-size:clamp(.85rem,calc(var(--u)*17),1.5rem)}
.hero .big{font-size:clamp(1rem,calc(var(--u)*18),1.5rem)}
.mq.paused .row{animation-play-state:paused}
.pbar{position:fixed;top:0;left:0;right:0;height:3px;background:var(--lime);transform:scaleX(0);transform-origin:left;z-index:300;pointer-events:none}
.cur{position:fixed;left:0;top:0;width:34px;height:34px;border:2px solid var(--lime);border-radius:50%;pointer-events:none;z-index:300;transform:translate(var(--x,-100px),var(--y,-100px)) translate(-50%,-50%) scale(1);transition:transform .12s ease-out}
.cur.big{transform:translate(var(--x,-100px),var(--y,-100px)) translate(-50%,-50%) scale(1.8)}
html:not([data-tier=full]) .cur,html:not([data-tier=full]) .pbar{display:none}
.scene{inset:-12% 0 0 0}

.fx{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.rg{position:absolute;left:50%;top:62%;width:56vmax;height:56vmax;margin:-28vmax 0 0 -28vmax;border:3px solid #C8FF3D;border-radius:50%;opacity:.3;animation:ring 3.2s ease-out infinite}
.rg:nth-child(2){animation-delay:.8s}.rg:nth-child(3){animation-delay:1.6s}.rg:nth-child(4){animation-delay:2.4s}
.bm{position:absolute;left:50%;bottom:22%;width:46vmax;height:100vmax;margin-left:-23vmax;transform-origin:50% 100%;background:linear-gradient(to top,rgba(200,255,61,.5),rgba(200,255,61,0));clip-path:polygon(44% 100%,56% 100%,100% 0,0 0);opacity:.8;animation:sweep 6s ease-in-out infinite alternate}
.bm.b2{animation-duration:7.5s;animation-direction:alternate-reverse;opacity:.5;width:60vmax;margin-left:-30vmax}
.bm.b3{animation-duration:5s;opacity:.55;width:34vmax;margin-left:-17vmax}
html:not([data-tier=full]) .rg:nth-child(n+3){display:none}
html[data-tier=lite] .fx *,html[data-tier=lite] .mq .row{animation:none}
.lids{position:absolute;inset:0;z-index:1;pointer-events:none}
.lids i{position:absolute;background:#0B0B10;will-change:transform}
.lids i:nth-child(-n+5){top:0;height:50.2%;width:20.2%}
.lids i:nth-child(n+6){top:50%;height:50%;width:25.2%}
@media(max-width:400px){.cd div{padding:1rem .2rem}.cd small{font-size:.75rem}}

/* fixes from full-device test */
.nav{z-index:80}.menu{z-index:90}
.nav a,.nav button{white-space:nowrap}
.nav .logo{min-width:44px;justify-content:center}
footer a{min-width:44px}
.set a{display:inline-flex;align-items:center;min-height:44px}
.acts{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1.2rem}
#fw h2{margin-bottom:1rem}
@media(max-width:639px){.hero .chip{bottom:calc(9.6rem + env(safe-area-inset-bottom))}.hero .big{left:1.2rem;right:auto}}
@media(hover:none),(pointer:coarse){.cur{display:none}}
