:root{--bg: #000000;--panel: #060606;--line: #3a3a3a;--line-soft: #222222;--ink: #e8e8e8;--ink-dim: #8a8a8a;--ink-faint: #5a5a5a;--hi: #ffffff;--warn: #ff3b30;--warn-dim: #a02019;--mono: "SFMono-Regular", "JetBrains Mono", "Menlo", "Consolas", "Liberation Mono", monospace;--fs: 13px}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;background:var(--bg);color:var(--ink);font-family:var(--mono);font-size:var(--fs);line-height:1.45;-webkit-font-smoothing:antialiased}body{overflow:hidden}button{font-family:var(--mono);font-size:var(--fs);color:var(--ink);background:transparent;border:1px solid var(--line);padding:3px 10px;cursor:pointer;letter-spacing:.02em;text-transform:uppercase}button:hover:not(:disabled){border-color:var(--hi);color:var(--hi)}button:disabled{color:var(--ink-faint);border-color:var(--line-soft);cursor:default}button.warn{border-color:var(--warn-dim);color:var(--warn)}button.warn:hover:not(:disabled){border-color:var(--warn)}select,input{font-family:var(--mono);font-size:var(--fs);color:var(--ink);background:var(--bg);border:1px solid var(--line);padding:2px 6px}a{color:var(--ink);text-decoration:underline dotted var(--line)}.app{display:grid;grid-template-rows:auto 1fr auto;grid-template-columns:1fr 380px;grid-template-areas:"meters meters" "globe  side" "log    side";height:100%;gap:1px;background:var(--line-soft)}.meters{grid-area:meters}.stage{grid-area:globe;position:relative;background:var(--bg);min-height:0}.side{grid-area:side;background:var(--panel);overflow:hidden;display:flex;flex-direction:column;min-height:0}.log{grid-area:log;background:var(--panel);height:190px;overflow:hidden}.meters{display:flex;align-items:stretch;background:var(--panel);border-bottom:1px solid var(--line-soft)}.meters .brand{display:flex;flex-direction:column;justify-content:center;padding:6px 14px;border-right:1px solid var(--line-soft)}.meters .brand .title{color:var(--hi);letter-spacing:.18em;font-size:12px}.meters .brand .sub{color:var(--ink-faint);font-size:10px;letter-spacing:.1em}.meter{display:flex;flex-direction:column;justify-content:center;padding:6px 14px;min-width:92px;border-right:1px solid var(--line-soft)}.meter .k{color:var(--ink-faint);font-size:10px;text-transform:uppercase;letter-spacing:.08em}.meter .v{color:var(--ink);font-size:15px}.meter .v.warn{color:var(--warn)}.meter .bar{height:3px;margin-top:3px;background:var(--line-soft);position:relative}.meter .bar>i{position:absolute;left:0;top:0;bottom:0;background:var(--ink-dim)}.meter .bar>i.warn{background:var(--warn)}.timectl{margin-left:auto;display:flex;align-items:center;gap:6px;padding:0 12px}.timectl .spacer{width:8px}.stage .hint{position:absolute;left:10px;bottom:8px;color:var(--ink-faint);font-size:10px;letter-spacing:.06em;pointer-events:none}.stage .legend{position:absolute;right:10px;top:10px;text-align:right;color:var(--ink-faint);font-size:10px;pointer-events:none;line-height:1.6}.stage .legend .swatch{display:inline-block;width:8px;height:8px;margin-left:6px;vertical-align:middle;border:1px solid var(--line)}.marker-label{color:var(--ink);font-family:var(--mono);font-size:10px;letter-spacing:.04em;white-space:nowrap;transform:translate(8px,-50%);pointer-events:none;text-shadow:0 0 4px #000,0 0 4px #000}.marker-label.warn{color:var(--warn)}.tabs{display:flex;border-bottom:1px solid var(--line-soft);flex:0 0 auto}.tabs button{flex:1;border:none;border-right:1px solid var(--line-soft);padding:7px 0;color:var(--ink-dim);background:transparent;border-radius:0}.tabs button:last-child{border-right:none}.tabs button.active{color:var(--hi);background:#101010}.tabs button:hover{color:var(--ink)}.panel{overflow-y:auto;padding:8px 10px;flex:1 1 auto}.panel h3{margin:0 0 6px;color:var(--ink-faint);font-size:10px;text-transform:uppercase;letter-spacing:.1em;font-weight:400}.row{display:flex;align-items:baseline;gap:8px;padding:3px 4px;border-bottom:1px solid var(--line-soft);cursor:pointer}.row:hover{background:#0e0e0e}.row.head{cursor:default;color:var(--ink-faint);font-size:10px;text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--line)}.row .name{flex:1;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row .dim{color:var(--ink-dim)}.row .num{font-variant-numeric:tabular-nums}.row.selected{background:#141414}.tag{color:var(--ink-faint);font-size:10px;letter-spacing:.04em}.warn{color:var(--warn)}.mono-num{font-variant-numeric:tabular-nums}.vals{color:var(--ink-dim);font-size:11px}.log .logscroll{height:100%;overflow-y:auto;padding:6px 10px}.log h3{margin:0;padding:5px 10px;color:var(--ink-faint);font-size:10px;text-transform:uppercase;letter-spacing:.1em;border-bottom:1px solid var(--line-soft);position:sticky;top:0;background:var(--panel)}.logline{display:flex;gap:8px;padding:1px 0;align-items:baseline}.logline .glyph{width:12px;text-align:center;color:var(--ink-faint);flex:0 0 auto}.logline .glyph.milestone{color:var(--hi)}.logline .glyph.incident{color:var(--warn)}.logline .date{color:var(--ink-faint);font-size:10px;flex:0 0 auto}.logline .txt{color:var(--ink-dim)}.logline.milestone .txt{color:var(--ink)}.logline.incident .txt{color:var(--warn)}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b8;display:flex;z-index:20}.drawer{margin-left:auto;width:460px;max-width:92vw;height:100%;background:var(--panel);border-left:1px solid var(--line);display:flex;flex-direction:column;animation:slidein .14s ease-out}@keyframes slidein{0%{transform:translate(24px);opacity:0}to{transform:none;opacity:1}}.drawer .dhead{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--line-soft)}.drawer .dhead .dtitle{flex:1;color:var(--hi);font-size:15px;letter-spacing:.04em}.drawer .dbody{padding:12px 14px;overflow-y:auto}.modal{margin:auto;width:720px;max-width:94vw;max-height:88vh;background:var(--panel);border:1px solid var(--line);display:flex;flex-direction:column}.modal .mhead{padding:12px 16px;border-bottom:1px solid var(--line-soft)}.modal .mhead .mtitle{color:var(--hi);letter-spacing:.12em}.modal .mhead .msub{color:var(--ink-faint);font-size:11px}.modal .mbody{padding:8px 16px 16px;overflow-y:auto}.close{border:1px solid var(--line);padding:1px 8px;line-height:1.3}.kv{display:grid;grid-template-columns:116px 1fr;gap:2px 10px;margin:8px 0}.kv .k{color:var(--ink-faint);font-size:11px;text-transform:uppercase;letter-spacing:.04em}.kv .v{color:var(--ink)}.section{margin-top:14px}.section>.stitle{color:var(--ink-faint);font-size:10px;text-transform:uppercase;letter-spacing:.1em;border-bottom:1px solid var(--line-soft);padding-bottom:3px;margin-bottom:5px}table.data{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}table.data th{text-align:right;color:var(--ink-faint);font-weight:400;font-size:10px;text-transform:uppercase;letter-spacing:.04em;padding:2px 6px;border-bottom:1px solid var(--line-soft)}table.data th:first-child,table.data td:first-child{text-align:left}table.data td{padding:2px 6px;border-bottom:1px solid var(--line-soft);color:var(--ink)}table.data td.dim{color:var(--ink-dim)}table.data td.warn{color:var(--warn)}table.data tr:hover td{background:#0e0e0e}.form-row{display:flex;align-items:center;gap:8px;margin:8px 0}.form-row label{color:var(--ink-faint);font-size:11px;text-transform:uppercase;letter-spacing:.04em;width:88px}.form-row select{flex:1}.preview{margin:10px 0;padding:8px 10px;border:1px solid var(--line-soft);font-size:12px;color:var(--ink-dim)}.preview .cost{color:var(--ink);font-size:15px}.preview.bad{border-color:var(--warn-dim)}.preview.bad .cost{color:var(--warn)}.formula{color:var(--ink-faint);font-size:11px}.notice{padding:6px 10px;margin:8px 0;border:1px solid var(--line-soft);color:var(--ink-dim);font-size:12px}.notice.warn{border-color:var(--warn-dim);color:var(--warn)}.loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:var(--ink-faint);letter-spacing:.2em}.chip{display:inline-block;border:1px solid var(--line-soft);padding:0 5px;margin-right:4px;color:var(--ink-dim);font-size:10px}.chip.player{border-color:var(--line);color:var(--ink)}.founder-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.founder-card{border:1px solid var(--line-soft);padding:8px 10px;cursor:pointer}.founder-card:hover{border-color:var(--hi);background:#0e0e0e}.founder-card .fname{color:var(--hi)}.founder-card .fmeta{color:var(--ink-dim);font-size:11px;margin-top:3px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--line-soft)}::-webkit-scrollbar-thumb:hover{background:var(--line)}.meters{position:relative;z-index:10}.tip{position:relative;display:inline-block}.tip.meter{display:flex}.tip-bubble{position:absolute;z-index:100;display:none;width:max-content;max-width:230px;background:#0c0c0c;border:1px solid var(--line);color:var(--ink-dim);font-size:11px;line-height:1.45;letter-spacing:normal;text-transform:none;text-align:left;padding:6px 9px;white-space:normal;pointer-events:none;box-shadow:0 4px 14px #0009}.tip:hover>.tip-bubble{display:block}.tip-bubble.bottom{top:100%;left:0;margin-top:5px}.tip-bubble.top{bottom:100%;left:0;margin-bottom:5px}.tip-bubble.left{right:100%;top:0;margin-right:7px}.tip-bubble b{color:var(--ink)}.timectl .tip-bubble.bottom,.side .tip-bubble.bottom{left:auto;right:0}.tip-axis{margin:3px 0}.tip-axis b{color:var(--ink)}.tip-blurb{color:var(--ink-faint)}.tabs .tip{flex:1;display:flex}.tabs .tip>button{flex:1}.info{color:var(--ink-faint);cursor:help;font-size:11px}.vbtrack{position:relative;height:8px;background:var(--line-soft);display:inline-block;vertical-align:middle}.vbcenter{position:absolute;left:50%;top:-1px;bottom:-1px;width:1px;background:var(--line)}.vbfill{position:absolute;top:1px;bottom:1px;background:var(--ink-dim)}.vbars.full .vbrow{display:grid;grid-template-columns:62px 88px 74px 36px;align-items:center;gap:6px;padding:1px 0}.vbars.full .vbtrack{width:88px}.vbars.full .vbpole{font-size:10px;color:var(--ink-faint);white-space:nowrap}.vbars.full .vbpole.neg{text-align:right}.vbars.full .vbpole.pos{text-align:left}.vbars.full .vbpole.on{color:var(--ink)}.vbars.full .vbnum{font-size:10px;color:var(--ink-dim);text-align:right;font-variant-numeric:tabular-nums}.vbars.compact{display:inline-flex;gap:10px;align-items:center;flex-wrap:wrap;cursor:help}.vbmini{display:inline-flex;align-items:center;gap:4px}.vbmini .vbtrack{width:24px;height:6px}.vbword{font-size:10px;color:var(--ink-dim)}.abtrack{position:relative;height:8px;background:var(--line-soft);display:inline-block;vertical-align:middle}.abtrack>i{position:absolute;left:0;top:0;bottom:0;background:var(--ink-dim)}.abil.full .abrow{display:grid;grid-template-columns:96px 1fr 20px;align-items:center;gap:8px;padding:1px 0}.abname{font-size:11px;color:var(--ink-faint);cursor:help;border-bottom:1px dotted var(--line-soft)}.abil.full .abnum{font-size:11px;color:var(--ink);text-align:right;font-variant-numeric:tabular-nums}.abil.compact{display:inline-flex;gap:6px;align-items:flex-end;cursor:help}.abpip{display:inline-flex;flex-direction:column;align-items:center;gap:1px}.abpip .ablabel{font-size:9px;color:var(--ink-faint)}.abpip .abtrack{width:20px;height:4px}.castrow{align-items:flex-start}.castrow .name{display:flex;flex-direction:column;gap:3px;white-space:normal;overflow:visible}.castvals{margin-top:1px}.castright{display:flex;flex-direction:column;align-items:flex-end;gap:4px;flex:0 0 auto}.castright .num{color:var(--ink);font-variant-numeric:tabular-nums}.conseq-wrap{margin:10px 0}.conseq-label{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);margin-bottom:3px}.conseq{border:1px solid var(--line-soft);padding:7px 9px;font-size:12px}.conseq-effs{display:flex;flex-wrap:wrap;gap:4px 12px}.conseq-effs .eff{color:var(--ink)}.conseq-effs .arrow{color:var(--ink-dim)}.conseq-meta{color:var(--ink-faint);font-size:11px;margin-top:5px;line-height:1.5}.tip-bubble .conseq{margin-top:5px;border-color:var(--line-soft)}.gloss-steps{margin:0;padding-left:18px;color:var(--ink-dim)}.gloss-steps li{margin:5px 0}.gloss-steps b{color:var(--ink)}.axis-legend{display:flex;flex-direction:column;gap:2px;margin-top:10px}.axchip{font-size:10px;color:var(--ink-faint)}.axchip b{color:var(--ink-dim)}.founder-card .vbars.full{margin-top:6px}.founder-card .abil.full{margin-top:4px}
