:root{color-scheme:light dark;--bg: #ffffff;--fg: #1f2328;--muted: #59636e;--border: #d1d9e0;--soft: #f6f8fa;--accent: #0969da;--code-bg: #f6f8fa;--stroke-fill: #c9d6e8;--stroke-edge: #d1242f;--kw: #cf222e;--str: #0a3069;--num: #0550ae;--com: #59636e}@media (prefers-color-scheme: dark){:root{--bg: #0d1117;--fg: #e6edf3;--muted: #9198a1;--border: #3d444d;--soft: #151b23;--accent: #4493f8;--code-bg: #151b23;--stroke-fill: #34465f;--stroke-edge: #ff7b72;--kw: #ff7b72;--str: #a5d6ff;--num: #79c0ff;--com: #9198a1}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.6 system-ui,-apple-system,Segoe UI,sans-serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}main{max-width:860px;margin:0 auto;padding:2.5rem 1.5rem 4rem}main h1{margin:0 0 .3rem;font-size:2.4rem}main h2{margin-top:2.2rem;padding-bottom:.3rem;border-bottom:1px solid var(--border)}.lead{color:var(--muted);font-size:1.15rem}code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.88em;background:var(--code-bg);padding:.1em .35em;border-radius:4px}pre{background:var(--code-bg);border:1px solid var(--border);border-radius:8px;padding:.9rem 1rem;overflow-x:auto;line-height:1.45}pre code{background:none;padding:0;font-size:.86rem}.tok-kw{color:var(--kw)}.tok-str{color:var(--str)}.tok-num{color:var(--num)}.tok-com{color:var(--com);font-style:italic}table{border-collapse:collapse;width:100%;margin:1rem 0;font-size:.93rem}th,td{border:1px solid var(--border);padding:.45rem .7rem;text-align:left;vertical-align:top}th{background:var(--soft)}.note{border-left:4px solid var(--accent);background:var(--soft);padding:.7rem 1rem;border-radius:0 6px 6px 0;margin:1rem 0}.demo{border:1px solid var(--border);border-radius:10px;padding:1rem;margin:1.2rem 0;background:var(--bg)}.demo canvas{display:block;max-width:100%;border-radius:6px;background:var(--soft)}.controls{display:flex;flex-wrap:wrap;gap:.6rem 1.2rem;margin-bottom:.8rem;font-size:.9rem;align-items:center}.controls label{display:inline-flex;gap:.4rem;align-items:center}.controls input[type=range]{width:120px}.controls output{min-width:2.5em;color:var(--muted);font-variant-numeric:tabular-nums}select,input,textarea,button{font:inherit;color:inherit;background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:.15rem .4rem}input[type=range]{padding:0;border:none;background:none}textarea{width:100%;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.86rem}.caption{color:var(--muted);font-size:.85rem;margin-top:.5rem}footer{margin-top:3rem;color:var(--muted);font-size:.85rem}
