:root{--ink:#f4f6fa;--panel:#12161eb8;--accent:#e8b44a}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);background:#111;margin:0;font:14px/1.4 system-ui,sans-serif;overflow:hidden}#game{width:100vw;height:100vh;display:block}#crosshair{pointer-events:none;background:#fff;border-radius:50%;width:4px;height:4px;margin:-2px 0 0 -2px;position:fixed;top:50%;left:50%;box-shadow:0 0 0 1px #0009}#speed{text-align:center;white-space:pre;text-shadow:0 1px 2px #000;pointer-events:none;font:600 15px/1.5 ui-monospace,monospace;position:fixed;bottom:28px;left:50%;transform:translate(-50%)}#perf{white-space:pre;text-shadow:0 1px 2px #000;pointer-events:none;font:12px/1.5 ui-monospace,monospace;position:fixed;top:8px;left:10px}#overlay,#loading{cursor:pointer;background:#080a0e8c;place-items:center;display:grid;position:fixed;inset:0}#overlay[hidden]{display:none}#loading{cursor:default;font-size:18px}.card{background:var(--panel);border-radius:12px;max-width:440px;margin:16px;padding:22px 26px}.card h1{margin:0 0 4px;font-size:22px}.card p{opacity:.85;margin:0 0 14px}.card .play{background:var(--accent);color:#1a1406;border-radius:8px;margin-bottom:16px;padding:8px 16px;font-weight:700;display:inline-block}.card dl{grid-template-columns:auto 1fr;gap:4px 14px;margin:0;font-size:13px;display:grid}.card dt{white-space:nowrap;font-weight:600}.card dd{opacity:.85;margin:0}#threat{background:var(--panel);letter-spacing:.06em;pointer-events:none;border-radius:999px;padding:4px 12px;font:700 13px/1.5 ui-monospace,monospace;position:fixed;top:14px;left:50%;transform:translate(-50%)}#threat[hidden]{display:none}#threat[data-awareness=searching]{color:#f2c14e}#threat[data-awareness=hunting]{color:#fff;background:#aa1e28d9}#end{background:#5a080e8c;place-items:center;display:grid;position:fixed;inset:0}#end[data-kind=won]{background:#0a46288c}#end[data-kind=missed]{background:#28283c99}#end[hidden]{display:none}#end .stats{font-size:13px}#round{white-space:pre;color:#ffcf6e;pointer-events:none;background:#0a1428cc;border-radius:8px;padding:8px 12px;font:600 13px/1.6 ui-monospace,monospace;position:fixed;top:48px;left:10px}#round.urgent{color:#ff7a6e}#round[hidden],#toasts[hidden],#prompt[hidden]{display:none}#toasts{text-align:center;white-space:pre;text-shadow:0 1px 3px #000;pointer-events:none;font:600 15px/1.7 system-ui,sans-serif;position:fixed;top:48px;left:50%;transform:translate(-50%)}#prompt{background:var(--panel);pointer-events:none;border-radius:6px;padding:4px 10px;font:600 14px/1.5 system-ui,sans-serif;position:fixed;top:calc(50% + 28px);left:50%;transform:translate(-50%)}.card .levels{margin:14px 0 0;font-size:12px}.card .levels a{color:var(--accent)}.screen-panel{color:#222;background:#f5f3ee;border-radius:10px;width:min(720px,100vw - 32px);max-height:calc(100vh - 32px);font:15px/1.4 system-ui,Hiragino Sans,Noto Sans JP,sans-serif;position:fixed;top:50%;left:50%;overflow:auto;transform:translate(-50%,-50%);box-shadow:0 10px 40px #00000080,0 0 0 10px #3b3f45}.screen-panel[hidden]{display:none}.screen-panel .screen-head{color:#fff;background:#f77321;padding:14px 20px}.screen-panel .title{font-size:22px;font-weight:700}.screen-panel .subtitle{opacity:.92;font-size:13px}.screen-panel .lines{padding:12px 20px 0;font-size:15px}.screen-panel .lines div:nth-child(2){font-size:20px;font-weight:700}.screen-panel .buttons{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;padding:16px 20px;display:grid}.screen-panel[data-screen=pay] .buttons{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.screen-panel .footer{justify-content:flex-end;gap:10px;padding:0 20px 16px;display:flex}.screen-panel button{color:#1b2a4a;font:inherit;cursor:pointer;text-align:left;background:#fff;border:0;border-radius:8px;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 14px 10px 30px;font-weight:700;display:flex;position:relative;box-shadow:0 2px #c9c4b8,inset 0 0 0 2px #1b5fa8}.screen-panel button:hover:not(:disabled){background:#e9f1fb}.screen-panel button:disabled{opacity:.45;cursor:default}.screen-panel button.primary{color:#fff;background:#1b5fa8}.screen-panel button.cancel{color:#b8322a;box-shadow:0 2px #c9c4b8,inset 0 0 0 2px #b8322a}.screen-panel button .key{opacity:.6;font-size:11px;position:absolute;top:12px;left:10px}.screen-panel button .sub{opacity:.75;font-size:12px;font-weight:500}.screen-panel .status{color:#b8322a;padding:0 20px 14px;font-weight:700}.screen-panel.busy .buttons{filter:grayscale(.4)}
