.docs-shell{display:grid;grid-template-columns:260px minmax(0,1fr) 240px;max-width:var(--container);margin:0 auto;gap:0}.sidebar{border-right:1px dashed var(--ink-faint);padding:40px 32px 80px var(--gutter);font-size:14px;position:sticky;top:73px;align-self:start;height:calc(100vh - 73px);overflow-y:auto}.sidebar .group{font-family:var(--font-mono);font-size:11px;letter-spacing:1.2px;color:var(--ink-soft);margin:24px 0 8px;text-transform:uppercase}.sidebar .group:first-child{margin-top:0}.sidebar a{display:block;padding:4px 10px 4px 12px;color:var(--ink-soft);border-left:2px solid transparent;margin-left:-12px;line-height:1.5}.sidebar a:hover{color:var(--ink)}.sidebar a.active{color:var(--ink);border-left-color:var(--accent);font-weight:500}.sidebar .search{width:100%;border:1px solid var(--ink-faint);background:#fff;padding:8px 12px;font:13px var(--font-mono);border-radius:0;margin-bottom:24px;color:var(--ink-soft)}.sidebar .search::placeholder{color:var(--ink-faint)}.article{padding:56px var(--gutter) 120px;min-width:0}.article .breadcrumb{font-family:var(--font-mono);font-size:12px;letter-spacing:1px;color:var(--ink-soft);margin-bottom:16px}.article .breadcrumb .accent{color:var(--accent)}.article h1{font-family:var(--font-hand);font-size:64px;font-weight:700;letter-spacing:-1.5px;line-height:.95;margin:0 0 18px}.article h1 .em{color:var(--accent)}.article .lede{font-size:18px;line-height:1.55;color:var(--ink-soft);max-width:640px;margin:0 0 40px}.article h2{font-family:var(--font-hand);font-size:40px;font-weight:700;letter-spacing:-.5px;margin:56px 0 8px;line-height:1;scroll-margin-top:90px}.article h2:after{content:"";display:block;height:1px;background:var(--ink);margin-top:14px;margin-bottom:8px}.article h3{font-family:var(--font-hand);font-size:28px;font-weight:600;margin:36px 0 8px;letter-spacing:-.3px;scroll-margin-top:90px}.article p{margin:12px 0;max-width:680px;color:var(--ink)}.article p code,.article li code{font-size:14px;font-family:var(--font-mono);background:#fff;border:1px solid var(--rule-faint);padding:1px 6px;border-radius:2px}.article ul,.article ol{padding-left:22px;max-width:680px}.article li{margin:6px 0}.article li::marker{color:var(--accent)}.codeblock{position:relative;background:var(--ink);color:#e5e5e0;font:13.5px/1.7 var(--font-mono);padding:18px 22px;margin:18px 0;border-radius:2px;overflow-x:auto;max-width:760px}.codeblock .label{position:absolute;top:8px;right:12px;font-size:10px;letter-spacing:1px;color:#e5e5e066;text-transform:uppercase}.codeblock .copy{position:absolute;top:8px;right:60px;font-size:10px;letter-spacing:1px;color:#e5e5e099;cursor:pointer;text-transform:uppercase;background:none;border:none;font-family:inherit;padding:0}.codeblock .copy:hover{color:#fff}.codeblock .c-mute{color:#888}.codeblock .c-key{color:#c8c8c0}.codeblock .c-str{color:#93c4ff}.codeblock .c-prom{color:#888}.codeblock .c-acc{color:#93c4ff}.codelite{background:#fff;border:1px solid var(--rule-faint);font:13.5px/1.7 var(--font-mono);padding:14px 18px;margin:14px 0;max-width:760px;overflow-x:auto;color:var(--ink)}.codelite .c-mute{color:var(--ink-faint)}.codelite .c-key{color:var(--ink-soft)}.codelite .c-str{color:var(--accent)}.callout{border:1px dashed var(--ink);background:var(--paper-2);padding:16px 20px;margin:24px 0;max-width:720px;position:relative}.callout .tag{font:11px/1 var(--font-mono);letter-spacing:1.2px;text-transform:uppercase;color:var(--accent);margin-bottom:6px}.callout p{margin:4px 0;max-width:none}.callout.callout-open{border-color:var(--accent);background:var(--accent-soft)}.anno{font-family:var(--font-hand);font-size:22px;color:var(--ink-soft);transform:rotate(-1.5deg);display:inline-block}.anno-block{font-family:var(--font-hand);font-size:22px;color:var(--accent);margin:12px 0}kbd{font:12px var(--font-mono);background:#fff;border:1px solid var(--ink-faint);border-bottom-width:2px;border-radius:3px;padding:2px 6px;color:var(--ink)}.toc{border-left:1px dashed var(--ink-faint);padding:56px 32px 80px 24px;font-size:13px;position:sticky;top:73px;align-self:start;height:calc(100vh - 73px);overflow-y:auto}.toc .label{font:11px/1 var(--font-mono);letter-spacing:1.2px;text-transform:uppercase;color:var(--ink-soft);margin-bottom:14px}.toc a{display:block;padding:4px 0;color:var(--ink-soft);line-height:1.5}.toc a.active{color:var(--ink);border-left:2px solid var(--accent);padding-left:8px;margin-left:-10px;font-weight:500}.toc a:hover{color:var(--ink)}.toc .edit{margin-top:32px;padding-top:16px;border-top:1px dashed var(--ink-faint);font-family:var(--font-hand);font-size:20px;color:var(--accent);cursor:pointer}.pagenav{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:64px;max-width:760px}.pagenav .card{border:1px solid var(--rule-faint);background:#fff;padding:16px 20px;cursor:pointer}.pagenav .card:hover{border-color:var(--ink)}.pagenav .dir{font:11px/1 var(--font-mono);letter-spacing:1.2px;color:var(--ink-soft);text-transform:uppercase;margin-bottom:6px}.pagenav .ttl{font-family:var(--font-hand);font-size:22px;font-weight:600;color:var(--ink)}.pagenav .next{text-align:right}.docfoot{border-top:1px dashed var(--ink-faint);padding:24px var(--gutter);display:flex;justify-content:space-between;font:13px var(--font-mono);color:var(--ink-soft);max-width:var(--container);margin:0 auto;gap:16px;flex-wrap:wrap}.docfoot a:hover{color:var(--accent)}.docfoot .links{display:flex;gap:24px}.shim-diagram{background:#fff;border:1px solid var(--rule-faint);padding:24px;margin:20px 0;max-width:760px;font:13px var(--font-mono);color:var(--ink);line-height:2}.shim-diagram .row{display:grid;grid-template-columns:120px 1fr;gap:16px;align-items:center}.shim-diagram .row .k{color:var(--ink-soft)}.shim-diagram .arrow{color:var(--accent)}@media(max-width:1080px){.docs-shell{grid-template-columns:240px minmax(0,1fr)}.toc{display:none}}@media(max-width:760px){.docs-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto;border-right:0;border-bottom:1px dashed var(--ink-faint);padding:24px var(--gutter)}.article{padding:32px var(--gutter) 80px}.article h1{font-size:48px}.article h2{font-size:32px;margin-top:40px}.pagenav{grid-template-columns:1fr}}
