:root{color-scheme:dark;font-family:var(--font-mono);--font-mono: "Courier New", monospace;--fs-xs: 12px;--fs-sm: 12px;--fs-md: 13px;--fs-page: 14px;--fs-lg: 16px;--fs-xl: 17px;--fs-xxl: 18px;--fs-icon: 20px;--fs-stat: 22px;--fs-display: 28px;--sp-1: 1px;--sp-2: 2px;--sp-3: 3px;--sp-4: 4px;--sp-5: 5px;--sp-6: 6px;--sp-7: 7px;--sp-8: 8px;--sp-9: 9px;--sp-10: 10px;--sp-12: 12px;--sp-14: 14px;--sp-16: 16px;--sp-18: 18px;--sp-20: 20px;--sp-24: 24px;--sp-42: 42px;--sp-78: 78px;--sp-80: 80px;--dur-fast: .12s;--dur-slow: .8s;--c-alert: #ff4d68;--c-amber: #ffc34d;--c-bg: #000;--c-block-head-bg: #06313a88;--c-button-bg: #00191d;--c-button-hover-bg: #07505a;--c-cell-bg: #00242a88;--c-cyan: #0ff;--c-cyan-a1: #0ff1;--c-cyan-a2: #0ff2;--c-cyan-a3: #0ff3;--c-cyan-a5: #0ff5;--c-cyan-a6: #0ff6;--c-cyan-a7: #0ff7;--c-cyan-a8: #0ff8;--c-cyan-a9: #0ff9;--c-dim: #5aa;--c-dim-2: #7cc;--c-dim-key: #6cc;--c-dim-label: #6dd;--c-dim-note: #9cc;--c-dim-text: #bdd;--c-epi-fill: #a6ff3a22;--c-epi-hot: #ff6a4d;--c-epi-line: #a6ff3a;--c-epi-low: #b8ff7a;--c-epi-warm: #e4ff5a;--c-event-capability: #eaffff;--c-event-derezz: #ff8a2a;--c-event-derezz-glow: #f60;--c-event-extinction: #ff4cff;--c-event-extinction-glow: #f0f;--c-event-milestone: #ffd85a;--c-event-milestone-glow: #fa0;--c-event-novelty: #fff8c2;--c-event-novelty-glow: #ffd700;--c-event-system: #55ff77;--c-event-system-glow: #0f4;--c-hint-bg: #001a1ee8;--c-infect: #b8ff5a;--c-infect-glow: #7f3;--c-ink: #9ff;--c-ink-hud: #8ff;--c-hud-bg: #001012f4;--c-ink-bright: #aff;--c-ink-chart: #5ff;--c-ink-event: #6ff;--c-ink-flash: #3ff;--c-ink-heading: #7fffff;--c-ink-pale: #cff;--c-ink-soft: #bff;--c-ink-value: #dff;--c-insight-bg: #00323a66;--c-line: #0aa;--c-line-4: #0aa4;--c-line-5: #0aa5;--c-line-6: #0aa6;--c-line-8: #0aa8;--c-line-bright: #0cc;--c-line-bright-8: #0cc8;--c-ok: #6f6;--c-ok-glow: #3f68;--c-panel-bg: #000b0ef4;--c-panel-head-bg: #002027f5;--c-season: #7dd;--c-signal: #ff485f;--c-signal-bg: #160005dd;--c-signal-glow: #f24;--c-signal-line: #f35;--c-skill-bg: #0123;--c-skill-profit-bg: #07391f55;--c-skill-profit-glow: #1f53;--c-sticky-bg: #00181de8;--c-strong: #fff;--c-table-head-bg: #00181d;--c-tooltip-bg: #000c10e8;--c-track: #123;--c-track-2: #0a2a30;--c-x-0008: #0008;--c-x-00120a: #00120a;--c-x-050900: #050900;--c-x-0ef: #0ef;--c-x-0f8: #0f8;--c-x-0f84: #0f84;--c-x-18a83c: #18a83c;--c-x-24190088: #24190088;--c-x-24ff7630: #24ff7630;--c-x-29f: #29f;--c-x-456: #456;--c-x-497b83: #497b83;--c-x-4f8: #4f8;--c-x-59ff91: #59ff91;--c-x-5f8: #5f8;--c-x-5f9: #5f9;--c-x-63ffa0: #63ffa0;--c-x-68aeb9: #68aeb9;--c-x-6fa: #6fa;--c-x-789: #789;--c-x-9cb6b8: #9cb6b8;--c-x-9ff5: #9ff5;--c-x-c58cff: #c58cff;--c-x-c7f6f4: #c7f6f4;--c-x-cc6dff: #cc6dff;--c-x-dffff2: #dffff2;--c-x-f42: #f42;--c-x-f4c: #f4c;--c-x-fc6: #fc6;--c-x-fc68: #fc68;--c-x-ff4fc888: #ff4fc888;--c-x-ff73d1: #ff73d1;--c-x-ffd36a: #ffd36a;--c-x-ffd879: #ffd879;--c-x-ffe9a0: #ffe9a0;--c-x-fff4: #fff4;--c-x-fff5a0: #fff5a0;--edge: linear-gradient(135deg, #bfffff 0, #19e0e0 22%, #0a7a82 55%, #064a52 100%);--edge-dim: linear-gradient(135deg, #5fb8bd 0, #2a8f9a 30%, #1a5d66 60%, #0e3a41 100%);--edge-hi: #8ff;--edge-warn: linear-gradient(135deg, #ffd2a6 0, #ff8a2a 22%, #a8480a 55%, #5a2604 100%);--edge-warn-hi: #ffb070;--c-orange: #ff8a2a;--c-orange-ink: #ffc08a;--c-head-bg: linear-gradient(90deg, #04464fcc, #02242a00 80%);--c-head-warn-bg: linear-gradient(90deg, #5a2a0acc, #2a120200 80%);--c-track-dark: #05181c;--c-track-line: #0a3a42;--c-read-label: #93b3c4;--c-read-hair: #cfefff2e;--c-read-hair-strong: #cfefff66;--font-read: "Century Gothic", "Avenir Next", Futura, "Segoe UI", "Helvetica Neue", Arial, sans-serif;--track-title: .34em;--track-label: .14em;--glow-swatch: 0 0 7px currentColor;--glow-button: 0 0 7px var(--c-cyan-a2);--glow-button-hover: 0 0 9px var(--c-cyan-a7);--glow-signal: 0 0 20px var(--c-signal-glow);--glow-signal-text: 0 0 8px var(--c-signal-glow);--glow-terminal-panel: none;--glow-terminal-panel-text: 0 0 5px var(--c-cyan-a9);--glow-energy-readout-i: 0 0 8px var(--c-x-0f8);--glow-genome-code-text: 0 0 5px currentColor;--glow-activation-i: 0 0 5px currentColor;--glow-skill-profile-profitable: inset 0 0 8px var(--c-skill-profit-glow);--glow-chromosome-segment-expressed: 0 0 8px currentColor, inset 0 0 3px var(--c-strong);--glow-routine-state-text: none;--glow-routine-state-on: 0 0 7px var(--c-x-4f8);--glow-code-line-executed: inset 5px 0 8px var(--c-cyan-a2);--glow-opcode-action-text: 0 0 6px var(--c-x-5f8);--glow-insights: inset 0 0 15px var(--c-cyan-a2);--glow-metric-bars-i: 0 0 5px var(--c-cyan);--glow-terminal-panel-svg-polyline-filter: drop-shadow(0 0 2px var(--c-cyan));--glow-hud-text: 0 0 6px var(--c-cyan-a8);--glow-toolbar: 0 0 12px var(--c-cyan-a3);--glow-toolbar-run-info-text: 0 0 6px var(--c-ok-glow);--glow-panel: 0 0 12px var(--c-cyan-a3), inset 0 0 12px var(--c-cyan-a1);--glow-event-derezz-text: 0 0 6px var(--c-event-derezz-glow);--glow-event-extinction-text: 0 0 6px var(--c-event-extinction-glow);--glow-event-system-text: 0 0 6px var(--c-event-system-glow);--glow-event-milestone-text: 0 0 7px var(--c-event-milestone-glow);--glow-event-capability-text: 0 0 8px var(--c-ink-flash);--glow-event-novelty-text: 0 0 9px var(--c-event-novelty-glow);--glow-meter-i: 0 0 6px currentColor;--glow-lineage-track-i: 0 0 5px var(--c-cyan-a5);--glow-epi-head-strong-text: 0 0 9px var(--c-infect-glow);--glow-epi-head-strong-hot-text: 0 0 10px var(--c-x-f42);--glow-mark-diamond: 0 0 5px var(--c-x-fff4);--glow-map-tooltip: 0 0 10px var(--c-cyan-a5);--glow-hint: 0 0 12px var(--c-cyan-a5);--glow-infected-text: 0 0 6px var(--c-infect-glow);--dock-left: clamp(232px, 26.25vw, 336px);--dock-right: clamp(262px, 26.25vw, 336px);--side-w: clamp(340px, 38vw, 500px);--hud-top: 52px;--nav-h: 38px;--hud-ink: var(--c-ink-hud);--hud-line: var(--c-line-8);--hud-bg: var(--c-hud-bg)}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden;background:var(--c-bg)}canvas{display:block}.swatch{width:10px;height:10px;box-shadow:var(--glow-swatch)}button{font:inherit;color:var(--c-ink);border:1px solid var(--c-line);background:var(--c-button-bg);padding:var(--sp-5) var(--sp-8);cursor:pointer;box-shadow:var(--glow-button)}button:hover,button.active{color:var(--c-strong);background:var(--c-button-hover-bg);box-shadow:var(--glow-button-hover)}.signal{position:fixed;z-index:5;left:50%;top:50%;transform:translate(-50%,-50%);color:var(--c-signal);border:1px solid var(--c-signal-line);background:var(--c-signal-bg);padding:var(--sp-14) var(--sp-20);font:700 var(--fs-lg) var(--font-mono);letter-spacing:2px;box-shadow:var(--glow-signal);text-shadow:var(--glow-signal-text)}.hidden{display:none!important}.rain{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:2;pointer-events:none;opacity:.58;mix-blend-mode:screen}.terminal-panel{position:fixed;z-index:8;color:var(--c-ink);background:var(--c-panel-bg);border:1px solid var(--c-line-bright);box-shadow:var(--glow-terminal-panel);font:var(--fs-sm)/1.45 var(--font-mono);text-shadow:var(--glow-terminal-panel-text);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.terminal-panel>header{position:sticky;top:0;z-index:1;display:flex;justify-content:space-between;align-items:center;padding:var(--sp-8) var(--sp-12);color:var(--c-strong);background:var(--c-panel-head-bg);border-bottom:1px solid var(--c-line-bright-8);letter-spacing:2px}.terminal-panel>header button{font-size:var(--fs-icon);padding:0 var(--sp-7)}table{width:100%;border-collapse:collapse}th,td{padding:var(--sp-6) var(--sp-8);text-align:left;border-bottom:1px solid var(--c-line-4)}th{color:var(--c-strong);position:sticky;top:42px;background:var(--c-table-head-bg)}tr[tabindex]{cursor:pointer}tr[tabindex]:hover{background:var(--c-cyan-a2);color:var(--c-strong)}.innovations-panel{top:5vh;right:5vw;bottom:5vh;left:5vw;overflow-y:auto}.innovations-panel>div{padding:var(--sp-12)}.inspector-panel>div{padding:var(--sp-12)}.inspector-panel.derezzed>div>:not(.derez-status){opacity:.42}.derez-status{color:var(--c-alert);font-weight:700;letter-spacing:2px;margin-bottom:var(--sp-8)}.inspect-title{display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-7);font-size:var(--fs-xl);color:var(--c-strong)}.inspect-title button{font-size:var(--fs-xs)}.inspect-title button:first-of-type{margin-left:auto}.inspect-facts{display:grid;gap:var(--sp-5);margin-top:var(--sp-8)}.energy-readout{position:relative;border:1px solid var(--c-line-8);padding:var(--sp-3) var(--sp-5);overflow:hidden}.energy-readout i{position:absolute;inset:0 auto 0 0;background:var(--c-x-0f84);box-shadow:var(--glow-energy-readout-i);z-index:-1}.energy-readout span{position:relative}.genome-code{max-height:120px;overflow:auto;overflow-wrap:anywhere;color:var(--c-x-18a83c);line-height:1.6;text-shadow:var(--glow-genome-code-text)}.genome-code span{cursor:crosshair}.decoding .genome-code{animation:decoding var(--dur-slow) ease-out}@keyframes decoding{0%{filter:blur(3px);opacity:.2}to{filter:none;opacity:1}}.gene-row{display:grid;grid-template-columns:62px 1fr 70px;gap:var(--sp-7);align-items:center;padding:var(--sp-5);border-left:2px solid transparent;transition:var(--dur-fast)}.gene-row.highlight{background:var(--c-cyan-a2);border-left-color:var(--c-strong)}.gene-row small{display:block;opacity:.66}.skill-chip{grid-column:3;font-style:normal;font-weight:700;font-size:var(--fs-xs)}.activation{display:block;height:6px;background:var(--c-track)}.activation i{display:block;height:100%;box-shadow:var(--glow-activation-i)}.drives label{display:grid;grid-template-columns:80px 1fr 40px;gap:var(--sp-8);align-items:center;margin-top:var(--sp-5)}.skill-profile{border-left:3px solid;padding:var(--sp-5) var(--sp-7);margin:var(--sp-5) 0;background:var(--c-skill-bg)}.skill-profile.profitable{background:var(--c-skill-profit-bg);box-shadow:var(--glow-skill-profile-profitable)}.skill-legend{display:flex;gap:var(--sp-9);flex-wrap:wrap}.dossier-panel>div{padding:var(--sp-12)}.dossier-title{display:flex;align-items:center;gap:var(--sp-6);color:var(--c-strong);font-size:var(--fs-xxl)}.dossier-title button{margin-left:auto}.readout{white-space:pre-wrap;margin:var(--sp-7) 0}.mini-caption{margin-top:var(--sp-8);font-size:var(--fs-xs);color:var(--c-dim-note)}.terminal-panel section{margin-top:var(--sp-14);border-top:1px solid var(--c-line-5);padding-top:var(--sp-7)}.terminal-panel h3{margin:0 0 var(--sp-7);font-size:var(--fs-xs);color:var(--c-strong);letter-spacing:1px}.terminal-panel h3 .help-link,.help-link{margin-left:var(--sp-6);padding:0 var(--sp-5);border-radius:50%}.chromosome-strand,.zygosity-markers{display:grid;grid-template-columns:16px repeat(var(--loci, 1),minmax(12px,1fr));gap:var(--sp-3);align-items:center;margin:var(--sp-5) 0}.chromosome-segment,.chromosome-gap{height:17px;opacity:.45;border:1px solid var(--c-x-9ff5)}.chromosome-segment.expressed{opacity:1;box-shadow:var(--glow-chromosome-segment-expressed)}.chromosome-gap{border-style:dashed;opacity:.18}.zygosity-markers span{width:8px;height:8px;justify-self:center;border:1px solid var(--c-ink-bright);border-radius:50%}.zygosity-homozygous{background:var(--c-ink)}.zygosity-heterozygous{background:linear-gradient(90deg,var(--c-ink) 50%,var(--c-x-f4c) 50%)}.zygosity-hemizygous{border-radius:0!important;border-width:0 0 2px!important}.inheritance-badges{display:flex;gap:var(--sp-3);flex-wrap:wrap}.gene-badge{padding:var(--sp-1) var(--sp-3);border:1px solid var(--c-line-8);color:var(--c-ink-soft)}.routine-block{margin:var(--sp-8) 0 var(--sp-14);border:1px solid var(--c-line-5);background:var(--c-x-0008)}.routine-block h4,.code-compare h4{margin:0;padding:var(--sp-4) var(--sp-7);color:var(--c-ink-pale);background:var(--c-block-head-bg)}.routine-block h4{display:flex;gap:var(--sp-7);align-items:center}.routine-state{min-width:25px;padding:var(--sp-1) var(--sp-3);color:var(--c-x-789);border:1px solid var(--c-x-456);text-align:center;text-shadow:var(--glow-routine-state-text)}.routine-state.on{color:var(--c-x-00120a);border-color:var(--c-x-5f9);background:var(--c-x-63ffa0);box-shadow:var(--glow-routine-state-on)}.routine-switch{padding:var(--sp-5) var(--sp-7);color:var(--c-x-ffd879);border-bottom:1px solid var(--c-line-4);background:var(--c-x-24190088);font-weight:700}.code-cycles{position:sticky;top:41px;z-index:1;padding:var(--sp-4);color:var(--c-strong);background:var(--c-sticky-bg)}.code-line{display:grid;grid-template-columns:38px 1fr auto;min-height:21px;padding:var(--sp-2) var(--sp-6);border-left:2px solid transparent;text-shadow:var(--glow-routine-state-text)}.code-line.executed{border-left-color:var(--c-ink-heading);background:var(--c-cyan-a1);box-shadow:var(--glow-code-line-executed)}.code-line.added{background:var(--c-x-24ff7630);border-left-color:var(--c-x-59ff91)}.code-pc{color:var(--c-x-497b83);-webkit-user-select:none;user-select:none}.code-line code{color:var(--c-x-9cb6b8);white-space:pre-wrap}.opcode-data{color:var(--c-x-68aeb9)}.opcode-sense{color:var(--c-amber)}.opcode-memory{color:var(--c-x-c58cff)}.opcode-action{color:var(--c-x-dffff2);text-shadow:var(--glow-opcode-action-text)}.learned-tag{color:var(--c-x-ff73d1);border:1px solid var(--c-x-ff4fc888);padding:0 var(--sp-3)}.value-grid-wrap{margin:var(--sp-8) 0}.value-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-4);margin-top:var(--sp-4)}.value-grid>span{min-width:0;padding:var(--sp-4);border:1px solid var(--c-line-5);background:var(--c-cell-bg)}.value-grid small{display:block;color:var(--c-x-6fa);font-size:var(--fs-xs)}.value-grid strong{display:block;overflow:hidden;color:var(--c-strong);font-size:var(--fs-xs);text-overflow:ellipsis}.mind-facts{display:flex;flex-wrap:wrap;gap:var(--sp-6) var(--sp-16);margin:var(--sp-8) 0}.hormones{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--sp-4);margin:var(--sp-8) 0}.innovation-item{padding:var(--sp-10);border-bottom:1px solid var(--c-line-5)}.innovation-item summary{cursor:pointer;color:var(--c-strong)}.innovation-item summary small{display:block;margin:var(--sp-4) 0 0 var(--sp-78);color:var(--c-dim-note)}.innovation-kind{padding:var(--sp-2) var(--sp-4);color:var(--c-x-050900);background:var(--c-x-fff5a0);text-shadow:var(--glow-routine-state-text)}.innovation-kind.sense{background:var(--c-amber)}.code-compare{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-8);margin:var(--sp-8) 0}.code-compare>div{min-width:0;border:1px solid var(--c-line-4)}.reward-sparkline{height:45px!important;margin:var(--sp-4) 0 var(--sp-8);border-bottom:1px solid var(--c-cyan-a5)}.income-crystal{color:var(--c-x-cc6dff)}.income-free{color:var(--c-x-ffd36a)}.field-guide{top:5vh;right:7vw;bottom:5vh;left:7vw;overflow:hidden}.field-guide>div{display:grid;grid-template-columns:240px 1fr;height:calc(100% - 42px)}.field-guide nav{padding:var(--sp-18) var(--sp-12);border-right:1px solid var(--c-line-6);overflow-y:auto}.guide-toc-link{display:block;width:100%;margin-bottom:var(--sp-6);text-align:left;border:0}.field-guide article{overflow-y:auto;padding:var(--sp-24) var(--sp-42) var(--sp-80);font:var(--fs-lg)/1.7 var(--font-mono)}.field-guide article>*{max-width:76ch}.field-guide article h1{font-size:var(--fs-display);color:var(--c-strong)}.field-guide article h2{margin-top:2.2em;color:var(--c-ink-heading);scroll-margin-top:18px}.field-guide article h3{font-size:var(--fs-xl)}.field-guide article p{margin:.8em 0;color:var(--c-x-c7f6f4);text-shadow:var(--glow-routine-state-text)}.insights{color:var(--c-ink-soft);border:1px solid var(--c-cyan-a8)!important;padding:var(--sp-9)!important;background:var(--c-insight-bg);box-shadow:var(--glow-insights)}.insights ul{margin:var(--sp-3) 0;padding-left:var(--sp-20)}.text-link{border:0;background:none;padding:var(--sp-1) var(--sp-2);text-decoration:underline}.metric{display:grid;grid-template-columns:84px 1fr 155px;align-items:center;gap:var(--sp-7);margin:var(--sp-4) 0;font-size:var(--fs-xs)}.metric-bars{display:grid;gap:var(--sp-2)}.metric-bars i{display:block;height:4px;min-width:1px;background:var(--c-x-0ef);box-shadow:var(--glow-metric-bars-i)}.metric-bars i+i{background:var(--c-x-29f);opacity:.55}.terminal-panel svg{width:100%;height:90px;overflow:visible}.terminal-panel svg polygon{fill:var(--c-cyan-a2)}.terminal-panel svg polyline{fill:none;stroke:var(--c-ink-chart);stroke-width:.8;vector-effect:non-scaling-stroke;filter:var(--glow-terminal-panel-svg-polyline-filter)}.hud{position:fixed;inset:var(--nav-h) 0 0 0;z-index:3;display:grid;gap:var(--sp-8);padding:var(--sp-8);grid-template-columns:var(--dock-left) minmax(0,1fr) var(--dock-right);grid-template-rows:auto minmax(0,1fr);color:var(--hud-ink);pointer-events:none;text-shadow:var(--glow-hud-text);font-size:var(--fs-sm);line-height:1.35}.toolbar{grid-column:1 / -1;display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-6) var(--sp-10);padding:var(--sp-5) var(--sp-8);border:1px solid var(--hud-line);background:var(--hud-bg);box-shadow:var(--glow-toolbar);pointer-events:auto}.toolbar-info{flex:0 0 100%;display:flex;flex-wrap:wrap;align-items:center;gap:var(--sp-4) var(--sp-10)}.toolbar .brief{color:var(--c-ink-soft);white-space:nowrap}.toolbar .run-info{color:var(--c-ok);white-space:nowrap;text-shadow:var(--glow-toolbar-run-info-text)}.toolbar .season{color:var(--c-season)}.toolbar-group{display:flex;flex-wrap:wrap;gap:var(--sp-4);align-items:center}.toolbar-group.sim{margin-left:auto}.toolbar button{padding:var(--sp-3) var(--sp-7);font-size:var(--fs-xs)}.panel-toggle{color:var(--c-dim-2)}.panel-toggle:after{content:attr(data-key);margin-left:var(--sp-5);font-size:var(--fs-xs);color:var(--c-dim-key)}.panel-toggle.active{color:var(--c-ink)}.toolbar .speed{min-width:34px;text-align:center;color:var(--c-strong)}.toolbar .view-only{padding:var(--sp-2) var(--sp-6);font-size:var(--fs-xs);letter-spacing:.08em;color:var(--c-x-fc6);border:1px solid var(--c-x-fc68);border-radius:3px}.dock{display:flex;flex-direction:column;gap:var(--sp-8);min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:var(--c-line-8) transparent}.dock-left{grid-column:1;grid-row:2}.dock-right{grid-column:3;grid-row:2}.panel{flex:none;padding:var(--sp-7) var(--sp-9) var(--sp-8);border:1px solid var(--hud-line);background:var(--hud-bg);box-shadow:var(--glow-panel);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);pointer-events:auto}.panel>header{display:flex;align-items:center;gap:var(--sp-6);margin-bottom:var(--sp-5);color:var(--c-strong);letter-spacing:1px}.panel>header b{flex:1;font-size:var(--fs-xs)}.panel>header kbd,.legend kbd{font:var(--fs-xs) var(--font-mono);color:var(--c-dim-key);border:1px solid var(--c-line-6);padding:0 var(--sp-3)}.panel-close{padding:0 var(--sp-5);font-size:var(--fs-md);line-height:1.1}.panel-log{flex:1 1 auto;min-height:160px;display:flex;flex-direction:column}.panel-log .panel-body{flex:1;min-height:0;display:flex}.event-list{flex:1;overflow-y:auto;min-height:0;padding-right:var(--sp-3);scrollbar-width:thin;scrollbar-color:var(--c-line-8) transparent}.event{margin-top:var(--sp-3);opacity:.92;font-size:var(--fs-xs);line-height:1.3;overflow-wrap:anywhere}.event small{color:var(--c-dim);margin-right:var(--sp-2)}.event-derezz,.event-consume{color:var(--c-event-derezz);text-shadow:var(--glow-event-derezz-text)}.event-lineage,.event-spawn{color:var(--c-ink-event)}.event-extinction{color:var(--c-event-extinction);text-shadow:var(--glow-event-extinction-text)}.event-system{color:var(--c-event-system);text-shadow:var(--glow-event-system-text)}.event-milestone{color:var(--c-event-milestone);text-shadow:var(--glow-event-milestone-text)}.event-capability{color:var(--c-event-capability);font-weight:700;text-shadow:var(--glow-event-capability-text)}.event-novelty{color:var(--c-event-novelty);font-weight:700;text-shadow:var(--glow-event-novelty-text)}.kv{display:grid;grid-template-columns:auto 1fr;gap:var(--sp-2) var(--sp-8);margin:0;font-size:var(--fs-xs)}.kv dt{color:var(--c-dim-label);white-space:nowrap;font-size:var(--fs-xs)}.kv dd{margin:0;color:var(--c-ink-value);text-align:right;overflow-wrap:anywhere}.kv.compact{margin-top:var(--sp-7);padding-top:var(--sp-5);border-top:1px solid var(--c-line-5);font-size:var(--fs-xs)}.note{margin-top:var(--sp-5);font-size:var(--fs-xs);color:var(--c-x-ffe9a0);overflow-wrap:anywhere}.meter{margin-top:var(--sp-6);font-size:var(--fs-xs)}.meter{background:linear-gradient(var(--c-track-dark),var(--c-track-dark)) bottom / 100% 6px no-repeat}.meter i{display:block;height:4px;margin:var(--sp-2) 1px 1px;position:relative;clip-path:polygon(0 100%,10px 0,100% 0,100% 100%)}.meter i:after,.lineage-track i:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,#000b,#0000 45%,#0000 82%,#fffd)}.capability-row{display:grid;grid-template-columns:46px 1fr max-content;gap:var(--sp-6);align-items:center;margin-top:var(--sp-4);font-size:var(--fs-xs)}.capability-row>i{position:relative;height:6px;background:var(--c-track-dark);border:1px solid var(--c-track-line)}.capability-row>i:after{content:"";position:absolute;inset:0 auto 0 0;width:var(--value, 0%);min-width:2px;clip-path:polygon(0 100%,10px 0,100% 0,100% 100%);background:linear-gradient(90deg,transparent,var(--skill) 75%,var(--c-strong))}.capability-row>span:last-child{text-align:right;white-space:nowrap}.ring-swatch{--glow-ring-swatch: 0 0 4px var(--c);position:relative;display:inline-block;flex:none;width:18px;height:18px;border-radius:50%;border:2px solid var(--c);box-shadow:var(--glow-ring-swatch);vertical-align:-3px}.ring-swatch:after{content:"";position:absolute;top:2px;right:2px;bottom:2px;left:2px;border-radius:50%;background:conic-gradient(var(--c) 0 18%,transparent 0 25%,var(--c) 0 43%,transparent 0 50%,var(--c) 0 68%,transparent 0 75%,var(--c) 0 93%,transparent 0);-webkit-mask:radial-gradient(circle closest-side,transparent 50%,#000 60%,#000 90%,transparent 100%);mask:radial-gradient(circle closest-side,transparent 50%,#000 60%,#000 90%,transparent 100%)}.lineage-list.compact .ring-swatch{width:14px;height:14px;vertical-align:-2px}.swatch{display:inline-block;width:14px;height:14px;vertical-align:-2px;border-radius:50%;box-shadow:none;-webkit-mask:radial-gradient(circle closest-side,#000 0 22%,transparent 30% 48%,#000 56% 100%);mask:radial-gradient(circle closest-side,#000 0 22%,transparent 30% 48%,#000 56% 100%)}.lineage-list{display:flex;flex-direction:column}.lineage{display:grid;grid-template-columns:20px 58px 1fr 30px 18px;gap:var(--sp-6);align-items:center;padding:var(--sp-3) var(--sp-3);cursor:pointer;border-left:2px solid transparent;font-size:var(--fs-xs)}.lineage-list.compact .lineage{grid-template-columns:16px 1fr auto;padding:var(--sp-2) var(--sp-3)}.lineage-list.compact{display:grid;grid-template-columns:1fr 1fr;column-gap:var(--sp-6)}.lineage:hover{color:var(--c-strong);background:var(--c-cyan-a2)}.lineage.focused{background:var(--c-cyan-a3);border-left-color:var(--c-strong);color:var(--c-strong)}.lineage-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.lineage-track{height:6px;background:var(--c-track-dark);border:1px solid var(--c-track-line)}.lineage-track i{display:block;height:4px;position:relative;clip-path:polygon(0 100%,10px 0,100% 0,100% 100%)}.lineage-count{text-align:right}.dossier-link{padding:0 var(--sp-4);font-size:var(--fs-sm);line-height:1.1}.lineage-list .text-link{margin-top:var(--sp-5);align-self:flex-start;font-size:var(--fs-xs)}.epi-head{display:grid;grid-template-columns:auto 1fr;gap:var(--sp-8);align-items:center;margin-bottom:var(--sp-6)}.epi-head strong{display:block;font-size:var(--fs-stat);color:var(--c-epi-low);text-shadow:var(--glow-epi-head-strong-text)}.epi-head strong.warm{color:var(--c-epi-warm)}.epi-head strong.hot{color:var(--c-epi-hot);text-shadow:var(--glow-epi-head-strong-hot-text)}.epi-head span{display:block;font-size:var(--fs-xs);color:var(--c-dim-2)}.epi-spark{width:100%;height:34px;overflow:visible;border-bottom:1px solid var(--c-line-5)}.epi-spark polygon{fill:var(--c-epi-fill)}.epi-spark polyline{fill:none;stroke:var(--c-epi-line);stroke-width:1.2;vector-effect:non-scaling-stroke}.legend details{margin-top:var(--sp-5)}.legend details:first-child{margin-top:0}.legend summary{cursor:pointer;color:var(--c-strong);font-size:var(--fs-xs);letter-spacing:1px;margin-bottom:var(--sp-3)}.legend-grid{display:grid;grid-template-columns:1fr;gap:var(--sp-2) var(--sp-8)}.legend-item{display:grid;grid-template-columns:14px 1fr;gap:var(--sp-6);align-items:center;font-size:var(--fs-xs);line-height:1.25}.legend-item small{color:var(--c-dim)}.mark{display:inline-block;width:11px;height:11px;justify-self:center;background:var(--c)}.mark-dot,.mark-ring{--glow-mark-dot: 0 0 5px var(--c)}.mark-dot{border-radius:50%;box-shadow:var(--glow-mark-dot)}.mark-ring{background:none;border:2px solid var(--c);border-radius:50%;box-shadow:var(--glow-mark-dot)}.mark-diamond{width:8px;height:8px;transform:rotate(45deg);box-shadow:var(--glow-mark-diamond)}.mark-speck{--glow-mark-speck: 0 0 6px var(--c);width:6px;height:6px;transform:rotate(45deg);box-shadow:var(--glow-mark-speck)}.mark-fleck{background:radial-gradient(circle at 30% 30%,var(--c) 18%,transparent 22%),radial-gradient(circle at 70% 65%,var(--c) 18%,transparent 22%)}.mark-bar{width:6px;height:13px}.mark-block{opacity:.85}.mark-gradient{width:12px}.legend-keys{display:grid;grid-template-columns:auto 1fr;gap:var(--sp-2) var(--sp-8);margin:0;font-size:var(--fs-xs)}.legend-keys dt{text-align:right}.legend-keys dd{margin:0;color:var(--c-dim-text)}.map-tooltip{position:fixed;z-index:6;pointer-events:none;display:grid;gap:var(--sp-1);padding:var(--sp-5) var(--sp-8);max-width:220px;font:var(--fs-xs) var(--font-mono);color:var(--c-ink-pale);background:var(--c-tooltip-bg);border:1px solid var(--c-line-bright);box-shadow:var(--glow-map-tooltip)}.map-tooltip b{color:var(--c-strong)}.map-tooltip small{color:var(--c-dim)}.hint{position:fixed;z-index:7;left:50%;bottom:18px;transform:translate(-50%);padding:var(--sp-6) var(--sp-12);color:var(--c-strong);font:var(--fs-sm) var(--font-mono);background:var(--c-hint-bg);border:1px solid var(--c-line-bright);box-shadow:var(--glow-hint);pointer-events:none}.dossier-panel,.inspector-panel{top:max(var(--hud-top),calc(var(--nav-h) + 6px));right:8px;bottom:8px;width:min(var(--side-w),calc(100vw - 16px));overflow-y:auto}body.side-open .dock-right{visibility:hidden}@media(min-width:1500px){body.side-open .dock-right{visibility:visible}body.side-open .hud{padding-right:calc(var(--side-w) + 16px)}body.side-open .toolbar{margin-right:calc(-1 * (var(--side-w) + 8px))}}.profile-kv{font-size:var(--fs-xs)}.profile-kv dd{text-align:left}.chips{display:inline-flex;flex-wrap:wrap;gap:var(--sp-3)}.chips b{padding:0 var(--sp-4);border:1px solid;font-size:var(--fs-xs);font-weight:400}.diet-bar{display:flex;height:6px;margin:var(--sp-3) 0 var(--sp-2);background:var(--c-track-2)}.diet-bar i{display:block;min-width:2px}.infected{color:var(--c-infect);font-weight:700;text-shadow:var(--glow-infected-text)}.clean{color:var(--c-dim-2)}@media(max-width:720px){.hud{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) minmax(0,1fr)}.dock-left{grid-column:1;grid-row:2}.dock-right{grid-column:1;grid-row:3}.toolbar-group.sim{margin-left:0}.field-guide{top:12px;right:12px;bottom:12px;left:12px}.field-guide>div{display:block}.field-guide nav{display:none}.field-guide article{padding:var(--sp-18)}}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}:focus-visible{outline:2px solid var(--c-strong);outline-offset:2px}.topnav{position:fixed;z-index:10;inset:0 0 auto 0;height:var(--nav-h);display:flex;align-items:center;gap:var(--sp-10);padding:0 var(--sp-8);font-size:var(--fs-sm);color:var(--c-ink);background:var(--c-hud-bg);border-bottom:1px solid var(--hud-line);box-shadow:var(--glow-toolbar)}.topnav-brand{color:var(--c-strong);font-weight:700;letter-spacing:3px}.topnav-links{display:flex;gap:var(--sp-4);align-items:center}.topnav-links a{padding:var(--sp-5) var(--sp-10);color:var(--c-ink);text-decoration:none;border:1px solid transparent;letter-spacing:1px}.topnav-links a:hover{color:var(--c-strong);background:var(--c-cyan-a2)}.topnav-links a[aria-current=page]{color:var(--c-strong);border-color:var(--c-line-bright);background:var(--c-cyan-a2);box-shadow:var(--glow-button)}.topnav-menu,.topnav-hud{display:none}.topnav-tools{display:flex;gap:var(--sp-6);margin-left:auto}body[data-page=world] .topnav-tools{display:none}body.no-nav{--nav-h: 0px}body.no-nav .topnav{display:none}.page{position:fixed;z-index:4;inset:var(--nav-h) 0 0 0;overflow:auto;padding:var(--sp-20) clamp(12px,5vw,64px) var(--sp-24);color:var(--c-ink);background:var(--c-bg);font:var(--fs-page)/1.55 var(--font-mono)}body[data-page=world] .page,body:not([data-page]) .page{display:none}.page h1{margin:0 0 var(--sp-8);font-size:var(--fs-xxl);letter-spacing:3px;color:var(--c-strong)}.page-lead{max-width:70ch;margin:0 0 var(--sp-14);color:var(--c-ink-soft)}.page .table-wrap{overflow-x:auto}.page th{top:0}.page tr:focus-visible{outline-offset:-2px}.figures{display:grid;grid-template-columns:max-content 1fr;gap:var(--sp-8) var(--sp-20);margin:var(--sp-14) 0;align-items:baseline}.figures dt{color:var(--c-strong);letter-spacing:1px}.figures dd{margin:0;font-size:var(--fs-stat);color:var(--c-ink-value)}.figures small{display:block;font-size:var(--fs-xs);color:var(--c-dim)}body:not([data-page=world]) :is(#app,.hud,.map-tooltip,.hint,.rain,.inspector-panel,.signal){display:none!important}@media(prefers-reduced-motion:reduce){:root{--dur-fast: 0s;--dur-slow: 0s}*,:before,:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media(max-width:720px){.topnav-menu{display:inline-block}body[data-page=world] .topnav-hud{display:inline-block;margin-left:auto}.topnav-links{display:none;position:fixed;inset:var(--nav-h) 0 auto 0;flex-direction:column;align-items:stretch;padding:var(--sp-8);background:var(--c-bg);border-bottom:1px solid var(--hud-line)}.topnav.open .topnav-links{display:flex}.topnav-links a{padding:var(--sp-10)}.page{padding:var(--sp-14) var(--sp-12) var(--sp-24)}.figures{grid-template-columns:1fr;gap:var(--sp-2)}.figures dd{margin-bottom:var(--sp-8)}.page th,.page td{padding:var(--sp-5) var(--sp-6)}}small{font-size:var(--fs-xs)}.panel,.toolbar,.terminal-panel{--cut: 12px;--fill: var(--hud-bg);border:1px solid transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;clip-path:polygon(0 0,calc(100% - var(--cut)) 0,100% var(--cut),100% 100%,var(--cut) 100%,0 calc(100% - var(--cut)));background:linear-gradient(to top right,#0000 calc(50% - 2px),var(--edge-hi) calc(50% - 2px) calc(50% - 1px),#0000 calc(50% - 1px)) top right / var(--cut) var(--cut) no-repeat border-box,linear-gradient(to top right,#0000 calc(50% + 1px),var(--edge-hi) calc(50% + 1px) calc(50% + 2px),#0000 calc(50% + 2px)) bottom left / var(--cut) var(--cut) no-repeat border-box,linear-gradient(var(--fill),var(--fill)) padding-box,var(--edge) border-box}.terminal-panel{--fill: var(--c-panel-bg)}.toolbar{background:repeating-linear-gradient(90deg,var(--c-cyan-a3) 0 1px,transparent 1px 36px) bottom / 100% 18px no-repeat padding-box,linear-gradient(0deg,var(--c-cyan-a2),transparent) bottom / 100% 18px no-repeat padding-box,linear-gradient(var(--fill),var(--fill)) padding-box,var(--edge) border-box}.panel .kv{display:flow-root}.panel .kv dt{float:left;clear:left;margin-right:var(--sp-8);line-height:1.4}.panel .kv dd{line-height:1.4;padding-bottom:var(--sp-2)}.panel>header{margin:calc(-1 * var(--sp-7)) calc(-1 * var(--sp-9)) var(--sp-6);padding:var(--sp-5) var(--sp-9) var(--sp-4);background:var(--c-head-bg)}.panel>header b{letter-spacing:.12em}.panel>header kbd{border-color:var(--c-line)}.panel-close,.help-link,.dossier-link{background:none;box-shadow:none;border-color:var(--c-line)}.panel-close:hover,.help-link:hover,.dossier-link:hover{background:var(--c-cyan-a2)}.help-link{border-radius:50%}.panel-metrics,.panel-epidemic{--edge: var(--edge-warn);--edge-hi: var(--edge-warn-hi)}.panel-metrics>header,.panel-epidemic>header{background:var(--c-head-warn-bg)}.panel-metrics>header b,.panel-epidemic>header b{color:var(--c-orange-ink)}.panel-metrics>header kbd,.panel-epidemic>header kbd,.panel-metrics .panel-close,.panel-epidemic .panel-close,.panel-metrics .help-link{border-color:var(--c-orange);color:var(--c-orange-ink)}.panel-metrics .meter{background-image:linear-gradient(#2a1204,#2a1204)}.panel-energy .meter:nth-of-type(3){color:var(--c-orange-ink)}:is(.toolbar,.terminal-panel,.page) button:not(.text-link,.guide-toc-link,.panel-close,.help-link,.dossier-link){--cut: 7px;--fill: var(--c-button-bg);border:1px solid transparent;box-shadow:none;letter-spacing:.02em;clip-path:polygon(var(--cut) 0,100% 0,100% calc(100% - var(--cut)),calc(100% - var(--cut)) 100%,0 100%,0 var(--cut));background:linear-gradient(var(--fill),var(--fill)) padding-box,var(--btn-edge, var(--edge)) border-box}:is(.toolbar,.terminal-panel,.page) button:not(.text-link,.guide-toc-link,.panel-close,.help-link,.dossier-link):hover{--fill: var(--c-button-hover-bg)}:is(.toolbar,.terminal-panel,.page) button:not(.text-link,.guide-toc-link,.panel-close,.help-link,.dossier-link):focus-visible{outline-offset:-3px}.toolbar button{padding:var(--sp-3) var(--sp-6)}.toolbar button.panel-toggle{--btn-edge: var(--edge-dim)}.toolbar button.panel-toggle.active{--btn-edge: var(--edge);--fill: #012a31}.toolbar button.panel-toggle.active:hover{--fill: var(--c-button-hover-bg)}.toolbar button:disabled,.page button:disabled{--btn-edge: var(--edge-dim);color:var(--c-dim-2);cursor:default}.guide-toc-link{background:none;box-shadow:none}.terminal-panel>header button{font-size:var(--fs-icon)}.topnav{background:var(--c-hud-bg);box-shadow:none}.topnav-brand{letter-spacing:.3em;text-shadow:var(--glow-hud-text)}.topnav-links a{letter-spacing:.1em}.topnav-links a[aria-current=page]{--cut: 7px;border:1px solid transparent;box-shadow:none;text-shadow:var(--glow-hud-text);clip-path:polygon(var(--cut) 0,100% 0,100% calc(100% - var(--cut)),calc(100% - var(--cut)) 100%,0 100%,0 var(--cut));background:linear-gradient(#012a31,#012a31) padding-box,var(--edge) border-box}.topnav-links a:focus-visible{outline-offset:-3px}.terminal-panel>header{background:var(--c-head-bg);letter-spacing:.12em}.terminal-panel h3{letter-spacing:.14em}.dossier-panel :is(.dossier-title,h3),.field-guide nav .guide-toc-link{font-family:var(--font-read)}.dossier-panel h3,.dossier-panel .dossier-title{text-transform:uppercase;letter-spacing:var(--track-label);font-weight:400}.dossier-panel .dossier-title{letter-spacing:var(--track-label);font-size:var(--fs-lg)}.dossier-panel .dossier-title button{font-family:var(--font-mono);text-transform:none;letter-spacing:.02em;font-size:var(--fs-xs)}.dossier-panel th{font-family:var(--font-read);font-weight:400;text-transform:uppercase;letter-spacing:var(--track-label);color:var(--c-read-label)}.field-guide article h1{font-family:var(--font-read);font-weight:300;text-transform:uppercase;letter-spacing:var(--track-title);font-size:var(--fs-stat)}.field-guide article h1:after{content:"";display:block;width:84px;height:1px;margin-top:var(--sp-14);background:var(--c-orange)}.page{font-family:var(--font-read);font-variant-numeric:tabular-nums;background-color:var(--c-bg)}.page:before{content:"";position:absolute;left:0;right:0;top:0;height:120px;pointer-events:none;opacity:.34;background:repeating-conic-gradient(from 0deg at 72% 0%,var(--c-cyan-a9) 0 .6deg,transparent .6deg 5deg),linear-gradient(var(--c-cyan-a9) 0 1px,transparent 1px) 0 18px / 100% 100% no-repeat,linear-gradient(var(--c-cyan-a8) 0 1px,transparent 1px) 0 42px / 100% 100% no-repeat,linear-gradient(var(--c-cyan-a7) 0 1px,transparent 1px) 0 74px / 100% 100% no-repeat,linear-gradient(var(--c-cyan-a6) 0 1px,transparent 1px) 0 110px / 100% 100% no-repeat;-webkit-mask:linear-gradient(0deg,transparent,#000 75%);mask:linear-gradient(0deg,transparent,#000 75%)}.page>*{position:relative}.page h1{margin:var(--sp-8) 0 var(--sp-16);font-size:var(--fs-icon);font-weight:300;letter-spacing:var(--track-title);text-transform:uppercase;text-shadow:var(--glow-hud-text)}.page h1:after{content:"";display:block;width:84px;height:1px;margin-top:var(--sp-14);background:var(--c-orange)}.page-lead{line-height:1.8}.page th{font-weight:400;font-size:var(--fs-sm);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--c-read-label);border-bottom:1px solid var(--c-read-hair-strong)}.page td{border-bottom:1px solid var(--c-read-hair)}.page .figures dt{font-weight:400;letter-spacing:var(--track-label);text-transform:uppercase;color:var(--c-read-label)}.page .figures dd{font-weight:300}@media(max-width:720px){.page h1{letter-spacing:.2em}.page:before{height:90px}.toolbar .run-info{white-space:normal}}
