@font-face{font-family:Plex;src:url('/assets/plex-sans.woff2') format('woff2');font-display:swap}@font-face{font-family:Plex Mono;src:url('/assets/plex-mono.woff2') format('woff2');font-display:swap}
:root{color-scheme:light;--paper:#EDE8E0;--ink:#181818;--muted:#545250;--line:#b4b0aa;--blue:#1F5FB8}*{box-sizing:border-box}html{scroll-padding-top:6rem}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 Plex,system-ui,sans-serif}a{color:var(--blue);text-underline-offset:.22em}a:hover{color:#1d4b8b}a:focus-visible,summary:focus-visible{outline:3px solid #1F5FB8;outline-offset:4px}.top{height:76px;padding:0 3rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:var(--paper);position:sticky;top:0;z-index:2}.top nav{display:flex;gap:1.5rem}.brand{display:flex;align-items:center;gap:.5rem;color:var(--ink);text-decoration:none;font-size:1.1rem}.brand span{font-size:.8rem;border-left:1px solid var(--line);margin-left:.5rem;padding-left:1rem;color:var(--muted)}.layout{display:grid;grid-template-columns:240px minmax(0,860px) minmax(160px,220px);max-width:1500px;margin:0 auto;gap:3rem;padding:2.5rem}.sidebar,.on-this-page{font-size:.88rem;position:sticky;top:100px;height:calc(100vh - 124px);overflow:auto}.sidebar nav>a{display:block;margin-bottom:1.25rem}.sidebar details{margin:.75rem 0 1.4rem}.sidebar summary{font-weight:600;cursor:pointer}.sidebar summary a{color:var(--ink)}.sidebar details>a{display:block;padding:.25rem .75rem;margin:.2rem 0 0 .8rem;border-left:1px solid var(--line);text-decoration:none;color:var(--muted)}.sidebar a[aria-current=page]{background:#d4d8db;border-color:var(--blue);color:var(--blue)}h1{font-size:clamp(2rem,4vw,3.25rem);line-height:1.15;letter-spacing:-.035em;font-weight:500;margin:.3rem 0 1.75rem}h2{font-size:1.65rem;line-height:1.3;font-weight:500;margin:2.75rem 0 1rem}h3{font-size:1.2rem;line-height:1.4;margin-top:2rem}p,ul,ol{margin:1rem 0}li{margin:.4rem 0}main{min-width:0;overflow-wrap:anywhere}.lede{font-size:1.25rem;color:var(--muted);line-height:1.65}.eyebrow{font-size:.75rem;letter-spacing:.12em;font-weight:600;margin-bottom:1.75rem}.notice,blockquote{background:#e7e2da;border-left:3px solid #1F5FB8;padding:1.1rem 1.35rem;margin:2rem 0}.notice strong{display:block}blockquote p{margin:.25rem 0}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:2rem 0}.cards a{border:1px solid var(--line);background:white;padding:1.2rem 1.4rem;text-decoration:none;border-radius:6px}.cards a:hover{border-color:var(--blue)}.cards h2{font-size:1.2rem;margin:0 0 1rem}.cards span{font-size:.88rem;color:var(--muted)}code,kbd{font-family:Plex Mono,monospace;font-size:.85em;background:#e2ded6;border-radius:3px;padding:.12em .3em}pre{overflow:auto;background:#e7e2da;border:1px solid var(--line);padding:1.1rem;border-radius:5px;line-height:1.65}pre code{background:none;padding:0;white-space:pre;font-size:.82rem}table{display:block;border-collapse:collapse;max-width:100%;overflow:auto;font-size:.9rem;margin:1.75rem 0}th,td{border:1px solid var(--line);padding:.8rem 1rem;text-align:left;vertical-align:top}th{background:#e2ded6;font-weight:600}.on-this-page{border-left:1px solid var(--line);padding-left:1.25rem;color:var(--muted)}.on-this-page a{display:block;margin:.65rem 0;line-height:1.4;text-decoration:none;font-size:.8rem;color:var(--muted)}footer{border-top:1px solid var(--line);margin-top:4rem;padding:1.5rem 0;font-size:.8rem;color:var(--muted)}.skip{position:fixed;left:1rem;top:-6rem;z-index:4;background:white;padding:1rem}.skip:focus{top:1rem}img{max-width:100%}details>summary{cursor:pointer}hr{border:0;border-top:1px solid var(--line);margin:2rem 0}
@media(max-width:1200px){.layout{grid-template-columns:210px minmax(0,1fr);gap:2rem}.on-this-page{display:none}}@media(max-width:760px){.top{padding:0 1.2rem}.top nav{gap:.8rem;font-size:.85rem}.layout{display:block;padding:1.4rem}.sidebar{position:static;height:auto;border-bottom:1px solid var(--line);margin-bottom:2rem;padding-bottom:1rem}.sidebar nav{display:flex;flex-wrap:wrap;gap:.6rem 1.5rem}.sidebar nav>a{width:100%;margin-bottom:0}.sidebar details{margin:0}.sidebar details>a{font-size:.8rem}.cards{grid-template-columns:1fr}h1{font-size:2.3rem}.lede{font-size:1.1rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{.sidebar,.top,.on-this-page,.skip{display:none}.layout{display:block;padding:0}pre,table{overflow:visible}a{color:inherit}.cards{display:block}}
