@font-face{font-family:VT323;src:url(/fonts/vt323.ttf) format("truetype");font-display:swap}
.mono{font-family:VT323,ui-monospace,Menlo,monospace}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;min-height:100%;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;color:#fff;background:#070a1a}
.hidden{display:none!important}
#bg{position:fixed;inset:0;z-index:0;overflow:hidden;background:radial-gradient(ellipse 70% 55% at 12% 0%,rgba(223,45,179,.42),transparent 62%),radial-gradient(ellipse 60% 50% at 95% 30%,rgba(30,166,234,.32),transparent 60%),radial-gradient(ellipse 90% 45% at 50% 105%,rgba(255,138,0,.30),transparent 62%),linear-gradient(180deg,#0a0d26 0%,#070a1a 55%,#120822 100%)}
#bg .grid{position:absolute;left:-50%;right:-50%;bottom:-2%;height:42%;transform:perspective(320px) rotateX(62deg);transform-origin:50% 100%;opacity:.35;background:repeating-linear-gradient(90deg,rgba(255,79,208,.55) 0 1px,transparent 1px 64px),repeating-linear-gradient(0deg,rgba(30,166,234,.5) 0 1px,transparent 1px 48px);-webkit-mask-image:linear-gradient(0deg,#000 10%,transparent 95%);mask-image:linear-gradient(0deg,#000 10%,transparent 95%)}
#hud{position:relative;z-index:2;display:flex;justify-content:space-between;align-items:center;padding:max(12px,env(safe-area-inset-top)) 14px 6px}
.back{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 14px;border-radius:999px;border:1px solid rgba(255,255,255,.35);background:rgba(10,14,38,.72);color:#fff;font-family:VT323,ui-monospace,monospace;font-size:17px;letter-spacing:.12em;text-decoration:none;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);touch-action:manipulation}
.back:hover,.back:focus-visible{border-color:#FFB000;color:#FFB000;outline:none}
#hud .hr{display:flex;align-items:center;gap:8px}
.pill{background:rgba(255,176,0,.12);border:1px solid #FFB000;box-shadow:0 0 10px rgba(255,176,0,.35);color:#fff;border-radius:999px;padding:7px 12px;font-size:13px;font-weight:700;white-space:nowrap;cursor:pointer}
#main{position:relative;z-index:1;max-width:620px;margin:0 auto;padding:6px 16px 40px;text-align:center}
.osd{color:#1EA6EA;font-size:20px;letter-spacing:.1em;text-shadow:0 0 8px rgba(30,166,234,.8)}
.ttl{font-family:VT323,monospace;font-weight:400;font-size:clamp(56px,14vw,92px);line-height:.9;margin:4px 0 10px;letter-spacing:.06em;color:#fff;text-shadow:0 0 6px #fff,0 0 18px #FF4FD0,0 0 42px #DF2DB3,0 0 80px #B93BD9}
.sub{opacity:.85;font-size:17px;margin:0 0 22px}
.steps{list-style:none;margin:0;padding:0;display:grid;gap:14px;text-align:left}
.step{background:rgba(14,18,44,.88);border:1px solid rgba(185,59,217,.5);border-radius:20px;padding:14px;box-shadow:0 0 22px rgba(185,59,217,.22),0 16px 40px rgba(0,0,0,.45)}
.step.on{border-color:#FFB000;box-shadow:0 0 26px rgba(255,176,0,.35),0 0 50px rgba(223,45,179,.2)}
.step.done{border-color:#3dffa8;box-shadow:0 0 18px rgba(61,255,168,.25)}
.sh{display:flex;align-items:center;gap:10px;margin-bottom:10px;font-weight:700;font-size:17px}
.n{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;font-family:VT323,monospace;font-size:22px;color:#1a1000;background:linear-gradient(135deg,#FFC93C,#FF8A00);box-shadow:0 0 12px rgba(255,176,0,.6)}
.drop{display:flex;align-items:center;justify-content:center;min-height:150px;border:2px dashed rgba(30,166,234,.65);border-radius:16px;cursor:pointer;text-align:center;padding:10px;background:rgba(30,166,234,.06);box-shadow:inset 0 0 22px rgba(30,166,234,.15)}
.drop small{opacity:.65}.drop img{max-height:240px;max-width:100%;border-radius:10px}
.go{display:flex;width:100%;align-items:center;justify-content:center;gap:10px;min-height:50px;background:linear-gradient(135deg,#FFC93C,#FFB000 55%,#FF8A00);color:#1a1000;border:0;border-radius:999px;padding:12px 22px;font-weight:800;font-size:17px;cursor:pointer;box-shadow:0 0 18px rgba(255,176,0,.55),0 0 40px rgba(223,45,179,.25)}
.go.cyan{background:linear-gradient(135deg,#7fe7ff,#1EA6EA);box-shadow:0 0 18px rgba(30,166,234,.6)}
.go.mag{background:linear-gradient(135deg,#ff8ae6,#DF2DB3 60%,#B93BD9);color:#fff;box-shadow:0 0 18px rgba(223,45,179,.6),0 0 40px rgba(185,59,217,.35)}
.go:disabled{opacity:.45;cursor:not-allowed}
.cost{font-style:normal;font-family:VT323,monospace;font-size:22px;background:rgba(0,0,0,.25);border-radius:8px;padding:0 8px}
.fine{display:block;opacity:.65;margin-top:8px;font-size:12px}
.prog{margin-top:10px;height:22px;border-radius:999px;background:rgba(255,255,255,.08);position:relative;overflow:hidden}
.prog i{position:absolute;inset:0 auto 0 0;width:0;background:linear-gradient(90deg,#DF2DB3,#FFB000);box-shadow:0 0 14px rgba(255,176,0,.6);transition:width .4s}
.prog small{position:absolute;inset:0;display:grid;place-items:center;font-weight:700;font-size:12px}
.note{margin:14px 0;min-height:1em;font-size:14px;opacity:.9}
.note.err{background:#7a1010;border-radius:12px;padding:10px}
.admin{margin-top:18px;text-align:left;opacity:.7}.admin input{width:70%;padding:9px;border-radius:10px;border:1px solid rgba(30,166,234,.6);background:#0e122c;color:#fff;font-size:16px}
.legal{opacity:.5;font-size:12px;margin-top:20px}
#playwrap{position:fixed;inset:0;z-index:20;display:flex;flex-direction:column;background:#000}
#playwrap .bar{display:flex;align-items:center;gap:10px;padding:max(8px,env(safe-area-inset-top)) 10px 8px;background:rgba(7,10,26,.95);border-bottom:1px solid rgba(255,79,208,.5);box-shadow:0 0 18px rgba(223,45,179,.35)}
#playwrap .bar b{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:VT323,monospace;font-size:24px;letter-spacing:.08em;color:#FFC93C;text-shadow:0 0 10px rgba(255,176,0,.7)}
#fps{color:#3dffa8;font-size:18px}
.btn{background:rgba(255,255,255,.16);border:0;color:#fff;border-radius:10px;padding:8px 14px;font-size:16px;font-weight:700;cursor:pointer}
.stage{position:relative;flex:1;min-height:0}
#game{position:absolute;inset:0;width:100%;height:100%;border:0;display:block;background:#05060f;touch-action:none}

/* ---- ☰ menu (same as /build/) ---- */
.navwrap{position:relative}
.navbtn{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:4px;width:64px;height:44px;padding:0 0 0 20px;border-radius:999px;border:1px solid rgba(255,255,255,.4);background:rgba(150,150,178,.62);-webkit-backdrop-filter:blur(14px) saturate(1.2);backdrop-filter:blur(14px) saturate(1.2);box-shadow:0 2px 14px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.3);cursor:pointer;touch-action:manipulation}
.navbtn i{display:block;height:3px;border-radius:2px;background:#0b0d1a}.navbtn i:nth-child(1){width:22px}.navbtn i:nth-child(2){width:18px}.navbtn i:nth-child(3){width:13px}
.navbtn:focus-visible{outline:2px solid #FFB000;outline-offset:2px}.navbtn[aria-expanded="true"]{background:rgba(242,239,230,.9);box-shadow:0 0 16px rgba(255,176,0,.5)}
.nav{position:absolute;right:0;top:calc(100% + 8px);z-index:60;display:flex;flex-direction:column;gap:4px;width:min(260px,calc(100vw - 24px));max-height:70dvh;overflow-y:auto;padding:8px;border-radius:18px;border:1px solid rgba(255,176,0,.6);background:linear-gradient(180deg,rgba(18,22,56,.94),rgba(7,10,26,.96));-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:0 0 22px rgba(255,176,0,.3),0 0 40px rgba(255,79,208,.22),inset 0 0 18px rgba(30,166,234,.15)}
.nav[hidden]{display:none}
.nav a{display:flex;align-items:center;min-height:46px;padding:0 16px;border:1px solid transparent;border-radius:12px;color:#e8ecff;font-size:14px;font-weight:700;letter-spacing:.16em;text-decoration:none}
.nav a:hover,.nav a:focus-visible{outline:none;border-color:rgba(30,166,234,.7);color:#fff;background:rgba(30,166,234,.12)}
.nav a.on{background:linear-gradient(90deg,rgba(255,176,0,.95),rgba(255,138,0,.85));color:#07080d;border-color:#FFB000;box-shadow:0 0 14px rgba(255,176,0,.5)}
#hud{z-index:20}
/* ---- featured demo game ---- */
.feat{display:flex;flex-direction:column;align-items:center;gap:4px;width:100%;margin:6px 0 22px;padding:16px 18px;border-radius:22px;border:2px solid #FF8A00;background:linear-gradient(135deg,rgba(255,138,0,.28),rgba(185,59,217,.32) 60%,rgba(30,166,234,.22));color:#fff;cursor:pointer;font:inherit;box-shadow:0 0 22px rgba(255,138,0,.55),0 0 50px rgba(185,59,217,.35),inset 0 0 18px rgba(255,138,0,.2);animation:featglow 2.2s ease-in-out infinite alternate;touch-action:manipulation}
.feat .fk{font-family:VT323,monospace;font-size:18px;letter-spacing:.16em;color:#FFC93C;text-shadow:0 0 8px rgba(255,176,0,.8)}
.feat b{font-size:clamp(18px,5vw,24px);line-height:1.15;text-shadow:0 0 10px rgba(255,79,208,.8)}
.feat small{font-size:13px;opacity:.85}
.feat:hover,.feat:focus-visible{border-color:#3dffa8;outline:none}
@keyframes featglow{to{box-shadow:0 0 30px rgba(185,59,217,.7),0 0 60px rgba(255,138,0,.35),inset 0 0 18px rgba(185,59,217,.25)}}
@media (prefers-reduced-motion:reduce){.feat{animation:none}}

/* ---- crew sandbox: character + level pickers ---- */
.feat2{display:block;width:100%;margin:-12px 0 22px;padding:10px 14px;border-radius:999px;border:1px solid rgba(255,201,60,.6);background:rgba(7,10,26,.55);color:#FFC93C;font-weight:800;font-size:14px;letter-spacing:.04em;cursor:pointer}
.feat2:hover,.feat2:focus-visible{border-color:#3dffa8;outline:none}
#btnDemo .cost{font-size:16px}
.crewbar{display:flex;gap:6px;flex:none}
.cbtn{border:1px solid rgba(30,166,234,.7);background:rgba(30,166,234,.14);color:#fff;border-radius:999px;padding:7px 11px;font:800 13px/1 -apple-system,system-ui,sans-serif;letter-spacing:.04em;cursor:pointer;white-space:nowrap;max-width:44vw;overflow:hidden;text-overflow:ellipsis;touch-action:manipulation}
.cbtn.lv{border-color:rgba(255,79,208,.6);background:rgba(223,45,179,.12)}
.cbtn.lv.on{background:rgba(223,45,179,.45);box-shadow:0 0 12px rgba(255,79,208,.7)}
.cbtn.busy{animation:cbp .7s ease-in-out infinite alternate}@keyframes cbp{to{opacity:.45}}
@media (max-width:620px){.cbtn.lv span{display:none}#fps{display:none}#playwrap .bar b{font-size:20px}}
#crewpick{position:absolute;inset:0;z-index:5;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y;background:radial-gradient(ellipse at 50% 0%,rgba(80,20,110,.92),rgba(5,4,18,.96) 70%);padding:10px max(12px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));box-sizing:border-box}
.cp-h{display:flex;align-items:center;gap:10px;position:sticky;top:-10px;z-index:1;padding:6px 0 8px;background:linear-gradient(rgba(40,12,60,.97),rgba(40,12,60,0))}
.cp-h b{flex:1;font-family:VT323,monospace;font-size:26px;letter-spacing:.1em;color:#FFC93C;text-shadow:0 0 10px rgba(255,176,0,.7)}
#cpGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:10px;max-width:1100px;margin:0 auto}
#cpGrid h4{grid-column:1/-1;margin:8px 0 -2px;font:700 12px/1 ui-monospace,Menlo,monospace;letter-spacing:.2em;text-transform:uppercase;color:#7fe7ff;text-shadow:0 0 8px rgba(30,166,234,.8)}
.cc{--cc:#FF4FD0;position:relative;display:flex;flex-direction:column;align-items:center;padding:0 0 8px;border-radius:16px;border:2px solid color-mix(in srgb,var(--cc) 65%,transparent);background:#dfe1ea;overflow:hidden;cursor:pointer;color:#fff;box-shadow:0 0 12px color-mix(in srgb,var(--cc) 45%,transparent);touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:transform .12s}
.cc img{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;background:#dfe1ea}
.cc b{display:block;width:100%;margin-top:-1px;padding:6px 4px 1px;background:#0b0d22;font-size:14px;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cc small{display:block;width:100%;background:#0b0d22;font:12px ui-monospace,Menlo,monospace;color:#FFC93C;padding-bottom:2px}
.cc{background:#0b0d22}
.cc:hover,.cc:focus-visible{transform:translateY(-2px);outline:none;border-color:#3dffa8}
.cc.on{border-color:#FFC93C;box-shadow:0 0 18px rgba(255,201,60,.8)}
.cc .spin{position:absolute;inset:0;display:none;background:rgba(7,4,26,.55)}
.cc.busy .spin{display:block}.cc.busy .spin::after{content:"";position:absolute;left:50%;top:40%;width:30px;height:30px;margin:-15px;border-radius:50%;border:3px solid #FFC93C;border-right-color:transparent;animation:ccs .7s linear infinite}
@keyframes ccs{to{transform:rotate(360deg)}}
@media (min-width:700px){#cpGrid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}}
#game{touch-action:none;overscroll-behavior:none;-webkit-touch-callout:none} /* the game owns every touch inside the player */

/* ================= Haunted Streets landing (Oct 20 redesign; body.hsp) ================= */
.hsp{--or:#FF8A1A;--pu:#B44DFF;--te:#2FE6D2;--gr:#7CFF3A;--am:#FFB000;--ink:#0b0618;background:#0b0618;overflow-x:hidden}
.hsp #bg{background:radial-gradient(ellipse 70% 50% at 15% 30%,rgba(180,77,255,.28),transparent 60%),radial-gradient(ellipse 60% 45% at 90% 60%,rgba(47,230,210,.16),transparent 60%),radial-gradient(ellipse 80% 40% at 50% 100%,rgba(255,138,26,.22),transparent 65%),linear-gradient(180deg,#0b0618,#120726 60%,#0b0618)}
.hsp #bg .grid{opacity:.18}
.hsp #hud{position:fixed;left:0;right:0;top:0;padding:max(10px,env(safe-area-inset-top)) max(14px,env(safe-area-inset-right)) 10px max(14px,env(safe-area-inset-left));background:linear-gradient(rgba(11,6,24,.78),rgba(11,6,24,0));pointer-events:none}
.hsp #hud>*{pointer-events:auto}
.hsp #main{max-width:none;padding:0;text-align:left}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
#slime{position:fixed;inset:0;width:100%;height:100%;z-index:30;pointer-events:none}
/* hero */
.hero{position:relative;height:100vh;height:100svh;min-height:600px;max-height:1100px;overflow:hidden;perspective:1100px;background:#0b0618;isolation:isolate}
.hx{position:absolute;inset:-4%;transform-style:preserve-3d;will-change:transform}
.ly{position:absolute;inset:0;display:block;will-change:transform;transform:scale(1.1)}
.ly img{width:100%;height:100%;object-fit:cover;object-position:50% 30%;display:block;user-select:none;-webkit-user-drag:none}
.ly-front img{filter:drop-shadow(0 10px 24px rgba(0,0,0,.6)) drop-shadow(0 0 18px rgba(255,176,0,.25))}
.ly-mid img{filter:drop-shadow(0 6px 18px rgba(0,0,0,.5))}
.moon{background:radial-gradient(circle at 76% 9%,rgba(255,250,225,.55),rgba(214,196,255,.18) 9%,transparent 22%);mix-blend-mode:screen;animation:moonp 6s ease-in-out infinite alternate}
@keyframes moonp{to{opacity:.6}}
.fog{pointer-events:none;background:radial-gradient(ellipse 60% 20% at 20% 92%,rgba(190,170,255,.32),transparent 70%),radial-gradient(ellipse 50% 16% at 75% 96%,rgba(47,230,210,.22),transparent 70%),radial-gradient(ellipse 80% 22% at 50% 102%,rgba(180,77,255,.35),transparent 70%);filter:blur(6px);animation:fogd 18s ease-in-out infinite alternate}
.fog.f2{background:radial-gradient(ellipse 45% 14% at 35% 100%,rgba(230,220,255,.28),transparent 70%),radial-gradient(ellipse 40% 12% at 85% 98%,rgba(255,138,26,.18),transparent 70%);animation-duration:24s;animation-direction:alternate-reverse}
@keyframes fogd{from{background-position:0 0}to{background-position:120px 0}}
.embers{background-image:radial-gradient(2px 2px at 12% 70%,#ffb000,transparent),radial-gradient(2px 2px at 28% 82%,#ff8a1a,transparent),radial-gradient(1.5px 1.5px at 44% 64%,#2fe6d2,transparent),radial-gradient(2px 2px at 63% 78%,#ffb000,transparent),radial-gradient(1.5px 1.5px at 82% 68%,#b44dff,transparent),radial-gradient(2px 2px at 92% 84%,#ff8a1a,transparent);animation:emb 9s linear infinite;opacity:.8}
@keyframes emb{from{background-position:0 0}to{background-position:0 -260px}}
.scan{position:absolute;inset:0;z-index:2;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(0,0,0,.16) 0 1px,transparent 1px 3px);mix-blend-mode:multiply;opacity:.55}
.vig{position:absolute;inset:0;z-index:2;pointer-events:none;background:radial-gradient(ellipse 85% 75% at 50% 42%,transparent 55%,rgba(11,6,24,.75)),linear-gradient(rgba(11,6,24,0) 52%,rgba(11,6,24,.55) 72%,#0b0618 99%)}
.hcopy{position:absolute;z-index:3;left:0;right:0;bottom:max(34px,env(safe-area-inset-bottom));display:flex;flex-direction:column;align-items:center;text-align:center;padding:0 18px;transform:translateY(calc(var(--sp,0) * -40px));opacity:calc(1 - var(--sp,0) * 1.4)}
.hsp .osd{color:var(--te);font-size:20px;letter-spacing:.18em;text-shadow:0 0 10px rgba(47,230,210,.8)}
.tag{max-width:640px;margin:6px 0 16px;font-size:clamp(15px,1.6vw,18px);line-height:1.4;text-shadow:0 2px 10px #000,0 0 18px rgba(11,6,24,.9)}
.tag b{color:var(--am)}
.playbig{position:relative;display:inline-flex;align-items:center;gap:14px;min-height:76px;padding:0 42px 0 30px;border-radius:999px;border:3px solid #ffd27a;cursor:pointer;color:#1a0800;font:400 clamp(28px,4.4vw,46px)/1 VT323,ui-monospace,monospace;letter-spacing:.1em;background:linear-gradient(180deg,#ffd45a 0%,#ff9a1a 48%,#ff6a00 100%);box-shadow:0 0 0 3px rgba(180,77,255,.9),0 0 30px rgba(255,138,26,.85),0 0 70px rgba(180,77,255,.6),inset 0 3px 0 rgba(255,255,255,.55),inset 0 -6px 12px rgba(120,30,0,.45);text-shadow:0 1px 0 rgba(255,255,255,.4);touch-action:manipulation;animation:pbg 2.2s ease-in-out infinite alternate;transition:transform .15s}
.playbig .pb-i{display:inline-grid;place-items:center;width:46px;height:46px;border-radius:50%;background:#1a0800;color:#ffb000;font-size:26px;box-shadow:0 0 12px rgba(255,138,26,.8)}
.playbig:hover,.playbig:focus-visible{transform:translateY(-3px) scale(1.04);outline:none;border-color:#fff}
.playbig:active{transform:scale(.97)}
@keyframes pbg{to{box-shadow:0 0 0 3px rgba(47,230,210,.9),0 0 40px rgba(255,138,26,1),0 0 90px rgba(47,230,210,.45),inset 0 3px 0 rgba(255,255,255,.55),inset 0 -6px 12px rgba(120,30,0,.45)}}
.stats{display:flex;gap:16px;margin-top:14px;font-size:20px;letter-spacing:.14em;color:#e8dcff;text-shadow:0 0 10px rgba(180,77,255,.9)}
.stats[hidden]{display:none}
.stats span{padding:4px 14px;border-radius:999px;background:rgba(11,6,24,.6);border:1px solid rgba(180,77,255,.6)}
.stats b{color:var(--am);font-weight:400}
.scrollcue{position:absolute;z-index:3;left:50%;bottom:6px;transform:translateX(-50%);color:rgba(255,255,255,.55);text-decoration:none;font-size:18px;animation:cue 1.6s ease-in-out infinite}
@keyframes cue{50%{transform:translate(-50%,5px)}}
/* sections */
.sec{position:relative;z-index:1;max-width:1180px;margin:0 auto;padding:56px max(18px,env(safe-area-inset-left)) 10px}
.sh2{text-align:center;margin-bottom:22px}
.sh2b{margin-top:44px}
.h2{margin:4px 0 6px;font:400 clamp(38px,6vw,64px)/.95 VT323,ui-monospace,monospace;letter-spacing:.05em;color:#ffb000;text-shadow:0 0 6px rgba(255,210,120,.8),0 0 22px rgba(255,138,26,.7),0 0 46px rgba(180,77,255,.6)}
.sh2 p{margin:0 auto;max-width:560px;opacity:.82;font-size:15px}
.songs,.crew,.bosses{list-style:none;margin:0;padding:0}
.songs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.song,.mate,.boss{--gx:50%;transition:transform .18s ease-out,box-shadow .2s,border-color .2s;transform-style:preserve-3d}
.song{position:relative;display:block;width:100%;padding:0;border:2px solid rgba(180,77,255,.7);border-radius:18px;overflow:hidden;background:#140a28;color:#fff;cursor:pointer;text-align:left;font:inherit;box-shadow:0 0 22px rgba(180,77,255,.35),0 18px 40px rgba(0,0,0,.5)}
.song img{display:block;width:100%;height:auto;aspect-ratio:1}
.song::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at var(--gx) 0%,rgba(255,255,255,.3),transparent 55%);mix-blend-mode:screen;pointer-events:none}
.song span{display:block;padding:12px 14px 14px;background:linear-gradient(180deg,#1a0c34,#0f0720)}
.song b{display:block;font-size:17px;line-height:1.15}
.song small{display:block;opacity:.7;margin-top:3px}
.song em{display:inline-block;margin-top:8px;font:400 20px/1 VT323,monospace;letter-spacing:.08em;font-style:normal;color:#1a0800;background:linear-gradient(180deg,#ffd45a,#ff8a1a);border-radius:999px;padding:4px 12px;box-shadow:0 0 12px rgba(255,138,26,.6)}
.song:hover,.song:focus-visible{border-color:var(--am);outline:none;box-shadow:0 0 30px rgba(255,176,0,.55),0 22px 50px rgba(0,0,0,.6)}
.crew{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x proximity;padding:14px 4px 18px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.crew::-webkit-scrollbar{display:none}
.mate{position:relative;flex:0 0 120px;scroll-snap-align:start;display:flex;flex-direction:column;align-items:center;padding:10px 6px 10px;border-radius:16px;border:2px solid rgba(47,230,210,.55);background:radial-gradient(ellipse at 50% 30%,rgba(180,77,255,.45),rgba(20,8,40,.95) 70%);box-shadow:0 0 14px rgba(47,230,210,.25)}
.mate:first-child{flex-basis:150px;border-color:var(--am);box-shadow:0 0 22px rgba(255,176,0,.6);background:radial-gradient(ellipse at 50% 30%,rgba(255,138,26,.5),rgba(20,8,40,.95) 70%)}
.mate img{width:100%;height:auto;aspect-ratio:3/4;object-fit:contain;filter:drop-shadow(0 6px 10px rgba(0,0,0,.6))}
.mate b{margin-top:4px;font-size:14px;letter-spacing:.02em;white-space:nowrap}
.mate i{margin-top:4px;font:400 15px/1 VT323,monospace;font-style:normal;letter-spacing:.1em;color:var(--gr);text-shadow:0 0 8px rgba(124,255,58,.6)}
.mate:hover{border-color:var(--am)}
.bosses{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.boss{position:relative;border-radius:18px;overflow:hidden;border:2px solid rgba(255,138,26,.7);background:#140a28;box-shadow:0 0 22px rgba(255,138,26,.3),0 18px 40px rgba(0,0,0,.5)}
.boss img{display:block;width:100%;height:auto;aspect-ratio:1}
.boss b{position:absolute;left:14px;bottom:30px;font:400 34px/1 VT323,monospace;letter-spacing:.06em;color:#fff;text-shadow:0 0 12px rgba(180,77,255,1),0 2px 6px #000}
.boss small{position:absolute;left:14px;bottom:10px;font-size:13px;color:var(--te);text-shadow:0 1px 6px #000}
.boss::before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(11,6,24,0) 50%,rgba(11,6,24,.9))}
/* dock: the home page's card strip */
.hsp #dock{position:sticky;bottom:0;z-index:12;margin-top:40px;padding:6px 0 max(10px,env(safe-area-inset-bottom));background:linear-gradient(rgba(11,6,24,0),rgba(11,6,24,.9) 30%);display:block}
.hsp .dk-row{display:flex;align-items:stretch;padding-top:26px;perspective:760px;perspective-origin:50% 40%;max-width:1440px;margin:0 auto}
.hsp .dk-lab{writing-mode:vertical-rl;transform:rotate(180deg);font-size:17px;letter-spacing:.2em;color:rgba(255,255,255,.7);padding:0 8px 0 12px;text-align:center}
.hsp .dk-cards{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x proximity;flex:1;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:24px 16px 20px 4px;margin:-24px 0 -20px;perspective:760px;perspective-origin:50% 50%}
.hsp .dk-cards::-webkit-scrollbar{display:none}
.hsp .dcard{position:relative;flex:0 0 156px;height:122px;padding:0;border:0;background:none;border-radius:10px;transform-style:preserve-3d;will-change:transform;transition:transform .12s linear;color:#fff;overflow:visible;cursor:pointer;font:inherit;text-align:left;scroll-snap-align:start;display:block;text-decoration:none;-webkit-tap-highlight-color:transparent;-webkit-user-drag:none;touch-action:pan-x}
.hsp .dcard .edge{position:absolute;inset:0;border-radius:10px;background:var(--a);transform:translateZ(-14px);box-shadow:0 0 0 2px var(--a),0 0 22px var(--a),0 14px 28px rgba(0,0,0,.65);filter:brightness(.6)}
.hsp .dcard .face{position:absolute;inset:0;border-radius:10px;overflow:hidden;border:2px solid var(--a);box-shadow:0 0 14px var(--a),inset 0 0 12px rgba(255,255,255,.18),inset 0 0 0 1px rgba(255,255,255,.25);background:#0a0e24;display:block}
.hsp .dcard .cimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .12s linear;pointer-events:none;user-select:none;transform:scale(1.28)}
.hsp .dcard .shade{position:absolute;inset:0;background:linear-gradient(rgba(7,10,26,0) 35%,rgba(7,10,26,.88))}
.hsp .dcard .gloss{position:absolute;inset:0;background:radial-gradient(circle at var(--gx,50%) 0%,rgba(255,255,255,.38),transparent 55%);mix-blend-mode:screen;opacity:.7}
.hsp .dcard .glyph{position:absolute;right:8px;top:6px;font-size:22px;filter:drop-shadow(0 0 8px var(--a))}
.hsp .dcard .ct{position:absolute;left:10px;right:8px;bottom:24px;font-weight:900;font-size:15px;line-height:1.05;letter-spacing:.02em;text-shadow:0 2px 8px #000,0 0 12px var(--a);transform:translateZ(30px)}
.hsp .dcard .cl{position:absolute;left:10px;bottom:6px;font-size:16px;letter-spacing:.06em;color:var(--a);text-shadow:0 1px 6px #000;transform:translateZ(22px);white-space:nowrap}
.hsp .dcard .xb{position:absolute;top:7px;right:7px;font-size:14px;letter-spacing:.06em;background:rgba(7,10,26,.82);color:#fff;border:1px solid var(--a);border-radius:999px;padding:0 7px;transform:translateZ(34px);box-shadow:0 0 10px var(--a);white-space:nowrap}
.hsp .dcard.act .edge{filter:brightness(.85)}
.hsp .dcard.hs{flex-basis:200px}
.hsp .dcard:focus-visible{outline:none}.hsp .dcard:focus-visible .face{box-shadow:0 0 22px var(--a),0 0 0 3px #fff}
@media (min-width:1300px){.hsp .dk-cards{justify-content:center}}
/* make your own */
.make{max-width:720px;padding-bottom:30px}
.hsp .steps{grid-template-columns:1fr}
.hsp .step{background:rgba(20,8,40,.86);border-color:rgba(180,77,255,.55);scroll-margin:140px}
.hsp .step.pulse{animation:stp 1.2s ease-out 1}
@keyframes stp{0%{box-shadow:0 0 0 3px #ffb000,0 0 40px rgba(255,176,0,.8)}100%{box-shadow:0 0 22px rgba(185,59,217,.22)}}
.hsp .feat2{margin:16px 0 0}
.hsp .legal{text-align:center;font-size:11px;opacity:.45}
.foot{position:relative;z-index:1;text-align:center;padding:18px 0 max(24px,env(safe-area-inset-bottom));font-size:17px;letter-spacing:.18em;color:rgba(255,255,255,.5)}
.foot a{color:#ffb000;text-decoration:none}
/* phones */
@media (max-width:760px){
  .hero{height:auto;min-height:0;aspect-ratio:auto}
  .hero{height:calc(100vw * 1.12 + 250px);max-height:none}
  .hx{inset:-3% -3% auto;height:calc(100vw * 1.12)}
  .ly img{object-position:42% 0}
  .vig{background:radial-gradient(ellipse 90% 60% at 50% 30%,transparent 55%,rgba(11,6,24,.7)),linear-gradient(rgba(11,6,24,0) 30%,rgba(11,6,24,.6) 48%,#0b0618 62%)}
  .hcopy{bottom:max(16px,env(safe-area-inset-bottom))}
  .playbig{min-height:66px;padding:0 24px 0 16px;gap:10px;font-size:30px}
  .playbig .pb-i{width:40px;height:40px;font-size:22px}
  .songs{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:72%;overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 2px 14px;scrollbar-width:none}
  .songs::-webkit-scrollbar{display:none}.songs li{scroll-snap-align:center}
  .bosses{gap:10px}.boss b{font-size:22px;bottom:26px;left:8px}.boss small{font-size:10px;left:8px;bottom:8px}
  .mate{flex-basis:96px}.mate:first-child{flex-basis:124px}
  .sec{padding-top:40px}
  .hsp .osd{font-size:17px}
}
@media (prefers-reduced-motion:reduce){.playbig,.moon,.fog,.embers,.scrollcue{animation:none}}
/* v2 fixes: hero sits above the sticky card strip; full art on phones */
.hsp{--dk:172px}
.hero{height:calc(100vh - var(--dk));height:calc(100svh - var(--dk));min-height:520px}
.hx{inset:0}
.ly{transform:scale(1.05)}
.ly img{object-position:50% 0}
.hcopy{bottom:22px}
.hcopy::before{content:"";position:absolute;z-index:-1;left:50%;bottom:-30px;width:min(980px,120%);height:calc(100% + 80px);transform:translateX(-50%);background:radial-gradient(ellipse 50% 50% at 50% 60%,rgba(11,6,24,.82),rgba(11,6,24,0) 72%);pointer-events:none}
.hsp .back{white-space:nowrap}
@media (max-width:760px){
  .hsp{--dk:164px}
  .hero{height:auto;min-height:calc(100svh - var(--dk));display:flex;flex-direction:column;justify-content:flex-end;padding-top:calc(100vw + 40px)}
  .hx{inset:40px 0 auto 0;height:100vw}
  .ly img{object-position:50% 0}
  .vig{background:linear-gradient(rgba(11,6,24,.0) 0,rgba(11,6,24,0) calc(40px + 70vw),rgba(11,6,24,.85) calc(40px + 96vw),#0b0618 calc(40px + 100vw))}
  .hcopy{position:relative;bottom:auto;padding:0 14px 18px;margin-top:-34px}
  .hcopy::before{display:none}
  .tag{font-size:15px;margin:4px 0 14px}
  .hsp .back{font-size:15px;letter-spacing:.06em;padding:0 12px}
  .hsp #mode{display:none}
}
@media (max-width:760px){
  .hsp{--dk:146px}
  .hero{padding-top:calc(100vw + 24px)}
  .hx{top:24px}
  .vig{background:linear-gradient(rgba(11,6,24,0) 0,rgba(11,6,24,0) calc(24px + 62vw),rgba(11,6,24,.85) calc(24px + 88vw),#0b0618 calc(24px + 100vw))}
  .hcopy{margin-top:-84px;padding-bottom:12px}
  .tag{display:none}
  .stats{margin-top:10px;font-size:17px}
  .hsp .dk-row{padding-top:18px}
  .hsp .dcard{flex-basis:132px;height:104px}
  .hsp .dcard.hs{flex-basis:168px}
  .hsp .dcard .ct{font-size:13.5px;bottom:22px}
  .hsp .dcard .cl{font-size:14px}
}
@media (max-width:760px){.playbig{font-size:clamp(22px,7vw,30px);letter-spacing:.05em;white-space:nowrap;padding:0 20px 0 12px}.scrollcue{display:none}}
@media (min-width:1000px){.crew{flex-wrap:wrap;justify-content:center;overflow:visible}.mate{flex-basis:118px}.mate:first-child{flex-basis:150px}}
/* Oct 20 7:11 PM: page music toggle (Rizz) */
#pgMusic{position:fixed;right:max(12px,env(safe-area-inset-right));bottom:calc(var(--dk,150px) + 12px);z-index:40;font:800 12px/1 ui-monospace,monospace;letter-spacing:.08em;color:#12061f;background:linear-gradient(135deg,#b6ff3c,#5cff8a);border:0;border-radius:999px;padding:9px 13px;box-shadow:0 0 14px rgba(140,255,90,.55);cursor:pointer}
#pgMusic.off{color:#fff;background:rgba(30,12,50,.8);box-shadow:none;border:1px solid rgba(255,255,255,.3)}
body:has(#playwrap:not(.hidden)) #pgMusic{display:none}
