:root{--ink:#e9e6dc;--dim:#9c988c;--panel:#0c0d0eb8;--line:#ffffff1f;--ok:#3ddc84;--warn:#ffb300;--bad:#ff3b30;--breach:#f0a;--yellow:#e6c229}*{box-sizing:border-box}html,body{height:100%;color:var(--ink);background:#060607;margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;overflow:hidden}#game{width:100%;height:100%;display:block;position:fixed;inset:0}#hud{pointer-events:none;-webkit-user-select:none;user-select:none;position:fixed;inset:0}body[data-state=title] #hud{display:none}.panel{background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);border-radius:6px}#vignette{opacity:0;background:radial-gradient(#0000 45%,#c800008c 100%);transition:opacity .25s;position:absolute;inset:0}body[data-stage=breach] #vignette{background:radial-gradient(#0000 40%,#ff00aa80 100%)}#crosshair{background:#ffffffb3;border-radius:50%;width:6px;height:6px;margin:-3px 0 0 -3px;position:absolute;top:50%;left:50%}#crosshair.watching{border:2px solid var(--ok);background:0 0;width:22px;height:22px;margin:-11px 0 0 -11px}#order{width:360px;padding:12px 14px;position:absolute;top:16px;left:16px}.order-head{letter-spacing:.18em;color:var(--yellow);font:700 11px/1 ui-monospace,monospace}.order-name{letter-spacing:.06em;margin:4px 0 8px;font:800 20px/1.2 ui-sans-serif,system-ui}.rule{border-top:1px solid var(--line);padding:6px 0 6px 26px;font-size:14px;position:relative}.rule>span{background:var(--yellow);color:#111;text-align:center;border-radius:50%;width:18px;height:18px;font:800 12px/18px system-ui;position:absolute;top:6px;left:0}.chip{border-radius:3px;margin-top:4px;padding:2px 8px;font:700 12px/1.5 ui-monospace,monospace;display:inline-block}.chip.ok{color:var(--ok);background:#3ddc842e}.chip.warn{color:var(--warn);background:#ffb30033}.chip.bad{background:var(--bad);color:#fff;animation:.5s steps(2,end) infinite blink}@keyframes blink{50%{opacity:.55}}#meter{text-align:center;width:min(440px,40vw);position:absolute;top:16px;left:50%;transform:translate(-50%)}#meter-label{letter-spacing:.16em;text-shadow:0 1px 2px #000;margin-bottom:6px;font:700 12px/1 ui-monospace,monospace}#meter-bar{border:1px solid var(--line);background:#0009;border-radius:6px;height:12px;position:relative;overflow:hidden}#meter-bar i{background:#ffffff59;width:1px;position:absolute;top:0;bottom:0}#meter-fill{background:var(--ok);width:0;height:100%;transition:width .1s linear,background .3s}body[data-stage=agitated] #meter-fill{background:var(--warn)}body[data-stage=incident] #meter-fill{background:var(--bad)}body[data-stage=breach] #meter-fill{background:var(--breach)}body[data-stage=incident] #meter-label,body[data-stage=breach] #meter-label{color:var(--bad)}#breach-banner{background:var(--breach);color:#fff;letter-spacing:.08em;border-radius:4px;margin-top:8px;padding:6px 10px;font:800 13px/1.2 ui-monospace,monospace;animation:.8s steps(2,end) infinite blink;display:none}#status{width:260px;padding:10px 12px;font-size:13px;position:absolute;top:16px;right:16px}#status div{justify-content:space-between;padding:2px 0;display:flex}#status label{color:var(--dim)}#clock.late{color:var(--bad)}.v-green{color:var(--ok)}.v-red{color:var(--bad)}.v-amber{color:var(--warn)}.v-blue{color:#40c4ff}#crew{width:260px;padding:8px 12px;font-size:13px;position:absolute;top:190px;right:16px}.crew{padding:4px 0}.crew+.crew{border-top:1px solid var(--line)}.crew span{color:var(--dim);font-size:12px;display:block}.crew i{color:#40c4ff;font-size:11px}#prompt{text-align:center;text-shadow:0 1px 3px #000,0 0 8px #000;font:600 15px/1.6 system-ui;position:absolute;top:calc(50% + 40px);left:50%;transform:translate(-50%)}#feed{width:min(520px,45vw);font-size:14px;position:absolute;bottom:44px;left:16px}.msg{border-left:3px solid var(--dim);background:#0000008c;border-radius:2px;margin-top:3px;padding:3px 8px}.msg.warn{border-color:var(--warn)}.msg.bad{border-color:var(--bad);color:#ffb4ae}.msg.good{border-color:var(--ok)}.msg.bot{border-color:#40c4ff}#minimap{width:300px;image-rendering:pixelated;border:1px solid var(--line);opacity:.92;border-radius:4px;position:absolute;bottom:44px;right:16px}#keys{text-align:center;color:var(--dim);text-shadow:0 1px 2px #000;font-size:12px;position:absolute;bottom:12px;left:0;right:0}.overlay{background:#040405d1;justify-content:center;align-items:flex-start;padding:16px;display:none;position:fixed;inset:0;overflow:auto}.card{border:1px solid var(--line);background:#121314;border-radius:8px;width:min(860px,100%);margin:auto;padding:28px 32px;box-shadow:0 20px 60px #0009}.card.small{width:min(460px,100%)}h1{letter-spacing:.12em;color:var(--yellow);margin:0;font:900 52px/1 ui-sans-serif,system-ui}h2{letter-spacing:.08em;margin:6px 0 14px}h2.good{color:var(--ok)}h2.bad{color:var(--bad)}h3{color:var(--yellow);margin:0 0 4px;font-size:14px}.tag{color:var(--dim);margin:8px 0 18px}.order-card{background:#e6c2290d;border:1px dashed #e6c22980;border-radius:6px;padding:14px 16px}.order-card ol{margin:10px 0;padding-left:22px;font-size:18px;font-weight:600}.route-note{color:var(--dim);font-size:14px}.route-note b{color:var(--ink)}.how{color:var(--dim);grid-template-columns:repeat(3,1fr);gap:16px;margin:18px 0;font-size:13px;display:grid}.how p{margin:0;line-height:1.45}.how b{color:var(--ink)}.controls{color:var(--dim);flex-wrap:wrap;gap:6px 14px;font-size:13px;display:flex}kbd{min-width:20px;color:var(--ink);text-align:center;border:1px solid #555;border-bottom-width:2px;border-radius:3px;padding:1px 6px;font:600 12px/1.4 ui-monospace,monospace;display:inline-block}.start-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:22px;display:flex}.crew-pick{color:var(--dim);align-items:center;gap:6px;font-size:14px;display:flex}button{color:var(--ink);cursor:pointer;background:#1d1f21;border:1px solid #444;border-radius:5px;padding:8px 14px;font:600 14px system-ui}button:hover{border-color:#777}button.active{border-color:var(--yellow);color:var(--yellow)}button.primary{background:var(--yellow);border-color:var(--yellow);color:#111;letter-spacing:.06em;padding:10px 22px;font-weight:800}#report-body table{border-collapse:collapse;width:100%;font-size:14px}#report-body td{border-bottom:1px solid var(--line);padding:5px 0}#report-body td:last-child{text-align:right}#report-body .good{color:var(--ok)}#report-body .bad{color:var(--bad)}.grade{color:var(--yellow);font:900 26px system-ui}@media (max-width:900px){.how{grid-template-columns:1fr}#order{width:280px}#meter{top:auto;bottom:70px}}#touch,.controls-touch,.touch-only,body[data-touch="1"] .controls{display:none}body[data-touch="1"] .controls-touch{color:var(--dim);flex-wrap:wrap;gap:6px 16px;font-size:13px;display:flex}body[data-touch="1"] .controls-touch b,body[data-touch="1"] .touch-only{color:var(--ink)}body[data-touch="1"] .touch-only{display:inline}body[data-touch="1"][data-state=playing] #touch{display:block}body[data-touch="1"]{touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}#touch-zone{touch-action:none;position:fixed;inset:0}#joy{left:calc(110px + env(safe-area-inset-left));top:calc(100% - 110px - env(safe-area-inset-bottom));pointer-events:none;opacity:.55;background:#00000038;border:2px solid #ffffff38;border-radius:50%;width:112px;height:112px;margin:-56px 0 0 -56px;position:fixed}#joy.active{opacity:1}#joy-knob{background:#ffffff59;border:2px solid #fff9;border-radius:50%;width:52px;height:52px;margin:-26px 0 0 -26px;position:absolute;top:50%;left:50%}#joy.sprint #joy-knob{border-color:var(--yellow);background:#e6c229b3}.tbtn{pointer-events:auto;touch-action:none;width:56px;height:56px;color:var(--ink);letter-spacing:.04em;-webkit-user-select:none;user-select:none;background:#0a0a0c8c;border:2px solid #ffffff4d;border-radius:50%;padding:0;font:800 12px/1 system-ui}.tbtn.down{border-color:var(--yellow);color:#111;background:#e6c2298c}.tbtn.big{width:80px;height:80px;font-size:16px}body[data-can-use="1"] #t-use:not(.down){border-color:var(--yellow);color:var(--yellow)}#t-actions{right:calc(16px + env(safe-area-inset-right));bottom:calc(16px + env(safe-area-inset-bottom));grid-template-columns:repeat(3,auto);grid-template-areas:"place faster ping""drop slower use";place-items:end center;gap:8px;display:grid;position:fixed}#t-faster{grid-area:faster}#t-slower{grid-area:slower}#t-place{grid-area:place}#t-drop{grid-area:drop}#t-ping{grid-area:ping}#t-use{grid-area:use}.ctx-agv,.ctx-camera,.ctx-held{visibility:hidden}body[data-near-agv="1"] .ctx-agv,body[data-held=camera] .ctx-camera,body[data-held=camera] .ctx-held,body[data-held=key] .ctx-held{visibility:visible}#t-pause{left:50%;top:calc(52px + env(safe-area-inset-top));width:40px;height:40px;margin-left:-20px;font-size:12px;position:fixed}body[data-touch="1"] #keys,body[data-touch="1"] #crew{display:none}body[data-touch="1"] #order{left:calc(8px + env(safe-area-inset-left));top:calc(8px + env(safe-area-inset-top));width:210px;padding:6px 8px}body[data-touch="1"] .order-name{margin:2px 0 4px;font-size:13px}body[data-touch="1"] .rule{padding:3px 0 3px 20px;font-size:11px}body[data-touch="1"] .rule>span{width:14px;height:14px;font-size:10px;line-height:14px;top:4px}body[data-touch="1"] .chip{margin-top:2px;padding:1px 5px;font-size:10px}body[data-touch="1"] #meter{top:calc(8px + env(safe-area-inset-top));width:min(260px,30vw);bottom:auto}body[data-touch="1"] #meter-label{font-size:10px}body[data-touch="1"] #breach-banner{padding:4px 6px;font-size:10px}body[data-touch="1"] #status{right:calc(8px + env(safe-area-inset-right));top:calc(8px + env(safe-area-inset-top));width:170px;padding:4px 8px;font-size:11px}body[data-touch="1"] #status div:nth-child(n+4){display:none}body[data-touch="1"] #minimap{right:calc(8px + env(safe-area-inset-right));top:calc(78px + env(safe-area-inset-top));width:136px;bottom:auto}body[data-touch="1"] #feed{left:calc(8px + env(safe-area-inset-left));top:calc(140px + env(safe-area-inset-top));width:min(300px,38vw);font-size:11px;bottom:auto}body[data-touch="1"] #feed .msg:nth-last-child(n+3){display:none}body[data-touch="1"] #prompt{font-size:13px;top:calc(50% + 28px)}body[data-touch="1"] .card{padding:18px}body[data-touch="1"] h1{font-size:34px}body[data-touch="1"] .order-card ol{font-size:15px}body[data-touch="1"] .start-row{border-top:1px solid var(--line);background:#121314;margin:16px -18px -18px;padding:12px 18px;position:sticky;bottom:-18px}body[data-touch="1"] .how{gap:8px;margin:12px 0}
