:root{--page:#edf1f0;--surface:#fbfcfc;--ink:#17262e;--ink-2:#3c4e57;--muted:#5f7179;--rule:#d3dbdc;--track:#e2e8e9;--idle:#9aa8ad;--ok:#1e8e3e;--warn:#e0a100;--bad:#c62828;--accent:#2d5bd7;--grid:#e3e9e9;--sans:"Barlow", system-ui, sans-serif;--cond:"Barlow Semi Condensed", "Barlow", system-ui, sans-serif;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--page:#0e1417;--surface:#151e22;--ink:#e1e8ea;--ink-2:#b9c6ca;--muted:#8b9da4;--rule:#2a373c;--track:#223036;--idle:#5d6f76;--ok:#3fb565;--warn:#f2b42a;--bad:#f2665c;--accent:#86a6f7;--grid:#1c272b}}*{box-sizing:border-box}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--page);color:var(--ink);font:400 15px/1.55 var(--sans);font-variant-numeric:tabular-nums;margin:0;padding:0 16px 48px}a{color:var(--accent);text-underline-offset:2px}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.top,.workbench,.scenario,footer{max-width:1240px;margin:0 auto}.top{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:8px 32px;padding:28px 0 16px;display:flex}h1{font:700 clamp(1.9rem, 4vw, 2.6rem)/1 var(--cond);letter-spacing:-.01em;margin:0}.top p{color:var(--ink-2);max-width:62ch;margin:8px 0 0}.top nav{font:500 15px var(--cond);gap:20px;display:flex}.workbench{grid-template-columns:minmax(0,1.6fr) minmax(320px,1fr);align-items:start;gap:16px;display:grid}@media (width<=960px){.workbench{grid-template-columns:1fr}}.drawing,.panel{background:var(--surface);border:1px solid var(--rule);border-radius:4px}.drawing{padding:8px 8px 14px;position:sticky;top:12px}@media (width<=960px){.drawing{position:static}}.panel{padding:16px}#diagram{touch-action:manipulation;width:100%;height:auto;display:block}#diagram .grid{fill:var(--grid)}#diagram .branch{stroke-linecap:round}#diagram .flow{fill:var(--ink-2)}#diagram .xfmr{fill:var(--surface);stroke:var(--ink);stroke-width:1.6px}#diagram .stem{stroke:var(--ink);stroke-width:1.6px}#diagram .gen-sym{fill:var(--surface);stroke:var(--ink);stroke-width:1.8px}#diagram .gen-sym.limited{stroke:var(--warn);stroke-width:3px}#diagram .gen-sym.over{stroke:var(--bad);stroke-width:3px}#diagram .gen-wave{fill:none;stroke:var(--ink);stroke-width:1.6px}#diagram .load{fill:var(--ink-2)}#diagram .bar{stroke:var(--surface);stroke-width:1.5px}#diagram .bus{cursor:pointer}#diagram .bus:focus{outline:none}#diagram .bus .hit{fill:#0000}#diagram .bus.sel .bar,#diagram .bus:focus-visible .bar{stroke:var(--accent);stroke-width:3px}#diagram .bus:hover .bar{stroke:var(--accent)}#diagram .num{font:700 15px var(--cond);fill:var(--ink);text-anchor:end;dominant-baseline:central}#diagram .v{font:500 12.5px var(--cond);fill:var(--muted);text-anchor:middle}#diagram .v.flag{fill:var(--ink);font-weight:700}#diagram .gen-q{font:500 11.5px var(--cond);fill:var(--ink-2);text-anchor:middle}#diagram .added{font:600 12.5px var(--cond);fill:var(--accent);text-anchor:middle}#diagram .added-arrow{fill:var(--accent)}#diagram .num,#diagram .v,#diagram .gen-q,#diagram .added{paint-order:stroke;stroke:var(--surface);stroke-width:4px;stroke-linejoin:round}#diagram .void-box{fill:var(--surface);stroke:var(--bad);stroke-width:1.5px}#diagram .void{font:700 19px var(--cond);fill:var(--ink);text-anchor:middle}#diagram .void-sub{font:400 14px var(--sans);fill:var(--ink-2);text-anchor:middle}@media (width<=600px){#diagram .num{font-size:21px}#diagram .v{font-size:16px}#diagram .gen-q{font-size:15px}#diagram .added{font-size:17px}#diagram .void{font-size:26px}#diagram .void-sub{font-size:18px}}.key{color:var(--ink-2);flex-wrap:wrap;gap:6px 18px;margin:4px 8px 0;padding:0;font-size:13px;list-style:none;display:flex}.key li{align-items:center;gap:7px;display:flex}.key .wide{color:var(--muted);flex-basis:100%}.key i.bar{border-radius:1px;width:22px;height:6px;display:inline-block}.key svg{width:20px;height:20px}.key .k-gen{fill:none;stroke:var(--ink);stroke-width:1.6px}.key .k-lim{stroke:var(--warn);stroke-width:3px}.bar.ok{background:var(--ok)}.bar.warn{background:var(--warn)}.bar.bad{background:var(--bad)}.bar.held{background:var(--ink)}.banner{background:color-mix(in srgb, var(--ok) 11%, transparent);border-left:4px solid var(--ok);border-radius:3px;margin:0 0 4px;padding:10px 12px 10px 38px;font-size:14px;position:relative}.banner:before{content:"✓";color:var(--ok);font-weight:700;position:absolute;top:9px;left:12px}.banner.warn{background:color-mix(in srgb, var(--warn) 16%, transparent);border-color:var(--warn)}.banner.warn:before{content:"!";color:var(--ink);left:16px}.banner.bad{background:color-mix(in srgb, var(--bad) 12%, transparent);border-color:var(--bad)}.banner.bad:before{content:"✕";color:var(--bad)}.ctl{margin:14px 0;display:block}.ctl>span{color:var(--ink-2);justify-content:space-between;gap:12px;margin-bottom:4px;font-size:14px;display:flex}.ctl output{color:var(--ink);font:600 15px var(--cond)}.ctl select,.ctl input{width:100%;font:inherit;accent-color:var(--accent)}.ctl select{border:1px solid var(--rule);background:var(--surface);color:var(--ink);border-radius:3px;padding:6px 8px}.ctl input[type=range]{height:28px;margin:0}.switch{color:var(--muted);cursor:pointer;grid-template-columns:auto 1fr;align-items:start;gap:10px;margin:16px 0 12px;font-size:13px;display:grid}.switch input{width:18px;height:18px;accent-color:var(--accent);margin:2px 0 0}.switch b{color:var(--ink);font-size:14px;font-weight:600;display:block}.presets{flex-wrap:wrap;gap:8px;display:flex}button{font:500 14px var(--sans);border:1px solid var(--rule);background:var(--surface);min-height:36px;color:var(--ink);cursor:pointer;border-radius:3px;padding:7px 12px}button:hover{border-color:var(--accent);color:var(--accent)}.stats{border-top:1px solid var(--rule);grid-template-columns:1fr auto;margin:18px 0 0;font-size:14px;display:grid}.stats dt,.stats dd{border-bottom:1px solid var(--rule);margin:0;padding:6px 0}.stats dt{color:var(--ink-2)}.stats dd{text-align:right;font:600 15px var(--cond)}.stats dd small{font:400 13px var(--sans);color:var(--muted);margin-left:4px}.block{margin-top:22px}h2{font:700 1.15rem/1.2 var(--cond);margin:0 0 4px}.note{color:var(--muted);margin:0 0 10px;font-size:13px}.gens{gap:2px;display:grid}.gen-row{grid-template-columns:52px minmax(0,1fr) 112px;align-items:center;gap:8px;padding:3px 0;font-size:13px;display:grid}.gen-row .who{font:600 14px var(--cond)}.gen-row .who small{font:400 11.5px var(--sans);color:var(--muted);display:block}.gen-row svg{width:100%;height:26px;display:block;overflow:visible}.gen-row .val{text-align:right;font:600 14px var(--cond)}.gen-row .val small{font:400 12px var(--sans);color:var(--muted);display:block}.gen-row .val small.flag{color:var(--ink);font-weight:600}.gens .track{fill:var(--track)}.gens .zero{stroke:var(--muted);stroke-width:1px}.gens .tick{stroke-width:4px;stroke-linecap:round}.gens .over{font:700 12px var(--cond)}.gens-axis{font:500 11.5px var(--cond);color:var(--muted);grid-template-columns:52px minmax(0,1fr) 112px;gap:8px;display:grid}.gens-axis span{justify-content:space-between;display:flex}#conv{width:100%;height:auto;margin-bottom:4px;display:block}#conv .gridline{stroke:var(--rule);stroke-width:1px}#conv .tol{stroke:var(--ink-2);stroke-width:1px;stroke-dasharray:4 3}#conv .axis{font:500 10.5px var(--cond);fill:var(--muted)}#conv .series{fill:none;stroke:var(--accent);stroke-width:2px}#conv .pt{fill:var(--accent);stroke:var(--surface);stroke-width:2px}#conv .pass{stroke:var(--muted);stroke-width:1px}#conv .pass-label{font:600 10.5px var(--cond);fill:var(--ink-2)}details{margin-top:6px}summary{cursor:pointer;color:var(--ink-2);padding:4px 0;font-size:14px}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:right;border-bottom:1px solid var(--rule);padding:4px 6px}th{font:600 13px var(--cond);color:var(--ink-2)}th:first-child,td:first-child{text-align:left}.scenario{border-top:2px solid var(--ink);margin-top:40px;padding-top:28px}.scenario>h2{max-width:30ch;margin-bottom:10px;font-size:clamp(1.5rem,3vw,2rem)}.lede{max-width:72ch;color:var(--ink-2);margin:0 0 22px}.scenario-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start;gap:32px;display:grid}@media (width<=960px){.scenario-grid{grid-template-columns:1fr}}.table-wrap{background:var(--surface);border:1px solid var(--rule);border-radius:4px;padding:6px 12px;overflow-x:auto}.compare{font-size:14px}.compare th{vertical-align:bottom;font-size:14px}.compare td{font:500 15px var(--cond)}.compare td small{white-space:nowrap}.compare td:first-child{font:400 14px var(--sans);color:var(--ink-2)}.compare tr.group td{font:700 14px var(--cond);color:var(--ink);border-bottom-color:var(--ink-2);padding-top:14px}.compare .over{color:var(--ink);font-weight:700}.compare .over:after{content:" ▲";color:var(--bad);font-size:11px}.compare tfoot td{color:var(--muted);font:400 13px var(--sans);text-align:left;border-bottom:0;padding-top:10px}.reading{max-width:64ch}.reading h3{font:700 1.05rem var(--cond);margin:0 0 4px}.reading p{margin:0 0 16px}.reading b{font-weight:600}.reading .caveat{color:var(--muted);border-left:2px solid var(--rule);padding-left:12px;font-size:14px}footer{color:var(--muted);margin-top:36px;font-size:13px}footer p{max-width:90ch}
