:root{color-scheme:light dark;--bg:#fff;--bg-subtle:#f6f8fa;--text:#1f2328;--text-muted:#636c76;--border:#d0d7de;--accent:#0969da;--accent-subtle:#0969da14;--warning:#9a6700;--warning-bg:#d4a72c14}@media (prefers-color-scheme:dark){:root{--bg:#0d1117;--bg-subtle:#161b22;--text:#e6edf3;--text-muted:#8d96a0;--border:#30363d;--accent:#58a6ff;--accent-subtle:#58a6ff1a;--warning:#d4a72c;--warning-bg:#bb80091a}}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;margin:0;font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Noto Sans JP,Segoe UI,sans-serif;font-size:1rem;line-height:1.9}main{max-width:46rem;margin:0 auto;padding:2rem 1.25rem 4rem}h1{font-size:1.7rem;line-height:1.4}h2{border-bottom:1px solid var(--border);margin-top:3.5rem;padding-bottom:.4rem;font-size:1.3rem;line-height:1.5}h3{margin-top:2.5rem;font-size:1.05rem;line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}ul,ol{padding-left:1.5rem}li{margin:.25rem 0}.lesson h2{scroll-margin-top:1.5rem}.heading-anchor{color:var(--text-muted);opacity:.5;margin-left:.4em;font-size:.8em;font-weight:400;text-decoration:none}.heading-anchor:hover,.heading-anchor:focus-visible{color:var(--accent);opacity:1}code{font-family:ui-monospace,SF Mono,SFMono-Regular,Menlo,Consolas,monospace}:not(pre)>code{background:var(--bg-subtle);border:1px solid var(--border);overflow-wrap:anywhere;border-radius:4px;padding:.05em .35em;font-size:.85em}pre.astro-code{border-radius:8px;padding:1rem 1.25rem;font-size:.8125rem;line-height:1.7;overflow-x:auto}figcaption{color:var(--text-muted);margin-top:.6rem;font-size:.85rem;line-height:1.7}figure.code{margin:1.5rem 0}figure.code>figcaption{color:var(--text-muted);overflow-wrap:anywhere;margin-top:0;margin-bottom:.4rem;font-family:ui-monospace,SF Mono,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem}figure.diagram{margin:2rem 0}figure.diagram svg{width:100%;height:auto;display:block}figure.demo{margin:2rem 0}figure.demo canvas{aspect-ratio:3/2;border:1px solid var(--border);background:#101317;border-radius:8px;width:100%;display:block}figure.demo canvas.interactive{cursor:grab;touch-action:none}figure.demo canvas.interactive:active{cursor:grabbing}.demo-controls{margin:.75rem 0 0}.demo-controls button{font:inherit;background:var(--bg-subtle);color:var(--text);border:1px solid var(--border);cursor:pointer;border-radius:6px;padding:.35rem .9rem;font-size:.85rem}.demo-controls button:hover{border-color:var(--accent);color:var(--accent)}.demo-controls button[aria-pressed=true]{border-color:var(--accent);color:var(--accent);background:var(--accent-subtle)}.demo-readout{color:var(--text-muted);margin:.5rem 0 0;font-family:ui-monospace,SF Mono,SFMono-Regular,Menlo,Consolas,monospace;font-size:.75rem}.table-wrap{margin:1.5rem 0;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.875rem;line-height:1.6}th,td{border:1px solid var(--border);text-align:left;vertical-align:top;padding:.5rem .75rem}th{background:var(--bg-subtle);white-space:nowrap}aside.note,aside.pitfall{border-left:3px solid var(--accent);background:var(--accent-subtle);border-radius:0 8px 8px 0;margin:1.5rem 0;padding:.25rem 1.25rem;font-size:.95rem}aside.pitfall{border-left-color:var(--warning);background:var(--warning-bg)}aside.note>.aside-title,aside.pitfall>.aside-title{margin-bottom:-.5rem;font-weight:600}aside.pitfall>.aside-title{color:var(--warning)}.site-header{border-bottom:1px solid var(--border)}.site-header>.inner{max-width:46rem;margin:0 auto;padding:.9rem 1.25rem}.site-title{color:var(--text);font-size:.95rem;font-weight:600}.site-footer{border-top:1px solid var(--border);max-width:46rem;color:var(--text-muted);margin:0 auto;padding:1.5rem 1.25rem 3rem;font-size:.8rem}.lesson-meta{color:var(--text-muted);margin:0 0 .25rem;font-size:.85rem}.lesson h1{margin:0 0 2rem}.lesson-nav{border-top:1px solid var(--border);justify-content:space-between;gap:1rem;margin-top:4rem;padding-top:1.25rem;font-size:.9rem;display:flex}.toc-part{margin-top:2.5rem}.toc ol{margin:.5rem 0 0}.toc .planned{color:var(--text-muted)}
