@font-face{font-family:alfa slab one;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/alfa-slab-one-400.woff2)format("woff2")}@font-face{font-family:inter;font-style:normal;font-weight:400 600;font-display:swap;src:url(../fonts/inter-variable.woff2)format("woff2")}@font-face{font-family:ibm plex mono;font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/ibm-plex-mono-400.woff2)format("woff2")}@font-face{font-family:ibm plex mono;font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/ibm-plex-mono-500.woff2)format("woff2")}:root{--ink:#0A0A0A;--paper:#FFFFFF;--wash:#F5F4F0;--line:#E2E0D9;--muted:#65635D;--accent:#FF4F1A;--code-bg:#121211;--code-text:#ECEAE3;--code-dim:#8F8D86;--font-display:"Alfa Slab One", Rockwell, "Roboto Slab", Georgia, serif;--font-text:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--radius:8px;--topbar-h:72px;--sidebar-w:256px;--toc-w:232px}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:calc(var(--topbar-h) + 24px)}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-text);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}img{max-width:100%}a{color:inherit}:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:2px}.skip-link{position:absolute;left:16px;top:-64px;z-index:200;padding:10px 16px;background:var(--ink);color:var(--paper);border-radius:var(--radius);font-weight:600;font-size:15px;text-decoration:none}.skip-link:focus{top:16px;outline-color:var(--accent)}.btn{display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:0 18px;border:1px solid var(--ink);border-radius:var(--radius);font-size:15px;font-weight:600;line-height:1.2;text-decoration:none;white-space:nowrap;transition:background-color .15s ease,color .15s ease}.btn-primary{background:var(--ink);color:var(--paper)}.btn-primary:hover{background:#2b2a28;border-color:#2b2a28}.btn-secondary{background:var(--paper);color:var(--ink)}.btn-secondary:hover{background:var(--wash)}.topbar{position:sticky;top:0;z-index:50;height:var(--topbar-h);background:var(--paper);border-bottom:1px solid var(--line)}.topbar-inner{height:100%;max-width:1440px;margin:0 auto;padding:0 24px;display:flex;align-items:center;gap:24px}.menu-toggle{display:none;flex-direction:column;justify-content:center;gap:4px;width:40px;height:40px;border:1px solid var(--line);background:var(--paper);cursor:pointer;border-radius:var(--radius)}.menu-toggle span{width:18px;height:2px;background:var(--ink);margin:0 auto;border-radius:2px}.menu-toggle:hover{background:var(--wash)}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);white-space:nowrap}.brand img{display:block;width:98px;height:24px}.brand-sub{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:2px 6px}.search{position:relative;flex:1;max-width:440px}#search-input{width:100%;height:40px;padding:0 40px 0 14px;border-radius:var(--radius);border:1px solid var(--line);background:var(--paper);color:var(--ink);font-family:var(--font-text);font-size:15px}#search-input::placeholder{color:var(--muted)}#search-input:focus{outline:2px solid var(--ink);outline-offset:1px}.search-kbd{position:absolute;right:10px;top:50%;transform:translateY(-50%);font-family:var(--font-mono);font-size:12px;color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:0 6px;pointer-events:none}.search-results{position:absolute;top:calc(100% + 6px);left:0;right:0;background:var(--paper);border:1px solid var(--ink);border-radius:var(--radius);max-height:60vh;overflow-y:auto;z-index:60}.search-results a{display:block;padding:10px 14px;text-decoration:none;color:var(--ink);border-bottom:1px solid var(--line)}.search-results a:last-child{border-bottom:none}.search-results a:hover,.search-results a.is-selected{background:var(--wash)}.search-results .result-title{font-weight:600;font-size:15px}.search-results .result-snippet{font-size:13px;color:var(--muted);margin-top:2px}.search-results .no-results{padding:12px 14px;color:var(--muted);font-size:14px}.topbar-nav{display:flex;align-items:center;gap:24px;margin-left:auto}.topbar-nav a{font-size:15px;font-weight:500;text-decoration:none;white-space:nowrap}.topbar-nav a:hover{text-decoration:underline;text-underline-offset:4px}.topbar-actions{display:flex;align-items:center;gap:12px}.shell{max-width:1440px;margin:0 auto;display:grid;grid-template-columns:var(--sidebar-w)minmax(0,1fr)var(--toc-w);align-items:start}.sidebar-backdrop{display:none}.sidebar{position:sticky;top:var(--topbar-h);height:calc(100vh - var(--topbar-h));overflow-y:auto;border-right:1px solid var(--line);padding:32px 16px 32px 24px}ul.menu,ul.menu ul.menu{list-style:none;margin:0;padding:0}ul.menu ul.menu{margin:2px 0 6px 12px;padding-left:10px;border-left:1px solid var(--line)}.menu-item{margin:2px 0}.menu-item>a,.menu-group-label{display:block;padding:7px 12px;border-left:2px solid transparent;color:var(--muted);text-decoration:none;font-size:15px}.menu-group-label{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.12em;margin-top:16px}.menu-item>a:hover{color:var(--ink)}.menu-item.is-active>a{color:var(--ink);font-weight:600;border-left-color:var(--accent)}.content{min-width:0;padding:40px 48px 80px}.content-inner{max-width:760px;margin:0 auto}.breadcrumbs{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:16px}.breadcrumbs a{color:inherit;text-decoration:none}.breadcrumbs a:hover{color:var(--ink)}.breadcrumbs .sep{margin:0 8px}.toc-pane{position:sticky;top:var(--topbar-h);height:calc(100vh - var(--topbar-h));overflow-y:auto;padding:40px 24px 32px 8px}.toc-title{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:400;margin:0 0 12px}.toc-inner nav ul{list-style:none;padding-left:0;margin:0;font-size:14px}.toc-inner nav ul ul{padding-left:14px}.toc-inner nav li{margin:6px 0}.toc-inner nav a{color:var(--muted);text-decoration:none;display:block;line-height:1.4}.toc-inner nav a:hover{color:var(--ink)}.prose{color:var(--ink);overflow-wrap:break-word}.prose h1{font-family:var(--font-display);font-weight:400;font-size:clamp(32px,4.4vw,44px);line-height:1.1;letter-spacing:-.02em;margin:0 0 20px}.prose h2{font-family:var(--font-display);font-weight:400;font-size:26px;line-height:1.2;letter-spacing:-.01em;margin:56px 0 16px;padding-top:24px;border-top:2px solid var(--ink)}.prose h1+h2{border-top:none;padding-top:0;margin-top:24px}.prose h3{font-size:19px;font-weight:600;line-height:1.3;margin:32px 0 10px}.prose h4{font-size:16px;font-weight:600;margin:24px 0 8px}.prose h2 a.anchor,.prose h3 a.anchor,.prose h4 a.anchor{display:none}.prose p{margin:14px 0}.prose h1+p{font-size:18px;color:var(--muted)}.prose a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:2px;text-underline-offset:3px}.prose a:hover{text-decoration-color:var(--ink)}.prose ul,.prose ol{padding-left:22px}.prose li{margin:6px 0}.prose li::marker{color:var(--muted)}.prose blockquote{margin:20px 0;padding:4px 20px;border-left:3px solid var(--accent);background:var(--wash);color:var(--muted);border-radius:0 var(--radius)var(--radius)0}.prose hr{border:none;border-top:1px solid var(--line);margin:40px 0}.prose code{font-family:var(--font-mono);font-size:.875em;background:var(--wash);border:1px solid var(--line);color:var(--ink);padding:1px 5px;border-radius:4px}.prose pre{margin:20px 0;background:var(--code-bg);color:var(--code-text);border-radius:var(--radius);padding:20px;overflow-x:auto;font-family:var(--font-mono);font-size:14px;line-height:1.65}.prose pre code{background:0 0;border:none;padding:0;color:inherit;font-size:inherit}.prose h1 code,.prose h2 code,.prose h3 code{background:0 0;border:none;padding:0;font-size:.82em}.chroma .c,.chroma .c1,.chroma .cm,.chroma .cs,.chroma .ch{color:var(--code-dim)}.chroma .cp,.chroma .cpf{color:#c9c6bc}.chroma .k,.chroma .kc,.chroma .kd,.chroma .kn,.chroma .kp,.chroma .kr,.chroma .kt{color:#ff8a5f}.chroma .s,.chroma .s1,.chroma .s2,.chroma .sb,.chroma .sc,.chroma .se,.chroma .sh{color:#d9c98a}.chroma .m,.chroma .mi,.chroma .mf,.chroma .mh,.chroma .il{color:#d9c98a}.chroma .nf,.chroma .fm,.chroma .nc,.chroma .nn{color:#fff}.chroma .nb,.chroma .nv{color:#c9c6bc}.chroma .gp{color:var(--accent)}.chroma .err{color:inherit}.prose table{width:100%;border-collapse:collapse;margin:20px 0;font-size:14px;display:block;overflow-x:auto}.prose td{min-width:120px}.prose th,.prose td{border-bottom:1px solid var(--line);padding:10px 12px;text-align:left;vertical-align:top}.prose th{font-family:var(--font-mono);font-size:11px;font-weight:400;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);border-bottom:2px solid var(--ink);white-space:nowrap}.page-list{list-style:none;padding:0}.prose-home .hero{padding:16px 0 8px}.prose-home .hero h1{font-size:clamp(36px,5vw,52px);max-width:640px;margin:0 0 20px}.prose-home .hero p{color:var(--muted);font-size:18px;max-width:620px;margin:0}.prose-home .hero p strong{color:var(--ink)}.prose-home .cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 32px;margin:32px 0}.prose-home .card{border-top:2px solid var(--ink);padding:20px 0 24px}.prose-home .card h3{margin:0 0 8px;font-size:17px}.prose-home .card p{margin:0;font-size:15px;color:var(--muted)}.pagenav{display:flex;justify-content:space-between;gap:16px;margin-top:64px;padding-top:24px;border-top:1px solid var(--line)}.pagenav a{flex:1;max-width:48%;display:flex;flex-direction:column;gap:4px;padding:14px 18px;border:1px solid var(--line);border-radius:var(--radius);text-decoration:none;color:var(--ink)}.pagenav a:hover{border-color:var(--ink)}.pagenav-next{margin-left:auto;text-align:right;align-items:flex-end}.pagenav-label{font-family:var(--font-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.pagenav-title{font-weight:600;font-size:16px}.edit-link{margin-top:24px}.edit-link a{font-size:14px;color:var(--muted)}.edit-link a:hover{color:var(--ink)}.site-footer{border-top:1px solid var(--line)}.site-footer-inner{max-width:1440px;margin:0 auto;padding:32px 24px;display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px;color:var(--muted);font-size:15px}.site-footer p{margin:0}.site-footer nav{display:flex;flex-wrap:wrap;gap:8px 24px;margin-left:auto}.site-footer nav a{text-decoration:none}.site-footer nav a:hover{color:var(--ink);text-decoration:underline;text-underline-offset:4px}@media(max-width:1180px){.shell{grid-template-columns:var(--sidebar-w)minmax(0,1fr)}.toc-pane{display:none}.topbar-nav{display:none}.topbar-actions{margin-left:auto}}@media(max-width:860px){.menu-toggle{display:flex}.topbar-inner{padding:0 16px;gap:12px}.shell{grid-template-columns:1fr}.sidebar{position:fixed;top:var(--topbar-h);left:0;width:min(80vw,var(--sidebar-w));background:var(--paper);z-index:70;transform:translateX(-100%);transition:transform .2s ease}.shell.sidebar-open .sidebar{transform:translateX(0)}.shell.sidebar-open .sidebar-backdrop{display:block;position:fixed;inset:var(--topbar-h)0 0 0;background:rgba(10,10,10,.4);z-index:60}.content{padding:28px 20px 56px}.brand-sub,.topbar-actions .btn-secondary{display:none}.site-footer nav{margin-left:0}}@media(max-width:520px){.topbar-actions{display:none}.pagenav{flex-direction:column}.pagenav a{max-width:none}}@media(prefers-reduced-motion:reduce){.sidebar,.btn{transition:none}}