:root{color-scheme:dark}body{margin:0;font-family:system-ui,sans-serif;background:#10131a;color:#e8eaed}#scene{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0}#app{position:relative;z-index:10;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px}.hud{position:fixed;bottom:0;left:0;right:0;padding:12px;display:grid;gap:6px;background:#00000073}.bar{position:relative;height:18px;background:#2a2f3a;border-radius:4px;overflow:hidden}.bar>span{position:absolute;inset:0 auto 0 0;display:block}.bar-hydration>span{background:#4aa3ff}.bar-core>span{background:#ff5a4a}.bar-fatigue>span{background:#c9a227}.bar>label{position:absolute;left:8px;top:1px;font-size:12px;text-shadow:0 1px 2px #000}.stage{text-align:center;font-weight:700}.stage-heat_stroke,.stage-collapsed{color:#ff5a4a}:root{--heat: 0}#app{filter:saturate(calc(1 + var(--heat, 0) * 1.5)) blur(calc(var(--heat, 0) * 1.4px));transition:filter .4s}#heat-overlay{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:50;background:radial-gradient(ellipse at center,transparent 40%,rgba(180,20,10,calc(var(--heat, 0) * .55)) 100%);opacity:calc(.3 + var(--heat, 0) * .7)}:root{--deg-blur: 0px;--deg-shake: 0px;--deg-opacity: 1}.perception{filter:blur(var(--deg-blur, 0px));opacity:var(--deg-opacity, 1)}@media (prefers-reduced-motion: no-preference){.perception{animation:deg-shake .18s infinite linear}}@keyframes deg-shake{0%{transform:translate(calc(var(--deg-shake, 0px) * -1))}50%{transform:translate(var(--deg-shake, 0px))}to{transform:translate(calc(var(--deg-shake, 0px) * -1))}}.result-card{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:#05060ad9;text-align:center;padding:24px}.rc-persona{font-size:18px;opacity:.85}.rc-grade{font-size:40px;font-weight:800}.grade-death .rc-grade,.grade-er .rc-grade{color:#ff5a4a}.grade-safe .rc-grade{color:#4aa3ff}.rc-summary{max-width:30rem;line-height:1.6}.result-card button{padding:10px 18px;border-radius:8px;border:1px solid #3a4150;background:#1a1f2a;color:#e8eaed;cursor:pointer}.rc-debrief{max-width:32rem;line-height:1.7;opacity:.82;font-size:14px;font-style:italic;border-top:1px solid #2a3040;padding-top:10px}#ui{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;background:#05060aeb;font-family:system-ui,sans-serif;color:#e8eaed}.gf-screen{display:flex;flex-direction:column;align-items:center;gap:18px;max-width:480px;width:100%;padding:32px 24px;text-align:center}.gf-title{font-size:28px;font-weight:800;margin:0;color:#fff}.gf-heading{font-size:22px;font-weight:700;margin:0}.gf-subtitle{font-size:14px;opacity:.75;margin:0;line-height:1.5}.gf-btn{padding:12px 24px;border-radius:10px;border:1px solid #3a4150;background:#1a1f2a;color:#e8eaed;font-size:15px;cursor:pointer;transition:background .15s}.gf-btn:hover{background:#252d3d}.gf-btn:disabled{opacity:.4;cursor:not-allowed}.gf-btn-primary{background:#25c;border-color:#36e;font-weight:700}.gf-btn-primary:hover:not(:disabled){background:#2d66e8}.gf-persona-badge{background:#141820;border:1px solid #2a3040;border-radius:14px;padding:20px 28px;display:flex;flex-direction:column;gap:10px;width:100%}.gf-persona-name{font-size:22px;font-weight:700}.gf-persona-constraints{display:flex;flex-wrap:wrap;gap:6px;justify-content:center}.gf-constraint{background:#3a1f0a;border:1px solid #7a3f1a;color:#fa6;border-radius:6px;padding:2px 8px;font-size:12px}.gf-persona-resources{font-size:13px;opacity:.8}.gf-presets{display:flex;flex-direction:column;gap:10px;width:100%}.gf-preset{background:#141820;border:1px solid #2a3040;border-radius:10px;padding:14px 18px;cursor:pointer;text-align:left;transition:border-color .15s,background .15s}.gf-preset:hover:not(.gf-preset-unaffordable){background:#1c2233;border-color:#3a4a80}.gf-preset-selected{border-color:#47f;background:#1a2340}.gf-preset-unaffordable{opacity:.45;cursor:not-allowed}.gf-preset-label{font-size:15px;font-weight:600}.gf-preset-desc{font-size:13px;opacity:.75;margin-top:4px}.gf-preset-afford{font-size:12px;margin-top:6px;color:#6c8}.gf-preset-unaffordable .gf-preset-afford{color:#c55}#gf-setup-actions{display:flex;flex-direction:column;gap:10px;width:100%}#live-intervention-popup{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0000008c;z-index:200}.iv-popup-inner{background:#1a1a2e;border:1px solid #ff6b35;border-radius:12px;padding:1.5rem 2rem;max-width:420px;width:90%;color:#f0e6d3;filter:blur(var(--deg-blur, 0px));box-shadow:0 0 24px #ff6b3559}.iv-popup-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.iv-popup-stage{font-size:.85rem;font-weight:700;color:#ff6b35;text-transform:uppercase;letter-spacing:.08em}.iv-popup-hour{font-size:.85rem;color:#a89880}.iv-popup-prompt{font-size:1.05rem;margin:0 0 1rem;line-height:1.5}.iv-popup-actions{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}.iv-choice-btn{padding:.65rem .75rem;border-radius:8px;border:1px solid #3a3a5c;background:#16213e;color:#e0d5c5;font-size:.9rem;cursor:pointer;transition:background .18s,border-color .18s,opacity .18s}.iv-choice-btn.iv-choice-disabled{opacity:.35;cursor:not-allowed;background:#0d0d1a;border-color:#1e1e3a;filter:blur(1.5px)}.iv-choice-btn.iv-choice-ready{opacity:1;cursor:pointer;filter:none}.iv-choice-btn.iv-choice-ready:hover{background:#ff6b35;border-color:#ff6b35;color:#fff}.iv-choice-btn.iv-choice-ready:active{background:#d9551e}.iv-waiting{margin-top:.85rem;text-align:center;font-size:.8rem;color:#f96;animation:iv-pulse 1.2s ease-in-out infinite}@keyframes iv-pulse{0%,to{opacity:.6}50%{opacity:1}}#live-resource-bar{position:fixed;bottom:1rem;left:50%;transform:translate(-50%);display:flex;gap:1.2rem;background:#0a0a14bf;border:1px solid #2a2a4a;border-radius:24px;padding:.45rem 1.25rem;z-index:100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.iv-res{font-size:.88rem;color:#c8bfaf;font-variant-numeric:tabular-nums}.iv-res.iv-res-low{color:#f53;font-weight:700;animation:iv-pulse .9s ease-in-out infinite}#quest-crosshair{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);width:20px;height:20px;pointer-events:none;z-index:200}#quest-crosshair:before,#quest-crosshair:after{content:"";position:absolute;background:#ffffffd9}#quest-crosshair:before{top:50%;left:0;right:0;height:2px;transform:translateY(-50%)}#quest-crosshair:after{left:50%;top:0;bottom:0;width:2px;transform:translate(-50%)}#quest-hud{position:fixed;top:140px;left:12px;z-index:150;display:flex;flex-direction:column;gap:4px;pointer-events:none}.qh-progress{background:#000000a6;color:#fff;font-size:14px;font-weight:700;padding:6px 10px;border-radius:6px;letter-spacing:.02em}.qh-hint{background:#00000080;color:#fffc;font-size:11px;padding:4px 10px;border-radius:6px;white-space:nowrap}#quest-heat-overlay{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:100;background:radial-gradient(ellipse at center,transparent 35%,rgba(180,20,10,calc(var(--heat3d, 0) * .55)) 100%);opacity:calc(.05 + var(--heat3d, 0) * .85);filter:blur(calc(var(--heat3d, 0) * 1.2px))}@media (prefers-reduced-motion: no-preference){#quest-heat-overlay{animation:heat-shimmer-edge 2.4s ease-in-out infinite}}@keyframes heat-shimmer-edge{0%{transform:scale(1) skew(0);filter:blur(calc(var(--heat3d, 0) * 1px))}30%{transform:scale(calc(1 + var(--heat3d, 0) * .003)) skew(calc(var(--heat3d, 0) * .3deg));filter:blur(calc(var(--heat3d, 0) * 1.4px))}60%{transform:scale(calc(1 + var(--heat3d, 0) * .002)) skew(calc(var(--heat3d, 0) * -.2deg));filter:blur(calc(var(--heat3d, 0) * 1px))}to{transform:scale(1) skew(0);filter:blur(calc(var(--heat3d, 0) * 1px))}}#quest-interact-prompt{position:fixed;bottom:calc(50% - 52px);left:50%;transform:translate(-50%);z-index:200;pointer-events:none;background:#0009;color:#fff;font-size:15px;font-weight:600;padding:6px 16px;border-radius:8px;letter-spacing:.03em;white-space:nowrap;border:1px solid rgba(255,255,255,.18);text-shadow:0 1px 3px rgba(0,0,0,.7)}
