:root{--y:#ffcc00;--k:#111214;--c:#3ff7ff;--g:#2a2d31;--r:#ff3b3b}
*{box-sizing:border-box}
html,body{margin:0;height:100%;overflow:hidden;background:#0c0d0f;font-family:'JetBrains Mono',monospace;color:#ddd;user-select:none;-webkit-user-select:none;touch-action:none}
#scene-container{position:fixed;inset:0}
.hidden{display:none!important}
#hud{position:fixed;inset:0;pointer-events:none}
#crosshair{position:absolute;left:50%;top:50%;width:22px;height:22px;transform:translate(-50%,-50%)}
#crosshair:before,#crosshair:after{content:'';position:absolute;background:var(--c);box-shadow:0 0 6px var(--c)}
#crosshair:before{left:10px;top:0;width:2px;height:22px;clip-path:polygon(0 0,100% 0,100% 30%,0 30%,0 70%,100% 70%,100% 100%,0 100%)}
#crosshair:after{top:10px;left:0;height:2px;width:22px;clip-path:polygon(0 0,30% 0,30% 100%,0 100%,0 0,70% 0,100% 0,100% 100%,70% 100%)}
#crosshair span{position:absolute;inset:-4px;border:2px solid var(--r);transform:rotate(45deg) scale(.4);opacity:0;transition:opacity .15s}
#crosshair.hit span{opacity:1}
#counters{position:absolute;left:18px;top:16px;font-size:12px;letter-spacing:.15em;line-height:1.7;text-shadow:0 1px 0 #000}
#counters b{color:var(--y);font-weight:800;font-size:18px;display:inline-block;min-width:40px}
#slowTag{color:var(--c)}
#challenge{position:absolute;top:16px;left:50%;transform:translateX(-50%);background:var(--y);color:#000;padding:6px 14px;font-weight:800;letter-spacing:.1em}
#weapon{position:absolute;right:20px;bottom:18px;text-align:right}
#wName{font-family:'Big Shoulders Stencil Display',sans-serif;font-size:30px;color:var(--y);letter-spacing:.05em}
#wAmmo{font-size:34px;font-weight:800;color:#fff}
#wHint{font-size:10px;opacity:.5;font-weight:200;margin-top:4px}
#announcer{position:absolute;left:50%;bottom:90px;transform:translateX(-50%);font-size:14px;color:var(--c);background:rgba(0,20,24,.7);border-left:3px solid var(--c);padding:8px 14px;opacity:0;transition:opacity .3s;white-space:nowrap;max-width:90vw;overflow:hidden;text-overflow:ellipsis}
#announcer.on{opacity:1}
#announcer:before{content:'ANNOUNCER-BOT> ';opacity:.5}
#hurt{position:absolute;inset:0;background:radial-gradient(transparent 40%,rgba(255,0,0,.6));opacity:0;transition:opacity .4s}
#menu{position:fixed;inset:0;background:rgba(5,10,12,.6);display:flex;align-items:center;justify-content:center;backdrop-filter:blur(3px)}
.panel{width:min(620px,94vw);max-height:92vh;overflow:auto;border:1px solid var(--c);background:linear-gradient(180deg,rgba(0,40,46,.92),rgba(0,14,18,.95));box-shadow:0 0 40px rgba(63,247,255,.25),inset 0 0 60px rgba(63,247,255,.06);padding:20px;color:var(--c)}
.panel h2{margin:0 0 14px;font-weight:800;letter-spacing:.1em}
.panel h2 small{font-weight:200;font-size:11px;opacity:.6}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}
.panel button,.panel select{font-family:inherit;background:rgba(63,247,255,.08);color:var(--c);border:1px solid rgba(63,247,255,.5);padding:10px;cursor:pointer;font-weight:800;letter-spacing:.06em}
.panel button:hover{background:var(--c);color:#002}
.panel button i{font-weight:200;font-size:10px;opacity:.7}
.row{display:flex;align-items:center;gap:12px;margin:10px 0}
.row label{width:120px;font-size:12px;letter-spacing:.1em}
.row input[type=range]{flex:1;accent-color:var(--c)}
.row.btns{flex-wrap:wrap}
.row.btns button{flex:1}
#slowBtn.on{background:var(--c);color:#002}
.statsboard{border-top:1px dashed rgba(63,247,255,.4);margin-top:12px;padding-top:10px;font-size:12px;display:grid;grid-template-columns:1fr 1fr;gap:4px 16px}
.statsboard b{color:var(--y)}
.close{width:100%;margin-top:14px;background:var(--y)!important;color:#000!important;border:none!important}
#start{position:fixed;inset:0;overflow:auto;background:
 repeating-linear-gradient(90deg,rgba(255,255,255,.02) 0 1px,transparent 1px 60px),
 repeating-linear-gradient(0deg,rgba(255,255,255,.02) 0 1px,transparent 1px 60px),
 radial-gradient(ellipse at 70% 20%,#2b2f35,#0c0d0f 70%)}
.tape{height:26px;background:repeating-linear-gradient(-45deg,var(--y) 0 22px,#111 22px 44px);box-shadow:0 4px 20px #000}
.startInner{max-width:1000px;margin:0 auto;padding:30px 22px 40px}
.pre{font-size:11px;letter-spacing:.3em;color:var(--y);opacity:.8;animation:rise .6s both}
h1{font-family:'Big Shoulders Stencil Display',sans-serif;font-size:clamp(64px,13vw,150px);line-height:.85;margin:12px 0;color:#e9e6dc;text-shadow:6px 6px 0 #8a0000;animation:rise .7s .1s both}
h1 span{font-family:'JetBrains Mono';font-size:.25em;color:var(--c);vertical-align:top;margin-left:12px;text-shadow:0 0 18px var(--c)}
.disc{font-weight:200;font-style:italic;opacity:.75;animation:rise .7s .2s both}
.cta{display:flex;gap:14px;flex-wrap:wrap;margin:24px 0;animation:rise .7s .3s both;align-items:stretch}
#playDesk,#vrSlot button{font-family:'JetBrains Mono'!important;font-weight:800!important;font-size:16px!important;letter-spacing:.12em;padding:18px 28px!important;cursor:pointer;border:none!important;position:static!important;transform:none!important;width:auto!important;left:auto!important;bottom:auto!important;border-radius:0!important;opacity:1!important}
#playDesk{background:var(--y);color:#000}
#playDesk:hover{background:#fff}
#vrSlot button{background:var(--c)!important;color:#002!important}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px;animation:rise .7s .4s both}
.ctrl{border:1px solid #333;background:rgba(0,0,0,.4);padding:14px;font-size:12px;line-height:1.8}
.ctrl h3{margin:0 0 6px;color:var(--y);font-size:13px;letter-spacing:.2em}
.ctrl h3 small{font-weight:200;color:#888;letter-spacing:0}
.ctrl b{color:var(--c)}
#lb{margin:0;padding-left:20px}
#auth-status{margin-top:8px;font-size:11px;opacity:.7}
#auth-status a{color:var(--c)}
.remix{display:inline-block;margin-top:24px;color:var(--y);font-size:12px;letter-spacing:.2em}
@keyframes rise{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
#mobile{position:fixed;inset:0;pointer-events:none}
#stick{position:absolute;left:24px;bottom:24px;width:130px;height:130px;border-radius:50%;border:2px solid rgba(63,247,255,.4);background:rgba(0,0,0,.25);pointer-events:auto}
#knob{position:absolute;left:40px;top:40px;width:50px;height:50px;border-radius:50%;background:rgba(63,247,255,.5)}
#mbtns{position:absolute;right:16px;bottom:16px;display:grid;grid-template-columns:repeat(3,64px);gap:8px;pointer-events:auto}
#mbtns button{height:54px;font-family:inherit;font-weight:800;font-size:11px;background:rgba(0,0,0,.45);color:var(--c);border:1px solid var(--c)}
#mbtns .big{grid-column:span 3;height:70px;background:rgba(255,59,59,.35);color:#fff;border-color:var(--r)}
@media (max-width:700px){#wHint{display:none}#weapon{bottom:auto;top:12px;right:12px}#wName{font-size:20px}#wAmmo{font-size:20px}#announcer{bottom:auto;top:110px;font-size:11px}}