*{margin:0;padding:0;box-sizing:border-box}html,body,#root{width:100%;height:100%;overflow:hidden;background:#000}#game-canvas{display:block;width:100%;height:100%}#hud{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;font-family:Segoe UI,Arial,sans-serif;z-index:10}.crosshair{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:20px;height:20px}.crosshair:before,.crosshair:after{content:"";position:absolute;background:#0f0c}.crosshair:before{top:50%;left:0;width:100%;height:2px;transform:translateY(-50%)}.crosshair:after{left:50%;top:0;width:2px;height:100%;transform:translate(-50%)}.crosshair-dot{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:4px;height:4px;background:#ff0000e6;border-radius:50%}.hud-bottom{position:absolute;bottom:20px;right:20px;display:flex;gap:20px;align-items:flex-end}.hud-stat{background:#0009;border:1px solid rgba(0,255,0,.3);padding:10px 16px;border-radius:4px;text-align:center}.hud-label{font-size:10px;color:#0f09;text-transform:uppercase;letter-spacing:2px;margin-bottom:2px}.hud-value{font-size:28px;font-weight:700;color:#0f0;font-variant-numeric:tabular-nums}.hud-value.health{color:#0f0}.hud-value.health.low{color:red;animation:pulse .5s infinite}.hud-value.ammo{color:#fff}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.hud-top-left{position:absolute;top:20px;left:20px}.score-display{background:#0009;border:1px solid rgba(0,255,0,.3);padding:10px 16px;border-radius:4px}.score-label{font-size:10px;color:#0f09;text-transform:uppercase;letter-spacing:2px}.score-value{font-size:22px;font-weight:700;color:#ff0;font-variant-numeric:tabular-nums}.weapon-name{position:absolute;bottom:80px;right:20px;background:#00000080;padding:6px 12px;border-radius:4px;font-size:12px;color:#fff9;text-transform:uppercase;letter-spacing:1px}.hit-marker{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;opacity:0;transition:opacity .05s}.hit-marker.show{opacity:1;animation:hitFade .3s forwards}@keyframes hitFade{0%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-50%) scale(1.5)}}.hit-marker svg line{stroke:red;stroke-width:2}.damage-indicator{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;opacity:0;transition:opacity .1s}.damage-indicator.show{opacity:1}.damage-vignette{position:absolute;top:0;left:0;width:100%;height:100%;box-shadow:inset 0 0 100px #ff000080;pointer-events:none;opacity:0;transition:opacity .2s}.damage-vignette.show{opacity:1;animation:vignetteFade .5s forwards}@keyframes vignetteFade{0%{opacity:.6}to{opacity:0}}.start-screen{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000d9;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:100;color:#fff;cursor:pointer;pointer-events:all}.start-screen h1{font-size:48px;font-weight:900;color:#0f0;text-shadow:0 0 20px rgba(0,255,0,.5);margin-bottom:10px;letter-spacing:4px}.start-screen h2{font-size:16px;color:#ffffff80;font-weight:400;margin-bottom:40px}.start-screen .controls{text-align:center;line-height:2;color:#ffffffb3;font-size:14px}.start-screen .controls kbd{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);padding:2px 8px;border-radius:3px;font-family:monospace;font-size:13px}.start-screen .click-hint{margin-top:40px;font-size:18px;color:#0f0;animation:blink 1.5s infinite}@keyframes blink{0%,to{opacity:1}50%{opacity:.3}}.death-screen{position:fixed;top:0;left:0;width:100%;height:100%;background:#8b000099;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:100;color:#fff;cursor:pointer;pointer-events:all}.death-screen h1{font-size:64px;font-weight:900;color:red;text-shadow:0 0 30px rgba(255,0,0,.8);margin-bottom:20px}.death-screen p{font-size:20px;color:#fffc}.minimap{position:absolute;top:20px;right:20px;width:160px;height:160px;background:#0009;border:1px solid rgba(0,255,0,.3);border-radius:4px;overflow:hidden}.minimap canvas{width:100%;height:100%}
