:root{--bg:#0b1220;--panel:#131b2e;--line:#263351;--text:#e8e2d0;--dim:#8a97b8;--accent:#ffd23f;--anomaly:#ff5d5d;--hit:#63e6a3;--sky-top:#1b2a4a;--sky-mid:#6b3f8f;--sky-bottom:#ff9d5c}body{color:var(--text);background:var(--bg);min-height:100vh;margin:0;padding:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.6}main{max-width:48rem;margin:0 auto;padding:1.5rem}header{border-bottom:1px solid var(--line);padding:.75rem 1.5rem}body.in-game{overflow:hidden}body.in-game header{display:none}body.in-game main{max-width:none;margin:0;padding:0}a{color:var(--accent);font-size:.9rem;font-weight:600;text-decoration:none}.visually-hidden{clip:rect(0, 0, 0, 0);width:1px;height:1px;position:absolute;overflow:hidden}.screen{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1.5rem;min-height:60vh;display:flex}.run-button,.restart-button{letter-spacing:.02em;background:var(--panel);color:var(--accent);border:1px solid var(--accent);cursor:pointer;clip-path:polygon(8px 0,100% 0,calc(100% - 8px) 100%,0 100%);border-radius:3px;padding:.9rem 1.8rem;font-family:inherit;font-size:1.1rem;font-weight:700}.run-button:hover,.restart-button:hover{background:#1c2740}.hud{z-index:40;letter-spacing:.05em;text-transform:uppercase;width:100%;color:var(--accent);text-shadow:0 0 10px #ffd23f73;box-sizing:border-box;background:linear-gradient(#0009,#0000);justify-content:space-between;margin:0;padding:1.1rem 1.5rem;font-size:1.1rem;font-weight:700;display:flex;position:absolute;top:0;left:0;right:0}.hud-mistakes{text-align:center;text-shadow:0 0 10px #000000a6;flex:1;font-size:.95rem}.screen-playing,.screen-playing .tile{cursor:none}.screen-playing{width:100vw;height:100vh;display:block;position:fixed;inset:0}.screen-ended{z-index:20;width:100vw;height:100vh;margin:0;position:fixed;inset:0}.scene{width:100%;height:100%;transition:background-color .15s;position:absolute;inset:0;overflow:hidden}.scene-sky{background:radial-gradient(1px 1px at 12% 14%, #fff, transparent), radial-gradient(1px 1px at 26% 8%, #fff, transparent), radial-gradient(1.5px 1.5px at 41% 18%, #fff, transparent), radial-gradient(1px 1px at 58% 6%, #fff, transparent), radial-gradient(1px 1px at 73% 15%, #fff, transparent), radial-gradient(1.5px 1.5px at 88% 10%, #fff, transparent), radial-gradient(1px 1px at 95% 22%, #fff, transparent), radial-gradient(ellipse 40% 30% at 78% 12%, #ffc8828c, transparent 70%), linear-gradient(to bottom, var(--sky-top) 0%, var(--sky-mid) 42%, var(--sky-bottom) 78%, #2a1a12 100%);background-repeat:no-repeat;position:absolute;inset:0}.scene-skyline{position:absolute;bottom:8%;left:0;right:0}.scene-skyline-far{opacity:.55;clip-path:polygon(0 100%,0 55%,6% 55%,6% 35%,14% 35%,14% 50%,22% 50%,22% 25%,30% 25%,30% 45%,40% 45%,40% 15%,50% 15%,50% 40%,60% 40%,60% 30%,70% 30%,70% 50%,80% 50%,80% 20%,90% 20%,90% 45%,100% 45%,100% 100%);background:#2a2044;height:42%;bottom:16%}.scene-skyline-near{opacity:.85;clip-path:polygon(0 100%,0 60%,8% 60%,8% 35%,16% 35%,16% 55%,26% 55%,26% 25%,36% 25%,36% 50%,46% 50%,46% 30%,58% 30%,58% 58%,68% 58%,68% 20%,78% 20%,78% 45%,90% 45%,90% 32%,100% 32%,100% 100%);background:#150f24;height:34%}.scene-rooftop{background:linear-gradient(#0c0a12,#000);height:9%;position:absolute;inset:auto 0 0}.scene-people{position:absolute;inset:0}.tile{--tile-w:clamp(44px, 5.5vw, 88px);--tile-h:clamp(70px, 8.8vw, 140px);width:var(--tile-w);height:var(--tile-h);margin:calc(var(--tile-h) * -1) 0 0 calc(var(--tile-w) * -.5);background:0 0;border:none;padding:0;font-family:inherit;display:flex;position:absolute;overflow:visible}.tile-visual{transform:scale(var(--depth-scale,1));transform-origin:bottom;filter:drop-shadow(0 3px 3px #0006);flex-direction:column;align-items:center;gap:.15rem;display:flex}.person-figure{width:calc(var(--tile-w) * .727);height:calc(var(--tile-h) * .729)}.tile-name{letter-spacing:.02em;color:#fff;white-space:nowrap;background:#0000008c;border-radius:2px;padding:.05rem .3rem;font-size:clamp(.5rem,.85vw,.75rem);font-weight:700}.tile-anomaly .person-figure{animation:2.6s ease-in-out infinite flicker}@keyframes flicker{0%,to{opacity:1}50%{opacity:.86}}.tile-hit .tile-visual{animation:.3s ease-out forwards shatter}.tile-miss .person-figure{outline:2px solid var(--anomaly);outline-offset:2px}.tile-expired .tile-visual{opacity:.4;filter:grayscale()}@keyframes shatter{0%{transform:scale(1)}60%{transform:scale(1.12)}to{opacity:.4;transform:scale(.85)}}.bullet-decal{pointer-events:none;background:radial-gradient(circle,#000 0% 40%,#0000 70%);border-radius:50%;width:8px;height:8px;margin:-4px 0 0 -4px;position:absolute;top:30%;left:50%;box-shadow:0 0 4px 2px #0009}.flash-hit{background-color:#63e6a32e}.flash-miss{background-color:#ff5d5d24}.severity-low.flash-hit,.severity-low.flash-miss{box-shadow:inset 0 0 0 4px #78be788c}.severity-moderate.flash-hit,.severity-moderate.flash-miss{box-shadow:inset 0 0 0 4px #ffbe50a6}.severity-high.flash-hit,.severity-high.flash-miss{box-shadow:inset 0 0 0 4px #ff4d4de6}.scope-vignette{z-index:30;pointer-events:none;background:radial-gradient(#0000 46%,#00000059 66%,#000000f0 100%);position:absolute;inset:0}.scope-vignette:before{content:"";border:1px solid #ffd23f2e;border-radius:50%;position:absolute;inset:6%}.scope-vignette:after{content:"";background:repeating-linear-gradient(90deg,#ffd23f59 0 2px,#0000 2px 5%);height:1px;position:absolute;top:50%;left:3%;right:3%}.reticle{pointer-events:none;z-index:50;width:0;height:0;position:fixed;top:0;left:0;transform:translate(-50%,-50%)}.reticle-inner{animation:2.8s ease-in-out infinite breathe}.reticle-inner.kick{animation:none;transform:scale(.85)}.reticle-svg{width:40px;height:40px;overflow:visible}.reticle-svg line{stroke:var(--accent);stroke-width:1.5px}.reticle-dot{fill:var(--accent)}.timer-ring-bg{fill:none;stroke:#ffffff26;stroke-width:2px}.timer-ring-fg{fill:none;stroke:var(--accent);stroke-width:2px;transform-origin:20px 20px;transform:rotate(-90deg)}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}#play-area.recoil{transform:translate(2px,1px)}.muzzle-flash{pointer-events:none;z-index:60;background:radial-gradient(circle,#fffffff2 0%,#ffd278b3 35%,#0000 70%);border-radius:50%;width:60px;height:60px;margin:-30px 0 0 -30px;animation:.22s ease-out forwards muzzle;position:fixed}@keyframes muzzle{0%{opacity:1;transform:scale(.4)}to{opacity:0;transform:scale(1.6)}}.screen-ended{gap:.75rem}.ending-message{font-size:1.4rem}.ending-score{color:var(--dim)}.ending-high .ending-message{color:var(--anomaly)}.nuke-aftermath,.nuke-static{background:radial-gradient(#1a0000 0%,#000 100%);padding:2rem}.nuke-aftermath{animation:.6s ease-in fade-in}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.crash-shake{animation:.6s ease-in-out shake}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-6px,3px)}40%{transform:translate(6px,-3px)}60%{transform:translate(-4px,2px)}80%{transform:translate(4px,-2px)}}.char-fall{animation:.9s ease-in forwards char-fall;animation-delay:var(--char-delay,0s)}@keyframes char-fall{0%{filter:none;opacity:1;transform:translateY(0)rotate(0)}40%{filter:sepia()saturate(3)hue-rotate(-30deg)brightness(.6)}to{filter:brightness(.1);opacity:0;transform:translateY(30px)rotate(8deg)}}.nuke-overlay{z-index:100;pointer-events:none;position:fixed;inset:0;overflow:hidden}.nuke-flash{background:#fff6d0;animation:.4s ease-out forwards nuke-flash;position:absolute;inset:0}@keyframes nuke-flash{0%{opacity:1}to{opacity:0}}.nuke-cloud{filter:blur(18px);opacity:0;border-radius:50%;animation:1.6s ease-out forwards nuke-rise;position:absolute;bottom:-20%;left:50%}.nuke-cloud-1{background:radial-gradient(circle,#ffae42,#7a2b00);width:220px;height:220px;margin-left:-110px;animation-delay:.2s}.nuke-cloud-2{background:radial-gradient(circle,#ffdca0,#4a1a00);width:300px;height:300px;margin-left:-150px;animation-delay:.45s}.nuke-cloud-3{background:radial-gradient(circle,#d9d9d9,#333);width:160px;height:420px;margin-left:-80px;animation-delay:.1s;bottom:-30%}@keyframes nuke-rise{0%{opacity:0;transform:translateY(0)scale(.6)}30%{opacity:.9}to{opacity:.85;transform:translateY(-260px)scale(1.15)}}.nuke-vignette{opacity:0;background:radial-gradient(#0000 40%,#7800008c 100%);animation:2s ease-in forwards nuke-vignette;position:absolute;inset:0}@keyframes nuke-vignette{0%,40%{opacity:0}to{opacity:1}}.crash-shake-hard{animation:2s ease-in-out shake-hard}@keyframes shake-hard{0%,to{transform:translate(0)}10%{transform:translate(-10px,6px)}20%{transform:translate(10px,-6px)}30%{transform:translate(-14px,8px)}40%{transform:translate(14px,-8px)}50%{transform:translate(-10px,5px)}60%{transform:translate(10px,-5px)}70%{transform:translate(-6px,3px)}80%{transform:translate(6px,-3px)}90%{transform:translate(-3px,2px)}}@media (prefers-reduced-motion:reduce){.reticle-inner{animation:none}.tile-anomaly .person-figure{outline:1px dashed var(--dim);animation:none}.tile-hit .tile-visual,.char-fall,.crash-shake,.crash-shake-hard{animation:none}.nuke-flash,.nuke-cloud,.nuke-vignette{animation:none;display:none}.nuke-aftermath{animation:none}}
