:root{color-scheme:light}html,body{margin:0;padding:0;background:var(--color-bg);color:var(--color-ink);font-family:var(--font-body);font-size:18px;line-height:var(--leading-relaxed)}.shell{display:grid;grid-template-columns:260px minmax(0,1fr);gap:var(--space-10);margin:0 auto;padding:var(--space-10) var(--space-6)}aside.toc{position:sticky;top:var(--space-6);align-self:start;font-size:var(--text-sm);line-height:var(--leading-snug);display:flex;flex-direction:column;min-height:calc(100vh - var(--space-10) * 2)}aside.toc .toc-download{margin-top:auto;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border);border-radius:6px;text-align:center;text-decoration:none;color:var(--color-primary);font-weight:600;font-size:var(--text-sm)}aside.toc .toc-download+.toc-download{margin-top:var(--space-2)}aside.toc .toc-download:hover{background:var(--color-bg-muted)}aside.toc .toc-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-2);margin:0 0 var(--space-3)}aside.toc .toc-head h2{margin:0}aside.toc .toc-version{color:var(--color-primary);font-size:var(--text-sm);font-weight:600;font-variant-numeric:tabular-nums;text-decoration:underline}aside.toc .toc-version:hover{text-decoration:none}aside.toc .toc-logo{margin-top:var(--space-4);padding-top:var(--space-2);display:flex;justify-content:center}aside.toc .toc-logo img{width:200px;height:auto;display:block}aside.toc h2{font-family:var(--font-title);font-size:var(--text-lg);color:var(--color-primary);margin:0 0 var(--space-3)}aside.toc ol{list-style:none;padding:0;margin:0;display:grid;gap:var(--space-2)}aside.toc a{color:var(--color-fg-muted);text-decoration:none}aside.toc a:hover{color:var(--color-link-hover)}aside.toc a[aria-current=page]{color:var(--color-primary);font-weight:600}aside.toc ol.sub{margin:var(--space-2) 0 var(--space-2) var(--space-3);padding-left:var(--space-3);border-left:1px solid var(--color-border);display:grid;gap:var(--space-1);font-size:var(--text-sm)}aside.toc ol.sub a{color:var(--color-fg-subtle)}aside.toc ol.sub a:hover{color:var(--color-link-hover)}main.prose{max-width:130ch;display:flex;flex-direction:column}main.prose>h1{order:-2}main.prose>.page-toc{order:-1}main.prose .page-toc{align-self:start;margin:0 0 var(--space-8);padding:var(--space-3) var(--space-5);border:1px solid var(--color-border);border-radius:8px;background:var(--color-bg-muted);font-size:var(--text-sm)}main.prose .page-toc .page-toc-title{margin:0 0 var(--space-2);font-family:var(--font-title);font-size:var(--text-sm);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--color-primary)}main.prose .page-toc ol{list-style:none;margin:0;padding:0;display:grid;gap:var(--space-2)}main.prose .page-toc li{margin:0;font-size:var(--text-sm);line-height:var(--leading-snug)}main.prose .page-toc a{color:var(--color-fg-muted);font-weight:500;text-decoration:none}main.prose .page-toc a:hover{color:var(--color-link-hover);text-decoration:underline}main.prose .page-toc ol.sub{gap:var(--space-1);margin:var(--space-1) 0 var(--space-1) var(--space-2);padding-left:var(--space-3);border-left:1px solid var(--color-border)}main.prose .page-toc ol.sub a{color:var(--color-fg-subtle)}main.prose h1{font-family:var(--font-title);font-weight:600;font-size:var(--text-5xl);line-height:var(--leading-tight);color:var(--color-primary);margin:0 0 var(--space-6)}main.prose h2{font-family:var(--font-title);font-size:var(--text-3xl);color:var(--color-primary);margin:var(--space-10) 0 var(--space-3)}main.prose h3{font-family:var(--font-body);font-weight:600;font-size:var(--text-xl);margin:var(--space-6) 0 var(--space-2)}main.prose p{margin:0 0 var(--space-4);font-size:var(--text-base)}main.prose a{color:var(--color-link);font-weight:500;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--color-link) 45%,transparent);text-decoration-thickness:1.5px;text-underline-offset:.18em;transition:color .12s ease,text-decoration-color .12s ease}main.prose a:hover{color:var(--color-link-hover);text-decoration-color:currentColor}main.prose img{max-width:100%;height:auto;border-radius:8px;margin:var(--space-6) auto;display:block}main.prose code{font-family:var(--font-mono);font-size:.9em;background:var(--color-bg-muted);padding:.1em .3em;border-radius:4px}main.prose pre{--gutter: 2.5ch;border:1px solid var(--color-border);padding:var(--space-3) var(--space-4);border-radius:8px;overflow-x:auto;font-size:var(--text-sm);line-height:var(--leading-snug);margin:var(--space-3) 0 var(--space-6);box-shadow:0 1px 2px #1018280d;counter-reset:codeline}main.prose pre code{background:transparent;padding:0;font-size:inherit}main.prose pre code .line:before{counter-increment:codeline;content:counter(codeline);display:inline-block;width:var(--gutter);margin-right:var(--space-4);text-align:right;color:var(--color-fg-muted);opacity:.4;user-select:none;-webkit-user-select:none}main.prose blockquote{border-left:3px solid var(--color-accent);margin:var(--space-6) 0;padding:var(--space-2) var(--space-5);color:var(--color-fg-muted);font-style:italic}main.prose ul,main.prose ol{padding-left:var(--space-6)}main.prose li{margin-bottom:var(--space-2);font-size:var(--text-base);line-height:var(--leading-relaxed)}.chapter-nav{display:flex;justify-content:space-between;margin-top:var(--space-10);padding-top:var(--space-6);border-top:1px solid var(--color-border);font-size:var(--text-sm)}@media(max-width:768px){.shell{grid-template-columns:1fr}aside.toc{position:static}}
