:root{--cp-yellow:#f9e231;--cp-ink:#1a1a18;--cp-void:#111110;--cp-card:#232320;--cp-card-2:#2e2e2a;--cp-hairline:#3a3a35;--cp-offwhite:#ECEAE1;--cp-muted:#A4A299;--cp-paper:#FAF8F1;--cp-cyan:#3fd0e0;--cp-success:#6fcf97;--cp-error:#eb5757;--cp-font-head:'Space Grotesk',system-ui,sans-serif;--cp-font-body:'Inter',system-ui,sans-serif;--cp-font-mono:'JetBrains Mono',ui-monospace,'SF Mono',Menlo,monospace;--cp-max:1180px;--cp-max-narrow:760px;--cp-pad:clamp(1.25rem,4vw,3rem);--cp-panel-y:clamp(4rem,9vw,8rem);--cp-radius:14px;--cp-radius-sm:9px}.cp-skip-link{position:absolute;left:-9999px;top:0;z-index:1000;background:var(--cp-yellow);color:var(--cp-ink);padding:0.75rem 1.25rem;font-weight:700;border-radius:0 0 var(--cp-radius-sm) 0}.cp-skip-link:focus{left:0}.cp-visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}@font-face{font-family:'Space Grotesk';src:url('/design/fonts/space-grotesk-variable.woff2') format('woff2');font-weight:300 700;font-style:normal;font-display:swap}@font-face{font-family:'Inter';src:url('/design/fonts/inter-variable.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:'JetBrains Mono';src:url('/design/fonts/jetbrains-mono-variable.woff2') format('woff2');font-weight:100 800;font-style:normal;font-display:swap}:root{--cp-topbar-h:60px;--cp-sidebar-w:264px;--cp-toc-w:232px;--cp-content-max:820px}:root,[data-theme=dark]{--cp-bg:var(--cp-void);--cp-surface:var(--cp-ink);--cp-surface-2:var(--cp-card);--cp-text:var(--cp-offwhite);--cp-text-muted:var(--cp-muted);--cp-heading:var(--cp-offwhite);--cp-heading-accent:var(--cp-yellow);--cp-border:var(--cp-hairline);--cp-border-soft:#2a2a26;--cp-link:var(--cp-cyan);--cp-bar-bg:rgba(17,17,16,0.85);--cp-code-bg:#16160f;--cp-code-border:#2c2c26;--cp-inline-code-bg:rgba(249,226,49,0.10);--cp-inline-code-text:#f4e9a8;--cp-sidebar-active-bg:rgba(249,226,49,0.10);--cp-shadow:0 18px 50px rgba(0,0,0,0.5)}[data-theme=light]{--cp-bg:var(--cp-paper);--cp-surface:#fffdf7;--cp-surface-2:#f3efe2;--cp-text:var(--cp-ink);--cp-text-muted:#5b5a54;--cp-heading:var(--cp-ink);--cp-heading-accent:var(--cp-ink);--cp-border:#e3ddcc;--cp-border-soft:#ece6d6;--cp-link:#0f8aa0;--cp-bar-bg:rgba(250,248,241,0.88);--cp-code-bg:#1d1d1a;--cp-code-border:#2c2c26;--cp-inline-code-bg:#efe9d6;--cp-inline-code-text:#1a1a18;--cp-sidebar-active-bg:#f1ead2;--cp-shadow:0 18px 50px rgba(26,26,24,0.12)}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{margin:0;font-family:var(--cp-font-body);font-weight:400;line-height:1.65;color:var(--cp-text);background:var(--cp-bg);-webkit-font-smoothing:antialiased;transition:background-color 0.3s ease,color 0.3s ease}body.cp-noscroll{overflow:hidden}img,svg,video{max-width:100%;height:auto;display:block}a{color:var(--cp-link);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:3px solid var(--cp-cyan);outline-offset:2px;border-radius:4px}h1,h2,h3,h4{font-family:var(--cp-font-head);font-weight:700;line-height:1.12;letter-spacing:-0.02em;color:var(--cp-heading);scroll-margin-top:calc(var(--cp-topbar-h) + 1.5rem)}.cp-doc h1{font-size:clamp(2.1rem,4.5vw,3rem);margin:0 0 0.6em}.cp-doc h2{font-size:clamp(1.5rem,2.6vw,2rem);margin:2.8rem 0 0.9rem;padding-top:1.6rem;border-top:1px solid var(--cp-border-soft)}.cp-doc h3{font-size:clamp(1.15rem,1.8vw,1.4rem);margin:2rem 0 0.6rem}.cp-doc h2:first-of-type{border-top:0;padding-top:0}.cp-doc p{margin:0 0 1.1rem}.cp-doc ol,.cp-doc ul{margin:0 0 1.2rem;padding-left:1.4rem}.cp-doc li{margin:0.4rem 0}.cp-doc li::marker{color:var(--cp-text-muted)}.cp-doc strong{font-weight:700;color:var(--cp-heading)}.cp-doc hr{border:0;border-top:1px solid var(--cp-border-soft);margin:2.6rem 0}.cp-mono{font-family:var(--cp-font-mono);font-weight:500;letter-spacing:0.02em}.cp-kicker{display:inline-block;font-family:var(--cp-font-mono);font-size:0.74rem;font-weight:600;letter-spacing:0.02em;text-transform:lowercase;color:var(--cp-link);margin-bottom:0.6rem}.cp-no-lower{text-transform:none!important}.cp-lead{font-size:clamp(1.08rem,1.5vw,1.28rem);line-height:1.6;color:var(--cp-text-muted);max-width:62ch;margin:0 0 1.6rem}.cp-doc :not(pre)>code{font-family:var(--cp-font-mono);font-size:0.85em;padding:0.12em 0.4em;border-radius:5px;background:var(--cp-inline-code-bg);color:var(--cp-inline-code-text);word-break:break-word}.cp-doc a code{color:inherit}.cp-btn{display:inline-flex;align-items:center;justify-content:center;gap:0.5em;font-family:var(--cp-font-body);font-weight:700;line-height:1;text-transform:lowercase;text-decoration:none;cursor:pointer;border:2px solid transparent;border-radius:999px;padding:0.8em 1.4em;transition:transform 0.15s ease,box-shadow 0.2s ease,background-color 0.2s ease,color 0.2s ease}.cp-btn:hover{text-decoration:none;transform:translateY(-1px)}.cp-btn--small{padding:0.55em 1.05em;font-size:0.9rem}.cp-btn--primary{background:var(--cp-yellow);color:var(--cp-ink)}.cp-btn--primary:hover{box-shadow:0 8px 22px rgba(249,226,49,0.28)}.cp-btn--ghost{background:transparent;color:var(--cp-text);border-color:var(--cp-border)}.cp-btn--ghost:hover{border-color:var(--cp-link);color:var(--cp-link)}.cp-topbar{position:sticky;top:0;z-index:100;height:var(--cp-topbar-h);background:var(--cp-bar-bg);backdrop-filter:saturate(140%) blur(12px);-webkit-backdrop-filter:saturate(140%) blur(12px);border-bottom:1px solid var(--cp-border)}.cp-topbar__inner{height:100%;display:flex;align-items:center;gap:0.9rem;padding:0 clamp(1rem,3vw,1.75rem)}.cp-topbar__spacer{flex:1 1 auto}.cp-topbar__links{display:flex;align-items:center;gap:1.1rem}.cp-topbar__link{color:var(--cp-text-muted);font-weight:500;font-size:0.92rem;text-transform:lowercase}.cp-topbar__link:hover{color:var(--cp-text);text-decoration:none}.cp-logo{display:inline-flex;align-items:center;gap:0.55rem;text-decoration:none}.cp-logo:hover{text-decoration:none}.cp-logo__mark{border-radius:7px;flex:0 0 auto}.cp-logo__word{font-family:var(--cp-font-head);font-weight:700;font-size:1.18rem;letter-spacing:-0.02em;color:var(--cp-heading)}.cp-logo__badge{font-family:var(--cp-font-mono);font-size:0.64rem;font-weight:600;letter-spacing:0.04em;text-transform:lowercase;color:var(--cp-ink);background:var(--cp-yellow);padding:0.15em 0.45em;border-radius:5px}.cp-theme-toggle{display:inline-grid;place-items:center;width:38px;height:38px;flex:0 0 auto;color:var(--cp-text);background:transparent;border:1px solid var(--cp-border);border-radius:9px;cursor:pointer;transition:border-color 0.2s ease,color 0.2s ease}.cp-theme-toggle:hover{color:var(--cp-link);border-color:var(--cp-link)}.cp-theme-toggle__moon{display:none}[data-theme=light] .cp-theme-toggle__sun{display:none}[data-theme=light] .cp-theme-toggle__moon{display:block}.cp-burger{display:none;flex-direction:column;justify-content:center;gap:4px;width:38px;height:38px;flex:0 0 auto;background:transparent;border:1px solid var(--cp-border);border-radius:9px;cursor:pointer;padding:0 9px}.cp-burger span{height:2px;background:var(--cp-text);border-radius:2px;transition:transform 0.2s ease,opacity 0.2s ease}.cp-burger.is-active span:first-child{transform:translateY(6px) rotate(45deg)}.cp-burger.is-active span:nth-child(2){opacity:0}.cp-burger.is-active span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.cp-shell{display:grid;grid-template-columns:var(--cp-sidebar-w) minmax(0,1fr);align-items:start;max-width:1480px;margin-inline:auto}.cp-sidebar{position:sticky;top:var(--cp-topbar-h);height:calc(100vh - var(--cp-topbar-h));border-right:1px solid var(--cp-border);overflow:hidden}.cp-sidebar__scroll{height:100%;overflow-y:auto;padding:1.6rem 1.1rem 3rem 1.5rem}.cp-sidebar__group{margin-bottom:1.5rem}.cp-sidebar__label{font-family:var(--cp-font-mono);font-size:0.72rem;font-weight:600;letter-spacing:0.02em;text-transform:lowercase;color:var(--cp-text-muted);margin:0 0 0.55rem}.cp-sidebar__list{list-style:none;margin:0;padding:0}.cp-sidebar__list li{margin:0}.cp-sidebar__link{display:block;padding:0.4rem 0.7rem;margin:1px 0;font-size:0.93rem;color:var(--cp-text-muted);border-radius:8px;border-left:2px solid transparent;text-transform:lowercase;transition:color 0.15s ease,background-color 0.15s ease}.cp-sidebar__link:hover{color:var(--cp-text);background:var(--cp-surface-2);text-decoration:none}.cp-sidebar__link.is-active{color:var(--cp-heading);font-weight:600;background:var(--cp-sidebar-active-bg);border-left-color:var(--cp-yellow)}[data-theme=light] .cp-sidebar__link.is-active{border-left-color:var(--cp-ink)}.cp-sidebar__aside{margin-top:2.2rem;padding-top:1.3rem;border-top:1px solid var(--cp-border-soft)}.cp-sidebar__note{font-size:0.85rem;color:var(--cp-text-muted);margin:0}.cp-sidebar-backdrop{position:fixed;inset:var(--cp-topbar-h) 0 0 0;z-index:80;background:rgba(0,0,0,0.45)}.cp-content{display:grid;grid-template-columns:minmax(0,1fr) var(--cp-toc-w);gap:clamp(1.5rem,4vw,3.5rem);padding:2.4rem clamp(1.25rem,4vw,3.5rem) 4rem;min-width:0}.cp-main{min-width:0}.cp-doc{max-width:var(--cp-content-max)}.cp-toc{position:sticky;top:calc(var(--cp-topbar-h) + 2.4rem);align-self:start;max-height:calc(100vh - var(--cp-topbar-h) - 4rem);overflow-y:auto}.cp-toc.is-empty{display:none}.cp-toc__label{font-family:var(--cp-font-mono);font-size:0.72rem;font-weight:600;letter-spacing:0.02em;text-transform:lowercase;color:var(--cp-text-muted);margin:0 0 0.7rem}.cp-toc__nav{display:flex;flex-direction:column;border-left:1px solid var(--cp-border)}.cp-toc__link{padding:0.28rem 0 0.28rem 0.85rem;margin-left:-1px;font-size:0.85rem;line-height:1.4;color:var(--cp-text-muted);border-left:2px solid transparent}.cp-toc__link:hover{color:var(--cp-text);text-decoration:none}.cp-toc__link--sub{padding-left:1.6rem;font-size:0.82rem}.cp-toc__link.is-active{color:var(--cp-link);border-left-color:var(--cp-link);font-weight:500}.cp-breadcrumb{display:flex;flex-wrap:wrap;align-items:center;gap:0.45rem;font-size:0.82rem;color:var(--cp-text-muted);text-transform:lowercase;margin-bottom:1.4rem}.cp-breadcrumb a{color:var(--cp-text-muted)}.cp-breadcrumb a:hover{color:var(--cp-link)}.cp-breadcrumb__sep{opacity:0.5}.cp-breadcrumb__here{color:var(--cp-text)}.cp-doc .cp-anchor{margin-left:0.4rem;opacity:0;text-decoration:none;color:var(--cp-link);font-weight:400;transition:opacity 0.15s ease}.cp-doc h2:hover .cp-anchor,.cp-doc h3:hover .cp-anchor{opacity:0.7}.cp-note{display:flex;gap:0.8rem;margin:1.6rem 0;padding:1rem 1.2rem;background:var(--cp-surface);border:1px solid var(--cp-border);border-left:3px solid var(--cp-cyan);border-radius:var(--cp-radius-sm);font-size:0.95rem}.cp-note p{margin:0 0 0.5rem}.cp-note p:last-child{margin:0}.cp-note__icon{flex:0 0 auto;font-weight:700;color:var(--cp-cyan);font-family:var(--cp-font-mono)}.cp-note--warn{border-left-color:var(--cp-yellow)}.cp-note--warn .cp-note__icon{color:var(--cp-yellow)}[data-theme=light] .cp-note--warn .cp-note__icon{color:#b89a00}.cp-note__title{font-weight:700;color:var(--cp-heading)}.cp-steps{list-style:none;counter-reset:cpstep;margin:1.8rem 0;padding:0}.cp-step{position:relative;counter-increment:cpstep;padding:0 0 1.6rem 3.2rem;margin:0}.cp-step:not(:last-child):after{content:"";position:absolute;left:17px;top:2.4rem;bottom:0;width:2px;background:var(--cp-border)}.cp-step:before{content:counter(cpstep);position:absolute;left:0;top:0;width:36px;height:36px;display:grid;place-items:center;font-family:var(--cp-font-mono);font-weight:600;font-size:0.95rem;color:var(--cp-yellow);background:var(--cp-surface);border:1px solid var(--cp-border);border-radius:50%}[data-theme=light] .cp-step:before{color:var(--cp-ink)}.cp-step h3{margin:0.3rem 0 0.4rem}.cp-step p{margin:0 0 0.5rem}.cp-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin:1.8rem 0;padding:0;list-style:none}.cp-card{display:block;padding:1.3rem 1.4rem;background:var(--cp-surface);border:1px solid var(--cp-border);border-radius:var(--cp-radius);color:inherit;transition:transform 0.15s ease,border-color 0.2s ease,box-shadow 0.2s ease}.cp-card:hover{text-decoration:none;transform:translateY(-2px);border-color:var(--cp-link);box-shadow:var(--cp-shadow)}.cp-card__step{font-family:var(--cp-font-mono);font-size:0.72rem;letter-spacing:0.04em;text-transform:lowercase;color:var(--cp-link)}.cp-card__title{font-family:var(--cp-font-head);font-weight:700;font-size:1.12rem;color:var(--cp-heading);margin:0.35rem 0 0.4rem}.cp-card__desc{font-size:0.9rem;color:var(--cp-text-muted);margin:0}.cp-card__more{display:inline-block;margin-top:0.7rem;font-size:0.85rem;color:var(--cp-link);font-weight:600}.cp-badge{display:inline-block;font-family:var(--cp-font-mono);font-size:0.72rem;font-weight:600;letter-spacing:0.04em;text-transform:lowercase;padding:0.18em 0.55em;border-radius:6px;background:var(--cp-surface-2);color:var(--cp-text);border:1px solid var(--cp-border)}.cp-contract{width:100%;border-collapse:collapse;margin:1.4rem 0;font-size:0.9rem}.cp-contract td,.cp-contract th{text-align:left;padding:0.6rem 0.8rem;border-bottom:1px solid var(--cp-border-soft);vertical-align:top}.cp-contract th{color:var(--cp-text-muted);font-weight:600;font-family:var(--cp-font-mono);font-size:0.78rem;letter-spacing:0.02em;text-transform:lowercase}.cp-contract td:first-child{white-space:nowrap}.cp-contract code{font-size:0.85em}.cp-codeblock{position:relative;margin:1.6rem 0}.cp-codeblock__bar{display:flex;align-items:center;justify-content:space-between;padding:0.5rem 0.9rem;background:var(--cp-surface-2);border:1px solid var(--cp-code-border);border-bottom:0;border-radius:var(--cp-radius-sm) var(--cp-radius-sm) 0 0}.cp-codeblock__name{font-family:var(--cp-font-mono);font-size:0.78rem;color:var(--cp-text-muted)}.cp-codeblock__bar+.cp-code{border-top-left-radius:0;border-top-right-radius:0;margin-top:0}.cp-copy{font-family:var(--cp-font-mono);font-size:0.74rem;font-weight:600;color:var(--cp-text-muted);background:transparent;border:1px solid var(--cp-border);border-radius:6px;padding:0.25em 0.7em;cursor:pointer;transition:color 0.15s ease,border-color 0.15s ease}.cp-copy:hover{color:var(--cp-link);border-color:var(--cp-link)}.cp-copy.is-copied{color:var(--cp-success);border-color:var(--cp-success)}.cp-codeblock>.cp-copy:first-child{position:absolute;top:0.6rem;right:0.6rem;z-index:2;background:var(--cp-surface-2)}.cp-code{margin:1.6rem 0;padding:1.1rem 1.2rem;background:var(--cp-code-bg);border:1px solid var(--cp-code-border);border-radius:var(--cp-radius-sm);overflow-x:auto;font-family:var(--cp-font-mono);font-size:0.86rem;line-height:1.6;color:#d7d3c4;-webkit-overflow-scrolling:touch}.cp-code code{font-family:inherit;background:none;color:inherit;padding:0;font-size:inherit}.cp-code--scroll{max-height:460px;overflow-y:auto}.cp-code--inline-hero{display:block;font-size:clamp(0.82rem,1.5vw,1rem);box-shadow:0 0 0 1px rgba(63,208,224,0.25),0 18px 50px rgba(0,0,0,0.4)}.cp-tok{color:var(--cp-cyan)}.cp-str{color:var(--cp-yellow)}.cp-com{color:#6f6f64;font-style:italic}.cp-code__caption{font-family:var(--cp-font-mono);font-size:0.78rem;color:var(--cp-text-muted);margin:0.6rem 0 0}.cp-download{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;margin:1.8rem 0;padding:1.2rem 1.4rem;background:var(--cp-surface);border:1px solid var(--cp-border);border-radius:var(--cp-radius)}.cp-download__icon{flex:0 0 auto;width:44px;height:44px;display:grid;place-items:center;background:var(--cp-yellow);color:var(--cp-ink);border-radius:10px;font-family:var(--cp-font-mono);font-weight:700;font-size:0.7rem}.cp-download__meta{flex:1 1 auto;min-width:0}.cp-download__name{font-weight:700;color:var(--cp-heading);margin:0}.cp-download__sub{font-size:0.85rem;color:var(--cp-text-muted);margin:0.15rem 0 0}.cp-pager{display:flex;justify-content:space-between;gap:1rem;margin-top:3rem;padding-top:1.6rem;border-top:1px solid var(--cp-border-soft)}.cp-pager__link{display:flex;flex-direction:column;gap:0.25rem;padding:0.9rem 1.2rem;border:1px solid var(--cp-border);border-radius:var(--cp-radius);min-width:0;max-width:48%;transition:border-color 0.2s ease,transform 0.15s ease}.cp-pager__link:hover{text-decoration:none;border-color:var(--cp-link);transform:translateY(-1px)}.cp-pager__link--next{text-align:right;margin-left:auto}.cp-pager__dir{font-size:0.78rem;color:var(--cp-text-muted);font-family:var(--cp-font-mono);text-transform:lowercase}.cp-pager__title{font-weight:700;color:var(--cp-heading)}.cp-doc__foot{margin-top:2.4rem;color:var(--cp-text-muted);font-size:0.82rem}.cp-doc__foot-line{margin:0.2rem 0}.cp-doc__foot a{color:var(--cp-text-muted)}.cp-doc__foot a:hover{color:var(--cp-link)}.cp-logo__eye{transform-origin:center}.cp-blink .cp-logo__eye{animation:cp-blink 0.36s ease}@keyframes cp-blink{50%{transform:scaleY(0.1)}}@media (prefers-reduced-motion:reduce){.cp-blink .cp-logo__eye{animation:none}.cp-btn:hover,.cp-card:hover,.cp-pager__link:hover{transform:none}}@media (max-width:1100px){.cp-content{grid-template-columns:minmax(0,1fr)}.cp-toc{display:none}}@media (max-width:820px){.cp-burger{display:flex}.cp-topbar__link{display:none}.cp-shell{grid-template-columns:minmax(0,1fr)}.cp-sidebar{position:fixed;top:var(--cp-topbar-h);left:0;z-index:90;width:min(86vw,var(--cp-sidebar-w));background:var(--cp-bg);transform:translateX(-100%);transition:transform 0.22s ease}.cp-sidebar.is-open{transform:translateX(0);box-shadow:var(--cp-shadow)}.cp-pager__link{max-width:100%;flex:1}}@media (min-width:821px){.cp-sidebar-backdrop{display:none!important}}