@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600&family=Outfit:wght@300;400;500;600&family=JetBrains+Mono:wght@400;500&family=Source+Serif+4:opsz,wght@8..60,400&display=swap";:root{--bg:#fafaf7;--bg-elev:#f3f2ec;--bg-deep:#efeee7;--rule:#e5e5e0;--rule-soft:#ededea;--ink:#111;--ink-soft:#3a3a3a;--ink-faint:#6f6f6f;--ink-mute:#a3a3a3;--purple:#7f3eff;--violet:#a252fa;--magenta:#fa82ec;--coral:#f28a71;--orange:#ff7c24;--dawn-violet:#7f3eff;--dawn-pink:#fa82ec;--dawn-orange:#ff7c24;--brand:#5b3fb8;--brand-deep:#432b95;--accent:var(--brand);--accent-deep:var(--brand-deep);--purple-deep:var(--brand);--code-bg:#f3f2ec;--code-edge:#e5e5e0;--sans-display:"Outfit", "Inter", system-ui, -apple-system, sans-serif;--sans-body:"Inter", system-ui, -apple-system, sans-serif;--serif:"Newsreader", "Source Serif 4", "Source Serif Pro", "EB Garamond", Georgia, "Times New Roman", serif;--mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--measure:40rem;--measure-wide:58rem;--gutter:clamp(1.25rem, 3vw, 2.5rem);color-scheme:light}html[data-theme=dark]{--bg:#0c0820;--bg-elev:#14102b;--bg-deep:#06041a;--rule:#261f48;--rule-soft:#1c1638;--ink:#f1eef9;--ink-soft:#c9c4dd;--ink-faint:#8e88a8;--ink-mute:#5a5478;--purple:#a779ff;--violet:#c28ffa;--magenta:#ff9ee8;--orange:#ff9a52;--brand:#c2a8ff;--brand-deep:#a779ff;--accent:var(--brand);--accent-deep:var(--brand-deep);--purple-deep:var(--brand-deep);--code-bg:#14102b;--code-edge:#261f48;color-scheme:dark}*{box-sizing:border-box}html{font-size:17px}body{font-family:var(--sans-body);font-feature-settings:"kern", "liga", "ss01", "cv11";background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;line-height:1.6}.with-glow:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(720px 380px at 88% -10%,#7f3eff1a,#0000 65%),radial-gradient(560px 320px at 5% 0,#ff7c2414,#0000 70%);position:absolute;inset:0}html[data-theme=dark] .with-glow:before{background:radial-gradient(720px 380px at 88% -10%,#7f3eff47,#0000 65%),radial-gradient(560px 320px at 5% 0,#ff7c2429,#0000 70%)}.with-glow>*{z-index:1;position:relative}main,header,footer,nav{position:relative}.masthead{border-bottom:1px solid var(--rule);z-index:10;backdrop-filter:blur(8px);background:color-mix(in srgb, var(--bg) 88%, transparent);position:sticky;top:0}.masthead-inner{max-width:76rem;padding:.95rem var(--gutter);justify-content:space-between;align-items:center;gap:2rem;margin:0 auto;display:flex}.brand{font-family:var(--sans-display);letter-spacing:-.005em;color:var(--ink);align-items:center;gap:.7rem;font-size:1.05rem;font-weight:500;text-decoration:none;display:inline-flex}.brand .brand-mark{background:radial-gradient(circle at 30% 30%, var(--magenta), var(--purple) 55%, var(--purple-deep));border-radius:50%;flex-shrink:0;width:1.05rem;height:1.05rem;display:inline-block;box-shadow:0 0 0 1px #7f3eff40,0 6px 16px -6px #7f3eff80}.brand .brand-mono{font-family:var(--mono);letter-spacing:-.01em;font-size:.92em}.brand .brand-sub{color:var(--ink-faint);margin-left:.1rem;font-size:.86em;font-weight:400}.brand .brand-dash{color:var(--ink-mute);margin:0 .2rem;font-weight:300}.nav-links{font-size:.92rem;font-family:var(--sans-display);align-items:center;gap:1.6rem;display:flex}.nav-links a{color:var(--ink-soft);letter-spacing:0;border-bottom:1px solid #0000;padding:4px 0;font-weight:400;text-decoration:none;transition:color .12s,border-color .12s}.nav-links a:hover{color:var(--accent)}.nav-links a[aria-current=page]{color:var(--ink);border-bottom-color:var(--accent)}.theme-toggle{border:1px solid var(--rule);background:var(--bg-elev);border-radius:999px;align-items:stretch;margin-left:.4rem;padding:2px;display:inline-flex}.theme-toggle button{appearance:none;width:28px;height:24px;color:var(--ink-faint);cursor:pointer;background:0 0;border:0;border-radius:999px;justify-content:center;align-items:center;padding:0;transition:background .12s,color .12s;display:inline-flex}.theme-toggle button:hover{color:var(--ink)}.theme-toggle button[aria-pressed=true]{background:var(--accent);color:#fff}html[data-theme=dark] .theme-toggle button[aria-pressed=true]{background:var(--accent);color:var(--bg)}.theme-toggle button svg{width:14px;height:14px;display:block}.theme-toggle button{font-size:0}h1,h2,h3,h4{font-family:var(--sans-display);color:var(--ink);letter-spacing:-.018em;font-weight:500;line-height:1.18}h1{letter-spacing:-.028em;margin:.3em 0 .2em;font-size:clamp(2.6rem,4.5vw,3.6rem);font-weight:400}h2{letter-spacing:-.018em;margin:2.4em 0 .5em;font-size:1.55rem;font-weight:500}h2 .sec-num{font-family:var(--mono);color:var(--accent);letter-spacing:0;vertical-align:.18em;margin-right:.7rem;font-size:.65em;font-weight:500}h3{color:var(--ink);letter-spacing:-.005em;margin:1.8em 0 .4em;font-size:1.08rem;font-weight:500}p{color:var(--ink-soft);margin:0 0 1.05em}p strong{color:var(--ink);font-weight:500}p.lede{color:var(--ink-soft);letter-spacing:-.005em;margin-bottom:1.6em;font-size:1.18rem;font-weight:400;line-height:1.55}a{color:var(--accent);border-bottom:1px solid #7f3eff47;text-decoration:none;transition:border-color .12s,color .12s,background .12s}a>code{background:color-mix(in srgb, var(--accent) 9%, var(--bg-elev));border-color:color-mix(in srgb, var(--accent) 28%, var(--rule));color:var(--accent);transition:background .12s,border-color .12s,color .12s}a>code:before{content:"↗";opacity:.62;font-size:.78em;font-family:var(--sans-body);margin-right:.2em}a:hover>code{background:color-mix(in srgb, var(--accent) 18%, var(--bg-elev));border-color:var(--accent);color:var(--accent-deep)}html[data-theme=dark] a>code{background:color-mix(in srgb, var(--accent) 16%, var(--bg-elev));border-color:color-mix(in srgb, var(--accent) 50%, var(--rule));color:var(--accent)}html[data-theme=dark] a:hover>code{background:color-mix(in srgb, var(--accent) 28%, var(--bg-elev));border-color:var(--accent);color:var(--accent)}a:has(>code:only-child){border-bottom:0}a:hover{border-bottom-color:var(--accent);color:var(--accent-deep)}em,i{font-style:italic}hr.rule{background:var(--rule);border:0;height:1px;margin:2.5rem 0}hr.ornament{text-align:center;background:linear-gradient(90deg, transparent, var(--purple), var(--orange), transparent);opacity:.5;border:0;border-radius:999px;width:56px;height:6px;margin:3rem auto}code,kbd,samp{font-family:var(--mono);font-size:.88em}p code,li code,td code,h3 code{background:var(--code-bg);border:1px solid var(--code-edge);color:var(--ink);border-radius:3px;padding:.06em .4em;font-size:.86em}pre{font-family:var(--mono);background:var(--bg-elev);border:1px solid var(--rule);border-left:3px solid var(--accent);color:var(--ink);border-radius:4px;margin:1.2em 0;padding:1rem 1.15rem;font-size:.84rem;line-height:1.55;position:relative;overflow-x:auto}.copy-btn{font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-faint);background:var(--bg);border:1px solid var(--rule);cursor:pointer;opacity:0;border-radius:4px;align-items:center;gap:.32rem;padding:3px 7px 3px 6px;font-size:.66rem;transition:opacity .12s,color .12s,border-color .12s,background .12s;display:inline-flex;position:absolute;top:.45rem;right:.5rem}pre:hover .copy-btn,.copy-btn:focus-visible{opacity:1}.copy-btn:hover{color:var(--accent);border-color:var(--accent)}.copy-btn[data-state=copied]{opacity:1;color:var(--accent);border-color:var(--accent);background:color-mix(in srgb, var(--accent) 10%, var(--bg))}.copy-btn svg{flex-shrink:0;width:11px;height:11px}@media (hover:none){.copy-btn{opacity:1}}pre code{color:var(--ink);background:0 0;border:0;padding:0;font-size:1em}:root{--syntax-keyword:var(--brand);--syntax-string:#8c4a18;--syntax-number:#6a3aa5;--syntax-comment:var(--ink-faint);--syntax-ink:var(--ink);--syntax-soft:var(--ink-soft)}html[data-theme=dark]{--syntax-keyword:var(--brand);--syntax-string:#ffa56b;--syntax-number:#c8a8ff;--syntax-comment:var(--ink-faint);--syntax-ink:var(--ink);--syntax-soft:var(--ink-soft)}.hljs{color:var(--syntax-ink);background:0 0}.hljs-keyword,.hljs-meta,.hljs-meta-keyword,.hljs-section,.hljs-tag,.hljs-selector-tag{color:var(--syntax-keyword);font-weight:500}.hljs-string,.hljs-regexp,.hljs-symbol,.hljs-quote{color:var(--syntax-string)}.hljs-number,.hljs-literal,.hljs-bullet,.hljs-link{color:var(--syntax-number)}.hljs-comment,.hljs-doctag{color:var(--syntax-comment);font-style:italic}.hljs-title,.hljs-title.function_,.hljs-title.class_,.hljs-function .hljs-title,.hljs-type,.hljs-built_in{color:var(--syntax-ink)}.hljs-attr,.hljs-attribute,.hljs-property,.hljs-variable,.hljs-params,.hljs-operator,.hljs-punctuation{color:var(--syntax-soft)}.hljs-addition{background:color-mix(in srgb, var(--syntax-keyword) 8%, transparent);color:var(--ink)}.hljs-deletion{background:color-mix(in srgb, var(--syntax-string) 10%, transparent);color:var(--ink);text-decoration:line-through}figure.example{margin:1.2em 0 1.6em}figure.example .example-caption{font-family:var(--mono);color:var(--ink-faint);background:var(--bg-deep);border:1px solid var(--rule);letter-spacing:0;border-bottom:0;border-radius:4px 4px 0 0;align-items:center;gap:.7rem;padding:.35rem .7rem;font-size:.72rem;display:flex}figure.example .example-file code{color:var(--ink-soft);font-size:inherit;background:0 0;border:0;padding:0}figure.example .example-tested{letter-spacing:.06em;text-transform:uppercase;color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, transparent);border:1px solid;border-radius:999px;margin-left:auto;padding:1px 8px 2px;font-size:.66rem}figure.example pre{border-top:0;border-radius:0 0 4px 4px;margin:0}blockquote{border-left:2px solid var(--rule);color:var(--ink-soft);margin:1.4em 0;padding:.1em 1.2em;font-style:italic}ul,ol{color:var(--ink-soft);padding-left:1.4rem}li{margin:.25em 0}.shell{max-width:var(--measure-wide);padding:4rem var(--gutter) 6rem;margin:0 auto}.shell.narrow{max-width:var(--measure)}.page-shell{max-width:78rem;padding:2.4rem var(--gutter) 2rem;grid-template-columns:14rem minmax(0,1fr);align-items:start;gap:2.4rem;margin:0 auto;display:grid}.page-toc{border-right:1px solid var(--rule);max-height:calc(100vh - 5.5rem);padding-right:.6rem;font-size:.85rem;position:sticky;top:4.5rem;overflow-y:auto}.page-toc-label{font-family:var(--sans-display);text-transform:uppercase;letter-spacing:.1em;color:var(--ink-faint);margin:.2em 0 .8em;font-size:.7rem;font-weight:500}.page-toc ol{counter-reset:toc;margin:0;padding:0;list-style:none}.page-toc li{counter-increment:toc;margin:0}.page-toc a{color:var(--ink-soft);border:0;border-left:2px solid #0000;padding:.32em .6em .32em .9em;font-size:.86rem;line-height:1.35;text-decoration:none;transition:color .12s,border-color .12s;display:block}.page-toc a:hover{color:var(--ink)}.page-toc a[aria-current=true]{color:var(--accent);border-left-color:var(--accent);font-weight:500}.page-toc-content{min-width:0}.page-toc-content>.shell{padding-top:1rem;padding-bottom:4rem}.page-toc-content>.shell.narrow{margin-left:0}@media (width<=900px){.page-shell{grid-template-columns:1fr;gap:1.2rem;padding-top:1.4rem}.page-toc{border-right:0;border-bottom:1px solid var(--rule);max-height:none;padding:0 0 1rem;position:static;overflow:visible}.page-toc ol{columns:2;column-gap:1.4rem}.page-toc li{break-inside:avoid}}@media (width<=540px){.page-toc ol{columns:1}}.page-shell--3col{grid-template-columns:14rem minmax(0,1fr) 13rem;gap:2.2rem;max-width:86rem}.page-sections{border-right:1px solid var(--rule);max-height:calc(100vh - 5.5rem);padding-right:.6rem;font-size:.88rem;position:sticky;top:4.5rem;overflow-y:auto}.page-sections ol{counter-reset:sec;margin:0;padding:0;list-style:none}.page-sections li{counter-increment:sec;margin:0}.page-sections a{color:var(--ink-soft);border:0;border-left:2px solid #0000;padding:.4em .6em .4em .9em;font-size:.92rem;line-height:1.35;text-decoration:none;transition:color .12s,border-color .12s;display:block}.page-sections a:hover{color:var(--ink)}.page-sections a[aria-current=page]{color:var(--accent);border-left-color:var(--accent);font-weight:500}.page-toc--right{border-right:0;border-left:1px solid var(--rule);padding-left:.6rem;padding-right:0}.page-toc--empty{visibility:hidden}@media (width<=1100px){.page-shell--3col{grid-template-columns:13rem minmax(0,1fr)}.page-toc--right{display:none}}@media (width<=900px){.page-shell--3col{grid-template-columns:1fr}.page-sections{border-right:0;border-bottom:1px solid var(--rule);max-height:none;padding:0 0 1rem;position:static;overflow:visible}.page-sections ol{flex-wrap:wrap;gap:.4rem 1rem;display:flex}.page-sections a{border-left:0;padding:.2em 0}.page-sections a[aria-current=page]{border-left:0}}.titleblock{border-bottom:1px solid var(--rule);margin-bottom:2.6rem;padding-bottom:1.5rem}.titleblock .eyebrow{font-family:var(--mono);color:var(--accent);letter-spacing:.08em;text-transform:uppercase;margin-bottom:.9rem;font-size:.72rem}.titleblock .byline{color:var(--ink-soft);margin-top:.6rem;font-size:1.1rem;line-height:1.5}.titleblock .meta{font-family:var(--mono);color:var(--ink-faint);letter-spacing:0;flex-wrap:wrap;gap:1.4rem 2rem;margin-top:1.4rem;font-size:.76rem;display:flex}.titleblock .meta strong{color:var(--ink);font-weight:500;font-family:var(--sans-display)}.titleblock .meta a{border-bottom-color:#0000}.titleblock .meta a:hover{border-bottom-color:var(--accent)}.abstract{grid-template-columns:8rem 1fr;gap:2.4rem;margin:2.2rem 0;display:grid}.abstract .label{font-family:var(--mono);color:var(--ink-faint);letter-spacing:.08em;text-transform:uppercase;padding-top:.35rem;font-size:.72rem}.abstract .body{font-size:1rem}.abstract .body p{color:var(--ink-soft)}.triptych{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);grid-template-columns:repeat(3,1fr);gap:2.2rem;margin:2.8rem 0;padding:2.2rem 0;display:grid}.triptych .panel h3{color:var(--ink);letter-spacing:-.005em;margin:0 0 .4em;font-size:1rem;font-weight:500}.triptych .panel .num{font-family:var(--mono);color:var(--accent);letter-spacing:.06em;margin-bottom:.6rem;font-size:.7rem;display:block}.triptych .panel p{color:var(--ink-soft);margin:0;font-size:.93rem;line-height:1.55}@media (width<=720px){.triptych{grid-template-columns:1fr;gap:1.4rem;padding:1.4rem 0}}.api-shell{max-width:80rem;padding:2.8rem var(--gutter) 6rem;grid-template-columns:16rem 1fr;align-items:start;gap:3.2rem;margin:0 auto;display:grid}@media (width<=980px){.api-shell{grid-template-columns:1fr;gap:2rem}.api-toc{border-right:0!important;max-height:none!important;position:static!important}}.api-toc{border-right:1px solid var(--rule);max-height:calc(100vh - 5.5rem);padding-right:.6rem;font-size:.85rem;position:sticky;top:4.5rem;overflow-y:auto}.api-toc h4{font-family:var(--mono);color:var(--ink-faint);letter-spacing:.08em;text-transform:uppercase;margin:1.5em 0 .6em;font-size:.72rem;font-weight:400}.api-toc h4:first-child{margin-top:.4em}.api-toc ul{margin:0 0 1.2em;padding:0;list-style:none}.api-toc li{margin:.18em 0}.api-toc a{color:var(--ink-soft);font-family:var(--mono);letter-spacing:0;white-space:nowrap;text-overflow:ellipsis;border:0;padding:1px 0;font-size:.74rem;display:block;overflow:hidden}.api-toc a:hover{color:var(--accent)}.api-toc .toc-group{font-family:var(--sans-display);color:var(--ink);letter-spacing:-.005em;margin:.7em 0 .2em;font-size:.78rem;font-weight:500;display:block}.api-toc .toc-filter{width:100%;font-family:var(--sans-body);background:var(--bg-elev);border:1px solid var(--rule);color:var(--ink);border-radius:5px;outline:none;margin-bottom:1.4rem;padding:.5rem .7rem;font-size:.9rem;transition:border-color .12s,box-shadow .12s}.api-toc .toc-filter:focus{border-color:var(--accent);box-shadow:0 0 0 3px #7f3eff26}.api-toc .toc-filter::placeholder{color:var(--ink-mute)}.api-toc .toc-crate{margin:0 0 1.2em}.api-toc .toc-kind{margin:.35em 0 .6em;padding:0;list-style:none}.api-toc .toc-kind-label{font-family:var(--sans-display);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);align-items:center;gap:.4em;margin:.45em 0 .18em;font-size:.68rem;font-weight:500;display:flex}.api-toc .kind-dot{background:var(--ink-mute);border-radius:2px;flex-shrink:0;width:7px;height:7px;display:inline-block}.api-toc .kind-dot--module{background:#6b6580;border-radius:50%}.api-toc .kind-dot--struct{background:#7f3eff}.api-toc .kind-dot--enum{background:#ff7c24}.api-toc .kind-dot--trait{background:#a252fa;transform:rotate(45deg)}.api-toc .kind-dot--function,.api-toc .kind-dot--method{background:#fa82ec;border-radius:50%}.api-toc .kind-dot--macro{background:#ffb072;border-radius:2px}.api-toc .kind-dot--type_alias{background:var(--ink-mute);border-radius:1px}.api-toc .kind-dot--other{background:var(--ink-mute)}.api-toc .toc-kind{border-left:1px solid var(--rule-soft);margin-left:.1em;padding-left:.55em}.api-toc .toc-kind--struct{border-left-color:color-mix(in srgb, #7f3eff 22%, var(--rule-soft))}.api-toc .toc-kind--enum{border-left-color:color-mix(in srgb, #ff7c24 22%, var(--rule-soft))}.api-toc .toc-kind--trait{border-left-color:color-mix(in srgb, #a252fa 22%, var(--rule-soft))}.api-toc .toc-kind--function{border-left-color:color-mix(in srgb, #fa82ec 22%, var(--rule-soft))}.api-toc .toc-kind--macro{border-left-color:color-mix(in srgb, #ffb072 22%, var(--rule-soft))}.api-toc .toc-kind>li:first-child{margin-top:0}.api-section{margin:0 0 4rem}.api-section>h2{border-bottom:1px solid var(--ink);flex-wrap:wrap;align-items:center;gap:.7rem;margin-top:0;padding-bottom:.6rem;font-size:1.4rem;font-weight:500;display:flex}.api-section>h2 .api-section-title{color:var(--ink);font-weight:500}.api-section>h2 code{font-family:var(--mono);color:var(--accent);background:0 0;border:0;padding:0;font-size:.85em}.api-section .crate-blurb{color:var(--ink-faint);margin-top:.5rem;font-size:.96rem;font-style:normal}.api-section--python>h2{border-bottom-color:var(--purple)}.api-section--rust>h2{border-bottom-color:var(--orange)}.api-section--rust>h2 code{color:var(--orange)}.lang-chip{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;vertical-align:.05em;border:1px solid;border-radius:999px;align-items:center;gap:.45rem;padding:3px 9px 4px;font-size:.7rem;font-weight:500;display:inline-flex}.lang-chip .dot{background:currentColor;border-radius:50%;width:7px;height:7px;box-shadow:0 0 8px}.lang-chip--python{color:var(--purple);background:color-mix(in srgb, var(--purple) 8%, transparent)}.lang-chip--rust{color:var(--orange);background:color-mix(in srgb, var(--orange) 8%, transparent)}.lang-toggle{border:1px solid var(--rule);background:var(--bg-deep);border-radius:6px;grid-template-columns:1fr 1fr 1fr;gap:4px;margin:0 0 1.5rem;padding:3px;display:grid}.lang-toggle button{appearance:none;font-family:var(--sans-display);letter-spacing:0;color:var(--ink-faint);cursor:pointer;background:0 0;border:0;border-radius:4px;justify-content:center;align-items:center;gap:.35rem;padding:5px 6px;font-size:.78rem;font-weight:500;transition:background .12s,color .12s;display:inline-flex}.lang-toggle button .dot{opacity:.7;background:currentColor;border-radius:50%;width:6px;height:6px;display:inline-block}.lang-toggle button:hover{color:var(--ink)}.lang-toggle button[aria-pressed=true]{background:var(--bg-elev);color:var(--ink);box-shadow:0 1px 2px #0f0c240a, 0 0 0 1px var(--rule)}.lang-toggle button.lang-toggle--python[aria-pressed=true]{color:var(--purple);box-shadow:0 1px 2px #0f0c240a, 0 0 0 1px color-mix(in srgb, var(--purple) 38%, var(--rule))}.lang-toggle button.lang-toggle--rust[aria-pressed=true]{color:var(--orange);box-shadow:0 1px 2px #0f0c240a, 0 0 0 1px color-mix(in srgb, var(--orange) 40%, var(--rule))}.shell.home{max-width:64rem;padding-top:4rem;padding-bottom:5rem}.shell.home.with-glow:before,.hero-wrap.with-glow:before{content:none}.hero-wrap{border-bottom:1px solid var(--rule);position:relative;overflow:hidden}.atom-cloud{pointer-events:none;z-index:0;width:100%;height:100%;position:absolute;inset:0}.hero{z-index:1;max-width:64rem;padding:5rem var(--gutter) 5rem;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:3.6rem;margin:0 auto;display:grid;position:relative}.hero-text .eyebrow{font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 1.4rem;font-size:.7rem}.hero-text h1{font-family:var(--sans-display);letter-spacing:-.02em;color:var(--ink);margin:0 0 1.4rem;font-size:4.2rem;font-weight:300;line-height:1}.hero-text .byline{color:var(--ink-soft);max-width:32rem;margin:0 0 2.2rem;font-size:1.15rem;line-height:1.55}.hero-text .byline a{border-bottom:1px solid color-mix(in srgb, var(--accent) 35%, transparent)}.hero-text .byline a:hover{color:var(--accent);border-bottom-color:var(--accent)}.hero-text .meta{color:var(--ink-faint);border-top:1px solid var(--rule-soft);flex-wrap:wrap;gap:1rem 1.8rem;margin-bottom:2.4rem;padding-top:1.2rem;font-size:.84rem;display:flex}.hero-text .meta strong{color:var(--ink-soft);font-family:var(--sans-display);text-transform:uppercase;letter-spacing:.1em;margin-right:.4rem;font-size:.66rem;font-weight:500}.hero-text .meta a{color:var(--ink-soft);border-bottom:0}.hero-text .meta a:hover{color:var(--accent)}.hero-cta{flex-wrap:wrap;align-items:center;gap:1.4rem 2.2rem;display:flex}.btn{font-family:var(--sans-display);letter-spacing:0;color:var(--ink-soft);border:0;border-bottom:1px solid var(--rule);background:0 0;align-items:center;padding:0 0 2px;font-size:.92rem;font-weight:500;text-decoration:none;transition:color .12s,border-color .12s;display:inline-flex}.btn:hover{color:var(--ink);border-bottom-color:var(--ink)}.btn--primary{color:var(--accent);border-bottom-color:var(--accent)}.btn--primary:hover{color:var(--accent-deep);border-bottom-color:var(--accent-deep)}.btn:after{content:"→";margin-left:.35em;transition:transform .16s}.btn:hover:after{transform:translate(2px)}.hero-code{border:1px solid var(--rule);background:color-mix(in srgb, var(--bg) 78%, transparent);-webkit-backdrop-filter:blur(10px);box-shadow:none;border-radius:6px;margin:0;padding:1rem 1.1rem;overflow:hidden}.hero-code figcaption{border-bottom:1px solid var(--rule-soft);background:0 0;justify-content:space-between;align-items:baseline;gap:1rem;padding:0 0 .55rem;display:flex}.hero-code-title{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);font-size:.72rem;font-weight:400}.hero-code-tabs{flex-wrap:wrap;align-items:baseline;gap:.35rem 1.2rem;min-width:0;display:flex}.hero-code-tab{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);cursor:pointer;background:0 0;border:0;border-bottom:1px solid #0000;margin:0;padding:0 0 .15rem;font-size:.72rem;font-weight:400;transition:color .12s,border-color .12s}.hero-code-tab:hover{color:var(--ink-soft)}.hero-code-tab:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:1px}.hero-code-tab[aria-selected=true]{color:var(--ink);border-bottom-color:var(--accent)}@media (width<=480px){.hero-code-tabs{gap:.3rem .9rem}.hero-code-tab{letter-spacing:.06em;font-size:.68rem}}.hero-code-file{font-family:var(--mono);color:var(--ink-mute);font-size:.7rem}.hero-code-file code{font-size:inherit;color:inherit;background:0 0;border:0;padding:0}.hero-code pre{background:0 0;border:0;border-radius:0;margin:0;padding:.6rem 0 0;font-size:.84rem;line-height:1.6}.hero-code-note{color:var(--ink-faint);font-size:.92rem;font-style:italic;font-family:var(--serif);background:0 0;border-top:0;margin:.85rem 0 0;padding:0;line-height:1.55}@media (width<=920px){.hero{padding:3.4rem var(--gutter);grid-template-columns:1fr;gap:2.4rem}.hero-text h1{font-size:3.2rem}}.shell.home .triptych{border:0;grid-template-columns:repeat(3,1fr);gap:2.6rem;margin:4rem 0 5rem;padding:0;display:grid}.shell.home .triptych .panel h3{font-family:var(--sans-display);letter-spacing:0;margin:0 0 .5rem;font-size:.98rem;font-weight:500}.shell.home .triptych .panel p{color:var(--ink-soft);margin:0;font-size:.93rem;line-height:1.55}.shell.home .triptych .panel .num{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:.6rem;font-size:.68rem;display:block}.install-tabs{background:0 0;border:0;border-radius:0;margin:0;overflow:visible}.section-h{font-family:var(--sans-display);letter-spacing:-.01em;color:var(--ink);margin:0 0 1.6rem;font-size:1.5rem;font-weight:500}.section-h-num{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);margin-right:.8rem;font-size:.7rem;font-weight:400}.install-tablist{border-bottom:1px solid var(--rule);background:0 0;gap:2rem;margin:0 0 1.6rem;padding:0;display:flex}.install-tab{color:var(--ink-faint);cursor:pointer;text-align:left;font-family:var(--sans-body);background:0 0;border:0;border-bottom:2px solid #0000;flex-direction:column;flex:none;align-items:flex-start;gap:.1rem;margin-bottom:-1px;padding:.5rem 0;transition:color .12s,border-color .12s;display:inline-flex}.install-tab:hover{color:var(--ink);background:0 0}.install-tab[aria-selected=true]{color:var(--ink);border-bottom-color:var(--accent);background:0 0}.install-tab--python[aria-selected=true],.install-tab--rust[aria-selected=true],.install-tab--agents[aria-selected=true]{border-bottom-color:var(--accent)}.install-tab-label{font-family:var(--sans-display);letter-spacing:0;font-size:.95rem;font-weight:500}.install-tab-sub{color:var(--ink-mute);font-size:.78rem}.install-tab[aria-selected=true] .install-tab-sub{color:var(--ink-faint)}.install-pane{padding:0}.install-pane>p{color:var(--ink-soft);margin:0 0 .9rem;font-size:.95rem;line-height:1.55}.install-pane pre{background:var(--bg-elev);border:1px solid var(--rule-soft);border-radius:4px;margin:0 0 .9rem}.install-pane-note{color:var(--ink-faint)!important;margin-top:-.3rem!important;font-size:.85rem!important}.install-pane-link{font-family:var(--sans-display);color:var(--accent);margin-top:.3rem;font-size:.88rem;font-weight:500;text-decoration:none;display:inline-block}.install-pane-link:hover{color:var(--accent-deep)}@media (width<=640px){.install-tablist{flex-direction:column;gap:.4rem}.install-tab{border-bottom:0;padding-left:0}.install-tab[aria-selected=true]{border-left:2px solid var(--accent);padding-left:.6rem}}.home-foot{text-align:center;color:var(--ink-faint);font-style:italic;font-family:var(--serif);border-top:1px solid var(--rule);margin:3.6rem 0 0;padding-top:2rem}.home-foot a{color:var(--ink-soft);border-bottom:1px solid var(--rule)}.home-foot a:hover{color:var(--accent);border-bottom-color:var(--accent)}.shell a>code{color:inherit}.agent-callout{border:1px solid var(--rule);border-left:3px solid var(--accent);background:var(--bg-deep);border-radius:4px;margin:1.5rem 0 2rem;padding:1.1rem 1.3rem}.agent-callout-label{font-family:var(--sans-display);text-transform:uppercase;letter-spacing:.1em;color:var(--accent);margin-bottom:.55rem;font-size:.72rem;font-weight:600}.agent-callout p{color:var(--ink-soft);margin:.4rem 0;font-size:.95rem;line-height:1.55}.agent-callout ol{color:var(--ink-soft);margin:.4rem 0 .6rem 1.2rem;font-size:.95rem}.agent-callout li{margin:.2rem 0}.toc-inline{border:1px solid var(--rule);background:var(--bg-deep);border-radius:4px;margin:1rem 0 2.4rem;padding:.9rem 1.1rem}.toc-inline ol{columns:2;column-gap:1.8rem;margin:0;padding-left:1.2rem;font-size:.92rem}.toc-inline li{break-inside:avoid;margin:.18em 0}.toc-inline a{color:var(--ink-soft)}.lookup{grid-template-columns:minmax(240px,1fr) 2fr;gap:.5rem 1.4rem;margin:.6rem 0 1.4rem;display:grid}.lookup dt{font-family:var(--sans-display);color:var(--ink);font-size:.95rem;font-weight:500}.lookup dt code{font-family:var(--mono);color:var(--accent);background:0 0;border:0;padding:0;font-size:.88em}.lookup dd{color:var(--ink-soft);margin:0;font-size:.92rem;line-height:1.5}.lookup dd code{font-family:var(--mono);font-size:.88em}@media (width<=720px){.toc-inline ol{columns:1}.lookup{grid-template-columns:1fr;gap:.1rem 0}.lookup dd{margin-bottom:.6rem}}.install-shell{margin:1rem 0 2rem}.install-toggle{grid-template-columns:1fr 1fr;max-width:320px}.install-toggle--3{grid-template-columns:1fr 1fr 1fr;max-width:420px}.lang-toggle button.lang-toggle--agents[aria-pressed=true]{color:var(--ink);box-shadow:0 1px 2px #0f0c240a, 0 0 0 1px color-mix(in srgb, var(--ink) 38%, var(--rule))}.install-pane{margin-top:.6rem}.install-pane h4{font-family:var(--sans-display);color:var(--ink);letter-spacing:.01em;margin:1.6rem 0 .5rem;font-size:.95rem;font-weight:500}.crate-list{gap:.6rem;margin:.4rem 0 .8rem;padding:0;display:grid}.crate-list dt{font-family:var(--mono);color:var(--ink);align-items:center;gap:.55rem;font-size:.92rem;display:flex}.crate-list dt code{color:var(--accent);background:0 0;border:0;padding:0}.crate-list dd{color:var(--ink-soft);margin:.15rem 0 0;padding-left:0;font-size:.95rem;line-height:1.55}.crate-tag{font-family:var(--sans-display);text-transform:uppercase;letter-spacing:.06em;color:var(--ink-faint);border:1px solid var(--rule);border-radius:3px;padding:1px 6px;font-size:.68rem;font-weight:500}.crate-pick{color:var(--ink-soft);margin:.4rem 0 1rem;padding-left:1.2rem}.crate-pick li{margin:.35rem 0;line-height:1.55}.crate-pick strong{color:var(--ink);font-weight:500}.api-section--python .api-item{border-left-color:color-mix(in srgb, var(--purple) 14%, var(--rule))}.api-section--python .api-item:hover{border-left-color:var(--purple);box-shadow:0 1px 3px #0f0c240a,0 8px 24px -16px #7f3eff40}.api-section--rust .api-item{border-left-color:color-mix(in srgb, var(--orange) 14%, var(--rule))}.api-section--rust .api-item:hover{border-left-color:var(--orange);box-shadow:0 1px 3px #0f0c240a,0 8px 24px -16px #ff7c244d}.api-search-status{background:var(--bg-elev);border:1px solid var(--rule);color:var(--ink-soft);font-size:.88rem;font-family:var(--mono);border-radius:5px;margin:0 0 1.4rem;padding:.6rem .9rem}.api-search-status[hidden]{display:none}.api-item{background:var(--bg-elev);border:1px solid var(--rule);border-left:3px solid var(--rule);cursor:pointer;border-radius:5px;margin:0 0 .9rem;padding:.95rem 1.1rem 1rem;transition:border-left-color .15s,box-shadow .15s,transform .15s}.api-item:has(details:not([open])){cursor:pointer}.api-item:has(details[open]){cursor:default}.api-item:has(details[open]) .row1,.api-item:has(details[open]) .signature,.api-item:has(details[open]) .summary{cursor:pointer}.api-item.no-toggle{cursor:default}.api-item:hover{border-left-color:var(--accent);box-shadow:0 1px 3px #0f0c240a,0 8px 24px -16px #7f3eff33}.api-item:target{border-left-color:var(--accent);background:linear-gradient(180deg, #7f3eff0d, var(--bg-elev) 30%)}.api-item .row1{flex-wrap:wrap;align-items:baseline;gap:.7rem;display:flex}.api-item .name{font-family:var(--mono);color:var(--ink);font-size:.96rem;font-weight:500}.api-item .name a{color:inherit;border:0}.api-item .name a:hover{color:var(--accent)}.api-item .path{font-family:var(--mono);color:var(--ink-faint);margin-left:auto;font-size:.72rem}.api-item .signature{font-family:var(--mono);color:var(--ink-soft);white-space:pre-wrap;word-break:break-word;margin-top:.4rem;font-size:.8rem}.api-item .summary{color:var(--ink-soft);margin:.6rem 0 0;font-size:.95rem;line-height:1.55}.api-item details{margin-top:.6rem;font-size:.92rem}.api-item details summary{cursor:pointer;font-family:var(--mono);color:var(--ink-faint);letter-spacing:.06em;text-transform:uppercase;user-select:none;font-size:.7rem;list-style:none}.api-item details summary::-webkit-details-marker{display:none}.api-item details summary:before{content:"▸ ";color:var(--ink-mute)}.api-item details[open] summary:before{content:"▾ ";color:var(--accent)}.api-item details summary:hover{color:var(--accent)}.api-item details .docstring{font-family:var(--sans-body);color:var(--ink);border-top:1px dashed var(--rule);margin-top:.7rem;padding-top:.8rem;font-size:.93rem;line-height:1.6}.doc-prose{font-size:.93rem;line-height:1.6}.doc-prose p{color:var(--ink);margin:0 0 .85em}.doc-prose p:last-child{margin-bottom:0}.doc-prose strong{color:var(--ink);font-weight:600}.doc-prose em{color:var(--ink-soft);font-style:italic}.doc-prose ul,.doc-prose ol{color:var(--ink);margin:0 0 .85em;padding-left:1.4rem}.doc-prose li{margin:.18em 0}.doc-prose li>p{margin:0}.doc-prose code{background:var(--code-bg);border:1px solid var(--code-edge);color:var(--ink);border-radius:3px;padding:.05em .32em;font-size:.86em}.doc-prose pre{background:var(--bg-elev);border:1px solid var(--rule);border-left:3px solid var(--accent);border-radius:4px;margin:.8em 0;padding:.8rem 1rem;font-size:.8rem}.doc-prose pre code{background:0 0;border:0;padding:0;font-size:1em}.doc-prose blockquote{border-left:2px solid var(--rule);color:var(--ink-soft);margin:.8em 0;padding:.1em 1rem}.doc-prose h1,.doc-prose h2,.doc-prose h3,.doc-prose h4,.doc-prose h5{color:var(--ink);font-size:.95rem;font-weight:500;font-family:var(--sans-display);margin:1.1em 0 .3em}.doc-prose table{border-collapse:collapse;margin:.8em 0;font-size:.86rem}.doc-prose th,.doc-prose td{border:1px solid var(--rule);text-align:left;padding:.3rem .7rem}.doc-prose th{background:var(--bg-deep);font-weight:500}.doc-prose a{color:var(--accent);border-bottom:1px solid color-mix(in srgb, var(--accent) 30%, transparent)}.doc-prose a:hover{border-bottom-color:var(--accent)}.doc-section{margin:.9em 0 1em}.doc-section h5{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 .6em;font-size:.7rem;font-weight:400}.param-list,.return-list{grid-template-columns:minmax(8rem,max-content) 1fr;align-items:baseline;gap:.45rem 1.2rem;margin:0;padding-left:0;display:grid}.param-list dt,.return-list dt{font-family:var(--mono);flex-wrap:wrap;align-items:baseline;gap:.45rem;margin:0;display:inline-flex}.param-list dd,.return-list dd{color:var(--ink-soft);margin:0}.param-list dd>p:first-child,.return-list dd>p:first-child{margin-top:0}.param-list dd>p:last-child,.return-list dd>p:last-child{margin-bottom:0}.param-name{color:var(--ink);background:0 0;border:0;padding:0;font-size:.86rem;font-weight:500}.param-type{background:var(--code-bg);border:1px solid var(--code-edge);color:var(--accent);border-radius:3px;padding:.04em .4em;font-size:.75rem}.param-default{font-family:var(--mono);color:var(--ink-faint);font-size:.74rem}.param-default code{background:var(--code-bg);border:1px solid var(--code-edge);border-radius:3px;padding:.04em .32em;font-size:1em}.param-optional{color:var(--ink-mute);font-style:italic}.doc-admonition{border-left:3px solid var(--orange);background:color-mix(in srgb, var(--orange) 6%, var(--bg-elev));border-radius:0 3px 3px 0;margin:.9em 0;padding:.7rem 1rem;font-size:.93rem}@media (width<=600px){.param-list,.return-list{grid-template-columns:1fr;gap:.2rem 0}.param-list dd,.return-list dd{margin-bottom:.4rem;padding-left:.8rem}}.kind{font-family:var(--mono);letter-spacing:.04em;text-transform:lowercase;vertical-align:.1em;background:0 0;border:1px solid;border-radius:999px;padding:2px 8px 3px;font-size:.66rem;display:inline-block}.kind-struct,.kind-class{color:#5a26c4;background:#7f3eff12;border-color:#7f3eff52}.kind-enum{color:#b05a14;background:#ff7c2414;border-color:#ff7c2457}.kind-trait{color:#8b3aa8;background:#a252fa14;border-color:#a252fa52}.kind-function,.kind-method{color:#bb3a92;background:#fa82ec14;border-color:#fa82ec5c}.kind-type_alias,.kind-attribute,.kind-module{color:var(--ink-soft);background:var(--bg-deep);border-color:var(--rule)}.kind-macro{color:#a35d18;background:#ff7c2412;border-color:#ff7c244d}html[data-theme=dark] .kind-struct,html[data-theme=dark] .kind-class{color:#c9b3ff;background:#7f3eff2e;border-color:#a57aff8c}html[data-theme=dark] .kind-enum{color:#ffc28a;background:#ff7c242e;border-color:#ff96508c}html[data-theme=dark] .kind-trait{color:#dcb6ff;background:#a252fa2e;border-color:#be82ff8c}html[data-theme=dark] .kind-function,html[data-theme=dark] .kind-method{color:#ffb8ee;background:#fa82ec2e;border-color:#ffa0e68c}html[data-theme=dark] .kind-macro{color:#fc9;background:#ff7c2429;border-color:#ff965080}html[data-theme=dark] .kind-type_alias,html[data-theme=dark] .kind-attribute,html[data-theme=dark] .kind-module{color:var(--ink);background:var(--bg-elev);border-color:var(--rule)}.qs-hero{padding:3rem var(--gutter) 2.4rem;border-bottom:1px solid var(--rule);--qs-accent:var(--purple);--qs-accent-soft:#7f3eff1f;--qs-accent-faint:#7f3eff0f;margin:0;position:relative;overflow:hidden}.qs-hero:before{content:"";pointer-events:none;background:radial-gradient(ellipse 780px 320px at 92% -30%, var(--qs-accent-soft), transparent 70%), radial-gradient(ellipse 600px 260px at -5% 0%, var(--qs-accent-faint), transparent 75%);z-index:0;position:absolute;inset:0}.qs-hero>*{z-index:1;position:relative}.qs-hero--python{--qs-accent:var(--purple);--qs-accent-soft:#7f3eff24;--qs-accent-faint:#7f3eff12}.qs-hero--rust{--qs-accent:var(--orange);--qs-accent-soft:#ff7c2429;--qs-accent-faint:#ff7c2412}.qs-hero-inner{max-width:var(--measure-wide);margin:0 auto}.qs-hero .chip{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--qs-accent);background:var(--qs-accent-soft);border:1px solid color-mix(in srgb, var(--qs-accent) 40%, transparent);border-radius:999px;align-items:center;gap:.5rem;padding:4px 10px 5px;font-size:.72rem;display:inline-flex}.qs-hero .chip .chip-dot{background:var(--qs-accent);width:7px;height:7px;box-shadow:0 0 12px var(--qs-accent);border-radius:50%}.qs-hero h1{letter-spacing:-.025em;margin:1rem 0 .3em;font-size:clamp(2.2rem,4vw,2.9rem);font-weight:400}.qs-hero h1 .lang{color:var(--qs-accent);font-family:var(--mono);letter-spacing:-.01em;margin-right:.55rem;font-size:.85em;font-weight:500}.qs-hero .audience{color:var(--ink-soft);max-width:38rem;margin:0;font-size:1.08rem;line-height:1.55}.qs-hero .audience strong{color:var(--ink);font-weight:500}.qs-page.qs-page--rust{--accent:var(--orange);--accent-deep:#b85a14}.qs-page pre{border-left-color:var(--accent)}.qs-crosslink{border:1px solid var(--rule);background:var(--bg-elev);border-radius:6px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.2rem;margin:4rem 0 0;padding:1.3rem 1.4rem;font-size:.95rem;display:flex}.qs-crosslink .label{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:.2rem;font-size:.7rem;display:block}.qs-crosslink a{font-family:var(--sans-display);border:0;font-size:1.05rem;font-weight:500}.qs-crosslink a:after{content:" →";color:var(--ink-faint);transition:color .12s,transform .12s;display:inline-block}.qs-crosslink a:hover:after{color:var(--accent);transform:translate(2px)}.qs-chooser{grid-template-columns:repeat(2,1fr);gap:1.6rem;margin:2.4rem 0 0;display:grid}@media (width<=820px){.qs-chooser{grid-template-columns:1fr}}.qs-card{border:1px solid var(--rule);background:var(--bg-elev);--card-accent:var(--purple);--card-accent-soft:#7f3eff1f;color:var(--ink);border-radius:8px;flex-direction:column;padding:1.6rem 1.7rem 1.5rem;text-decoration:none;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex;position:relative;overflow:hidden}.qs-card:before{content:"";background:linear-gradient(90deg, var(--card-accent), color-mix(in srgb, var(--card-accent) 40%, transparent));height:4px;position:absolute;top:0;left:0;right:0}.qs-card:after{content:"";pointer-events:none;background:radial-gradient(ellipse 380px 220px at 100% -30%, var(--card-accent-soft), transparent 65%);z-index:0;position:absolute;inset:0}.qs-card>*{z-index:1;position:relative}.qs-card:hover{border-color:color-mix(in srgb, var(--card-accent) 40%, var(--rule));box-shadow:0 4px 14px -8px color-mix(in srgb, var(--card-accent) 45%, transparent), 0 1px 3px #0f0c240d;transform:translateY(-2px)}.qs-card--python{--card-accent:var(--purple);--card-accent-soft:#7f3eff1f}.qs-card--rust{--card-accent:var(--orange);--card-accent-soft:#ff7c2424}.qs-card .qs-chip{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--card-accent);align-items:center;gap:.5rem;margin-bottom:.7rem;font-size:.7rem;display:inline-flex}.qs-card .qs-chip .chip-dot{background:var(--card-accent);width:7px;height:7px;box-shadow:0 0 10px var(--card-accent);border-radius:50%}.qs-card h3{letter-spacing:-.018em;color:var(--ink);margin:0 0 .45em;font-size:1.5rem;font-weight:500}.qs-card .audience-tag{font-family:var(--mono);color:var(--ink-soft);border:1px solid var(--rule);border-radius:4px;margin-bottom:.9rem;padding:2px 8px 3px;font-size:.72rem;display:inline-block}.qs-card p{color:var(--ink-soft);margin:0 0 1em;font-size:.96rem;line-height:1.55}.qs-card .qs-bullets{color:var(--ink-soft);margin:0 0 1.1em;padding:0;font-size:.92rem;list-style:none}.qs-card .qs-bullets li{margin:.3em 0;padding-left:1.2rem;position:relative}.qs-card .qs-bullets li:before{content:"";background:var(--card-accent);width:6px;height:1px;position:absolute;top:.55em;left:0}.qs-card .qs-cta{font-family:var(--sans-display);color:var(--card-accent);margin-top:auto;font-size:.95rem;font-weight:500}.qs-card .qs-cta:after{content:" →";transition:transform .15s;display:inline-block}.qs-card:hover .qs-cta:after{transform:translate(3px)}.tut-toc{border:1px solid var(--rule);background:var(--bg-elev);border-radius:6px;margin:2rem 0 2.6rem;padding:1.1rem 1.4rem}.tut-toc h4{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin:0 0 .6em;font-size:.72rem;font-weight:400}.tut-toc ol{color:var(--ink);margin:0;padding-left:1.4rem;font-size:.96rem;list-style:decimal}.tut-toc ol li{margin:.2em 0}.tut-toc ol li::marker{color:var(--accent);font-family:var(--mono);font-size:.85em}.tut-toc a{color:var(--ink);border:0}.tut-toc a:hover{color:var(--accent)}.dev-cmd-table{border-collapse:collapse;width:100%;margin:1rem 0 1.6rem;font-size:.92rem}.dev-cmd-table thead th{text-align:left;font-family:var(--sans-display);text-transform:uppercase;letter-spacing:.08em;color:var(--ink-faint);border-bottom:1px solid var(--rule);padding:.4rem .7rem .4rem 0;font-size:.72rem;font-weight:500}.dev-cmd-table tbody td{vertical-align:top;border-bottom:1px solid var(--rule-soft);color:var(--ink-soft);padding:.55rem .7rem .55rem 0;line-height:1.5}.dev-cmd-table tbody tr:last-child td{border-bottom:0}.dev-cmd-table td:first-child{white-space:nowrap;color:var(--ink)}.dev-cmd-table code{font-family:var(--mono);background:0 0;border:0;padding:0;font-size:.85em}@media (width<=720px){.dev-cmd-table,.dev-cmd-table thead,.dev-cmd-table tbody,.dev-cmd-table tr,.dev-cmd-table th,.dev-cmd-table td{display:block}.dev-cmd-table thead{display:none}.dev-cmd-table tbody tr{border-bottom:1px solid var(--rule-soft);padding:.6rem 0}.dev-cmd-table tbody td{border-bottom:0;padding:.15rem 0}.dev-cmd-table td:first-child{margin-bottom:.2rem}}.tutorial section{margin:3rem 0}.tutorial section:first-of-type{margin-top:1.6rem}.tutorial h2{font-family:var(--sans-display);letter-spacing:-.005em;margin:0 0 1rem;font-size:1.45rem;font-weight:500}.tutorial p{color:var(--ink-soft);margin:.7rem 0;line-height:1.65}.tutorial ul,.tutorial ol{color:var(--ink-soft);margin:.7rem 0 .7rem 1.4rem}.tutorial pre{background:var(--bg-elev);border:1px solid var(--rule-soft);border-radius:4px;margin:.9rem 0;padding:.9rem 1.05rem;font-size:.84rem}.callout{border:1px solid var(--rule);border-left:3px solid var(--accent);background:var(--bg-elev);color:var(--ink-soft);border-radius:4px;margin:1rem 0;padding:.85rem 1.1rem;font-size:.95rem;line-height:1.55}.tutorials-list{gap:1.6rem;margin:1.6rem 0 0;padding:0;list-style:none;display:grid}.tutorials-list>li{border-top:1px solid var(--rule-soft);padding-top:1.4rem}.tutorials-list>li:first-child{border-top:0;padding-top:0}.tutorials-title{font-family:var(--sans-display);letter-spacing:-.005em;color:var(--ink);margin-bottom:.4rem;font-size:1.25rem;font-weight:500;text-decoration:none;display:block}.tutorials-title:hover{color:var(--accent)}.tutorials-list>li p{color:var(--ink-soft);margin:0;font-size:.95rem}.examples-list{gap:1.6rem;margin:1.6rem 0 0;padding:0;list-style:none;display:grid}.examples-list>li{border-top:1px solid var(--rule-soft);padding-top:1.4rem}.examples-list>li:first-child{border-top:0;padding-top:0}.examples-title{font-family:var(--sans-display);letter-spacing:-.005em;color:var(--ink);margin-bottom:.45rem;font-size:1.25rem;font-weight:500;text-decoration:none;display:block}.examples-title:hover{color:var(--accent)}.examples-meta{color:var(--ink-faint);flex-wrap:wrap;align-items:center;gap:.55rem .7rem;margin:0;font-size:.85rem;display:flex}.examples-source-label{font-family:var(--sans-display);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);font-size:.68rem}.examples-source{font-family:var(--mono);color:var(--ink-soft);border-bottom:1px solid var(--rule);padding-bottom:1px;font-size:.85rem}.examples-source:hover{color:var(--accent);border-bottom-color:var(--accent)}.examples-lang{font-family:var(--mono);letter-spacing:.04em;text-transform:lowercase;color:var(--accent);border:1px solid color-mix(in srgb, var(--accent) 38%, var(--rule));border-radius:3px;padding:.1rem .45rem;font-size:.7rem;line-height:1.3}.notebook{max-width:50rem}.notebook-body{margin-top:2rem}.notebook-body .jp-Cell{border:0;margin:1.4rem 0;padding:0}.notebook-body .jp-Cell+.jp-Cell{border-top:1px solid var(--rule-soft);padding-top:1.4rem}.notebook-body .jp-MarkdownCell .jp-RenderedHTMLCommon{color:var(--ink);font-size:1rem;line-height:1.6}.notebook-body .jp-MarkdownCell h1{font-family:var(--sans-display);letter-spacing:-.01em;margin:.6rem 0 1rem;font-size:1.65rem;font-weight:500}.notebook-body .jp-MarkdownCell h2{font-family:var(--sans-display);margin:1.4rem 0 .8rem;font-size:1.3rem;font-weight:500}.notebook-body .jp-MarkdownCell h3{margin:1rem 0 .5rem;font-size:1.05rem;font-weight:500}.notebook-body .jp-MarkdownCell .anchor-link{display:none}.notebook-body .jp-MarkdownCell p{color:var(--ink-soft);margin:.6rem 0}.notebook-body .jp-MarkdownCell code{background:var(--bg-elev);border:1px solid var(--rule-soft);border-radius:3px;padding:1px 5px}.notebook-body .jp-MarkdownCell ul,.notebook-body .jp-MarkdownCell ol{color:var(--ink-soft);margin:.6rem 0 .6rem 1.4rem}.notebook-body .jp-CodeCell .jp-InputArea{margin:.4rem 0}.notebook-body .jp-CodeCell .jp-InputArea-editor,.notebook-body .jp-CodeCell>.jp-Cell-inputWrapper>.jp-InputArea{position:relative}.notebook-body[data-language=python] .jp-CodeCell .jp-InputArea:after{content:"python"}.notebook-body[data-language=rust] .jp-CodeCell .jp-InputArea:after{content:"rust"}.notebook-body[data-language=julia] .jp-CodeCell .jp-InputArea:after{content:"julia"}.notebook-body[data-language] .jp-CodeCell .jp-InputArea:after{font-family:var(--mono);letter-spacing:.04em;color:var(--ink-faint);background:var(--bg);border:1px solid var(--rule-soft);pointer-events:none;z-index:1;border-radius:2px;padding:.05rem .4rem;font-size:.66rem;position:absolute;top:.5rem;right:.7rem}.notebook-body .jp-CodeCell .highlight,.notebook-body .jp-CodeCell pre{background:var(--bg-elev);border:1px solid var(--rule-soft);border-radius:4px;padding:.85rem 1rem;font-size:.84rem;line-height:1.55;overflow-x:auto}.notebook-body .jp-CodeCell pre{background:0 0;border:0;margin:0;padding:0}.notebook-body .highlight .k,.notebook-body .highlight .kn,.notebook-body .highlight .kc,.notebook-body .highlight .o{color:var(--syntax-keyword);font-weight:500}.notebook-body .highlight .s,.notebook-body .highlight .s1,.notebook-body .highlight .s2,.notebook-body .highlight .sa{color:var(--syntax-string)}.notebook-body .highlight .mi,.notebook-body .highlight .mf,.notebook-body .highlight .m{color:var(--syntax-number)}.notebook-body .highlight .c,.notebook-body .highlight .c1,.notebook-body .highlight .cm{color:var(--syntax-comment);font-style:italic}.notebook-body .highlight .nn,.notebook-body .highlight .nc,.notebook-body .highlight .nb,.notebook-body .highlight .nf{color:var(--syntax-ink)}.notebook-body .highlight .n,.notebook-body .highlight .p,.notebook-body .highlight .w{color:var(--syntax-soft)}.notebook-body .jp-OutputArea{margin:.4rem 0 0;padding-left:0}.notebook-body .jp-OutputArea-output{padding:.5rem 0}.notebook-body .jp-OutputArea pre{color:var(--ink-soft);white-space:pre-wrap;word-break:break-word;background:0 0;border:0;margin:0;padding:0;font-size:.84rem;line-height:1.55}.notebook-body .jp-OutputArea img{border:1px solid var(--rule-soft);background:#fff;border-radius:3px;max-width:100%;height:auto;margin:.6rem auto;display:block}html[data-theme=dark] .notebook-body .jp-OutputArea img{filter:brightness(.95)}.notebook-body .jp-Collapser,.notebook-body .jp-InputPrompt,.notebook-body .jp-OutputPrompt{display:none!important}.foot{padding:1.6rem var(--gutter) 2.2rem;border-top:1px solid var(--rule);color:var(--ink-faint);margin-top:5rem;font-size:.82rem}.foot-inner{flex-wrap:wrap;justify-content:space-between;gap:2rem;max-width:76rem;margin:0 auto;display:flex}.foot a{color:var(--ink-soft);border:0}.foot a:hover{color:var(--accent)}html{scroll-behavior:smooth;scroll-padding-top:4.5rem}.section-pager{border-top:1px solid var(--rule);grid-template-columns:1fr 1fr;gap:1.2rem;margin:3.6rem 0 0;padding-top:1.4rem;display:none}@media (width<=900px){.section-pager{display:grid}}.section-pager-link{color:var(--ink-soft);background:0 0;border:0;flex-direction:column;gap:.2rem;min-height:1px;padding:.6rem 0;text-decoration:none;transition:color .12s;display:inline-flex}.section-pager-link.section-pager-empty{visibility:hidden}.section-pager-prev{text-align:left}.section-pager-next{text-align:right;align-items:flex-end}.section-pager-dir{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);font-size:.7rem;transition:color .12s,transform .16s}.section-pager-label{font-family:var(--sans-display);letter-spacing:-.005em;color:var(--ink);font-size:1rem;font-weight:500}.section-pager-link:hover,.section-pager-link:hover .section-pager-dir,.section-pager-link:hover .section-pager-label{color:var(--accent)}.section-pager-prev:hover .section-pager-dir{transform:translate(-2px)}.section-pager-next:hover .section-pager-dir{transform:translate(2px)}@media (width<=540px){.section-pager{grid-template-columns:1fr;gap:.6rem}.section-pager-next{text-align:left;align-items:flex-start}.section-pager-link{padding:.4rem 0}}.back-to-top{z-index:20;background:color-mix(in srgb, var(--bg) 90%, transparent);width:40px;height:40px;color:var(--ink-soft);border:1px solid var(--rule);cursor:pointer;-webkit-backdrop-filter:blur(8px);opacity:1;border-radius:999px;justify-content:center;align-items:center;padding:0;transition:opacity .18s,transform .18s,color .12s,border-color .12s,background .12s;display:none;position:fixed;bottom:1.4rem;right:1.4rem;box-shadow:0 4px 14px -8px #0f0c2440}@media (width<=900px){.back-to-top{display:inline-flex}.back-to-top[hidden]{pointer-events:none;opacity:0;display:inline-flex;transform:translateY(6px)}}.back-to-top:hover{color:var(--accent);border-color:var(--accent)}.back-to-top:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.back-to-top svg{width:18px;height:18px;display:block}@media (width<=720px){.back-to-top{width:38px;height:38px;bottom:.9rem;right:.9rem}}details.side-nav{display:block}details.side-nav>summary{cursor:default;pointer-events:none;list-style:none;display:block}details.side-nav>summary::-webkit-details-marker{display:none}details.side-nav>summary::marker{content:""}.api-toc.side-nav>.api-toc-summary{font-family:var(--mono);color:var(--ink-faint);letter-spacing:.08em;text-transform:uppercase;cursor:default;pointer-events:none;margin:.2em 0 1rem;font-size:.72rem;list-style:none}.api-toc.side-nav>.api-toc-summary::-webkit-details-marker{display:none}.api-toc.side-nav>.api-toc-summary::marker{content:""}@media (width<=980px){.api-toc.side-nav>.api-toc-summary{pointer-events:auto;cursor:pointer}}@media (width<=900px){details.side-nav>summary{cursor:pointer;pointer-events:auto}details.side-nav>summary:after{content:"▾";float:right;color:var(--ink-faint);margin-left:.4em;font-size:.85em;transition:transform .16s}details.side-nav[open]>summary:after{transform:rotate(180deg)}details.side-nav>summary:hover{color:var(--ink)}details.side-nav>summary{margin:0;padding:.55rem 0}details.side-nav:not([open]){padding-bottom:.4rem!important}details.page-toc--right.side-nav{display:none}}.nav-toggle{appearance:none;border:1px solid var(--rule);cursor:pointer;width:38px;height:34px;color:var(--ink);background:0 0;border-radius:6px;justify-content:center;align-items:center;padding:0;transition:border-color .12s,background .12s;display:none}.nav-toggle:hover{border-color:var(--accent);color:var(--accent)}.nav-toggle-bars,.nav-toggle-bars:before,.nav-toggle-bars:after{background:currentColor;border-radius:1px;width:18px;height:1.5px;transition:transform .18s,opacity .12s;display:block}.nav-toggle-bars{position:relative}.nav-toggle-bars:before,.nav-toggle-bars:after{content:"";position:absolute;left:0}.nav-toggle-bars:before{top:-6px}.nav-toggle-bars:after{top:6px}.nav-toggle[aria-expanded=true] .nav-toggle-bars{background:0 0}.nav-toggle[aria-expanded=true] .nav-toggle-bars:before{transform:translateY(6px)rotate(45deg)}.nav-toggle[aria-expanded=true] .nav-toggle-bars:after{transform:translateY(-6px)rotate(-45deg)}@media (width<=720px){.masthead-inner{padding:.7rem var(--gutter);gap:.8rem}.brand .brand-sub{display:none}.nav-toggle{display:inline-flex}.nav-links{background:var(--bg);border-bottom:1px solid var(--rule);padding:.4rem var(--gutter) .9rem;visibility:hidden;flex-direction:column;align-items:stretch;gap:0;max-height:0;font-size:1rem;transition:max-height .22s,padding .22s,visibility 0s linear .22s;position:absolute;top:100%;left:0;right:0;overflow:hidden}.nav-links[data-open]{visibility:visible;max-height:calc(100vh - 4rem);transition:max-height .22s,padding .22s,visibility;overflow-y:auto}.nav-links a{border-bottom:1px solid var(--rule-soft);padding:.65rem 0}.nav-links a:last-of-type{border-bottom:0}.nav-links a[aria-current=page]{color:var(--accent);border-bottom-color:var(--rule-soft)}.nav-links .theme-toggle{align-self:flex-start;margin:.6rem 0 0}html{font-size:16px}h1{font-size:clamp(2rem,7.5vw,2.6rem)}h2{margin:2em 0 .5em;font-size:1.32rem}h3{margin:1.5em 0 .4em;font-size:1.02rem}p.lede{font-size:1.06rem}.shell{padding:2.4rem var(--gutter) 3.4rem}.titleblock{margin-bottom:1.8rem;padding-bottom:1.1rem}.titleblock .meta{gap:.6rem 1.4rem;margin-top:1rem}.titleblock .byline{font-size:1rem}pre{margin-left:calc(-1 * var(--gutter) * .4);margin-right:calc(-1 * var(--gutter) * .4);border-left-width:2px;border-radius:3px;padding:.85rem .9rem;font-size:.8rem}figure.example pre{margin-left:0;margin-right:0}.copy-btn{padding:2px 6px;font-size:.62rem}}@media (width<=480px){h1{letter-spacing:-.02em;font-size:clamp(1.8rem,8.5vw,2.3rem)}.titleblock .meta{font-size:.72rem}}@media (width<=720px){.hero{padding:2.6rem var(--gutter) 2.8rem;gap:2rem}.hero-text h1{margin-bottom:1rem;font-size:clamp(2.4rem,11vw,3rem)}.hero-text .byline{margin-bottom:1.6rem;font-size:1.02rem}.hero-text .meta{gap:.6rem 1.4rem;margin-bottom:1.6rem;padding-top:.9rem}.hero-cta{gap:.9rem 1.6rem}.hero-code{padding:.8rem .85rem}.hero-code pre{font-size:.78rem}.hero-code figcaption{flex-wrap:wrap;gap:.3rem .8rem}.atom-cloud{opacity:.55}.shell.home{padding-top:2.4rem;padding-bottom:3rem}.shell.home .triptych{gap:1.6rem;margin:2.4rem 0 2.8rem}.qs-hero{padding:2rem var(--gutter) 1.8rem}.qs-hero h1{font-size:clamp(1.8rem,7vw,2.4rem)}.qs-hero .audience{font-size:.98rem}.qs-crosslink{padding:1rem 1.1rem}.api-shell{padding:2rem var(--gutter) 4rem}.api-item{padding:.8rem .9rem .85rem}.api-item .path{width:100%;margin-left:0}}@media (width<=540px){.foot-inner{flex-direction:column;gap:.4rem}.foot{padding:1.2rem var(--gutter) 1.6rem;font-size:.78rem}}@media (width<=720px){.theme-toggle{padding:3px}.theme-toggle button{width:34px;height:30px}.theme-toggle button svg{width:16px;height:16px}}@media print{.masthead,.foot,.api-toc{display:none}body{background:#fff}}
