:root{--surface-page:#0a0e14;--surface-panel:#121822;--surface-panel-alt:#182130;--surface-raised:#1c2532;--text-primary:#fff;--text-secondary:#c3c2b7;--text-muted:#898781;--border:#ffffff1a;--border-strong:#ffffff2e;--accent:#35c7e0;--accent-dim:#35c7e059;--specialty-Militaire:#e53939;--specialty-Scientifique:#199e70;--specialty-Diplomate:#2e7dd1;--specialty-Ingenieur:#9085e9;--danger-unknown:#5a6472;--danger-1:#f3b8b7;--danger-2:#e88785;--danger-3:#dd5654;--danger-4:#c93433;--danger-5:#8f1f1f;--type-hostile:#c93433;--type-friendly:#2e7dd1;--type-abandoned-ruins:#8f8f98;--type-abandoned-wild:#8a7340;--status-good:#0ca30c;--status-warning:#fab219;--status-serious:#ec835a;--status-critical:#d03b3b;--radius-sm:6px;--radius-md:10px;--radius-lg:16px}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:radial-gradient(ellipse at top, #101722 0%, var(--surface-page) 55%);color:var(--text-primary);min-height:100vh;font-family:system-ui,-apple-system,Segoe UI,sans-serif}#app{flex-direction:column;min-height:100vh;display:flex}button{cursor:pointer;font-family:inherit}.btn{background:var(--surface-raised);color:var(--text-primary);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:8px 14px;font-size:.9rem;transition:border-color .15s,background .15s}.btn:hover{border-color:var(--accent);background:var(--surface-panel-alt)}.btn:disabled{opacity:.4;cursor:not-allowed}.debug-toggle{text-align:left;width:100%;color:var(--text-secondary)}.debug-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.debug-row-label{color:var(--text-muted);flex:0 0 60px;font-size:.78rem}.debug-select{background:var(--surface-raised);color:var(--text-primary);border:1px solid var(--border-strong);border-radius:var(--radius-sm);max-width:200px;padding:8px 10px;font-size:.85rem}.btn-primary{background:var(--accent);color:#04222a;border-color:var(--accent);font-weight:600}.btn-primary:hover{filter:brightness(1.1)}.btn-danger{border-color:var(--status-critical);color:var(--status-critical)}.nav{background:var(--surface-panel);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:4px;padding:12px 20px;display:flex}.nav-title{letter-spacing:.08em;color:var(--accent);text-transform:uppercase;margin-right:24px;font-size:1rem;font-weight:700}.nav-item{color:var(--text-secondary);border-radius:var(--radius-sm);background:0 0;border:1px solid #0000;padding:8px 14px;font-size:.9rem;position:relative}.nav-item:hover{color:var(--text-primary);border-color:var(--border)}.nav-item.active{color:var(--text-primary);border-color:var(--accent-dim);background:#35c7e014}.nav-spacer{flex:1}.nav-badge{background:var(--status-critical);color:#fff;border-radius:999px;justify-content:center;align-items:center;min-width:16px;height:16px;padding:0 4px;font-size:.65rem;display:flex;position:absolute;top:-4px;right:-4px}.screen{flex:1;width:100%;max-width:1100px;margin:0 auto;padding:24px}.screen-title{color:var(--text-primary);letter-spacing:.02em;margin:0 0 16px;font-size:1.2rem}.panel{background:var(--surface-panel);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px}.panel+.panel{margin-top:16px}.empty-state{color:var(--text-muted);text-align:center;padding:24px;font-style:italic}.card-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;display:grid}.quest-completed{opacity:.7}.member-badge{background:var(--surface-raised);border:1px solid var(--border);border-radius:999px;align-items:center;gap:8px;padding:6px 10px;font-size:.82rem;display:flex}.member-portrait-wrap{outline-offset:1px;border-radius:50%;outline:2px solid;flex-shrink:0;display:inline-flex;overflow:hidden}.member-portrait{object-fit:cover;border-radius:50%;width:100%;height:100%}.member-portrait-fallback{border-radius:50%;display:block}.member-badge.injured{filter:saturate(.4)brightness(.85);border-color:var(--status-warning)}.member-badge .state-tag{color:var(--status-warning);text-transform:uppercase;font-size:.68rem}.planet-badge-list{flex-wrap:wrap;gap:8px;display:flex}.planet-badge{background:var(--surface-raised);border:1px solid var(--border);color:var(--text-primary);cursor:pointer;border-radius:999px;align-items:center;gap:8px;padding:6px 12px 6px 6px;font-size:.82rem;display:flex}.planet-badge:hover{border-color:var(--border-strong)}.planet-badge-thumb{object-fit:cover;border-radius:50%;flex-shrink:0;width:24px;height:24px}.planet-badge-thumb-fallback{background:var(--surface-panel-alt)}.planet-badge-static{cursor:default;color:var(--text-muted)}.planet-badge-static:hover{border-color:var(--border)}.member-badge.clickable,.roster-member-row{cursor:pointer}.member-badge.clickable:hover,.roster-member-row:hover{border-color:var(--accent-dim)}.roster-member-list{flex-direction:column;gap:6px;display:flex}.roster-member-row{background:var(--surface-panel);border:1px solid var(--border);border-radius:var(--radius-md);align-items:center;gap:10px;padding:8px 14px;display:flex}.roster-member-row.injured{border-color:var(--status-warning)}.roster-member-name{flex:1;font-weight:600}.skill-row{color:var(--text-secondary);grid-template-columns:90px 1fr 28px;align-items:center;gap:8px;margin-bottom:4px;font-size:.78rem;display:grid}.skill-bar-track{background:#ffffff14;border-radius:3px;height:6px;overflow:hidden}.skill-bar-fill{background:var(--accent);border-radius:3px;height:100%;transition:width .4s}.reputation-row{align-items:center;gap:8px;display:flex}.reputation-bar-track{background:#ffffff14;border-radius:3px;flex:1;height:6px;position:relative;overflow:hidden}.reputation-bar-fill{border-radius:3px;height:100%;transition:left .4s,width .4s;position:absolute;top:0}.reputation-bar-center{background:var(--border-strong);width:1px;position:absolute;top:0;bottom:0;left:50%}.candidate-card{flex-direction:column;gap:10px;display:flex}.candidate-header{justify-content:space-between;align-items:baseline;display:flex}.candidate-actions{flex-wrap:wrap;gap:8px;display:flex}.study-team-list{flex-direction:column;gap:6px;display:flex}.study-team-row{text-align:left;background:var(--surface-raised);width:100%;color:var(--text-primary);border:1px solid var(--border-strong);border-radius:var(--radius-sm);align-items:center;gap:10px;padding:8px 12px;transition:border-color .15s,background .15s;display:flex}.study-team-row:hover{border-color:var(--accent);background:var(--surface-panel-alt)}.study-team-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.study-team-rate{color:var(--text-muted);flex-shrink:0;font-size:.78rem}.mission-option{border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:8px 10px}.mission-option-header{color:var(--text-primary);align-items:center;gap:6px;margin-bottom:6px;font-size:.82rem;font-weight:600;display:flex}.mission-option-header .quest-marker-badge{flex-shrink:0}.mission-option-quest-desc{color:var(--text-muted);margin:8px 0 0;font-size:.78rem;line-height:1.4}.candidate-select{flex:1;min-width:0}.candidate-select-trigger,.candidate-select-option{background:var(--surface-raised);width:100%;color:var(--text-primary);border:1px solid var(--border-strong);border-radius:var(--radius-sm);text-align:left;cursor:pointer;align-items:center;gap:8px;padding:4px 8px;font-size:.82rem;display:flex}.candidate-select-option:hover{background:var(--surface-panel-alt)}.candidate-select-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.candidate-select-caret{color:var(--text-muted);font-size:.7rem}.candidate-select-list{z-index:90;border-radius:var(--radius-sm);max-height:220px;position:fixed;overflow-y:auto;box-shadow:0 4px 12px #00000059}.candidate-select-list .candidate-select-option{border-top:none;border-left:none;border-right:none;border-radius:0}.candidate-select-list .candidate-select-option:first-child{border-top:1px solid var(--border-strong);border-top-left-radius:var(--radius-sm);border-top-right-radius:var(--radius-sm)}.candidate-select-list .candidate-select-option:last-child{border-bottom-left-radius:var(--radius-sm);border-bottom-right-radius:var(--radius-sm)}.team-card{flex-direction:column;gap:10px;display:flex}.team-header{justify-content:space-between;align-items:center;display:flex}.team-expand-caret{color:var(--text-muted);text-align:center;width:.8em;font-size:.7rem}.team-name-input{background:var(--surface-raised);color:inherit;border:1px solid var(--border-strong);border-radius:4px;min-width:0;padding:2px 6px;font-size:1rem;font-weight:600}.team-slots{flex-wrap:wrap;gap:6px;min-height:32px;display:flex}.team-slot-empty{border:1px dashed var(--border-strong);border-radius:50%;width:32px;height:32px}.locked-tag{color:var(--accent);text-transform:uppercase;letter-spacing:.04em;font-size:.7rem}.planet-map-wrap{flex-wrap:wrap;align-items:flex-start;gap:20px;display:flex}.planet-map-wrap>.panel:first-child{flex:420px;min-width:0}.planet-map-frame{position:relative}.planet-map{aspect-ratio:1;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;border-radius:var(--radius-md);width:100%;height:auto;display:block;overflow:hidden}.planet-map.dragging{cursor:grabbing}.map-recenter{padding:6px 12px;font-size:.78rem;position:absolute;bottom:10px;right:10px}.map-search-toggle{color:var(--text-secondary);padding:6px;line-height:0;position:absolute;top:10px;left:10px}.map-search-box{background:var(--surface-panel);border:1px solid var(--border-strong);border-radius:var(--radius-sm);width:min(240px,100% - 20px);position:absolute;top:10px;left:10px;overflow:hidden;box-shadow:0 6px 18px #0006}.map-search-row{color:var(--text-muted);align-items:center;gap:6px;padding:7px 8px;display:flex}.map-search-input{min-width:0;color:var(--text-primary);appearance:none;background:0 0;border:none;flex:1;font-size:.82rem}.map-search-input::-webkit-search-cancel-button{display:none}.map-search-input:focus{outline:none}.map-search-close{color:var(--text-muted);background:0 0;border:none;flex-shrink:0;padding:2px 3px;font-size:.78rem}.map-search-close:hover{color:var(--text-primary)}.map-search-results{border-top:1px solid var(--border);max-height:220px;overflow-y:auto}.map-search-result{text-align:left;width:100%;color:var(--text-primary);background:0 0;border:none;align-items:center;gap:8px;padding:7px 10px;font-size:.8rem;display:flex}.map-search-result:hover{background:var(--surface-panel-alt)}.map-search-empty{color:var(--text-muted);padding:8px 10px;font-size:.78rem}.planet-glyph{cursor:pointer}.planet-glyph text{fill:var(--text-secondary);pointer-events:none;font-size:9px}.planet-glyph circle.core{transition:r .15s,filter .15s}.planet-glyph .fill-level{transition:y .3s,height .3s,filter .15s}.planet-glyph:hover circle.core,.planet-glyph:hover .fill-level{filter:brightness(1.3)}.planet-glyph.selected circle.core{stroke:var(--accent);stroke-width:2px}.planet-glyph.explored circle.core,.planet-glyph.explored .fill-level{opacity:.35}.planet-glyph.explored text{opacity:.5}.planet-glyph.explored circle.explored-ring{fill:none;stroke:var(--text-muted);stroke-width:1px;stroke-dasharray:3 3}.planet-glyph.in-progress circle.core,.planet-glyph.in-progress .fill-level{animation:1.4s ease-in-out infinite svg-pulse-glow}.planet-glyph.unknown circle.core{stroke:var(--border-strong);stroke-width:1px;stroke-dasharray:2 2}.planet-glyph circle.exploration-arc{fill:none;stroke:var(--accent);stroke-width:2px;stroke-linecap:round;opacity:.85}.ship-trail{stroke:var(--accent);stroke-width:1px;stroke-dasharray:4 4;opacity:.45;pointer-events:none}.ship-glyph{cursor:pointer}.ship-glyph-body{fill:var(--accent);stroke:var(--surface-page);stroke-width:1px}.ship-glyph:hover .ship-glyph-body{filter:brightness(1.3)}.fleet-badge{cursor:pointer}.fleet-badge-bg{fill:var(--surface-raised);stroke:var(--accent);stroke-width:1px}.fleet-badge-icon{fill:var(--accent)}.fleet-badge-count{fill:var(--text-secondary);pointer-events:none;font-size:9px}.offscreen-arrow{cursor:pointer}.offscreen-arrow-body{stroke:var(--surface-page);stroke-width:1px}.offscreen-arrow:hover .offscreen-arrow-body{filter:brightness(1.3)}.offscreen-arrow-count{fill:var(--text-secondary);text-anchor:middle;pointer-events:none;font-size:8px}.planet-detail{flex:1;min-width:240px}.planet-detail-image{aspect-ratio:2;object-fit:cover;border-radius:var(--radius-md);cursor:zoom-in;width:100%;margin-bottom:10px;display:block}.planet-detail .planet-detail-image{border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:calc(100% + 32px);margin:-16px -16px 12px}.artifact-image,.ship-image{aspect-ratio:1;object-fit:cover;border-radius:var(--radius-md);cursor:zoom-in;width:100%;max-width:200px;margin:0 auto 12px;display:block}.launch-form{flex-direction:column;gap:10px;display:flex}.legend{color:var(--text-muted);flex-wrap:wrap;gap:12px;font-size:.78rem;display:flex}.legend-item{align-items:center;gap:5px;display:flex}.legend-dot{border-radius:50%;flex-shrink:0;width:9px;height:9px}.skill-pie{flex-shrink:0}.skill-pie path,.skill-pie circle{cursor:default}.skill-pie-level{fill:var(--text-primary);paint-order:stroke;stroke:var(--surface-page);stroke-width:3px;stroke-linejoin:round;pointer-events:none;-webkit-user-select:none;user-select:none;font-weight:600}.skill-pie-tooltip{z-index:95;border-radius:var(--radius-sm);background:var(--surface-raised);border:1px solid var(--border-strong);color:var(--text-primary);white-space:nowrap;pointer-events:none;padding:3px 8px;font-size:.75rem;position:fixed}.mission-card{align-items:center;gap:16px;display:flex}.mission-card.pending{border-color:var(--status-warning);animation:1.6s ease-in-out infinite pulse-glow}.mission-info{flex:1;min-width:0}.mission-info .title{font-weight:600}.mission-info .subtitle{color:var(--text-secondary);font-size:.82rem}.mission-status{text-transform:uppercase;letter-spacing:.03em;border-radius:999px;padding:2px 8px;font-size:.75rem}.mission-status.in_progress{color:var(--accent);border:1px solid var(--accent-dim)}.mission-status.awaiting_choice{color:var(--status-warning);border:1px solid var(--status-warning)}.mission-status.training{color:var(--status-good);border:1px solid var(--status-good)}.history-entry{border-bottom:1px solid var(--border);padding:12px 0}.history-entry:last-child{border-bottom:none}.history-log{color:var(--text-secondary);flex-direction:column;gap:3px;margin-top:8px;font-size:.8rem;display:flex}.history-entry-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.history-entry-links{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.history-entry-meta{align-items:center;gap:10px;margin-left:auto;display:flex}.history-entry-date{color:var(--text-muted);white-space:nowrap;font-size:.8rem}.team-badge{background:var(--surface-raised);border:1px solid var(--border);color:var(--text-primary);cursor:pointer;border-radius:999px;align-items:center;padding:6px 12px;font-size:.82rem;display:flex}.team-badge:hover{border-color:var(--border-strong)}.history-report-btn{background:var(--surface-raised);border:1px solid var(--border-strong);width:30px;height:30px;color:var(--text-secondary);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.history-report-btn:hover{border-color:var(--accent);color:var(--accent)}.modal-backdrop{z-index:50;background:#04060ab8;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--surface-panel);border:1px solid var(--border-strong);border-radius:var(--radius-lg);width:90%;max-width:420px;padding:24px}.modal h3{margin-top:0}.modal-choices{gap:12px;margin-top:16px;display:flex}.modal-choices .btn{text-align:left;flex:1;padding:12px}.modal-choices .choice-label{font-weight:600;display:block}.modal-choices .choice-desc{color:var(--text-muted);margin-top:4px;font-size:.76rem;display:block}.modal-choices .choice-skill{text-transform:uppercase;letter-spacing:.03em;margin-top:6px;font-size:.68rem;font-weight:600;display:block}.lightbox-backdrop{cursor:zoom-out;z-index:60}.lightbox-image{border-radius:var(--radius-md);cursor:default;width:auto;max-width:92vw;height:auto;max-height:92vh;display:block;box-shadow:0 8px 32px #00000080}.lightbox-close{background:var(--surface-panel);border:1px solid var(--border-strong);width:36px;height:36px;color:var(--text-primary);cursor:pointer;border-radius:50%;font-size:1rem;position:fixed;top:16px;right:16px}.lightbox-close:hover{border-color:var(--accent)}.planet-detail-popup{border-radius:var(--radius-lg);width:92vw;max-width:480px;max-height:85vh;overflow-y:auto}.planet-detail-popup .planet-detail{min-width:0}.outcome-text{font-size:.9rem;line-height:1.5}.outcome-result-label{text-transform:uppercase;letter-spacing:.08em;justify-content:center;align-items:center;gap:6px;margin-bottom:8px;font-size:.72rem;font-weight:700;display:flex}@keyframes vortex-open{0%{opacity:0;transform:scale(.4)}60%{opacity:1;transform:scale(1.05)}to{opacity:1;transform:scale(1)}}@keyframes outcome-shake{10%,90%{transform:translate(-1px)}20%,80%{transform:translate(2px)}30%,50%,70%{transform:translate(-3px)}40%,60%{transform:translate(3px)}}.outcome-modal{animation:.2s ease-out both vortex-open}.outcome-modal-fail{animation:.2s ease-out both vortex-open,.4s ease-in-out .2s outcome-shake}@media (width>=641px){.outcome-modal{max-width:520px;padding:32px}}.modal.mission-report{flex-direction:column;max-width:480px;max-height:min(640px,85vh);padding:0;display:flex;overflow:hidden}.modal.mission-report .report-scroll{min-height:0;padding:24px;overflow-y:auto}.modal.mission-report .planet-detail-image{border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:calc(100% + 48px);margin:-24px -24px 12px}.modal.mission-report .history-log{max-height:160px;overflow-y:auto}.modal.mission-report .modal-choices{border-top:1px solid var(--border);flex-shrink:0;margin:0;padding:8px 24px}.modal.mission-report .modal-choices .btn{text-align:center;padding:8px 12px}.modal.puzzle-modal{max-width:528px}.puzzle-image-wrap{aspect-ratio:3/2;border-radius:var(--radius-sm);border:1px solid var(--border);width:100%;max-width:480px;margin-top:12px;position:relative;overflow:hidden}.puzzle-image{width:100%;height:100%;display:block}.puzzle-hit-layer{position:absolute;inset:0}.puzzle-marker{border:3px solid var(--accent);color:var(--text-primary);cursor:pointer;background:#0a0e148c;border-radius:50%;justify-content:center;align-items:center;font-size:.9rem;font-weight:700;transition:transform .15s,background-color .15s,box-shadow .15s;display:flex;position:absolute;transform:translate(-50%,-50%)}.puzzle-marker-anon{border-color:color-mix(in srgb, var(--accent) 50%, transparent);background:0 0}.puzzle-marker:hover,.puzzle-marker:focus-visible{outline:none;box-shadow:0 0 0 4px #2ec4dc33}.puzzle-marker.pressed{background:var(--accent);color:var(--surface-page);transform:translate(-50%,-50%)scale(1.2);box-shadow:0 0 0 8px #2ec4dc38}.puzzle-progress{justify-content:center;gap:8px;margin-top:14px;display:flex}.puzzle-progress-dot{background:var(--border-strong);border-radius:50%;width:10px;height:10px;transition:background-color .2s}.puzzle-progress-dot.filled{background:var(--accent)}.anomaly-hit-layer{cursor:crosshair}.anomaly-marker-found{border-color:var(--status-good);pointer-events:none;background:0 0;animation:.3s anomaly-found-pop}.anomaly-marker-debug{border-style:dashed;border-color:color-mix(in srgb, var(--status-warning) 70%, transparent);pointer-events:none;background:0 0}@keyframes anomaly-found-pop{0%{opacity:.2;transform:translate(-50%,-50%)scale(1.35)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.anomaly-miss-blip{border:2px solid var(--status-critical);pointer-events:none;border-radius:50%;width:26px;height:26px;animation:.6s forwards anomaly-miss-fade;position:absolute;transform:translate(-50%,-50%)}@keyframes anomaly-miss-fade{0%{opacity:.9;transform:translate(-50%,-50%)scale(.6)}to{opacity:0;transform:translate(-50%,-50%)scale(1.4)}}.puzzle-progress-separator{background:var(--border-strong);width:1px;height:12px;margin:0 4px}.puzzle-progress-dot-miss.missed{background:var(--status-critical)}.calibration-board{flex-direction:column;gap:14px;margin-top:12px;display:flex}.calibration-row{flex-direction:column;gap:4px;display:flex}.calibration-label{color:var(--text-secondary);font-size:.85rem;font-weight:600}.calibration-slider{width:100%;accent-color:var(--accent)}.calibration-feedback{color:var(--text-muted);min-height:1.2em;font-size:.8rem;font-style:italic}.calibration-feedback-ok{color:var(--status-good)}.calibration-shake{animation:.4s calibration-shake}@keyframes calibration-shake{0%,to{transform:translate(0)}15%{transform:translate(-6px)}35%{transform:translate(5px)}55%{transform:translate(-4px)}75%{transform:translate(2px)}}.calibration-settle{border-radius:var(--radius-sm);animation:.7s calibration-settle}@keyframes calibration-settle{0%{box-shadow:0 0 #0ca30c80}to{box-shadow:0 0 0 12px #0ca30c00}}.calibration-actions{text-align:center;margin-top:12px}.zpm-arena{aspect-ratio:3/2;border-radius:var(--radius-sm);border:1px solid var(--border);background:radial-gradient(circle at 50% 100%, #2ec4dc14, var(--surface-page) 70%);touch-action:none;cursor:grab;width:100%;max-width:480px;margin-top:12px;position:relative;overflow:hidden}.zpm-arena-success{border-color:var(--status-good)}.zpm-arena-fail{border-color:var(--status-critical)}.zpm-cell{background:color-mix(in srgb, var(--accent) 25%, transparent);border:1px solid color-mix(in srgb, var(--accent) 60%, transparent);border-radius:4px;transition:background-color .2s;position:absolute}.zpm-cell.zpm-cell-hit{animation:.3s zpm-cell-pulse}@keyframes zpm-cell-pulse{0%{background:var(--accent);box-shadow:0 0 #2ec4dc99}to{background:color-mix(in srgb, var(--accent) 25%, transparent);box-shadow:0 0 0 14px #2ec4dc00}}.zpm-ball{background:var(--accent);pointer-events:none;border-radius:50%;width:18px;height:18px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 10px 2px #2ec4dc99}.zpm-paddle{background:var(--text-primary);pointer-events:none;border-radius:5px;width:76px;height:10px;position:absolute;transform:translate(-50%)}.zpm-timer{color:var(--text-muted);font-variant-numeric:tabular-nums;pointer-events:none;font-size:.75rem;position:absolute;top:6px;right:8px}.zpm-debug-row{justify-content:center;gap:8px;margin-top:10px;display:flex}.codex-slots{justify-content:center;gap:8px;margin-top:12px;display:flex}.codex-slot{border:2px dashed var(--border-strong);border-radius:var(--radius-sm);width:44px;height:44px;color:var(--text-muted);justify-content:center;align-items:center;display:flex;overflow:hidden}.codex-slot-filled{border-style:solid;border-color:var(--accent);color:var(--text-primary);background:color-mix(in srgb, var(--accent) 12%, transparent)}.codex-symbol-img{object-fit:cover;width:100%;height:100%;display:block}.codex-symbol-glyph{font-size:1.3rem}.codex-palette{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:14px;display:flex}.codex-symbol-btn{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-raised);width:44px;height:44px;color:var(--text-primary);cursor:pointer;justify-content:center;align-items:center;padding:0;transition:transform .15s,border-color .15s;display:flex;overflow:hidden}.codex-symbol-btn:hover,.codex-symbol-btn:focus-visible{border-color:var(--accent);outline:none;transform:translateY(-1px)}.codex-actions{justify-content:center;gap:8px;margin-top:12px;display:flex}.codex-history{flex-direction:column;gap:6px;max-height:160px;margin-top:14px;display:flex;overflow-y:auto}.codex-history-row{border:1px solid var(--border);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;gap:10px;padding:6px 10px;font-size:.85rem;display:flex}.codex-history-glyphs{gap:4px;font-size:1.05rem;display:flex}.codex-history-glyph{border-radius:4px;justify-content:center;align-items:center;width:22px;height:22px;display:inline-flex;overflow:hidden}.codex-history-score{white-space:nowrap;gap:8px;font-size:.75rem;display:flex}.codex-peg-exact{color:var(--status-good)}.codex-peg-partial{color:var(--status-warning)}.sentinel-board{gap:4px;width:100%;max-width:360px;margin-top:12px;margin-left:auto;margin-right:auto;display:grid}.sentinel-board,.sentinel-legend{--sentinel-0:#d03b3b;--sentinel-1:#fab219;--sentinel-2:#b06ae0}.sentinel-tile{aspect-ratio:1;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-raised);cursor:default;padding:0;position:relative}.sentinel-tile-wall{background:repeating-linear-gradient(45deg, var(--surface-page), var(--surface-page) 4px, var(--border-strong) 4px, var(--border-strong) 5px);border-color:var(--border-strong)}.sentinel-tile-goal{border-color:var(--status-good);box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--status-good) 35%, transparent)}.sentinel-tile-open{cursor:pointer;border-color:color-mix(in srgb, var(--accent) 55%, transparent)}.sentinel-tile-open:hover,.sentinel-tile-open:focus-visible{background:color-mix(in srgb, var(--accent) 18%, var(--surface-raised));outline:none}.sentinel-tile-hint{border-color:var(--status-warning);box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--status-warning) 45%, transparent)}.sentinel-route-mark{opacity:.65;border-radius:50%;width:5px;height:5px;position:absolute;top:3px;right:3px}.sentinel-token{border-radius:50%;position:absolute;inset:18%;box-shadow:0 0 6px 1px #00000073}.sentinel-player{background:var(--accent);border-radius:3px;position:absolute;inset:24%;box-shadow:0 0 8px 2px #2ec4dc80}.sentinel-board-caught{animation:.4s calibration-shake}.sentinel-legend{color:var(--text-muted);flex-wrap:wrap;justify-content:center;gap:10px;margin-top:12px;font-size:.75rem;display:flex}.sentinel-legend-item{align-items:center;gap:5px;min-height:14px;padding-left:16px;display:inline-flex;position:relative}.sentinel-legend-item .sentinel-token,.sentinel-legend-item .sentinel-player,.sentinel-legend-goal{width:12px;height:12px;position:absolute;inset:50% auto auto 0;transform:translateY(-50%)}.sentinel-legend-goal{border-radius:var(--radius-sm);border:1px solid var(--status-good);box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--status-good) 35%, transparent)}.sentinel-status{text-align:center;color:var(--text-secondary);min-height:2.4em;margin-top:12px;font-size:.82rem}.sentinel-status-bad{color:var(--status-critical)}.sentinel-status-good{color:var(--status-good)}.sentinel-actions{text-align:center;margin-top:4px}.stealth-arena{aspect-ratio:5/4;border-radius:var(--radius-sm);border:1px solid var(--border);touch-action:none;background:#05070a;width:100%;max-width:480px;margin-top:12px;position:relative;overflow:hidden}.stealth-fullscreen{z-index:50;background:#05070a;padding:0;display:flex;position:fixed;inset:0;overflow:hidden}.stealth-fullscreen-head{flex:none;justify-content:space-between;align-items:center;gap:8px;width:100%;max-width:900px;display:flex}.stealth-head-btns{flex:none;gap:8px;display:flex}.stealth-head-btn{border:1px solid var(--border-strong);width:40px;height:40px;color:var(--text-primary);cursor:pointer;background:#0a0e1499;border-radius:8px;font-size:20px;line-height:1}.stealth-head-btn:hover{border-color:var(--accent)}.stealth-briefing{z-index:6;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#030508b8;justify-content:center;align-items:center;padding:16px;display:flex;position:absolute;inset:0}.stealth-briefing.stealth-hidden{display:none}.stealth-briefing-panel{text-align:center;background:var(--surface-raised,#0c1118);border:1px solid var(--border-strong);border-radius:var(--radius-sm);flex-direction:column;gap:10px;max-width:460px;padding:18px 20px;display:flex}.stealth-briefing-panel h3{margin:0}.stealth-briefing-panel p{color:var(--text-primary);margin:0;font-size:.9rem;line-height:1.35}.stealth-briefing-hint{color:var(--text-muted)!important;font-size:.8rem!important}.stealth-briefing-panel .btn{align-self:center;margin-top:4px}.stealth-defeat{z-index:7;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#1e0406a8;justify-content:center;align-items:center;padding:16px;display:flex;position:absolute;inset:0}.stealth-defeat-panel{text-align:center;background:var(--surface-raised,#14090b);border:1px solid var(--status-critical,#e0524a);border-radius:var(--radius-sm);flex-direction:column;gap:10px;max-width:460px;padding:18px 20px 20px;display:flex}.stealth-defeat-badge{background:var(--status-critical,#e0524a);color:#fff;border-radius:50%;align-self:center;width:46px;height:46px;font-size:26px;font-weight:700;line-height:46px}.stealth-defeat-panel h3{color:var(--status-critical,#e0524a);margin:0}.stealth-defeat-panel p{color:var(--text-primary);margin:0;font-size:.9rem;line-height:1.35}.stealth-defeat-reason{font-weight:600}.stealth-defeat-btn{align-self:center;margin-top:4px}.stealth-arena .stealth-arena-control{z-index:5;margin:0;position:absolute}.stealth-arena .stealth-arena-joystick{opacity:.9;bottom:12px;right:12px}.stealth-arena .stealth-arena-action{bottom:12px;left:12px}.stealth-arena .stealth-arena-leader{top:12px;right:12px}.stealth-topbar{z-index:5;pointer-events:none;background:linear-gradient(#030508b8,#03050800);justify-content:space-between;align-items:flex-start;gap:10px;padding:8px 12px;display:flex;position:absolute;top:0;left:0;right:0}.stealth-topbar>*{pointer-events:auto}.stealth-topbar-left{flex:1 1 0;align-items:center;gap:10px;min-width:0;display:flex}.stealth-topbar-ctx{flex-direction:column;min-width:0;line-height:1.15;display:flex;overflow:hidden}.stealth-topbar-ctx strong{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:.9rem;overflow:hidden}.stealth-topbar-danger{color:var(--text-muted);white-space:nowrap;font-size:.72rem}.stealth-topbar-center{flex:none}.stealth-topbar-right{flex:1 1 0;justify-content:flex-end;align-items:center;gap:8px;display:flex}.stealth-topbar .stealth-objective-hud{position:static;inset:auto}.stealth-debug-overlay{z-index:6;gap:8px;display:flex;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.stealth-fullscreen-head h3{margin:2px 0}.stealth-fullscreen-head p{margin:2px 0;font-size:.85rem;line-height:1.3}.stealth-fullscreen-arena-slot{flex:auto;width:100%;min-width:0;height:100%;min-height:0}.stealth-fullscreen .stealth-arena{border:none;border-radius:0;width:100%;max-width:none;height:100%;max-height:none;margin:0}.stealth-fullscreen-hint{max-width:640px;color:var(--text-muted);text-align:center;flex:none;margin:0;font-size:.78rem}@media (width<=640px){.stealth-fullscreen{gap:2px;padding:6px 0}.stealth-fullscreen-head{padding:0 8px}.stealth-fullscreen-head h3{margin:0;font-size:1rem}.stealth-fullscreen-head p{margin:0;font-size:.76rem;line-height:1.2}.stealth-fullscreen-hint{padding:0 8px;font-size:.7rem}.stealth-fullscreen .stealth-arena{aspect-ratio:480/576;border-left:none;border-right:none;border-radius:0}}.stealth-arena-success{border-color:var(--status-good)}.stealth-arena-fail{border-color:var(--status-critical)}.stealth-objective-hud{pointer-events:none;z-index:2;gap:6px;display:flex;position:absolute;top:8px;right:8px}.stealth-objective-hud-icon{border:1.5px solid var(--border-strong);width:26px;height:26px;color:var(--text-muted);filter:brightness(.6);background:#00000073;border-radius:50%;justify-content:center;align-items:center;font-size:13px;line-height:1;transition:filter .3s,color .3s,border-color .3s;display:flex}.stealth-objective-hud-icon.stealth-objective-hud-icon-done{color:var(--status-good);border-color:var(--status-good);filter:brightness(1.2);box-shadow:0 0 6px color-mix(in srgb, var(--status-good) 60%, transparent)}.stealth-objective-hud-icon-img{width:22px;height:22px;image-rendering:pixelated;image-rendering:crisp-edges}.stealth-objective-hud-icon-goal{color:var(--status-warning)}.stealth-objective-hud-icon-goal.stealth-objective-hud-icon-done{color:var(--status-good)}.stealth-world{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.stealth-fog-remembered{fill:#8a8a8a}.stealth-wall{stroke:var(--border-strong);stroke-width:1.5px}.stealth-door{image-rendering:pixelated;image-rendering:crisp-edges;filter:drop-shadow(0 0 3px var(--accent))}.stealth-door.stealth-door-open{opacity:.25}.stealth-cone{stroke-width:2.5px;stroke-linejoin:round;filter:drop-shadow(0 0 2px #000000d9);transition:fill .25s,stroke .25s}.stealth-cone-alert-0{fill:#cdd6e033;stroke:#cdd6e0}.stealth-cone-alert-1{fill:#ff9a3c4d;stroke:#ff9a3c}.stealth-cone-alert-2{fill:#ff5d5d57;stroke:#ff5d5d}.stealth-cone-alert-3{fill:#b3201c6b;stroke:#e11d1d}.stealth-cone-spotted{filter:drop-shadow(0 0 7px #ffffffd9)brightness(1.25);animation:.5s ease-in-out infinite stealth-cone-engaged}@keyframes stealth-cone-engaged{0%,to{opacity:.85}50%{opacity:1}}.stealth-enemy-sprite{image-rendering:pixelated;image-rendering:crisp-edges}.stealth-enemy-sprite.stealth-enemy-touched{filter:drop-shadow(0 0 5px var(--status-critical)) brightness(1.5) saturate(2)}.stealth-cone.stealth-enemy-defeated,.stealth-enemy-sprite.stealth-enemy-defeated{display:none}.stealth-enemy-sprite.stealth-enemy-dead{filter:grayscale(.55)brightness(.72)drop-shadow(0 0 1px #000000e6);opacity:.92}.stealth-cone.stealth-enemy-dormant,.stealth-enemy-sprite.stealth-enemy-dormant{display:none}.stealth-trap{stroke:var(--status-critical);stroke-width:3px;stroke-dasharray:7 5;filter:drop-shadow(0 0 3px var(--status-critical));animation:1.1s ease-in-out infinite stealth-hazard-throb}.stealth-detector{fill:color-mix(in srgb, var(--status-critical) 12%, transparent);stroke:var(--status-critical);stroke-width:2px;stroke-dasharray:5 5;animation:1.1s ease-in-out infinite stealth-hazard-throb}@keyframes stealth-hazard-throb{0%,to{opacity:.55}50%{opacity:.95}}.stealth-hazard-tripped{animation:.4s ease-out forwards stealth-hazard-flash}@keyframes stealth-hazard-flash{0%{opacity:1;filter:drop-shadow(0 0 6px #fff);stroke:#fff}to{opacity:0}}.stealth-alert-hud{letter-spacing:.03em;white-space:nowrap;color:#fff;background:color-mix(in srgb, var(--status-critical) 55%, #0a0e14b3);border:1px solid var(--status-critical);box-shadow:0 0 10px color-mix(in srgb, var(--status-critical) 55%, transparent);pointer-events:none;border-radius:6px;flex:none;padding:4px 10px;font-size:.8rem;font-weight:700}.stealth-alert-hud.stealth-alert-hud-hidden{display:none}.stealth-alert-hud.stealth-alert-hud-pulse{animation:.6s ease-out stealth-alert-pulse}@keyframes stealth-alert-pulse{0%{transform:scale(1)}35%{box-shadow:0 0 18px var(--status-critical);transform:scale(1.35)}to{transform:scale(1)}}.stealth-alert-banner{z-index:6;letter-spacing:.06em;white-space:nowrap;color:#fff;text-shadow:0 0 12px var(--status-critical), 0 2px 4px #000c;background:color-mix(in srgb, var(--status-critical) 30%, #0a0e148c);border:2px solid var(--status-critical);box-shadow:0 0 24px color-mix(in srgb, var(--status-critical) 70%, transparent);pointer-events:none;border-radius:10px;padding:10px 28px;font-size:clamp(1.6rem,6vw,3.2rem);font-weight:900;position:absolute;top:12%;left:50%;transform:translate(-50%)}.stealth-alert-banner.stealth-hidden{display:none}.stealth-alert-banner.stealth-alert-banner-flash{animation:.42s ease-in-out 5 both stealth-alert-banner}@keyframes stealth-alert-banner{0%{opacity:.35;transform:translate(-50%)scale(.25)}50%{opacity:1;transform:translate(-50%)scale(1.15)}to{opacity:.35;transform:translate(-50%)scale(.25)}}.stealth-decor,.stealth-obstacle{image-rendering:pixelated;image-rendering:crisp-edges}.stealth-patrol-track{stroke:color-mix(in srgb, var(--status-critical) 45%, transparent);stroke-width:2px;stroke-dasharray:6 6}.stealth-goal{fill:var(--status-good);opacity:.85;transition:opacity .3s}.stealth-goal.stealth-goal-locked{opacity:.3}.stealth-objective-marker{fill:none;stroke:var(--status-warning);stroke-width:2px;opacity:.8;transition:stroke .3s}.stealth-objective-marker.stealth-objective-marker-done{stroke:var(--status-good)}.stealth-objective-progress{fill:none;stroke:var(--accent);stroke-width:2.5px;stroke-linecap:round;opacity:0;transition:opacity .15s}.stealth-objective-progress.stealth-objective-progress-active{opacity:1}.stealth-objective-icon-marker{image-rendering:pixelated;image-rendering:crisp-edges}.stealth-objective-check{transform-box:fill-box;transform-origin:50%;transition:transform .25s cubic-bezier(.34,1.56,.64,1);transform:scale(0)}.stealth-objective-check.stealth-objective-check-done{transform:scale(1)}.stealth-objective-check-bg{fill:var(--status-good);stroke:var(--surface-page);stroke-width:1.5px}.stealth-objective-check-mark{fill:var(--surface-page);text-anchor:middle;dominant-baseline:central;font-size:10px;font-weight:700}.stealth-debug-path circle{fill:color-mix(in srgb, var(--accent) 70%, transparent)}.stealth-player{pointer-events:none;width:31px;height:31px;image-rendering:pixelated;image-rendering:crisp-edges;filter:drop-shadow(0 0 3px #2ec4dcd9);position:absolute;transform:translate(-50%,-50%)}.stealth-follower{pointer-events:none;width:28px;height:28px;image-rendering:pixelated;image-rendering:crisp-edges;opacity:.82;filter:drop-shadow(0 0 2px #2ec4dc99);position:absolute;transform:translate(-50%,-50%)}.stealth-controls-row{flex:none;justify-content:center;align-items:center;gap:22px;padding:10px 0;display:flex}.stealth-joystick-base{border:1px solid color-mix(in srgb, var(--accent) 40%, transparent);touch-action:none;cursor:grab;background:#0a0e148c;border-radius:50%;width:126px;height:126px;position:relative}.stealth-joystick-thumb{background:color-mix(in srgb, var(--accent) 70%, transparent);pointer-events:none;border-radius:50%;width:56px;height:56px;margin:-28px 0 0 -28px;position:absolute;top:50%;left:50%}.stealth-action-button{border:1px solid var(--border-strong);cursor:not-allowed;background:#0a0e148c;border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;transition:border-color .15s,box-shadow .15s,background .15s;display:flex}.stealth-action-button:disabled{opacity:.55}.stealth-action-button.stealth-action-button-lit{cursor:pointer;border-color:var(--status-critical);background:color-mix(in srgb, var(--status-critical) 22%, #0a0e148c);box-shadow:0 0 10px color-mix(in srgb, var(--status-critical) 55%, transparent)}.stealth-action-icon{width:36px;height:36px;image-rendering:pixelated;image-rendering:crisp-edges;filter:grayscale()brightness(1.5)}.stealth-action-button.stealth-action-button-lit .stealth-action-icon{filter:none}.stealth-leader-button{background:color-mix(in srgb, var(--accent) 16%, #0a0e148c);border:1px solid color-mix(in srgb, var(--accent) 65%, transparent);cursor:pointer;width:72px;height:72px;box-shadow:0 0 10px color-mix(in srgb, var(--accent) 40%, transparent);border-radius:50%;justify-content:center;align-items:center;transition:border-color .15s,box-shadow .15s,background .15s,opacity .15s;display:flex}.stealth-leader-button.stealth-leader-button-blocked,.stealth-leader-button:disabled{cursor:not-allowed;opacity:.5;box-shadow:none;border-color:var(--border-strong);background:#0a0e148c}.stealth-leader-icon{width:40px;height:40px;image-rendering:pixelated;image-rendering:crisp-edges}.stealth-fire-line{stroke:color-mix(in srgb, var(--accent) 80%, white);stroke-width:1.5px;stroke-dasharray:5 5;opacity:.6;pointer-events:none}.stealth-fire-line.stealth-fire-line-hot{stroke:var(--status-critical);stroke-width:2.5px;opacity:.95;filter:drop-shadow(0 0 3px var(--status-critical))}.stealth-bullet{stroke:#fff2b0;stroke-width:2.5px;stroke-linecap:round;filter:drop-shadow(0 0 3px var(--status-warning));pointer-events:none}.stealth-bullet.stealth-enemy-bullet{stroke:var(--status-critical);stroke-width:5px;filter:drop-shadow(0 0 4px var(--status-critical))}.stealth-hp-hud{align-items:center;gap:3px;margin-right:8px;font-size:1rem;line-height:1;display:inline-flex}.stealth-hp-pip{color:var(--status-critical);text-shadow:0 0 4px color-mix(in srgb, var(--status-critical) 60%, transparent)}.stealth-hp-pip.stealth-hp-pip-lost{color:var(--text-muted);opacity:.45;text-shadow:none}.stealth-player.stealth-player-hurt{animation:.4s ease-out stealth-player-hurt}@keyframes stealth-player-hurt{0%{filter:brightness(2.2) drop-shadow(0 0 6px var(--status-critical))}to{filter:none}}.stealth-noise-ping{fill:none;stroke:var(--status-critical);stroke-width:3px;transform-box:fill-box;transform-origin:50%;pointer-events:none;animation:.65s ease-out forwards stealth-noise-ping}@keyframes stealth-noise-ping{0%{opacity:.9;transform:scale(.5)}to{opacity:0;transform:scale(6)}}.stealth-alert-mark{paint-order:stroke;stroke:#000;stroke-width:3px;pointer-events:none;transform-box:fill-box;transform-origin:bottom;font-size:26px;font-weight:900;animation:1.2s ease-out forwards stealth-alert-mark}.stealth-alert-mark-chase{fill:var(--status-critical,#e0524a)}.stealth-alert-mark-body{fill:var(--status-warn,#e0a24a)}.stealth-interior-tint{z-index:2;pointer-events:none;opacity:0;background:radial-gradient(#1422341f 0%,#060c1680 100%);transition:opacity .6s;position:absolute;inset:0}.stealth-interior-tint.stealth-interior-tint-active{opacity:1}.stealth-arena,.stealth-arena *{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.stealth-arena img,.stealth-arena image,.stealth-action-icon,.stealth-leader-icon{-webkit-user-drag:none;user-drag:none}.stealth-action-icon,.stealth-leader-icon{pointer-events:none}.stealth-action-button,.stealth-leader-button,.stealth-joystick-base{touch-action:none}.wave-world{background:#05070a;width:100%;height:100%;display:block}.stealth-player-sprite,.stealth-follower-sprite,.wave-creature{image-rendering:pixelated;image-rendering:crisp-edges}.stealth-follower-sprite{opacity:.9}.wave-creature{filter:drop-shadow(0 0 1.5px #000000f2)drop-shadow(0 0 1.5px #000000f2)drop-shadow(0 0 4px #ff5c3cf2)brightness(1.28)contrast(1.22)saturate(1.35)}.wave-creature-hurt{filter:brightness(2.4)saturate(.3)drop-shadow(0 0 4px #fff)}.wave-creature-dead{opacity:0;transition:opacity .25s}.wave-hold-ring{fill:color-mix(in srgb, var(--status-good,#59c67f) 8%, transparent);stroke:var(--status-good,#59c67f);stroke-width:2px;stroke-dasharray:5 6;opacity:.6}.wave-hold-ring.wave-hold-ring-active{opacity:1}.wave-hold-arc{fill:none;stroke:var(--status-good,#59c67f);stroke-width:5px;stroke-linecap:round}.wave-hold-core{fill:color-mix(in srgb, var(--status-good,#59c67f) 55%, #0a140d);stroke:var(--status-good,#59c67f);stroke-width:1.5px}.wave-survey{align-items:center;gap:8px;display:flex}.wave-survey-track{border:1px solid var(--border);background:#00000073;border-radius:6px;width:min(42vw,320px);height:12px;overflow:hidden}.wave-survey-fill{background:linear-gradient(90deg, color-mix(in srgb, var(--status-good,#59c67f) 70%, #000), var(--status-good,#59c67f));width:0%;height:100%;transition:width .15s linear}.wave-survey-label{color:var(--text-secondary);white-space:nowrap;font-size:.82rem}.wave-threat{color:var(--status-critical,#e0524a);text-align:right;min-width:34px;font-size:.9rem;font-weight:700}.wave-ammo{z-index:5;border-radius:var(--radius-sm);border:1px solid var(--border);pointer-events:none;-webkit-user-select:none;user-select:none;background:#060a0e99;flex-direction:column;align-items:center;gap:3px;padding:4px 8px;display:flex;position:absolute;bottom:118px;left:16px}.wave-ammo.wave-hidden{display:none}.wave-ammo-mag{flex-wrap:wrap;justify-content:center;gap:2px 3px;max-width:108px;display:flex}.wave-bullet{width:8px;height:15px;image-rendering:pixelated;image-rendering:crisp-edges;transition:opacity 80ms linear,filter 80ms linear}.wave-bullet.wave-bullet-spent{opacity:.18;filter:grayscale()}.wave-ammo.wave-ammo-low .wave-bullet:not(.wave-bullet-spent){filter:drop-shadow(0 0 2px var(--status-warn,#e0a24a))}.wave-ammo-reload{background:#00000080;border-radius:3px;width:52px;height:5px;overflow:hidden}.wave-ammo-reload-fill{background:var(--status-critical,#e0524a);width:0%;height:100%;transition:width 80ms linear}.wave-primary-btn{cursor:pointer;border-color:color-mix(in srgb, var(--status-good,#59c67f) 55%, var(--border-strong));width:126px;height:126px;bottom:12px;left:12px}.wave-primary-btn .stealth-action-icon{width:54px;height:54px}.wave-ability-btn{cursor:pointer;width:62px;height:62px;left:150px;overflow:hidden}.wave-ability-explosive{bottom:78px}.wave-ability-turret{bottom:12px}.wave-ability-btn .stealth-action-icon{width:34px;height:34px}.wave-cd-fill{pointer-events:none;background:#060a0eb8;width:100%;height:0%;position:absolute;bottom:0;left:0}.wave-cd-text{color:#fff;text-shadow:0 1px 2px #000;pointer-events:none;justify-content:center;align-items:center;font-size:1.1rem;font-weight:800;display:none;position:absolute;inset:0}.wave-ability-btn.wave-ability-cooling{border-color:var(--border);opacity:.92;cursor:default}.wave-ability-btn.wave-ability-cooling .wave-cd-text{display:flex}.wave-ability-btn:disabled{cursor:default}.wave-ammo{bottom:146px}.wave-turret-sprite{image-rendering:pixelated;image-rendering:crisp-edges}.wave-turret-arc{fill:color-mix(in srgb, var(--accent,#4bd6d0) 9%, transparent);stroke:color-mix(in srgb, var(--accent,#4bd6d0) 45%, transparent);stroke-width:1.5px;stroke-dasharray:5 6}.wave-turret-expired{transition:opacity .25s;opacity:0!important}.wave-mine-body{fill:#1a1c20;stroke:var(--status-critical,#e0524a);stroke-width:1.5px}.wave-mine-light{fill:var(--status-critical,#e0524a);animation:1s ease-in-out infinite wave-mine-blink}@keyframes wave-mine-blink{0%,to{opacity:.35}50%{opacity:1}}.wave-hold-ring.wave-hold-ring-blocked{stroke:var(--status-warn,#e0a24a);fill:color-mix(in srgb, var(--status-warn,#e0a24a) 16%, transparent);opacity:1;animation:none}.wave-survey.wave-survey-blocked .wave-survey-fill{background:var(--status-warn,#e0a24a)}.wave-survey.wave-survey-blocked .wave-survey-label{color:var(--status-warn,#e0a24a);font-weight:700}@keyframes stealth-alert-mark{0%{opacity:0;transform:translateY(4px)scale(.6)}18%{opacity:1;transform:translateY(0)scale(1.1)}70%{opacity:1}to{opacity:0;transform:translateY(-10px)scale(1)}}.stealth-bomb-core{fill:var(--status-critical);stroke:#fff;stroke-width:1px;animation:.5s ease-in-out infinite stealth-bomb-pulse}.stealth-bomb-range{fill:color-mix(in srgb, var(--status-critical) 12%, transparent);stroke:color-mix(in srgb, var(--status-critical) 70%, transparent);stroke-width:1.5px;stroke-dasharray:4 4}@keyframes stealth-bomb-pulse{0%,to{transform-box:fill-box;transform-origin:50%;opacity:.8;transform:scale(.8)}50%{transform-box:fill-box;transform-origin:50%;opacity:1;transform:scale(1.25)}}.stealth-bomb.stealth-bomb-detonated .stealth-bomb-range{fill:color-mix(in srgb, var(--status-critical) 55%, transparent);stroke:#fff;stroke-width:3px;animation:.45s ease-out forwards stealth-bomb-blast}.stealth-bomb.stealth-bomb-detonated .stealth-bomb-core{opacity:0}@keyframes stealth-bomb-blast{0%{opacity:1}to{opacity:0}}.stealth-console-marker{fill:color-mix(in srgb, var(--accent) 14%, transparent);stroke:var(--accent);stroke-width:2px;opacity:.9;animation:1.8s ease-in-out infinite stealth-console-idle}@keyframes stealth-console-idle{0%,to{opacity:.55}50%{opacity:.95}}.stealth-console-icon{image-rendering:pixelated;image-rendering:crisp-edges}.stealth-console.stealth-console-used{opacity:.4;filter:grayscale()}.stealth-console.stealth-console-used .stealth-console-marker{stroke:var(--text-muted);animation:none}.stealth-action-button.stealth-action-button-console.stealth-action-button-lit{border-color:var(--accent);box-shadow:0 0 12px color-mix(in srgb, var(--accent) 65%, transparent)}.stealth-npc-marker{fill:color-mix(in srgb, var(--status-good,#59c67f) 16%, transparent);stroke:var(--status-good,#59c67f);stroke-width:2px;opacity:.9;animation:1.9s ease-in-out infinite stealth-npc-idle}@keyframes stealth-npc-idle{0%,to{opacity:.5}50%{opacity:.95}}.stealth-npc-sprite{image-rendering:pixelated;image-rendering:crisp-edges}.stealth-npc.stealth-npc-talked .stealth-npc-marker{stroke:var(--text-muted);opacity:.45;animation:none}.stealth-npc.stealth-npc-dead .stealth-npc-marker{stroke:var(--status-critical,#e0524a);fill:color-mix(in srgb, var(--status-critical,#e0524a) 30%, transparent);animation:none}.stealth-npc.stealth-npc-dead .stealth-npc-sprite{filter:grayscale()brightness(.7)sepia()hue-rotate(-40deg)saturate(3);opacity:.75}.stealth-npc.stealth-npc-following .stealth-npc-marker{display:none}.stealth-action-button.stealth-action-button-talk.stealth-action-button-lit{border-color:var(--status-good,#59c67f);box-shadow:0 0 12px color-mix(in srgb, var(--status-good,#59c67f) 65%, transparent)}.stealth-dialogue{z-index:60}.stealth-dialogue-panel{background:var(--surface-raised,#12161c);border:1px solid var(--status-good,#59c67f);border-radius:var(--radius-sm);flex-direction:column;gap:10px;max-width:460px;padding:18px 20px 20px;display:flex}.stealth-dialogue-speaker{color:var(--status-good,#59c67f);align-items:center;gap:8px;font-weight:700;display:flex}.stealth-dialogue-portrait{width:30px;height:30px;image-rendering:pixelated;image-rendering:crisp-edges}.stealth-dialogue-title{color:var(--text-primary);margin:0}.stealth-dialogue-body{color:var(--text-primary);margin:0;font-size:.92rem;line-height:1.4}.stealth-dialogue-actions{flex-wrap:wrap;justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.stealth-dialogue-btn{margin-top:0}.stealth-dialogue-recruit{border-color:var(--status-good,#59c67f);color:var(--status-good,#59c67f)}.stealth-intel-toast{z-index:8;border-radius:var(--radius-sm);background:color-mix(in srgb, var(--status-good,#59c67f) 22%, #060a08e6);border:1px solid var(--status-good,#59c67f);color:#eafaf0;white-space:nowrap;pointer-events:none;padding:8px 16px;font-size:.9rem;font-weight:600;animation:2.6s ease-in-out forwards stealth-intel-toast;position:absolute;top:22%;left:50%;transform:translate(-50%)}@keyframes stealth-intel-toast{0%{opacity:0;transform:translate(-50%)translateY(6px)}12%{opacity:1;transform:translate(-50%)translateY(0)}80%{opacity:1}to{opacity:0}}.stealth-beacon{fill:color-mix(in srgb, var(--accent) 22%, transparent);stroke:var(--accent);stroke-width:2px;opacity:0;pointer-events:none}.stealth-beacon.stealth-beacon-live{opacity:1;animation:.9s ease-out infinite stealth-beacon-pulse}@keyframes stealth-beacon-pulse{0%{transform-box:fill-box;transform-origin:50%;opacity:.9;transform:scale(.6)}to{transform-box:fill-box;transform-origin:50%;opacity:0;transform:scale(1.7)}}.stealth-player.stealth-player-cloaked{opacity:.35;filter:brightness(1.5) drop-shadow(0 0 4px color-mix(in srgb, var(--accent) 80%, white))}.timed-countdown{flex-direction:column;gap:4px;margin-top:10px;display:flex}.timed-countdown-track{background:var(--border-strong);border-radius:3px;height:6px;overflow:hidden}.timed-countdown-fill{background:var(--accent);height:100%;transition:width .2s linear,background-color .4s}.timed-countdown-label{color:var(--text-primary);text-align:right;font-size:.85rem;font-weight:700}.timed-countdown-hint{color:var(--text-muted);font-size:.75rem}.threat-banner{border-bottom:1px solid var(--status-warning);color:var(--status-warning);text-align:center;background:#fab2191f;padding:8px 16px;font-size:.85rem;font-weight:600}.threat-panel-alert{border-color:var(--status-critical)}.modal.threat-report h3{color:var(--status-good)}.modal.threat-report.lost h3{color:var(--status-critical)}.game-over-screen{background:radial-gradient(ellipse at top, #d03b3b26 0%, var(--surface-page) 60%);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.game-over-panel{text-align:center;background:var(--surface-panel);border:1px solid var(--status-critical);border-radius:var(--radius-lg);max-width:480px;padding:32px}.game-over-panel h1{color:var(--status-critical);margin-top:0}.game-over-panel p{color:var(--text-secondary);line-height:1.6}.event-browser-overlay{z-index:60;background:var(--surface-page);padding:24px;position:fixed;inset:0;overflow-y:auto}.event-browser-header{max-width:900px;margin:0 auto 16px;padding-right:100px;position:relative}.event-browser-controls{flex-wrap:wrap;gap:8px;max-width:900px;margin:0 auto 16px;display:flex}.event-browser-search{background:var(--surface-panel);border:1px solid var(--border);border-radius:var(--radius-sm);min-width:220px;color:var(--text-primary);flex:1;padding:8px 12px;font-size:.85rem}.event-browser-search:focus{border-color:var(--accent);outline:none}.event-browser-list{flex-direction:column;gap:8px;max-width:900px;margin:0 auto;display:flex}.event-browser-planet{background:var(--surface-panel);border:1px solid var(--border);border-radius:var(--radius-md);padding:4px 16px}.event-browser-planet summary{cursor:pointer;align-items:center;gap:8px;padding:10px 0;list-style:none;display:flex}.event-browser-planet summary::-webkit-details-marker{display:none}.event-browser-planet summary:before{content:"▸";color:var(--text-muted);transition:transform .15s}.event-browser-planet[open] summary:before{transform:rotate(90deg)}.event-browser-summary-meta{color:var(--text-muted);margin-left:auto;font-size:.78rem}.event-browser-node-list{flex-direction:column;gap:10px;padding-bottom:12px;display:flex}.event-browser-node{background:var(--surface-panel-alt);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px}.event-browser-node-head{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:4px;display:flex}.event-browser-type-tag{text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:1px 6px;font-size:.68rem}.event-browser-gating{color:var(--text-muted);margin-left:auto;font-size:.72rem}.event-browser-node-desc{color:var(--text-secondary);margin-bottom:8px;font-size:.85rem;line-height:1.4}.event-browser-choices{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:8px;display:grid}.event-browser-choice{background:var(--surface-panel);border-radius:var(--radius-sm);padding:8px 10px}.event-browser-choice-head{align-items:center;gap:5px;font-size:.82rem;font-weight:600;display:flex}.event-browser-choice-desc{color:var(--text-muted);margin-top:3px;font-size:.76rem}.event-browser-consequence{color:var(--text-secondary);font-size:.8rem;line-height:1.4}.event-browser-risk{color:var(--status-warning);margin-top:6px;font-size:.76rem}@media (width<=640px){.event-browser-choices{grid-template-columns:1fr}}.planet-glyph.occupied .core{stroke:var(--status-critical);stroke-width:2px;stroke-dasharray:4 3}.planet-glyph.occupied text{fill:var(--status-critical)}.occupation-note{border-left:3px solid var(--status-critical);background:color-mix(in srgb, var(--status-critical) 12%, transparent);color:var(--text-secondary);margin:0 0 8px;padding:6px 8px;font-size:.8rem;line-height:1.4}.territory-fill{opacity:.14;pointer-events:none}.territory-edge{opacity:.95;pointer-events:none}.territory-label{letter-spacing:.22em;opacity:.55;pointer-events:none;text-transform:uppercase;paint-order:stroke;stroke:var(--surface-page);stroke-width:3px;stroke-linejoin:round;font-weight:700}.annexation-actions{justify-content:flex-end;gap:8px;margin-top:14px;display:flex}.discovery-list{flex-direction:column;gap:6px;margin:10px 0;display:flex}.discovery-row{background:var(--surface-panel-alt);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;gap:10px;padding:7px 10px;display:flex}.discovery-visual{border-radius:var(--radius-sm);background:var(--surface-raised);height:40px;color:var(--accent);flex:0 0 40px;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.discovery-visual-good{color:var(--status-good)}.discovery-visual-critical{color:var(--status-critical)}.discovery-thumb{object-fit:cover;width:100%;height:100%;display:block}.discovery-body{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.discovery-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);font-size:.68rem}.discovery-value{color:var(--accent);overflow-wrap:anywhere;font-size:.9rem;font-weight:600}.discovery-value-good{color:var(--status-good)}.discovery-value-critical{color:var(--status-critical)}.discovery-note{color:var(--text-muted);font-size:.75rem}.discovery-go{border:1px solid var(--border-strong);width:30px;height:30px;color:var(--text-secondary);background:0 0;border-radius:50%;flex:none;justify-content:center;align-items:center;transition:border-color .15s,color .15s,background .15s;display:inline-flex}.discovery-go:hover,.discovery-go:focus-visible{border-color:var(--accent);color:var(--accent);background:#35c7e01a;outline:none}.liberation-note{border-left:3px solid var(--status-good);background:color-mix(in srgb, var(--status-good) 12%, transparent);color:var(--text-secondary);margin:0 0 8px;padding:6px 8px;font-size:.8rem;line-height:1.4}.planet-power{align-items:center;gap:10px;margin:0 0 10px;font-size:.82rem;display:flex}.planet-power-label{color:var(--text-secondary);letter-spacing:.06em;text-transform:uppercase;flex:none;font-size:.68rem}.garrison-gauge{align-items:center;gap:6px;display:flex}.garrison-gauge.tone-hostile{--garrison-color:var(--type-hostile)}.garrison-gauge.tone-friendly{--garrison-color:var(--type-friendly)}.garrison-chevron{fill:var(--garrison-color,var(--status-critical));stroke:#00000059;stroke-width:1px}.garrison-chevron.spent{fill:#0000;stroke:var(--border-strong)}.garrison-chevron.final{fill:var(--status-good);animation:1.6s ease-in-out infinite garrison-final-pulse}@keyframes garrison-final-pulse{0%,to{opacity:1}50%{opacity:.55}}.garrison-overflow{color:var(--garrison-color,var(--status-critical));font-variant-numeric:tabular-nums;font-size:.75rem}.garrison-gauge.broken{color:var(--status-good);font-size:.8rem}.garrison-track{background:var(--border-strong);border-radius:3px;flex:1;height:6px;overflow:hidden}.garrison-track-fill{background:var(--garrison-color,var(--status-critical));height:100%}.planet-headline{color:var(--text-secondary);flex-wrap:wrap;gap:14px;margin:0 0 6px;font-size:.85rem;display:flex}.planet-headline-item{align-items:center;gap:6px;display:inline-flex}.planet-headline-label{color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;font-size:.68rem}.danger-rating{align-items:center;gap:3px;display:inline-flex}.danger-pip{border:1px solid var(--border-strong);background:0 0;border-radius:50%;width:8px;height:8px}.modal.briefing-modal{overscroll-behavior:contain;max-width:560px;max-height:92vh;overflow-y:auto}.briefing-screen{line-height:0;position:relative}.briefing-video{aspect-ratio:16/9;border:1px solid var(--border);background:#000;border-radius:8px;width:100%;display:block}.briefing-sound{background:#04060ac7;padding:5px 10px;font-size:.75rem;position:absolute;bottom:10px;right:10px}.briefing-start{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.briefing-prompter{justify-content:center;align-items:center;min-height:62px;margin:14px 0 4px;display:flex;position:relative}.briefing-prompter[hidden]{display:none}.briefing-line{width:100%;color:var(--text-primary);flex-wrap:wrap;justify-content:center;align-items:baseline;gap:.12em .3em;font-size:1.02rem;line-height:1.5;display:flex}@keyframes briefing-line-out{0%{opacity:1;transform:translateY(-50%)}to{opacity:0;transform:translateY(-78%)}}.briefing-line.out{pointer-events:none;animation:.3s forwards briefing-line-out;position:absolute;top:50%;left:0}.briefing-word{opacity:0;filter:blur(3px);transition:opacity .25s,filter .25s}.briefing-word.on{opacity:1;filter:none}@media (prefers-reduced-motion:reduce){.briefing-word{filter:none;transition:none}.briefing-line.out{opacity:0;animation:none}}.briefing-byline{align-items:center;gap:10px;margin:10px 0 14px;display:flex}.briefing-portrait{object-fit:cover;background:var(--surface-raised);outline:1px solid var(--accent-dim);outline-offset:2px;border-radius:50%;flex:0 0 40px;width:40px;height:40px}.briefing-who{color:var(--text-primary);font-size:.9rem;font-weight:600}.briefing-role{color:var(--text-muted);font-size:.78rem}.briefing-text{color:var(--text-secondary);margin:0 0 10px;font-size:.88rem;line-height:1.55}.briefing-signoff{color:var(--accent);margin:0 0 14px;font-size:.88rem;font-style:italic}@keyframes pulse-glow{0%,to{box-shadow:0 0 #fab21959}50%{box-shadow:0 0 0 8px #fab21900}}@keyframes svg-pulse-glow{0%,to{filter:drop-shadow(0 0 1px var(--status-warning));opacity:1}50%{filter:drop-shadow(0 0 9px var(--status-warning));opacity:.75}}.progress-ring circle.track{fill:none;stroke:#ffffff14}.progress-ring circle.fill{fill:none;stroke:var(--accent);stroke-linecap:round;transition:stroke-dashoffset 1s linear}.transfer-beam-group{pointer-events:none}.transfer-beam{stroke:var(--accent);stroke-width:2.5px;stroke-linecap:round;opacity:.6;filter:drop-shadow(0 0 6px var(--accent));transition:opacity .5s}.transfer-pulse{fill:#eafcff;filter:drop-shadow(0 0 6px var(--accent)) drop-shadow(0 0 14px var(--accent));transition:opacity .5s}.fade-out .transfer-beam,.fade-out .transfer-pulse{opacity:0}.event-pulse-dot{animation:1.4s ease-in-out infinite pulse-glow}
