:root{--bg-0: #04060c;--bg-1: #070b16;--panel: rgba(10, 16, 28, .66);--panel-edge: rgba(120, 170, 220, .16);--ink: #e6eefb;--muted: #8ba2c4;--faint: #5d738f;--accent: #6fe3c2;--accent-2: #8fb6ff;--good: #7dffb0;--warn: #ffd27d;--bad: #ff8a8a;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;height:100%;background:radial-gradient(1200px 800px at 70% -10%,#0b1430 0%,transparent 60%),radial-gradient(900px 700px at 10% 110%,#07131a 0%,transparent 55%),var(--bg-0);color:var(--ink);font-family:Inter,Segoe UI,system-ui,sans-serif;overflow:hidden;-webkit-font-smoothing:antialiased}#stage{position:fixed;inset:0;z-index:0}#stage .layer{position:absolute;inset:0;width:100%;height:100%}#hud{position:fixed;inset:0;z-index:10;display:flex;flex-direction:column;padding:18px;gap:16px;pointer-events:none}#hud>*{pointer-events:auto}.topbar{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.phase-badge{font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent);padding:6px 14px;border:1px solid var(--panel-edge);border-radius:999px;background:var(--panel);backdrop-filter:blur(6px);white-space:nowrap}.chip-row{display:flex;gap:10px;flex-wrap:wrap}.chip{display:flex;align-items:baseline;gap:8px;padding:8px 14px;border-radius:12px;background:var(--panel);border:1px solid var(--panel-edge);border-left:3px solid hsl(var(--hue) 70% 62%);backdrop-filter:blur(6px);min-width:120px}.chip-sym{font-size:11px;color:hsl(var(--hue) 60% 70%);letter-spacing:.08em}.chip-value{font-variant-numeric:tabular-nums;font-weight:650;font-size:16px}.chip-rate{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.spacer{flex:1}.tracker{min-width:220px;max-width:320px;padding:8px 14px;border-radius:12px;background:var(--panel);border:1px solid var(--panel-edge);backdrop-filter:blur(6px)}.track-row{display:flex;justify-content:space-between;align-items:baseline;gap:10px}.track-label{font-weight:700;font-size:13px;color:var(--accent-2)}.track-eta{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.track-detail{font-size:12px;color:var(--muted)}.track-bar{margin-top:6px;height:4px;border-radius:999px;background:#ffffff14;overflow:hidden}.track-fill{height:100%;width:0%;background:linear-gradient(90deg,var(--accent-2),var(--accent));transition:width .3s}.btn-lens{align-self:stretch}.btn-lens.active{background:var(--accent-2);color:#06183a;border-color:var(--accent-2);font-weight:700}.main{flex:1;display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:16px;min-height:0}.col-title{margin:0 0 10px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--faint)}.tiers,.side{background:var(--panel);border:1px solid var(--panel-edge);border-radius:16px;padding:16px;backdrop-filter:blur(8px);overflow:auto}.side{display:flex;flex-direction:column}.tier-row{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;margin-bottom:10px;border-radius:12px;background:#ffffff05;border:1px solid rgba(255,255,255,.05);transition:border-color .2s,background .2s}.tier-row:hover{border-color:var(--panel-edge);background:#ffffff09}.tier-row.bottleneck{border-color:#ffd27db3;box-shadow:0 0 0 1px #ffd27d59,0 0 18px #ffd27d26 inset}.tier-left{min-width:0;flex:1}.tier-head{display:flex;align-items:center;gap:8px}.tier-name{font-weight:600;font-size:15px}.tier-badge{font-size:11px;font-variant-numeric:tabular-nums;color:var(--muted);padding:1px 6px;border-radius:6px;background:#ffffff0f}.tier-badge:empty{display:none}.tier-badge.warn{color:#18120a;background:var(--warn);font-weight:700}.tier-sub{font-size:12.5px;color:var(--muted);margin-top:3px;font-variant-numeric:tabular-nums}.tier-right{display:flex;gap:8px;align-items:center}.cap-bar{margin-top:8px;height:5px;width:220px;max-width:60vw;border-radius:999px;background:#ffffff14;overflow:hidden}.cap-fill{height:100%;width:0%;border-radius:999px;background:linear-gradient(90deg,var(--accent),var(--accent-2));transition:width .2s linear}.btn{font:inherit;color:var(--ink);background:#6fe3c21f;border:1px solid rgba(111,227,194,.35);border-radius:10px;padding:9px 13px;cursor:pointer;font-size:13px;font-variant-numeric:tabular-nums;transition:transform .06s,background .15s,opacity .15s,border-color .15s;white-space:nowrap}.btn:hover:not(:disabled){background:#6fe3c233}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-ghost{background:transparent;border-color:#ffffff2e;color:var(--muted)}.btn-mode{padding:7px 12px}.btn-mode.active{background:var(--accent);color:#04221c;border-color:var(--accent);font-weight:700}.btn-harvest{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;padding:16px 18px;margin-bottom:18px;background:linear-gradient(135deg,#8fb6ff2e,#6fe3c224);border-color:#8fb6ff66}.harvest-label{font-size:16px;font-weight:700}.harvest-hint{font-size:11.5px;color:var(--muted)}.buymode-label{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-bottom:8px}.buymode{display:flex;gap:6px}.sankey-panel{background:var(--panel);border:1px solid var(--panel-edge);border-radius:16px;padding:12px 16px 6px;backdrop-filter:blur(8px)}.sankey-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.readouts{display:flex;gap:16px}.readout{font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}.readout.warn{color:var(--warn)}.sankey-canvas{display:block;width:100%;height:110px}.footer{font-size:13px;color:var(--muted);min-height:18px;font-style:italic}.toast{position:fixed;right:22px;bottom:22px;z-index:50;max-width:320px;padding:14px 16px;border-radius:14px;background:var(--panel);border:1px solid var(--panel-edge);backdrop-filter:blur(10px);cursor:pointer;animation:rise .4s ease}.toast-title{font-weight:700;margin-bottom:6px;color:var(--accent-2)}.toast-body{font-variant-numeric:tabular-nums}.toast-note{font-size:11px;color:var(--faint);margin-top:6px}@keyframes rise{0%{transform:translateY(12px);opacity:0}to{transform:none;opacity:1}}.hidden{display:none!important}.o2-chip{display:flex;align-items:center;gap:8px;padding:6px 12px;border-radius:10px;background:var(--panel);border:1px solid var(--panel-edge);font-size:12px}.o2-label{color:#8fd6ff;font-weight:700}.o2-val{font-variant-numeric:tabular-nums;color:var(--ink);min-width:34px}.o2-bar{width:90px;height:5px;border-radius:999px;background:#ffffff1a;overflow:hidden}.o2-fill{height:100%;width:0%;background:linear-gradient(90deg,#6fd0ff,#b9f0ff);transition:width .3s}.endo-section{margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.06)}.btn-endo{width:100%;background:linear-gradient(135deg,#bb8fff38,#ff8fd629);border-color:#bb8fff80;font-weight:650}.endo-hint{font-size:11.5px;color:var(--muted);margin-top:6px}.advance-banner{position:fixed;top:80px;left:50%;transform:translate(-50%);z-index:45;display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 22px;border-radius:16px;background:linear-gradient(180deg,#141c30f5,#0c1220f5);border:1px solid rgba(143,182,255,.55);box-shadow:0 16px 48px #0000008c;animation:rise .4s ease}.advance-title{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-2)}.btn-advance{font-size:16px;font-weight:700;padding:12px 22px;background:linear-gradient(135deg,#8fb6ff4d,#6fe3c23d);border-color:#8fb6ff99}.goe-banner{position:fixed;top:80px;left:50%;transform:translate(-50%);z-index:46;width:min(440px,92vw);display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 22px;border-radius:16px;background:linear-gradient(180deg,#281a14f7,#180e0cf7);border:1px solid rgba(255,150,110,.6);box-shadow:0 16px 48px #0009;text-align:center;animation:rise .4s ease}.goe-detail{font-size:12.5px;color:var(--muted);line-height:1.45}.btn-goe{font-size:15px;font-weight:700;padding:11px 20px;background:linear-gradient(135deg,#ff966e52,#ffd27d38);border-color:#ffaa78a6}.sequencer{margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.06)}.seq-slots{font-size:11.5px;color:var(--muted);margin-bottom:8px;font-variant-numeric:tabular-nums}.seq-rows{display:flex;flex-direction:column;gap:6px}.btn-seq{text-align:left;font-size:12.5px;opacity:.7}.btn-seq.active{opacity:1;background:#6fe3c233;border-color:var(--accent)}.phylo-panel,.speciation{margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid rgba(255,255,255,.06)}.clado-wrap{width:100%;height:160px;display:flex;align-items:center;justify-content:center}.cladogram{width:100%;height:100%}.clade-node{cursor:help}.phylo-meta{font-size:12px;color:var(--muted);text-align:center;font-variant-numeric:tabular-nums}.btn-speciate{width:100%;background:linear-gradient(135deg,#8fb6ff33,#bb8fff29);border-color:#bb8fff73;font-weight:650}.speciate-hint{font-size:11.5px;color:var(--muted);margin:6px 0 12px}.gene-head{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-bottom:6px}.gene-upgrades{display:flex;flex-direction:column;gap:6px}.up-row{display:flex}.btn-up{width:100%;display:flex;justify-content:space-between;gap:10px;align-items:baseline}.up-name{font-size:12.5px}.up-lvl{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}.genome-chip{display:flex;flex-direction:column;gap:1px;padding:6px 12px;border-radius:10px;background:var(--panel);border:1px solid var(--panel-edge);font-size:11.5px;font-variant-numeric:tabular-nums}.genome-fid{color:var(--accent);font-weight:650}.genome-genes{color:var(--muted)}.drafter-panel{position:fixed;right:18px;bottom:18px;z-index:40;width:min(440px,92vw);padding:14px;border-radius:16px;background:var(--panel);border:1px solid rgba(143,182,255,.4);box-shadow:0 14px 40px #00000080;backdrop-filter:blur(10px);animation:rise .35s ease}.drafter-title{font-weight:750;letter-spacing:.04em;color:var(--accent-2)}.drafter-hint{font-size:12px;color:var(--muted);margin:2px 0 10px}.drafter-cards{display:flex;gap:10px;flex-wrap:wrap}.card{flex:1 1 130px;text-align:left;display:flex;flex-direction:column;gap:5px;padding:12px;border-radius:12px;background:#6fe3c214;border:1px solid rgba(111,227,194,.3);color:var(--ink);cursor:pointer;font:inherit;transition:transform .08s,background .15s,border-color .15s}.card:hover{background:#6fe3c229;transform:translateY(-2px)}.card-name{font-weight:700;font-size:13.5px}.card-eff{font-size:11.5px;color:var(--accent);font-variant-numeric:tabular-nums}.card-desc{font-size:11px;color:var(--muted);line-height:1.35}.card-bad{background:#ff8a8a12;border-color:#ff8a8a4d}.card-bad .card-eff{color:var(--bad)}.event-banner{position:fixed;top:84px;left:50%;transform:translate(-50%);z-index:40;width:min(440px,92vw);padding:14px 16px;border-radius:14px;background:var(--panel);border:1px solid rgba(255,210,125,.5);box-shadow:0 12px 36px #00000080;backdrop-filter:blur(10px);animation:rise .35s ease}.event-banner.adapted{border-color:#7dffb08c}.ev-head{display:flex;justify-content:space-between;align-items:baseline}.ev-name{font-weight:750}.ev-eta{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.ev-desc{font-size:12.5px;color:var(--muted);margin:6px 0;line-height:1.4}.ev-outcome{font-size:12px;margin-bottom:10px;color:var(--warn)}.event-banner.adapted .ev-outcome{color:var(--good)}.codex-overlay{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#02040ab3;backdrop-filter:blur(3px)}.codex-panel{width:min(820px,94vw);max-height:86vh;overflow:auto;padding:22px 26px;border-radius:18px;background:linear-gradient(180deg,#0c121efa,#080c16fa);border:1px solid var(--panel-edge)}.codex-head{display:flex;justify-content:space-between;align-items:center}.codex-head h2{margin:0}.codex-intro{color:var(--muted);font-size:13px;line-height:1.5}.codex-section{margin-top:18px}.codex-section h3{margin:0 0 8px;color:var(--accent-2);font-size:13px;letter-spacing:.12em;text-transform:uppercase}.codex-list{display:grid;grid-template-columns:1fr 1fr;gap:10px}.codex-entry{padding:10px 12px;border-radius:10px;background:#ffffff08;border:1px solid rgba(255,255,255,.05)}.codex-entry-name{font-weight:650;font-size:13px;display:flex;align-items:center;gap:8px}.codex-tag{font-size:10px;color:var(--muted);border:1px solid var(--panel-edge);border-radius:6px;padding:0 5px;text-transform:uppercase;letter-spacing:.08em}.codex-entry-body{font-size:11.5px;color:var(--muted);margin-top:4px;line-height:1.4}.btn-gear{font-size:16px;padding:7px 11px}.set-overlay{position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;background:#02040ab3;backdrop-filter:blur(3px)}.set-panel{width:min(460px,94vw);max-height:88vh;overflow:auto;padding:22px 24px;border-radius:18px;background:linear-gradient(180deg,#0c121efa,#080c16fa);border:1px solid var(--panel-edge)}.set-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.set-head h2{margin:0}.set-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.05)}.set-label{color:var(--muted);font-size:13px}.set-seg,.set-save-btns{display:flex;gap:6px}.btn-seg{padding:6px 10px;font-size:12px;text-transform:capitalize}.btn-seg.active,.btn.active{background:var(--accent);color:#04221c;border-color:var(--accent);font-weight:700}.set-sec{margin:16px 0 8px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}.set-save{width:100%;resize:vertical;background:#0000004d;color:var(--ink);border:1px solid var(--panel-edge);border-radius:8px;padding:8px;font:11px ui-monospace,monospace}.set-save-btns{margin-top:8px}.btn-danger{color:var(--bad);border-color:#ff8a8a66;background:#ff8a8a14}.btn-danger.armed{background:var(--bad);color:#1a0606;font-weight:700}.set-note{font-size:11px;color:var(--faint);margin-top:12px;line-height:1.4}.end-overlay{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;background:radial-gradient(900px 700px at 50% 40%,#0a1430,#02040a 70%);animation:endfade 1.1s ease;overflow:auto}.end-overlay.fading{animation:endout .6s ease forwards}@keyframes endfade{0%{opacity:0}to{opacity:1}}@keyframes endout{to{opacity:0}}.end-panel{max-width:640px;margin:auto;padding:40px 32px;text-align:center}.end-eye{width:110px;height:110px;margin:0 auto 22px;border-radius:50%;background:radial-gradient(circle at 50% 45%,#bfe9ff,#4aa6e8,#0a2a52 70%,#02060f);box-shadow:0 0 60px #78beff80;display:flex;align-items:center;justify-content:center;animation:dilate 4s ease-in-out infinite}.end-pupil{width:34px;height:34px;border-radius:50%;background:#03060d;box-shadow:0 0 12px #000 inset}@keyframes dilate{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}.end-title{font-size:34px;margin:0 0 14px;letter-spacing:.02em}.end-lede,.end-thesis{color:var(--muted);line-height:1.6;font-size:15px}.end-thesis{color:var(--ink);font-style:italic;margin-top:18px}.end-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:26px 0}.end-stat{display:flex;flex-direction:column;gap:3px}.end-stat-v{font-size:18px;font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums}.end-stat-l{font-size:11px;color:var(--faint)}.end-foot{margin-top:16px;font-size:12px;color:var(--faint);letter-spacing:.04em}@media (max-width: 760px){.main{grid-template-columns:1fr}.side{order:-1}.codex-list{grid-template-columns:1fr}.end-stats{grid-template-columns:repeat(2,1fr)}}
