:root{--void: #020208;--panel: rgba(4, 9, 20, .92);--ink: #d6e6f3;--ink-dim: #8199b0;--ink-faint: #4f6378;--hair: rgba(110, 175, 255, .16);--hair-hi: rgba(120, 190, 255, .34);--allied: #00ff66;--hostile: #ff0033;--hostile-ink: #ff4d6a;--wedge: #00d2ff;--amber: #ffb300;--violet: #8a2be2;--violet-ink: #b98cff;--flash: #ffe7ad;--f-display: "Chakra Petch", "Segoe UI", system-ui, sans-serif;--f-body: "IBM Plex Sans Condensed", "Arial Narrow", system-ui, sans-serif;--f-mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;--gap: .5rem;--hit: 32px;color-scheme:dark}*{box-sizing:border-box;border-radius:0}html,body{margin:0;height:100%;background:var(--void);color:var(--ink)}body{font:400 .875rem/1.45 var(--f-body);-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--f-display);font-weight:600;margin:0;letter-spacing:.01em}a{color:var(--wedge)}.mono,.clock,.readout{font-family:var(--f-mono);font-variant-numeric:tabular-nums}:focus-visible{outline:2px solid var(--wedge);outline-offset:2px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.panel{position:relative;background:var(--panel);border:1px solid var(--hair)}.panel:before,.panel:after{content:"";position:absolute;width:9px;height:9px;pointer-events:none}.panel:before{top:-1px;left:-1px;border-top:1px solid var(--hair-hi);border-left:1px solid var(--hair-hi)}.panel:after{bottom:-1px;right:-1px;border-bottom:1px solid var(--hair-hi);border-right:1px solid var(--hair-hi)}.panel-title{font:600 .75rem/1.2 var(--f-display);color:var(--ink-dim);text-transform:none;margin:0 0 var(--gap)}.btn,select,.tabs button{min-height:var(--hit);padding:.25rem .75rem;background:transparent;color:var(--ink);border:1px solid var(--ink-faint);font:500 .8125rem/1 var(--f-display);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:.375rem}.btn:hover,select:hover,.tabs button:hover{border-color:var(--ink-dim)}.btn[aria-pressed=true],.btn[aria-expanded=true],.tabs button[aria-selected=true]{border-color:var(--wedge);color:var(--wedge)}.btn:disabled{color:var(--ink-faint);cursor:not-allowed}select{appearance:none;padding-right:1.5rem;background:var(--panel)}.cta{border-color:var(--wedge);color:var(--wedge)}.tabs{display:inline-flex}.tabs button+button{border-left:none}.catalog{max-width:60rem;margin:0 auto;padding:2.5rem 1rem 4rem}.catalog-head{margin-bottom:1.5rem}.wordmark{font:600 1rem/1 var(--f-display);color:var(--wedge);margin:0 0 1rem;letter-spacing:.04em}.catalog h1{font-size:1.75rem}.lede{color:var(--ink-dim);max-width:46rem}.cards{list-style:none;margin:0;padding:0;display:grid;gap:.75rem}.card{display:grid;grid-template-columns:1fr minmax(12rem,16rem);gap:1rem;padding:1rem 1.125rem}.card h2{font-size:1.25rem}.meta{display:flex;flex-wrap:wrap;gap:.25rem 1rem;color:var(--ink-dim);margin:.25rem 0 .5rem}.summary{margin:0 0 .5rem;max-width:40rem}.sides{list-style:none;display:flex;flex-wrap:wrap;gap:.25rem 1rem;padding:0;margin:0}.sides li:before{content:"";display:inline-block;width:.625rem;height:.625rem;margin-right:.375rem;background:var(--side)}.tag{color:var(--amber);margin:.5rem 0 0;font-size:.8125rem}.card-side{display:flex;flex-direction:column;gap:.5rem;justify-content:center}@media (max-width: 599px){.card{grid-template-columns:1fr}}.meter{height:6px;border:1px solid var(--hair)}.meter-bar{display:block;height:100%;background:var(--wedge)}.meter-text{color:var(--ink-dim)}.card.broken{border-color:#ff4d6a66}.card-error{color:var(--hostile-ink)}.card-error ul{margin:.25rem 0;padding-left:1rem;color:var(--ink)}.err-title{font-family:var(--f-display);font-weight:600;margin:0}.state{padding:1.25rem;max-width:36rem;margin:3rem auto}.state progress{width:100%;height:6px;appearance:none;border:1px solid var(--hair);background:transparent}.state progress::-webkit-progress-bar{background:transparent}.state progress::-webkit-progress-value{background:var(--wedge)}.state progress::-moz-progress-bar{background:var(--wedge)}.errors{color:var(--hostile-ink);font-family:var(--f-mono);font-size:.8125rem;white-space:pre-wrap}.viewer{position:fixed;inset:0;overflow:hidden}.plot{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none}.labels{position:absolute;inset:0;pointer-events:none;overflow:hidden}.lbl{position:absolute;left:0;top:0;white-space:nowrap;font:500 .6875rem/1.2 var(--f-display);text-transform:uppercase;letter-spacing:.06em;color:var(--ink);padding-left:10px}.lbl:before{content:"";position:absolute;left:0;top:.5em;width:6px;border-top:1px solid currentColor}.lbl small{display:block;font:400 .6875rem/1.2 var(--f-mono);text-transform:none;letter-spacing:0;color:var(--ink-dim)}.lbl.allied{color:var(--allied)}.lbl.hostile{color:var(--hostile-ink)}.lbl.ghost{opacity:.7}.lbl.limit,.lbl.selected{color:var(--wedge)}.lbl.hazard{color:var(--amber)}.lbl.star{color:var(--flash)}.lbl.junction{color:var(--violet-ink)}.lbl.damage{color:var(--hostile-ink)}.lbl.title{font-size:.8125rem}.hud{position:absolute;inset:0;display:grid;gap:var(--gap);padding:var(--gap);pointer-events:none;grid-template-columns:minmax(14rem,18rem) 1fr minmax(16rem,22rem);grid-template-rows:auto minmax(0,1fr) auto}.hud>*{pointer-events:auto}.topbar{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:var(--gap);padding:.375rem .5rem}.topbar .title{font-size:.9375rem;margin-right:auto}.clock{font-size:1rem;color:var(--ink);min-width:6.5rem;text-align:center}.group{display:inline-flex;gap:.25rem;flex-wrap:wrap}.drawer-toggle{display:none}.forces{grid-column:1;grid-row:2;overflow:auto;padding:.75rem}.right{grid-column:3;grid-row:2;display:flex;flex-direction:column;gap:var(--gap);min-height:0}.log{flex:1;min-height:0;display:flex;flex-direction:column;padding:.75rem}.log-list{list-style:none;margin:0;padding:0;overflow:auto;flex:1;font:400 .75rem/1.45 var(--f-mono)}.log-list li{padding:.125rem 0;border-bottom:1px solid var(--hair)}.log-list li.allied{color:var(--ink);border-left:2px solid var(--allied);padding-left:.375rem}.log-list li.hostile{color:var(--ink);border-left:2px solid var(--hostile);padding-left:.375rem}.inspector{padding:.75rem;max-height:45%;overflow:auto}.transport{grid-column:1 / -1;grid-row:3;padding:.375rem .5rem;display:grid;gap:.25rem}.transport-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--gap)}.transport .play[aria-pressed=true]{box-shadow:0 0 8px var(--wedge)}.readout{color:var(--ink-dim);font-size:.75rem}.timeline{position:relative;padding-top:1rem}.scrub{width:100%;appearance:none;background:transparent;height:32px;margin:0}.scrub::-webkit-slider-runnable-track{height:2px;background:var(--ink-faint)}.scrub::-moz-range-track{height:2px;background:var(--ink-faint)}.scrub::-webkit-slider-thumb{appearance:none;width:3px;height:20px;margin-top:-9px;background:var(--wedge);box-shadow:0 0 10px var(--wedge);border:none}.scrub::-moz-range-thumb{width:3px;height:20px;background:var(--wedge);box-shadow:0 0 10px var(--wedge);border:none}.ticks{position:absolute;left:0;right:0;top:0;height:1rem;pointer-events:none}.tick{position:absolute;top:0;font:400 .625rem/1 var(--f-mono);color:var(--ink-dim);white-space:nowrap;transform:translate(-1px);padding-left:3px;border-left:1px solid var(--ink-faint)}.tick.end{transform:translate(-100%);padding:0 3px 0 0;border-left:none;border-right:1px solid var(--ink-faint)}.notice{position:absolute;left:50%;top:45%;transform:translate(-50%,-50%);padding:.75rem 1rem;max-width:min(28rem,90vw);text-align:center}.bottombar{display:none}.pips{list-style:none;margin:.25rem 0 .75rem;padding:0;display:flex;flex-wrap:wrap;gap:.125rem .75rem;font:400 .75rem/1.4 var(--f-mono)}.pip.st-0:before{content:"■ ";color:var(--allied)}.pip.st-1:before{content:"▣ ";color:var(--amber)}.pip.st-2:before{content:"◩ ";color:var(--amber)}.pip.st-3:before{content:"✕ ";color:var(--hostile-ink)}.pip.st-4:before{content:"↗ ";color:var(--violet-ink)}.pip.st-5:before{content:"⚑ ";color:var(--ink-dim)}.unit{margin-bottom:.75rem}.unit h3{font-size:.8125rem}.unit button{all:unset;cursor:pointer;min-height:24px;display:inline-flex;align-items:center}.unit button:focus-visible{outline:2px solid var(--wedge)}.side-head{font:600 .8125rem/1.2 var(--f-display);margin:.5rem 0}.side-head.allied{color:var(--allied)}.side-head.hostile{color:var(--hostile-ink)}.figs{display:grid;grid-template-columns:auto 1fr;gap:.125rem .75rem;margin:.5rem 0;font-size:.8125rem}.figs dt{color:var(--ink-dim)}.figs dd{margin:0}.ev{all:unset;cursor:help;border-bottom:1px dotted var(--ink-faint);min-height:24px;display:inline-flex;align-items:center}.ev:focus-visible{outline:2px solid var(--wedge)}.src{display:block;color:var(--ink-dim);font-size:.75rem}.sub-ok:before{content:"■ ";color:var(--allied)}.sub-lost:before{content:"✕ ";color:var(--hostile-ink)}.menu{position:absolute;z-index:5;top:4rem;right:.5rem;padding:.75rem;min-width:15rem;max-width:calc(100vw - 1rem);max-height:70vh;overflow:auto}.menu label{display:flex;align-items:center;gap:.5rem;min-height:var(--hit);cursor:pointer}.menu small{color:var(--ink-dim);display:block}.menu fieldset{border:none;margin:0 0 .5rem;padding:0}.menu legend{font:600 .75rem/1.2 var(--f-display);color:var(--ink-dim);margin-bottom:.25rem}.shot{display:block;width:100%;text-align:left;margin-bottom:.25rem}dialog.dialog{color:var(--ink);max-width:min(40rem,92vw);padding:1.25rem}dialog.dialog::backdrop{background:#02020899;backdrop-filter:blur(6px)}dialog .notes{white-space:pre-wrap;font-size:.875rem;max-height:60vh;overflow:auto}kbd{font-family:var(--f-mono);border:1px solid var(--hair-hi);padding:0 .25rem}@media (max-width: 1099px){.hud{grid-template-columns:1fr}.forces,.right{position:absolute;top:3.5rem;bottom:6.5rem;width:min(22rem,90vw);z-index:4;display:none}.forces{left:var(--gap)}.right{right:var(--gap)}.forces.open{display:block}.right.open{display:flex}.drawer-toggle{display:inline-flex}}@media (max-width: 859px){.tabs button{padding:.25rem .5rem}.forces,.right{top:0;bottom:0;width:min(24rem,100vw)}.topbar .title{flex-basis:100%}}@media (max-width: 519px){.hud{grid-template-rows:auto minmax(0,1fr) auto auto}.bottombar{display:flex;grid-column:1;grid-row:3;gap:.25rem}.bottombar .btn{flex:1}.transport{grid-row:4}.drawer-toggle,.optional{display:none}.forces,.right{left:0;right:0;width:auto;top:30vh;bottom:0}}@media (pointer: coarse){:root{--hit: 44px}.scrub{height:44px}.ev,.unit button{min-height:44px;display:inline-flex;align-items:center}}@media (prefers-reduced-motion: reduce){*{transition:none!important;animation:none!important}}
