:root{--ink:#eef7f3;--muted:#8e9e98;--panel:#0a1211eb;--line:#def1e929;--acid:#ccf43f;--cyan:#55e8e8;--amber:#ffc64c;--red:#ff594f}*{box-sizing:border-box}html,body{background:#0b1212;width:100%;min-width:0;height:100%;min-height:0;margin:0;overflow:hidden}body{color:var(--ink);font-family:var(--font-geist-sans), Arial, sans-serif;-webkit-font-smoothing:antialiased}button,input{font:inherit}button{color:inherit;cursor:pointer}.game-shell{width:100%;height:100vh;-webkit-user-select:none;user-select:none;touch-action:none;background:#0b1212;height:100dvh;position:relative;overflow:hidden}.game-canvas{outline:none;width:100%;height:100%;display:block}.screen-grade{pointer-events:none;mix-blend-mode:normal;background:radial-gradient(circle,#0000 42%,#0000004f 100%),repeating-linear-gradient(0deg,#ffffff03 0 1px,#0000 1px 4px);position:absolute;inset:0}.top-hud{z-index:12;min-height:84px;padding:max(12px, env(safe-area-inset-top)) max(18px, env(safe-area-inset-right)) 12px max(18px, env(safe-area-inset-left));pointer-events:none;background:linear-gradient(#040a09eb,#040a0985 67%,#0000);grid-template-columns:minmax(210px,1fr) 138px 100px 110px auto;align-items:center;gap:15px;display:grid;position:absolute;top:0;left:0;right:0}.brand-lockup,.run-data,.debug-button{pointer-events:auto}.brand-lockup{flex-direction:column;align-items:flex-start;display:flex}.brand-kicker{color:var(--cyan);font:700 8px/1 var(--font-geist-mono), monospace;letter-spacing:.2em}.brand-lockup strong{font:900 25px/.9 var(--font-geist-sans), sans-serif;letter-spacing:-.06em;margin-top:5px}.brand-lockup strong span{color:var(--acid)}.brand-lockup small{color:#71817b;font:600 7px/1 var(--font-geist-mono), monospace;letter-spacing:.13em;margin-top:6px}.run-data{border-left:1px solid var(--line);min-width:0;padding-left:14px}.run-data>span{color:#778781;font:700 7px/1 var(--font-geist-mono), monospace;letter-spacing:.16em;display:block}.run-data>strong{font:700 22px/1 var(--font-geist-mono), monospace;letter-spacing:-.07em;white-space:nowrap;margin-top:5px;display:block}.run-data.compact>strong{font-size:18px}.run-data strong i{color:#75847e;font:600 7px/1 var(--font-geist-mono), monospace;letter-spacing:.08em;margin-left:5px;font-style:normal}.debug-button{border:1px solid var(--line);color:#a8b6b0;min-width:96px;font:700 9px/1 var(--font-geist-mono), monospace;letter-spacing:.12em;background:#0a1211c2;justify-content:center;align-items:center;gap:10px;padding:10px 12px;display:flex}.debug-button:hover,.debug-button.active{color:var(--cyan);background:#55e8e814;border-color:#55e8e8a6}.debug-button kbd{color:#76847e;width:20px;height:20px;font:700 8px/1 var(--font-geist-mono), monospace;border:1px solid #ffffff2e;place-items:center;display:grid}.tutorial-card{z-index:10;border:1px solid #55e8e854;border-top:3px solid var(--cyan);text-align:center;pointer-events:none;background:linear-gradient(100deg,#081212eb,#0c1716c2);width:min(560px,100vw - 410px);padding:14px 18px 13px;position:absolute;top:112px;left:50%;transform:translate(-50%);box-shadow:0 15px 42px #00000047}.tutorial-card:before,.tutorial-card:after{content:"";background:var(--acid);width:28px;height:3px;position:absolute;top:-3px}.tutorial-card:before{left:0}.tutorial-card:after{right:0}.tutorial-card>span{color:var(--cyan);font:700 7px/1 var(--font-geist-mono), monospace;letter-spacing:.2em}.tutorial-card h2{font:900 clamp(20px, 2.4vw, 29px)/.95 var(--font-geist-sans), sans-serif;letter-spacing:-.045em;margin:7px 0 4px}.tutorial-card p{color:#b4c3bd;font:600 9px/1.4 var(--font-geist-mono), monospace;letter-spacing:.06em;margin:0}.tutorial-card small{color:var(--acid);font:700 8px/1 var(--font-geist-mono), monospace;letter-spacing:.08em;background:#ccf43f1a;margin-top:8px;padding:5px 8px;display:inline-block}.tutorial-card.stage-first-zombie,.tutorial-card.stage-combat{border-color:#ff594f6e;border-top-color:var(--red)}.tutorial-card.stage-first-zombie>span,.tutorial-card.stage-combat>span{color:var(--red)}.test-metrics{z-index:9;top:108px;left:max(18px, env(safe-area-inset-left));border:1px solid var(--line);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:none;background:#070e0db3;width:190px;padding:13px;position:absolute}.metrics-heading{color:#a7b7b0;font:700 8px/1 var(--font-geist-mono), monospace;letter-spacing:.13em;align-items:center;gap:9px;margin-bottom:9px;display:flex}.metrics-heading i{background:linear-gradient(90deg, var(--line), transparent);flex:1;height:1px}.test-metrics dl{margin:0}.test-metrics dl>div{border-bottom:1px solid #ffffff0e;justify-content:space-between;gap:8px;padding:6px 0;display:flex}.test-metrics dt{color:#72817b;font:600 7px/1 var(--font-geist-mono), monospace;letter-spacing:.08em}.test-metrics dd{color:#c8d4cf;font:700 8px/1 var(--font-geist-mono), monospace;margin:0}.hint-verdict{color:#6f7e78;font:600 6px/1 var(--font-geist-mono), monospace;letter-spacing:.07em;justify-content:space-between;margin-top:10px;display:flex}.hint-verdict b{color:var(--acid)}.hint-verdict.needed b{color:var(--amber)}.crosshair{z-index:8;pointer-events:none;filter:drop-shadow(0 1px 2px #000000e6);width:42px;height:42px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.crosshair i{background:#f1fff9eb;transition:transform 80ms,background 80ms;position:absolute}.crosshair i:first-child,.crosshair i:nth-child(2){width:9px;height:2px;top:20px}.crosshair i:first-child{left:1px}.crosshair i:nth-child(2){right:1px}.crosshair i:nth-child(3),.crosshair i:nth-child(4){width:2px;height:9px;left:20px}.crosshair i:nth-child(3){top:1px}.crosshair i:nth-child(4){bottom:1px}.crosshair b{background:var(--acid);border-radius:50%;width:4px;height:4px;position:absolute;top:19px;left:19px;box-shadow:0 0 7px #ccf43f99}.game-shell[data-firing=true] .crosshair i{background:var(--amber)}.game-shell[data-firing=true] .crosshair i:first-child{transform:translate(-3px)}.game-shell[data-firing=true] .crosshair i:nth-child(2){transform:translate(3px)}.game-shell[data-firing=true] .crosshair i:nth-child(3){transform:translateY(-3px)}.game-shell[data-firing=true] .crosshair i:nth-child(4){transform:translateY(3px)}.game-shell[data-status=ready] .crosshair,.game-shell[data-status=dead] .crosshair,.game-shell[data-status=won] .crosshair{opacity:.22}.combat-feedback{z-index:10;color:var(--acid);font:800 10px/1 var(--font-geist-mono), monospace;letter-spacing:.16em;pointer-events:none;animation:.25s ease-out feedback;position:absolute;top:calc(50% + 42px);left:50%;transform:translate(-50%)}.combat-feedback.critical{color:var(--amber)}.combat-feedback.kill{color:var(--red);font-size:12px}@keyframes feedback{0%{opacity:0;transform:translate(-50%,8px)scale(.85)}to{opacity:1;transform:translate(-50%)scale(1)}}.velocity-readout{z-index:10;color:#73847e;font:700 7px/1 var(--font-geist-mono), monospace;letter-spacing:.12em;pointer-events:none;background:#050e0ec7;border:1px solid #55e8e859;padding:7px 10px;position:absolute;bottom:62px;left:50%;transform:translate(-50%)}.velocity-readout strong{color:var(--cyan);margin-left:8px}.capture-prompt{z-index:20;color:var(--acid);font:700 8px/1 var(--font-geist-mono), monospace;letter-spacing:.13em;background:#070e0de6;border:1px solid #ccf43f80;padding:10px 15px;position:absolute;top:calc(50% + 76px);left:50%;transform:translate(-50%)}.controls-strip{z-index:10;bottom:max(14px, env(safe-area-inset-bottom));border:1px solid var(--line);color:#7e8d87;font:650 7px/1 var(--font-geist-mono), monospace;letter-spacing:.08em;pointer-events:none;white-space:nowrap;background:#050c0bb8;align-items:center;gap:14px;padding:8px 12px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.controls-strip kbd{color:#e7efeb;font:inherit}.controls-strip i{background:var(--line);width:1px;height:12px}.controls-strip strong{color:var(--acid)}.touch-aim-label{z-index:4;pointer-events:none;position:absolute;inset:0 0 0 34%}.touch-aim-label span{right:max(18px, env(safe-area-inset-right));bottom:max(18px, env(safe-area-inset-bottom));color:#e8f6f05c;font:700 7px/1 var(--font-geist-mono), monospace;letter-spacing:.12em;position:absolute}.mobile-fire{z-index:25;left:max(22px, env(safe-area-inset-left));bottom:max(22px, env(safe-area-inset-bottom));color:#fff;touch-action:none;background:radial-gradient(circle,#7e1d19bf,#2d0f0ddb);border:2px solid #ff594fcc;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:clamp(116px,24vmin,164px);height:clamp(116px,24vmin,164px);display:flex;position:absolute;box-shadow:0 0 0 8px #ff594f12,inset 0 0 35px #ff594f29}.mobile-fire span,.mobile-fire small{color:#ffaaa4;font:700 7px/1 var(--font-geist-mono), monospace;letter-spacing:.16em}.mobile-fire strong{font:900 25px/.9 var(--font-geist-sans), sans-serif;letter-spacing:-.04em;margin:7px 0}.mobile-fire.active{border-color:var(--amber);background:radial-gradient(circle,#a24614cc,#41180ce6);transform:scale(.96)}.tuning-panel{z-index:40;width:min(350px,92vw);height:100%;height:100dvh;padding:max(22px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) max(22px, env(safe-area-inset-bottom)) 20px;overscroll-behavior:contain;background:linear-gradient(150deg,#0c1615fb,#070d0cf7);border-left:1px solid #55e8e838;transition:transform .2s;position:absolute;top:0;right:0;overflow-y:auto;transform:translate(103%);box-shadow:-28px 0 60px #0000005c}.tuning-panel.open{transform:translate(0)}.panel-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.panel-header span{color:var(--cyan);font:700 7px/1 var(--font-geist-mono), monospace;letter-spacing:.18em}.panel-header h2{font:850 24px/.95 var(--font-geist-sans), sans-serif;letter-spacing:-.045em;margin:7px 0 0}.panel-header button{border:1px solid var(--line);color:#899791;width:34px;height:34px;font:300 23px/1 var(--font-geist-mono), monospace;background:0 0}.panel-header button:hover{color:var(--ink);border-color:#ffffff59}.panel-note{border-bottom:1px solid var(--line);color:#71807a;font:500 8px/1.5 var(--font-geist-mono), monospace;margin:14px 0 19px;padding-bottom:14px}.range-stack{gap:15px;display:grid}.range-control>span{color:#a9b8b2;font:600 9px/1 var(--font-geist-mono), monospace;justify-content:space-between;gap:12px;margin-bottom:7px;display:flex}.range-control output{color:var(--acid);white-space:nowrap;font-weight:700}.range-control output i{color:#6f7e78;font-size:7px;font-style:normal}.range-control input{-webkit-appearance:none;appearance:none;width:100%;height:3px;accent-color:var(--acid);background:#34413d;border:0}.range-control input::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:var(--acid);border:2px solid #0b1311;border-radius:50%;width:14px;height:14px;box-shadow:0 0 0 1px #ccf43fbf}.toggle-stack{border-top:1px solid var(--line);gap:1px;margin-top:22px;padding-top:13px;display:grid}.toggle-control{color:#a9b7b1;min-height:46px;font:600 9px/1 var(--font-geist-mono), monospace;justify-content:space-between;align-items:center;gap:12px;display:flex;position:relative}.toggle-control span{flex-direction:column;gap:4px;display:flex}.toggle-control small{color:#63716c;font-size:7px}.toggle-control input{opacity:0;pointer-events:none;position:absolute}.toggle-control>i{background:#192320;border:1px solid #53615c;flex:0 0 36px;width:36px;height:19px;transition:all .15s;position:relative}.toggle-control>i:after{content:"";background:#77847f;width:11px;height:11px;transition:all .15s;position:absolute;top:3px;left:3px}.toggle-control input:checked+i{border-color:var(--acid);background:#ccf43f1f}.toggle-control input:checked+i:after{background:var(--acid);left:20px;box-shadow:0 0 7px #ccf43f8c}.panel-actions{grid-template-columns:1fr 1fr;gap:8px;margin-top:18px;display:grid}.panel-actions button{border:1px solid var(--line);color:#94a29c;min-height:40px;font:700 7px/1.25 var(--font-geist-mono), monospace;letter-spacing:.08em;background:#ffffff06;padding:8px}.panel-actions button:first-child{color:var(--cyan);border-color:#55e8e861}.panel-actions button:hover{border-color:var(--acid);color:var(--acid)}.game-overlay{z-index:30;border:1px solid #e1f1ea33;border-top:3px solid var(--cyan);text-align:center;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:linear-gradient(145deg,#0a1211fa,#080f0eed);flex-direction:column;align-items:center;width:min(650px,100vw - 38px);max-height:calc(100dvh - 112px);padding:40px 44px 34px;display:flex;position:absolute;top:50%;left:50%;overflow-y:auto;transform:translate(-50%,-50%);box-shadow:0 35px 100px #000000a3,inset 0 1px #ffffff0a}.overlay-kicker{color:var(--cyan);font:700 8px/1 var(--font-geist-mono), monospace;letter-spacing:.19em}.game-overlay h1{font:900 clamp(42px, 6.3vw, 76px)/.82 var(--font-geist-sans), sans-serif;letter-spacing:-.075em;margin:18px 0 11px}.game-overlay h1 span{color:#0000;-webkit-text-stroke:1px #ebf8f1ad}.game-overlay>p{color:#a8b7b1;max-width:510px;margin:0 0 23px;font-size:13px;line-height:1.55}.recoil-diagram{grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;width:min(510px,100%);margin-bottom:25px;display:grid}.recoil-diagram>div{border:1px solid var(--line);background:#ffffff06;justify-content:center;align-items:center;gap:9px;min-height:52px;display:flex}.recoil-diagram b{color:var(--amber);font:400 27px/1 var(--font-geist-mono), monospace}.recoil-diagram span{color:#a9b7b1;font:700 8px/1.2 var(--font-geist-mono), monospace;letter-spacing:.08em}.recoil-diagram>strong{width:68px;height:40px;color:var(--cyan);font:800 8px/1 var(--font-geist-mono), monospace;letter-spacing:.08em;border:1px solid #55e8e86b;place-items:center;display:grid}.primary-action{background:var(--acid);color:#11170e;width:min(260px,100%);min-height:46px;font:850 10px/1 var(--font-geist-mono), monospace;letter-spacing:.1em;border:0;padding:13px 16px;box-shadow:0 0 25px #ccf43f24}.primary-action:hover{background:#e0ff6d;box-shadow:0 0 34px #ccf43f42}.primary-action span{float:right}.game-overlay>small{color:#6e7d77;font:600 7px/1 var(--font-geist-mono), monospace;letter-spacing:.11em;margin-top:13px}.result-overlay{border-top-color:var(--red);width:min(540px,100vw - 32px)}.result-overlay.won{border-top-color:var(--acid)}.result-mark{border:1px solid var(--red);width:54px;height:54px;color:var(--red);font:300 36px/1 var(--font-geist-mono), monospace;place-items:center;margin-bottom:14px;display:grid}.result-overlay.won .result-mark{border-color:var(--acid);color:var(--acid)}.result-overlay h2{color:var(--red);font:900 34px/.95 var(--font-geist-sans), sans-serif;letter-spacing:-.05em;margin:12px 0 10px}.result-overlay.won h2{color:var(--acid)}.result-grid{border:1px solid var(--line);grid-template-columns:repeat(4,1fr);width:100%;margin-bottom:24px;display:grid}.result-grid>div{border-right:1px solid var(--line);padding:12px 5px}.result-grid>div:last-child{border:0}.result-grid span{color:#6f7d77;font:700 7px/1 var(--font-geist-mono), monospace;letter-spacing:.08em;display:block}.result-grid b{color:#e8f2ed;font:750 14px/1 var(--font-geist-mono), monospace;margin-top:7px;display:block}@media (max-width:980px){.top-hud{grid-template-columns:minmax(155px,1fr) 112px 86px auto;gap:8px}.top-hud .run-data.desktop-only{display:none}.tutorial-card{width:min(520px,100vw - 260px)}.controls-strip{gap:9px}}@media (max-width:760px),(pointer:coarse){.top-hud{min-height:65px;padding:max(8px, env(safe-area-inset-top)) max(10px, env(safe-area-inset-right)) 8px max(10px, env(safe-area-inset-left));grid-template-columns:minmax(100px,1fr) 82px 64px auto}.brand-kicker,.brand-lockup small{display:none}.brand-lockup strong{margin:0;font-size:19px}.run-data{padding-left:8px}.run-data>span{font-size:6px}.run-data>strong{font-size:15px}.run-data.compact>strong{font-size:14px}.run-data strong i{display:none}.debug-button{min-width:65px;padding:8px 7px;font-size:7px}.debug-button kbd{display:none}.desktop-only{display:none!important}.tutorial-card{width:min(480px,100vw - 24px);padding:10px 12px 9px;top:76px}.tutorial-card h2{margin:5px 0 3px;font-size:clamp(17px,4vw,23px)}.tutorial-card p{font-size:7px}.tutorial-card small{margin-top:6px;font-size:6px}.game-overlay{width:calc(100vw - 24px);max-height:calc(100dvh - 82px);padding:26px 20px 22px}.game-overlay h1{font-size:clamp(36px,11vw,62px)}.game-overlay>p{font-size:11px}.tuning-panel{width:min(360px,96vw)}}@media (pointer:coarse) and (orientation:landscape){.game-shell[data-status=playing] .top-hud{background:linear-gradient(#040a09b8,#0000)}.game-shell[data-status=playing] .brand-lockup,.game-shell[data-status=playing] .top-hud .run-data{display:none}.game-shell[data-status=playing] .top-hud{min-height:0;padding:max(8px, env(safe-area-inset-top)) max(10px, env(safe-area-inset-right));justify-content:flex-end;display:flex}.tutorial-card{top:max(10px, env(safe-area-inset-top));width:min(52vw,430px);padding-block:8px}.tutorial-card h2{font-size:clamp(16px,4.6vh,23px)}.tutorial-card p{white-space:normal}.tutorial-card small{display:none}.mobile-fire{width:clamp(105px,34vh,146px);height:clamp(105px,34vh,146px)}.touch-aim-label span{bottom:max(10px, env(safe-area-inset-bottom))}.game-overlay{width:min(620px,100vw - 30px);max-height:calc(100dvh - 20px);padding:16px 24px 14px;top:50%}.game-overlay h1{margin:9px 0 6px;font-size:clamp(31px,10vh,50px)}.game-overlay>p{margin-bottom:10px;font-size:9px;line-height:1.35}.recoil-diagram{margin-bottom:11px}.recoil-diagram>div{min-height:38px}.primary-action{min-height:38px;padding:10px 14px}.game-overlay>small{margin-top:7px}.result-mark{width:38px;height:38px;margin-bottom:7px;font-size:26px}.result-overlay h2{margin:7px 0 5px;font-size:27px}.result-grid{margin-bottom:10px}.result-grid>div{padding:8px 4px}}@media (max-width:430px){.top-hud{grid-template-columns:minmax(72px,1fr) 72px 55px}.top-hud .debug-button{position:absolute;top:70px;right:8px}.tutorial-card{width:calc(100vw - 92px);top:74px;transform:translate(calc(-50% - 34px))}.recoil-diagram{gap:5px}.recoil-diagram>div{gap:4px}.recoil-diagram>strong{width:48px;font-size:6px}.recoil-diagram span{font-size:6px}.result-grid{grid-template-columns:1fr 1fr}.result-grid>div:nth-child(2){border-right:0}.result-grid>div:nth-child(-n+2){border-bottom:1px solid var(--line)}}@media (max-height:430px){.game-overlay>small,.intro-overlay .recoil-diagram{display:none}.game-overlay{padding-block:13px}.game-overlay h1{margin:7px 0 5px}.game-overlay>p{margin-bottom:9px}}
