@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;700&display=swap";:root{--terminal-color: #00ff41;--terminal-dim: rgba(0, 255, 65, .5);--bg: #000000;--panel-bg: rgba(0, 8, 2, .78);--border: rgba(0, 255, 65, .18);--font: "JetBrains Mono", monospace}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;background:var(--bg);overflow:hidden;overscroll-behavior:none}#game-canvas{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}#hud{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;font-family:var(--font);font-size:11px;color:var(--terminal-color);-webkit-user-select:none;user-select:none}.panel-header{padding:5px 10px;font-size:9px;letter-spacing:.14em;text-transform:uppercase;opacity:.4;border-bottom:1px solid var(--border)}#log-panel{position:absolute;top:52px;left:16px;width:248px;background:var(--panel-bg);border:1px solid var(--border);border-radius:3px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);overflow:hidden}#log-trace{padding:6px 8px;max-height:340px;overflow-y:auto;scrollbar-width:none}#log-trace::-webkit-scrollbar{display:none}.log-line{display:block;font-size:10px;line-height:1.65;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--terminal-color);transition:opacity .3s ease}.log-ok{color:#00ff41}.log-err{color:#f33}.log-warn{color:#fa0}.log-hot{color:#fc0}#gauge-panel{position:absolute;top:52px;right:16px;width:168px;background:var(--panel-bg);border:1px solid var(--border);border-radius:3px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);overflow:hidden}.gauge{padding:10px 14px 12px;border-bottom:1px solid var(--border)}.gauge:last-child{border-bottom:none}.gauge-label{font-size:9px;letter-spacing:.18em;opacity:.45;margin-bottom:5px}.gauge-value{font-size:24px;font-weight:700;letter-spacing:.06em;line-height:1;text-shadow:0 0 12px var(--terminal-color),0 0 24px rgba(0,255,65,.3)}.gauge-bar{margin-top:8px;height:3px;background:#00ff411f;border-radius:2px;overflow:hidden}.gauge-bar-fill{height:100%;border-radius:2px;background:var(--terminal-color);transition:width .35s ease,background .6s ease;box-shadow:0 0 6px var(--terminal-color)}#boot-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:none;align-items:center;justify-content:center;background:#000;font-family:var(--font);color:var(--terminal-color);background-image:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,255,65,.025) 2px,rgba(0,255,65,.025) 4px);transform-origin:center center}@keyframes boot-crt-off{0%{transform:scaleY(1) scaleX(1);opacity:1}35%{transform:scaleY(.006) scaleX(1);opacity:1}65%{transform:scaleY(.006) scaleX(.18);opacity:.9}to{transform:scaleY(.006) scaleX(0);opacity:0}}#boot-overlay.boot-exit{animation:boot-crt-off .42s cubic-bezier(.4,0,1,1) forwards;pointer-events:none}#boot-inner{width:min(560px,90vw);padding:28px 32px 24px;border:1px solid rgba(0,255,65,.28);border-radius:3px;background:#000601eb;box-shadow:0 0 0 1px #00ff410f,0 0 60px #00ff4114}#boot-header{display:flex;align-items:baseline;gap:14px;margin-bottom:16px}#boot-title{font-size:18px;font-weight:700;letter-spacing:.22em;text-shadow:0 0 10px var(--terminal-color)}#boot-subtitle{font-size:10px;opacity:.38;letter-spacing:.1em}#boot-divider-top,#boot-divider-bot{height:1px;background:var(--border);margin-bottom:12px}#boot-divider-bot{margin-top:12px;margin-bottom:0}#boot-log{min-height:160px;display:flex;flex-direction:column;gap:1px}.boot-line{font-size:11px;line-height:1.8;letter-spacing:.04em;white-space:pre;opacity:0;animation:boot-line-in .12s ease forwards}@keyframes boot-line-in{0%{opacity:0;transform:translate(-4px)}to{opacity:1;transform:translate(0)}}.boot-tag-init{color:var(--terminal-color);opacity:.7}.boot-tag-boot{color:#0df}.boot-tag-rdy{color:#afa}.boot-tag-err{color:#f44}.boot-ok{color:var(--terminal-color)}.boot-dots{opacity:.28}.boot-cursor{display:inline-block;width:7px;height:12px;background:var(--terminal-color);vertical-align:middle;margin-left:2px;animation:boot-blink .7s step-end infinite}@keyframes boot-blink{0%,to{opacity:1}50%{opacity:0}}#boot-footer{margin-top:16px}#boot-progress-wrap{display:flex;align-items:center;gap:10px}#boot-bar{flex:1;height:4px;background:#00ff411a;border-radius:2px;overflow:hidden}#boot-bar-fill{height:100%;width:0%;background:var(--terminal-color);border-radius:2px;box-shadow:0 0 8px var(--terminal-color);transition:width .18s ease}#boot-pct{font-size:10px;letter-spacing:.1em;opacity:.55;width:36px;text-align:right}#endgame-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#000000d1;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);font-family:var(--font);color:var(--terminal-color);background-image:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(0,255,65,.03) 2px,rgba(0,255,65,.03) 4px),linear-gradient(#000000d1,#000000d1)}.endgame-hidden{display:none!important}@keyframes endgame-in{0%{opacity:0;transform:scale(.94) translateY(8px);filter:blur(4px)}60%{opacity:1;filter:blur(0)}75%{transform:scale(1.012) translateY(-2px)}to{transform:scale(1) translateY(0)}}@keyframes glitch-clip{0%,to{clip-path:inset(0 0 100% 0);opacity:1}10%{clip-path:inset(20% 0 60% 0)}20%{clip-path:inset(0 0 0 0)}30%{clip-path:inset(40% 0 40% 0)}40%{clip-path:inset(0 0 0 0)}}#endgame-panel{position:relative;width:min(420px,88vw);padding:36px 40px 40px;background:var(--panel-bg);border:1px solid rgba(0,255,65,.35);border-radius:4px;text-align:center;box-shadow:0 0 0 1px #00ff410f,0 0 40px #00ff411f,inset 0 0 60px #0009;animation:endgame-in .45s cubic-bezier(.22,1,.36,1) both}#endgame-panel:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:4px;background:repeating-linear-gradient(0deg,transparent,transparent 3px,rgba(0,255,65,.025) 3px,rgba(0,255,65,.025) 4px);pointer-events:none}.endgame-sys-line{font-size:9px;letter-spacing:.14em;opacity:.38;margin-bottom:20px;text-transform:uppercase}.endgame-title{font-size:clamp(28px,6vw,42px);font-weight:700;letter-spacing:.22em;text-shadow:0 0 10px var(--terminal-color),0 0 30px rgba(0,255,65,.4),0 0 60px rgba(0,255,65,.15);margin-bottom:32px;animation:glitch-clip .6s steps(1) .5s 1}.endgame-score-label{font-size:9px;letter-spacing:.22em;opacity:.42;margin-bottom:8px;text-transform:uppercase}#endgame-score{font-size:clamp(36px,8vw,56px);font-weight:700;letter-spacing:.08em;line-height:1;text-shadow:0 0 14px var(--terminal-color),0 0 36px rgba(0,255,65,.35);margin-bottom:40px}#endgame-retry{display:inline-block;padding:12px 28px;background:transparent;border:1px solid rgba(0,255,65,.5);border-radius:2px;color:var(--terminal-color);font-family:var(--font);font-size:12px;font-weight:700;letter-spacing:.18em;cursor:pointer;transition:background .2s ease,border-color .2s ease,box-shadow .2s ease,transform .1s ease}#endgame-retry:hover{background:#00ff411a;border-color:var(--terminal-color);box-shadow:0 0 18px #00ff4140}#endgame-retry:active{transform:scale(.97);background:#00ff412e}#combo-wrap{position:absolute;top:252px;right:16px;pointer-events:none}#combo-display{width:168px;padding:10px 14px 14px;background:var(--panel-bg);border:1px solid rgba(0,255,65,.22);border-radius:4px;text-align:center;font-family:var(--font);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 0 0 1px #00ff410a;will-change:transform}.combo-hidden{display:none!important}.combo-header{font-size:8px;letter-spacing:.2em;opacity:.38;margin-bottom:2px;text-transform:uppercase}.combo-value{font-size:56px;font-weight:700;line-height:1;letter-spacing:-.01em;color:var(--terminal-color);text-shadow:0 0 12px var(--terminal-color),0 0 28px rgba(0,255,65,.35);will-change:transform}.combo-multiplier{font-size:9px;letter-spacing:.16em;opacity:.5;margin-top:5px}#combo-mult{opacity:1;color:var(--terminal-color)}.combo-timer-track{margin-top:9px;height:3px;background:#00ff411a;border-radius:2px;overflow:hidden}#combo-timer-fill{height:100%;width:100%;border-radius:2px;background:var(--terminal-color);box-shadow:0 0 6px var(--terminal-color)}#combo-timer-fill[data-urgency=warn]{background:#fa0;box-shadow:0 0 6px #fa0}#combo-timer-fill[data-urgency=critical]{background:#f33;box-shadow:0 0 8px #f33;animation:combo-crit-pulse .38s ease-in-out infinite alternate}@keyframes combo-crit-pulse{0%{opacity:.55}to{opacity:1}}#combo-display[data-level="1"]{--cc: #00ff41;--cg: rgba(0, 255, 65, .3);border-color:#00ff414d}#combo-display[data-level="2"]{--cc: #aaff00;--cg: rgba(170, 255, 0, .32);border-color:#aaff005c}#combo-display[data-level="3"]{--cc: #ffaa00;--cg: rgba(255, 170, 0, .38);border-color:#ffaa006b}#combo-display[data-level="4"]{--cc: #ff4444;--cg: rgba(255, 68, 68, .42);border-color:#ff44447a}#combo-display[data-level]{box-shadow:0 0 22px var(--cg),0 0 50px var(--cg),inset 0 0 16px #0006}#combo-display[data-level] .combo-value{color:var(--cc);text-shadow:0 0 12px var(--cc),0 0 30px var(--cg),0 0 60px var(--cg)}#combo-display[data-level] #combo-mult{color:var(--cc)}@keyframes combo-float{0%,to{transform:translateY(0)}50%{transform:translateY(-2px)}}@keyframes combo-shake-2{0%{transform:translate(0) rotate(0)}25%{transform:translate(-1px,-.5px) rotate(-.2deg)}50%{transform:translate(1px,.5px) rotate(.2deg)}75%{transform:translate(-.5px,1px) rotate(-.15deg)}to{transform:translate(0) rotate(0)}}@keyframes combo-shake-3{0%{transform:translate(0) rotate(0) scale(1)}20%{transform:translate(-2px,-1px) rotate(-.5deg) scale(1.01)}40%{transform:translate(2px,-1px) rotate(.5deg) scale(.99)}60%{transform:translate(-1.5px,2px)rotate(-.4deg) scale(1.01)}80%{transform:translate(1.5px,-1px)rotate(.4deg) scale(.99)}to{transform:translate(0) rotate(0) scale(1)}}@keyframes combo-shake-4{0%{transform:translate(0) rotate(0) scale(1)}10%{transform:translate(-4px,-2px) rotate(-1.2deg) scale(1.03)}20%{transform:translate(4px,-2px) rotate(1.4deg) scale(.97)}30%{transform:translate(-3px,2px) rotate(-1.1deg) scale(1.03)}40%{transform:translate(3px,-2px) rotate(1.2deg) scale(.97)}50%{transform:translate(-3px,2px) rotate(-1.4deg) scale(1.03)}60%{transform:translate(3px,2px) rotate(1.1deg) scale(.97)}70%{transform:translate(-4px,-2px) rotate(-.8deg) scale(1.02)}80%{transform:translate(4px,2px) rotate(.8deg) scale(.98)}90%{transform:translate(-2px,-2px) rotate(-1.1deg) scale(1.02)}to{transform:translate(0) rotate(0) scale(1)}}#combo-display[data-level="1"]{animation:combo-float 3.2s ease-in-out infinite}#combo-display[data-level="2"]{animation:combo-shake-2 .7s ease-in-out infinite}#combo-display[data-level="3"]{animation:combo-shake-3 .32s ease-in-out infinite}#combo-display[data-level="4"]{animation:combo-shake-4 .18s ease-in-out infinite}@keyframes combo-punch-anim{0%{transform:scale(1)}22%{transform:scale(1.5)}55%{transform:scale(.91)}78%{transform:scale(1.1)}to{transform:scale(1)}}#combo-display.combo-punch{animation:combo-punch-anim .26s cubic-bezier(.22,1,.36,1)!important}@keyframes combo-expire-anim{0%{opacity:1;filter:brightness(2.5) saturate(0)}25%{opacity:.85;filter:brightness(1)}70%{opacity:.35}to{opacity:0}}#combo-display.combo-expire{animation:combo-expire-anim .44s ease-out forwards!important}#booster-hud{display:none}.booster-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:10px 14px 8px;background:var(--panel-bg);border:1px solid rgba(0,255,65,.3);border-radius:3px;color:var(--terminal-color);font-family:var(--font);font-size:10px;cursor:pointer;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .1s ease;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);min-width:64px;-webkit-user-select:none;user-select:none}.booster-btn:hover:not(:disabled){background:#00ff4114;border-color:var(--terminal-color);box-shadow:0 0 14px #00ff4133}.booster-btn:active:not(:disabled){transform:scale(.95);background:#00ff4126}.booster-btn--active{border-color:var(--terminal-color);background:#00ff411f;box-shadow:0 0 20px #00ff4159,inset 0 0 12px #00ff4114;animation:booster-pulse .8s ease-in-out infinite alternate}@keyframes booster-pulse{0%{box-shadow:0 0 12px #00ff4140}to{box-shadow:0 0 28px #00ff418c}}.booster-btn--empty,.booster-btn:disabled{opacity:.35;cursor:not-allowed;border-color:#00ff411a}.booster-glyph{font-size:18px;line-height:1;text-shadow:0 0 8px var(--terminal-color)}.booster-label{font-size:8px;letter-spacing:.14em;opacity:.55;text-transform:uppercase}.booster-charge{font-size:13px;font-weight:700;letter-spacing:.06em;text-shadow:0 0 8px var(--terminal-color)}#gear-btn{position:fixed;bottom:45px;right:12px;z-index:90;width:38px;height:38px;padding:0;display:flex;align-items:center;justify-content:center;font-size:18px;background:var(--panel-bg);border:1px solid rgba(0,255,65,.28);border-radius:3px;color:var(--terminal-color);cursor:pointer;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .12s ease;-webkit-user-select:none;user-select:none}#gear-btn:hover{background:#00ff4114;border-color:var(--terminal-color);box-shadow:0 0 14px #00ff4140}#gear-btn:active{transform:scale(.92) rotate(30deg);background:#00ff4124}#gear-btn.paused{border-color:var(--terminal-color);box-shadow:0 0 18px #00ff4159;animation:gear-pulse 1.2s ease-in-out infinite alternate}@keyframes gear-pulse{0%{box-shadow:0 0 10px #00ff4140}to{box-shadow:0 0 26px #00ff418c}}#settings-panel{position:fixed;bottom:70px;right:18px;z-index:95;width:280px;padding:14px 16px 16px;background:var(--panel-bg);border:1px solid rgba(0,255,65,.32);border-radius:4px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-family:var(--font);color:var(--terminal-color);box-shadow:0 0 0 1px #00ff410d,0 0 26px #00ff4126,inset 0 0 30px #0006;animation:settings-in .22s cubic-bezier(.22,1,.36,1) both}.settings-hidden{display:none!important}@keyframes settings-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.settings-sys-line,.settings-divider{font-size:9px;letter-spacing:.13em;opacity:.45;text-transform:uppercase;margin-bottom:12px}.settings-row{display:grid;grid-template-columns:60px 1fr 28px;align-items:center;gap:8px;margin-bottom:10px}.settings-label{font-size:10px;letter-spacing:.14em;opacity:.85}.settings-val{font-size:10px;text-align:right;opacity:.7;font-variant-numeric:tabular-nums}.settings-row input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:4px;background:#00ff4133;border-radius:2px;outline:none;cursor:pointer}.settings-row input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:12px;height:12px;border-radius:50%;background:var(--terminal-color);box-shadow:0 0 8px #00ff4199;cursor:pointer}.settings-row input[type=range]::-moz-range-thumb{width:12px;height:12px;border:none;border-radius:50%;background:var(--terminal-color);box-shadow:0 0 8px #00ff4199;cursor:pointer}.settings-actions{display:flex;flex-direction:column;gap:8px;margin-top:8px}#settings-panel button{display:block;width:100%;padding:9px 14px;background:transparent;border:1px solid rgba(0,255,65,.32);border-radius:2px;color:var(--terminal-color);font-family:var(--font);font-size:11px;font-weight:700;letter-spacing:.16em;cursor:pointer;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .1s ease}#settings-panel button:hover{background:#00ff4117;border-color:var(--terminal-color);box-shadow:0 0 14px #00ff4138}#settings-panel button:active{transform:scale(.97);background:#00ff4129}#settings-mute.muted{color:#00ff4152;border-color:#00ff411f}#targeting-reticle{position:fixed;width:48px;height:48px;transform:translate(-50%,-50%);pointer-events:none;z-index:60;color:#00ff41;font-family:var(--font);font-size:11px;text-shadow:0 0 8px #00ff41;animation:reticle-blink .5s step-end infinite}@keyframes reticle-blink{0%,to{opacity:1}50%{opacity:.5}}.reticle-corner{position:absolute;font-size:16px;line-height:1}.reticle-corner.tl{top:0;left:0}.reticle-corner.tr{top:0;right:0}.reticle-corner.bl{bottom:0;left:0}.reticle-corner.br{bottom:0;right:0}.reticle-label{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:7px;letter-spacing:.14em;white-space:nowrap}#step-away-overlay{position:fixed;bottom:24px;left:24px;z-index:820;pointer-events:none}#step-away-overlay.step-away-hidden{display:none}#step-away-btn{pointer-events:auto;font-family:var(--font);font-size:13px;letter-spacing:.22em;color:var(--terminal-color);background:#020804d9;border:1px solid rgba(0,255,65,.45);padding:10px 22px;cursor:pointer;text-transform:uppercase;text-shadow:0 0 6px rgba(0,255,65,.55);transition:background .18s ease,border-color .18s ease,box-shadow .18s ease}#step-away-btn:hover{background:#003c14d9;border-color:#78ffa0f2;box-shadow:0 0 14px #00ff5f73}#leave-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:flex-end;justify-content:center;padding-bottom:48px;z-index:800;pointer-events:none}#leave-overlay.leave-hidden{display:none}#leave-btn{pointer-events:auto;font-family:var(--font);font-size:18px;font-weight:700;letter-spacing:.2em;color:#222;background:#888;border:2px solid #aaa;border-radius:6px;padding:14px 56px;cursor:pointer;text-transform:uppercase;transition:background .2s,border-color .2s}#leave-btn:hover{background:#aaa;border-color:#ccc}#leave-btn:active{background:#666}body.is-mobile .sys-label,body.is-mobile .sys-version,body.is-mobile .sys-status{display:none}body.is-mobile #log-panel,body.is-mobile #gauge-panel{display:none!important}body.is-mobile #combo-wrap{top:50px;right:50%;transform:translate(50%)}body.is-mobile #combo-display{width:min(200px,60vw);padding:6px 10px 8px}body.is-mobile .combo-value{font-size:34px}body.is-mobile .combo-header{font-size:7px;margin-bottom:1px}body.is-mobile .combo-multiplier{font-size:8px;margin-top:3px}body.is-mobile .combo-timer-track{margin-top:6px}body.is-mobile #booster-hud{position:fixed!important;left:calc(8px + env(safe-area-inset-left));right:calc(8px + env(safe-area-inset-right));bottom:calc(8px + env(safe-area-inset-bottom));display:flex!important;gap:8px;z-index:85;pointer-events:auto}body.is-mobile #booster-hud.hud-hidden{display:none!important}body.is-mobile .booster-btn{flex:1 1 0;min-width:0;min-height:54px;padding:8px 6px 6px}body.is-mobile .booster-glyph{font-size:22px}body.is-mobile .booster-label{font-size:8px}body.is-mobile .booster-charge{font-size:14px}body.is-mobile #gear-btn{width:48px;height:48px;font-size:22px;right:calc(12px + env(safe-area-inset-right));bottom:calc(72px + env(safe-area-inset-bottom))}body.is-mobile #booster-hud.hud-hidden~#gear-btn,body.is-mobile:not(:has(#booster-hud:not(.hud-hidden))) #gear-btn{bottom:calc(12px + env(safe-area-inset-bottom))}body.is-mobile #door-back-btn{bottom:calc(80px + env(safe-area-inset-bottom))!important;font-size:16px!important;padding:10px 28px!important}@media (hover: none) and (pointer: coarse){#gear-btn:hover,.booster-btn:hover:not(:disabled),#settings-panel button:hover,#endgame-retry:hover{background:var(--panel-bg);border-color:#00ff4147;box-shadow:none}}@media (max-width: 1100px){body:not(.is-mobile) #log-panel{width:208px}body:not(.is-mobile) #log-trace{max-height:280px}body:not(.is-mobile) #gauge-panel{width:148px}body:not(.is-mobile) .gauge{padding:9px 12px 10px}body:not(.is-mobile) .gauge-value{font-size:20px}body:not(.is-mobile) #combo-display{width:148px;padding:8px 12px 12px}body:not(.is-mobile) .combo-value{font-size:44px}body:not(.is-mobile) #combo-wrap{top:228px}}@media (max-width: 880px){body:not(.is-mobile) #log-panel{width:176px}body:not(.is-mobile) .log-line{font-size:9px;line-height:1.55}body:not(.is-mobile) #log-trace{max-height:220px;padding:4px 6px}body:not(.is-mobile) #gauge-panel{width:128px}body:not(.is-mobile) .gauge{padding:7px 10px 9px}body:not(.is-mobile) .gauge-value{font-size:17px}body:not(.is-mobile) #combo-display{width:128px;padding:7px 10px 10px}body:not(.is-mobile) .combo-value{font-size:36px}body:not(.is-mobile) #combo-wrap{top:204px}}@media (max-width: 720px){body:not(.is-mobile) #log-panel{display:none}}@media (max-height: 620px){body:not(.is-mobile) #log-trace{max-height:min(200px,34vh)}body:not(.is-mobile) #combo-wrap{top:min(228px,46vh)}}@media (max-height: 520px) and (max-width: 1100px){body:not(.is-mobile) #log-panel{display:none}body:not(.is-mobile) #combo-wrap{top:min(200px,44vh)}}
