:root{--bg:#0e1116;--panel:#161b22;--panel-2:#1d2430;--border:#2d3646;--text:#e8ecf3;--muted:#aab4c5;--accent:#7cc4ff;--accent-ink:#06121f;--warn:#ffd479;--gutter:16px;--max:960px;color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);margin:0;font:16px/1.6 system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overflow-x:hidden}img,canvas{max-width:100%;height:auto;display:block}a{color:var(--accent);text-underline-offset:3px}a:hover{text-decoration-thickness:2px}:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:4px}.skip{background:var(--accent);color:var(--accent-ink);z-index:10;padding:8px 12px;position:absolute;top:8px;left:-999px}.skip:focus{left:8px}.wrap{width:100%;max-width:var(--max);padding:0 var(--gutter);margin:0 auto}header.site{border-bottom:1px solid var(--border);background:var(--bg)}header.site .wrap{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 16px;padding-top:10px;padding-bottom:10px;display:flex}.brand{color:var(--text);letter-spacing:.02em;padding:6px 0;font-size:1.2rem;font-weight:700;text-decoration:none}nav ul{flex-wrap:wrap;gap:0 4px;margin:0;padding:0;list-style:none;display:flex}nav a{color:var(--text);border-radius:6px;min-height:44px;padding:10px;text-decoration:none;display:block}nav a:hover,nav a[aria-current=page]{background:var(--panel-2)}main{padding:24px 0 48px}h1{margin:0 0 12px;font-size:clamp(1.7rem,5vw,2.4rem);line-height:1.2}h2{margin:36px 0 10px;font-size:1.4rem;line-height:1.3}h3{margin:24px 0 6px;font-size:1.1rem}p,ul,ol,dl{margin:0 0 14px}.lead{color:var(--muted);font-size:1.1rem}.prose{max-width:68ch}.card,.tool{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px}.grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:16px;padding:0;list-style:none;display:grid}.grid a.tile{color:var(--text);background:var(--panel);border:1px solid var(--border);border-radius:12px;height:100%;text-decoration:none;display:block;overflow:hidden}.grid a.tile:hover{border-color:var(--accent)}.grid .tile .t{padding:10px 12px 12px}.grid .tile strong{display:block}.grid .tile span{color:var(--muted);font-size:.9rem}.btn,button{font:inherit;cursor:pointer;border:1px solid var(--border);background:var(--panel-2);color:var(--text);border-radius:8px;min-height:44px;padding:10px 16px}.btn.primary,button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:600}button:hover{border-color:var(--accent)}a.btn{text-decoration:none;display:inline-block}.controls{grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));align-items:end;gap:14px;margin-bottom:14px;display:grid}.controls label,.controls legend{color:var(--muted);margin-bottom:4px;font-size:.9rem;display:block}.controls fieldset{border:1px solid var(--border);border-radius:8px;min-width:0;margin:0;padding:6px 10px 8px}.controls fieldset label{color:var(--text);align-items:center;gap:6px;min-height:32px;margin-right:12px;display:inline-flex}input[type=text],input[type=number],select{width:100%;font:inherit;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:8px;min-height:44px;padding:10px}input[type=range]{width:100%;accent-color:var(--accent);min-height:32px}input[type=checkbox],input[type=radio]{width:20px;height:20px;accent-color:var(--accent)}.actions{flex-wrap:wrap;gap:10px;margin:8px 0 12px;display:flex}.status{color:var(--warn);min-height:1.6em;margin:4px 0}.stage{border:1px solid var(--border);background:#000;border-radius:8px;overflow:hidden}.stage canvas{width:100%}.readout{color:var(--muted);margin-top:8px;font-size:.95rem}.measure{grid-template-columns:auto 1fr;gap:4px 14px;margin:0;font-size:.92rem;display:grid}.measure dt{color:var(--muted)}.measure dd{word-break:break-word;font-variant-numeric:tabular-nums;margin:0}.split{gap:16px;display:grid}@media (width>=820px){.split{grid-template-columns:2fr 1fr;align-items:start}}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.92rem}.scroll{border:1px solid var(--border);border-radius:8px;overflow-x:auto}th,td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:8px 10px}th{background:var(--panel-2);font-weight:600}tr.weak td{color:var(--warn)}.note{background:var(--panel-2);border-left:4px solid var(--warn);border-radius:6px;padding:10px 14px}.badge{background:var(--panel-2);border:1px solid var(--border);border-radius:99px;padding:2px 10px;font-size:.85rem;display:inline-block}details{margin:10px 0}summary{cursor:pointer;min-height:44px;padding:8px 0}footer.site{border-top:1px solid var(--border);color:var(--muted);padding:24px 0 32px;font-size:.92rem}footer.site ul{flex-wrap:wrap;gap:4px 16px;padding:0;list-style:none;display:flex}footer.site a{color:var(--muted);padding:8px 0;display:inline-block}.sr{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.crumbs{color:var(--muted);margin-bottom:8px;font-size:.9rem}.pair{gap:16px;display:grid}@media (width>=700px){.pair{grid-template-columns:1fr 1fr}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
