:root{--ink:#ebe5d3;--ink-dim:#ebe5d39e;--panel:#0e100dbd;--panel-solid:#131511;--line:#ebe5d329;--amber:#e3a23b;--amber-dim:#e3a23b40;--red:#c9432f;--green:#7fbf5a;--stamina:#d7c35a;--display:"Oswald", "Arial Narrow", sans-serif;--body:"Barlow", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;color:var(--ink);font-family:var(--body);-webkit-user-select:none;user-select:none;background:#0b0c0a;margin:0;overflow:hidden}canvas{outline:none;display:block}button{font-family:var(--display);letter-spacing:.08em;text-transform:uppercase;cursor:pointer}.stage{position:fixed;inset:0}.menu{background:#05070d;position:fixed;inset:0;overflow:auto}.menu-art{pointer-events:none;position:fixed;inset:0;overflow:hidden}.menu-art:after{content:"";background:linear-gradient(90deg,#050709ed 0,#050709e6 300px,#050709cc 430px,#05070999 540px,#0507095c 650px,#05070929 760px,#0507090a 850px,#05070900 920px);position:absolute;inset:0}.menu-art svg{width:100%;height:100%;position:absolute;inset:0}.menu-main{box-sizing:border-box;flex-direction:column;gap:22px;width:min(100%,520px);min-height:100%;padding:64px 48px 40px;display:flex;position:relative}.menu-brand{margin-bottom:18px}.title{font-family:var(--display);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;text-shadow:0 2px 24px #0009;margin:0;font-size:clamp(56px,7vw,92px);font-weight:700;line-height:1}.title span{color:var(--amber);text-shadow:0 0 28px #e3a23b59,0 2px 24px #0009}.menu-actions{flex-wrap:wrap;gap:10px;display:flex}.menu-actions .btn{flex:100%}.menu-account{flex-wrap:wrap;align-items:center}.menu-account small{color:var(--ink-dim);flex:200px}.menu-fold{border-top:1px solid var(--line);padding-top:12px}.menu-fold summary{font-family:var(--display);letter-spacing:.22em;text-transform:uppercase;color:var(--ink-dim);cursor:pointer;font-size:12px;list-style:none}.menu-fold summary::-webkit-details-marker{display:none}.menu-fold summary:before{content:"+";width:16px;color:var(--amber);display:inline-block}.menu-fold[open] summary:before{content:"−"}.menu-fold summary:hover{color:var(--ink)}.menu-fold[open]>:not(summary){margin-top:12px}.dev-links{flex-wrap:wrap;gap:6px;display:flex}.dev-links a{font-family:var(--display);letter-spacing:.1em;text-transform:uppercase;color:var(--ink);border:1px solid var(--line);padding:6px 10px;font-size:12px;text-decoration:none}.dev-links a:hover{border-color:var(--amber);color:var(--amber)}.menu-twinkle{animation:5s ease-in-out infinite alternate menu-twinkle}.menu-flicker{animation:7s step-end infinite menu-flicker}.menu-shimmer{animation:4s ease-in-out infinite alternate menu-shimmer}.menu-shamble{transform-box:fill-box;transform-origin:50% 100%;animation:2s ease-in-out infinite alternate menu-shamble}.menu-rim{fill:#3a4252;opacity:.55}.menu-fog{animation:60s linear infinite alternate menu-fog}.menu-fog-near{animation-duration:40s;animation-direction:alternate-reverse}@keyframes menu-twinkle{0%{opacity:.15}to{opacity:.9}}@keyframes menu-flicker{0%,62%,66%,to{opacity:1}63%,65%{opacity:.25}}@keyframes menu-shimmer{0%{opacity:.7}to{opacity:1}}@keyframes menu-shamble{0%{transform:rotate(-2.5deg)translateY(0)}to{transform:rotate(2.5deg)translateY(-1.5px)}}@keyframes menu-fog{0%{transform:translate(-180px)}to{transform:translate(180px)}}@media (prefers-reduced-motion:reduce){.menu-twinkle,.menu-flicker,.menu-shimmer,.menu-shamble,.menu-fog{animation:none}}.field{flex-direction:column;gap:6px;display:flex}.field label{font-family:var(--display);letter-spacing:.18em;text-transform:uppercase;color:var(--ink-dim);font-size:12px}.field input{border:1px solid var(--line);color:var(--ink);font-size:16px;font-family:var(--body);background:#ffffff0a;outline:none;padding:11px 12px}.field input:focus{border-color:var(--amber)}.btn{background:var(--amber);color:#16120a;border:none;padding:14px 18px;font-size:18px;font-weight:600;transition:transform 80ms,filter .15s}.btn:hover{filter:brightness(1.08)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.ghost{color:var(--ink);border:1px solid var(--line);background:0 0;padding:11px 16px;font-size:15px}.btn.ghost:hover{border-color:var(--amber);color:var(--amber)}.row{gap:10px;display:flex}.row>.field{flex:1}.house-playtest .row{flex-wrap:wrap;margin-top:8px}.house-playtest .btn{flex:175px}.error{color:#ff8a70;font-size:14px}.section-label{font-family:var(--display);letter-spacing:.22em;text-transform:uppercase;color:var(--ink-dim);border-bottom:1px solid var(--line);padding-bottom:6px;font-size:12px}.controls{color:var(--ink-dim);grid-template-columns:auto 1fr;gap:4px 14px;font-size:14px;display:grid}.controls kbd{font-family:var(--display);color:var(--ink);letter-spacing:.05em;font-size:13px}.runs{flex-direction:column;gap:6px;font-size:14px;display:flex}.run{border-left:3px solid var(--red);background:#ffffff08;grid-template-columns:1fr auto;gap:2px 10px;padding:8px 10px;display:grid}.run.extracted{border-left-color:var(--green)}.run small{color:var(--ink-dim)}.run b{font-family:var(--display);font-weight:500}.hub.panel{flex-direction:column;gap:14px;width:100%;min-width:0;max-height:none;padding:20px;display:flex;overflow:visible}.hub-heading{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.hub-heading h2{margin:6px 0 0;font-size:24px}.hub-heading strong{font-family:var(--display);color:var(--amber);font-size:24px}.hub-status{color:var(--amber);margin:0}.hub-squad{border:1px solid var(--line);background:#ffffff09;flex-direction:column;gap:8px;padding:12px;display:flex}.survivor-bench{margin:16px 0 22px}.survivor-intro{color:var(--ink-dim);font-size:13px;line-height:1.5}.survivor-roster{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px;display:grid}.survivor-card{border:1px solid var(--line);color:var(--ink);cursor:pointer;text-align:left;font:inherit;background:#ffffff09;flex-direction:column;align-items:flex-start;gap:5px;padding:12px;display:flex}.survivor-card.selected{border-color:var(--amber);background:#e0a34b17}.survivor-card:disabled{cursor:default;opacity:.65}.survivor-card strong{font:16px var(--display)}.survivor-card>span:not(.survivor-portrait):not(.survivor-dice){color:var(--amber);font-size:13px}.survivor-card small{color:var(--ink-dim);line-height:1.4}.survivor-portrait{border:1px solid var(--line);width:84px;height:84px;display:block;overflow:hidden}.survivor-portrait img{width:300%;max-width:none;display:block;transform:translate(-33.333%)}.survivor-dice{width:84px;height:84px;color:var(--amber);justify-content:center;align-items:center;font-size:64px;display:flex}.survivor-details{border:1px solid var(--line);margin-top:12px;padding:14px}.survivor-detail-heading{flex-wrap:wrap;justify-content:space-between;gap:8px;font-size:13px;display:flex}.survivor-detail-heading span{color:var(--ink-dim)}.survivor-skills{gap:8px;margin:14px 0;display:grid}.survivor-skills>div{grid-template-columns:140px 90px 16px 1fr;align-items:center;gap:8px;font-size:13px;display:grid}.survivor-skills small{color:var(--ink-dim)}.survivor-points{gap:4px;display:flex}.survivor-points i{background:#ffffff1a;width:11px;height:13px}.survivor-points i.filled{background:var(--amber)}.survivor-detail-actions,.survivor-detail-actions form{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.survivor-detail-actions{justify-content:space-between}.survivor-detail-actions input{width:160px;color:var(--ink);background:var(--panel);border:1px solid var(--line);font:inherit;padding:8px}.survivor-detail-actions .btn{padding:8px 10px;font-size:12px}@media (width<=600px){.survivor-skills>div{grid-template-columns:1fr 90px 16px}.survivor-skills small{grid-column:1/-1}}.hub-squad strong{color:var(--amber);letter-spacing:.12em}.hub-squad ul{margin:0;padding-left:22px}.hub-squad .row{flex-wrap:wrap;align-items:center}.hub-squad input{border:1px solid var(--line);background:var(--panel);width:130px;color:var(--ink);font:14px var(--display);letter-spacing:.12em;padding:9px}.hub-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:6px;display:grid}.hub-slot{border:1px solid var(--line);min-height:50px;color:var(--ink);font:13px var(--body);text-align:left;letter-spacing:0;text-transform:none;background:#ffffff09;padding:8px}button.hub-slot:hover,.hub-slot.selected{border-color:var(--amber)}.hub-slot.empty{color:var(--ink-dim);opacity:.5}.hub-slot.gear-slot{border-color:#7fbf5a80}.hub-actions{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.hub-actions strong{flex:100%}.hub-actions .btn,.hub-trade .btn{padding:7px 9px;font-size:12px}.hub-trader{border:1px solid var(--line);max-height:250px;overflow:auto}.hub-trade{border-bottom:1px solid var(--line);grid-template-columns:1fr auto auto;align-items:center;gap:8px;padding:6px 8px;font-size:13px;display:grid}.hub-trade:last-child{border-bottom:0}.hub-last p{color:var(--ink-dim);margin:8px 0 0}.hub-deploy{width:100%}.hud{pointer-events:none;font-family:var(--display);position:fixed;inset:0}.debug-panel{z-index:4;width:148px;color:var(--ink-dim);font-variant-numeric:tabular-nums;text-shadow:0 1px 2px #000;background:#0a0e0cc7;border:1px solid #ebe5d347;border-radius:4px;padding:7px 9px;font:11px/1.4 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;position:absolute;top:16px;right:16px}.debug-panel-title{color:var(--amber);letter-spacing:.08em;margin-bottom:3px}.debug-panel>div:not(.debug-panel-title){justify-content:space-between;gap:10px;display:flex}.debug-panel strong{color:var(--ink);font-weight:500}.fly-key-hint,.fly-status{z-index:4;color:var(--ink);text-shadow:0 1px 3px #000;background:#0e1311b8;border:1px solid #ebe5d359;border-radius:8px;position:absolute;top:134px;right:16px}.fly-key-hint{letter-spacing:.1em;padding:6px 10px;font-size:12px}.fly-status{letter-spacing:.08em;flex-direction:column;gap:3px;max-width:min(420px,72vw);padding:9px 12px;font-size:13px;display:flex}.fly-status strong{color:var(--amber);font-size:15px}.fly-status small{color:var(--ink-dim);font-family:var(--body);letter-spacing:0;font-size:11px}.compass{width:520px;max-width:70vw;height:34px;position:absolute;top:16px;left:50%;overflow:hidden;transform:translate(-50%);-webkit-mask-image:linear-gradient(90deg,#0000,#000 18% 82%,#0000);mask-image:linear-gradient(90deg,#0000,#000 18% 82%,#0000)}.compass-strip{height:100%;position:absolute;top:0;left:50%}.compass-tick{letter-spacing:.08em;color:var(--ink-dim);text-shadow:0 1px 2px #000;font-size:13px;position:absolute;top:4px;transform:translate(-50%)}.compass-tick.major{color:var(--ink);font-size:16px}.compass-tick.minor{background:#ebe5d366;width:1px;height:7px;top:10px}.compass-marker{color:var(--green);text-align:center;text-shadow:0 1px 2px #000;white-space:nowrap;font-size:11px;line-height:1.1;position:absolute;top:2px;transform:translate(-50%)}.compass-marker.called{color:var(--amber);font-weight:700}.compass-marker.downed{color:#ef625b;font-weight:700}.compass-marker.site{color:#c9b45a}.compass-marker.squad{color:#69d9ec}.compass-center{border-left:5px solid #0000;border-right:5px solid #0000;border-bottom:6px solid var(--amber);width:0;height:0;position:absolute;top:26px;left:50%;transform:translate(-50%)}.clock{letter-spacing:.12em;text-shadow:0 1px 3px #000;align-items:center;gap:10px;font-size:15px;display:flex;position:absolute;top:18px;left:22px}.clock .time{letter-spacing:.04em;font-size:26px}.clock .day{color:var(--ink-dim)}.clock .phase{border:1px solid var(--line);color:var(--ink-dim);padding:2px 6px;font-size:11px}.clock .phase.night{color:#9fb0ff;border-color:#9fb0ff66}.clock .phase.dawn,.clock .phase.dusk{color:#f2c48d;border-color:#f2c48d66}.clock .evac{border:1px solid var(--line);color:var(--ink);font-variant-numeric:tabular-nums;padding:3px 7px}.clock .evac.warn{color:var(--red);border-color:var(--red)}.clock .moon{color:#c9d3ff;font-size:11px}.clock .moon.down{opacity:.45}.vitals{flex-direction:column;gap:8px;width:260px;display:flex;position:absolute;bottom:24px;left:22px}.bar{background:#0000008c;border:1px solid #ffffff1f;height:10px;position:relative}.bar>i{transition:width .15s linear;position:absolute;inset:0 auto 0 0}.bar.hp>i{background:linear-gradient(90deg, #8e2a1f, var(--red))}.bar.st>i{background:linear-gradient(90deg, #9c8a36, var(--stamina))}.bar.st.exhausted>i{background:#6a5f35}.bar.threat>i{background:var(--red)}.bar-label{letter-spacing:.18em;color:var(--ink-dim);text-shadow:0 1px 2px #000;justify-content:space-between;margin-bottom:-4px;font-size:12px;display:flex}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{letter-spacing:.14em;background:var(--panel);border:1px solid var(--line);color:var(--ink-dim);padding:2px 7px;font-size:11px}.chip.on{color:var(--amber);border-color:var(--amber-dim)}.chip.warn{color:#ff8a70;border-color:#ff8a7066}.hotbar{gap:6px;display:flex;position:absolute;bottom:22px;left:50%;transform:translate(-50%)}.slot{background:var(--panel);border:1px solid var(--line);letter-spacing:.04em;flex-direction:column;justify-content:flex-end;width:92px;height:58px;padding:6px 7px;font-size:12px;line-height:1.15;display:flex;position:relative}.slot .key{color:var(--ink-dim);font-size:11px;position:absolute;top:3px;left:6px}.slot .qty{color:var(--ink-dim);font-size:11px;position:absolute;top:3px;right:6px}.slot.active{border-color:var(--amber);box-shadow:inset 0 0 0 1px var(--amber), 0 0 18px #e3a23b2e}.slot.empty{opacity:.45}.swatch{vertical-align:1px;width:8px;height:8px;margin-right:5px;display:inline-block}.weapon{text-align:right;text-shadow:0 1px 3px #000;position:absolute;bottom:24px;right:26px}.weapon .name{letter-spacing:.18em;color:var(--ink-dim);text-transform:uppercase;font-size:14px}.weapon .ammo{font-size:44px;line-height:1}.weapon .ammo small{color:var(--ink-dim);font-size:20px}.weapon .ammo.empty{color:var(--red)}.target-reticle,.spread-reticle{--spread-radius:4px;pointer-events:none;width:calc(2 * var(--spread-radius));height:calc(2 * var(--spread-radius));box-sizing:border-box;opacity:0;visibility:hidden;transition:opacity .1s ease-out,visibility 0s linear .1s;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.target-reticle{border:1px solid #ffffffd9;border-radius:50%}.target-reticle[data-armed=true],.spread-reticle[data-armed=true]{opacity:1;visibility:visible;transition-delay:0s}.spread-tick{background:#ffffffd9;width:6px;height:1px;position:absolute;transform:translate(-50%,-50%)}.spread-tick-top{top:0;left:50%}.spread-tick-bottom{top:100%;left:50%}.spread-tick-left{width:1px;height:6px;top:50%;left:0}.spread-tick-right{width:1px;height:6px;top:50%;left:100%}.aim-dot{pointer-events:none;background:#fff;border-radius:50%;width:4px;height:4px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 2px #000000e6}.hitmarker{pointer-events:none;opacity:0;visibility:hidden;width:12px;height:12px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(45deg)}.hit-tick{background:#fff;width:4px;height:1px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 2px #000c}.hit-tick-top{width:1px;height:4px;top:0;left:50%}.hit-tick-bottom{width:1px;height:4px;top:100%;left:50%}.hit-tick-left{top:50%;left:0}.hit-tick-right{top:50%;left:100%}.damage-direction{color:#ff5948;pointer-events:none;filter:drop-shadow(0 0 4px #600);width:120px;height:120px;position:absolute;top:50%;left:50%}.prompt{letter-spacing:.06em;background:var(--panel);border:1px solid var(--line);white-space:nowrap;padding:7px 14px;font-size:16px;position:absolute;bottom:118px;left:50%;transform:translate(-50%)}.downed-overlay{color:#f5eee5;text-align:center;pointer-events:auto;background:#180c0ce0;border:1px solid #ef625b;flex-direction:column;align-items:center;gap:10px;min-width:260px;padding:24px 32px;display:flex;position:absolute;top:43%;left:50%;transform:translate(-50%,-50%)}.downed-overlay strong{color:#ef625b;letter-spacing:.12em;font-size:32px}.downed-overlay button{cursor:pointer;margin-top:8px}.progress{text-align:center;letter-spacing:.16em;text-transform:uppercase;text-shadow:0 1px 3px #000;width:260px;font-size:13px;position:absolute;top:60%;left:50%;transform:translate(-50%)}.progress .bar{height:6px;margin-top:6px}.progress .bar>i{background:var(--amber);transition:none}.toasts{flex-direction:column;align-items:flex-end;gap:6px;display:flex;position:absolute;top:220px;right:24px}.toast{font-family:var(--body);background:var(--panel);border-right:3px solid var(--amber);padding:6px 12px;font-size:14px;animation:5s forwards toast}@keyframes toast{0%{opacity:0;transform:translate(12px)}6%{opacity:1;transform:none}85%{opacity:1}to{opacity:0}}.hurt{opacity:0;background:radial-gradient(#0000 45%,#960a0a8c 100%);transition:opacity .5s;position:absolute;inset:0}.lowhp{background:radial-gradient(#0000 55%,#78000073 100%);animation:1.2s ease-in-out infinite pulse;position:absolute;inset:0}@keyframes pulse{50%{opacity:.45}}.click-hint{background:var(--panel);border:1px solid var(--line);letter-spacing:.12em;text-transform:uppercase;padding:10px 18px;font-size:15px;position:absolute;top:38%;left:50%;transform:translate(-50%)}.touch-controls{z-index:5;pointer-events:none;touch-action:none;-webkit-user-select:none;user-select:none;position:fixed;inset:0}.touch-look{z-index:0;pointer-events:auto;touch-action:none;position:absolute;inset:46px 0 0 45%}.touch-look-hint{color:#ffffff9e;font-family:var(--display);letter-spacing:.14em;text-transform:uppercase;text-shadow:0 1px 3px #000;pointer-events:none;font-size:11px;position:absolute;top:84px;right:25px}.touch-topbar,.touch-actions{z-index:1;gap:5px;display:flex;position:absolute}.touch-fly-actions{z-index:1;right:calc(12px + env(safe-area-inset-right,0px));bottom:calc(20px + env(safe-area-inset-bottom,0px));flex-direction:column;gap:10px;display:flex;position:absolute}.touch-fly-actions .touch-button{min-width:76px;min-height:58px;font-size:16px}.touch-topbar{top:calc(8px + env(safe-area-inset-top,0px));right:calc(10px + env(safe-area-inset-right,0px))}.touch-button{pointer-events:auto;touch-action:none;min-width:44px;min-height:44px;color:var(--ink);font-family:var(--display);letter-spacing:.08em;text-shadow:0 1px 3px #000;-webkit-tap-highlight-color:transparent;background:#0e1311ad;border:1px solid #ebe5d380;border-radius:12px;padding:4px 6px;font-size:12px;font-weight:600}.touch-button:active,.touch-button.selected{border-color:var(--amber);color:#15120e;text-shadow:none;background:#e3a23bbf}.touch-stick{z-index:1;left:calc(18px + env(safe-area-inset-left,0px));bottom:calc(18px + env(safe-area-inset-bottom,0px));pointer-events:auto;touch-action:none;background:#0e13115c;border:2px solid #ebe5d38c;border-radius:50%;width:132px;height:132px;position:absolute;box-shadow:inset 0 0 0 25px #ebe5d306}.touch-stick-thumb{pointer-events:none;background:#e3a23b73;border:2px solid #ebe5d3b3;border-radius:50%;width:54px;height:54px;position:absolute;top:calc(50% - 27px);left:calc(50% - 27px)}.touch-run{z-index:1;left:calc(58px + env(safe-area-inset-left,0px));bottom:calc(166px + env(safe-area-inset-bottom,0px));min-width:58px;position:absolute}.touch-actions{right:calc(12px + env(safe-area-inset-right,0px));bottom:calc(18px + env(safe-area-inset-bottom,0px));grid-template:"aim use reload"44px"crouch fire heal"58px"bar fire next"44px/54px 76px 54px;gap:5px;display:grid}.touch-aim{grid-area:aim}.touch-use{grid-area:use}.touch-reload{grid-area:reload}.touch-crouch{grid-area:crouch}.touch-fire{background:#942c1fc7;border-color:#ffb9a0cc;grid-area:fire;font-size:17px}.touch-heal{grid-area:heal}.touch-bar{grid-area:bar}.touch-next{grid-area:next}.hud.touch-ui .clock{gap:5px;font-size:11px;top:8px;left:12px}.hud.touch-ui .clock .time{font-size:18px}.hud.touch-ui .compass{max-width:40vw;top:5px}.hud.touch-ui .vitals{gap:4px;width:155px;top:54px;bottom:auto;left:12px}.hud.touch-ui .bar{height:7px}.hud.touch-ui .weapon{top:56px;bottom:auto;right:12px}.hud.touch-ui .weapon .ammo{font-size:24px}.hud.touch-ui .hotbar{z-index:6;pointer-events:auto;gap:3px;top:64px;bottom:auto}.hud.touch-ui .slot{cursor:pointer;pointer-events:auto;width:42px;height:42px;padding:3px;font-size:9px}.hud.touch-ui .slot .qty{font-size:9px}.hud.touch-ui .prompt{white-space:normal;text-align:center;max-width:65vw;font-size:12px;bottom:185px}.hud.touch-ui .toasts{max-width:45vw;top:220px;right:10px}.hud.touch-ui .debug-panel{top:calc(116px + env(safe-area-inset-top,0px));width:132px;font-size:10px;right:10px}.hud.touch-ui .fly-status{max-width:min(340px,58vw);top:220px;right:10px}.hud.touch-ui:has(.fly-status) .toasts{top:330px}@media (orientation:portrait){.hud.touch-ui .compass{max-width:42vw}.hud.touch-ui .vitals{width:135px;top:114px}.hud.touch-ui .weapon{top:114px}.hud.touch-ui .hotbar{top:260px}.touch-topbar{top:calc(54px + env(safe-area-inset-top,0px))}.hud.touch-ui .debug-panel{top:calc(170px + env(safe-area-inset-top,0px))}.hud.touch-ui .toasts{top:365px}.touch-look-hint{top:315px}.hud.touch-ui .fly-status{top:calc(260px + env(safe-area-inset-top,0px));max-width:min(300px,76vw)}.hud.touch-ui:has(.fly-status) .toasts{top:400px}}.overlay{-webkit-backdrop-filter:blur(3px);background:#0607068c;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.panel{border:1px solid var(--line);background:#10120ff0;min-width:360px;max-width:min(94vw,980px);max-height:90vh;padding:26px 28px;overflow:auto}.panel h2{font-family:var(--display);letter-spacing:.08em;text-transform:uppercase;margin:0 0 4px;font-size:30px;font-weight:600}.panel .hint{color:var(--ink-dim);margin-bottom:18px;font-size:13px}.inv-grid{grid-template-columns:repeat(auto-fill,minmax(116px,1fr));gap:8px;display:grid}.inv-weapons{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:12px;display:grid}.inv-weapons .inv-slot{color:var(--ink);text-align:left;min-height:96px;padding-top:42px}.inv-weapons .inv-slot:disabled{cursor:default;opacity:.6}.inv-weapons .inv-slot.equipped:after{top:23px;left:8px;right:auto}.inv-slot{border:1px solid var(--line);cursor:pointer;background:#ffffff09;flex-direction:column;justify-content:flex-end;min-height:74px;padding:8px;font-size:13px;line-height:1.2;display:flex;position:relative}.inv-slot:has(.k){padding-top:26px}.inv-slot:hover{border-color:#e3a23b99}.inv-slot.hot{background:#e3a23b0f}.inv-slot.selected{border-color:var(--amber);box-shadow:inset 0 0 0 1px var(--amber)}.inv-slot.safe-slot{border-color:#7fbf5a73}.inv-slot.safe-slot.eligible,.inv-slot.safe-slot.selected{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}.inv-slot.equipped:after{content:"EQUIPPED";font-family:var(--display);letter-spacing:.14em;color:var(--amber);font-size:10px;position:absolute;top:6px;right:7px}.inv-slot .k{font-family:var(--display);color:var(--ink-dim);font-size:11px;position:absolute;top:6px;left:8px}.inv-slot .cat{font-family:var(--display);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-dim);font-size:10px}.inv-actions{flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px;display:flex}.inv-actions .desc{color:var(--ink-dim);flex:1;min-width:200px;font-size:14px}.gear{color:var(--ink-dim);flex-wrap:wrap;gap:14px;margin-bottom:14px;font-size:14px;display:flex}.gear b{color:var(--ink);font-weight:500}.map-wrap{position:relative}.map-panel{width:min(94vw,980px)}.map-header{justify-content:space-between;align-items:center;gap:10px;margin-bottom:6px;display:flex}.map-header h2{font-size:clamp(20px,4vw,30px)}.map-header .btn{flex:none}.map-layout{align-items:flex-start;gap:20px;display:flex}.map-wrap canvas{image-rendering:auto;width:min(70vh,66vw);height:min(70vh,66vw);display:block}.legend{color:var(--ink-dim);flex-direction:column;flex:1;gap:10px;font-size:13px;display:flex}@media (width<=760px){.menu-main{padding:32px 20px}.title{font-size:52px}.panel{min-width:0;padding:18px}.map-layout{flex-direction:column}.map-wrap canvas{width:min(62vh,80vw);height:min(62vh,80vw)}.legend{flex-flow:wrap}}@media (height<=500px) and (pointer:coarse){.menu-main{gap:12px;padding:14px 24px}.menu-brand{margin-bottom:4px}.title{font-size:46px}.map-wrap canvas{width:min(60vh,60vw);height:min(60vh,60vw)}}.center-screen{text-align:center}.center-screen h1{font-family:var(--display);letter-spacing:.08em;text-transform:uppercase;margin:0;font-size:84px;line-height:1}.center-screen h1.dead{color:var(--red)}.center-screen h1.win{color:var(--green)}.center-screen .cause{color:var(--ink-dim);margin:8px 0 24px;font-size:17px}.stats{grid-template-columns:repeat(3,minmax(110px,1fr));gap:10px;max-width:520px;margin:0 auto 26px;display:grid}.stat{border:1px solid var(--line);background:#ffffff0a;padding:10px}.stat b{font-family:var(--display);font-size:28px;font-weight:500;display:block}.stat small{font-family:var(--display);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-dim);font-size:11px}.score{font-family:var(--display);letter-spacing:.2em;color:var(--amber);margin-bottom:20px;font-size:18px}.menu-list{flex-direction:column;gap:10px;min-width:260px;display:flex}@media (width<=820px){.menu-main{width:100%;padding:32px 20px}.menu-art:after{background:linear-gradient(#05070999 0%,#050709db 30%,#050709cc 60%,#05070933 100%)}.hotbar .slot{width:64px}}.survivor-field-profile{border:1px solid var(--line);background:#e3a23b0f;margin-bottom:14px;padding:12px;font-size:13px}.survivor-field-profile strong{color:var(--amber)}.survivor-field-profile>div{flex-wrap:wrap;gap:8px 18px;margin:8px 0;display:flex}.survivor-field-profile small{color:var(--ink-dim)}.diagnostic-entry{z-index:80;color:#ccc;background:#0f1214eb;border:1px solid #454b49;border-radius:6px;flex-wrap:wrap;align-items:center;gap:10px;max-width:540px;padding:8px 12px;font-size:12px;display:flex;position:fixed;bottom:16px;right:16px}.diagnostic-entry p{margin:0;font-size:12px}.diagnostic-backdrop{z-index:200;background:#000c;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.diagnostic-dialog{color:#ddd;background:#161c1b;border:1px solid #56605a;border-radius:8px;width:min(560px,100%);max-height:90vh;padding:24px;overflow:auto}.diagnostic-dialog h2{margin-top:0}.diagnostic-dialog p{font-size:13px;line-height:1.5}.diagnostic-dialog label{margin:16px 0;font-size:13px;display:block}.diagnostic-dialog input,.diagnostic-dialog textarea,.diagnostic-dialog select{box-sizing:border-box;color:#eee;background:#0d1110;border:1px solid #59625d;border-radius:4px;width:100%;margin-top:6px;padding:10px;display:block}.diagnostic-dialog textarea{min-height:100px}.diagnostic-dialog code{overflow-wrap:anywhere}.diagnostic-home-button{z-index:80;position:fixed;bottom:16px;right:16px}
