:root{--blood:#8a0f1c;--fluor:#e8e07a;--ecg:#3dff6e;--paper:#e9dcae}
*{box-sizing:border-box;margin:0;padding:0}
html,body{width:100%;height:100%;overflow:hidden;background:#0a0203;font-family:'VT323',monospace;color:var(--fluor);touch-action:none;user-select:none}
#scene-container{position:fixed;inset:0}
#vignette{position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse at center,transparent 45%,rgba(20,0,2,.85) 100%);z-index:2}
#grain{position:fixed;inset:-50%;pointer-events:none;z-index:3;opacity:.09;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence baseFrequency='.9' numOctaves='2'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");animation:grain .4s steps(4) infinite}
@keyframes grain{0%{transform:translate(0,0)}25%{transform:translate(-5%,3%)}50%{transform:translate(4%,-4%)}75%{transform:translate(-3%,-2%)}}
#redtint{position:fixed;inset:0;pointer-events:none;z-index:2;background:#ff0018;mix-blend-mode:multiply;opacity:0}
.hidden{display:none!important}
#hud{position:fixed;inset:0;pointer-events:none;z-index:5}
#chamber{position:absolute;top:14px;left:16px;font-size:24px;letter-spacing:2px;text-shadow:0 0 8px rgba(232,224,122,.6)}
#chamber.glitch{animation:glitch .5s}
@keyframes glitch{0%,100%{transform:none}20%{transform:translate(3px,-2px);color:#f33}40%{transform:translate(-4px,1px);color:#3ff}60%{transform:translate(2px,2px)}}
#ecgbox{position:absolute;top:10px;right:12px;background:rgba(0,10,0,.6);border:1px solid #1f5a2a;padding:4px}
#bpm{color:var(--ecg);font-size:20px;text-align:right}
#cells{position:absolute;bottom:18px;left:16px;font-size:22px;color:#ff6b7a}
#cells b{color:#fff}
#sanitywrap{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);width:min(320px,50vw);text-align:center}
#sanitylbl{font-size:16px;letter-spacing:4px;opacity:.8}
#sanitybar{height:10px;border:1px solid var(--fluor);background:rgba(0,0,0,.5)}
#sanity{height:100%;width:100%;background:var(--fluor);box-shadow:0 0 10px var(--fluor);transition:width .2s}
#cross{position:absolute;left:50%;top:50%;width:6px;height:6px;margin:-3px;border-radius:50%;background:#ffd0d0}
#prompt{position:absolute;top:58%;width:100%;text-align:center;font-size:22px}
.overlay{position:fixed;inset:0;z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:radial-gradient(circle,rgba(60,0,8,.85),rgba(5,0,1,.97));text-align:center;padding:20px}
.overlay h1{font-size:clamp(64px,14vw,150px);color:#ff2a3d;text-shadow:3px 0 #00f6ff,-3px 0 #ff00a0,0 0 30px #f00;line-height:.9}
.overlay h2{font-family:'Special Elite',serif;font-size:clamp(22px,4vw,40px);letter-spacing:6px;color:var(--paper)}
.sub{font-size:22px;max-width:640px;opacity:.85}
.small{font-size:18px;opacity:.6}
.flicker{animation:flick 3s infinite}
@keyframes flick{0%,92%,100%{opacity:1}93%{opacity:.2}95%{opacity:1}96%{opacity:.4}}
.flat{animation:none;color:#fff!important}
button{font-family:'VT323',monospace;font-size:26px;background:transparent;color:var(--fluor);border:2px solid var(--fluor);padding:8px 26px;cursor:pointer;letter-spacing:3px;min-width:260px}
button:hover{background:var(--fluor);color:#200}
.pulse{animation:pulse .83s infinite}
@keyframes pulse{0%,100%{transform:scale(1)}10%{transform:scale(1.08)}22%{transform:scale(1)}32%{transform:scale(1.05)}}
.controls{list-style:none;display:flex;gap:18px;flex-wrap:wrap;justify-content:center;font-size:20px;opacity:.75}
.controls b{color:#ff6b7a}
label{display:flex;flex-direction:column;font-size:22px;gap:6px;width:260px}
input[type=range]{accent-color:#ff2a3d}
.remix{position:absolute;bottom:12px;right:16px;color:rgba(232,224,122,.5);font-size:18px}
#note{position:fixed;z-index:9;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-2deg);width:min(420px,88vw);padding:28px;background:var(--paper);color:#3a1a10;font-family:'Special Elite',serif;font-size:20px;line-height:1.5;box-shadow:0 0 40px #000,inset 0 0 60px rgba(120,40,20,.4)}
#note small{display:block;margin-top:14px;opacity:.6;font-size:13px}
#mobile{position:fixed;inset:0;z-index:6;pointer-events:none}
#joy{position:absolute;left:24px;bottom:70px;width:120px;height:120px;border-radius:50%;border:2px solid rgba(232,224,122,.4);pointer-events:auto}
#knob{position:absolute;left:35px;top:35px;width:50px;height:50px;border-radius:50%;background:rgba(232,224,122,.35)}
#mobile button{position:absolute;pointer-events:auto;min-width:0;width:70px;height:70px;border-radius:50%;padding:0;font-size:22px;background:rgba(0,0,0,.3)}
#mE{right:24px;bottom:150px}#mRun{right:110px;bottom:80px}