/* ===== GRAND THEFT MEMES — vice-night meme chaos ===== */
@font-face{font-family:"Bowlby";src:url(../assets/fonts/bowlby.woff2) format("woff2");font-display:swap}
@font-face{font-family:"Pixel";src:url(../assets/fonts/pixel.woff2) format("woff2");font-display:swap}
@font-face{font-family:"Marker";src:url(../assets/fonts/marker.woff2) format("woff2");font-display:swap}
@font-face{font-family:"Tail";src:url(../assets/fonts/yellowtail.woff2) format("woff2");font-display:swap}
@font-face{font-family:"Barlow";src:url(../assets/fonts/barlow-500.woff2) format("woff2");font-weight:500;font-display:swap}
@font-face{font-family:"Barlow";src:url(../assets/fonts/barlow-700.woff2) format("woff2");font-weight:700;font-display:swap}
@font-face{font-family:"Barlow";src:url(../assets/fonts/barlow-800.woff2) format("woff2");font-weight:800;font-display:swap}

:root{
  --night:#140728; --deep:#0b0418; --pink:#ff2e88; --hot:#ff5fb0; --orange:#ff8a3d; --sun:#ffd23f;
  --cyan:#22e6ff; --cash:#7cff6b; --cop-r:#ff2a3d; --cop-b:#2f6bff; --ink:#07030f; --paper:#fff6e3;
  --pd:"Bowlby",Impact,sans-serif; --px:"Pixel",monospace; --mk:"Marker",cursive; --ui:"Barlow","Arial Narrow",sans-serif;
  --o8:2px 2px 0 #000,-2px 2px 0 #000,2px -2px 0 #000,-2px -2px 0 #000,0 3px 0 #000,0 -3px 0 #000,3px 0 0 #000,-3px 0 0 #000;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:auto;-webkit-text-size-adjust:100%}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{margin:0;background:var(--night);color:#fff;font-family:var(--ui);font-weight:500;font-size:18px;line-height:1.45;overflow-x:hidden}
body.is-loading{overflow:hidden}
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:90;opacity:.11;mix-blend-mode:overlay;
  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='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain .5s steps(4) infinite}
@keyframes grain{0%{transform:translate(0,0)}25%{transform:translate(-3%,2%)}50%{transform:translate(2%,-3%)}75%{transform:translate(-2%,-1%)}}
img{max-width:100%;display:block}
a{color:inherit}
button{font:inherit;color:inherit;cursor:pointer}
svg{width:1em;height:1em}
::selection{background:var(--pink);color:#fff}
main{position:relative;overflow-x:clip}

/* ---------- shared type ---------- */
.h-pd{font-family:var(--pd);font-weight:400;text-transform:lowercase;font-size:clamp(46px,8.2vw,124px);line-height:.86;margin:0;color:#fff;text-shadow:var(--o8),7px 9px 0 var(--pink);letter-spacing:-.01em}
.h-pd em{font-style:normal;color:var(--sun);text-shadow:var(--o8),7px 9px 0 var(--orange);display:inline-block;animation:wob 2.6s ease-in-out infinite}
.scrawl{font-family:var(--mk);color:var(--cash);font-size:.62em;text-transform:none;text-shadow:2px 2px 0 #000;display:inline-block;transform:rotate(-3deg)}
@keyframes wob{0%,100%{transform:rotate(-3deg) scale(1)}50%{transform:rotate(3deg) scale(1.06)}}
.hl{background:linear-gradient(transparent 55%,var(--pink) 55%);padding:0 .15em}
.blink{color:var(--cop-r);animation:blink 1s steps(2) infinite}
@keyframes blink{50%{opacity:0}}
.float{animation:float 4s ease-in-out infinite}
@keyframes float{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-18px) rotate(2deg)}}
.sec{position:relative;padding:clamp(64px,7vw,100px) clamp(16px,4vw,60px)}
[data-rv]{opacity:0;transform:translateY(60px) rotate(var(--rr,-3deg)) scale(.92);transition:opacity .7s,transform .9s cubic-bezier(.2,1.6,.4,1)}
[data-rv].in{opacity:1;transform:none}

/* ---------- buttons / CA ---------- */
.btn-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}
.btn-row.center{justify-content:center}
.btn{--bg:var(--sun);--fg:#000;position:relative;display:inline-flex;align-items:center;gap:9px;padding:14px 22px;border:3px solid #000;border-radius:6px;background:var(--bg);color:var(--fg);font-family:var(--pd);font-size:19px;text-decoration:none;letter-spacing:.02em;box-shadow:5px 6px 0 #000;transform:rotate(var(--r,-1.5deg));transition:transform .18s cubic-bezier(.3,2,.5,1),box-shadow .18s;white-space:nowrap}
.btn svg{width:20px;height:20px;flex:none}
.btn:hover,.btn:focus-visible{transform:rotate(calc(var(--r,-1.5deg) * -1)) translateY(-4px) scale(1.06);box-shadow:8px 10px 0 #000}
.btn:active{transform:translate(4px,5px);box-shadow:1px 1px 0 #000}
.btn-buy{--bg:linear-gradient(100deg,var(--sun),var(--orange));background:var(--bg);animation:pulseBtn 1.8s ease-in-out infinite}
@keyframes pulseBtn{0%,100%{filter:none}50%{filter:brightness(1.15) drop-shadow(0 0 12px rgba(255,210,63,.8))}}
.btn-x{--bg:#fff;--r:2deg}
.btn-tg{--bg:var(--cyan);--r:-2.5deg}
.btn-chart{--bg:var(--cash)}
.btn-ghost{--bg:transparent;--fg:#fff;border-color:#fff;box-shadow:5px 6px 0 var(--pink)}
.btn-danger{--bg:var(--cop-r);--fg:#fff;--r:3deg}
.btn.sm{font-size:15px;padding:10px 15px}
.btn.is-soon{filter:saturate(.4)}
.btn.is-soon::after{content:"SOON";position:absolute;top:-12px;right:-10px;background:var(--pink);color:#fff;font-family:var(--px);font-size:9px;padding:4px 6px;border:2px solid #000;transform:rotate(8deg)}
.ca-strip{display:inline-flex;align-items:stretch;max-width:100%;border:3px solid #000;background:#000;box-shadow:5px 6px 0 var(--pink);transform:rotate(1deg);margin-top:20px}
.ca-lab{background:var(--pink);color:#fff;font-family:var(--px);font-size:12px;padding:12px 10px;display:flex;align-items:center}
.ca-val{font-family:var(--px);font-size:12px;color:var(--cash);padding:12px 12px;display:flex;align-items:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;letter-spacing:.02em}
.ca-copy{border:0;background:var(--sun);color:#000;font-family:var(--px);font-size:10px;padding:0 12px;display:flex;align-items:center;gap:6px;flex:none}
.ca-copy svg{width:15px;height:15px}
.ca-copy:hover{background:#fff}
.ca-strip.big{transform:rotate(-1.5deg);margin:26px auto 0}

/* ---------- cursor ---------- */
#cursor{position:fixed;left:0;top:0;width:34px;height:34px;margin:-17px 0 0 -17px;pointer-events:none;z-index:300;transition:width .2s,height .2s,margin .2s;mix-blend-mode:normal}
#cursor i{position:absolute;inset:0;border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 2px #000,inset 0 0 0 2px #000}
#cursor i::before,#cursor i::after{content:"";position:absolute;background:#fff;box-shadow:0 0 0 1px #000}
#cursor i::before{left:50%;top:-8px;bottom:-8px;width:2px;margin-left:-1px;clip-path:polygon(0 0,100% 0,100% 30%,0 30%,0 70%,100% 70%,100% 100%,0 100%)}
#cursor i::after{top:50%;left:-8px;right:-8px;height:2px;margin-top:-1px;clip-path:polygon(0 0,30% 0,30% 100%,0 100%,0 0,70% 0,100% 0,100% 100%,70% 100%)}
#cursor b{position:absolute;left:50%;top:50%;width:4px;height:4px;margin:-2px;background:var(--cop-r);border-radius:50%}
#cursor.lock{width:52px;height:52px;margin:-26px 0 0 -26px;animation:spinc 1.2s linear infinite}
#cursor.lock i{border-color:var(--cop-r)}
@keyframes spinc{to{transform:rotate(360deg)}}
@media (pointer:fine){body,a,button{cursor:none}}
@media (pointer:coarse){#cursor{display:none}}

/* ---------- loader ---------- */
#loader{position:fixed;inset:0;z-index:400;background:#000;overflow:hidden;transition:clip-path .9s cubic-bezier(.7,0,.2,1)}
#loader.out{clip-path:polygon(0 0,100% 0,100% 0,0 0);pointer-events:none}
.ld-panels{position:absolute;inset:0;display:flex;gap:10px;transform:skewX(-8deg) scale(1.15)}
.ld-panel{position:relative;flex:1;overflow:hidden;border:4px solid #000;transform:translateY(110%);animation:panelIn .8s cubic-bezier(.2,1.3,.4,1) forwards}
.ld-panel.p2{animation-delay:.15s}.ld-panel.p3{animation-delay:.3s}
.ld-panel>img:first-child{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(1.4) hue-rotate(var(--h,0deg));transform:skewX(8deg) scale(1.3)}
.p1{--h:0deg}.p2{--h:40deg}.p3{--h:-40deg}
.ld-char{position:absolute;bottom:-4%;left:50%;height:92%;width:auto;max-width:none;transform:translateX(-50%) skewX(8deg);filter:drop-shadow(10px 0 0 rgba(0,0,0,.6));animation:ldZoom 6s ease-out forwards}
@keyframes ldZoom{from{transform:translateX(-50%) skewX(8deg) scale(1.15)}to{transform:translateX(-50%) skewX(8deg) scale(1)}}
@keyframes panelIn{to{transform:none}}
.ld-mark{position:absolute;left:50%;top:44%;transform:translate(-50%,-50%) rotate(-6deg);text-align:center;z-index:2;animation:markIn 1s .5s cubic-bezier(.2,1.7,.4,1) both}
@keyframes markIn{from{transform:translate(-50%,-50%) rotate(-30deg) scale(3);opacity:0}}
.wm{display:block;font-family:var(--pd);line-height:.85;text-shadow:var(--o8),8px 10px 0 #000}
.wm-sm{font-size:clamp(28px,5vw,60px);color:#fff;text-transform:lowercase}
.wm-big{font-size:clamp(76px,16vw,220px);background:linear-gradient(180deg,#fff 0 30%,var(--sun) 30% 55%,var(--orange) 55% 75%,var(--pink) 75%);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:none;-webkit-text-stroke:3px #000;filter:drop-shadow(6px 8px 0 #000)}
.ld-eth{display:inline-flex;align-items:center;gap:6px;margin-top:10px;background:#000;color:var(--cash);font-family:var(--px);font-size:12px;padding:8px 12px;border:2px solid var(--cash)}
.ld-bottom{position:absolute;left:0;right:0;bottom:0;padding:22px clamp(16px,4vw,48px) 28px;background:linear-gradient(transparent,rgba(0,0,0,.92) 40%);z-index:3;display:grid;grid-template-columns:1fr auto;gap:10px 24px;align-items:end}
.ld-tip{margin:0;font-size:clamp(15px,2vw,20px);font-weight:700;text-shadow:2px 2px 0 #000;min-height:2.6em}
.ld-tip b{color:var(--sun);font-family:var(--px);font-size:.7em}
.ld-bar{grid-column:1/-1;height:12px;border:2px solid #fff;background:#000;order:3}
.ld-bar i{display:block;height:100%;width:0;background:repeating-linear-gradient(90deg,var(--pink) 0 14px,var(--sun) 14px 28px);transition:width .25s}
.ld-start{border:0;background:none;font-family:var(--px);font-size:clamp(12px,1.6vw,16px);color:var(--sun);animation:blink 1s steps(2) infinite;padding:10px}

/* ---------- HUD ---------- */
#hud{position:fixed;inset:0;pointer-events:none;z-index:120}
#hud>*{pointer-events:auto}
.radar{position:fixed;left:22px;bottom:22px;width:132px;height:132px;border-radius:50%;filter:drop-shadow(4px 5px 0 rgba(0,0,0,.7))}
.radar svg{width:100%;height:100%}
#radarMap{transition:transform .3s linear}
.sweep{transform-origin:50px 50px;animation:sweep 2.4s linear infinite}
@keyframes sweep{to{transform:rotate(360deg)}}
.blip{animation:blink .8s steps(2) infinite}
.objective{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);text-align:center;max-width:min(560px,60vw);pointer-events:none}
.objective small{display:block;font-family:var(--px);font-size:10px;color:var(--sun);text-shadow:2px 2px 0 #000;letter-spacing:.1em}
.objective span{display:inline-block;font-weight:800;font-size:20px;text-shadow:2px 2px 0 #000,-1px -1px 0 #000;transition:opacity .3s}
.objective span::before{content:"▸ ";color:var(--cash)}
.hud-right{position:fixed;right:18px;top:16px;display:flex;flex-direction:column;align-items:flex-end;gap:6px}
.cash{font-family:var(--pd);font-size:30px;color:var(--cash);text-shadow:var(--o8);letter-spacing:.02em;line-height:1}
.stars{display:flex;gap:3px}
.stars svg{width:26px;height:26px;color:rgba(255,255,255,.18);filter:drop-shadow(2px 2px 0 #000);stroke:#000;stroke-width:1;transition:color .3s,transform .3s}
.stars svg.on{color:#fff;transform:scale(1.12);animation:starFlash .7s steps(2) infinite}
.stars.hot svg.on{animation-duration:.35s}
@keyframes starFlash{50%{color:var(--sun)}}
.radio{display:flex;align-items:center;gap:7px;border:2px solid #000;background:rgba(10,4,24,.82);color:#fff;font-family:var(--px);font-size:9px;padding:7px 9px;border-radius:4px;box-shadow:3px 3px 0 var(--pink);transition:transform .15s}
.radio:hover{transform:rotate(-3deg) scale(1.05)}
.radio svg{width:16px;height:16px;color:var(--sun)}
.eq{display:flex;gap:2px;align-items:flex-end;height:12px}
.eq i{width:3px;background:var(--cash);animation:eq .5s ease-in-out infinite alternate}
.eq i:nth-child(2){animation-delay:-.2s}.eq i:nth-child(3){animation-delay:-.35s}.eq i:nth-child(4){animation-delay:-.1s}
@keyframes eq{from{height:2px}to{height:12px}}
.radio.switching #station{animation:glitchTx .3s steps(3)}
@keyframes glitchTx{33%{transform:translateX(3px);color:var(--pink)}66%{transform:translateX(-3px);color:var(--cyan)}}

/* pager */
#phone{position:fixed;right:20px;bottom:24px;width:300px;z-index:130;background:#9fbf7a;color:#102010;border:4px solid #000;border-radius:14px 14px 22px 22px;padding:10px 12px 14px;box-shadow:6px 8px 0 rgba(0,0,0,.6),inset 0 0 0 3px #6e8a52;transform:translateY(160%) rotate(6deg);transition:transform .55s cubic-bezier(.2,1.5,.4,1);pointer-events:none}
#phone.show{transform:translateY(0) rotate(-3deg)}
.ph-top{display:flex;justify-content:space-between;font-family:var(--px);font-size:8px;border-bottom:2px dashed #3a4f2a;padding-bottom:6px;margin-bottom:6px}
#phMsg{margin:0;font-family:var(--px);font-size:11px;line-height:1.6}
#phMsg::after{content:"_";animation:blink .7s steps(2) infinite}

/* title card */
#titlecard{position:fixed;left:0;right:0;top:40%;z-index:125;text-align:center;pointer-events:none;opacity:0}
#titlecard small{display:block;font-family:var(--px);font-size:13px;color:#fff;text-shadow:2px 2px 0 #000;margin-bottom:8px}
#titlecard strong{display:inline-block;font-family:var(--pd);font-weight:400;font-size:clamp(40px,7vw,96px);line-height:.95;color:var(--sun);text-shadow:var(--o8),6px 8px 0 rgba(0,0,0,.6);padding:0 16px}
#titlecard.show{animation:tc 2.1s cubic-bezier(.2,1,.3,1) forwards}
@keyframes tc{0%{opacity:0;transform:scale(1.8) rotate(-4deg);filter:blur(8px)}12%{opacity:1;transform:scale(1) rotate(-2deg);filter:none}80%{opacity:1;transform:scale(1.03) rotate(-2deg)}100%{opacity:0;transform:translateX(-60px) rotate(-2deg)}}

#toast{position:fixed;left:50%;top:84px;z-index:350;transform:translate(-50%,-30px) rotate(-2deg);opacity:0;background:#000;border:3px solid var(--sun);color:var(--sun);font-family:var(--px);font-size:12px;line-height:1.6;padding:12px 16px;max-width:min(92vw,460px);text-align:center;box-shadow:5px 6px 0 var(--pink);transition:.35s cubic-bezier(.2,1.6,.4,1);pointer-events:none}
#toast.show{opacity:1;transform:translate(-50%,0) rotate(-2deg)}

#wasted,#passed{position:fixed;inset:0;z-index:330;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none;opacity:0;text-align:center}
#wasted{background:radial-gradient(transparent 30%,rgba(0,0,0,.75))}
#wasted strong{font-family:var(--pd);font-weight:400;font-size:clamp(70px,15vw,200px);color:#d1001c;text-shadow:var(--o8),0 10px 30px #000;letter-spacing:.04em}
#wasted small,#passed small{font-family:var(--px);font-size:12px;text-shadow:2px 2px 0 #000;margin-top:10px}
body.is-wasted #wasted{opacity:1;transition:opacity .6s .5s}
body.is-wasted #wasted strong{animation:wastedIn 1.2s .5s cubic-bezier(.2,1,.3,1) both}
@keyframes wastedIn{from{transform:scale(2.4);opacity:0}}
body.is-wasted main,body.is-wasted #hud{filter:grayscale(1) contrast(1.25) brightness(.7) blur(1.5px);transition:filter .8s}
body.is-wasted main{transform:rotate(1.2deg) scale(1.07);transition:filter .8s,transform 2s}
#passed strong{font-family:var(--pd);font-weight:400;font-size:clamp(54px,11vw,150px);line-height:.9;color:var(--sun);text-shadow:var(--o8),8px 10px 0 var(--pink)}
#passed small b{color:#fff}
body.is-passed #passed{opacity:1;transition:opacity .3s}
body.is-passed #passed strong{animation:wastedIn .8s cubic-bezier(.2,1.6,.4,1) both}

#cash{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:110}
#flyer{position:fixed;left:0;top:0;width:clamp(170px,24vw,340px);z-index:105;pointer-events:none;opacity:0;filter:drop-shadow(8px 12px 0 rgba(0,0,0,.35));will-change:transform}

/* ---------- HERO ---------- */
#hero{min-height:100vh;min-height:100svh;padding-top:100px;padding-bottom:90px;overflow:hidden;isolation:isolate}
.hero-bg{position:absolute;inset:-6% 0 0;z-index:-3}
.hero-bg img{width:100%;height:112%;object-fit:cover;object-position:60% 50%;filter:saturate(1.25)}
.hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,7,40,.9) 0%,rgba(20,7,40,.45) 45%,transparent 70%),linear-gradient(transparent 60%,var(--night))}
.hero-sun{position:absolute;right:8%;top:16%;width:min(32vw,380px);aspect-ratio:1;border-radius:50%;z-index:-2;background:repeating-linear-gradient(180deg,transparent 0 58%,var(--night) 58% 62%),linear-gradient(var(--sun),var(--pink));-webkit-mask:linear-gradient(#000 0 0);opacity:.0}
.hero-grid{position:absolute;left:-20%;right:-20%;bottom:0;height:34%;z-index:-2;background:linear-gradient(transparent 0 0),repeating-linear-gradient(90deg,rgba(255,46,136,.55) 0 2px,transparent 2px 80px),repeating-linear-gradient(0deg,rgba(255,46,136,.55) 0 2px,transparent 2px 46px);transform:perspective(300px) rotateX(62deg);transform-origin:50% 100%;animation:gridRun 1.4s linear infinite;mask:linear-gradient(transparent,#000 60%);-webkit-mask:linear-gradient(transparent,#000 60%)}
@keyframes gridRun{to{background-position:0 0,0 0,0 46px}}
.hero-heli{position:absolute;top:70px;right:-30%;width:clamp(170px,22vw,320px);z-index:-1;animation:heliFly 16s linear infinite}
@keyframes heliFly{0%{transform:translate(0,0) rotate(-4deg)}50%{transform:translate(-95vw,40px) rotate(-8deg)}50.01%{transform:translate(-95vw,40px) rotate(-8deg) scaleX(-1)}100%{transform:translate(0,0) rotate(-4deg) scaleX(-1)}}
.searchlight{position:absolute;top:120px;left:40%;width:260px;height:110vh;z-index:-1;background:linear-gradient(rgba(255,255,220,.38),rgba(255,255,220,0) 80%);clip-path:polygon(46% 0,54% 0,100% 100%,0 100%);transform-origin:50% 0;animation:sweepL 7s ease-in-out infinite alternate;mix-blend-mode:screen}
@keyframes sweepL{from{transform:rotate(28deg)}to{transform:rotate(-34deg)}}
.neon-sign{position:absolute;font-family:var(--px);font-size:13px;line-height:1.5;padding:10px 12px;border:3px solid currentColor;border-radius:10px;text-align:center;text-shadow:0 0 8px currentColor,0 0 22px currentColor;box-shadow:0 0 14px currentColor,inset 0 0 14px currentColor;animation:flick 4s infinite;z-index:1}
.ns1{color:var(--cyan);right:4%;top:44%;transform:rotate(8deg)}
.ns2{color:var(--hot);left:46%;top:16%;transform:rotate(-10deg);animation-delay:-1.3s}
@keyframes flick{0%,19%,22%,62%,64%,100%{opacity:1}20%,21%,63%{opacity:.25}}
.hero-copy{position:relative;z-index:3;max-width:720px}
.kicker{font-family:var(--px);font-size:11px;letter-spacing:.06em;margin:0 0 14px;text-shadow:2px 2px 0 #000;color:var(--cyan)}
.mega{font-family:var(--pd);font-weight:400;margin:0;line-height:.8;display:flex;flex-direction:column;align-items:flex-start;text-transform:lowercase}
.mega span{display:inline-block;font-size:clamp(66px,10.4vw,168px);text-shadow:var(--o8),10px 12px 0 #000}
.mega .w1{color:#fff;transform:rotate(-4deg)}
.mega .w2{color:var(--sun);text-shadow:var(--o8),10px 12px 0 var(--orange);margin-left:.5em;transform:rotate(2deg)}
.mega .w3{color:var(--pink);text-shadow:var(--o8),10px 12px 0 var(--cyan);transform:rotate(-3deg) skewX(-6deg);margin-left:.1em}
.jit{animation:jit 3.6s ease-in-out infinite}
.w2.jit{animation-delay:-1.2s}.w3.jit{animation-delay:-2.3s}
@keyframes jit{0%,100%{translate:0 0}25%{translate:4px -6px}50%{translate:-3px 3px}75%{translate:2px 5px}}
.mega span.drop{animation:dropIn .9s cubic-bezier(.2,1.8,.4,1) both,jit 3.6s 1s ease-in-out infinite}
@keyframes dropIn{from{translate:0 -120vh;scale:1.6}}
.ticker-sticker{position:absolute;right:-30px;top:120px;display:flex;flex-direction:column;align-items:center;justify-content:center;width:132px;height:132px;border-radius:50%;background:var(--cash);color:#000;border:4px solid #000;box-shadow:6px 7px 0 #000;transform:rotate(14deg);animation:stickerSpin 6s ease-in-out infinite}
.ticker-sticker b{font-family:var(--pd);font-size:34px;line-height:1}
.ticker-sticker small{font-family:var(--px);font-size:8px}
@keyframes stickerSpin{0%,100%{transform:rotate(14deg) scale(1)}50%{transform:rotate(-8deg) scale(1.1)}}
.hero-sub{font-size:clamp(18px,2vw,24px);font-weight:700;max-width:520px;margin:20px 0 0;text-shadow:2px 2px 0 #000}
.hero-sub b{color:var(--sun)}
.hero-sub .scrawl{font-size:1.15em;margin-top:6px}
.hero-crew{position:absolute;right:-1vw;bottom:0;width:min(56vw,860px);height:min(68vh,620px);z-index:2;pointer-events:none}
.hc{position:absolute;bottom:-2%;height:auto;filter:drop-shadow(10px 6px 0 rgba(0,0,0,.45));transform-origin:50% 100%;animation:crewIn 1s cubic-bezier(.2,1.6,.4,1) both,idle 3s ease-in-out infinite}
.hc-uncle{left:2%;height:72%;width:auto;animation-delay:.1s,0s}
.hc-gas{left:18%;height:76%;width:auto;animation-delay:.25s,-.8s}
.hc-moon{left:38%;height:98%;width:auto;z-index:2;animation-delay:.4s,-1.2s}
.hc-keys{left:62%;height:84%;width:auto;animation-delay:.55s,-.4s}
.hc-420{left:74%;height:88%;width:auto;animation-delay:.7s,-1.9s}
@keyframes crewIn{from{transform:translateY(110%) rotate(-10deg)}}
@keyframes idle{0%,100%{scale:1 1}50%{scale:1.02 .985}}
.tag-bubble{position:absolute;z-index:4;background:#fff;color:#000;font-family:var(--mk);font-size:clamp(15px,1.6vw,22px);padding:8px 14px;border:3px solid #000;border-radius:18px;box-shadow:4px 5px 0 #000;animation:bubble 3.2s ease-in-out infinite}
.tag-bubble::after{content:"";position:absolute;bottom:-14px;left:30px;border:8px solid transparent;border-top:12px solid #000}
.tb1{right:28%;bottom:66%;transform:rotate(-6deg)}
.tb2{right:6%;bottom:64%;transform:rotate(7deg);animation-delay:-1.6s;background:var(--sun)}
@keyframes bubble{0%,100%{translate:0 0}50%{translate:0 -10px}}
.scroll-cue{position:absolute;left:50%;bottom:110px;transform:translateX(-50%);z-index:5;font-family:var(--px);font-size:10px;text-decoration:none;color:#fff;text-shadow:2px 2px 0 #000;display:none}
.scroll-cue span{display:inline-block;animation:bubble 1s infinite;color:var(--sun)}

/* tapes */
.tape{position:relative;z-index:6;background:var(--sun);color:#000;border-block:4px solid #000;overflow:hidden;white-space:nowrap;font-family:var(--pd);font-size:clamp(18px,2.4vw,30px);padding:10px 0;box-shadow:0 10px 0 rgba(0,0,0,.35)}
.tape-a{transform:rotate(-3deg);margin:-30px -4vw 0}
.tape-b{transform:rotate(2.5deg);margin:0 -4vw;background:var(--pink);color:#fff;text-shadow:2px 2px 0 #000}
.tape-in{display:inline-block;animation:marq 30s linear infinite}
.tape-b .tape-in{animation-direction:reverse;animation-duration:36s}
@keyframes marq{to{transform:translateX(-50%)}}

/* ---------- CALL ---------- */
#call{background:radial-gradient(circle at 70% 40%,#3a0f5e,var(--night) 60%)}
.call-wrap{position:relative;display:grid;grid-template-columns:minmax(260px,380px) 1fr;gap:clamp(30px,6vw,90px);align-items:center;max-width:1200px;margin:0 auto}
.flip-phone{position:relative;background:linear-gradient(160deg,#3d3d4f,#15151f);border:4px solid #000;border-radius:34px;padding:22px 18px 18px;box-shadow:12px 14px 0 #000,inset 0 2px 0 rgba(255,255,255,.2);transform:rotate(-6deg);animation:phoneBuzz 5s ease-in-out infinite}
@keyframes phoneBuzz{0%,86%,100%{translate:0 0}88%{translate:-4px 0}90%{translate:4px 0}92%{translate:-4px 0}94%{translate:4px 0}}
.fp-screen{background:#a7c784;border:4px solid #000;border-radius:10px;padding:10px;height:420px;overflow:hidden;box-shadow:inset 0 0 20px rgba(0,0,0,.35)}
.fp-bar{display:flex;justify-content:space-between;font-family:var(--px);font-size:8px;color:#1b2a12;border-bottom:2px solid #1b2a12;padding-bottom:6px}
.chat{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:7px}
.chat li{max-width:86%;font-family:var(--px);font-size:9.5px;line-height:1.55;padding:7px 9px;border:2px solid #1b2a12;color:#132010;opacity:0;transform:scale(.6);transition:.35s cubic-bezier(.2,1.8,.4,1)}
.chat li.in{background:#cfe8ae;align-self:flex-start;border-radius:2px 10px 10px 10px;transform-origin:0 0}
.chat li.out{background:#1b2a12;color:#cfe8ae;align-self:flex-end;border-radius:10px 2px 10px 10px;transform-origin:100% 0}
.chat li.on{opacity:1;transform:none}
.fp-keys{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:14px}
.fp-keys i{font-style:normal;font-family:var(--px);font-size:11px;text-align:center;padding:8px 0;border-radius:10px;background:#2b2b38;border:2px solid #000;color:#ddd;box-shadow:0 3px 0 #000}
.fp-keys i.press{background:var(--sun);color:#000;transform:translateY(2px);box-shadow:none}
.wait-board{position:relative}
.stamp-small{font-family:var(--px);font-size:11px;color:var(--cyan);margin:0 0 14px}
.cd{display:flex;gap:clamp(8px,1.5vw,18px);margin-top:26px;flex-wrap:wrap}
.cd div{background:#000;border:3px solid #000;box-shadow:6px 7px 0 var(--pink);padding:12px 12px 8px;min-width:clamp(70px,10vw,120px);text-align:center;transform:rotate(var(--r,0deg))}
.cd div:nth-child(1){--r:-4deg}.cd div:nth-child(2){--r:3deg}.cd div:nth-child(3){--r:-2deg}.cd div:nth-child(4){--r:5deg}
.cd b{display:block;font-family:var(--pd);font-weight:400;font-size:clamp(40px,6vw,82px);line-height:1;color:var(--sun);text-shadow:4px 4px 0 var(--pink)}
.cd b.tick{animation:tick .4s}
@keyframes tick{from{transform:scale(1.3) rotate(-6deg);color:#fff}}
.cd small{font-family:var(--px);font-size:9px;color:#ddd}
.wait-note{font-size:clamp(19px,2.2vw,26px);font-weight:800;margin:28px 0 0;max-width:520px}
.sticky-note{position:relative;display:inline-block;font-family:var(--mk);font-size:20px;line-height:1.2;color:#1a1200;padding:16px 18px;box-shadow:5px 6px 0 rgba(0,0,0,.5);transform:rotate(4deg);animation:noteSway 4s ease-in-out infinite}
@keyframes noteSway{0%,100%{rotate:0deg}50%{rotate:-3deg}}
.sn-y{background:var(--sun);margin-top:26px}
.call-uncle{position:absolute;right:-2%;bottom:-120px;height:440px;width:auto;opacity:.95;filter:drop-shadow(10px 8px 0 rgba(0,0,0,.4));pointer-events:none}

/* ---------- CREW ---------- */
#crew{background:linear-gradient(180deg,var(--night),#2a0a3b 50%,var(--night));overflow:hidden}
.crew-h{text-align:center}
.crew-h .scrawl{display:block;font-size:.36em;margin-top:10px;transform:rotate(-2deg)}
.crew-stage{display:grid;grid-template-columns:minmax(300px,480px) 1fr;gap:clamp(20px,5vw,70px);align-items:center;max-width:1200px;margin:50px auto 0}
.wheel{position:relative;aspect-ratio:1;width:100%;border-radius:50%;background:radial-gradient(circle,rgba(0,0,0,.85) 0 30%,rgba(10,4,24,.75) 31% 68%,transparent 69%),conic-gradient(from 0deg,var(--pink),var(--sun),var(--cash),var(--cyan),var(--pink));padding:0;border:4px solid #000;box-shadow:10px 12px 0 #000}
@keyframes wheelSpin{to{transform:rotate(360deg)}}
.wheel::before{content:"";position:absolute;inset:-18px;border-radius:50%;border:4px dashed var(--sun);animation:wheelSpin 18s linear infinite;pointer-events:none}
.wheel::after{content:"";position:absolute;inset:-34px;border-radius:50%;border:2px dotted var(--pink);animation:wheelSpin 26s linear infinite reverse;pointer-events:none}
.wh{--a:0deg;position:absolute;left:50%;top:50%;width:30%;aspect-ratio:1;margin:-15%;border-radius:50%;border:4px solid #000;background:#1d0c33;overflow:hidden;padding:0;transform:rotate(var(--a)) translateY(-118%) rotate(calc(var(--a) * -1));transition:transform .4s cubic-bezier(.2,1.6,.4,1),background .3s,box-shadow .3s;box-shadow:4px 5px 0 #000}
.wh img{position:absolute;left:50%;top:6%;width:auto;height:230%;max-width:none;transform:translateX(-50%);transition:transform .3s}
.wh span{position:absolute;left:0;right:0;bottom:6px;font-family:var(--px);font-size:8px;text-align:center;text-shadow:2px 2px 0 #000;z-index:1}
.wh:hover{transform:rotate(var(--a)) translateY(-124%) rotate(calc(var(--a) * -1)) scale(1.1)}
.wh.on{background:var(--pink);box-shadow:0 0 0 4px var(--sun),6px 7px 0 #000}
.wh.on img{transform:translateX(-50%) scale(1.08)}
.wh-0{--a:0deg}.wh-1{--a:72deg}.wh-2{--a:144deg}.wh-3{--a:216deg}.wh-4{--a:288deg}
.wheel-hub{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-8deg);font-family:var(--pd);font-size:clamp(18px,2.4vw,30px);color:var(--sun);text-shadow:var(--o8)}
.crew-card{position:relative;display:grid;grid-template-columns:auto 1fr;gap:24px;align-items:end;min-height:460px}
.skycam{position:absolute;inset:-30px;z-index:5;pointer-events:none;background:radial-gradient(circle,transparent 20%,rgba(255,255,255,.9));opacity:0}
.skycam.go{animation:skycam .7s ease}
@keyframes skycam{0%{opacity:0}40%{opacity:1;backdrop-filter:blur(8px)}100%{opacity:0}}
.crew-big{height:440px;width:auto;filter:drop-shadow(10px 10px 0 rgba(0,0,0,.45));transition:transform .5s cubic-bezier(.2,1.6,.4,1),opacity .2s}
.crew-big.swap{transform:scale(.3) translateY(-200px) rotate(-20deg);opacity:0}
.crew-info small{font-family:var(--px);font-size:11px;color:var(--cyan)}
.crew-info h3{font-family:var(--pd);font-weight:400;font-size:clamp(40px,5.4vw,78px);line-height:.9;margin:6px 0 10px;color:var(--sun);text-shadow:var(--o8),6px 7px 0 var(--pink);transform:rotate(-3deg);transform-origin:0 50%}
.crew-info p{margin:0 0 16px;font-size:18px;max-width:440px;text-shadow:1px 1px 0 #000}
.bars{list-style:none;margin:0;padding:0;display:grid;gap:9px;max-width:420px}
.bars li{display:grid;grid-template-columns:150px 1fr;align-items:center;gap:10px;font-family:var(--px);font-size:9px}
.bars i{height:14px;border:2px solid #000;background:#000;position:relative;overflow:hidden}
.bars i::after{content:"";position:absolute;inset:0;width:calc(var(--v) * 100%);background:repeating-linear-gradient(90deg,var(--cash) 0 10px,#4dd33f 10px 12px);transition:width .8s cubic-bezier(.2,1.4,.4,1)}

/* ---------- PLAN / HEIST BOARD ---------- */
#plan{background:var(--deep)}
.plan-h{text-align:right;margin-right:4vw;transform:rotate(2deg)}
.board{position:relative;max-width:1180px;height:700px;margin:40px auto 0;border:14px solid #4a2a14;border-radius:8px;background:radial-gradient(circle at 20% 30%,rgba(0,0,0,.2) 0 2px,transparent 3px) 0 0/18px 18px,radial-gradient(circle at 70% 60%,rgba(255,255,255,.08) 0 1px,transparent 2px) 0 0/11px 11px,linear-gradient(135deg,#b07842,#8f5b2c);box-shadow:inset 0 0 60px rgba(0,0,0,.6),14px 18px 0 #000;transform:rotate(-1.5deg)}
.strings{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.strings path{fill:none;stroke:#d40f2a;stroke-width:3;stroke-dasharray:1200;stroke-dashoffset:1200;filter:drop-shadow(1px 2px 0 rgba(0,0,0,.5))}
.board.in .strings path{animation:drawS 1.8s ease forwards}
.board.in .strings path:nth-child(2){animation-delay:.4s}.board.in .strings path:nth-child(3){animation-delay:.7s}.board.in .strings path:nth-child(4){animation-delay:1s}
@keyframes drawS{to{stroke-dashoffset:0}}
.pin-card{position:absolute;width:230px;background:#f3ecd8;color:#111;padding:20px 16px 14px;box-shadow:5px 7px 0 rgba(0,0,0,.45);transform:rotate(var(--r));transition:transform .3s cubic-bezier(.2,1.8,.4,1);background-image:repeating-linear-gradient(transparent 0 23px,rgba(40,90,200,.18) 23px 24px)}
.pin-card:hover{transform:rotate(0) scale(1.08);z-index:5}
.pin-card small{display:block;font-family:var(--px);font-size:9px;color:#b4001f}
.pin-card b{display:block;font-family:var(--pd);font-weight:400;font-size:28px;line-height:1;margin:6px 0}
.pin-card .scrawl{color:#1b3fa0;text-shadow:none;font-size:18px}
.pin{position:absolute;top:-8px;left:50%;width:18px;height:18px;margin-left:-9px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#ff7a8a,#b0001b);box-shadow:2px 3px 0 rgba(0,0,0,.5)}
.pc1{left:4%;top:6%;--r:-5deg}.pc2{left:38%;top:3%;--r:3deg}.pc3{right:4%;top:6%;--r:6deg}.pc4{left:5%;bottom:8%;--r:4deg}
.loot3d{position:absolute;left:50%;top:52%;width:360px;height:360px;transform:translate(-50%,-50%)}
.loot3d canvas{width:100%!important;height:100%!important;display:block;touch-action:pan-y}
.loot-lab{position:absolute;bottom:4px;left:50%;transform:translateX(-50%) rotate(-3deg);font-family:var(--px);font-size:9px;background:#000;color:var(--sun);padding:6px 8px;white-space:nowrap}
.polaroid{position:absolute;width:170px;background:#fff;padding:10px 10px 30px;box-shadow:6px 8px 0 rgba(0,0,0,.45);transform:rotate(var(--r));animation:noteSway 5s ease-in-out infinite}
.polaroid img{width:100%;height:170px;object-fit:cover;object-position:50% 10%;background:linear-gradient(160deg,#ff2e88,#3a0f5e)}
.polaroid span{position:absolute;left:0;right:0;bottom:6px;text-align:center;font-family:var(--mk);color:#111;font-size:16px}
.po1{right:7%;bottom:6%;--r:-7deg}.po2{right:24%;bottom:12%;--r:5deg;animation-delay:-2s}
.sn-p{position:absolute;left:30%;bottom:6%;background:#ff7bc0;--rot:-6deg}
.sn-g{position:absolute;right:5%;top:42%;background:#9dff8f;font-size:17px;max-width:200px}
.redstamp{position:absolute;left:24%;top:38%;font-family:var(--pd);font-size:30px;line-height:.9;color:rgba(200,0,30,.85);border:5px solid rgba(200,0,30,.85);padding:6px 12px;transform:rotate(-18deg) scale(2.5);opacity:0;transition:.45s cubic-bezier(.2,1.8,.4,1) 1.4s;text-align:center;mix-blend-mode:multiply}
.board.in .redstamp{opacity:1;transform:rotate(-18deg) scale(1)}

/* ---------- CHASE ---------- */
#chase{height:340vh;padding:0;background:#090313}
.chase-pin{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;--p:0}
.chase-sky{position:absolute;inset:0;background:linear-gradient(#1a0634,#5a0f5c 55%,#ff5f7f 78%,#ffb36b)}
.chase-city{position:absolute;left:0;bottom:22%;width:200%;max-width:none;height:84%;object-fit:cover;object-position:50% 40%;opacity:.85;transform:translateX(calc(var(--p) * -45%));filter:saturate(1.3) brightness(.85)}
.chase-palms{position:absolute;left:0;bottom:22%;width:300%;height:46%;transform:translateX(calc(var(--p) * -60%));background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='420' height='300' viewBox='0 0 420 300'%3E%3Cg fill='%2307030f'%3E%3Cpath d='M98 300c4-80 10-150 30-210l7 2c-18 58-24 128-27 208z'/%3E%3Cpath d='M131 92c-30-30-80-30-110-8 40-6 70 2 108 14zM131 92c10-40 50-62 90-56-36 10-62 28-84 60zM131 92c-44 4-76 30-90 70 26-30 56-48 92-64zM131 92c40-6 80 16 96 52-30-28-60-38-94-46zM133 90c-4-40 14-70 40-86-14 30-22 56-36 88z'/%3E%3Cpath d='M318 300c2-60 8-120 22-170l6 2c-13 50-18 110-19 168z'/%3E%3Cpath d='M341 132c-24-24-62-22-86-4 32-4 56 2 84 10zM341 132c8-30 38-48 70-44-28 8-48 22-66 46zM341 132c-34 4-58 24-68 54 20-24 42-36 70-50zM343 130c-3-30 10-54 30-66-10 22-16 42-28 68z'/%3E%3C/g%3E%3C/svg%3E") repeat-x 0 100%/420px 100%}
.road{position:absolute;left:0;right:0;bottom:0;height:26%;background:linear-gradient(#222 0 6%,#2e2e38 6% 100%);border-top:6px solid #000}
.lanes{position:absolute;left:0;right:0;top:46%;height:8px;background:repeating-linear-gradient(90deg,var(--sun) 0 70px,transparent 70px 140px);background-position:calc(var(--p) * -6000px) 0}
.cops-flash{position:absolute;inset:0;pointer-events:none;opacity:calc(var(--p) * 1.4);animation:copflash .5s steps(2) infinite;mix-blend-mode:screen}
@keyframes copflash{0%{background:radial-gradient(circle at 20% 80%,rgba(255,42,61,.45),transparent 45%)}100%{background:radial-gradient(circle at 25% 80%,rgba(47,107,255,.5),transparent 45%)}}
.ch{position:absolute;max-width:none;filter:drop-shadow(8px 10px 0 rgba(0,0,0,.4));will-change:transform}
.ch-run{height:min(30vh,270px);width:auto;bottom:25%;z-index:1;left:0;transform:translateX(calc(-30vw + var(--p) * 150vw))}
.ch-car{width:min(48vw,560px);bottom:4%;left:0;transform:translateX(calc(-70vw + var(--p) * 200vw))}
.ch-cop{width:min(42vw,480px);bottom:6%;left:0;transform:translateX(calc(-130vw + var(--p) * 210vw))}
.ch-cop2{width:min(36vw,400px);bottom:16%;left:0;opacity:.85;transform:translateX(calc(-170vw + var(--p) * 230vw)) scale(.85);filter:brightness(.7) drop-shadow(8px 10px 0 rgba(0,0,0,.4))}
.ch-heli{width:min(32vw,360px);top:8%;left:0;transform:translateX(calc(110vw - var(--p) * 90vw)) rotate(-6deg)}
.ch-beam{position:absolute;top:calc(8% + 90px);left:0;width:220px;height:80vh;background:linear-gradient(rgba(255,255,210,.5),transparent 85%);clip-path:polygon(45% 0,55% 0,100% 100%,0 100%);transform-origin:50% 0;transform:translateX(calc(110vw - var(--p) * 90vw)) rotate(calc(30deg - var(--p) * 30deg));mix-blend-mode:screen}
.chase-text{position:absolute;left:clamp(16px,5vw,80px);top:16%;z-index:3;transform:rotate(-4deg)}
.ct1{font-size:clamp(34px,5vw,64px);margin:0;color:#fff;text-shadow:var(--o8);letter-spacing:.06em;animation:starFlash .5s steps(2) infinite}
.ct2{font-family:var(--pd);font-weight:400;font-size:clamp(54px,9vw,140px);line-height:.85;margin:4px 0;text-shadow:var(--o8),8px 10px 0 var(--cop-r)}
.ct2 em{font-style:normal;color:var(--cyan);text-shadow:var(--o8),8px 10px 0 var(--cop-b)}
.ct3{font-size:26px}
.evaded{position:absolute;right:6%;top:30%;z-index:4;font-family:var(--pd);font-size:clamp(50px,8vw,120px);color:var(--cash);text-shadow:var(--o8),8px 9px 0 #000;transform:rotate(-10deg) scale(3);opacity:0;transition:.5s cubic-bezier(.2,1.8,.4,1)}
.evaded.on{opacity:1;transform:rotate(-10deg) scale(1)}
.speedo{position:absolute;right:clamp(16px,4vw,60px);bottom:30%;z-index:3;width:120px;height:120px;border-radius:50%;background:#000;border:4px solid var(--pink);display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 0 22px var(--pink)}
.speedo b{font-family:var(--pd);font-size:40px;line-height:1;color:var(--sun)}
.speedo small{font-family:var(--px);font-size:9px}

/* ---------- CLUB ---------- */
#club{background:radial-gradient(ellipse at 50% 100%,#5d0d55,#14041f 70%);overflow:hidden;padding-bottom:60px}
.club-lights i{position:absolute;top:-10%;width:30vw;height:130%;background:linear-gradient(rgba(255,46,136,.5),transparent 80%);clip-path:polygon(48% 0,52% 0,100% 100%,0 100%);transform-origin:50% 0;mix-blend-mode:screen;animation:beam 3s ease-in-out infinite alternate;pointer-events:none}
.club-lights i:nth-child(1){left:0;animation-delay:-1s}
.club-lights i:nth-child(2){left:25%;background:linear-gradient(rgba(34,230,255,.45),transparent 80%);animation-duration:2.4s}
.club-lights i:nth-child(3){left:50%;background:linear-gradient(rgba(255,210,63,.45),transparent 80%);animation-delay:-.5s;animation-duration:3.6s}
.club-lights i:nth-child(4){left:72%;background:linear-gradient(rgba(124,255,107,.4),transparent 80%);animation-duration:2.8s}
@keyframes beam{from{transform:rotate(-28deg)}to{transform:rotate(28deg)}}
.club-sign{position:relative;text-align:center;margin-bottom:10px;transform:rotate(-4deg)}
.neon-script{display:block;font-family:"Tail",cursive;font-size:clamp(46px,7vw,96px);color:#fff;line-height:.8;text-shadow:0 0 6px #fff,0 0 18px var(--pink),0 0 40px var(--pink);animation:flick 5s infinite}
.neon-block{display:inline-block;font-family:var(--px);font-size:clamp(18px,3vw,36px);color:var(--cyan);border:3px solid var(--cyan);padding:10px 16px;border-radius:12px;margin-top:10px;text-shadow:0 0 10px var(--cyan);box-shadow:0 0 16px var(--cyan),inset 0 0 16px var(--cyan);animation:flick 3.7s infinite -1s}
.club-h{text-align:left;max-width:1200px;margin:30px auto 0}
.club-h .scrawl{font-size:.32em;display:block;margin-top:8px}
.floor{position:relative;display:flex;justify-content:center;align-items:flex-end;gap:0;max-width:1300px;margin:30px auto 0;min-height:480px}
.dancer{position:relative;margin:0 -1.5%;z-index:2;text-align:center}
.dancer img{height:clamp(220px,32vw,440px);width:auto;filter:drop-shadow(0 0 18px rgba(255,46,136,.55)) drop-shadow(8px 8px 0 rgba(0,0,0,.4))}
.dancer figcaption{font-family:var(--px);font-size:10px;margin-top:6px;color:var(--sun);text-shadow:2px 2px 0 #000;transform:rotate(-3deg)}
.dn1{transform:rotate(-5deg) translateY(10px)}.dn2{transform:translateY(-30px) scale(.9)}.dn3{z-index:3;transform:scale(1.12)}.dn4{transform:translateY(-24px) scale(.92) rotate(3deg)}.dn5{transform:rotate(5deg) translateY(14px)}
.dancefloor{position:absolute;left:5%;right:5%;bottom:-30px;height:140px;z-index:1;transform:perspective(400px) rotateX(60deg);background:conic-gradient(var(--pink) 25%,var(--cyan) 0 50%,var(--sun) 0 75%,#7a2cff 0) 0 0/90px 90px;animation:floor 1s steps(2) infinite;border:4px solid #000;opacity:.85}
@keyframes floor{50%{filter:hue-rotate(160deg) brightness(1.3)}}
.cheat-hint{text-align:center;font-family:var(--px);font-size:10px;line-height:2;margin:60px auto 0;color:#ddd;max-width:640px}
.cheat-hint b{color:var(--cash);background:#000;padding:3px 6px;border:2px solid var(--cash)}

/* ---------- HOW TO BUY ---------- */
#buy{background:linear-gradient(180deg,var(--night),#0d1f2a 40%,#0b0418);overflow:hidden}
#buy::before{content:"";position:absolute;inset:0;opacity:.18;background:repeating-linear-gradient(0deg,#22e6ff 0 1px,transparent 1px 64px),repeating-linear-gradient(90deg,#22e6ff 0 1px,transparent 1px 64px);transform:rotate(-8deg) scale(1.4);pointer-events:none}
.buy-h{text-align:center}
.buy-sub{text-align:center;font-family:var(--px);font-size:11px;color:var(--cash);margin:18px 0 0}
.route{position:relative;max-width:1100px;margin:50px auto 0;display:grid;grid-template-columns:1fr 1fr;gap:60px 80px;padding:20px 0 40px}
.route-line{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:0}
.route-line path{fill:none;stroke:var(--sun);stroke-width:6;stroke-dasharray:14 14;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 6px var(--sun));animation:dash 1s linear infinite}
@keyframes dash{to{stroke-dashoffset:-28}}
.route-runner{position:absolute;left:0;top:0;width:auto;height:130px;z-index:4;pointer-events:none;filter:drop-shadow(6px 6px 0 rgba(0,0,0,.45));will-change:transform}
.obj{position:relative;z-index:2;background:rgba(10,4,24,.92);border:4px solid #000;box-shadow:9px 10px 0 var(--pink);padding:26px 24px 24px;transform:rotate(var(--r));transition:transform .3s cubic-bezier(.2,1.8,.4,1)}
.obj:hover{transform:rotate(0) translateY(-6px)}
.o1{--r:-3deg}.o2{--r:2.5deg;margin-top:120px;box-shadow:9px 10px 0 var(--cyan)}.o3{--r:-2deg;box-shadow:9px 10px 0 var(--sun)}.o4{--r:3deg;margin-top:120px;box-shadow:9px 10px 0 var(--cash)}
.obj-n{position:absolute;top:-30px;left:-18px;width:66px;height:66px;border-radius:50%;background:var(--sun);color:#000;border:4px solid #000;font-family:var(--pd);font-size:28px;display:flex;align-items:center;justify-content:center;box-shadow:4px 5px 0 #000;animation:wob 3s ease-in-out infinite}
.obj-i{position:absolute;top:18px;right:18px;width:38px;height:38px;color:var(--cyan);animation:float 3s ease-in-out infinite}
.obj h3{font-family:var(--pd);font-weight:400;font-size:clamp(28px,3vw,40px);line-height:.95;margin:10px 0 12px;text-transform:lowercase;color:#fff;text-shadow:3px 3px 0 var(--pink);padding-right:44px}
.obj p{margin:0 0 6px;font-size:18px}
.obj p a{color:var(--cyan)}
.obj .ca-strip{margin-top:12px}
.obj .btn{margin-top:14px}
.obj .btn-row .btn{margin-top:0}
.passed-stamp{position:absolute;right:-14px;bottom:-18px;font-family:var(--pd);font-size:26px;color:var(--cash);border:4px solid var(--cash);padding:2px 10px;background:#000;transform:rotate(-12deg) scale(3);opacity:0;transition:.4s cubic-bezier(.2,1.8,.4,1) .5s}
.obj.in .passed-stamp{opacity:1;transform:rotate(-12deg) scale(1)}

/* ---------- TV ---------- */
#tape{background:#0b0418}
.tv{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:clamp(24px,4vw,60px);align-items:center;max-width:1240px;margin:0 auto}
.tv-frame{background:linear-gradient(160deg,#3a2a1a,#1a120a);border:5px solid #000;border-radius:26px;padding:18px;box-shadow:14px 16px 0 #000;transform:rotate(-2deg)}
.tv-top{display:flex;justify-content:space-between;gap:10px;font-family:var(--px);font-size:9px;padding:0 4px 10px;color:#ddd}
.live{color:var(--cop-r);animation:blink 1s steps(2) infinite}
.tv-screen{position:relative;aspect-ratio:16/10;border-radius:18px;overflow:hidden;border:4px solid #000;background:#000}
.tv-screen iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.nosignal{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.bars-tv{position:absolute;inset:0;background:linear-gradient(90deg,#c0c0c0 0 14.28%,#c0c000 0 28.57%,#00c0c0 0 42.85%,#00c000 0 57.14%,#c000c0 0 71.42%,#c00000 0 85.71%,#0000c0 0);opacity:.85}
.bars-tv::after{content:"";position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.8'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");opacity:.45;mix-blend-mode:multiply;animation:grain .2s steps(3) infinite}
.ns-copy{position:relative;z-index:2;background:#000;border:3px solid #fff;padding:16px 22px;text-align:center;transform:rotate(-3deg);box-shadow:6px 7px 0 var(--pink)}
.ns-copy b{display:block;font-family:var(--pd);font-weight:400;font-size:clamp(32px,5vw,60px);line-height:1;animation:glitchTx 2s steps(3) infinite}
.ns-copy small{display:block;font-family:var(--px);font-size:10px;color:var(--sun);margin:8px 0}
.ns-copy .scrawl{font-size:16px}
.ns-reporter{position:absolute;right:-2%;bottom:-36%;height:90%;width:auto;z-index:3;animation:float 3s ease-in-out infinite;filter:drop-shadow(6px 6px 0 rgba(0,0,0,.5))}
.tv-lower{display:flex;min-width:0;align-items:center;margin-top:10px;background:var(--cop-r);border:3px solid #000;overflow:hidden}
.tv-lower b{background:#fff;color:var(--cop-r);font-family:var(--pd);font-weight:400;padding:6px 10px;flex:none;z-index:1}
.tv-crawl{display:flex;flex:none;width:max-content;white-space:nowrap;font-weight:800;font-size:16px;animation:marq 22s linear infinite}
.tv-crawl span{padding-left:10px}
.tv-side{display:flex;flex-direction:column;gap:16px;align-items:flex-start}
.tv-side .h-pd{font-size:clamp(46px,6vw,90px);margin-bottom:10px}

/* ---------- FINALE ---------- */
#end{min-height:100vh;text-align:center;overflow:hidden;padding-bottom:120px;isolation:isolate}
.end-bg{position:absolute;inset:0;z-index:-3}
.end-bg img{width:100%;height:100%;object-fit:cover;filter:saturate(1.3) hue-rotate(-20deg) brightness(.6)}
.end-rays{position:absolute;left:50%;top:30%;width:220vmax;height:220vmax;margin:-110vmax;z-index:-2;background:repeating-conic-gradient(rgba(255,210,63,.22) 0 7deg,transparent 7deg 18deg);animation:rays 30s linear infinite;mask:radial-gradient(circle,#000 10%,transparent 50%);-webkit-mask:radial-gradient(circle,#000 10%,transparent 50%)}
@keyframes rays{to{transform:rotate(360deg)}}
.mp{font-family:var(--pd);font-weight:400;margin:0;line-height:.82;display:flex;flex-direction:column;align-items:center}
.mp span{display:inline-block;font-size:clamp(64px,13vw,190px);color:var(--sun);text-shadow:var(--o8),10px 12px 0 var(--pink);text-transform:lowercase}
.mp span:first-child{transform:rotate(-5deg);color:#fff;text-shadow:var(--o8),10px 12px 0 var(--orange)}
.mp span:last-child{transform:rotate(3deg);animation:wob 2.4s ease-in-out infinite}
.respect{font-family:var(--px);font-size:clamp(14px,2vw,22px);margin:22px 0 0;text-shadow:3px 3px 0 #000}
.respect b{color:var(--cash)}
.end-crew{display:flex;justify-content:center;align-items:flex-end;gap:0;margin:30px auto 0;max-width:1000px}
.end-crew img{height:clamp(170px,26vw,340px);width:auto;filter:drop-shadow(8px 8px 0 rgba(0,0,0,.45))}
.end-crew .end-car{height:auto;width:min(46vw,480px);margin:0 -40px;animation:bounceCar .6s ease-in-out infinite alternate;z-index:2;position:relative}
@keyframes bounceCar{from{transform:translateY(0) rotate(-1deg)}to{transform:translateY(-10px) rotate(1deg)}}
.foot{max-width:860px;margin:70px auto 0;padding:22px;background:rgba(0,0,0,.75);border:3px solid #000;box-shadow:6px 7px 0 var(--pink);font-size:15px;transform:rotate(-1deg);text-align:left}
.foot p{margin:0}
.foot-small{font-family:var(--px);font-size:9px;margin-top:12px!important;color:#bbb}
.foot b{color:var(--sun)}

/* ---------- RESPONSIVE ---------- */
@media (max-width:1100px){
  .hero-crew{width:78vw;height:52vh;opacity:.98}
  .hero-copy{max-width:560px}
  .ticker-sticker{right:auto;left:min(420px,60vw);top:auto;bottom:-40px}
}
@media (max-width:900px){
  .call-wrap,.crew-stage,.tv{grid-template-columns:minmax(0,1fr)}
  .flip-phone{max-width:340px;margin:0 auto}
  .call-uncle{display:none}
  .wheel{max-width:400px;margin:0 auto}
  .crew-card{grid-template-columns:1fr;justify-items:center;text-align:center;min-height:0}
  .crew-info{display:flex;flex-direction:column;align-items:center}
  .crew-info h3{transform-origin:50% 50%}
  .bars{width:100%}
  .board{height:auto;display:flex;flex-direction:column;align-items:center;gap:26px;padding:30px 16px 40px;transform:none}
  .board>*{position:relative!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important}
  .strings{display:none}
  .loot3d{transform:none;width:300px;height:300px}
  .polaroid{display:inline-block}
  .redstamp{position:absolute!important;top:10px!important;right:10px!important}
  .route{grid-template-columns:1fr;gap:56px;padding-left:10px}
  .o2,.o4{margin-top:0}
  .tv-side{align-items:center;text-align:center}
  .tv-side .btn-row,.tv-side{flex-direction:row;flex-wrap:wrap;justify-content:center}
  .tv-side .h-pd{width:100%}
}
@media (max-width:640px){
  body{font-size:17px}
  .sec{padding:90px 16px}
  #hero{padding-top:96px;min-height:auto;padding-bottom:0}
  .hero-bg::after{background:linear-gradient(rgba(20,7,40,.65),rgba(20,7,40,.35) 50%,var(--night))}
  .mega span{font-size:clamp(58px,19vw,90px)}
  .mega .w2{margin-left:.3em}
  .ticker-sticker{width:96px;height:96px;left:auto;right:4px;top:-10px;bottom:auto}
  .ticker-sticker b{font-size:24px}
  .neon-sign{display:none}
  .hero-crew{position:relative;width:calc(100% + 32px);margin:24px -16px 0;height:330px;right:auto}
  .tag-bubble{display:none}
  .ca-strip{display:flex;width:100%}
  .ca-val{flex:1;font-size:10px}
  .btn{font-size:16px;padding:12px 16px}
  .btn-row{gap:10px}
  .tape-a{margin-top:-10px}
  .fp-screen{height:380px}
  .cd div{min-width:0;flex:1}
  .crew-big{height:330px}
  .bars li{grid-template-columns:118px 1fr;font-size:8px}
  .pin-card{width:100%;max-width:300px}
  .polaroid{width:150px}
  .polaroid img{height:150px}
  #chase{height:300vh}
  .ch-run{height:20vh;bottom:25%}
  .ch-car{width:76vw}
  .ch-cop{width:70vw}
  .ch-cop2{width:56vw}
  .ch-heli{width:52vw;top:30%}
  .ch-beam{top:calc(30% + 60px)}
  .chase-text{top:9%}
  .speedo{width:84px;height:84px;bottom:auto;top:12%;right:12px}
  .speedo b{font-size:26px}
  .evaded{right:auto;left:10%;top:42%}
  .floor{flex-wrap:wrap;min-height:0;gap:0 4px}
  .dancer{margin:0 -4%}
  .dancer img{height:200px}
  .dn2,.dn4{transform:none}
  .dn3{order:-1;width:100%;display:flex;flex-direction:column;align-items:center}
  .dn3 img{height:260px}
  .dancefloor{display:none}
  .obj{padding:30px 18px 26px}
  .obj p{font-size:17px}
  .route-runner{height:96px;z-index:1}
  .passed-stamp{right:8px;font-size:20px}
  .tv-frame{padding:10px;transform:none}
  .tv-top{font-size:7px}
  .ns-copy{padding:10px 12px}
  .ns-reporter{display:none}
  .end-crew img{height:150px}
  .end-crew .end-car{width:58vw;margin:0 -30px}
  /* HUD compact */
  .radar{width:62px;height:62px;left:10px;bottom:10px;opacity:.92}
  .objective{display:none}
  .hud-right{right:10px;top:10px;gap:4px}
  .cash{font-size:19px}
  .stars svg{width:17px;height:17px}
  .radio{font-size:7px;padding:5px 7px}
  .radio #station{max-width:92px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
  #phone{left:82px;right:10px;bottom:10px;width:auto;padding:7px 10px 9px;border-radius:10px;transform:translateY(160%)}
  #phone.show{transform:translateY(0) rotate(-1deg)}
  #phMsg{font-size:9.5px}
  #titlecard{top:34%}
  .ld-bottom{grid-template-columns:1fr}
  .ld-start{justify-self:center}
  .ld-panels{gap:6px}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001s!important;animation-iteration-count:1!important;transition-duration:.001s!important}
  #flyer,#cash{display:none}
  [data-rv]{opacity:1;transform:none}
}
