:root{--sans:"Geist",ui-sans-serif,system-ui,-apple-system,sans-serif;--mono:"Geist Mono",ui-monospace,"JetBrains Mono","SF Mono",monospace;--maxw:1360px;--side-w:264px;--toc-w:216px;--head-h:56px;--measure:748px;--r:3px;--tracking-micro:.14em}:root,:root[data-theme=dark]{--bg:#0a0a0a;--bg-raised:#0f0f10;--bg-elevated:#141416;--bg-overlay:#1a1a1d;--bg-inline:#1a1a1d;--line:rgba(255,255,255,.06);--line-2:rgba(255,255,255,.12);--line-3:rgba(255,255,255,.22);--fg:#f5f5f4;--fg-strong:#ffffff;--muted:#a1a1a3;--faint:#6b6b6e;--dim:#3f3f43;--accent:#5b8eff;--accent-bright:#7aa5ff;--accent-dim:rgba(91,142,255,.14);--accent-edge:rgba(91,142,255,.38);--on-accent:#0a0a0a;--positive:#6dd3a0;--positive-dim:rgba(109,211,160,.12);--negative:#ff8585;--negative-dim:rgba(255,133,133,.12);--amber:#e6b450;--amber-dim:rgba(230,180,80,.12);--grid:rgba(255,255,255,.025)}:root[data-theme=light]{--bg:#ffffff;--bg-raised:#fafafa;--bg-elevated:#f4f4f3;--bg-overlay:#efefee;--bg-inline:#eeeeec;--line:rgba(10,10,12,.08);--line-2:rgba(10,10,12,.14);--line-3:rgba(10,10,12,.24);--fg:#16181c;--fg-strong:#08090b;--muted:#5a5d63;--faint:#8a8d93;--dim:#b6b9bf;--accent:#3f63d6;--accent-bright:#5b8eff;--accent-dim:rgba(63,99,214,.1);--accent-edge:rgba(63,99,214,.3);--on-accent:#ffffff;--positive:#1f9d63;--positive-dim:rgba(31,157,99,.1);--negative:#d24a45;--negative-dim:rgba(210,74,69,.1);--amber:#b87708;--amber-dim:rgba(184,119,8,.1);--grid:rgba(10,10,12,.025)}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:78px}::selection{background:var(--accent-dim);color:var(--fg)}body{font-family:var(--sans);font-feature-settings:"ss01","ss02","cv11";background:var(--bg);color:var(--fg);line-height:1.65;font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}.micro-label{font-family:var(--mono);font-size:10px;letter-spacing:var(--tracking-micro);text-transform:uppercase;color:var(--faint);font-weight:500}header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 86%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.bar{max-width:var(--maxw);margin:0 auto;padding:0 24px;height:var(--head-h);display:flex;align-items:center;gap:22px}.wordmark{display:flex;align-items:center;gap:9px}.wordmark img{width:20px;height:20px;flex:none}.brand-name{font-size:15px;font-weight:600;letter-spacing:-.01em;color:var(--fg)}.brand-sub{font-family:var(--mono);font-size:11px;color:var(--dim)}nav.top{display:flex;gap:2px;margin-left:8px}nav.top a{font-size:13px;color:var(--muted);padding:6px 11px;transition:color .15s}nav.top a:hover{color:var(--fg)}.bar-right{margin-left:auto;display:flex;align-items:center;gap:8px}.search{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--faint);background:var(--bg-raised);border:1px solid var(--line-2);border-radius:var(--r);padding:7px 11px;min-width:190px;cursor:text;transition:.15s;font-family:inherit}.search:hover{border-color:var(--line-3)}.search svg{width:14px;height:14px}.search .sp{flex:1;text-align:left}.search kbd{font-family:var(--mono);font-size:10px;background:var(--bg-elevated);border:1px solid var(--line);padding:1px 5px;border-radius:2px;color:var(--muted)}.iconbtn{width:34px;height:34px;display:grid;place-items:center;border-radius:var(--r);border:1px solid var(--line-2);color:var(--muted);background:transparent;cursor:pointer;transition:.15s}.iconbtn:hover{color:var(--accent-bright);border-color:var(--accent-edge);background:var(--accent-dim)}.iconbtn svg{width:15px;height:15px}.shell{max-width:var(--maxw);margin:0 auto;padding:0 24px;display:grid;grid-template-columns:var(--side-w) minmax(0,1fr) var(--toc-w);gap:46px;align-items:start}.side{position:sticky;top:var(--head-h);align-self:start;padding:28px 0 60px;max-height:calc(100vh - var(--head-h));overflow-y:auto}.side-group{margin-bottom:22px}.side-label{margin:0 0 10px 12px}.track{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--muted);padding:7px 12px;position:relative;transition:color .15s;border-radius:2px}.track .ic{display:grid;place-items:center;color:var(--faint);transition:color .15s}.track .ic svg{width:15px;height:15px;display:block}.track:hover{color:var(--fg)}.track:hover .ic{color:var(--muted)}.track.active{color:var(--fg)}.track.active .ic{color:var(--accent)}.track.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:2px;height:16px;background:var(--accent)}.article{min-width:0;padding:40px 0 110px;max-width:var(--measure)}.article h1{font-size:clamp(30px,3.4vw,40px);font-weight:600;letter-spacing:-.025em;line-height:1.12;color:var(--fg-strong);margin-bottom:14px}.article h2{font-size:22px;font-weight:600;letter-spacing:-.015em;color:var(--fg-strong);margin:48px 0 4px;scroll-margin-top:78px}.article h3{font-size:17px;font-weight:600;letter-spacing:-.01em;color:var(--fg-strong);margin:30px 0 4px;scroll-margin-top:78px}.article p{margin:14px 0;color:var(--muted)}.article a:not(.btn){color:var(--accent);border-bottom:1px solid var(--accent-edge);transition:.15s}.article a:not(.btn):hover{color:var(--accent-bright);border-color:var(--accent)}.article ul,.article ol{margin:14px 0;padding-left:22px;color:var(--muted)}.article li{margin:7px 0}.article li::marker{color:var(--dim)}.article hr{border:0;border-top:1px solid var(--line);margin:40px 0}.article strong{color:var(--fg);font-weight:600}.article p code,.article li code,.article td code{font-family:var(--mono);font-size:.84em;background:var(--bg-inline);border:1px solid var(--line);padding:1px 6px;border-radius:2px;color:var(--fg)}.lead-para{font-size:18px!important;color:var(--muted)!important;line-height:1.6;margin-top:2px!important}.article blockquote{border-left:2px solid var(--line-3);padding-left:16px;margin:18px 0;color:var(--muted)}.article table{width:100%;border-collapse:collapse;margin:20px 0;font-size:14px;border:1px solid var(--line);border-radius:var(--r);overflow:hidden}.article th,.article td{text-align:left;padding:10px 14px;border-bottom:1px solid var(--line)}.article thead th{background:var(--bg-raised);font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:var(--tracking-micro);text-transform:uppercase;color:var(--faint)}.article tbody tr:last-child td{border-bottom:0}.article td{color:var(--muted)}.eyebrow{font-family:var(--mono);font-size:10px;letter-spacing:var(--tracking-micro);text-transform:uppercase;color:var(--faint);font-weight:500;margin-bottom:14px}.cta-row{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0 4px}.btn{font-size:13px;font-weight:500;letter-spacing:-.01em;padding:9px 16px;border-radius:var(--r);display:inline-flex;align-items:center;gap:8px;transition:.2s;cursor:pointer;border:1px solid transparent}.btn-pri{background:var(--accent);color:var(--on-accent);border-color:var(--accent);box-shadow:0 8px 24px -12px var(--accent-edge)}.btn-pri:hover{background:var(--accent-bright);border-color:var(--accent-bright);transform:translateY(-1px)}.btn-sec{background:var(--bg-elevated);color:var(--fg);border-color:var(--line-2)}.btn-sec:hover{background:var(--bg-overlay);border-color:var(--line-3)}.callout{border:1px solid var(--line-2);border-radius:var(--r);margin:22px 0;overflow:hidden;background:var(--cal-bg,var(--bg-raised));--cal:var(--accent);--cal-bg:var(--accent-dim)}.callout.is-tip{--cal:var(--positive);--cal-bg:var(--positive-dim)}.callout.is-caution{--cal:var(--negative);--cal-bg:var(--negative-dim)}.callout{background:var(--cal-bg);border-color:color-mix(in srgb,var(--cal) 24%,transparent)}.callout-inner{display:flex;gap:11px;padding:13px 15px;border-left:2px solid var(--cal)}.callout .ic{flex:none;width:18px;height:18px;display:grid;place-items:center;color:var(--cal);margin-top:1px}.callout .ic svg{width:16px;height:16px}.callout-body{font-size:14px;color:var(--fg);min-width:0}.callout-body p{margin:0;color:var(--fg)}.callout-body p+p{margin-top:8px}.marker{display:flex;align-items:center;gap:10px;margin:36px 0 0}.marker .flag{font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:var(--tracking-micro);text-transform:uppercase;color:var(--accent);background:var(--accent-dim);border:1px solid var(--accent-edge);border-radius:2px;padding:3px 8px;flex:none}.marker.tone-cyan .flag{color:var(--positive);background:var(--positive-dim);border-color:color-mix(in srgb,var(--positive) 32%,transparent)}.marker.tone-amber .flag{color:var(--amber);background:var(--amber-dim);border-color:color-mix(in srgb,var(--amber) 32%,transparent)}.marker+h2,.marker+h3,.marker h2,.marker h3{margin:0}.marker h3{font-size:17px}.comp-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:16px 0}.badge{font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.02em;padding:4px 10px;border-radius:2px;display:inline-flex;align-items:center;gap:7px;border:1px solid}.badge:before{content:"";width:5px;height:5px;border-radius:50%}.b-ask{color:var(--accent);background:var(--accent-dim);border-color:var(--accent-edge)}.b-ask:before{background:var(--accent)}.b-plan{color:var(--positive);background:var(--positive-dim);border-color:color-mix(in srgb,var(--positive) 32%,transparent)}.b-plan:before{background:var(--positive)}.b-build{color:var(--amber);background:var(--amber-dim);border-color:color-mix(in srgb,var(--amber) 32%,transparent)}.b-build:before{background:var(--amber)}.code{border:1px solid var(--line-2);border-radius:var(--r);overflow:hidden;margin:20px 0;background:var(--bg-raised)}.code-bar{display:flex;align-items:center;padding:7px 13px;border-bottom:1px solid var(--line);font-family:var(--mono);font-size:10px;letter-spacing:var(--tracking-micro);text-transform:uppercase;color:var(--faint)}.code-bar .copy{margin-left:auto;color:var(--faint);cursor:pointer;transition:.15s;display:inline-flex;align-items:center;gap:5px;font-size:10px;letter-spacing:.04em}.code-bar .copy:hover{color:var(--accent-bright)}.code-bar .copy svg{width:12px;height:12px}.code pre{padding:14px 16px;overflow:auto;font-family:var(--mono);font-size:12.5px;line-height:1.7;background:transparent;color:var(--fg)}.hljs{color:var(--fg);background:transparent}.hljs-comment,.hljs-quote{color:var(--faint);font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-built_in,.hljs-meta{color:var(--accent-bright)}.hljs-string,.hljs-attr,.hljs-template-string{color:var(--positive)}.hljs-number,.hljs-literal{color:var(--amber)}.hljs-title,.hljs-section{color:var(--accent)}.hljs-attribute,.hljs-name,.hljs-tag{color:var(--accent-bright)}.hljs-symbol,.hljs-bullet,.hljs-link{color:var(--negative)}.toc{position:sticky;top:var(--head-h);align-self:start;padding:44px 0 60px;max-height:calc(100vh - var(--head-h));overflow-y:auto}.toc-label{margin-bottom:12px}.toc a{display:block;font-size:12.5px;color:var(--muted);padding:5px 0 5px 13px;border-left:1px solid var(--line-2);transition:.15s;line-height:1.45}.toc a.sub{padding-left:26px;font-size:12px}.toc a:hover{color:var(--fg)}.toc a.on{color:var(--accent);border-left-color:var(--accent)}.article video,.article img{max-width:100%;border-radius:var(--r);border:1px solid var(--line-2);margin:20px 0;display:block}.loading{font-family:var(--mono);font-size:12px;letter-spacing:.04em;color:var(--faint);padding:50px 0}.search-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:flex-start;justify-content:center;padding-top:12vh;background:color-mix(in srgb,var(--bg) 78%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fade .15s ease-out both}.search-modal{width:min(580px,92vw);background:var(--bg-raised);border:1px solid var(--line-2);border-radius:var(--r);box-shadow:0 30px 80px -20px #000000b3;overflow:hidden;animation:rise .2s cubic-bezier(.2,.7,.2,1) both}.search-head{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line)}.search-head svg{width:17px;height:17px;color:var(--faint);flex:none}.search-input{flex:1;background:transparent;border:0;outline:0;color:var(--fg);font-family:var(--sans);font-size:15px}.search-input::placeholder{color:var(--faint)}.search-head .esc{font-family:var(--mono);font-size:10px;color:var(--faint);border:1px solid var(--line-2);border-radius:2px;padding:2px 6px}.search-results{max-height:56vh;overflow-y:auto;padding:8px}.search-item{display:flex;flex-direction:column;gap:3px;padding:9px 11px;border-radius:2px;cursor:pointer;border:1px solid transparent}.search-item.sel{background:var(--accent-dim);border-color:var(--accent-edge)}.search-item .crumb{font-family:var(--mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}.search-item.sel .crumb{color:var(--accent)}.search-item .title{font-size:14px;color:var(--fg)}.search-item .snip{font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-empty{padding:30px 16px;text-align:center;font-size:13px;color:var(--faint)}.search-foot{display:flex;gap:16px;padding:9px 16px;border-top:1px solid var(--line);font-family:var(--mono);font-size:10px;letter-spacing:.04em;color:var(--faint)}.search-foot b{color:var(--muted);font-weight:500}footer{border-top:1px solid var(--line);margin-top:30px}.foot{max-width:var(--maxw);margin:0 auto;padding:30px 24px;display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;align-items:center}.foot-brand{display:flex;align-items:center;gap:9px}.foot-brand img{width:18px;height:18px}.foot-brand .nm{font-size:14px;font-weight:600;color:var(--fg)}.foot-copy{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);margin-top:3px}.foot-links{display:flex;gap:20px;flex-wrap:wrap}.foot-links a{font-size:13px;color:var(--muted);transition:.15s}.foot-links a:hover{color:var(--accent-bright)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:0}::-webkit-scrollbar-thumb:hover{background:var(--line-3)}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}.article{animation:rise .4s cubic-bezier(.2,.7,.2,1) both}@media(max-width:1180px){.shell{grid-template-columns:var(--side-w) minmax(0,1fr);gap:40px}.toc{display:none}}@media(max-width:820px){.shell{grid-template-columns:1fr;padding:0 18px}.side{display:none}nav.top,.search{display:none}.article{padding:26px 0 70px}.bar{padding:0 16px;gap:12px}}
