:root{color-scheme:light dark;--bg:#ffffff;--surface:#c5cae9;--primary:#3f51b5;--primary-dark:#303f9f;--on-primary:#ffffff;--text:#212121;--muted:#757575;--line:#bdbdbd;--accent:#7c4dff;--code:#f3f4fb;font-family:open sans,Helvetica,Arial,sans-serif;font-size:16px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);line-height:1.7}a{color:var(--accent);text-underline-offset:.2em}a:hover{text-decoration-thickness:2px}a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.skip-link{position:fixed;top:-5rem;left:1rem;padding:.6rem 1rem;background:var(--bg);z-index:3}.skip-link:focus{top:1rem}.header{display:flex;align-items:center;justify-content:space-between;padding:1rem 2rem;background:var(--primary);border-bottom:1px solid var(--primary-dark)}.header a{color:var(--on-primary);text-decoration:none}.brand{font-size:1.25rem;font-weight:750;color:var(--text);letter-spacing:-.04em}.brand span{margin-left:.65rem;color:var(--on-primary);font-size:.85rem;font-weight:450;letter-spacing:0}.shell{display:grid;grid-template-columns:15rem minmax(0,1fr);max-width:100rem;margin:auto}.sidebar{display:flex;flex-direction:column;align-self:start;position:sticky;top:0;max-height:100dvh;overflow-y:auto;padding:2rem 1.5rem;border-right:1px solid var(--line)}.navigation{flex-shrink:0}.navigation summary{font-size:.8rem;color:var(--muted);font-weight:650;letter-spacing:.06em;text-transform:uppercase;list-style:none}.navigation nav{display:grid;gap:.25rem;margin-top:1rem}.navigation a{padding:.4rem .7rem;border-radius:.35rem;color:var(--muted);text-decoration:none;font-size:.9rem}.navigation a:hover,.navigation a[aria-current]{background:var(--surface);color:var(--text)}.sidebar-note{flex-shrink:0;margin:3rem .7rem;color:var(--muted);font-size:.8rem}main{min-width:0;padding:2.5rem 3rem}.article-layout{display:grid;grid-template-columns:minmax(0,48rem)13rem;gap:3rem}.prose{min-width:0;max-width:48rem;overflow-wrap:anywhere}h1,h2,h3,h4{line-height:1.25;letter-spacing:-.025em;scroll-margin-top:2rem}h1{margin-top:0;font-size:clamp(1.8rem,4vw,2.6rem)}h2{margin-top:2.5rem;padding-top:1rem;border-top:1px solid var(--line);font-size:1.4rem}h3{margin-top:2rem;font-size:1.1rem}.home>p:first-of-type{font-size:1.15rem;color:var(--muted)}code{font-family:ui-monospace,monospace;font-size:.85em;background:var(--code);border-radius:.25rem;padding:.15em .3em}pre{overflow-x:auto;padding:1.2rem;border:1px solid var(--line);border-radius:.5rem;line-height:1.55}pre code{background:0 0;padding:0}.prose img{max-width:100%;height:auto}.prose table{display:block;width:100%;overflow-x:auto;border-collapse:collapse;font-size:.9rem}th,td{padding:.65rem .8rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{background:var(--surface)}blockquote{margin-left:0;border-left:3px solid var(--accent);padding-left:1.2rem;color:var(--muted)}.prose details{border:1px solid var(--line);border-radius:.4rem;padding:.8rem 1rem;margin:1.2rem 0}summary{cursor:pointer;font-weight:600}.toc{align-self:start;position:sticky;top:2rem;font-size:.8rem;color:var(--muted);max-height:calc(100vh - 4rem);overflow-y:auto}.toc ul{list-style:none;padding-left:.8rem}.toc>details>nav>ul{padding-left:0}.toc li{margin:.4rem 0}.toc a{color:var(--muted);text-decoration:none}.toc a:hover{color:var(--accent)}footer{display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;max-width:48rem;margin-top:4rem;padding-top:1rem;border-top:1px solid var(--line);color:var(--muted);font-size:.8rem}@media(prefers-color-scheme:dark){:root{--bg:#171823;--surface:#292d4a;--text:#ffffff;--muted:#c5cae9;--line:#515675;--accent:#b69cff;--code:#23263b}}@media(max-width:1200px){.article-layout{grid-template-columns:minmax(0,1fr)}.toc{position:static;max-height:none;grid-row:1;border-bottom:1px solid var(--line);padding-bottom:1rem}}@media(max-width:760px){.header{padding:1rem 1.25rem}.shell{grid-template-columns:minmax(0,1fr)}.sidebar{position:static;max-height:none;overflow-y:visible;padding:1rem 1.25rem;border-right:0;border-bottom:1px solid var(--line)}.navigation summary{list-style:revert}.navigation nav{grid-template-columns:repeat(2,minmax(0,1fr))}.sidebar-note{display:none}main{padding:2rem 1.25rem}}