:root{--bg:#07090d;--bg-deep:#04060a;--surface-1:#0d11179e;--surface-2:#0f151ec7;--surface-3:#141b26eb;--inset:#ffffff0a;--line:#788caa24;--line-strong:#788caa42;--line-accent:#5cb6ff73;--text:#e6edf3;--text-dim:#b3bcc8;--text-muted:#7a8593;--text-faint:#6b7480;--accent:#5cb6ff;--accent-soft:#5cb6ff29;--accent-glow:#5cb6ff73;--success:#4ed694;--warning:#f5b53b;--danger:#ff5d5d;--danger-glow:#ff5d5d66;--blur-strong:blur(18px) saturate(1.4);--blur-soft:blur(10px) saturate(1.2);--shadow-1:0 1px 0 #ffffff0a inset, 0 8px 24px #00000073;--shadow-2:0 1px 0 #ffffff0d inset, 0 12px 36px #0000008c;--ring:0 0 0 1px var(--line);--ring-strong:0 0 0 1px var(--line-strong);--r-1:4px;--r-2:8px;--r-3:12px;--r-4:16px;--sidebar-w:320px;--hud-h:52px;--gutter:16px;--mono:"JetBrains Mono", "SF Mono", "Cascadia Code", ui-monospace, monospace;--sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--ease:cubic-bezier(.22, 1, .36, 1);--t-fast:.12s;--t-mid:.22s;--t-slow:.36s}::selection{background:var(--accent-soft);color:var(--text)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-size:13px;line-height:1.4;overflow:hidden}button{font-family:inherit}#scene-container{z-index:0;position:fixed;inset:0}#scene-container:after{content:"";pointer-events:none;background:radial-gradient(120% 80% at 50% 0,#0000 60%,#00000059 100%),radial-gradient(120% 80% at 50% 100%,#0000 60%,#00000059 100%);position:absolute;inset:0}#hud-top{height:var(--hud-h);z-index:200;border-bottom:1px solid var(--line);-webkit-backdrop-filter:var(--blur-strong);background:linear-gradient(#07090de6 0%,#07090db8 100%);grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;padding:0 16px;display:grid;position:fixed;inset:0 0 auto;box-shadow:inset 0 1px #ffffff08,0 6px 24px #00000059}.hud-zone{align-items:center;gap:14px;min-width:0;display:flex}.hud-zone-left{justify-self:start}.hud-zone-center{justify-self:center}.hud-zone-right{justify-self:end;gap:10px}#hud-logo{font-family:var(--sans);letter-spacing:.18em;color:var(--text);white-space:nowrap;-webkit-user-select:none;user-select:none;font-size:13px;font-weight:800}#hud-logo span{color:var(--accent);margin-left:2px}#hud-conn{box-shadow:var(--ring);font-family:var(--mono);letter-spacing:.06em;color:var(--text-muted);background:#ffffff06;border-radius:999px;align-items:center;gap:8px;padding:4px 10px;font-size:10px;display:inline-flex}.conn-dot{background:var(--text-faint);width:6px;height:6px;transition:background var(--t-mid), box-shadow var(--t-mid);border-radius:50%;box-shadow:0 0 #0000}.conn-dot.connected{background:var(--success);box-shadow:0 0 8px #4ed69499}.conn-dot.reconnecting{background:var(--warning);animation:1.4s ease-in-out infinite pulse-warn}@keyframes pulse-warn{0%,to{box-shadow:0 0 #f5b53b66}50%{box-shadow:0 0 0 6px #f5b53b00}}#hud-stats{box-shadow:var(--ring);background:#ffffff06;border-radius:10px;align-items:center;gap:4px;padding:4px;display:flex}.hud-stat{white-space:nowrap;transition:background var(--t-fast);border-radius:7px;align-items:baseline;gap:6px;padding:4px 10px;display:inline-flex}.hud-stat:hover{background:#ffffff09}.hud-stat-label{font-family:var(--mono);letter-spacing:.14em;color:var(--text-faint);font-size:9px;font-weight:600}.hud-stat-value{font-family:var(--mono);letter-spacing:.02em;color:var(--text);font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}.hud-stat-bat{align-items:center;gap:8px;display:inline-flex}#battery-track{width:64px;height:6px;box-shadow:var(--ring);background:#ffffff0f;border-radius:3px;position:relative;overflow:hidden}#battery-fill{background:linear-gradient(90deg, var(--success), #2ee68f);width:100%;height:100%;transition:width var(--t-slow), background var(--t-slow);border-radius:3px}#battery-fill.warn{background:linear-gradient(90deg, var(--warning), #ffd166)}#battery-fill.crit{background:linear-gradient(90deg, var(--danger), #ff8a8a)}#battery-pct{font-family:var(--mono);color:var(--text);font-size:11px;font-weight:600}#hud-selected-drone{font-family:var(--mono);letter-spacing:.04em;color:var(--accent);background:var(--accent-soft);white-space:nowrap;transition:opacity var(--t-mid);cursor:default;border-radius:999px;align-items:center;gap:8px;padding:4px 12px;font-size:11px;font-weight:600;display:inline-flex;box-shadow:0 0 0 1px #5cb6ff52,0 0 12px #5cb6ff29}#hud-selected-drone.hidden{display:none}#hud-selected-drone:before{content:"";background:var(--accent);width:6px;height:6px;box-shadow:0 0 6px var(--accent-glow);border-radius:50%}.hud-toggle-group,.hud-action-group{box-shadow:var(--ring);background:#ffffff06;border-radius:9px;align-items:center;gap:2px;padding:3px;display:inline-flex}.hud-toggle,.hud-action{appearance:none;color:var(--text-muted);width:30px;height:28px;font-size:14px;font-family:var(--sans);cursor:pointer;transition:background var(--t-fast), color var(--t-fast), box-shadow var(--t-fast);background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.hud-toggle:hover,.hud-action:hover{color:var(--text);background:#ffffff0d}.hud-toggle.active{background:var(--accent-soft);color:var(--accent);box-shadow:inset 0 0 0 1px #5cb6ff52}#sidebar{top:var(--hud-h);width:var(--sidebar-w);z-index:100;border-right:1px solid var(--line);-webkit-backdrop-filter:var(--blur-strong);transition:transform var(--t-mid) var(--ease);scrollbar-width:thin;scrollbar-color:#788caa4d transparent;background:linear-gradient(#0a0d13c7 0%,#0a0d13ad 100%);flex-direction:column;gap:16px;padding:18px 16px 24px;display:flex;position:fixed;bottom:0;left:0;overflow:hidden auto;transform:translate(0)}#sidebar.collapsed{transform:translateX(calc(-1 * var(--sidebar-w)))}.panel-section{background:0 0;border:0;border-radius:0;flex-direction:column;gap:10px;padding:0;display:flex}.panel-section.panel-sim{border-radius:var(--r-2);box-shadow:var(--ring);background:#ffffff06;padding:12px}.section-title{font-family:var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--text-faint);-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:9px;font-weight:600;display:flex}.section-title:before{content:"";background:var(--text-faint);border-radius:50%;flex-shrink:0;width:4px;height:4px}.panel-collapsible{border-top:1px solid var(--line);padding-top:16px}.panel-collapsible>summary{cursor:pointer;padding-right:18px;list-style:none;position:relative}.panel-collapsible>summary::-webkit-details-marker{display:none}.panel-collapsible>summary:after{content:"＋";color:var(--text-faint);transition:transform var(--t-fast), color var(--t-fast);font-size:11px;position:absolute;top:50%;right:0;transform:translateY(-50%)}.panel-collapsible[open]>summary:after{content:"−";color:var(--accent)}.panel-collapsible[open]>summary:before{background:var(--accent)}.panel-collapsible-body{flex-direction:column;gap:8px;padding-top:12px;display:flex}.btn{appearance:none;box-shadow:var(--ring);color:var(--text);border-radius:var(--r-1);cursor:pointer;letter-spacing:.01em;transition:background var(--t-fast), color var(--t-fast), box-shadow var(--t-fast), transform var(--t-fast);white-space:nowrap;background:#ffffff0a;border:0;justify-content:center;align-items:center;gap:6px;padding:7px 12px;font-size:12px;font-weight:500;display:inline-flex}.btn:hover{box-shadow:var(--ring-strong);background:#ffffff14}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-primary{background:var(--accent-soft);color:var(--accent);box-shadow:0 0 0 1px #5cb6ff52}.btn-primary:hover{background:#5cb6ff3d;box-shadow:0 0 0 1px #5cb6ff85,0 0 12px #5cb6ff2e}.btn-success{color:var(--success);background:#4ed69424;box-shadow:0 0 0 1px #4ed69452}.btn-success:hover{background:#4ed69438}.btn-danger{color:var(--danger);background:#ff5d5d1f;box-shadow:0 0 0 1px #ff5d5d52}.btn-danger:hover{background:#ff5d5d33}.btn-block{width:100%}.btn-row{gap:6px;display:flex}.btn-row .btn{flex:1}.btn-grid{grid-template-columns:1fr 1fr;gap:6px;display:grid}.field-label{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);font-size:9px;font-weight:500;display:block}input[type=number],input[type=text],select,.field-select{width:100%;box-shadow:var(--ring);color:var(--text);border-radius:var(--r-1);font-size:12px;font-family:var(--mono);font-variant-numeric:tabular-nums;transition:box-shadow var(--t-fast), background var(--t-fast);appearance:none;background:#0000004d;border:0;padding:8px 10px}input[type=number]:focus,input[type=text]:focus,select:focus,.field-select:focus{box-shadow:0 0 0 1px var(--accent), 0 0 0 4px #5cb6ff29;background:#00000073;outline:none}select,.field-select{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6' fill='none'><path d='M1 1l4 4 4-4' stroke='%237a8593' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'/></svg>");background-position:right 10px center;background-repeat:no-repeat;padding-right:28px}.input-row{grid-template-columns:1fr 1fr 1fr;gap:6px;display:grid}.input-row .field-group{flex-direction:column;gap:4px;min-width:0;display:flex}.input-row .field-group input{padding:7px 8px;font-size:11px}input[type=range]{width:100%;height:4px;accent-color:var(--accent);background:#ffffff0f;border-radius:2px;margin:4px 0}.badge{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;border-radius:999px;align-items:center;gap:5px;padding:3px 9px;font-size:9px;font-weight:600;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:50%;width:5px;height:5px}.badge-flying{color:var(--success);background:#4ed69424;box-shadow:0 0 0 1px #4ed6944d}.badge-landed{color:var(--text-muted);background:#788caa24;box-shadow:0 0 0 1px #788caa4d}.badge-emergency{color:var(--danger);background:#ff5d5d24;box-shadow:0 0 0 1px #ff5d5d52}.badge-armed{background:var(--accent-soft);color:var(--accent);box-shadow:0 0 0 1px #5cb6ff52}#drone-panel{bottom:18px;left:calc(var(--sidebar-w) + 24px);z-index:150;width:min(440px, calc(100vw - var(--sidebar-w) - 260px));background:var(--surface-2);border-radius:var(--r-3);box-shadow:var(--ring), var(--shadow-2);-webkit-backdrop-filter:var(--blur-strong);transition:opacity var(--t-mid), transform var(--t-mid);grid-template-columns:1.05fr 1fr auto;align-items:start;gap:14px;padding:14px 16px 12px;display:grid;position:fixed}#drone-panel.hidden{opacity:0;pointer-events:none;transform:translateY(8px)}#dp-info{flex-direction:column;gap:6px;min-width:0;display:flex}#dp-id{font-family:var(--mono);letter-spacing:.04em;color:var(--text);font-size:14px;font-weight:700}#dp-status-row{align-items:center;gap:8px;display:flex}.dp-bat-block{flex-direction:column;gap:4px;margin-top:2px;display:flex}.dp-bat-block .dp-metric-label{margin:0}#dp-metrics{flex-direction:column;gap:8px;min-width:0;display:flex}.dp-metric{flex-direction:column;gap:3px;min-width:0;display:flex}.dp-metric-label{font-family:var(--mono);text-transform:uppercase;letter-spacing:.14em;color:var(--text-faint);font-size:9px;font-weight:600}.dp-metric-value{font-family:var(--mono);color:var(--text);font-variant-numeric:tabular-nums;letter-spacing:.02em;font-size:12px}#dp-bat-track{width:100%;height:6px;box-shadow:var(--ring);background:#ffffff0f;border-radius:3px;overflow:hidden}#dp-bat-fill{background:linear-gradient(90deg, var(--success), #2ee68f);height:100%;transition:width var(--t-slow), background var(--t-slow);border-radius:3px}#dp-bat-fill.warn{background:linear-gradient(90deg, var(--warning), #ffd166)}#dp-bat-fill.crit{background:linear-gradient(90deg, var(--danger), #ff8a8a)}#dp-cmds{flex-direction:column;gap:6px;display:flex}#dp-cmds .btn{padding:6px 12px;font-size:11px}#dp-close{color:var(--text-faint);cursor:pointer;border-radius:var(--r-1);transition:background var(--t-fast), color var(--t-fast);background:0 0;border:0;padding:2px 6px;font-size:16px;line-height:1;position:absolute;top:8px;right:10px}#dp-close:hover{color:var(--text);background:#ffffff0f}#wind-compass{z-index:150;text-align:center;background:var(--surface-1);border-radius:var(--r-3);box-shadow:var(--ring), var(--shadow-1);-webkit-backdrop-filter:var(--blur-soft);padding:8px 10px 6px;position:fixed;bottom:18px;right:240px}#wind-canvas{display:block}#wind-label{font-family:var(--mono);letter-spacing:.06em;color:var(--text-muted);margin-top:4px;font-size:10px}#key-hints{top:calc(var(--hud-h) + 8px);z-index:250;background:var(--surface-3);border-radius:var(--r-2);width:380px;max-width:calc(100vw - 32px);box-shadow:var(--ring-strong), 0 16px 40px #0000008c;-webkit-backdrop-filter:var(--blur-strong);font-family:var(--mono);color:var(--text-dim);transition:opacity var(--t-mid) var(--ease), transform var(--t-mid) var(--ease);transform-origin:100% 0;padding:12px 14px 14px;position:fixed;right:16px}#key-hints:before{content:"";background:var(--surface-3);width:12px;height:12px;box-shadow:-1px -1px 0 var(--line-strong);border-radius:2px;position:absolute;top:-6px;right:92px;transform:rotate(45deg)}#key-hints.hidden{opacity:0;pointer-events:none;transform:scale(.96)translateY(-6px)}body.hints-open .telemetry-strip,body.hints-open .event-log,body.hints-open .minimap{display:none}.key-hints-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;margin-bottom:10px;padding-bottom:8px;display:flex}.key-hints-title{letter-spacing:.22em;text-transform:uppercase;color:var(--text);font-size:9px;font-weight:600}.key-hints-close{color:var(--text-faint);cursor:pointer;border-radius:var(--r-1);transition:color var(--t-fast), background var(--t-fast);background:0 0;border:0;margin:-2px -6px -2px 0;padding:2px 6px;font-size:13px;line-height:1}.key-hints-close:hover{color:var(--text);background:#ffffff0f}.key-hints-grid{grid-template-columns:1fr 1fr;gap:5px 14px;font-size:10px;display:grid}.key-hints-grid span{white-space:nowrap;color:var(--text-dim);text-overflow:ellipsis;align-items:center;gap:6px;display:inline-flex;overflow:hidden}kbd{box-shadow:var(--ring);font-family:var(--mono);color:var(--text);letter-spacing:.04em;background:#ffffff0f;border-radius:3px;flex-shrink:0;padding:1px 5px;font-size:9px;font-weight:600}.terrain-grid{grid-template-columns:repeat(5,1fr);gap:5px;display:grid}.terrain-card{box-shadow:var(--ring);border-radius:var(--r-1);cursor:pointer;text-align:center;transition:background var(--t-fast), box-shadow var(--t-fast), transform var(--t-fast);background:#ffffff06;padding:7px 2px 6px}.terrain-card:hover{box-shadow:var(--ring-strong);background:#ffffff0d}.terrain-card.active{background:var(--accent-soft);box-shadow:0 0 0 1px #5cb6ff73,0 0 14px #5cb6ff29}.terrain-card .tc-icon{filter:saturate(.9);font-size:16px;line-height:1.1}.terrain-card .tc-name{font-family:var(--mono);color:var(--text-muted);letter-spacing:.06em;margin-top:3px;font-size:8.5px}.terrain-card.active .tc-name{color:var(--accent)}.scenario-grid{grid-template-columns:1fr 1fr;gap:6px;display:grid}.scenario-card{box-shadow:var(--ring);border-radius:var(--r-2);cursor:pointer;text-align:left;transition:background var(--t-fast), box-shadow var(--t-fast), transform var(--t-fast);background:#ffffff06;padding:10px 12px}.scenario-card:hover{box-shadow:var(--ring-strong);background:#ffffff0d}.scenario-card.active{background:var(--accent-soft);box-shadow:0 0 0 1px #5cb6ff73,0 0 14px #5cb6ff29}.scenario-card .sc-name{font-family:var(--sans);color:var(--text);font-size:12px;font-weight:600}.scenario-card .sc-desc{font-family:var(--mono);color:var(--text-muted);letter-spacing:.06em;margin-top:3px;font-size:9px}.scenario-card.active .sc-desc{color:var(--accent)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#788caa47;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#788caa80}#empty-state{pointer-events:none;flex-direction:column;justify-content:center;align-items:center;gap:10px;transition:opacity .6s;display:flex;position:absolute;inset:0}#empty-state.hidden{opacity:0}.es-icon{opacity:.15;font-size:3rem}.es-title{font-family:var(--sans);letter-spacing:.04em;color:var(--text-muted);font-size:1.05rem;font-weight:600}.es-sub{font-family:var(--mono);color:var(--text-faint);text-align:center;letter-spacing:.04em;max-width:320px;font-size:.78rem}.settings-panel{top:var(--hud-h);width:320px;max-height:calc(100vh - var(--hud-h));background:var(--surface-3);border-left:1px solid var(--line);-webkit-backdrop-filter:var(--blur-strong);z-index:220;transition:transform var(--t-mid) var(--ease);padding-bottom:1rem;position:fixed;right:0;overflow-y:auto;transform:translate(100%);box-shadow:-16px 0 36px #00000073}.settings-panel.open{transform:translate(0)}.settings-header{border-bottom:1px solid var(--line);background:var(--surface-3);z-index:1;justify-content:space-between;align-items:center;padding:14px 18px;display:flex;position:sticky;top:0}.settings-title{font-family:var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--text);font-size:10px;font-weight:600}.settings-close{color:var(--text-faint);cursor:pointer;border-radius:var(--r-1);transition:color var(--t-fast), background var(--t-fast);background:0 0;border:0;padding:4px 8px;font-size:14px}.settings-close:hover{color:var(--text);background:#ffffff0f}.settings-section{border-bottom:1px solid var(--line);padding:14px 18px 6px}.settings-section-title{font-family:var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--text-faint);margin:0 0 10px;font-size:9px;font-weight:600}.settings-row{color:var(--text-dim);cursor:default;justify-content:space-between;align-items:center;gap:10px;padding:6px 0;font-size:12px;display:flex}.settings-row span{white-space:nowrap;flex:1}.settings-row input[type=checkbox]{cursor:pointer;width:16px;height:16px;accent-color:var(--accent)}.settings-row select{box-shadow:var(--ring);color:var(--text);border-radius:var(--r-1);cursor:pointer;width:110px;font-size:11px;font-family:var(--mono);background:#0000004d;border:0;padding:4px 24px 4px 8px}.settings-slider-row{flex:1;justify-content:flex-end;align-items:center;gap:8px;display:flex}.settings-row input[type=range]{width:100px;accent-color:var(--accent);cursor:pointer}.settings-val{font-family:var(--mono);color:var(--text-muted);text-align:right;letter-spacing:.04em;min-width:32px;font-size:10px}.settings-footer{padding:14px 18px 0}.settings-reset-btn{width:100%;font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;box-shadow:var(--ring);color:var(--text-muted);border-radius:var(--r-1);cursor:pointer;transition:color var(--t-fast), box-shadow var(--t-fast);background:0 0;border:0;padding:8px;font-size:10px}.settings-reset-btn:hover{color:var(--danger);box-shadow:0 0 0 1px #ff5d5d80}body.investor-mode #hud-stats,body.investor-mode .hud-toggle-group,body.investor-mode .hud-action-group,body.investor-mode #sidebar,body.investor-mode .settings-panel,body.investor-mode #key-hints,body.investor-mode #drone-panel,body.investor-mode #wind-compass,body.investor-mode .telemetry-strip,body.investor-mode .event-log,body.investor-mode .minimap{display:none!important}body.investor-mode,body.investor-mode canvas{cursor:none}.resq-wordmark{z-index:9999;pointer-events:none;font-family:var(--sans);letter-spacing:.28em;color:var(--text);opacity:.4;text-shadow:0 1px 2px #0009;-webkit-user-select:none;user-select:none;font-size:22px;font-weight:800;position:fixed;bottom:22px;left:24px}.partition-banner{top:calc(var(--hud-h) + 12px);z-index:500;font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--danger);-webkit-backdrop-filter:var(--blur-strong);box-shadow:0 0 0 1px var(--danger), 0 0 24px var(--danger-glow);border-radius:var(--r-1);opacity:0;pointer-events:none;transition:opacity var(--t-mid), transform var(--t-mid);background:#1c0808d9;padding:8px 18px;font-size:11px;font-weight:600;position:fixed;left:50%;transform:translate(-50%)translateY(-8px)}body.partitioned .partition-banner{opacity:1;transform:translate(-50%)translateY(0)}.partition-banner:before{content:"⚠";margin-right:8px;font-size:14px}.scenario-intro{z-index:800;pointer-events:none;opacity:0;background:linear-gradient(#07090de6 0%,#07090da6 45%,#07090d00 100%);justify-content:center;align-items:center;transition:opacity .5s ease-out;display:flex;position:fixed;inset:0}.scenario-intro.visible{opacity:1}.scenario-intro-inner{text-align:center;padding:0 32px;transform:translateY(-4%)}.scenario-intro-kicker{font-family:var(--mono);letter-spacing:.28em;text-transform:uppercase;color:var(--accent);opacity:.95;margin-bottom:14px;font-size:11px;font-weight:500;display:block}.scenario-intro-title{font-family:var(--sans);letter-spacing:.04em;color:var(--text);text-shadow:0 2px 18px #0009;font-size:clamp(42px,7vw,96px);font-weight:800;line-height:1.02;display:block}.scenario-intro-subtitle{font-family:var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--text-dim);margin-top:16px;font-size:13px;font-weight:500;display:block}.loading-overlay{z-index:1000;opacity:0;pointer-events:none;background:radial-gradient(circle,#07090deb 0%,#07090dfa 60%,#07090d 100%);justify-content:center;align-items:center;transition:opacity .4s;display:flex;position:fixed;inset:0}.loading-overlay.visible{opacity:1;pointer-events:auto}.loading-overlay-inner{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:36px 44px;display:flex}.loading-title{font-family:var(--sans);letter-spacing:.22em;color:var(--text);margin-top:8px;font-size:24px;font-weight:800}.loading-phase{font-family:var(--mono);letter-spacing:.24em;text-transform:uppercase;color:var(--accent);min-height:1.2em;transition:color var(--t-fast);font-size:11px;font-weight:500}.loading-sub{font-family:var(--mono);letter-spacing:.14em;color:var(--text-muted);max-width:320px;font-size:11px}.loading-retry{font-family:var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--text);box-shadow:var(--ring);border-radius:var(--r-1);cursor:pointer;opacity:0;pointer-events:none;transition:opacity var(--t-fast), color var(--t-fast), box-shadow var(--t-fast);background:0 0;border:0;margin-top:14px;padding:8px 22px;font-size:11px;font-weight:600}.loading-retry:hover{color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.loading-overlay.disconnected .loading-retry{opacity:1;pointer-events:auto;color:var(--danger);box-shadow:0 0 0 1px var(--danger)}.loading-overlay.disconnected .loading-retry:hover{background:#ff5d5d14}.loading-overlay.disconnected .loading-overlay-inner{border-radius:var(--r-3);box-shadow:0 0 0 1px var(--danger), 0 0 32px var(--danger-glow);background:#1c080880}.loading-overlay.disconnected .loading-phase,.loading-overlay.disconnected .loading-title{color:var(--danger);letter-spacing:.14em;text-transform:uppercase}.loading-spinner{width:68px;height:68px;margin-bottom:6px;position:relative}.loading-ring{border:1.5px solid #0000;border-top-color:var(--accent);border-radius:50%;animation:1.6s linear infinite resq-ring-spin;position:absolute;inset:0}.loading-ring-mid{border-top-color:#5cb6ff8c;animation-duration:2.2s;animation-direction:reverse;inset:10px}.loading-ring-inner{border-top-color:#5cb6ff59;animation-duration:1s;inset:20px}.loading-overlay.disconnected .loading-ring{border-top-color:var(--danger);opacity:.35;animation-play-state:paused}@keyframes resq-ring-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.mission-chrome{top:calc(var(--hud-h) + 12px);z-index:450;font-family:var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--text);background:var(--surface-2);-webkit-backdrop-filter:var(--blur-strong);box-shadow:var(--ring), var(--shadow-1);pointer-events:none;transition:opacity var(--t-mid), transform var(--t-mid);opacity:1;border-radius:999px;align-items:center;gap:12px;padding:7px 18px;font-size:11px;font-weight:600;display:flex;position:fixed;left:50%;transform:translate(-50%)}.mission-chrome.hidden{opacity:0;transform:translate(-50%)translateY(-6px)}.mc-name{color:var(--text);letter-spacing:.26em}.mc-time{color:var(--text-muted);font-variant-numeric:tabular-nums;letter-spacing:.14em}.mc-phase{color:var(--accent);letter-spacing:.26em}.mc-sep{color:var(--text-faint);padding:0 2px}body.partitioned .mc-phase{color:var(--danger)}.event-log{top:calc(var(--hud-h) + 16px);left:calc(var(--sidebar-w) + 16px);z-index:420;pointer-events:none;max-width:380px;font-family:var(--mono);letter-spacing:.04em;transition:left var(--t-mid) var(--ease);flex-direction:column;gap:3px;font-size:11px;font-weight:500;line-height:1.45;display:flex;position:fixed}body:has(#sidebar.collapsed) .event-log{left:16px}.el-row{color:var(--text);background:var(--surface-1);border-left:2px solid var(--line);-webkit-backdrop-filter:var(--blur-soft);opacity:1;white-space:nowrap;text-overflow:ellipsis;border-radius:2px;gap:10px;padding:4px 10px;transition:opacity .6s,transform .6s;display:flex;overflow:hidden;transform:translate(0);box-shadow:0 4px 14px #00000059}.el-row.el-enter,.el-row.el-exit{opacity:0;transform:translate(-6px)}.el-time{color:var(--text-faint);font-variant-numeric:tabular-nums}.el-tag{color:var(--text-muted);letter-spacing:.14em;text-transform:uppercase}.el-msg{color:var(--text-dim)}.el-info{border-left-color:var(--line)}.el-mesh{border-left-color:var(--accent)}.el-mesh .el-tag{color:var(--accent)}.el-sar{border-left-color:var(--success)}.el-sar .el-tag{color:var(--success)}.el-alert{border-left-color:var(--danger)}.el-alert .el-tag,.el-alert .el-msg{color:var(--danger)}.telemetry-strip{top:calc(var(--hud-h) + 16px);z-index:420;min-width:280px;max-width:320px;max-height:calc(100vh - var(--hud-h) - 220px);pointer-events:none;font-family:var(--mono);letter-spacing:.04em;scrollbar-width:thin;flex-direction:column;gap:4px;font-size:11px;font-weight:500;line-height:1.35;display:flex;position:fixed;right:16px;overflow-y:auto}.telemetry-strip.hidden{display:none}.ts-row{color:var(--text);background:var(--surface-1);border-left:2px solid var(--line);-webkit-backdrop-filter:var(--blur-soft);white-space:nowrap;cursor:pointer;pointer-events:auto;transition:background var(--t-fast), transform var(--t-fast), border-left-color var(--t-fast);border-radius:2px;grid-template-columns:8px 56px 1fr 44px 56px 56px;align-items:center;gap:8px;padding:6px 10px;display:grid;overflow:hidden;box-shadow:0 4px 14px #00000052}.ts-row:hover{background:#141b26d9;transform:translate(-2px)}.ts-row.ts-row-selected{background:var(--accent-soft);border-left-color:var(--accent);box-shadow:inset 0 0 0 1px #5cb6ff59,0 4px 14px #00000052}.ts-chip{border-radius:50%;width:8px;height:8px;box-shadow:0 0 5px}.ts-id{color:var(--text);text-overflow:ellipsis;font-weight:600;overflow:hidden}.ts-bat{height:6px;box-shadow:var(--ring);background:#ffffff0f;border-radius:3px;position:relative;overflow:hidden}.ts-bat-fill{background:linear-gradient(90deg, var(--success), #2ee68f);height:100%;transition:width .25s,background .25s}.ts-bat-fill.warn{background:linear-gradient(90deg, var(--warning), #ffd166)}.ts-bat-fill.crit{background:linear-gradient(90deg, var(--danger), #ff8a8a)}.ts-metric{color:var(--text-dim);font-variant-numeric:tabular-nums;text-align:right}.ts-status{letter-spacing:.14em;text-transform:uppercase;color:var(--text-muted);text-align:right;text-overflow:ellipsis;font-size:9px;overflow:hidden}.ts-row-ok{border-left-color:var(--success)}.ts-row-hover{border-left-color:var(--accent)}.ts-row-warn{border-left-color:var(--warning)}.ts-row-warn .ts-status{color:var(--warning)}.ts-row-alert{border-left-color:var(--danger)}.ts-row-alert .ts-status{color:var(--danger)}.minimap{z-index:420;background:var(--surface-1);border-radius:var(--r-2);box-shadow:var(--ring), var(--shadow-1);-webkit-backdrop-filter:var(--blur-soft);padding:7px;line-height:0;position:fixed;bottom:18px;right:16px}.minimap canvas{cursor:crosshair;border-radius:4px;display:block}.sensor-stats-overlay{bottom:18px;left:calc(var(--sidebar-w) + 16px);z-index:420;background:var(--surface-2);border-radius:var(--r-2);min-width:220px;box-shadow:var(--ring), var(--shadow-1);-webkit-backdrop-filter:var(--blur-soft);color:var(--text);font-family:var(--mono);padding:10px 12px;font-size:11px;line-height:1.45;position:fixed}.sensor-stats-header{text-transform:uppercase;letter-spacing:.18em;color:var(--accent);justify-content:space-between;align-items:baseline;margin-bottom:8px;font-size:10px;font-weight:600;display:flex}.sensor-stats-status{text-transform:lowercase;letter-spacing:0;color:var(--text-muted);font-weight:400}.sensor-stats-section{margin-top:6px}.sensor-stats-section-title{color:var(--text-faint);text-transform:uppercase;letter-spacing:.18em;margin-bottom:3px;font-size:9px}.sensor-stats-grid{grid-template-columns:auto 1fr;gap:1px 14px;display:grid}.sensor-stats-key{color:var(--text-muted)}.sensor-stats-value{text-align:right;font-variant-numeric:tabular-nums;color:var(--text-dim)}.sensor-stats-value.warn{color:var(--warning);font-weight:600}body.investor-mode .sensor-stats-overlay{display:none!important}@media (width<=960px){#drone-panel{width:auto;max-width:none;left:16px;right:16px}#wind-compass{right:16px}.event-log{max-width:calc(100vw - var(--sidebar-w) - 32px)}}@media (width<=720px){:root{--sidebar-w:280px}#sidebar{transform:translate(-100%)}#sidebar:not(.collapsed){transform:translate(0)}#scene-container{width:100%!important;left:0!important}.event-log,.sensor-stats-overlay{left:16px}#key-hints{width:auto;left:16px;right:16px;top:calc(var(--hud-h) + 8px)}#key-hints:before{display:none}#key-hints.hidden{transform:scale(.98)translateY(-6px)}.key-hints-grid{grid-template-columns:1fr}#hud-stats{gap:0}.hud-stat{padding:4px 8px}.hud-stat-bat #battery-track{width:40px}.hud-zone-right .hud-toggle-group{display:none}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip-link{z-index:10000;background:var(--accent);color:var(--bg-deep);font-family:var(--mono);border-radius:var(--r-1);transition:top var(--t-fast) var(--ease);padding:8px 14px;font-size:12px;font-weight:600;text-decoration:none;position:absolute;top:-40px;left:8px}.skip-link:focus,.skip-link:focus-visible{outline:2px solid var(--text);outline-offset:2px;top:8px}.scenario-card,.terrain-card{font:inherit;color:inherit;border:0;width:100%;display:block}.scenario-card{text-align:left}.terrain-card{text-align:center}.scenario-card .sc-name,.scenario-card .sc-desc,.terrain-card .tc-icon,.terrain-card .tc-name{display:block}.scenario-card:focus-visible,.terrain-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px;background:var(--accent-soft)}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.conn-dot.reconnecting{opacity:.7;animation:none}}
