@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-stretch:75% 100%;font-display:swap;src:url(/fonts/bricolage.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/plex-mono-400.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.fig{margin:2.2em 0 2.4em}.fig figcaption{color:var(--ink-2);margin-top:.7rem;font-size:.92rem;line-height:1.5}.fig code{font-family:var(--mono);font-size:.9em}.fig-stage{width:100%;position:relative}.fig-stage .react-flow{background:0 0}.fig .fig-stage .react-flow__handle{pointer-events:none;background:0 0;border:0;width:1px;min-width:0;height:1px;min-height:0;opacity:0!important}.fig-stage .react-flow__node{cursor:default;font-family:var(--sans);color:var(--ink);line-height:1.3}.fig-markers{width:0;height:0;position:absolute}.fig-markers .mk{fill:none;stroke:var(--ink-3);stroke-width:1.4px}.fig-markers .mk.o{fill:var(--paper)}.fig .fi{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;flex:none}.fig .off{opacity:.35}.fig .react-flow :where(p,ul,li),.fig.ftree :where(ul,li){margin:0}.body .fig-rail button code,.body .fig-readout code{color:inherit;background:0 0;border:0;padding:0}.fig-still .fig-stage{padding:.25rem 0}.fig-hover .react-flow__edge{cursor:pointer}.fig-device{background:var(--paper);border:1px solid var(--line-2);border-radius:var(--r);box-shadow:0 1px 0 var(--line-2), 0 14px 30px -20px #1116;position:relative;overflow:hidden}.fig-device .fig-stage{padding:.25rem 1rem}.fig-top{justify-content:flex-end;padding:.75rem .75rem 0;display:flex}.fig-readout{font:600 .74rem var(--mono);background:var(--sand);color:var(--ink-3);border-radius:6px;padding:.22rem .5rem;transition:background .25s,color .25s}.fig-readout.ok{background:var(--ok-tint);color:var(--ok)}.fig-readout.bad{background:var(--bad-tint);color:var(--bad)}.fig-rail{background:var(--sand);border-top:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:.5rem 1.1rem;padding:.65rem .9rem;display:flex}.fig-rail.nudge{animation:1.4s ease-out .3s fig-nudge}@keyframes fig-nudge{35%{box-shadow:inset 0 0 0 2px color-mix(in srgb, var(--accent) 50%, transparent)}}.fig-rail button{font:500 .82rem/1.2 var(--sans);color:var(--ink);cursor:pointer}.fig-rail button code{font-size:.92em}.fig-rail button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.fig-btn{border:1px solid var(--ink);background:var(--ink);border-radius:8px;padding:.45rem .8rem;color:var(--paper)!important}.fig-btn:hover{background:color-mix(in srgb, var(--ink) 82%, var(--paper))}.fig-btn:active{transform:translateY(1px)}.fig-btn:disabled{opacity:.55;cursor:default}.fig-switch{text-align:left;background:0 0;border:0;align-items:center;gap:.5rem;padding:.2rem 0;display:inline-flex;color:var(--ink-2)!important}.fig-switch i{background:var(--line-2);border-radius:1rem;flex:none;width:2rem;height:1.15rem;transition:background .2s;position:relative}.fig-switch i:after{content:"";background:var(--paper);border-radius:50%;width:.85rem;height:.85rem;transition:left .2s;position:absolute;top:.15rem;left:.15rem;box-shadow:0 1px 2px #0000004d}.fig-switch[aria-checked=true]{color:var(--ink)!important}.fig-switch[aria-checked=true] i{background:var(--ink)}.fig-switch[aria-checked=true] i:after{left:1rem}.fig-seg{align-items:center;display:inline-flex}.fig-seg-l{font:500 .78rem var(--sans);color:var(--ink-3);margin-right:.55rem}.fig-seg button{border:1px solid var(--line-2);background:var(--paper);padding:.38rem .7rem}.fig-seg button+button{margin-left:-1px}.fig-seg button:first-of-type{border-radius:8px 0 0 8px}.fig-seg button:last-of-type{border-radius:0 8px 8px 0}.fig-seg button:hover:not([aria-pressed=true]){background:var(--sand)}.fig-seg button[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--paper);position:relative}.fig-note{min-height:3.6em;color:var(--ink-2);margin:0;padding:.3rem 1.1rem .9rem;font-size:.9rem;line-height:1.5}.fig-note code{color:var(--ink)}.ft{background:var(--paper);border:1px solid var(--line-2);border-radius:10px;overflow:hidden}.fig .ft-h{background:var(--sand);border-bottom:1px solid var(--line);color:var(--ink-3);align-items:center;gap:.45rem;margin:0;padding:.55rem .8rem;display:flex}.ft-h b{font:600 13.5px var(--mono);color:var(--ink)}.ft ul{margin:0;padding:.3rem 0;list-style:none}.ft li{height:28px;font:12.5px var(--mono);grid-template-columns:1.9rem minmax(0,1fr) auto;align-items:center;padding:0 .8rem;transition:background .2s;display:grid;position:relative}.ft li i{font:600 9.5px var(--sans);letter-spacing:.04em;color:var(--ink-3);font-style:normal}.ft li i.pk{color:var(--accent-2)}.ft li i.fk{color:var(--name)}.ft li em{color:var(--ink-3);font-size:11.5px;font-style:normal}.ft li.hot{background:var(--tint)}.ft li.hot span{font-weight:600}.fz{border:1.5px solid var(--line-2);background:color-mix(in srgb, var(--sand) 55%, transparent);border-radius:14px;width:100%;height:100%}.fz.dashed{background:var(--paper);border-style:dashed}.fig .fz-h{color:var(--ink-2);align-items:center;gap:.45rem;margin:0;padding:.6rem .85rem;font-size:12.5px;display:flex}.fz-h b{font-weight:600}.fz-h span{margin-left:auto;font-size:11.5px;font-weight:600}.fz.ok .fz-h span{color:var(--ok)}.fz.bad{border-color:var(--bad)}.fz.bad .fz-h span{color:var(--bad)}.fs{background:var(--paper);border:1px solid var(--line-2);border-radius:10px;align-items:center;gap:.65rem;padding:.55rem .7rem;transition:opacity .25s;display:flex}.fs-i{background:var(--sand);width:34px;height:34px;color:var(--ink-2);border-radius:8px;flex:none;place-items:center;display:grid}.fs-t{min-width:0}.fs-t b{font:600 13px var(--mono);display:block}.fs-t span{font:11.5px var(--mono);color:var(--ink-3);margin-top:.1rem;display:block}.fb{border:1.5px solid var(--ink-2);background:var(--paper);border-radius:9px;grid-template-columns:1fr 1fr;display:grid;overflow:hidden}.fb.down{grid-template-columns:1fr}.fb-c{justify-items:center;gap:.05rem;padding:.5rem .3rem;display:grid;position:relative}.fb-c+.fb-c{border-left:1.5px dashed var(--line-2)}.fb.down .fb-c+.fb-c{border-left:0;border-top:1.5px dashed var(--line-2)}.fb-c b{font:600 15px var(--mono)}.fb-c span{color:var(--ink-3);font-size:10.5px}.fb-c.hot{background:var(--tint)}.fb-c.hot span{color:var(--accent-2);font-weight:600}.fb-c.bad{background:var(--bad-tint)}.fb-c.bad b,.fb-c.bad span{color:var(--bad);font-weight:600}.fb-c.cont{background:var(--sand)}.fig [class^=m-]{font:600 10.5px var(--mono);background:var(--name-tint);color:var(--name);white-space:nowrap;border-radius:4px;padding:.15rem .35rem;font-style:normal}.fig .m-post{background:var(--tint);color:var(--accent-2)}.frq{background:var(--paper);border:1px solid var(--line-2);border-radius:9px;align-items:center;gap:.5rem;padding:.55rem .65rem;transition:border-color .25s;display:flex}.frq code{font:12.5px var(--mono)}.frq.hot{border-color:var(--accent)}.frs{background:var(--paper);border:1px solid var(--line-2);border-radius:10px;flex-wrap:wrap;align-items:center;gap:.5rem;min-height:46px;padding:.6rem .7rem;display:flex}.frs .wait{color:var(--ink-3);font-size:12px}.frs i{font:600 12px var(--mono);background:var(--sand);border-radius:5px;padding:.2rem .45rem;font-style:normal}.frs.ok i{background:var(--ok-tint);color:var(--ok)}.frs.bad{border-color:var(--bad)}.frs.bad code{color:var(--bad);font-style:italic}.frs code{font:12px var(--mono);color:var(--ink-2)}.flk{background:var(--paper);border:1px solid var(--line-2);font:12px var(--mono);border-radius:10px;padding:.55rem}.fig .flk-h{color:var(--ink-3);align-items:center;gap:.4rem;margin:0 .2rem .5rem;display:flex}.flk-h b{font:600 12.5px var(--sans);color:var(--ink-2)}.flk .grp{border:1px solid var(--line);border-radius:8px;padding:.4rem;transition:opacity .25s}.flk .grp+.grp{margin-top:.45rem}.flk .grp.off{opacity:.4;border-style:dashed;border-color:var(--line-2)}.fig .flk .grp>p{justify-content:space-between;gap:.5rem;margin:0 .2rem .3rem;font-weight:600;display:flex}.flk .grp>p span{color:var(--ink-3);font-weight:400}.flk ul{margin:0;padding:0;list-style:none}.flk li{border-radius:6px;align-items:center;gap:.5rem;padding:.3rem;transition:background .25s;display:flex}.flk li.ok{background:var(--ok-tint)}.flk li.hot{background:var(--tint);box-shadow:inset 2px 0 var(--accent)}.fig-stage .fe{stroke:var(--line-2);stroke-width:1.6px;transition:stroke .25s}.fig-stage .fe.dashed{stroke-dasharray:5 5}.fig-stage .fe.hot{stroke:var(--accent);stroke-width:2px}.fig-stage .fe.ok{stroke:var(--ok);stroke-width:2px}.fig-stage .fe.bad{stroke:var(--bad);stroke-width:2px}.fig-stage .fe-dot{fill:var(--accent)}.fig-stage .fk{stroke:var(--ink-3);stroke-width:1.3px;transition:stroke .2s}.fig-stage .fk.hot{stroke:var(--accent);stroke-width:2px}.fe-l{pointer-events:none;font:600 11px var(--mono);background:var(--paper);border:1px solid var(--line-2);color:var(--ink-2);white-space:nowrap;border-radius:5px;padding:.1rem .4rem;position:absolute}.fe-l.hot{color:var(--accent-2);border-color:color-mix(in srgb, var(--accent) 45%, var(--paper))}.fe-l.num{background:var(--line-2);min-width:20px;height:20px;color:var(--paper);font:600 11px var(--sans);border:0;border-radius:10px;place-items:center;padding:0 .3rem;display:grid}.fe-l.num.hot{background:var(--accent)}.fe-l.num.ok{background:var(--ok)}.fe-l.num.bad{background:var(--bad)}@media (width<=560px){.fig-device .fig-stage{padding:.25rem .5rem}.fig-rail{padding:.7rem}}.fig.ftree>ul{border:1px solid var(--line);font:13px/1.3 var(--mono);border-radius:10px;margin:0;padding:.55rem .9rem;list-style:none}.fig.ftree ul ul{border-left:1px solid var(--line-2);margin:0 0 0 .45rem;padding:0 0 0 1.05rem;list-style:none}.fig.ftree li{color:var(--ink-3);grid-template-columns:auto minmax(0,1fr);align-items:baseline;column-gap:1.5rem;margin:0;padding:.32rem 0 0;display:grid}.fig.ftree li>ul{grid-column:1/-1}.fig.ftree li>em{font:.82rem/1.35 var(--sans);color:var(--ink-3);text-align:right;justify-self:end;font-style:normal}.fig.ftree li>strong{color:var(--ink);font-weight:500}.fig.ftree li>strong code{background:var(--tint);color:inherit;border-radius:5px;margin-left:-.35rem;padding:.1rem .35rem}.fig.ftree li>strong+em{color:var(--ink)}@media (width<=560px){.fig.ftree li{grid-template-columns:1fr}.fig.ftree li>em{text-align:left;justify-self:start}}.fmsg,.fread{background:var(--paper);border:1px solid var(--line-2);border-radius:10px;padding:.55rem .7rem .65rem}.fig .fmsg-h,.fig .fread-h{color:var(--ink-3);align-items:center;gap:.4rem;margin:0 0 .45rem;display:flex}.fmsg-h b,.fread-h b{font:600 12.5px var(--sans);color:var(--ink-2)}.fmsg-b{gap:.15rem;display:grid}.fig .fmsg-b code,.fig .fread code{background:0 0;border:0;border-radius:0;padding:0}.fmsg-b code{font:12.5px/1.7 var(--mono);color:var(--ink);white-space:pre;transition:opacity .25s;display:block}.fmsg-b code.off{opacity:.4;text-decoration:line-through}.fread ul{gap:.3rem;margin:0;padding:0;list-style:none;display:grid}.fread li{background:var(--sand);border-radius:7px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.2rem .6rem;padding:.3rem .45rem;transition:background .25s;display:flex}.fread li code{font:12.5px/1.6 var(--mono)}.fread-v{font:600 12.5px var(--mono);color:var(--ok)}.fread li.bad{background:var(--bad-tint)}.fread li.bad .fread-v{color:var(--bad)}.fig .fig-stage [data-pair]{pointer-events:auto;cursor:pointer;position:relative}.fig-stage .fe.t1{--tc:var(--t1)}.fig-stage .fe.t2{--tc:var(--t2)}.fig-stage .fe.t3{--tc:var(--t3)}.fig-stage .fe:is(.t1,.t2,.t3){stroke:var(--tc);stroke-width:2px}:root{--paper:#fff;--sand:#f5f5f5;--sand-2:#e9e9e9;--ink:#111;--ink-2:#505050;--ink-3:#6e6e6e;--accent:#92683d;--accent-2:#7a552f;--line:#e6e6e6;--line-2:#d4d4d4;--ok:#2e7048;--ok-tint:#e5f1e9;--bad:#b23e2a;--bad-tint:#fae9e5;--name:#2f4a63;--name-tint:#e8edf2;--tint:color-mix(in srgb, var(--accent) 13%, var(--paper));--t1:#92683d;--t1-tint:#f3ebe2;--t2:#3f4fa0;--t2-tint:#e7eaf7;--t3:#8a3f7a;--t3-tint:#f5e6f1;--code-bg:#fafafa;--link-out:#1d5fd6;--term-bg:#171615;--term-bar:#232120;--term-rule:#2c2a27;--term-fg:#ece8e3;--term-dim:#9c968e;--term-prompt:#d9a56f;--sans:"Bricolage Grotesque", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--r:14px;--r-s:9px;--wrap:74rem;--gutter:clamp(1.25rem, 5vw, 3rem);--measure:66ch;color-scheme:light}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:5rem}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}body{background:var(--paper);min-height:100vh;color:var(--ink);font-family:var(--sans);font-optical-sizing:auto;font-variation-settings:"opsz" 14;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;flex-direction:column;margin:0;font-size:17px;line-height:1.6;display:flex}main{flex:1}::selection{background:var(--sand-2)}h1,h2,h3{letter-spacing:-.02em;text-wrap:balance;font-variation-settings:"opsz" 96, "wdth" 90;margin:0;font-weight:700}h1{letter-spacing:-.03em;font-variation-settings:"opsz" 96, "wdth" 82;font-size:clamp(2.6rem,1.7rem + 3.6vw,4.6rem);font-weight:800;line-height:.98}h2{font-size:clamp(1.6rem,1.25rem + 1.2vw,2.2rem);line-height:1.1}h3{font-size:1.3rem;line-height:1.25}p{margin:0}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-2)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.wrap{max-width:var(--wrap);padding-inline:var(--gutter);width:100%;margin-inline:auto}.prose{max-width:var(--measure)}img{max-width:100%;height:auto;display:block}.lede{color:var(--ink-2);max-width:44ch;font-size:clamp(1.1rem,1rem + .35vw,1.3rem);line-height:1.5}.eyebrow{letter-spacing:.01em;color:var(--ink-3);font-size:.85rem;font-weight:500}.meta{color:var(--ink-3);font-variant-numeric:tabular-nums;font-size:.9rem}.btn{background:var(--accent);color:#fff;border-radius:999px;align-items:center;gap:.5ch;padding:.72rem 1.15rem;font-size:1rem;font-weight:500;line-height:1;transition:background .15s,transform .15s;display:inline-flex}.btn:hover{background:var(--accent-2);color:#fff}.btn:active{transform:translateY(1px)}.btn.quiet{color:var(--ink);border:1px solid var(--line-2);background:0 0}.btn.quiet:hover{background:var(--sand);color:var(--ink)}.btn.small{padding:.5rem .85rem;font-size:.9rem}.wordmark{color:var(--ink);letter-spacing:-.035em;font-variation-settings:"opsz" 32, "wdth" 80;font-size:1.3rem;font-weight:800;line-height:1;display:inline-block}.wordmark:after{content:"";background:var(--accent);border-radius:2px;width:1.5rem;height:3px;margin-top:3px;display:block}.wordmark:hover{color:var(--ink)}.buildcard{border:1px solid var(--line);border-radius:var(--r);background:var(--paper);display:grid;overflow:hidden}.buildcard .bc-head{border-bottom:1px solid var(--line);font:500 .82rem/1.3 var(--mono);color:var(--ink-3);justify-content:space-between;gap:1rem;padding:.7rem 1.1rem;display:flex}.buildcard .bc-head b{color:var(--ink);font-weight:500}.buildcard pre{tab-size:2;margin:0;padding:1.1rem 1.15rem 1.25rem;font-size:.8rem;line-height:1.65;overflow-x:auto;background:var(--paper)!important}@media (width<=40rem){.buildcard pre{padding-inline:.9rem;font-size:.74rem;white-space:pre!important}}.buildcard pre code{font-family:var(--mono)}.buildcard pre,.buildcard pre code{word-break:normal!important;overflow-wrap:break-word!important}.buildcard .bc-foot{border-top:1px solid var(--line);background:var(--sand);color:var(--ink-2);flex-wrap:wrap;align-items:center;gap:.55rem;padding:.75rem 1.1rem;font-size:.88rem;display:flex}.buildcard .bc-foot b{color:var(--ink);font-weight:600}.buildcard .bc-foot a{color:var(--accent);flex-basis:100%;font-weight:500}.buildcard .bc-foot a:before{display:none}.chips{flex-wrap:wrap;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.chips li,.chip{color:var(--ink-2);background:var(--sand);border-radius:999px;padding:.32rem .8rem;font-size:.88rem;font-weight:500;line-height:1.3}.tag{border:1px solid var(--line-2);color:var(--ink-2);font-variant-numeric:tabular-nums;border-radius:7px;align-items:center;gap:.35ch;padding:.3rem .6rem;font-size:.82rem;font-weight:500;line-height:1;display:inline-flex}.tag.on{background:var(--accent);color:#fff;border-color:#0000}.meta-row,.sep{flex-wrap:wrap;align-items:center;gap:.55rem;display:flex}.meta-row>*+:before,.sep>*+:before{content:"";background:var(--ink-3);vertical-align:middle;border-radius:50%;width:3px;height:3px;margin-right:.55rem;display:inline-block}.sech{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.5rem 2rem;margin-bottom:1.4rem;display:flex}.sech h2{font-size:clamp(1.45rem,1.2rem + .9vw,1.9rem)}.sech .more{color:var(--ink-2);font-weight:500}.sech .more:hover{color:var(--accent)}.bcount{letter-spacing:-.05em;font-variant-numeric:tabular-nums;font-variation-settings:"opsz" 96, "wdth" 75;color:var(--ink);align-items:baseline;font-size:clamp(3.4rem,2rem + 6vw,7.5rem);font-weight:800;line-height:.9;display:inline-flex}.bcount b{font-weight:inherit;color:var(--accent)}.bcount i{color:var(--line-2);margin-inline:.06em;font-style:normal;font-weight:300}.progress{background:var(--sand-2);border-radius:2px;height:4px;overflow:hidden}.progress i{height:100%;width:var(--w,0%);background:var(--accent);transform-origin:0;border-radius:2px;transition:transform 1.1s cubic-bezier(.2,.7,.1,1);display:block;transform:scaleX(0)}.progress.go i{transform:scaleX(1)}@media (prefers-reduced-motion:reduce){.progress i{transform:none}}.rows{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.rows>li{border-bottom:1px solid var(--line)}.band{border-block:1px solid var(--line)}.band.tint{background:var(--sand)}.rule{border:0;border-top:1px solid var(--line);margin:0}.body{font-size:1.06rem;line-height:1.7}.body h2{margin:2.4em 0 .6em;font-size:1.6rem}.body h3{margin:1.8em 0 .5em}.body p,.body ul,.body ol{margin:0 0 1.15em}.body li+li{margin-top:.3em}.body a{text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:.18em}.body a:hover{text-decoration-color:currentColor}.body a[href^=http]:not([href^="https://devchalk.com"]){color:var(--link-out);text-decoration-color:color-mix(in srgb, var(--link-out) 40%, transparent)}.body a code{color:inherit}.body a[href^=http]:not([href^="https://devchalk.com"]):after{content:"↗";vertical-align:.08em;margin-left:.12em;font-size:.78em;text-decoration:none;display:inline-block}.body mark{--tc:var(--t1);--tt:var(--t1-tint);color:inherit;border:1px solid var(--tc);background:var(--tt);border-radius:4px;padding:.05em .25em;transition:background .15s,color .15s}.body mark.t2{--tc:var(--t2);--tt:var(--t2-tint)}.body mark.t3{--tc:var(--t3);--tt:var(--t3-tint)}.body mark.lit,.body mark.lit code{background:var(--tc);color:#fff}.body mark[data-pair],.body .expressive-code .ec-line mark.tone{cursor:pointer}.body .expressive-code .ec-line mark.tone{--mb:var(--tt);--tmInlineBgCol:transparent;--tmInlineBrdCol:var(--tc);isolation:isolate;margin:0;padding:0}.body .expressive-code .ec-line mark.tone:before{background:var(--mb);z-index:-1;border-radius:4px;inset:-1px -1.5px}.body .expressive-code .ec-line mark.tone.lit{--mb:var(--tc)}.body .expressive-code .ec-line mark.tone.lit span{color:#fff!important}.body .expressive-code .is-terminal .ec-line mark.tone:not(.lit){--mb:color-mix(in srgb, var(--tc) 45%, var(--term-bg));--tmInlineBrdCol:color-mix(in srgb, var(--tc) 70%, #fff)}.body :not(pre)>code{font-family:var(--mono);color:var(--ink);overflow-wrap:anywhere;background:var(--sand);border:1px solid var(--line);border-radius:4px;padding:.05em .3em;font-size:.86em}.body mark>code,.body a code{background:0 0;border:0;padding:0}.body pre:not([data-language]){background:var(--sand);border:1px solid var(--line);border-radius:var(--r-s);margin:0 0 1.3em;padding:1rem 1.15rem;line-height:1.55;overflow-x:auto}.body pre:not([data-language]) code{background:0 0;padding:0;font-size:.9em}.body .expressive-code{margin:0 0 1.4em}.body .expressive-code .is-terminal .ec-line .code,.body .expressive-code .is-terminal .ec-line .code span{color:var(--term-fg)!important;font-weight:400!important}.body .expressive-code .is-terminal .ec-line.term-cmd .code:before{content:"$ ";color:var(--term-prompt);user-select:none}.body .expressive-code .is-terminal .ec-line.term-out .code,.body .expressive-code .is-terminal .ec-line.term-out .code span{color:var(--term-dim)!important}.body .expressive-code .is-terminal .header .title:empty:before{content:"Terminal";font:500 .75rem var(--sans);color:var(--term-dim)}.body .expressive-code .is-terminal .copy button{background:var(--term-bar)!important;border-color:var(--term-rule)!important}.body .expressive-code .is-terminal .copy button div{background-color:var(--term-dim)!important}.body .expressive-code .ec-line.del .code{color:var(--bad);opacity:.8;text-decoration:line-through;text-decoration-color:color-mix(in srgb, var(--bad) 45%, transparent)}.body .expressive-code .ec-line.del .code span{color:inherit!important}.body .figure{margin:2em 0 2.2em}.body .figure img{width:100%;height:auto}.body .figure figcaption{color:var(--ink-2);margin-top:.6rem;font-size:.92rem}.body summary,.body .expressive-code .ec-section summary{list-style:none}.body summary::-webkit-details-marker{display:none}.body blockquote,.body details.fold,.card{background:var(--paper);border:1px solid var(--line-2);box-shadow:0 1px 0 var(--line-2);border-radius:0 12px 12px;margin:2.8em 0 2em;font-size:.96rem;position:relative}.body blockquote>p:first-child>strong:first-child,.body details.fold summary b,.card-tab{background:var(--paper);border:1px solid var(--line-2);font:600 .8rem var(--sans);color:var(--ink);border-bottom:0;border-radius:9px 9px 0 0;align-items:center;gap:.45rem;padding:.32rem .85rem .28rem;display:inline-flex;position:absolute;bottom:100%;left:-1px}.body blockquote>p:first-child>strong:first-child:before,.body details.fold summary b:before,.card-tab:before{content:"";background:var(--accent);border-radius:50%;width:.5rem;height:.5rem}.body blockquote>p:first-child>strong:first-child:after,.body details.fold summary b:after,.card-tab:after{content:"";background:var(--paper);height:2px;position:absolute;bottom:-1px;left:0;right:0}.body blockquote{padding:1rem 1.2rem .1rem}.body blockquote>:last-child{margin-bottom:1rem}.body details.fold{padding:0 1.2rem}.body details.fold summary{cursor:pointer;align-items:center;gap:.6rem;padding:.85rem 1.6rem .85rem 0;font-weight:500;list-style:none;display:flex}.body details.fold summary::-webkit-details-marker{display:none}.body details.fold summary:after{content:"";border-right:2px solid var(--ink-3);border-bottom:2px solid var(--ink-3);width:.45rem;height:.45rem;transition:transform .15s;position:absolute;top:1.15rem;right:1.2rem;transform:rotate(45deg)}.body details.fold[open] summary:after{top:1.35rem;transform:rotate(-135deg)}.body details.fold summary:hover{color:var(--accent)}.body details.fold .expressive-code{margin:0 0 1.2rem}.body table{border-collapse:collapse;width:100%;margin:0 0 1.3em;font-size:.95em}.body th,.body td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:.55em .8em}.body th{color:var(--ink-2);font-weight:600}.body td:first-child code{white-space:nowrap}.body em a{color:var(--ink-3);font-size:.9em;font-style:normal}.icons{gap:.25rem;display:flex}.icon{width:2.25rem;height:2.25rem;color:var(--ink-2);border-radius:50%;place-items:center;transition:background .15s,color .15s;display:inline-grid}.icon:hover{background:var(--sand);color:var(--ink)}.skip[data-astro-cid-hkbrpulz]{z-index:20;background:var(--ink);color:var(--paper);border-radius:8px;padding:.5rem .9rem;position:absolute;top:.5rem;left:-9999px}.skip[data-astro-cid-hkbrpulz]:focus{left:.5rem}.top[data-astro-cid-hkbrpulz]{z-index:10;-webkit-backdrop-filter:saturate(180%)blur(14px);border-bottom:1px solid var(--line);background:#ffffffd9;position:sticky;top:0}.top-in[data-astro-cid-hkbrpulz]{justify-content:space-between;align-items:center;gap:1rem;height:3.5rem;display:flex}.top[data-astro-cid-hkbrpulz] .wordmark[data-astro-cid-hkbrpulz]{margin-top:6px}.mainnav[data-astro-cid-hkbrpulz]{align-items:center;gap:1.35rem;font-size:.95rem;font-weight:500;display:flex}.mainnav[data-astro-cid-hkbrpulz]>a[data-astro-cid-hkbrpulz]{color:var(--ink-2)}.mainnav[data-astro-cid-hkbrpulz]>a[data-astro-cid-hkbrpulz]:hover,.mainnav[data-astro-cid-hkbrpulz]>a[data-astro-cid-hkbrpulz][aria-current]{color:var(--ink)}.mainnav[data-astro-cid-hkbrpulz] .icons[data-astro-cid-hkbrpulz]{align-items:center;margin-left:-.35rem}@media (width<=34rem){.mainnav[data-astro-cid-hkbrpulz]{gap:.95rem;font-size:.9rem}}.foot[data-astro-cid-hkbrpulz]{border-top:1px solid var(--line);margin-top:clamp(4rem,9vw,7rem)}.foot-in[data-astro-cid-hkbrpulz]{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1rem 3rem;padding-block:1.5rem;display:grid}.foot-line[data-astro-cid-hkbrpulz]{color:var(--ink-2);margin-top:.5rem;font-size:.95rem}.foot-links[data-astro-cid-hkbrpulz]{flex-wrap:wrap;gap:.5rem 1.4rem;font-size:.95rem;font-weight:500;display:flex}.foot-links[data-astro-cid-hkbrpulz] a[data-astro-cid-hkbrpulz]{color:var(--ink-2)}.foot-links[data-astro-cid-hkbrpulz] a[data-astro-cid-hkbrpulz]:hover{color:var(--ink)}.copy[data-astro-cid-hkbrpulz]{border-top:1px solid var(--line);padding-block:.8rem 1rem}@media (width<=40rem){.foot-in[data-astro-cid-hkbrpulz]{grid-template-columns:1fr;gap:1rem}}
