@font-face{font-family:EB Garamond;src:url(/fonts/eb-garamond-latin-variable.woff2)format("woff2");font-style:normal;font-weight:400 800;font-display:swap}@font-face{font-family:EB Garamond;src:url(/fonts/eb-garamond-latin-variable-italic.woff2)format("woff2");font-style:italic;font-weight:600 700;font-display:swap}@font-face{font-family:Libre Franklin;src:url(/fonts/libre-franklin-latin-variable.woff2)format("woff2");font-style:normal;font-weight:400 700;font-display:swap}:root{color-scheme:light;--paper:#f7f1e4;--paper-soft:#fffaf0;--paper-deep:#eadfca;--ink:#1d2522;--ink-soft:#53615c;--ink-muted:#7a877f;--rule:#1d252229;--rule-strong:#1d252247;--wash:#fffaf0b8;--green:#2e6d57;--blue:#2c5668;--red:#8c3b33;--gold:#a87728;--code-bg:#17201d;--code-fg:#f6efe1;--shadow:0 16px 38px #1d252214;--sans:"Libre Franklin", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--serif:"EB Garamond", Georgia, "Times New Roman", serif;--mono:"SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace}*,:before,:after{box-sizing:border-box}html{background:var(--paper);min-height:100%;color:var(--ink);font-family:var(--sans)}body{margin:0}a{color:var(--green);text-underline-offset:.18em;text-decoration-color:#2e6d5759}a:hover{color:var(--blue);text-decoration-color:currentColor}code,pre{font-family:var(--mono)}.site-shell{grid-template-columns:280px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--rule);background:#f7f1e4e6;height:100vh;padding:28px 24px;position:sticky;top:0;overflow-y:auto}.brand{color:var(--ink);font-family:var(--serif);letter-spacing:-.035em;align-items:center;font-size:2.5rem;font-style:normal;font-weight:500;line-height:1;text-decoration:none;display:flex}.sidebar-header{justify-content:space-between;align-items:center;gap:16px;display:flex}.menu-toggle{border:1px solid var(--rule-strong);background:var(--paper-soft);min-height:44px;color:var(--ink);font:600 .875rem var(--sans);cursor:pointer;border-radius:6px;justify-content:center;align-items:center;gap:10px;padding:8px 12px;display:inline-flex}.menu-toggle[hidden],#site-menu[hidden],.menu-close,.menu-toggle[aria-expanded=true] .menu-bars{display:none}.menu-toggle[aria-expanded=true] .menu-close{display:block}.menu-toggle:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.nav{margin-top:34px}.nav-section+.nav-section{margin-top:30px}.nav-section h2{color:var(--ink);font-family:var(--serif);letter-spacing:0;text-transform:none;margin:0 0 10px;font-size:1rem;font-style:italic;font-weight:700}.nav-section ul{gap:4px;margin:0;padding:0;list-style:none;display:grid}.nav-link{color:var(--ink-soft);border-left:2px solid #0000;padding:8px 10px;font-size:.95rem;text-decoration:none;display:block}.nav-link:hover,.nav-link.active{border-color:var(--ink);color:var(--ink);background:#fffaf0b3}.repo-links{flex-wrap:wrap;gap:12px;margin-top:36px;display:flex}.repo-link{border:1px solid var(--rule);color:var(--ink-soft);border-radius:8px;padding:9px 12px;font-size:.9rem;text-decoration:none;display:inline-block}.page{width:min(100%,960px);padding:56px 56px 72px}.hero{border-bottom:1px solid var(--rule);padding:28px 0 44px;container-type:inline-size}.hero .hero-slogan{font-size:min(5.2rem,11.8cqi)}.hero-slogan span{white-space:nowrap;display:block}.eyebrow{border:1px solid var(--rule);background:var(--wash);color:var(--ink-soft);letter-spacing:.08em;text-transform:uppercase;border-radius:999px;padding:5px 10px;font-size:.78rem;font-weight:700;display:inline-flex}h1,h2,h3{color:var(--ink);font-family:var(--serif);letter-spacing:0;font-style:normal;font-weight:600}h1{max-width:760px;font-family:var(--serif);margin:18px 0;font-size:clamp(2.65rem,7vw,5.2rem);font-style:italic;line-height:.96}h2{font-family:var(--serif);margin:48px 0 16px;font-size:2rem;line-height:1.12}h3{margin:28px 0 8px;font-size:1.35rem}p,li{color:var(--ink-soft);font-size:1rem;line-height:1.72}.lede{max-width:720px;color:var(--ink-soft);font-size:1.22rem;line-height:1.65}.actions{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}.button{border:1px solid var(--rule-strong);min-height:42px;color:var(--ink);border-radius:8px;align-items:center;padding:10px 14px;font-weight:700;text-decoration:none;display:inline-flex}.button.primary{background:var(--ink);color:var(--paper-soft)}.button.secondary{background:var(--wash)}.grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:28px;display:grid}.card{border:1px solid var(--rule);background:var(--wash);box-shadow:var(--shadow);border-radius:8px;padding:18px}.card h3{margin-top:0}.card p{margin-bottom:0}.doc{max-width:760px}.doc>h1:first-child{margin-top:0}.note{border-left:3px solid var(--gold);background:#fffaf094;padding:12px 16px}.note p{margin:0}pre{background:var(--code-bg);color:var(--code-fg);border:1px solid #fffaf01f;border-radius:8px;padding:16px;line-height:1.55;overflow-x:auto}pre code{color:inherit;font-size:.92rem}:not(pre)>code{color:var(--red);background:#fffaf0b8;border:1px solid #1d25221f;border-radius:5px;padding:.13em .32em;font-size:.92em}table{border-collapse:collapse;width:100%;margin:20px 0;font-size:.95rem}th,td{border-bottom:1px solid var(--rule);text-align:left;vertical-align:top;padding:11px 10px}th{color:var(--ink)}.page-turn{border-top:1px solid var(--rule);justify-content:space-between;gap:18px;margin-top:64px;padding-top:24px;display:flex}.page-turn a{color:var(--ink);font-weight:700;text-decoration:none}.page-turn span{color:var(--ink-muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:3px;font-size:.78rem;font-weight:700;display:block}@media (width<=900px){.site-shell{grid-template-columns:minmax(0,1fr)}.sidebar{border-right:0;border-bottom:1px solid var(--rule);height:auto;padding:18px 22px;position:static}.nav{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.brand{font-size:2rem}.nav-section+.nav-section{margin-top:0}.page{width:100%;padding:36px 22px 56px}.grid{grid-template-columns:1fr}}@media (width<=560px){.nav{grid-template-columns:1fr}h1{font-size:2.65rem}}
