:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#fbfaf6;--paper-raised:#fff;--paper-sunken:#f3f1ea;--paper-inset:#ece9e0;--ink:#12141a;--ink-2:#343842;--ink-3:#5d6270;--ink-4:#878c99;--line:#ddd9cf;--line-soft:#e8e5dc;--line-strong:#c4bfb2;--accent:#cf4520;--accent-hot:#b23a19;--accent-soft:#fbe9e2;--accent-line:#f0bfae;--on-accent:#fff;--good:#1f7a52;--good-soft:#e4f3eb;--warn:#8a5a00;--warn-soft:#fbf0d8;--bad:#b02334;--bad-soft:#fbe6e8;--info:#245f9e;--info-soft:#e5eff9;--ly-kernel:#6a58cf;--ly-hal:#3f79c9;--ly-native:#2287ad;--ly-runtime:#1d9673;--ly-framework:#a8860c;--ly-system:#cf6a26;--ly-apps:#cf4459;--ly-kernel-soft:#ece9fb;--ly-hal-soft:#e6eefb;--ly-native-soft:#e2f1f6;--ly-runtime-soft:#e2f4ee;--ly-framework-soft:#f7f1dc;--ly-system-soft:#fbecdf;--ly-apps-soft:#fbe8ec;--on-ly-framework:#fff;--on-ly:#fff;--font-sans:var(--font-plex-sans), ui-sans-serif, system-ui, sans-serif;--font-serif:var(--font-source-serif), ui-serif, Georgia, serif;--font-mono:var(--font-plex-mono), ui-monospace, "SF Mono", Menlo, monospace;--fs-micro:.6875rem;--fs-xs:.8125rem;--fs-sm:.9063rem;--fs-base:clamp(1.0625rem, .55vw + .95rem, 1.1875rem);--fs-lg:clamp(1.15rem, .7vw + 1.02rem, 1.375rem);--fs-h4:clamp(1.0831rem, .4vw + 1rem, 1.22rem);--fs-h3:clamp(1.32rem, .9vw + 1.1rem, 1.72rem);--fs-h2:clamp(1.62rem, 1.6vw + 1.18rem, 2.35rem);--fs-h1:clamp(2.05rem, 3.2vw + 1.25rem, 3.55rem);--fs-display:clamp(2.6rem, 6vw + 1rem, 5.6rem);--lh-tight:1.08;--lh-snug:1.22;--lh-body:1.68;--lh-loose:1.78;--tracking-display:-.035em;--tracking-heading:-.02em;--tracking-label:.09em;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;--sp-8:64px;--sp-9:96px;--radius-xs:3px;--radius-sm:5px;--radius:9px;--radius-lg:14px;--radius-pill:999px;--measure:68ch;--measure-wide:82ch;--sidebar-w:286px;--toc-w:244px;--header-h:58px;--shadow-sm:0 1px 2px #12141a0f, 0 1px 1px #12141a0a;--shadow:0 2px 6px #12141a12, 0 8px 24px -12px #12141a29;--shadow-lg:0 4px 12px #12141a14, 0 24px 48px -20px #12141a47;--z-base:0;--z-sticky:20;--z-header:40;--z-drawer:60;--z-popover:80;--z-modal:100;--grid-ink:#12141a0e;--grid-ink-strong:#12141a17;--dot-ink:#12141a24;--viz-bg:#fff;--viz-grid:#12141a0f;--viz-axis:#b9b4a7;--viz-label:#5d6270;--viz-node:#fff;--viz-node-stroke:#c4bfb2;--viz-flow:#cf4520;--viz-flow-alt:#245f9e;--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--dur-1:.12s;--dur-2:.22s;--dur-3:.42s}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--paper:#0b0d11;--paper-raised:#12151c;--paper-sunken:#08090c;--paper-inset:#171b24;--ink:#ecebe5;--ink-2:#c9cbd3;--ink-3:#969ba8;--ink-4:#6c727f;--line:#262b35;--line-soft:#1c2129;--line-strong:#3a404d;--accent:#ff7a52;--accent-hot:#ff946f;--accent-soft:#2a1813;--accent-line:#5c3427;--on-accent:#1a0d08;--good:#4ec99a;--good-soft:#10241c;--warn:#e0b054;--warn-soft:#26200f;--bad:#ff8090;--bad-soft:#2a1318;--info:#79b0f0;--info-soft:#101d2c;--ly-kernel:#a595ff;--ly-hal:#7fb0f5;--ly-native:#62c2e0;--ly-runtime:#4fd0a6;--ly-framework:#e3c464;--ly-system:#ffa06a;--ly-apps:#ff8ba0;--ly-kernel-soft:#1b1830;--ly-hal-soft:#121c2e;--ly-native-soft:#0e2028;--ly-runtime-soft:#0e2320;--ly-framework-soft:#221d0e;--ly-system-soft:#241609;--ly-apps-soft:#240f16;--on-ly-framework:#1a1503;--on-ly:#0b0d11;--shadow-sm:0 1px 2px #00000080;--shadow:0 2px 6px #00000073, 0 12px 32px -14px #000000bf;--shadow-lg:0 8px 32px #0009;--grid-ink:#ecebe50d;--grid-ink-strong:#ecebe516;--dot-ink:#ecebe529;--viz-bg:#0f1218;--viz-grid:#ecebe50e;--viz-axis:#3a404d;--viz-label:#969ba8;--viz-node:#161a22;--viz-node-stroke:#3a404d;--viz-flow:#ff7a52;--viz-flow-alt:#79b0f0}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--paper:#0b0d11;--paper-raised:#12151c;--paper-sunken:#08090c;--paper-inset:#171b24;--ink:#ecebe5;--ink-2:#c9cbd3;--ink-3:#969ba8;--ink-4:#6c727f;--line:#262b35;--line-soft:#1c2129;--line-strong:#3a404d;--accent:#ff7a52;--accent-hot:#ff946f;--accent-soft:#2a1813;--accent-line:#5c3427;--on-accent:#1a0d08;--good:#4ec99a;--good-soft:#10241c;--warn:#e0b054;--warn-soft:#26200f;--bad:#ff8090;--bad-soft:#2a1318;--info:#79b0f0;--info-soft:#101d2c;--ly-kernel:#a595ff;--ly-hal:#7fb0f5;--ly-native:#62c2e0;--ly-runtime:#4fd0a6;--ly-framework:#e3c464;--ly-system:#ffa06a;--ly-apps:#ff8ba0;--ly-kernel-soft:#1b1830;--ly-hal-soft:#121c2e;--ly-native-soft:#0e2028;--ly-runtime-soft:#0e2320;--ly-framework-soft:#221d0e;--ly-system-soft:#241609;--ly-apps-soft:#240f16;--on-ly-framework:#1a1503;--on-ly:#0b0d11;--shadow-sm:0 1px 2px #00000080;--shadow:0 2px 6px #00000073, 0 12px 32px -14px #000000bf;--shadow-lg:0 8px 32px #0009;--grid-ink:#ecebe50d;--grid-ink-strong:#ecebe516;--dot-ink:#ecebe529;--viz-bg:#0f1218;--viz-grid:#ecebe50e;--viz-axis:#3a404d;--viz-label:#969ba8;--viz-node:#161a22;--viz-node-stroke:#3a404d;--viz-flow:#ff7a52;--viz-flow-alt:#79b0f0}}
*,:before,:after{box-sizing:border-box}*{margin:0}html{-moz-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 24px)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--paper);color:var(--ink);font-family:var(--font-serif);font-size:var(--fs-base);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"kern" 1, "liga" 1;text-rendering:optimizelegibility;min-height:100dvh;overflow-x:hidden}img,picture,video,canvas,svg{max-width:100%;display:block}input,button,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none}p,h1,h2,h3,h4,h5,h6{overflow-wrap:break-word}ul[role=list],ol[role=list]{padding:0;list-style:none}a{color:inherit;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:.18em;transition:color var(--dur-1) ease, text-decoration-color var(--dur-1) ease;text-decoration-thickness:1px}::selection{background:var(--accent);color:var(--on-accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}hr{border:none;border-top:1px solid var(--line);margin:var(--sp-6) 0}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{top:-100px;left:var(--sp-4);z-index:var(--z-modal);background:var(--ink);color:var(--paper);padding:var(--sp-2) var(--sp-4);border-radius:var(--radius-sm);font-family:var(--font-sans);font-size:var(--fs-sm);position:absolute}.skip-link:focus{top:var(--sp-2)}.prose{max-width:var(--measure);font-size:var(--fs-base);line-height:var(--lh-body);color:var(--ink-2)}.prose>*+*{margin-top:1.15em}.prose h2,.prose h3,.prose h4{font-family:var(--font-sans);color:var(--ink);letter-spacing:var(--tracking-heading);line-height:var(--lh-snug);scroll-margin-top:calc(var(--header-h) + 28px);text-wrap:balance}.prose h2{font-size:var(--fs-h2);border-top:1px solid var(--line);margin-top:2.6em;padding-top:.75em;font-weight:600;position:relative}.prose h2:first-child{border-top:none;margin-top:0;padding-top:0}.prose h3{font-size:var(--fs-h3);margin-top:2em;font-weight:600}.prose h4{font-size:var(--fs-h4);text-transform:none;margin-top:1.8em;font-weight:650}.prose p{text-wrap:pretty}.prose a{color:var(--ink);-webkit-text-decoration-color:var(--accent-line);text-decoration-color:var(--accent-line);box-shadow:inset 0 -.35em 0 var(--accent-soft);text-decoration-line:underline}.prose a:hover{color:var(--accent-hot);-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent)}.prose strong{color:var(--ink);font-weight:650}.prose em{font-style:italic}.prose ul,.prose ol{padding-left:1.35em}.prose li{margin-top:.4em;padding-left:.2em}.prose li::marker{color:var(--ink-4)}.prose ol>li::marker{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:.85em}.prose ul>li::marker{content:"— ";color:var(--accent)}.prose blockquote{border-left:3px solid var(--accent-line);color:var(--ink-3);margin-left:0;padding:.1em 0 .1em 1.15em;font-style:italic}.prose blockquote p+p{margin-top:.8em}.prose code:not(pre code){font-family:var(--font-mono);background:var(--paper-inset);border:1px solid var(--line-soft);border-radius:var(--radius-xs);color:var(--ink);overflow-wrap:break-word;padding:.12em .36em;font-size:.855em}.prose pre{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-4) var(--sp-5);box-shadow:var(--shadow-sm);font-size:.84rem;line-height:1.7;position:relative;overflow-x:auto}.prose pre code{font-family:var(--font-mono);font-size:inherit;background:0 0;border:none;min-width:max-content;padding:0;display:block}.prose :is(h2,h3,h4)+*{margin-top:.7em}.prose table,.table-scroll table{border-collapse:collapse;width:100%;font-family:var(--font-sans);font-size:var(--fs-sm);font-variant-numeric:tabular-nums;line-height:1.5}.table-scroll{border:1px solid var(--line);border-radius:var(--radius);margin-block:var(--sp-5);background:var(--paper-raised);-webkit-overflow-scrolling:touch;overflow-x:auto}.prose table{max-width:100%;display:block;overflow-x:auto}.prose th,.prose td{text-align:left;padding:var(--sp-3) var(--sp-4);border-bottom:1px solid var(--line-soft);vertical-align:top}.prose thead th{font-size:var(--fs-micro);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--ink-3);background:var(--paper-sunken);border-bottom:1px solid var(--line);white-space:nowrap;font-weight:600}.prose tbody tr:last-child td{border-bottom:none}.prose tbody tr:hover{background:var(--paper-sunken)}.prose td code{white-space:nowrap}.heading-anchor{color:var(--line-strong);opacity:0;transition:opacity var(--dur-1) ease, color var(--dur-1) ease;padding-left:.3em;font-weight:400;text-decoration:none;box-shadow:none!important}.prose :is(h2,h3,h4):hover .heading-anchor,.heading-anchor:focus-visible{opacity:1}.heading-anchor:hover{color:var(--accent)!important}.code-block{position:relative}.code-block:hover .code-copy,.code-copy:focus-visible{opacity:1}.code-copy{top:var(--sp-2);right:var(--sp-2);opacity:0;font-family:var(--font-sans);font-size:var(--fs-micro);letter-spacing:var(--tracking-label);text-transform:uppercase;border-radius:var(--radius-xs);background:var(--paper-inset);border:1px solid var(--line);color:var(--ink-3);transition:opacity var(--dur-1) ease, color var(--dur-1) ease;z-index:2;padding:5px 9px;position:absolute}.code-copy:hover{color:var(--ink);border-color:var(--line-strong)}.code-copy[data-copied=true]{color:var(--good);border-color:var(--good)}@media (hover:none){.code-copy{opacity:1}}[data-rehype-pretty-code-figure]{margin-block:var(--sp-5)}[data-rehype-pretty-code-figure] pre{padding:var(--sp-4) 0}[data-rehype-pretty-code-figure] code{counter-reset:line;display:grid}[data-rehype-pretty-code-figure] [data-line]{padding-inline:var(--sp-5);border-left:2px solid #0000}[data-rehype-pretty-code-figure] [data-highlighted-line]{background:var(--accent-soft);border-left-color:var(--accent)}[data-rehype-pretty-code-figure] [data-highlighted-chars]{background:var(--accent-soft);border-radius:3px;padding:1px 3px}[data-rehype-pretty-code-title]{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.04em;color:var(--ink-3);background:var(--paper-sunken);border:1px solid var(--line);border-radius:var(--radius) var(--radius) 0 0;padding:var(--sp-2) var(--sp-4);border-bottom:none;margin-bottom:0}[data-rehype-pretty-code-title]+pre{border-top-left-radius:0;border-top-right-radius:0;margin-top:0}[data-theme=dark] .shiki,[data-theme=dark] .shiki span{color:var(--shiki-dark)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;-webkit-text-decoration:var(--shiki-dark-text-decoration)!important;text-decoration:var(--shiki-dark-text-decoration)!important;background-color:#0000!important}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .shiki,:root:not([data-theme=light]) .shiki span{color:var(--shiki-dark)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;-webkit-text-decoration:var(--shiki-dark-text-decoration)!important;text-decoration:var(--shiki-dark-text-decoration)!important;background-color:#0000!important}}.shiki,.shiki span{background-color:#0000!important}.container{width:100%;max-width:1240px;padding-inline:var(--sp-5);margin-inline:auto}.eyebrow{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--tracking-label);text-transform:uppercase;color:var(--accent);align-items:center;gap:.6em;font-weight:600;display:flex}.eyebrow:after{content:"";background:var(--line);flex:1;max-width:120px;height:1px}.rule{border-top:1px solid var(--line)}.btn{font-family:var(--font-sans);font-size:var(--fs-sm);border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--paper-raised);color:var(--ink);cursor:pointer;transition:background var(--dur-1) ease, border-color var(--dur-1) ease, transform var(--dur-1) ease, color var(--dur-1) ease;justify-content:center;align-items:center;gap:.55em;min-height:40px;padding:.62em 1.1em;font-weight:550;line-height:1.3;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--ink-3);background:var(--paper-sunken)}.btn:active{transform:translateY(1px)}.btn--primary{background:var(--ink);border-color:var(--ink);color:var(--paper)}.btn--primary:hover{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn--ghost{background:0 0;border-color:#0000}.btn--sm{font-size:var(--fs-xs);min-height:32px;padding:.42em .8em}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--line-strong);border:3px solid var(--paper);border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--ink-4)}@media print{:root{--paper:#fff;--ink:#000;--ink-2:#111;--ink-3:#333;--line:#ccc}body{color:#000;background:#fff;font-size:10.5pt;line-height:1.5}.no-print,header,nav,footer,.sidebar,.toc,.viz-controls,.reading-progress{display:none!important}.prose{max-width:none}.prose h2{break-after:avoid}.prose pre,.prose table,figure{break-inside:avoid}a{color:#000;text-decoration:none}a[href^=http]:after{content:" (" attr(href) ")";color:#555;word-break:break-all;font-size:8pt}@page{margin:16mm}}
