@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=IBM+Plex+Mono:wght@400;500;600&family=IBM+Plex+Sans:wght@400;500;600&display=swap');
:root{color-scheme:dark;--bg:#080c10;--panel:#10171c;--line:#57492b;--gold:#dfbb68;--blue:#62b9e5;--green:#73c993;--red:#ee776c;--purple:#c399e6;--text:#e5e0d4;--muted:#99a8ac;--mono:'IBM Plex Mono',monospace;--display:'Bebas Neue','Arial Narrow',sans-serif}*{box-sizing:border-box}body{margin:0;color:var(--text);background:radial-gradient(ellipse at 50% 0,#1e292d 0,transparent 55%),var(--bg);font:14px/1.5 'IBM Plex Sans',sans-serif}button,a,select,input{touch-action:manipulation}button,select{font:inherit}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer;color:var(--gold);border:1px solid var(--line);background:#11191e;border-radius:3px}button:disabled{cursor:default;opacity:.4}button:hover:not(:disabled){border-color:var(--gold);background:#202620}button:focus-visible,a:focus-visible,select:focus-visible{outline:2px solid var(--blue);outline-offset:4px}a{color:var(--gold);text-decoration:none}a:hover{text-decoration:underline}.topbar{display:flex;align-items:center;gap:30px;justify-content:space-between;border-bottom:1px solid var(--line);padding:12px 25px;background:#080c10e6}.brand{font:33px/1 var(--display);letter-spacing:2px}.brand small{display:block;font:9px var(--mono);letter-spacing:2px;color:var(--muted);margin-top:5px}.brand sup{font-size:16px}.topbar nav{display:flex;gap:24px;font:10px var(--mono)}.topbar nav a{color:var(--muted)}.topbar nav a.selected{color:var(--gold)}.build-tag{font:10px var(--mono);color:var(--gold);border:1px solid var(--line);padding:7px 12px}main{max-width:1840px;margin:auto;padding:0 18px}.orientation{display:flex;justify-content:space-between;gap:15px;color:var(--muted);font:9px var(--mono);letter-spacing:1px;padding:16px 0}.chassis{display:grid;grid-template-columns:minmax(225px,.85fr) minmax(520px,2.6fr) minmax(235px,.95fr);gap:14px;align-items:start}.column{display:grid;gap:12px}.panel{border:1px solid var(--line);background:linear-gradient(135deg,#192127b0,#0c1217f2);padding:15px;border-radius:4px;box-shadow:inset 0 1px #eee3b008}.eyebrow,.section-label{font:10px var(--mono);letter-spacing:1.3px;color:var(--gold);margin:0 0 12px}.section-label{display:flex;justify-content:space-between;gap:8px}.section-label span{font-size:8px;color:var(--muted);letter-spacing:.3px;text-align:right}h1,h2,h3,p{margin-top:0}h2{font:25px/1.05 var(--display);letter-spacing:1px;margin-bottom:9px}.micro{font:10px/1.6 var(--mono);color:var(--muted);margin:9px 0 0}.gold{color:var(--gold)}.blue{color:var(--blue)}.green{color:var(--green)}.red{color:var(--red)}.purple{color:var(--purple)}.meter-label{display:flex;justify-content:space-between;font:9px var(--mono);margin:14px 0 6px;color:var(--muted)}.meter-label b{color:var(--text)}.meter{height:10px;background:#05090c;border:1px solid #364044;overflow:hidden}.meter i{display:block;height:100%;background:var(--gold);transition:width .3s}.meter.cdp i{background:var(--green)}.meter.ctp i{background:var(--gold)}.crew-empty{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.crew-empty>div{height:88px;display:grid;place-content:center;text-align:center;border:1px dashed #3b4244;background:#0c1216;color:#69777b;font-size:30px}.crew-empty span{display:block;font:8px var(--mono)}.delta-row{display:flex;justify-content:space-between;gap:10px;font:10px var(--mono);color:var(--muted);padding:5px 0}.delta-row.total{border-top:1px solid var(--line);margin-top:5px;color:var(--gold);font-weight:bold}.inventory-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:12px}.inventory-grid button,.empty-slot{min-height:72px;display:flex;flex-direction:column;align-items:center;justify-content:center}.item-icon{font-size:26px;line-height:1.2}.inventory-grid b{font:7px var(--mono);margin-top:5px}.inventory-grid small{font:9px var(--mono)}.empty-slot{border:1px dashed #3c3b30;color:#665d43;font-size:24px;background:#090e12}.settings{display:grid;gap:10px}.settings>label{font:9px var(--mono);color:var(--muted)}select{width:100%;background:#0b1116;border:1px solid var(--line);color:var(--text);padding:9px}.check{display:flex;align-items:center;gap:7px}.check input{accent-color:var(--gold)}.subtle{min-height:38px;font:9px var(--mono);letter-spacing:.7px;background:transparent;padding:8px 12px}.encounter-title{text-align:center;padding:14px 10px 10px;border:1px solid var(--line);background:#10171c}.encounter-title .eyebrow{font-size:9px;margin:0 0 7px}.encounter-title h1{font:clamp(30px,3.2vw,49px)/1 var(--display);letter-spacing:2px;color:var(--gold);margin:0 0 7px}.encounter-title p:last-child{font-size:12px;color:var(--muted);margin-bottom:0}.scene{height:340px;position:relative;border:1px solid #5a5339;overflow:hidden;background:#0b141b}.room{position:absolute;width:100%;height:100%;inset:0}.scene-shade{position:absolute;inset:0;background:linear-gradient(0deg,#050b0ff0,transparent 45%,#050b0f44)}.scene-caption{position:absolute;z-index:2;bottom:25px;left:25px;right:25px;text-align:center}.location-tag{font:8px var(--mono);letter-spacing:2px;color:#d1c39d}.desk-line{font:22px/1.3 var(--display);letter-spacing:1px;color:#e8ddbd;margin:12px 0}.scene-caption .micro{font-size:8px;letter-spacing:1px}.water{position:absolute;z-index:1;bottom:-20px;left:-5%;width:110%;height:12%;background:linear-gradient(0deg,#173d4fc9,#23617d55);border-top:1px solid #8fcede66;transition:height .7s;border-radius:42% 38% 0 0;animation:swell 6s ease-in-out infinite alternate;pointer-events:none}.water:after{content:'';position:absolute;inset:12px 0 0;background:repeating-linear-gradient(174deg,transparent 0 20px,#84c3d315 22px,transparent 25px 42px)}@keyframes swell{to{transform:translateX(2%) rotate(.7deg)}}.contact{position:absolute;inset:0;z-index:4;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:30px;background:linear-gradient(90deg,#071018ef,#0710188f,#071018ef);backdrop-filter:blur(2px)}.contact h2{font-size:46px;line-height:1;letter-spacing:2px;color:#f0d59b;margin:0 0 12px}.contact p{font-size:12px;max-width:350px;color:#bbc6c8}.primary{padding:13px 22px;background:var(--gold);color:#10151a;border-color:var(--gold);font:12px var(--mono);letter-spacing:1px}.primary:hover:not(:disabled){background:#f2d48e;color:#10151a}.contact .subtle{margin-top:10px}.clash{position:absolute;z-index:5;inset:45px 15px auto;background:#0b1319ed;border:1px solid var(--gold);padding:20px;text-align:center;box-shadow:0 15px 50px #000}.clash b{display:block;font:34px var(--display);color:var(--gold);letter-spacing:3px;transform:rotate(-3deg)}.clash span{font:11px var(--mono)}.clash small{display:block;color:var(--blue);margin-top:8px;font:10px var(--mono)}.submersion{display:flex;gap:18px;padding:13px 16px}.submersion .eyebrow{font-size:8px;white-space:nowrap}.submersion strong{display:block;font:43px var(--display);color:var(--gold);line-height:1}.submersion strong span{font-size:20px}.water-track{flex:1;padding-top:5px}.water-meter{height:15px}.water-meter i{background:linear-gradient(90deg,#4391b8,#cfb465 65%,#dc7764)}.thresholds{display:flex;justify-content:space-between;gap:5px;font:7px/1.7 var(--mono);color:var(--muted);margin-top:7px}.water-track .micro{font-size:8px;margin-top:5px}.turnbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:4px 0}.turnbar>div>span,#progress-label{font:9px var(--mono);color:var(--muted)}#ap{display:block;color:var(--blue);font:18px var(--mono);letter-spacing:3px}#ap small{font-size:9px;letter-spacing:0;color:var(--text)}.end-turn{min-height:44px;padding:10px 15px;background:#332b1a;font:10px var(--mono)}.objective-track{height:3px;background:#293033;margin-top:-6px}.objective-track i{display:block;height:100%;width:0;background:var(--gold);transition:width .3s}.action-section .section-label{margin:3px 0 9px}.action-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.action{position:relative;min-height:120px;border-color:color-mix(in srgb,var(--axis) 55%,#222);border-top:2px solid var(--axis);padding:12px 10px;background:linear-gradient(150deg,color-mix(in srgb,var(--axis) 9%,#111a21),#0b1116);text-align:left;color:var(--text)}.action:hover:not(:disabled){border-color:var(--axis);background:color-mix(in srgb,var(--axis) 15%,#111a21)}.action .cost{position:absolute;right:9px;top:9px;font:8px var(--mono);color:var(--axis)}.action .glyph{font-size:25px;color:var(--axis);line-height:1.2}.action b{display:block;font:17px/1.1 var(--display);letter-spacing:.5px;margin:8px 0;color:var(--axis)}.action p{font-size:10px;line-height:1.4;color:#b8c3c5;margin:0}.action footer{font:7px var(--mono);color:var(--axis);margin-top:9px;letter-spacing:.4px}.center-footer{display:flex;justify-content:space-between;align-items:center;gap:10px}#announce{font:9px var(--mono);color:var(--muted);text-align:center}.enemy-id{border-color:#66403a}.enemy-id h2{color:var(--red)}.enemy-power{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #674037;padding-bottom:7px}.enemy-power span{font:8px var(--mono);color:var(--muted)}.enemy-power strong{font:32px var(--display);color:var(--red)}.ratings{display:flex;justify-content:space-between;color:var(--gold);margin-top:12px;letter-spacing:3px}.ratings span:first-child{color:var(--red)}.intent-queue{list-style:none;margin:0;padding:0}.intent-queue li{padding:10px 0;border-bottom:1px solid #2f3638;font-size:11px}.intent-queue li:last-child{border:0}.intent-top{display:flex;align-items:center;gap:9px}.intent-top b{font:10px var(--mono);color:var(--blue)}.intent-top span{margin-left:auto;color:var(--gold);font:8px var(--mono)}.intent-queue small{display:block;margin:3px 0 0 21px;font:8px var(--mono);color:var(--muted)}.dial{--sweep:72deg;width:112px;height:112px;margin:12px auto;border-radius:50%;background:radial-gradient(circle at center,#11191f 61%,transparent 63%),conic-gradient(from 220deg,var(--gold) 0deg var(--sweep),#303739 var(--sweep) 280deg,transparent 280deg);display:flex;flex-direction:column;justify-content:center;align-items:center}.dial strong{font:38px var(--display);color:var(--gold);line-height:1}.dial small{font:10px var(--mono);color:var(--muted)}.polity-panel>p:not(.micro){text-align:center;font-size:11px;margin-bottom:4px}.evidence-pips{display:flex;gap:6px;margin-top:10px}.evidence-pips i{width:17px;height:22px;border:1px solid #3d515c}.evidence-pips i.on{background:#62b9e53b;border-color:var(--blue)}#battle-log{list-style:none;padding:0;margin:0;max-height:180px;overflow:auto;scrollbar-color:#5a5139 #11191e}#battle-log li{font:9px/1.65 var(--mono);border-bottom:1px solid #293135;padding:7px 0;color:#aebbbe}#battle-log li:first-child{color:var(--text)}#battle-log small{color:var(--gold);margin-right:7px}.result{border:1px solid var(--gold);padding:24px;background:#192020}.result h2{font-size:38px;color:var(--gold)}.result p{color:#bec8c9;font-size:12px}.protected{padding:12px;border-left:2px solid var(--gold);background:#dfbb680a}.result button{margin:12px 8px 0 0;padding:12px}.page-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:28px 0;font:8px/1.7 var(--mono);color:var(--muted)}.page-footer>span{color:var(--gold);white-space:nowrap}.page-footer p{margin:0;max-width:600px}.page-footer a{white-space:nowrap}dialog{max-width:830px;width:calc(100% - 32px);padding:28px;background:#10191f;color:var(--text);border:1px solid var(--gold);border-radius:5px;box-shadow:0 20px 100px #000}dialog::backdrop{background:#02060bcd;backdrop-filter:blur(5px)}dialog h2{font-size:38px;color:var(--gold)}dialog>p{font-size:13px;line-height:1.7;color:#b6c2c7}.modal-heading{display:flex;justify-content:space-between;align-items:start}.modal-heading button{width:38px;height:38px}.manual-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;border-top:1px solid var(--line);padding-top:20px}.manual-grid h3{font:11px var(--mono);color:var(--blue)}.manual-grid p{font-size:12px;color:var(--muted)}.learning-link{display:block;padding:12px;border:1px solid var(--line);margin:8px 0}.learning-link small{display:block;color:var(--muted)}[hidden]{display:none!important}.reduced-motion *{animation:none!important;transition:none!important}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}@media(min-width:1600px){.scene{height:410px}.action{min-height:135px}}@media(max-width:1150px){main{padding:0 12px}.chassis{grid-template-columns:205px minmax(400px,1fr)}.opponent{grid-column:1/-1;grid-template-columns:repeat(3,1fr)}.opponent .log-panel{grid-column:2/-1}.topbar{padding:12px}.topbar nav{gap:12px}.orientation{font-size:8px}.action p{font-size:9px}}@media(max-width:700px){.topbar nav{display:none}.orientation{flex-direction:column;gap:5px;padding:12px 0}.chassis{grid-template-columns:1fr}.center{grid-row:1}.ship{grid-template-columns:1fr 1fr}.ship .identity{grid-column:1/-1}.ship .inventory{grid-column:1/-1}.opponent{grid-template-columns:1fr 1fr}.opponent .log-panel{grid-column:1/-1}.scene{height:330px}.action-grid{grid-template-columns:1fr 1fr}.action{min-height:132px}.action p{font-size:11px}.submersion{gap:10px;padding:12px}.thresholds{font-size:6px}.submersion .eyebrow{font-size:7px}.water-track .micro{font-size:8px}.page-footer{flex-direction:column;align-items:start;gap:9px}.manual-grid{grid-template-columns:1fr;gap:5px}.contact h2{font-size:41px}.encounter-title h1{font-size:36px}.center-footer .subtle{font-size:8px;padding:8px}.center-footer #announce{font-size:8px}.settings select{font-size:12px}.inventory-grid button{min-height:82px}.orientation span:last-child{font-size:7px}.turnbar{flex-wrap:wrap}.crew-empty>div{height:70px}.panel{padding:12px}}
/* Grid children must be allowed to shrink on narrow viewports. */
.column,.panel,.action,.meter-label>span,.section-label>span{min-width:0}.meter-label{gap:8px}.meter-label>span{overflow-wrap:anywhere}.delta-row span{overflow-wrap:anywhere}@media(max-width:700px){.ship,.opponent{grid-template-columns:repeat(2,minmax(0,1fr))}.section-label{flex-wrap:wrap;line-height:1.6}.section-label span{text-align:left}.delta-row{font-size:9px}.settings label{overflow-wrap:anywhere}}
/* Fidelity pass 01: police-chassis lanes, unlit room and turn-driven water. */
:root{--bg:#090b0e;--panel:#111418;--gold:#c9a84c;--line:#64522c;--text:#e8e0d0;--muted:#a6adac}body{background:radial-gradient(ellipse at 50% 0,#1a1b18 0,transparent 55%),var(--bg)}.panel{background:linear-gradient(135deg,#15191be8,#0b0e12f7);border-radius:2px;border-color:#66532d;box-shadow:inset 0 1px #c9a84c16,0 0 14px #c9a84c04}.encounter-title{background:#0d1013;border-color:#66532d}.room-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 47%;filter:brightness(.96) saturate(.8)}.scene{--pressure:0;height:400px;background:#05080a;border-color:#8a7138}.scene-shade{z-index:2;pointer-events:none;background:linear-gradient(0deg,#02060bde,transparent 26%,#02060b14 72%,#02060b66);box-shadow:inset 0 0 calc(35px + var(--pressure)*100px) calc(var(--pressure)*18px) #000;transition:box-shadow 2.8s ease}.scene-caption{z-index:3;bottom:22px}.desk-line{display:inline-block;padding:8px 17px;background:#05090cd9;border:1px solid #79653899;color:#e4d4a7;font:italic 16px/1.4 Georgia,serif;letter-spacing:0;max-width:90%;margin:10px 0}.scene-caption .micro{display:block;color:#a3aaa9}.water{left:-3%;width:106%;bottom:-12px;height:10%;z-index:1;border-radius:40% 48% 0 0;background:linear-gradient(0deg,#08202ee8 0%,#143749b0 65%,#41647777 100%);border-top:1px solid #7b9ba998;box-shadow:0 -6px 22px #53798a1c,inset 0 2px 5px #a7bdc54d;transition:height 3.2s cubic-bezier(.25,.65,.3,1);animation:swell 8s ease-in-out infinite alternate}.water::after{background:repeating-linear-gradient(177deg,transparent 0 16px,#aec4cb14 19px,transparent 21px 39px);opacity:.8}.water::before{content:'';position:absolute;inset:14px 0 0;background:repeating-radial-gradient(ellipse at 40% 20%,transparent 0 22px,#8caeba1c 24px,transparent 26px 53px);opacity:.6;transform:scaleY(.25);transform-origin:center top}.drown-risk .room-art{filter:brightness(.78) saturate(.65)}.instinct-panel .action-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.instinct-panel .action{min-height:117px;padding:10px 8px}.instinct-panel .action b{font-size:17px}.instinct-panel .action p{font-size:9px;line-height:1.5}.instinct-panel .action footer{display:none}.instinct-panel .action .glyph{font-size:24px}.action{border-radius:3px;box-shadow:inset 0 0 12px color-mix(in srgb,var(--axis) 8%,transparent),0 1px 3px #000}.action:hover:not(:disabled){box-shadow:inset 0 0 18px color-mix(in srgb,var(--axis) 14%,transparent),0 0 10px color-mix(in srgb,var(--axis) 18%,transparent)}.inventory{border-color:#967a3d}.inventory .section-label{color:#e2c679}.stakes-panel{border-color:#86533d;background:linear-gradient(150deg,#221910aa,#0c1116)}.stake-row{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 0;border-bottom:1px solid #76613a2e;font:9px var(--mono)}.stake-row>span{color:#a6aaa6;letter-spacing:.3px}.stake-row b{font-size:12px;color:#d4b77d}.risk-summary{font:9px/1.7 var(--mono);color:#c4b292;margin:12px 0 0}.risk-summary.critical{color:#f0a08d}.stakes-panel .micro{font-size:8px}.submersion{border-color:#8a7138}.water-meter{height:17px}.water-meter i{transition:width 3.2s cubic-bezier(.25,.65,.3,1)}.water-meter{background:repeating-linear-gradient(90deg,#080d12 0 17px,#4b4840 18px 19px)}.meter i{mask-image:repeating-linear-gradient(90deg,#000 0 17px,transparent 18px 19px)}.thresholds{font-size:8px}.center-footer{margin-top:8px}.turnbar{margin-top:2px}.center>.action-section .action{min-height:150px}.center>.action-section .action .glyph{font-size:35px}.center>.action-section .action b{font-size:21px}.center>.action-section .action p{font-size:11px}.intent-queue li:first-child{background:#c9a84c0b;border:1px solid #8a713855;padding:10px 7px}.intent-queue li:first-child small{margin-left:21px}.enemy-id{border-color:#764338}.chassis{grid-template-columns:minmax(240px,.95fr) minmax(500px,2.6fr) minmax(245px,1fr)}.encounter-title h1{color:#dfc076}.contact{background:linear-gradient(90deg,#05090cdd,#05090c70,#05090cdd);backdrop-filter:blur(1px)}
@media(min-width:1600px){.scene{height:470px}.instinct-panel .action{min-height:125px}}@media(max-width:1150px){.chassis{grid-template-columns:210px minmax(400px,1fr)}.scene{height:360px}.opponent{grid-template-columns:repeat(3,minmax(0,1fr))}.opponent .log-panel{grid-column:auto}.stakes-panel{grid-column:span 2}.center>.action-section .action{min-height:145px}.center>.action-section .action b{font-size:18px}.center>.action-section .action p{font-size:10px}.thresholds{font-size:7px}}@media(max-width:700px){.chassis{grid-template-columns:minmax(0,1fr)}.scene{height:335px}.ship .instinct-panel{grid-column:1/-1;grid-row:3}.instinct-panel .action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.instinct-panel .action{min-height:125px}.instinct-panel .action p{font-size:11px}.opponent{grid-template-columns:repeat(2,minmax(0,1fr))}.stakes-panel{grid-column:1/-1}.opponent .log-panel{grid-column:1/-1}.center>.action-section .action{min-height:145px}.thresholds{font-size:6px}.desk-line{font-size:14px}.scene-caption{left:12px;right:12px}.stake-row{font-size:10px}.stake-row b{font-size:13px}}
