:root{--ink:#0b0d10;--panel:#14181d;--line:#2a3038;--bone:#f2efe9;--dim:#9aa3ad;--accent:#ff4b2b;color:var(--bone);background:var(--ink);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}html,body{background:var(--ink);height:100%;margin:0;overflow:hidden}#game{width:100vw;height:100vh;display:block;position:fixed;inset:0}#hud{pointer-events:none;-webkit-user-select:none;user-select:none;font-variant-numeric:tabular-nums;position:fixed;inset:0}.menu{background:#0b0d10c7;place-items:center;padding:16px;display:grid;position:fixed;inset:0;overflow-y:auto}.menu-panel{background:var(--panel);border:1px solid var(--line);width:min(760px,100%);padding:32px}.wordmark{max-width:100%;height:auto;color:var(--bone);display:block}.tagline{color:var(--dim);margin:14px 0 24px}.play{font:inherit;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);background:var(--bone);cursor:pointer;border:0;padding:14px 54px;font-size:1.15rem;font-weight:700}.play:hover:not(:disabled){background:var(--accent);color:#fff}.play:focus-visible,select:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.play:disabled{opacity:.5;cursor:progress}.error{color:#ff8f7a;border-left:3px solid var(--accent);padding-left:12px}.columns{grid-template-columns:1.25fr 1fr;gap:32px;margin-top:30px;display:grid}h2{letter-spacing:.16em;text-transform:uppercase;color:var(--dim);margin:0 0 12px;font-size:.78rem;font-weight:600}label{grid-template-columns:118px 1fr 52px;align-items:center;gap:10px;margin-bottom:10px;font-size:.92rem;display:grid}label.check{grid-template-columns:auto 1fr}output{text-align:right;color:var(--dim);font-variant-numeric:tabular-nums;font-size:.85rem}input[type=range]{width:100%;accent-color:var(--accent)}select{font:inherit;color:var(--bone);background:var(--ink);border:1px solid var(--line);width:100%;padding:5px 8px}dl{margin:0;font-size:.9rem}dl div{border-bottom:1px solid var(--line);justify-content:space-between;gap:12px;padding:4px 0;display:flex}dt{color:var(--dim)}dd{text-align:right;margin:0}.foot{color:var(--dim);margin:24px 0 0;font-size:.8rem}@media (max-width:640px){.menu-panel{padding:20px}.columns{grid-template-columns:1fr;gap:22px}}.hud-cross{width:240px;height:240px;margin:-120px 0 0 -120px;position:absolute;top:50%;left:50%}.hud-marker{opacity:0;background:linear-gradient(var(--bone), var(--bone)) center / 2px 100% no-repeat, linear-gradient(var(--bone), var(--bone)) center / 100% 2px no-repeat;width:26px;height:26px;margin:-13px 0 0 -13px;position:absolute;top:50%;left:50%;transform:rotate(45deg);-webkit-mask:radial-gradient(circle,#0000 5px,#000 6px);mask:radial-gradient(circle,#0000 5px,#000 6px)}.hud-marker.on{opacity:1}.hud-marker.head{filter:drop-shadow(0 0 0 var(--accent)) saturate(1);background:linear-gradient(var(--accent), var(--accent)) center / 2px 100% no-repeat, linear-gradient(var(--accent), var(--accent)) center / 100% 2px no-repeat}.hud-marker.kill{background:linear-gradient(var(--accent), var(--accent)) center / 3px 100% no-repeat, linear-gradient(var(--accent), var(--accent)) center / 100% 3px no-repeat;width:36px;height:36px;margin:-18px 0 0 -18px}.hud-br,.hud-bl{text-shadow:0 1px 3px #000c;position:absolute;bottom:28px}.hud-br{text-align:right;right:36px}.hud-bl{left:36px}.hud-ammo{font-size:2.6rem;font-weight:700;line-height:1}.hud-reserve{color:#d3d0ca;font-size:1.1rem;font-weight:500}.hud-weapon{letter-spacing:.16em;margin-top:4px;font-size:.8rem}.hud-status{letter-spacing:.14em;color:var(--accent);min-height:1.2em;font-size:.8rem;font-weight:700}.hud-health{font-size:1.5rem;font-weight:700}.hud-speed{color:#d3d0ca;font-size:.85rem}.perf{color:#d9f2d0;pointer-events:none;z-index:5;white-space:pre;background:#0000009e;margin:0;padding:8px 10px;font:12px/1.45 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;position:fixed;top:8px;left:8px}.bench-result{background:var(--panel);border:1px solid var(--line);z-index:6;width:min(420px,100vw - 32px);max-height:calc(100vh - 32px);padding:16px;position:fixed;top:16px;right:16px;overflow:auto}.bench-result h2{color:var(--bone)}.bench-result pre{white-space:pre-wrap;font:12px/1.4 ui-monospace,Menlo,Consolas,monospace}.bench-result a{color:var(--accent)}
