:root{--bg:#06140c;--bg2:#0b2416;--card:#0f2c1b;--g:#7dff4f;--g2:#38d96b;--ink:#fff;--mut:#c6dccd;--r:18px;--f:'Montserrat',system-ui,-apple-system,Segoe UI,Roboto,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:500 16px/1.55 var(--f);-webkit-font-smoothing:antialiased;padding-bottom:84px}
img,video{max-width:100%;display:block}
h1,h2,h3{font-weight:900;line-height:1.05;margin:0 0 .5em;letter-spacing:-.01em}
h2{font-size:clamp(28px,6vw,44px)}
a{color:var(--g)}
.skip{position:absolute;left:-999px}.skip:focus{left:12px;top:12px;z-index:99;background:#fff;color:#000;padding:8px 12px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.wrap{max-width:1100px;margin:0 auto;padding:0 20px}.narrow{max-width:680px}.center{text-align:center}
.two{display:grid;gap:32px;align-items:center}@media(min-width:860px){.two{grid-template-columns:1fr 1fr;gap:56px}}
.sec{padding:72px 0;position:relative}
.kicker{color:var(--g);font-weight:700;text-transform:uppercase;letter-spacing:.14em;font-size:13px;margin:0 0 10px}
.lead{color:var(--mut);font-size:18px;max-width:620px;margin:0 auto 28px}
.btn{display:inline-block;background:linear-gradient(180deg,var(--g),var(--g2));color:#03120a;font-weight:900;text-transform:uppercase;letter-spacing:.04em;text-decoration:none;padding:15px 26px;border-radius:999px;border:0;cursor:pointer;font:900 15px/1 var(--f);box-shadow:0 8px 30px rgba(125,255,79,.25);transition:transform .15s,box-shadow .15s}
.btn:hover{transform:translateY(-2px);box-shadow:0 12px 36px rgba(125,255,79,.4)}
.btn:focus-visible{outline:3px solid #fff;outline-offset:3px}
.btn-xl{padding:19px 36px;font-size:17px}
.btn-ghost{background:transparent;color:var(--g);border:2px solid var(--g);box-shadow:none}
/* hero */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden;text-align:center}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(6,20,12,.55) 0%,rgba(6,20,12,.35) 30%,rgba(6,20,12,.85) 62%,var(--bg) 100%)}
.hero-in{position:relative;z-index:1;width:100%;max-width:900px;margin:0 auto;padding:110px 20px 56px}
.hero h1{font-size:clamp(40px,10vw,86px);text-shadow:0 4px 30px rgba(0,0,0,.6)}
.hero-meta{font-size:18px;margin:0 0 22px;text-shadow:0 2px 12px rgba(0,0,0,.8)}.hero-meta span{color:var(--mut);font-size:15px}
.socials{list-style:none;display:flex;gap:14px;justify-content:center;padding:0;margin:26px 0 0}
.socials a{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.1)}
.socials svg{width:20px;height:20px;fill:#fff}
/* countdowns */
.cd{margin:0 auto 24px}
.cd-label{font-size:14px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;margin:0 0 10px;color:#fff}
.cd-grid{display:flex;gap:10px;justify-content:center}
.cd-grid span{background:rgba(3,14,8,.82);border:1px solid rgba(125,255,79,.35);border-radius:14px;min-width:72px;padding:10px 6px 8px;font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--mut);backdrop-filter:blur(6px)}
.cd-grid b{display:block;font-size:34px;font-weight:900;color:#fff;letter-spacing:0;font-variant-numeric:tabular-nums;line-height:1.1}
.cd.done .cd-grid{display:none}.cd.done .cd-label{font-size:20px;color:var(--g);letter-spacing:.02em;text-transform:none}
.urgency{background:radial-gradient(ellipse at center,#123d22 0%,var(--bg) 70%)}
.cd-price .cd-label{font-size:clamp(22px,5vw,32px);font-weight:900;color:var(--g)}
.cd-price .cd-grid b{font-size:clamp(36px,8vw,56px);color:var(--g)}
.cd-price .cd-grid span{min-width:clamp(70px,18vw,110px)}
.cd-sub{color:var(--mut);margin:14px 0 0}
.cd-mini{display:inline-block;background:#03120a;border:1px solid var(--g);border-radius:999px;padding:10px 22px}
.cd-mini .cd-label{display:inline;font-size:13px;color:var(--mut);margin-right:8px;letter-spacing:.1em}
.cd-mini .cd-inline{display:inline;margin:0;font-weight:900;color:var(--g);font-variant-numeric:tabular-nums}
.cd-mini.done .cd-label{font-size:14px}
/* poster */
.card-img{border-radius:var(--r);box-shadow:0 20px 60px rgba(0,0,0,.5);width:100%;height:auto}
.lineup{list-style:none;padding:0;margin:0 0 28px}
.lineup li{font-size:22px;line-height:1.15;font-weight:900;text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,.1);padding:7px 0}
.lineup li.more{font-size:16px;line-height:1.25;color:var(--g);font-weight:700;border:0}
@media(min-width:860px){.lineup li{font-size:clamp(22px,1.8vw,26px);padding:6px 0}.lineup li.more{font-size:15px}}
/* energy */
.loops{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0 0 18px}
.loops video{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:14px;background:var(--card)}
.recap{position:relative;display:block;width:100%;max-width:360px;margin:0 auto 28px;padding:0;border:0;border-radius:var(--r);overflow:hidden;cursor:pointer;background:#000}
.recap img{width:100%;aspect-ratio:9/12;object-fit:cover;opacity:.8}
.recap::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,.85))}
.play{position:absolute;left:50%;top:45%;transform:translate(-50%,-50%);z-index:1;width:76px;height:76px;border-radius:50%;background:var(--g);color:#03120a;display:grid;place-items:center;font-size:28px;padding-left:5px}
.recap-t{position:absolute;bottom:16px;left:0;right:0;z-index:1;color:#fff;font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:14px}
dialog{border:0;padding:0;background:#000;border-radius:16px;max-width:min(420px,94vw);text-align:center}
dialog::backdrop{background:rgba(0,0,0,.85)}
dialog video{width:100%;max-height:78vh}dialog .btn{margin:14px}
.x{position:absolute;right:8px;top:8px;z-index:2;width:40px;height:40px;border-radius:50%;border:0;background:rgba(0,0,0,.6);color:#fff;font-size:26px;cursor:pointer}
/* tiers */
.tickets{background:linear-gradient(180deg,var(--bg),var(--bg2))}
.tiers{display:grid;gap:18px;margin:28px 0 18px;text-align:left}
@media(min-width:620px){.tiers{grid-template-columns:repeat(2,1fr)}}@media(min-width:1000px){.tiers{grid-template-columns:repeat(4,1fr)}}
.tier{background:var(--card);border:1px solid rgba(125,255,79,.18);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column}
.tier-art{width:100%;background:#0a1f12}.tier-art img{width:100%;height:auto;aspect-ratio:inherit;object-fit:contain;max-width:100%}
.tier-b{padding:18px;display:flex;flex-direction:column;flex:1}
.tier h3{font-size:20px;margin:0 0 4px}.tier p{color:var(--mut);margin:0 0 14px;font-size:15px}
.tier .price{color:var(--g);font-weight:900;font-size:22px;margin:0 0 8px}.tier .price.tbc{font-size:16px}
.tier .btn{margin-top:auto;text-align:center;font-size:13px;padding:14px 12px}
.note{color:var(--mut);font-size:13px;margin:0 0 26px}
/* venue */
.addr{color:var(--mut);font-size:17px}
.facts{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:22px 0 26px}
.facts div{background:var(--card);border-radius:12px;padding:12px 14px}
.facts dt{font-size:12px;color:var(--g);text-transform:uppercase;letter-spacing:.1em;font-weight:700}.facts dd{margin:4px 0 0;font-weight:700}
.row{display:flex;gap:12px;flex-wrap:wrap}
/* faq */
details{background:var(--card);border-radius:14px;margin:0 0 10px;padding:0 18px}
summary{cursor:pointer;font-weight:700;padding:18px 0;list-style:none;position:relative;padding-right:28px}
summary::after{content:"+";position:absolute;right:0;color:var(--g);font-size:22px;top:12px}
details[open] summary::after{content:"–"}details p{margin:0 0 18px;color:var(--mut)}
/* signup */
.signup{overflow:hidden}
.signup-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.35}
.signup::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,var(--bg) 0%,rgba(6,20,12,.82) 40%,rgba(6,20,12,.92) 100%);z-index:1}
.signup .wrap{position:relative;z-index:2}
form{display:grid;gap:12px}
input[type=email],input[type=tel],input[type=text]{width:100%;padding:16px 18px;border-radius:12px;border:1px solid rgba(255,255,255,.25);background:rgba(0,0,0,.5);color:#fff;font:500 16px var(--f)}
input:focus{outline:2px solid var(--g)}
.consent{display:flex;gap:10px;align-items:flex-start;text-align:left;font-size:14px;color:var(--mut)}.consent input{margin-top:4px;accent-color:var(--g)}
.form-msg{min-height:1.5em;color:var(--g);font-weight:700;margin:0}
/* footer */
.foot{padding:48px 0 30px;border-top:1px solid rgba(255,255,255,.08);color:var(--mut)}
.brand{font-weight:900;font-size:28px;color:#fff;letter-spacing:.1em;margin:0 0 6px}
.foot a{color:#fff}.small{font-size:12px}
/* sticky */
.sticky{position:fixed;left:10px;right:10px;bottom:10px;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:10px;background:rgba(3,14,8,.95);border:1px solid rgba(125,255,79,.4);border-radius:999px;padding:8px 8px 8px 20px;transform:translateY(130%);transition:transform .3s;backdrop-filter:blur(8px);padding-bottom:calc(8px + env(safe-area-inset-bottom)/2)}
.sticky.on{transform:none}
.sticky-t{display:flex;flex-direction:column;line-height:1.2;font-size:13px}.sticky-t strong{font-size:14px}
.cd-sticky{color:var(--g);font-weight:700;font-variant-numeric:tabular-nums}
.sticky .btn{padding:13px 20px;font-size:14px;white-space:nowrap}
@media(min-width:900px){.sticky{left:auto;right:20px;bottom:20px;width:auto;gap:18px}body{padding-bottom:0}}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
/* mobile tweaks */
@media(max-width:619px){.tiers{grid-template-columns:1fr 1fr;gap:12px}.tier-b{padding:12px}.tier h3{font-size:15px}.tier p{font-size:13px}.tier .price.tbc{font-size:13px}.tier .btn{font-size:11px;padding:12px 8px}.tier-b p:not(.price){display:none}}
.hero::after{background:linear-gradient(180deg,rgba(6,20,12,.35) 0%,rgba(6,20,12,.2) 30%,rgba(6,20,12,.8) 60%,var(--bg) 100%)}
/* v3: synced loops */
.loops{grid-template-columns:repeat(3,1fr);gap:12px;margin:28px 0 30px}
.loops video{aspect-ratio:4/5;border-radius:16px;box-shadow:0 14px 40px rgba(0,0,0,.45);pointer-events:none}
@media(min-width:860px){.loops{gap:20px}}
/* recap section */
.recap-sec{background:radial-gradient(ellipse at 30% 50%,#0f3420 0%,var(--bg) 65%)}
.recap-sec .recap{margin:0 auto}
.lead.left{margin-left:0}
@media(max-width:859px){.recap-sec .wrap>div{text-align:center}.lead.left{margin:0 auto 24px}}
/* artist grid */
.artists-wrap{margin-top:40px}
.artists{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
@media(min-width:700px){.artists{grid-template-columns:repeat(3,1fr)}}@media(min-width:1000px){.artists{grid-template-columns:repeat(4,1fr)}}
.artist{margin:0;border-radius:14px;overflow:hidden;background:var(--card)}
.artist img{width:100%;height:auto;aspect-ratio:1080/1350;object-fit:contain}
.artist figcaption{padding:10px 12px;font-weight:900;text-transform:uppercase;font-size:14px}
.recap-sec .recap{max-width:340px}.recap img{aspect-ratio:9/14}@media(max-width:859px){.recap-sec .recap{max-width:280px}}@media(max-width:619px){.loops{gap:8px}.loops video{border-radius:10px}}
/* v4: wind-swayed leaf clusters on the edges of 3 sections */
.recap-sec,.faq{overflow:hidden}
.sec>.wrap{position:relative;z-index:1}.hero-in{z-index:2}
.leaves{position:absolute;z-index:1;pointer-events:none;width:0;height:0}
.leaves-l{left:0}.leaves-r{right:0}
.lf{position:absolute;top:0;width:var(--s);height:var(--s);fill:#1c6b34;opacity:.11;transform:rotate(var(--r));animation:wind var(--d) ease-in-out var(--dl) infinite alternate;will-change:transform}
.leaves-l .lf{left:calc(var(--s)*-.45);transform-origin:0 50%}
.leaves-r .lf{right:calc(var(--s)*-.45);transform-origin:100% 50%}
.lf+.lf{top:calc(var(--s)*.7)}
@keyframes wind{from{transform:rotate(calc(var(--r) - 3deg))}to{transform:rotate(calc(var(--r) + 4deg))}}
@media(max-width:700px){.lf{width:calc(var(--s)*.55);height:calc(var(--s)*.55);opacity:.09}.leaves-l .lf{left:calc(var(--s)*-.3)}.leaves-r .lf{right:calc(var(--s)*-.3)}}
@media(max-width:379px){.leaves{display:none}}
@media(prefers-reduced-motion:reduce){.lf{animation:none}}
/* v5: recap inside energy block */
.poster{overflow:hidden}
.recap.recap-wide{max-width:none;width:100%;margin:0 0 30px;border-radius:16px;box-shadow:0 14px 40px rgba(0,0,0,.45)}
.recap-wide img{height:auto;aspect-ratio:16/9;object-fit:cover;object-position:center 35%;opacity:.85}
.recap-wide .play{top:50%;width:84px;height:84px;padding:0;background:rgba(125,255,79,.95);box-shadow:0 0 0 10px rgba(125,255,79,.18)}
.recap-wide .play svg{width:34px;height:34px;fill:#03120a;margin-left:4px}
.recap-wide:hover .play{transform:translate(-50%,-50%) scale(1.06)}
.play{transition:transform .2s}
.loops{margin-bottom:12px}
@media(min-width:860px){.loops{margin-bottom:20px}}
@media(max-width:619px){.recap-wide img{aspect-ratio:4/3}.recap-wide .play{width:64px;height:64px}.recap-wide .play svg{width:26px;height:26px}.recap.recap-wide{border-radius:10px;margin-bottom:24px}}
/* v5b: bento energy grid */
.bento{display:grid;gap:12px;margin:28px 0 30px;grid-template-columns:1fr 1fr;grid-template-areas:"v v" "s s" "a b"}
.bento .tile{display:block;width:100%;height:100%;min-height:0;border-radius:16px;overflow:hidden;object-fit:cover;background:var(--card);box-shadow:0 14px 40px rgba(0,0,0,.45);margin:0;max-width:none}
.bento .t-video{grid-area:v;aspect-ratio:4/3}
.bento .t-still{grid-area:s;aspect-ratio:2/1;object-position:center 40%}
.bento .t-loop{aspect-ratio:4/5;pointer-events:none}
.bento .t-loop:nth-of-type(1){grid-area:a}.bento .t-loop:nth-of-type(2){grid-area:b}
.bento .t-video img{width:100%;height:100%;aspect-ratio:auto;object-fit:cover;object-position:center 35%;opacity:.85}
.bento .play{top:50%;width:72px;height:72px;padding:0;background:rgba(125,255,79,.95);box-shadow:0 0 0 10px rgba(125,255,79,.18)}
.bento .play svg{width:30px;height:30px;fill:#03120a;margin-left:4px}
@media(min-width:860px){
 .bento{gap:20px;grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(2,minmax(0,1fr));grid-template-areas:"v v s s" "v v a b";aspect-ratio:2/1.15}
 .bento .tile{aspect-ratio:auto}
 .bento .play{width:88px;height:88px}.bento .play svg{width:36px;height:36px}
}
@media(max-width:619px){.bento{gap:8px}.bento .tile{border-radius:10px}.bento .play{width:60px;height:60px}.bento .play svg{width:24px;height:24px}}
/* v6: bento with native 9:16 video + 4:5 loops, no cropping */
.bento{display:flex;flex-direction:column;gap:8px;grid-template-areas:none;aspect-ratio:auto}
.bento .tile{border-radius:12px;height:auto}
.bento .t-video{align-self:center;width:auto;height:min(80vh,calc((100vw - 40px)*16/9));aspect-ratio:9/16;max-width:100%}
.bento .t-video img{width:100%;height:100%;object-fit:contain;aspect-ratio:9/16;opacity:.9;background:#000}
.b-right{display:flex;flex-direction:column;gap:8px;min-width:0}
.bento .t-still{aspect-ratio:16/10;object-fit:cover}
.b-loops{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.bento .t-loop{aspect-ratio:540/676;object-fit:contain;height:auto}
@media(min-width:860px){
 .bento{flex-direction:row;gap:20px;align-items:stretch;aspect-ratio:auto}
 .bento .tile{border-radius:16px}
 .bento .t-video{flex:0 0 41.5%;width:41.5%;height:auto;align-self:flex-start}
 .b-right{flex:1;gap:20px}
 .bento .t-still{flex:1 1 0;min-height:0;height:0;aspect-ratio:auto;object-position:center 40%}
 .b-loops{gap:20px}
}
/* v6: staggered 3-column bento (Dylan's sketch) */
.bento{display:grid;grid-template-columns:1fr 1fr;grid-template-areas:"v v" "c2 c3";gap:8px;margin:28px 0 30px;aspect-ratio:auto}
.bento .tile{display:block;width:100%;border-radius:12px;overflow:hidden;background:var(--card);box-shadow:0 14px 40px rgba(0,0,0,.45);margin:0;max-width:none}
.bento .t-video{grid-area:v;justify-self:center;width:auto;height:min(80vh,calc((100vw - 40px)*16/9));aspect-ratio:9/16;max-width:100%}
.bento .t-video img{width:100%;height:100%;aspect-ratio:9/16;object-fit:contain;opacity:.9;background:#000}
.b-col{display:flex;flex-direction:column;gap:8px;min-width:0}
.b-col2{grid-area:c2}.b-col3{grid-area:c3}
.bento .t-loop{aspect-ratio:540/676;height:auto;object-fit:contain;pointer-events:none}
.bento .t-still{aspect-ratio:4/5;height:auto;object-fit:cover;object-position:center bottom}
@media(min-width:860px){
 .bento{grid-template-columns:1.42fr 1fr 1fr;grid-template-areas:"v c2 c3";gap:20px;align-items:stretch;grid-template-rows:auto}
 .bento .tile{border-radius:16px}
 .bento .t-video{width:100%;height:auto;justify-self:stretch}
 .b-col{gap:20px}
 .bento .t-still{flex:1 1 0;min-height:0;height:0;aspect-ratio:auto}
}
.bento .t-still{position:relative}
.t-still img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center bottom;opacity:0;transition:opacity 1.2s ease-in-out}
.t-still img.on{opacity:1}
@media(prefers-reduced-motion:reduce){.t-still img{transition:none}}

.t-video{position:relative}.t-video .recap-inline{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}.t-video .play{opacity:.85;transform:scale(.8)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.form-msg.err{color:#ff9d8a}
