*{box-sizing:border-box}html,body{color:#f1eee5;background:#252e32;width:100%;height:100%;margin:0;font:14px/1.6 system-ui,sans-serif;overflow:hidden}canvas{width:100%;height:100%;display:block}button,select{font:inherit}button{cursor:pointer}button:focus-visible,select:focus-visible,summary:focus-visible{outline-offset:5px;outline:2px solid #dac18e}[hidden]{display:none!important}#loading,#failure{z-index:10;background:#202a2e;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.eyebrow{letter-spacing:.55em;color:#d5d9d6;font-size:13px}progress{accent-color:#c5b08a;width:220px;height:2px}#menu{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(120deg,#111a20e8,#111a20b5);border-left:1px solid #c2c8c54d;width:330px;padding:28px;position:absolute;top:12vh;left:6vw}h1{letter-spacing:-.02em;margin:20px 0 10px;font:400 42px/1.1 Georgia,serif}.subtitle{color:#c8ceca;margin-bottom:34px}button{color:#20292c;text-align:left;background:#d9d7ca;border:0;width:100%;padding:13px 18px}button span{float:right}.controls{color:#bec6c6;margin-top:23px;font-size:12px;line-height:2}details{color:#b9c1c1;margin-top:26px;font-size:11px}summary{cursor:pointer}select{color:#eee;background:#293337;border:1px solid #6c7777;margin:14px 0 0 8px}a{color:#d7c69f}#hud{letter-spacing:.2em;text-shadow:0 1px 4px #0009;color:#ecebe2aa;flex-direction:column;align-items:center;font-size:10px;display:flex;position:absolute;top:25px;left:50%;transform:translate(-50%)}#hud i{border-left:1px solid #ecebe266;height:12px;margin:5px}#hint{color:#ddd9;font-size:11px;position:absolute;bottom:22px;right:24px}#stats{color:#d8e6df;pointer-events:none;background:#10181ce8;margin:0;padding:15px;font-size:12px;position:absolute;top:46px;right:15px}#gameplay-performance{top:max(14px, env(safe-area-inset-top));right:max(15px, env(safe-area-inset-right));color:#e2e5df;font-variant-numeric:tabular-nums;pointer-events:none;background:#10181cba;padding:5px 8px;font:11px/1.4 monospace;position:absolute}#error{overflow-wrap:anywhere;max-width:650px}#failure button{width:auto}@media (width<=600px){#menu{width:90vw;top:8vh;left:5vw}h1{font-size:32px}}#weapon-status{color:#e8dec9;text-shadow:0 1px 4px #000;letter-spacing:.08em;pointer-events:none;font:11px system-ui;position:absolute;bottom:48px;right:24px}#menu{scrollbar-width:thin;max-height:80vh;overflow-y:auto}#aim-dot{pointer-events:none;background:#d51c16;border-radius:50%;width:3px;height:3px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 1px #140000}.encounter-option{margin:12px 0;font-size:12px;display:block}#encounter-status{color:#dfd7c3;text-shadow:0 1px 3px #000;pointer-events:none;font-size:11px;position:absolute;bottom:24px;left:24px}.secondary-action{color:#d7d5cb;background:0 0;border:1px solid #686b66;margin-top:8px}#operator-controls{gap:12px;display:flex;position:fixed;bottom:36px;left:50%;transform:translate(-50%)}#operator-controls[hidden]{display:none}#operator-controls button{width:auto;padding:12px 20px;font-size:13px}#loading{background:radial-gradient(at 75% 25%,#4b585b55,#0000 65%),linear-gradient(155deg,#111c24,#273035 65%,#33342e)}.loading-card{background:#111b2288;border-left:1px solid #b5b7a855;width:min(520px,88vw);padding:36px;box-shadow:0 24px 80px #0004}.loading-location{color:#aeb9bb;margin-bottom:40px}.loading-heading,.loading-meta{justify-content:space-between;align-items:center;gap:20px;display:flex}#load-detail{color:#c8cdca;min-height:3.2em}#loading progress{width:100%;height:5px;margin:20px 0 10px;display:block}.loading-meta{color:#b9b9aa;font-variant-numeric:tabular-nums;font-size:12px}#load-help{color:#a4adad;min-height:3.2em;margin:28px 0 0;font-size:12px}.loading-pulse{background:#d1bd86;border-radius:50%;width:9px;height:9px;animation:1.5s ease-in-out infinite loading-breathe}@keyframes loading-breathe{50%{opacity:.25;transform:scale(.7)}}@media (prefers-reduced-motion:reduce){.loading-pulse{animation:none}}.loading-clock{white-space:pre;font-variant-numeric:tabular-nums;align-items:baseline;display:inline-flex}.loading-clock-digit{width:1ch;height:1em;line-height:1;display:inline-block;overflow:hidden}.loading-clock-wheel{white-space:pre;will-change:transform;line-height:1;display:block}.loading-time-readable{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}#development-panel{z-index:40;color:#ddd;background:#101619ee;width:min(370px,90vw);max-height:70vh;padding:12px;font:12px/1.5 monospace;position:fixed;top:12px;right:12px;overflow:auto}#development-panel label{margin:8px 0;display:block}#development-panel button,#development-panel select{font:inherit;padding:5px}#development-panel pre{white-space:pre-wrap}#mission-status{color:#e5ddc6;text-shadow:0 1px 4px #000;pointer-events:none;max-width:320px;font-size:12px;position:absolute;bottom:56px;left:24px}#mission-status p{margin:5px 0;font-size:11px}#boarding-progress{accent-color:#d7b55e;width:220px;height:5px}#extraction-result{color:#e7d8ac;border-left:2px solid #c6ad6c;margin-bottom:20px;padding-left:16px}#graphics-recovery{z-index:100;padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));background:#182126f5;place-items:center;display:grid;position:fixed;inset:0;overflow:auto}#control-options label{justify-content:space-between;align-items:center;gap:12px;margin:12px 0;display:flex}#control-options select{max-width:160px;min-height:44px;margin:0}#control-options input{width:130px;min-height:44px}#control-options button{margin-top:12px}.touch-help,.rotate-suggestion{display:none}body[data-control-mode=touch] .touch-help{font-size:12px;display:block}body[data-control-mode=touch] .controls{display:none}body[data-control-mode=touch] #world{touch-action:none}body[data-control-mode=touch] #menu{top:max(12px, env(safe-area-inset-top));max-height:calc(100dvh - 24px - env(safe-area-inset-bottom))}body[data-control-mode=touch] #mission-status{left:50%;bottom:max(8px, env(safe-area-inset-bottom));text-align:center;max-width:30vw;font-size:11px;transform:translate(-50%)}body[data-control-mode=touch] #weapon-status{bottom:58px;right:40%}body[data-control-mode=touch] #encounter-status{bottom:80px;left:34%}.touch-controls{--touch-size:var(--touch-requested-size);--touch-inset:min(var(--touch-requested-inset), 4vw, 4dvh);z-index:4;pointer-events:none;-webkit-user-select:none;user-select:none;position:fixed;inset:0}.touch-controls [data-control]{touch-action:none;pointer-events:auto;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}.touch-controls button{width:var(--touch-size);height:var(--touch-size);color:#fff;text-align:center;opacity:var(--touch-opacity);background:#182126b8;border:1px solid #d3d8cd8c;border-radius:12px;padding:4px;font:12px/1.2 system-ui}.touch-controls .touch-held,.touch-controls [aria-pressed=true]{opacity:1;background-color:#918361d9}.touch-look{width:55%;height:100%;position:absolute;top:0;right:0}.touch-look span{color:#ffffff45;pointer-events:none;font-size:12px;position:absolute;top:35%;right:34%}.touch-move{left:calc(var(--touch-inset) + env(safe-area-inset-left));bottom:calc(var(--touch-inset) + env(safe-area-inset-bottom));width:calc(var(--touch-size) * 2.3);height:calc(var(--touch-size) * 2.3);opacity:var(--touch-opacity);background:#18212680;border:1px solid #d3d8cd80;border-radius:50%;place-items:center;display:grid;position:absolute}.touch-move span{transform:translate(var(--stick-x,0px), var(--stick-y,0px));pointer-events:none;background:#a2aaa080;border-radius:50%;place-items:center;width:45%;height:45%;font-size:12px;display:grid}.touch-actions{right:calc(var(--touch-inset) + env(safe-area-inset-right));bottom:calc(var(--touch-inset) + env(safe-area-inset-bottom));grid-template-columns:repeat(3, var(--touch-size));gap:6px;display:grid;position:absolute}.touch-running{left:calc(var(--touch-inset) + env(safe-area-inset-left));bottom:calc(var(--touch-inset) + env(safe-area-inset-bottom) + var(--touch-size) * 2.3 + 12px);gap:6px;display:flex;position:absolute}.touch-controls .touch-pause{left:calc(var(--touch-inset) + env(safe-area-inset-left));top:max(12px, env(safe-area-inset-top));position:absolute}.touch-extra{right:calc(var(--touch-inset) + env(safe-area-inset-right));bottom:calc(var(--touch-inset) + env(safe-area-inset-bottom) + var(--touch-size) * 3 + 24px);gap:6px;display:flex;position:absolute}.touch-controls[data-hand=left] .touch-look{left:0;right:auto}.touch-controls[data-hand=left] .touch-move,.touch-controls[data-hand=left] .touch-running{left:auto;right:calc(var(--touch-inset) + env(safe-area-inset-right))}.touch-controls[data-hand=left] .touch-actions,.touch-controls[data-hand=left] .touch-extra{right:auto;left:calc(var(--touch-inset) + env(safe-area-inset-left))}.touch-controls[data-hand=left] .touch-pause{left:auto;right:calc(var(--touch-inset) + env(safe-area-inset-right))}@media (orientation:landscape){.touch-controls{--touch-size:min(var(--touch-requested-size), max(48px, min(calc((100dvh - max(12px, env(safe-area-inset-top)) - var(--touch-inset) - env(safe-area-inset-bottom) - 24px) / 4.3), calc((100vw - 2 * var(--touch-inset) - env(safe-area-inset-left) - env(safe-area-inset-right) - 42px) / 8))))}.touch-extra{top:max(12px, env(safe-area-inset-top));bottom:auto}}@media (orientation:portrait){.touch-controls{--touch-size:min(var(--touch-requested-size), max(48px, calc((100vw - 2 * var(--touch-inset) - env(safe-area-inset-left) - env(safe-area-inset-right) - 24px) / 5.2)))}body[data-control-mode=touch] .rotate-suggestion{color:#dfca9a;display:block}.touch-extra{grid-template-columns:repeat(3, var(--touch-size));display:grid}.touch-move{width:calc(var(--touch-size) * 1.9);height:calc(var(--touch-size) * 1.9)}.touch-running{bottom:calc(var(--touch-inset) + env(safe-area-inset-bottom) + var(--touch-size) * 1.9 + 12px)}}#loot-layer{pointer-events:none;z-index:25;color:#e6e2d6;font:14px system-ui;position:fixed;inset:0}.loot-marker{letter-spacing:.12em;background:#171b1bdd;border:1px solid #c9c3ad99;padding:4px 7px;font-size:10px;position:absolute;top:0;left:0}#loot-prompt{pointer-events:auto;color:inherit;background:#171b1be8;border:1px solid #b1aa92;padding:9px 20px;position:absolute;top:59%;left:50%;transform:translate(-50%)}#loot-panel{pointer-events:auto;box-sizing:border-box;background:#161b1af5;border:1px solid #797d70;width:min(690px,90vw);padding:24px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 10px 70px #000b}#loot-panel header{justify-content:space-between;align-items:center;gap:20px;display:flex}#loot-panel h2{margin:0;font:22px Georgia}#loot-panel button{color:inherit;cursor:pointer;background:#333c37;border:1px solid #798675;padding:12px}#loot-panel button:disabled{opacity:.5;cursor:default}#loot-panel p,#loot-panel small{color:#bcbcaf}.loot-columns{grid-template-columns:1fr 1fr;gap:18px;margin:20px 0;display:grid}.loot-columns section{border:1px solid #596356;min-height:165px;padding:14px}.loot-columns h3{letter-spacing:.08em;text-transform:uppercase;font-size:12px}.loot-weapon,.loot-owned-weapon{box-sizing:border-box;text-align:left;background:#333c37;width:100%;margin-top:8px;padding:12px;display:block}#loot-inventory{background:#24302799}#loot-layer [hidden]{display:none!important}#loot-panel header h2{white-space:nowrap}#loot-panel header button{flex-shrink:0;width:auto}#loot-prompt{text-shadow:0 1px 3px #000;letter-spacing:.04em;cursor:pointer;background:0 0;border:0;align-items:center;gap:9px;width:max-content;max-width:calc(100vw - 32px);padding:5px 8px;font:12px/1.4 system-ui;display:flex;top:56%}#loot-prompt kbd{background:#18202099;border:1px solid #d7d9c2a0;border-radius:3px;place-items:center;width:23px;height:23px;font:12px system-ui;display:grid}#loot-prompt span{float:none}.loot-marker{filter:drop-shadow(0 1px 2px #000);background:0 0;border:0;width:20px;height:20px;padding:2px}.loot-marker svg{width:100%;height:100%;display:block}#health-kit-status{letter-spacing:.04em;color:#d6d9cf;text-shadow:0 1px 3px #000;font:11px system-ui;position:absolute;bottom:48px;left:25px}body:not([data-control-mode=touch]) #mission-status{bottom:76px}body[data-control-mode=touch] #health-kit-status{bottom:115px;left:50%;transform:translate(-50%)}
