@font-face{font-family:IBM Plex Serif;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-serif-latin-500-normal.REKAfBVG.woff2)format("woff2"),url(/_astro/ibm-plex-serif-latin-500-normal.C3_OdgN3.woff)format("woff")}@font-face{font-family:IBM Plex Serif;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-serif-latin-600-normal.DAxitmSu.woff2)format("woff2"),url(/_astro/ibm-plex-serif-latin-600-normal.D3rpGdkS.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-latin-400-normal.CDDApCn2.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-400-normal.CYLoc0-x.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:italic;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-sans-latin-400-italic.CZTNEAuW.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-400-italic.CsGl1sm0.woff)format("woff")}@font-face{font-family:IBM Plex Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/ibm-plex-sans-latin-600-normal.CuJfVYMP.woff2)format("woff2"),url(/_astro/ibm-plex-sans-latin-600-normal.Cu4Hd6ag.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/ibm-plex-mono-latin-500-normal.DSY6xOcd.woff2)format("woff2"),url(/_astro/ibm-plex-mono-latin-500-normal.CB9ihrfo.woff)format("woff")}:root{--font-serif:"IBM Plex Serif", Georgia, "Times New Roman", serif;--font-sans:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;--paper:#fbfaf6;--ink:#1c2526;--muted:#5a6668;--rule:#e3e0d6;--accent:#0f6b6b;--amber:#a85a06;--code-bg:#f2f0e8;--surface:#fff;--try-bg:#fbf0df;--check-bg:#e5f0ee;--lead-bg:#f1efe6;--focus:#0f6b6b;--on-accent:#fff;color-scheme:light;--measure:66ch;--radius:6px;--tree-w:280px;--toc-w:220px}:root[data-theme=dark]{--paper:#14191a;--ink:#e8e6df;--muted:#a3adae;--rule:#2b3536;--accent:#5ec4c0;--amber:#e6a85a;--code-bg:#1d2425;--surface:#192021;--try-bg:#2a2217;--check-bg:#16292a;--lead-bg:#1b2223;--focus:#5ec4c0;--on-accent:#0b1213;color-scheme:dark}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--paper:#14191a;--ink:#e8e6df;--muted:#a3adae;--rule:#2b3536;--accent:#5ec4c0;--amber:#e6a85a;--code-bg:#1d2425;--surface:#192021;--try-bg:#2a2217;--check-bg:#16292a;--lead-bg:#1b2223;--focus:#5ec4c0;--on-accent:#0b1213;color-scheme:dark}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-padding-top:4.5rem}body{background:var(--paper);color:var(--ink);font-family:var(--font-sans);overflow-wrap:break-word;margin:0;font-size:1.0625rem;line-height:1.65}img,svg{max-width:100%;height:auto}a{color:var(--accent);text-underline-offset:.18em}a:hover{text-decoration-thickness:2px}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:2px}h1,h2,h3,h4{font-family:var(--font-serif);margin:2em 0 .5em;font-weight:600;line-height:1.25}h1{margin-top:.3em;font-size:2.1rem}h2{border-top:1px solid var(--rule);padding-top:.3em;font-size:1.5rem}h3{font-size:1.2rem}p,ul,ol{margin:0 0 1em}li{margin-bottom:.25em}hr{border:0;border-top:1px solid var(--rule);margin:2rem 0}code,pre,kbd{font-family:var(--font-mono);font-size:.9em}.skip-link{z-index:100;background:var(--accent);color:var(--on-accent);border-radius:var(--radius);padding:.5rem 1rem;position:absolute;top:.5rem;left:-999px}.skip-link:focus{left:.5rem}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.site-header{border-bottom:1px solid var(--rule);background:var(--paper);z-index:20;position:sticky;top:0}.site-header .inner{flex-wrap:wrap;align-items:center;gap:1.25rem;max-width:1400px;margin:0 auto;padding:.6rem 1.25rem;display:flex}.brand{font-family:var(--font-serif);color:var(--ink);margin-right:auto;font-size:1.15rem;font-weight:600;text-decoration:none}.brand span{color:var(--accent)}.site-nav{flex-wrap:wrap;gap:1rem;font-size:.95rem;display:flex}.site-nav a{color:var(--ink);border-bottom:2px solid #0000;padding:.2rem 0;text-decoration:none}.site-nav a:hover,.site-nav a[aria-current]{border-bottom-color:var(--accent)}.theme-toggle{font:inherit;color:var(--ink);border:1px solid var(--rule);border-radius:var(--radius);cursor:pointer;background:0 0;padding:.25rem .7rem;font-size:.9rem}.theme-toggle:hover{border-color:var(--accent)}html:not(.js) .theme-toggle,.nav-menu{display:none}@media (width<=599px){.site-header .inner{flex-wrap:nowrap;gap:.75rem;padding:.5rem 1rem}.site-header .inner>.site-nav,.site-header .inner>.theme-toggle{display:none}.nav-menu{display:block}.brand{line-height:44px;display:inline-block}.nav-menu summary{cursor:pointer;border:1px solid var(--rule);border-radius:var(--radius);min-width:44px;min-height:44px;color:var(--ink);align-items:center;padding:0 .9rem;font-size:.95rem;list-style:none;display:flex}.nav-menu summary::-webkit-details-marker{display:none}.nav-menu summary:after{content:"▾";margin-left:.4rem}.nav-menu[open] summary{border-color:var(--accent)}.nav-menu[open] summary:after{content:"▴"}.nav-panel{background:var(--paper);border-bottom:1px solid var(--rule);flex-direction:column;padding:.25rem 1rem .75rem;display:flex;position:absolute;top:100%;left:0;right:0;box-shadow:0 8px 16px #0000001f}.nav-panel a{min-height:44px;color:var(--ink);border-bottom:1px solid var(--rule);align-items:center;font-size:1rem;text-decoration:none;display:flex}.nav-panel a[aria-current]{color:var(--accent);font-weight:600}.nav-panel .theme-toggle{align-self:flex-start;min-height:44px;margin-top:.5rem;padding:0 1rem}}.site-footer{border-top:1px solid var(--rule);color:var(--muted);margin-top:4rem;padding:2rem 1.25rem;font-size:.92rem}.site-footer .inner{gap:.75rem;max-width:1400px;margin:0 auto;display:grid}.site-footer nav{flex-wrap:wrap;gap:1rem;display:flex}.site-footer a{color:var(--muted)}.site-footer p{max-width:80ch;margin:0}.page{max-width:1100px;margin:0 auto;padding:2rem 1.25rem}.page-narrow{max-width:72ch}.eyebrow{font-family:var(--font-sans);color:var(--muted);margin:0;font-size:.9rem;font-weight:600}.lede{color:var(--ink);max-width:60ch;font-size:1.2rem}.edu-note{border-left:4px solid var(--amber);background:var(--try-bg);border-radius:0 var(--radius) var(--radius) 0;max-width:72ch;padding:.75rem 1rem}.btn{background:var(--accent);color:var(--on-accent);border-radius:var(--radius);font:inherit;cursor:pointer;border:0;padding:.6rem 1.1rem;font-weight:600;text-decoration:none;display:inline-block}.btn:hover{filter:brightness(1.08)}.btn-quiet{color:var(--accent);border:1px solid var(--accent);background:0 0}.card-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,22rem),1fr));gap:1.25rem;margin:1.5rem 0;display:grid}.card{border:1px solid var(--rule);background:var(--surface);border-radius:var(--radius);padding:1.25rem}.card h2,.card h3{border:0;margin-top:0;padding:0}.meta-list{grid-template-columns:max-content 1fr;gap:.35rem 1rem;margin:1rem 0;display:grid}.meta-list dt{color:var(--muted);font-size:.9rem}.meta-list dd{margin:0}@media (width<=520px){.meta-list{grid-template-columns:1fr}.meta-list dd{margin-bottom:.5rem}}.part-block{margin:2rem 0}.part-block h3{margin:0 0 .5rem}.chapter-list{border-top:1px solid var(--rule);margin:0;padding:0;list-style:none}.chapter-list li{border-bottom:1px solid var(--rule);margin:0}.chapter-list a{color:var(--ink);flex-wrap:wrap;align-items:baseline;gap:.75rem;padding:.55rem .25rem;text-decoration:none;display:flex}.chapter-list a:hover .t{text-decoration:underline}.chapter-list .num{color:var(--muted);font-variant-numeric:tabular-nums;min-width:2.2rem;font-size:.9rem}.chapter-list .t{flex:1;min-width:12rem}.chapter-list .rt{color:var(--muted);white-space:nowrap;font-size:.85rem}.tag{border:1px solid var(--rule);color:var(--muted);border-radius:99px;padding:.05rem .5rem;font-size:.82rem;display:inline-block}.tag-hands-on{color:var(--amber);border-color:var(--amber)}.progress-box{display:none}html.js .progress-box{border:1px solid var(--rule);border-radius:var(--radius);max-width:40rem;margin:1.25rem 0;padding:.75rem 1rem;display:block}.progress-bar{background:var(--rule);border-radius:99px;height:.5rem;margin-top:.4rem;overflow:hidden}.progress-bar>span{background:var(--accent);width:0;height:100%;display:block}.reader{grid-template-columns:var(--tree-w) minmax(0, 1fr) var(--toc-w);align-items:start;gap:2rem;max-width:1400px;margin:0 auto;padding:1.5rem 1.25rem;display:grid}.tree,.toc-wrap{max-height:calc(100vh - 5.5rem);font-size:.92rem;line-height:1.4;position:sticky;top:4.5rem;overflow-y:auto}.tree h2,.toc h2{font-family:var(--font-sans);color:var(--muted);border:0;margin:0 0 .5rem;padding:0;font-size:.9rem}.tree details{margin-bottom:.4rem}.tree summary{cursor:pointer;padding:.25rem 0;font-weight:600}.tree ol{margin:0 0 .5rem;padding:0 0 0 .25rem;list-style:none}.tree li{margin:0}.tree li a{border-left:2px solid var(--rule);color:var(--ink);padding:.22rem .5rem;text-decoration:none;display:block}.tree li a:hover{background:var(--code-bg)}.tree li a[aria-current=page]{border-left-color:var(--accent);color:var(--accent);background:var(--code-bg);font-weight:600}.tree li a.is-done:after,.chapter-list a.is-done .t:after{content:" ✓";color:var(--accent)}.toc ol{border-left:1px solid var(--rule);margin:0;padding:0;list-style:none}.toc li{margin:0}.toc a{color:var(--muted);padding:.2rem .75rem;text-decoration:none;display:block}.toc a:hover{color:var(--accent)}.toc li.d3 a{padding-left:1.5rem}.drawer,.toc-inline{border:1px solid var(--rule);border-radius:var(--radius);background:var(--surface);margin-bottom:1.25rem;padding:.5rem .9rem;display:none}.drawer summary,.toc-inline summary{cursor:pointer;font-weight:600}@media (pointer:coarse),(width<=599px){.drawer summary,.toc-inline summary{min-height:44px;padding:.5rem 0}.drawer li a{align-items:center;min-height:44px;display:flex}.code-wrap .copy-btn{min-width:44px;min-height:44px;padding:.15rem .9rem;font-size:.9rem}}.toc-inline ol{margin:.5rem 0 0;padding-left:1.2rem}.drawer .tree-inner{max-height:60vh;margin-top:.5rem;overflow-y:auto}.ad-reserve{min-height:0;margin-top:1.5rem}.article{min-width:0;max-width:var(--measure)}.article-header .eyebrow{margin-bottom:.25rem}.article-header .eyebrow.chapter-id{flex-wrap:wrap;gap:0 1rem;display:flex}.article-header h1{margin:0 0 .5rem}.article-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1.5rem;font-size:.9rem;display:flex}.article-footer{border-top:1px solid var(--rule);margin-top:3rem;padding-top:1.25rem}.complete-row{margin-bottom:1.25rem;display:none}html.js .complete-row{display:block}.complete-row .btn[aria-pressed=true]{color:var(--accent);border:2px solid var(--accent);background:0 0}.prevnext{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.prevnext a{border:1px solid var(--rule);border-radius:var(--radius);color:var(--ink);background:var(--surface);padding:.75rem 1rem;text-decoration:none;display:block}.prevnext a:hover{border-color:var(--accent)}.prevnext small{color:var(--muted);display:block}.prevnext .next{text-align:right;grid-column:2}.prevnext .prev{grid-column:1}@media (width<=1239px){.reader{grid-template-columns:var(--tree-w) minmax(0, 1fr)}.toc{display:none}.toc-inline{display:block}}@media (width<=979px){.reader{grid-template-columns:minmax(0,1fr);padding-top:1rem}.tree{display:none}.drawer{display:block}h1{font-size:1.7rem}.prevnext{grid-template-columns:1fr}.prevnext .next,.prevnext .prev{text-align:left;grid-column:1}}.prose>:first-child{margin-top:0}.prose h2{margin-top:2.2em}.prose blockquote{border-left:4px solid var(--rule);background:var(--lead-bg);border-radius:0 var(--radius) var(--radius) 0;margin:1rem 0;padding:.25rem 1rem}.prose blockquote p:last-child{margin-bottom:0}.prose :not(pre)>code{background:var(--code-bg);overflow-wrap:anywhere;border-radius:4px;padding:.1em .35em}.prose img{border-radius:4px;margin:0 auto;display:block}.prose figure{margin:1.5rem 0}.prose figcaption{color:var(--muted);margin-top:.5rem;font-size:.9rem}.prose .fig-img{margin:0}.prose sup a,.prose a[data-footnote-ref]{text-decoration:none}.prose section[data-footnotes]{border-top:1px solid var(--rule);margin-top:2rem;font-size:.92rem}.prose section[data-footnotes] h2{border:0;font-size:1rem}.prose .katex-display{padding:.25rem 0;overflow:auto hidden}pre{background:var(--code-bg);border:1px solid var(--rule);border-radius:var(--radius);tab-size:2;max-width:100%;margin:1rem 0;padding:.85rem 1rem;line-height:1.5;overflow-x:auto}pre code{white-space:pre;overflow-wrap:normal;background:0 0;padding:0;font-size:1em}@media (width<=599px){pre{font-size:.85em}}.astro-code,.astro-code span{color:var(--shiki-light)}:root[data-theme=dark] .astro-code,:root[data-theme=dark] .astro-code span{color:var(--shiki-dark)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .astro-code,:root:not([data-theme=light]) .astro-code span{color:var(--shiki-dark)}}pre.astro-code{background:var(--code-bg)!important}.astro-code span[style*="--shiki-light:#66707b" i]{color:var(--muted)}.code-wrap{border:1px solid var(--rule);border-radius:var(--radius);background:var(--code-bg);flex-direction:column;margin:1rem 0;display:flex}.code-wrap pre{border:0;border-top:1px solid var(--rule);border-radius:0 0 var(--radius) var(--radius);order:1;margin:0;background-color:var(--code-bg)!important;background-image:linear-gradient(to right, var(--code-bg) 30%, transparent), linear-gradient(to left, var(--code-bg) 30%, transparent), linear-gradient(to right, color-mix(in srgb, var(--ink) 32%, transparent), transparent), linear-gradient(to left, color-mix(in srgb, var(--ink) 32%, transparent), transparent)!important;background-position:0,100%,0,100%!important;background-repeat:no-repeat!important;background-size:28px 100%,28px 100%,12px 100%,12px 100%!important;background-attachment:local,local,scroll,scroll!important}.copy-btn{font:inherit;cursor:pointer;background:var(--paper);color:var(--ink);border:1px solid var(--rule);border-radius:4px;order:0;align-self:flex-end;min-height:1.9rem;margin:.3rem .4rem;padding:.15rem .7rem;font-size:.82rem}.copy-btn:hover{border-color:var(--accent)}.r-output{border:1px solid var(--rule);border-left:4px solid var(--muted);border-radius:var(--radius);background:var(--surface);margin:0 0 1.25rem}.r-output .out-label{color:var(--muted);font-size:.82rem;font-family:var(--font-sans);border-bottom:1px solid var(--rule);margin:0;padding:.2rem .75rem;font-weight:600}.r-output pre{border-radius:0 0 var(--radius) 0;border:0;margin:0;background:0 0!important}.lead{background:var(--lead-bg);border-left:4px solid var(--accent);border-radius:0 var(--radius) var(--radius) 0;margin:0 0 1.75rem;padding:.9rem 1.1rem}.lead p{font-family:var(--font-serif);margin:0;font-size:1.15rem}.lead .lead-label{font-family:var(--font-sans);color:var(--accent);margin-bottom:.25rem;font-size:.85rem;font-weight:700}.panel{border-radius:var(--radius);border:1px solid var(--rule);margin:2.2rem 0;padding:.25rem 1.25rem .75rem}.panel>h2{border:0;margin-top:.8rem;font-size:1.3rem}.panel-try{background:var(--try-bg);border-left:6px solid var(--amber)}.panel-try>h2{color:var(--amber)}.panel-checkpoint{background:var(--check-bg);border-left:6px solid var(--accent)}.panel-checkpoint>h2{color:var(--accent)}.panel pre,.panel .r-output{background:var(--paper)}.table-scroll{border:1px solid var(--rule);border-radius:var(--radius);max-width:100%;margin:1rem 0 1.5rem;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.93rem}th,td{text-align:left;border-bottom:1px solid var(--rule);vertical-align:top;padding:.45rem .75rem}th{background:var(--code-bg);white-space:nowrap;font-weight:600}tr:last-child td{border-bottom:0}.pagefind-ui{--pagefind-ui-scale:1;--pagefind-ui-primary:var(--accent);--pagefind-ui-text:var(--ink);--pagefind-ui-background:var(--paper);--pagefind-ui-border:var(--rule);--pagefind-ui-tag:var(--code-bg);--pagefind-ui-border-width:1px;--pagefind-ui-border-radius:6px;--pagefind-ui-font:var(--font-sans)}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}@media print{.site-header,.site-footer,.tree,.toc,.drawer,.toc-inline,.copy-btn,.complete-row,.prevnext{display:none!important}.reader{display:block}:root:root:root{--paper:#fff;--ink:#1c2526;--muted:#5a6668;--rule:#e3e0d6;--accent:#0f6b6b;--amber:#a85a06;--code-bg:#f2f0e8;--surface:#fff;--try-bg:#fbf0df;--check-bg:#e5f0ee;--lead-bg:#f1efe6;--focus:#0f6b6b;--on-accent:#fff;color-scheme:light}:root:root:root .astro-code,:root:root:root .astro-code span{color:var(--shiki-light)}:root:root:root .astro-code span[style*="--shiki-light:#66707b" i]{color:var(--muted)}.prose pre,.r-output pre{white-space:pre-wrap;overflow-wrap:anywhere;box-sizing:border-box;max-width:100%;overflow:visible}.prose pre code{white-space:pre-wrap;overflow-wrap:anywhere}.code-wrap{background:0 0;border:0;margin:0;display:block}.code-wrap pre{border:1px solid var(--rule);border-radius:var(--radius);margin:1rem 0;background-image:none!important}.prose figure,.r-output,.panel,.prose tr{break-inside:avoid}.prose thead{display:table-header-group}.table-scroll{overflow:visible}.prose th{white-space:normal}.prose h1,.prose h2,.prose h3,.prose h4,.out-label,.prose p:has(+figure){break-after:avoid}.prose figcaption{break-before:avoid}}.solution{border:1px solid var(--rule);border-radius:var(--radius);background:var(--paper);margin:.4rem 0 1.4rem}.solution>summary{cursor:pointer;min-height:44px;font-family:var(--font-sans);color:var(--accent);border-radius:var(--radius);align-items:center;gap:.6rem;padding:0 .9rem;font-size:.95rem;font-weight:600;list-style:none;display:flex}.solution>summary::-webkit-details-marker{display:none}.solution>summary:before{content:"";border-bottom:2px solid;border-right:2px solid;flex:none;width:.5rem;height:.5rem;margin:0 .15rem 0 .1rem;transition:transform .15s;transform:rotate(-45deg)}.solution[open]>summary:before{transform:rotate(45deg)}.solution>summary:hover{background:color-mix(in srgb, var(--accent) 8%, transparent)}.solution>summary:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.solution[open]{border-left:4px solid var(--accent)}.solution[open]>summary{border-bottom-right-radius:0;border-bottom-left-radius:0}.solution-body{border-top:1px solid var(--rule);min-width:0;padding:.25rem 1rem .5rem}.solution-body>:first-child{margin-top:.8rem}.solution-body>:last-child{margin-bottom:.4rem}.solution-body .r-output{background:var(--surface)}@media print{.solution{break-inside:auto;border-left:4px solid var(--accent)}.solution>summary{min-height:0;padding:.3rem .9rem}.solution>summary:before{display:none}.panel-try{break-inside:auto}@supports selector(::details-content){.solution::details-content{content-visibility:visible;height:auto;display:block}}}.prose img[data-fig-replaced]{display:none}.prose .fig-scroll{overscroll-behavior-x:contain;max-width:100%;overflow-x:auto}.fig-scrollhint{display:none}@media (width>=613px){:root[data-theme=dark] .prose .fig-scroll{border:1px solid var(--rule);background:#e6e3d8;border-radius:10px;padding:.75rem}}@media (width>=613px) and (prefers-color-scheme:dark){:root:not([data-theme=light]) .prose .fig-scroll{border:1px solid var(--rule);background:#e6e3d8;border-radius:10px;padding:.75rem}}@media print{:root:root:root .prose .fig-scroll{background:0 0;border:0;border-radius:0;padding:0}}@media (width<=612px){.prose .fig-scroll{border:1px solid var(--rule);scrollbar-width:thin;scrollbar-color:var(--muted) var(--lead-bg);border-radius:8px}.prose .fig-scroll img{border-radius:0;width:580px;max-width:none}.prose .fig-scrollhint{color:var(--muted);margin:.25rem 0 0;font-size:.8rem;line-height:1.3;display:block}}.fig-live{--f-blue:#2a78d6;--f-orange:#eb6834;--f-aqua:#1baf7a;--f-violet:#6250d6;--f-red:#e34948;--f-axis:#c3c2b7;--f-muted:#898781;--f-ink:var(--ink);--f-ink2:var(--muted);--f-grid:var(--rule);--f-surface:var(--surface);--f-accent:var(--accent);min-width:0;max-width:700px;margin:0 auto}:root[data-theme=dark] .fig-live{--f-blue:#3987e5;--f-orange:#d95926;--f-aqua:#199e70;--f-violet:#9085e9;--f-red:#e66767;--f-axis:#383835}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .fig-live{--f-blue:#3987e5;--f-orange:#d95926;--f-aqua:#199e70;--f-violet:#9085e9;--f-red:#e66767;--f-axis:#383835}}.fig-stage{background:var(--surface);border:1px solid var(--rule);width:100%;height:auto;font-family:var(--font-sans);border-radius:12px;display:block}.fig-stage .f-mono{font-family:var(--font-mono)}.fig-stage text{paint-order:normal}.fig-stage .f-fade{transition:opacity .2s}.fig-extra:empty{display:none}.fig-extra{margin-top:.6rem}.fig-code{margin:0;padding:.6rem .8rem;font-size:.9rem;line-height:1.55;overflow-x:auto}.fig-codeline{display:inline-block}.fig-codeline.is-now{background:var(--lead-bg);font-weight:700}.fig-codeline.is-off{color:var(--muted)}.fig-controls{flex-wrap:wrap;align-items:flex-end;gap:.6rem 1rem;margin-top:.75rem;display:flex}.fig-group{flex-wrap:wrap;gap:.4rem;display:flex}.fig-field{flex-direction:column;flex:14rem;gap:.15rem;min-width:0;display:flex}.fig-label{font-size:.9rem}.fig-out{font-family:var(--font-mono);font-weight:600}.fig-live input[type=range]{width:100%;min-height:44px;accent-color:var(--accent);cursor:pointer;margin:0}.fig-btn{font:inherit;cursor:pointer;min-width:44px;min-height:44px;color:var(--ink);background:var(--surface);border:1px solid var(--muted);border-radius:var(--radius);padding:.35rem .8rem;font-size:.92rem}.fig-btn:hover{border-color:var(--accent)}.fig-btn[aria-pressed=true],.fig-btn[aria-current=step]{background:var(--accent);color:var(--on-accent);border-color:var(--accent);font-weight:600}.fig-btn[aria-pressed=true]:before,.fig-btn[aria-current=step]:before{content:"✓ "}.fig-btn[aria-disabled=true]{opacity:.55;cursor:not-allowed;border-style:dashed}.fig-live :focus-visible{outline:3px solid var(--focus);outline-offset:2px}.fig-readout{background:var(--lead-bg);border-left:4px solid var(--accent);border-radius:0 var(--radius) var(--radius) 0;min-height:5.6em;margin:.75rem 0 0;padding:.55rem .8rem;font-size:.95rem}.fig-values{margin-top:.6rem}.fig-values summary{cursor:pointer;min-height:32px;padding:.25rem 0;font-weight:600}@media (pointer:coarse),(width<=599px){.fig-values summary{min-height:44px;padding:.5rem 0}}.fig-values-scroll{border:1px solid var(--rule);border-radius:var(--radius);max-height:16rem;overflow:auto}.fig-values-scroll table{font-variant-numeric:tabular-nums;font-size:.85rem}.fig-values-scroll th{position:sticky;top:0}.fig-values-scroll th,.fig-values-scroll td{padding:.3rem .6rem}.fig-line{display:block}.fig-line+.fig-line{margin-top:.2rem}@media (width<=599px){.fig-readout{min-height:8em}.fig-btn{flex:auto}}@media (prefers-reduced-motion:reduce){.fig-live *{transition:none!important;animation:none!important}}@media print{.fig-live{display:none!important}.prose img[data-fig-replaced]{display:block!important}.prose .fig-scroll{border:0;overflow:visible}.prose .fig-scroll img{width:100%;max-width:100%;height:auto}.fig-scrollhint{display:none!important}}@media (width>=1000px){.fig-live.fig-row{grid-template-columns:minmax(11rem,27%) minmax(0,1fr);align-items:start;column-gap:1rem;display:grid}.fig-live.fig-row .fig-stage,.fig-live.fig-row .fig-extra{grid-column:1/-1}.fig-live.fig-row .fig-controls{flex-direction:column;grid-column:1;align-items:stretch;gap:.4rem;margin-top:.6rem}.fig-live.fig-row .fig-field{flex:none}.fig-live.fig-row:has(.fig-values) .fig-controls{grid-row:span 2}.fig-live.fig-row .fig-values{grid-column:2;margin-top:.1rem}@media (pointer:fine){.fig-live.fig-row .fig-values summary{min-height:28px;padding:.1rem 0}}.fig-live.fig-row .fig-readout{grid-column:2;min-height:0;margin-top:.6rem;padding:.4rem .7rem;font-size:.9rem}}
