:root{
  --bg:#08040f; --bg2:#130a22; --fg:#f2f0f7; --muted:#a79bb8; --card:#170c29; --pline:#3a2160;
  --acid:#c6ff00; --yellow:#ffe600; --pink:#d633d6; --magenta:#d633d6; --purple:#7a2fb0; --blue:#5b7cf0; --line:#2a1a40;
  --display:"Anton",Impact,sans-serif; --body:"Space Grotesk",system-ui,sans-serif; --mono:"Space Mono",ui-monospace,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:70px}
body{background:var(--bg);color:var(--fg);font-family:var(--body);font-size:16px;line-height:1.55;overflow-x:hidden;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
::selection{background:var(--acid);color:#000}
.noise{position:fixed;inset:0;pointer-events:none;z-index:100;opacity:.07;
  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='.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.wrap{width:min(1150px,100% - 2.5rem);margin-inline:auto}
.narrow{width:min(780px,100% - 2.5rem)}

/* NAV */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:.8rem 1.25rem;background:rgba(5,5,5,.75);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.logo{display:flex;align-items:center;gap:.5rem;font-family:var(--display);font-size:1.5rem;letter-spacing:.06em;text-decoration:none}
.logo img{height:38px;width:auto;filter:drop-shadow(0 0 8px rgba(198,255,0,.35))}
.links{position:fixed;inset:57px 0 auto 0;display:flex;flex-direction:column;gap:0;background:#000;border-bottom:2px solid var(--acid);transform:translateY(-130%);transition:transform .35s ease}
.links.open{transform:none}
.links a{padding:1rem 1.25rem;text-decoration:none;font-family:var(--mono);text-transform:uppercase;font-size:.9rem;border-top:1px solid var(--line)}
.links a:hover{color:var(--acid)}
.menu-btn{width:40px;height:40px;background:none;border:1px solid var(--line);display:grid;place-content:center;gap:6px;cursor:pointer}
.menu-btn span{display:block;width:20px;height:2px;background:var(--fg);transition:.3s}
.menu-btn[aria-expanded=true] span:first-child{transform:translateY(4px) rotate(45deg)}
.menu-btn[aria-expanded=true] span:last-child{transform:translateY(-4px) rotate(-45deg)}
@media(min-width:860px){
  .menu-btn{display:none}
  .links{position:static;flex-direction:row;align-items:center;gap:1.6rem;background:none;border:0;transform:none}
  .links a{padding:0;border:0}
  .links a.btn{padding:.5rem 1rem}
}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:1rem 1.6rem;font-family:var(--mono);font-weight:700;text-transform:uppercase;letter-spacing:.06em;font-size:.9rem;text-decoration:none;border:2px solid var(--acid);transition:transform .2s,box-shadow .2s,background .2s,color .2s;cursor:pointer}
.btn-acid{background:var(--acid);color:#000;box-shadow:6px 6px 0 var(--yellow)}
.btn-acid:hover{transform:translate(-3px,-3px);box-shadow:9px 9px 0 var(--pink)}
.btn-ghost{color:var(--acid);background:transparent}
.btn-ghost:hover{background:var(--acid);color:#000}
.btn-sm{padding:.5rem 1rem;background:var(--acid);color:#000!important}

/* HERO */
.hero{position:relative;min-height:100svh;display:grid;place-items:center;padding:7rem 1.25rem 4rem;overflow:hidden;isolation:isolate}
.hero::before{content:"";position:absolute;inset:-20%;z-index:-2;
  background:radial-gradient(40% 35% at 30% 30%,rgba(198,255,0,.28),transparent 70%),radial-gradient(35% 30% at 75% 70%,rgba(255,230,0,.18),transparent 70%),radial-gradient(30% 25% at 70% 20%,rgba(122,47,176,.35),transparent 70%);
  filter:blur(30px);animation:drift 14s ease-in-out infinite alternate}
.hero-bg{position:absolute;inset:0;z-index:-3}
.hero-bg img{width:100%;height:100%;object-fit:cover;filter:brightness(.38) saturate(1.2)}
.hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(5,5,5,.55),rgba(5,5,5,.35) 40%,var(--bg) 98%)}
.hero-grid{position:absolute;inset:auto -50% -10% -50%;height:55%;z-index:-1;
  background-image:linear-gradient(var(--acid) 1px,transparent 1px),linear-gradient(90deg,var(--acid) 1px,transparent 1px);background-size:60px 60px;opacity:.18;
  transform:perspective(400px) rotateX(65deg);transform-origin:top;animation:grid 3s linear infinite;
  -webkit-mask-image:linear-gradient(to bottom,transparent,#000 60%);mask-image:linear-gradient(to bottom,transparent,#000 60%)}
.hero-smiley{position:absolute;width:min(70vw,520px);right:-18vw;top:12%;z-index:-1;opacity:.13;animation:spin 40s linear infinite}
.hero-inner{text-align:center;max-width:1000px}
.kicker{font-family:var(--mono);color:var(--acid);text-transform:uppercase;letter-spacing:.15em;font-size:.8rem;margin-bottom:1rem}
.hero-title{font-family:var(--display);font-weight:400;line-height:.85;text-transform:uppercase}
.glitch{position:relative;display:block;font-size:clamp(4rem,19vw,13rem);color:var(--acid);letter-spacing:.02em;text-shadow:0 0 40px rgba(198,255,0,.35)}
.glitch::before,.glitch::after{content:attr(data-text);position:absolute;inset:0;pointer-events:none}
.glitch::before{color:var(--pink);mix-blend-mode:screen;animation:glitch 3.5s infinite steps(1);clip-path:inset(0 0 60% 0)}
.glitch::after{color:var(--yellow);mix-blend-mode:screen;animation:glitch 2.7s infinite reverse steps(1);clip-path:inset(55% 0 0 0)}
.hero-city{display:block;font-size:clamp(2rem,8vw,4.5rem);letter-spacing:.04em;margin-top:.3rem}
.hero-tag{margin:1.4rem auto 0;max-width:34ch;color:var(--muted);font-size:clamp(1rem,2.5vw,1.2rem)}
.next{display:inline-flex;flex-direction:column;gap:.2rem;margin-top:2rem;padding:.9rem 1.6rem;border:1px dashed var(--acid);background:rgba(0,0,0,.5)}
.next-label{font-family:var(--mono);font-size:.7rem;color:var(--muted);text-transform:uppercase;letter-spacing:.2em}
.next-event{font-family:var(--display);font-size:clamp(1.3rem,4vw,1.7rem);color:var(--blue);letter-spacing:.08em}
.next-date{font-family:var(--display);font-size:clamp(1.6rem,6vw,2.4rem);color:var(--yellow);letter-spacing:.05em}
.hero-cta{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;margin-top:2rem}

/* STATEMENT BAND (static) */
.statement{position:relative;overflow:hidden;padding:clamp(2.5rem,7vw,4.5rem) 1.25rem;border-block:1px solid var(--line);text-align:center;
  background-color:#070707;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48'%3E%3Cg fill='none' stroke='%23c6ff00' stroke-opacity='.07' stroke-width='1.5'%3E%3Ccircle cx='24' cy='24' r='14'/%3E%3Cpath d='M17 27c3 5 11 5 14 0'/%3E%3C/g%3E%3Cg fill='%23c6ff00' fill-opacity='.07'%3E%3Ccircle cx='19' cy='20' r='1.6'/%3E%3Ccircle cx='29' cy='20' r='1.6'/%3E%3C/g%3E%3C/svg%3E")}
.statement::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(60% 80% at 50% 50%,rgba(198,255,0,.14),transparent 70%)}
.statement-inner{position:relative;display:flex;flex-direction:column;align-items:center;gap:.4rem}
@media(min-width:760px){.statement-inner{flex-direction:row;justify-content:center;gap:clamp(1rem,3vw,2.5rem)}}
.st-word{font-family:var(--display);text-transform:uppercase;line-height:.85;letter-spacing:.01em}
.st-acid{font-size:clamp(3.4rem,15vw,8.5rem);color:var(--acid);text-shadow:0 0 28px rgba(198,255,0,.45)}
.st-city{font-size:clamp(2.6rem,11vw,7rem);color:transparent;-webkit-text-stroke:2px var(--fg)}
.st-sep img{width:clamp(44px,8vw,80px);height:auto}
.st-meta{position:relative;margin-top:1.4rem;font-family:var(--mono);font-size:.75rem;text-transform:uppercase;letter-spacing:.25em;color:var(--muted)}
/* SECTIONS */
.section{padding:clamp(4.5rem,11vw,8rem) 0;position:relative}
.section.alt{background:var(--bg2);border-block:1px solid var(--line)}
.h2{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:clamp(2.8rem,10vw,6rem);line-height:.92;margin-bottom:2rem}
.h2 em{font-style:normal;color:var(--acid);-webkit-text-stroke:0}
.note{font-family:var(--mono);font-size:.85rem;color:var(--yellow);margin:-1rem 0 2rem;display:inline-block;border-left:3px solid var(--yellow);padding-left:.7rem}
.ph{font-family:var(--mono);font-size:.8rem;color:var(--yellow)}
.cols{display:grid;gap:1.4rem;max-width:900px}
.lead{font-size:clamp(1.15rem,2.6vw,1.45rem);line-height:1.45}
.cols p:not(.lead){color:var(--muted)}
@media(min-width:760px){.cols{grid-template-columns:1.2fr 1fr}}
.pillars{list-style:none;display:grid;gap:1rem;margin-top:3rem}
@media(min-width:700px){.pillars{grid-template-columns:repeat(3,1fr)}}
.pillars li{border:1px solid var(--line);padding:1.5rem;transition:border-color .3s,transform .3s}
.pillars li:hover{border-color:var(--acid);transform:translateY(-4px)}
.pillars b{font-size:2rem;color:var(--acid);display:block;margin-bottom:.4rem}
.pillars h3{font-family:var(--display);font-weight:400;font-size:1.6rem;text-transform:uppercase;letter-spacing:.03em}
.pillars p{color:var(--muted)}

/* LINEUP */
.cards{display:grid;gap:1.2rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.dj{background:#000;border:1px solid var(--line);padding:1rem;position:relative;transition:transform .3s,border-color .3s}
.dj:hover{transform:translateY(-6px) rotate(-.6deg);border-color:var(--acid)}
.dj-img{aspect-ratio:1;display:grid;place-items:center;margin-bottom:1rem;overflow:hidden;
  background:repeating-linear-gradient(45deg,#111 0 12px,#0a0a0a 12px 24px)}
.dj-img img{width:45%;opacity:.25;filter:grayscale(1);transition:.4s}
.dj:hover .dj-img img{opacity:1;filter:none;transform:scale(1.1) rotate(10deg)}
.tag{font-family:var(--mono);font-size:.7rem;text-transform:uppercase;letter-spacing:.15em;background:var(--acid);color:#000;padding:.15rem .5rem}
.dj h3{font-family:var(--display);font-weight:400;font-size:2rem;margin-top:.6rem;letter-spacing:.03em}
.dj p{font-family:var(--mono);font-size:.8rem;color:var(--muted)}

/* INFO */
.info{display:grid;border-top:1px solid var(--line)}
.info>div{display:grid;gap:.3rem;padding:1.3rem 0;border-bottom:1px solid var(--line)}
@media(min-width:700px){.info>div{grid-template-columns:220px 1fr;align-items:baseline}}
.info dt{font-family:var(--mono);text-transform:uppercase;letter-spacing:.15em;font-size:.8rem;color:var(--muted)}
.info dd{font-family:var(--display);font-size:clamp(1.8rem,6vw,3rem);line-height:1;text-transform:uppercase}
.info small{display:block;font-family:var(--mono);font-size:.85rem;color:var(--muted);margin-top:.4rem;text-transform:none}
.tba{color:var(--yellow)}

/* TICKETS */
.tiers{display:grid;gap:1.4rem}
@media(min-width:860px){.tiers{grid-template-columns:repeat(3,1fr);align-items:stretch}}
.tier{position:relative;display:flex;flex-direction:column;background:#000;border:2px solid var(--line);padding:2rem 1.6rem;transition:transform .3s,border-color .3s}
.tier:hover{transform:translateY(-6px);border-color:var(--acid)}
.tier-hot{border-color:var(--acid);box-shadow:0 0 50px rgba(198,255,0,.15)}
.ribbon{position:absolute;top:-12px;right:1rem;background:var(--yellow);color:#000;font-family:var(--mono);font-weight:700;font-size:.7rem;text-transform:uppercase;padding:.2rem .6rem;letter-spacing:.1em}
.tier h3{font-family:var(--display);font-weight:400;font-size:2.2rem;text-transform:uppercase;letter-spacing:.03em}
.price{font-family:var(--display);font-size:3.2rem;color:var(--yellow);margin:.4rem 0 1.2rem}
.tier ul{list-style:none;margin-bottom:1.8rem;flex:1}
.tier li{padding:.5rem 0;border-bottom:1px dashed var(--line);color:var(--muted)}
.tier li::before{content:"☺ ";color:var(--acid)}
.fine{margin-top:2rem;font-family:var(--mono);font-size:.8rem;color:var(--muted)}

/* GALLERY */
.gallery{display:grid;grid-auto-flow:dense;grid-template-columns:repeat(2,1fr);gap:.8rem;grid-auto-rows:160px}
@media(min-width:760px){.gallery{grid-template-columns:repeat(4,1fr);grid-auto-rows:220px}}
.tile{position:relative;display:grid;place-items:center;overflow:hidden;border:1px solid var(--line);
  background:radial-gradient(circle at 30% 30%,rgba(198,255,0,.25),transparent 60%),repeating-linear-gradient(-45deg,#0c0c0c 0 10px,#111 10px 20px)}
.tile{margin:0}
.tile picture,.tile img,.tile video{width:100%;height:100%;display:block}
.tile img,.tile video{object-fit:cover;transition:transform .6s ease,filter .4s}
.tile:hover img,.tile:hover video{transform:scale(1.05);filter:saturate(1.3)}
.t7{grid-row:span 2}
@media(min-width:760px){.t7{grid-row:auto}}
.tile span{font-family:var(--mono);font-size:.75rem;color:var(--muted);letter-spacing:.15em}
.tile::after{content:"";position:absolute;inset:0;background:var(--acid);mix-blend-mode:multiply;opacity:0;transition:.4s}
.tile:hover::after{opacity:.5}
.t1{grid-row:span 2}.t4{grid-column:span 2}
@media(min-width:760px){.t1{grid-column:span 2}.t6{grid-column:span 2}}
.t3{background:radial-gradient(circle at 70% 60%,rgba(255,230,0,.25),transparent 60%),repeating-linear-gradient(-45deg,#0c0c0c 0 10px,#111 10px 20px)}
.t5{background:radial-gradient(circle at 50% 50%,rgba(122,47,176,.35),transparent 60%),repeating-linear-gradient(-45deg,#0c0c0c 0 10px,#111 10px 20px)}

/* FAQ */
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;padding:1.3rem 2.5rem 1.3rem 0;position:relative;font-weight:700;font-size:1.1rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:0;top:50%;transform:translateY(-50%);font-family:var(--display);font-size:2rem;color:var(--acid);transition:transform .3s}
.faq details[open] summary::after{transform:translateY(-50%) rotate(45deg)}
.faq summary:hover{color:var(--acid)}
.faq p{padding:0 0 1.3rem;color:var(--muted)}

/* FOOTER */
.footer{padding:5rem 0 3rem;border-top:3px solid var(--acid);text-align:center}
.foot-big{display:flex;align-items:center;justify-content:center;gap:1rem;font-family:var(--display);font-size:clamp(4rem,18vw,9rem);color:var(--acid);line-height:1}
.foot-big img{width:clamp(48px,12vw,96px);height:auto;animation:bob 3s ease-in-out infinite}
.foot-links{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;margin:2rem 0}
.social{display:inline-flex;align-items:center;gap:.6rem;padding:.7rem 1.2rem;border:1px solid var(--line);text-decoration:none;font-family:var(--mono);font-size:.85rem;transition:.25s}
.social:hover{border-color:var(--acid);color:var(--acid)}
.foot-small{font-family:var(--mono);font-size:.75rem;color:var(--muted)}

/* TOAST */
.toast{position:fixed;left:50%;bottom:1.5rem;transform:translate(-50%,150%);background:var(--acid);color:#000;font-family:var(--mono);font-weight:700;padding:.8rem 1.2rem;z-index:200;transition:transform .35s;max-width:90vw;text-align:center}
.toast.show{transform:translate(-50%,0)}

/* REVEAL */
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}

@keyframes spin{to{transform:rotate(360deg)}}
@keyframes bob{50%{transform:translateY(-8px) rotate(-8deg)}}
@keyframes drift{to{transform:translate(4%,-3%) scale(1.1)}}
@keyframes grid{to{background-position:0 60px}}
@keyframes glitch{0%,88%,100%{transform:none;opacity:0}89%{transform:translate(-4px,2px);opacity:1}92%{transform:translate(4px,-2px);opacity:1}95%{transform:translate(-2px,0);opacity:1}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

/* SERIES — ticket stubs */
.series{background:radial-gradient(60% 50% at 85% 20%,rgba(122,47,176,.28),transparent 70%),radial-gradient(50% 40% at 10% 90%,rgba(198,255,0,.08),transparent 70%),var(--bg)}
.stubs{display:grid;gap:1rem;max-width:900px}
.stub{--c:var(--acid);position:relative;display:grid;grid-template-columns:1fr auto;background:#111;border-radius:14px;overflow:hidden;border:1px solid #222;transition:transform .3s}
.stub:nth-child(even){margin-left:clamp(0px,8vw,120px)}
.stub:hover{transform:translateX(6px)}
.stub-main{padding:1.2rem 1.4rem;border-left:6px solid var(--c)}
.stub-end{display:grid;place-items:center;padding:0 1.1rem;border-left:2px dashed #444;position:relative}
.stub-end img{width:30px;opacity:.85}
.stub-end::before,.stub-end::after{content:"";position:absolute;left:-10px;width:18px;height:18px;border-radius:50%;background:var(--bg)}
.stub-end::before{top:-9px}.stub-end::after{bottom:-9px}
.stub h3{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:clamp(2.2rem,7vw,3.4rem);line-height:1;color:var(--c)}
.stub-status{display:inline-block;font-family:var(--mono);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;padding:.15rem .5rem;margin-bottom:.5rem;background:var(--c);color:#000}
.stub-done .stub-status{background:transparent;color:var(--acid);border:1px solid var(--acid)}
.stub-done .stub-status::before{content:"✓ "}
.stub-next{background:linear-gradient(90deg,rgba(91,124,240,.18),#111 70%);border-color:var(--blue);box-shadow:0 0 40px rgba(91,124,240,.2)}
.stub-btn{margin-top:.9rem}
.stub-photos{display:grid;grid-template-columns:repeat(3,1fr);gap:.4rem;margin-top:.9rem}
.stub-photos img{aspect-ratio:4/3;object-fit:cover;width:100%;border-radius:6px}
.tier-table{border-color:var(--magenta)}
.tier-table .price{color:var(--magenta)}
.stub-tba{background:transparent!important;color:var(--c)!important;border:1px dashed var(--c)}

/* Resident DJ card */
.dj-resident{border-color:var(--acid)}
.dj-resident .dj-img{background:radial-gradient(70% 70% at 30% 20%,rgba(198,255,0,.35),transparent 60%),radial-gradient(60% 60% at 80% 90%,rgba(122,47,176,.55),transparent 65%),#0b0b0b}
.dj-mono{display:flex;flex-direction:column;align-items:center;gap:.4rem}
.dj-mono span{font-family:var(--display);font-size:clamp(6rem,14vw,9rem);line-height:1;color:var(--acid);text-shadow:0 0 30px rgba(198,255,0,.5)}
.dj-mono small{font-family:var(--mono);font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.dj-img .dj-photo{width:100%;height:100%;object-fit:cover;opacity:1;filter:none}
.dj:hover .dj-img .dj-photo{transform:scale(1.05);filter:none}

/* HERO LOGO + DRIPS */
.logo-drip{position:relative;display:block;width:min(92vw,820px);margin:0 auto;animation:wobble 7s ease-in-out infinite}
.hero-logo{width:100%;height:auto;filter:drop-shadow(0 0 22px rgba(198,255,0,.35)) drop-shadow(0 0 2px rgba(214,51,214,.6))}
.drips{position:absolute;inset:0;pointer-events:none;filter:url(#goo)}
.drip{position:absolute;left:var(--x);top:var(--y);width:clamp(5px,1.1vw,10px);height:calc(clamp(18px,4vw,40px)*var(--h));margin-left:calc(clamp(5px,1.1vw,10px)/-2);
  background:linear-gradient(90deg,#d633d6 0 18%,#c6ff00 30% 80%,#8a2bd6 100%);border-radius:0 0 999px 999px;transform-origin:top;
  animation:stretch 6s cubic-bezier(.5,0,.6,1) var(--d) infinite both}
.drip::after{content:"";position:absolute;left:50%;top:100%;width:160%;aspect-ratio:1/1.25;transform:translate(-50%,-60%);border-radius:50% 50% 50% 50%/60% 60% 40% 40%;
  background:radial-gradient(circle at 35% 30%,#f4ffb0 0 10%,#c6ff00 30%,#8fd400 70%);box-shadow:-2px 0 0 #d633d6,0 0 10px rgba(198,255,0,.6);
  animation:fall 6s cubic-bezier(.55,0,.9,.5) var(--d) infinite both}
@keyframes stretch{0%{transform:scaleY(.15)}55%{transform:scaleY(1.25)}62%{transform:scaleY(.55)}100%{transform:scaleY(.15)}}
@keyframes fall{0%,55%{transform:translate(-50%,-60%) scale(1);opacity:1}62%{transform:translate(-50%,40%) scale(.9,1.15);opacity:1}100%{transform:translate(-50%,900%) scale(.7,1.3);opacity:0}}
@keyframes wobble{0%,100%{transform:skewX(0) scale(1)}25%{transform:skewX(-.6deg) scale(1.005,.995)}50%{transform:skewX(.4deg) scale(.997,1.006)}75%{transform:skewX(-.3deg)}}
.hero-title{display:block}
.credit{font-family:var(--mono);font-size:.62rem!important;letter-spacing:.08em;color:#6c6c60!important;margin-top:.35rem}
.dj-resident .dj-img .dj-photo{object-position:50% 45%}
@media (prefers-reduced-motion:reduce){.drip::after{display:none}.drip{transform:scaleY(.6)}}

/* ===== PALETTE: near-black base, purple accents ===== */
:root{--bg:#060408;--bg2:#0c0812;--card:#100a18;--pline:#2e1d47}
body{background:radial-gradient(120% 50% at 50% 0,#140a22 0,var(--bg) 55%) fixed,var(--bg)}
.nav{background:rgba(8,5,12,.82);border-bottom-color:var(--pline)}
@media(max-width:859px){.links{background:#0a0610}}
.hero::before{background:radial-gradient(45% 40% at 25% 30%,rgba(198,255,0,.24),transparent 70%),radial-gradient(45% 40% at 78% 65%,rgba(122,47,176,.42),transparent 70%),radial-gradient(30% 25% at 70% 15%,rgba(214,51,214,.18),transparent 70%)}
.hero-bg img{filter:brightness(.36) saturate(1.15)}
.hero-bg::after{background:linear-gradient(to bottom,rgba(25,8,40,.45),rgba(10,5,15,.3) 40%,var(--bg) 98%)}
.section{background:var(--bg);overflow:hidden;isolation:isolate}
.section.alt{background:var(--bg2);border-block:1px solid #1d1428}
.section>.wrap{position:relative;z-index:1}
/* Animated smoke — only on .haze sections */
.haze::before,.haze::after{content:"";position:absolute;inset:-25%;z-index:0;pointer-events:none;will-change:transform;backface-visibility:hidden}
.haze::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='600'%3E%3Cfilter id='m'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.006 .012' numOctaves='4' seed='7' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .55  0 0 0 0 .15  0 0 0 0 .85  0 0 0 1.4 -.55'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23m)'/%3E%3C/svg%3E");background-size:cover;opacity:.32;animation:smoke1 48s ease-in-out infinite alternate}
.haze::after{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='700' height='700'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.008 .004' numOctaves='3' seed='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .7  0 0 0 0 1  0 0 0 0 0  0 0 0 2.2 -1.35'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E"),radial-gradient(40% 35% at 30% 40%,rgba(198,255,0,.10),transparent 70%),radial-gradient(45% 40% at 70% 60%,rgba(122,47,176,.22),transparent 70%);background-size:cover;opacity:.35;animation:smoke2 62s ease-in-out infinite alternate}
@keyframes smoke1{0%{transform:translate3d(-4%,2%,0) rotate(0) scale(1.05)}50%{transform:translate3d(3%,-3%,0) rotate(6deg) scale(1.15)}100%{transform:translate3d(-2%,4%,0) rotate(-4deg) scale(1.08)}}
@keyframes smoke2{0%{transform:translate3d(3%,-2%,0) rotate(0) scale(1.1)}50%{transform:translate3d(-4%,3%,0) rotate(-7deg) scale(1.02)}100%{transform:translate3d(2%,-4%,0) rotate(5deg) scale(1.14)}}
.statement{background-color:#0a0610;border-block-color:var(--pline)}
.statement::before{background:radial-gradient(60% 80% at 50% 50%,rgba(198,255,0,.14),transparent 60%),radial-gradient(90% 100% at 50% 50%,rgba(122,47,176,.22),transparent 75%)}
.pillars li,.dj,.tier,.stub{background:var(--card);border-color:var(--pline)}
.pillars li:hover,.dj:hover,.tier:hover{border-color:var(--acid);box-shadow:0 0 28px rgba(122,47,176,.35)}
.dj,.tier,.stub{box-shadow:0 10px 36px rgba(50,15,90,.22)}
.tier-hot{border-color:var(--acid);box-shadow:0 0 50px rgba(198,255,0,.14)}
.dj-resident{border-color:var(--acid)}
.dj-img{background:repeating-linear-gradient(45deg,#120c1a 0 12px,#0d0913 12px 24px)}
.stub-end::before,.stub-end::after{background:var(--bg)}
.tile{border-color:#1d1428}
.next{background:rgba(20,8,32,.6);border-color:var(--acid)}
.btn-ghost{background:transparent}
.kicker{color:var(--acid)}
.note{color:var(--yellow);border-left-color:var(--yellow)}
.footer{background:radial-gradient(60% 90% at 50% 100%,rgba(122,47,176,.22),transparent 70%),var(--bg);border-top-color:var(--acid)}
.social{border-color:var(--pline);background:none}
::selection{background:var(--acid);color:#000}
.cd-unit{background:linear-gradient(160deg,rgba(40,14,66,.75),rgba(12,6,20,.9));border-color:#4a2a78;box-shadow:0 0 18px rgba(122,47,176,.3)}
@media (prefers-reduced-motion:reduce){.haze::before,.haze::after{animation:none!important;transform:none}}

/* COUNTDOWN */
.countdown{position:relative;display:flex;justify-content:center;gap:clamp(.4rem,2vw,.9rem);margin:1.4rem auto 0}
/*cd*/.cd-unit{min-width:clamp(64px,17vw,92px);padding:.7rem .4rem .55rem;background:linear-gradient(160deg,rgba(60,18,105,.85),rgba(25,8,45,.9));border:1px solid #6b34a8;border-radius:10px;box-shadow:0 0 24px rgba(122,47,176,.45),inset 0 0 0 1px rgba(198,255,0,.08)}
.cd-unit b{display:block;font-family:var(--display);font-weight:400;font-size:clamp(2rem,8vw,3.2rem);line-height:1;color:var(--acid);text-shadow:0 0 16px rgba(198,255,0,.45);font-variant-numeric:tabular-nums}
.cd-unit span{display:block;margin-top:.3rem;font-family:var(--mono);font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:#c9b3e6}
.cd-live{display:none;font-family:var(--display);font-size:clamp(2.4rem,9vw,4rem);color:var(--acid);text-shadow:0 0 24px rgba(198,255,0,.6),0 0 40px rgba(214,51,214,.5);animation:pulse 1.2s ease-in-out infinite}
.countdown.is-live .cd-unit{display:none}
.countdown.is-live .cd-live{display:block}
@keyframes pulse{50%{opacity:.6}}
.next-time{font-family:var(--mono);font-size:.8rem;letter-spacing:.18em;text-transform:uppercase;color:#d6b4ff}
.cd-unit{background:linear-gradient(160deg,rgba(40,14,66,.75),rgba(12,6,20,.9));border-color:#4a2a78;box-shadow:0 0 18px rgba(122,47,176,.3)}

/* GALLERY v2 (12 tiles) */
.gallery{grid-template-columns:repeat(2,1fr);grid-auto-rows:150px;grid-auto-flow:dense}
.gallery .tile{grid-column:auto;grid-row:auto}
.gallery .g-big,.gallery .g-wide{grid-column:span 2}
.gallery .g-vid{grid-row:span 2}
@media(min-width:760px){.gallery{grid-template-columns:repeat(4,1fr);grid-auto-rows:210px}.gallery .g-big{grid-row:span 2}}

/* SMOKE v3 — visible drift, iOS-safe (positioned layers + transform/opacity only) */
body{background:radial-gradient(120% 50% at 50% 0,#140a22 0,var(--bg) 55%),var(--bg);background-attachment:scroll}
.haze::before{opacity:.45;animation:smoke1 14s ease-in-out infinite alternate,breathe1 7s ease-in-out infinite alternate}
.haze::after{opacity:.45;animation:smoke2 18s ease-in-out infinite alternate,breathe2 9s ease-in-out infinite alternate}
@keyframes smoke1{0%{transform:translate3d(-9%,4%,0) rotate(-4deg) scale(1.05)}50%{transform:translate3d(7%,-6%,0) rotate(7deg) scale(1.25)}100%{transform:translate3d(-4%,8%,0) rotate(-6deg) scale(1.1)}}
@keyframes smoke2{0%{transform:translate3d(8%,-5%,0) rotate(3deg) scale(1.15)}50%{transform:translate3d(-9%,6%,0) rotate(-8deg) scale(1.02)}100%{transform:translate3d(5%,-8%,0) rotate(6deg) scale(1.25)}}
@keyframes breathe1{from{opacity:.25}to{opacity:.6}}
@keyframes breathe2{from{opacity:.55}to{opacity:.22}}
.toast{visibility:hidden;transform:translate(-50%,calc(100% + 3rem))}.toast.show{visibility:visible;transform:translate(-50%,0)}

.map-link{display:inline-block;margin-top:.4rem;color:var(--acid,#c6ff00);font-size:.85rem;text-decoration:underline}

/* INTRO GATE */
body.gate-on{overflow:hidden;height:100%;touch-action:none}
.gate{position:fixed;inset:0;z-index:200;display:grid;place-items:center;background:#030806;overflow:hidden;transition:opacity .9s ease,transform .9s cubic-bezier(.6,0,.3,1),filter .9s ease}
.gate-vid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.04);opacity:1;filter:saturate(1.2) brightness(1.05)}
.gate-tint{position:absolute;inset:0;background:radial-gradient(38% 26% at 50% 52%,rgba(8,4,15,.32),transparent 75%);pointer-events:none}
.gate-inner{position:relative;display:flex;flex-direction:column;align-items:center;gap:1.4rem;padding:1.5rem;text-align:center}
.gate-kicker,.gate-hint{font-family:var(--mono);text-transform:uppercase;letter-spacing:.3em;font-size:.72rem;color:var(--acid);opacity:.8}
.gate-hint{color:var(--muted);letter-spacing:.25em}
.gate-logo{width:min(56vw,320px);height:auto;filter:drop-shadow(0 0 18px rgba(198,255,0,.45)) drop-shadow(0 0 40px rgba(214,51,214,.35));animation:gatePulse 3.2s ease-in-out infinite}
.gate-btn{position:relative;display:inline-flex;align-items:center;gap:.7rem;padding:1.05rem 2rem;font-family:var(--mono);font-weight:700;font-size:clamp(.85rem,2.6vw,1rem);letter-spacing:.18em;text-transform:uppercase;color:var(--acid);background:rgba(19,10,34,.6);border:2px solid var(--acid);backdrop-filter:blur(6px);cursor:pointer;box-shadow:0 0 0 0 rgba(198,255,0,.5),6px 6px 0 var(--purple);transition:transform .2s,box-shadow .2s,background .2s,color .2s;animation:gateGlow 2.4s ease-in-out infinite}
.gate-btn:hover,.gate-btn:focus-visible{background:var(--acid);color:#000;transform:translate(-3px,-3px);box-shadow:0 0 30px rgba(198,255,0,.6),9px 9px 0 var(--pink);outline:none}
.gate-btn:focus-visible{outline:3px solid var(--yellow);outline-offset:4px}
.gate-smile{font-size:1.25em;line-height:1;display:inline-block;animation:spin 6s linear infinite}
.gate.out{opacity:0;transform:scale(1.25);filter:blur(12px) hue-rotate(90deg);pointer-events:none}
.gate.gone{opacity:0;pointer-events:none;transition:opacity .15s ease}
@keyframes gatePulse{50%{transform:scale(1.03);filter:drop-shadow(0 0 26px rgba(198,255,0,.6)) drop-shadow(0 0 60px rgba(214,51,214,.5))}}
@keyframes gateGlow{50%{box-shadow:0 0 28px rgba(198,255,0,.35),6px 6px 0 var(--pink)}}
/* GATE EXIT: acid smoke */
.gate.exiting .gate-inner{animation:gateDissolve .45s cubic-bezier(.5,0,.6,1) forwards}
.gate.exiting .gate-btn{animation:gateBtnPop .25s ease-out}
.gate.exiting .gate-vid{transition:transform .7s cubic-bezier(.4,0,.2,1),filter .7s ease;transform:scale(1.5);filter:blur(14px) saturate(1.8) brightness(1.3)}
.gate.exiting .gate-tint{opacity:0;transition:opacity .25s}
@keyframes gateBtnPop{0%{transform:scale(1)}35%{transform:scale(1.12);box-shadow:0 0 60px rgba(198,255,0,.9),6px 6px 0 var(--pink)}100%{transform:scale(1)}}
@keyframes gateDissolve{0%{opacity:1;filter:none;transform:none}25%{opacity:1;transform:scale(1.06);filter:drop-shadow(0 0 30px rgba(198,255,0,.9))}100%{opacity:0;transform:scale(1.25) translateY(-4%);filter:blur(18px)}}
.smoke{position:fixed;inset:0;z-index:210;pointer-events:none;overflow:hidden;contain:strict}
.smoke i{position:absolute;left:50%;top:50%;width:var(--s);height:var(--s);margin:calc(var(--s)/-2) 0 0 calc(var(--s)/-2);border-radius:50%;
  background:radial-gradient(circle at 50% 50%,rgba(198,255,0,.85),rgba(120,220,40,.55) 32%,rgba(40,120,30,.22) 55%,transparent 72%);
  box-shadow:0 0 80px 40px rgba(198,255,0,.35);opacity:0;will-change:transform,opacity;
  animation:puff var(--t,1.15s) cubic-bezier(.3,.1,.3,1) var(--d,0s) forwards}
.smoke i:nth-child(3n){background:radial-gradient(circle,rgba(220,255,120,.7),rgba(150,230,60,.35) 40%,transparent 70%)}
.smoke i:nth-child(4n){background:radial-gradient(circle,rgba(170,90,230,.35),rgba(120,220,40,.3) 45%,transparent 70%)}
@keyframes puff{
  0%{opacity:0;transform:translate(var(--x0),var(--y0)) scale(.2) rotate(0)}
  12%{opacity:.85}
  28%{opacity:1;transform:translate(var(--x1),var(--y1)) scale(1.15) rotate(var(--r))}
  55%{opacity:.95;transform:translate(calc(var(--x1)*.6),calc(var(--y1)*.4)) scale(1.55) rotate(calc(var(--r)*1.4))}
  100%{opacity:0;transform:translate(var(--x2),var(--y2)) scale(2.3) rotate(calc(var(--r)*2))}}
.smoke .smoke-tex{position:absolute;inset:-25%;opacity:0;mix-blend-mode:screen;will-change:transform,opacity;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='600' height='600'%3E%3Cfilter id='f'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.006' numOctaves='4' seed='7'/%3E%3CfeColorMatrix values='0 0 0 0 .78 0 0 0 0 1 0 0 0 0 .1 0 0 0 1.6 -.55'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23f)'/%3E%3C/svg%3E") center/cover;
  animation:smokeTex 1.3s ease-in-out forwards}
@keyframes smokeTex{0%{opacity:0;transform:scale(.75) rotate(-6deg)}18%{opacity:.95}45%{opacity:.9;transform:scale(1.2) rotate(2deg)}100%{opacity:0;transform:scale(1.5) translateY(-12%) rotate(12deg)}}
.smoke .smoke-flash{position:absolute;inset:0;background:radial-gradient(60% 50% at 50% 50%,rgba(198,255,0,.55),rgba(60,140,20,.35) 60%,rgba(10,30,5,.2));opacity:0;animation:smokeFlash 1.25s ease forwards}
@keyframes smokeFlash{0%{opacity:0}8%{opacity:.7}25%{opacity:1}50%{opacity:.95}100%{opacity:0}}
.smoke .smoke-haze{position:absolute;inset:-10%;background:radial-gradient(70% 45% at 50% 40%,rgba(198,255,0,.22),transparent 70%),radial-gradient(50% 35% at 25% 80%,rgba(140,230,50,.16),transparent 70%),radial-gradient(45% 35% at 80% 70%,rgba(198,255,0,.14),transparent 70%);opacity:0;animation:haze 1.4s ease forwards}
@keyframes haze{0%,25%{opacity:0}40%{opacity:1;transform:none}70%{opacity:.7}100%{opacity:0;transform:translateY(-6%) scale(1.15)}}
@media(prefers-reduced-motion:reduce){.smoke{display:none}.gate,.gate-logo,.gate-btn,.gate-smile{animation:none;transition:opacity .3s}.gate.out{transform:none;filter:none}}
@media(max-width:600px){.gate-logo{width:min(56vw,210px)}}
