.graph-story{--gs-accent:var(--fx-tx2);--gs-status:34px;--gs-dot:12px;z-index:10000;outline:0;margin:1.5rem 0;position:relative}@media screen and (width<=1000px){.graph-story{--gs-status:44px;--gs-dot:16px}}.graph-story:focus-visible .graph-story__figure{border-color:var(--fx-tx3)}.graph-story__figure{border:1px solid var(--fx-ui);background:var(--fx-bg2);isolation:isolate;border-radius:.5rem;margin:0;position:relative;overflow:hidden}.graph-story__figure:before{content:"";z-index:-1;pointer-events:none;opacity:.06;image-rendering:pixelated;background-image:url(../noise-a.18542138.png);background-repeat:repeat;background-size:384px 384px;position:absolute;inset:0}@media screen and (width<=400px){.graph-story__figure{border-radius:0;margin-left:-1rem;margin-right:-1rem}}.graph-story__screen{padding-bottom:var(--gs-status);border:1px solid var(--fx-border);background:var(--fx-bg);isolation:isolate;border-radius:.15rem;width:100%;height:100%;position:relative;overflow:hidden}.graph-story__screen:before{content:"";z-index:0;pointer-events:none;opacity:.045;image-rendering:pixelated;background-image:url(../noise-a.18542138.png);background-repeat:repeat;background-size:384px 384px;position:absolute;inset:0}.graph-story__chrome{border-bottom:1px solid var(--fx-ui);background:var(--fx-bg2);letter-spacing:.06em;color:var(--fx-tx3);pointer-events:none;justify-content:space-between;align-items:center;gap:.75rem;height:22px;padding:0 .7rem;font-family:Geist Pixel,Geist Mono,ui-monospace,monospace;font-size:11px;display:flex;position:absolute;top:0;left:0;right:0}.graph-story__chrome-title{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.graph-story__chrome-title:before{content:"> ";color:var(--fx-green)}.graph-story__stage{padding:.5rem .5rem 0;position:relative}.graph-story__stage:after{content:"";z-index:2;pointer-events:none;background:repeating-linear-gradient(to bottom,transparent 0,transparent 2px,color-mix(in srgb,var(--fx-bg)55%,transparent)3px,color-mix(in srgb,var(--fx-bg)55%,transparent)4px);opacity:.22;position:absolute;inset:0}@media not all and (prefers-color-scheme:dark){.graph-story__stage:after{display:none}}.graph-story__svg{-webkit-mask-composite:source-in;touch-action:pan-y;cursor:grab;width:100%;height:auto;font-family:Figtree,system-ui,sans-serif;display:block;mask-image:linear-gradient(90deg,#0000 0,#000 8% 92%,#0000 100%),linear-gradient(#0000 0,#000 8% 92%,#0000 100%);mask-composite:intersect}.graph-story__svg.is-dragging{cursor:grabbing}.graph-story__marker{z-index:3;border:1px solid color-mix(in srgb,var(--fx-green)60%,transparent);background:color-mix(in srgb,var(--fx-bg)85%,transparent);color:var(--fx-green);cursor:pointer;opacity:0;pointer-events:none;border-radius:0;place-items:center;width:2rem;height:2rem;padding:0;font-family:Geist Pixel,Geist Mono,ui-monospace,monospace;font-size:13px;line-height:1;transition:opacity .2s;display:grid;position:absolute}.graph-story__marker.is-visible{opacity:1;pointer-events:auto}.graph-story__marker:hover,.graph-story__marker:focus-visible{background:var(--fx-ui);outline:0}.graph-story__marker--left,.graph-story__marker--right{top:calc(22px + (100% - 22px - var(--gs-status))/2 - 1rem)}.graph-story__marker--left{left:.4rem}.graph-story__marker--right{right:.4rem}.graph-story__marker--up,.graph-story__marker--down{left:calc(50% - 1rem)}.graph-story__marker--up{top:calc(22px + .4rem)}.graph-story__marker--down{bottom:calc(var(--gs-status) + .4rem)}.graph-story__caption{min-height:5.4rem;padding:.75rem 1rem .5rem;font-family:Figtree,system-ui,sans-serif}@media screen and (width<=400px){.graph-story__caption{min-height:7.2rem}}.graph-story__caption-kicker,.graph-story__caption-note{display:none}.graph-story__title{color:var(--fx-tx);margin-bottom:.2rem;font-family:Geist Pixel,ui-monospace,monospace;font-size:.95rem}.graph-story__text{color:var(--fx-tx2);font-size:.85rem;line-height:1.5}.graph-story__text code{font-size:.85em}.graph-story__nav{z-index:1;height:var(--gs-status);border-top:1px solid var(--fx-ui);background:var(--fx-bg2);letter-spacing:.06em;color:var(--fx-tx3);align-items:stretch;font-family:Geist Pixel,Geist Mono,ui-monospace,monospace;font-size:12px;display:flex;position:absolute;bottom:0;left:0;right:0}.graph-story__button{width:calc(var(--gs-status) + 10px);color:var(--fx-tx2);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:0;flex:none;place-items:center;padding:0;font-size:16px;line-height:1;display:grid}.graph-story__button:hover:not(:disabled),.graph-story__button:focus-visible{background:var(--fx-ui);color:var(--fx-tx);outline:0}.graph-story__button:active:not(:disabled){background:var(--fx-green);color:var(--fx-bg)}.graph-story__button:disabled{color:var(--fx-ui);cursor:default}.graph-story__button--prev{border-right:1px solid var(--fx-ui)}.graph-story__button--next,.graph-story__button--play{border-left:1px solid var(--fx-ui)}.graph-story__button--play:before{content:"";border:4px solid #0000;border-left:7px solid;border-right-width:0;width:0;height:0;display:block}.graph-story__button--play.is-playing:before{border-width:0 2px;border-color:currentColor;width:7px;height:8px}.graph-story__dots{overscroll-behavior-x:contain;scrollbar-width:none;flex:auto;align-items:stretch;gap:3px;min-width:0;padding:0 .6rem;display:flex;overflow-x:auto;mask-image:linear-gradient(90deg,#0000 0,#000 .6rem calc(100% - .6rem),#0000 100%)}.graph-story__dots::-webkit-scrollbar{display:none}.graph-story__dot{width:var(--gs-dot);cursor:pointer;background:0 0;border:0;border-radius:0;flex:none;padding:0}.graph-story__dot:before{content:"";height:var(--gs-dot);background:var(--fx-ui);width:100%;margin:auto 0;display:block}.graph-story__dot.is-done:before{background:var(--fx-tx3)}.graph-story__dot:hover:before,.graph-story__dot:focus-visible:before{background:var(--fx-tx2)}.graph-story__dot:focus-visible{outline:0}.graph-story__dot.is-active:before,.graph-story__dot.is-active:hover:before{background:var(--fx-green);box-shadow:0 0 6px color-mix(in srgb,var(--fx-green)55%,transparent)}.graph-story__counter{border-left:1px solid var(--fx-ui);color:var(--fx-tx2);font-variant-numeric:tabular-nums;flex:none;align-items:center;padding:0 .6rem;display:flex}.graph-story__fallback{color:var(--fx-tx2);padding-left:1.4rem;font-size:.9rem}.graph-story.is-trigger-scroll{width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}.graph-story.is-trigger-scroll:last-child{margin-bottom:0}.graph-story.is-trigger-scroll .graph-story__figure{background:0 0;border:0;border-radius:0;flex-direction:column;height:100dvh;margin:0;display:flex;position:sticky;top:0}.graph-story.is-trigger-scroll .graph-story__figure:before{content:none}.graph-story.is-trigger-scroll .graph-story__screen{box-shadow:0 .75rem 2.5rem -1rem #0009}.graph-story.is-trigger-scroll .graph-story__stage{flex:auto;min-height:0;padding:1.5rem 36% 1.5rem 1.5rem;display:flex}@media screen and (width<=1400px){.graph-story.is-trigger-scroll .graph-story__stage{padding:1.25rem 30% 1.25rem 1rem}}@media screen and (width<=1000px){.graph-story.is-trigger-scroll .graph-story__stage{padding:.5rem .25rem 0}}.graph-story.is-trigger-scroll .graph-story__svg{z-index:1;height:calc(100% - 22px - var(--gs-status));width:100%;position:absolute;top:22px;left:0}.graph-story.is-trigger-scroll .graph-story__caption{display:none}@media screen and (width<=1000px){.graph-story.is-trigger-scroll .graph-story__stage{flex:auto;min-height:0}.graph-story.is-trigger-scroll .graph-story__caption{overscroll-behavior:contain;border:1px solid var(--fx-border);background:var(--fx-bg);scrollbar-width:thin;scrollbar-color:var(--fx-ui)transparent;border-radius:.15rem;flex:0 auto;min-height:0;max-height:25dvh;margin:.6rem .25rem .75rem;padding:.9rem 1rem;display:block;overflow-y:auto}.graph-story.is-trigger-scroll .graph-story__caption-kicker{color:var(--fx-green);margin-bottom:.3rem;font-family:Geist Pixel,Geist Mono,ui-monospace,monospace;font-size:.7rem;display:block}.graph-story.is-trigger-scroll .graph-story__caption-kicker:before{content:"> step "}.graph-story.is-trigger-scroll .graph-story__title{margin-bottom:.3rem;font-size:1rem}.graph-story.is-trigger-scroll .graph-story__text{color:var(--fx-tx);font-size:.9rem}.graph-story.is-trigger-scroll .graph-story__caption-note{color:var(--fx-tx2);margin-top:.5rem;font-size:.82rem;line-height:1.5;display:block}.graph-story.is-trigger-scroll .graph-story__card{visibility:hidden}}.graph-story.is-trigger-scroll .graph-story__panels{z-index:2;pointer-events:none;width:33%;margin-top:-100dvh;margin-left:auto;padding:0 2.5vw 0 0;position:relative}@media screen and (width<=1400px){.graph-story.is-trigger-scroll .graph-story__panels{width:28%;padding-right:1.5vw}}@media screen and (width<=1000px){.graph-story.is-trigger-scroll .graph-story__panels{width:100%;padding:0 1rem}}.graph-story.is-trigger-scroll .graph-story__panel{align-items:center;min-height:100dvh;display:flex}@media screen and (width<=1000px){.graph-story.is-trigger-scroll .graph-story__panel{align-items:flex-end;padding-bottom:1.5rem}}.graph-story.is-trigger-scroll .graph-story__card{pointer-events:auto;border:1px solid var(--fx-ui);background:color-mix(in srgb,var(--fx-bg)94%,transparent);opacity:.45;border-radius:.15rem;padding:1.25rem 1.5rem;font-family:Figtree,system-ui,sans-serif;transition:opacity .3s,border-color .3s}.graph-story.is-trigger-scroll .graph-story__panel.is-active .graph-story__card{opacity:1;border-color:var(--fx-border)}.graph-story.is-trigger-scroll .graph-story__kicker{color:var(--fx-green);margin-bottom:.35rem;font-family:Geist Pixel,Geist Mono,ui-monospace,monospace;font-size:.7rem}.graph-story.is-trigger-scroll .graph-story__kicker:before{content:"> step "}.graph-story.is-trigger-scroll .graph-story__panel-title{color:var(--fx-tx);margin:0 0 .4rem;font-family:Geist Pixel,ui-monospace,monospace;font-size:1.15rem;font-weight:500}.graph-story.is-trigger-scroll .graph-story__panel-caption{color:var(--fx-tx);margin:0;font-size:.95rem;line-height:1.5}.graph-story.is-trigger-scroll .graph-story__panel-body{color:var(--fx-tx2);margin-top:.6rem;font-size:.85rem;line-height:1.55}.graph-story.is-trigger-scroll .graph-story__panel-body p+p{margin-top:.5rem}.graph-story.is-trigger-scroll .graph-story__panel-body code{font-size:.85em}.graph-story .is-color-green{--gs-accent:var(--fx-green)}.graph-story .is-color-tx{--gs-accent:var(--fx-tx)}.graph-story .is-color-tx2{--gs-accent:var(--fx-tx2)}.graph-story .is-color-tx3{--gs-accent:var(--fx-tx3)}.graph-story .is-color-cyan{--gs-accent:var(--fx-green)}.graph-story .is-color-red{--gs-accent:var(--fx-tx)}.graph-story .is-color-orange,.graph-story .is-color-yellow,.graph-story .is-color-blue{--gs-accent:var(--fx-tx2)}.graph-story .is-color-purple,.graph-story .is-color-magenta{--gs-accent:var(--fx-tx3)}.gs-arrow path{fill:var(--gs-accent)}@media not all and (prefers-color-scheme:dark){.graph-story .gs-node__shape,.graph-story .gs-edge__line,.graph-story .is-color-green .gs-node__shape,.graph-story .is-color-green .gs-edge__line,.graph-story .gs-node.is-state-active .gs-node__shape{filter:none}}.gs-group rect{fill:color-mix(in srgb,var(--gs-accent)5%,var(--fx-bg));stroke:color-mix(in srgb,var(--gs-accent)45%,transparent);stroke-width:1px;shape-rendering:crispedges;transition:fill .5s,stroke .5s}.gs-group.is-depth-1 rect{fill:color-mix(in srgb,var(--gs-accent)8%,var(--fx-bg))}.gs-group.is-depth-2 rect{fill:color-mix(in srgb,var(--gs-accent)11%,var(--fx-bg))}.gs-group__label{letter-spacing:.12em;text-transform:uppercase;dominant-baseline:middle;fill:var(--fx-tx2);font-family:Geist Pixel,Geist Mono,ui-monospace,monospace;font-size:12px}.graph-story .is-color-green .gs-group__label{fill:var(--fx-green)}.gs-group__legend{fill:var(--fx-bg)}.gs-node__shape{fill:var(--fx-bg);stroke:var(--gs-accent);stroke-width:1px;stroke-linejoin:miter;transform-box:fill-box;transform-origin:50%;transition:fill .5s,stroke .5s,stroke-width .3s,opacity .4s}.graph-story .is-color-green .gs-node__shape{fill:color-mix(in srgb,var(--fx-green)10%,var(--fx-bg));filter:drop-shadow(0 0 3px color-mix(in srgb,var(--fx-green)55%,transparent))}.graph-story .is-color-green .gs-edge__line{opacity:1;filter:drop-shadow(0 0 3px color-mix(in srgb,var(--fx-green)45%,transparent))}.gs-node__label,.gs-node__sublabel,.gs-node__sigil{text-anchor:start;dominant-baseline:middle;pointer-events:none;font-family:Geist Pixel,Geist Mono,ui-monospace,monospace;font-weight:500}.gs-node__label{fill:var(--fx-tx);font-size:15px}.gs-node__sublabel{fill:var(--fx-tx2);font-size:11px;font-weight:400}.gs-node__sigil{fill:var(--gs-accent);font-size:15px}.graph-story .is-color-green .gs-node__label{fill:var(--fx-green)}.gs-node.is-state-active .gs-node__shape{stroke-width:1.5px;stroke-dasharray:7 3;filter:drop-shadow(0 0 3px color-mix(in srgb,var(--gs-accent)50%,transparent));animation:.75s linear infinite gs-march}.gs-node.is-state-active .gs-node__sigil{animation:1.1s step-end infinite gs-blink}.graph-story .gs-node.is-color-green.is-state-active .gs-node__shape{filter:drop-shadow(0 0 4px var(--fx-green))drop-shadow(0 0 12px color-mix(in srgb,var(--fx-green)55%,transparent))}.gs-node.is-state-muted .gs-node__shape,.gs-node.is-state-muted text{opacity:.35}.gs-node.is-state-pending .gs-node__shape{stroke-dasharray:4 3}.gs-node.is-state-pending .gs-node__label{fill:var(--fx-tx2)}.gs-node.is-state-error .gs-node__shape{stroke:var(--fx-tx);stroke-dasharray:2 2}.gs-node.is-state-error .gs-node__sigil{fill:var(--fx-tx)}.gs-edge__line{fill:none;stroke:var(--gs-accent);stroke-width:1px;stroke-linecap:square;opacity:.75;transition:stroke .5s,opacity .4s}.gs-edge.is-style-dashed .gs-edge__line{stroke-dasharray:7 5}.gs-edge.is-style-flow .gs-edge__line{stroke-dasharray:4 7;animation:1s linear infinite gs-flow}.gs-edge.is-state-muted .gs-edge__line,.gs-edge.is-state-muted text{opacity:.3}.gs-edge.is-state-pending .gs-edge__line{stroke-dasharray:2 5}.gs-edge__label{text-anchor:middle;dominant-baseline:middle;letter-spacing:.03em;fill:var(--fx-tx3);pointer-events:none;font-family:Geist Pixel,Geist Mono,ui-monospace,monospace;font-size:11px}.gs-edge__plate{fill:var(--fx-bg2);pointer-events:none}.gs-node.is-dim .gs-node__shape{stroke:var(--fx-border);filter:none;animation:none}.gs-node.is-dim .gs-node__label,.gs-node.is-dim .gs-node__sigil{fill:var(--fx-tx3)}.gs-node.is-dim .gs-node__sublabel{fill:var(--fx-tx3);opacity:.7}.gs-edge.is-dim .gs-edge__line{stroke:var(--fx-border);opacity:.8;filter:none}.gs-edge.is-dim .gs-edge__label,.gs-edge.is-dim .gs-edge__plate{opacity:0}.gs-group.is-dim .gs-group__label{fill:var(--fx-tx3)}.gs-group.is-dim rect.gs-group__panel{stroke:color-mix(in srgb,var(--fx-border)70%,transparent)}@keyframes gs-march{to{stroke-dashoffset:-20px}}@keyframes gs-blink{0%,62%{opacity:1}63%,to{opacity:.2}}@keyframes gs-flow{to{stroke-dashoffset:-11px}}@media (prefers-reduced-motion:reduce){.gs-node.is-state-active .gs-node__shape,.gs-node.is-state-active .gs-node__sigil,.gs-edge.is-style-flow .gs-edge__line{animation:none}.gs-node__shape,.gs-edge__line,.gs-group rect{transition:none}}.blog-content [data-fx]{-webkit-box-decoration-break:clone;box-decoration-break:clone}[data-fx=del]{background:linear-gradient(var(--fx-red),var(--fx-red))no-repeat 0 58%/0% .08em,linear-gradient(color-mix(in srgb,var(--fx-red)9%,transparent),color-mix(in srgb,var(--fx-red)9%,transparent))no-repeat 0 0/0% 100%;transition:background-size .9s cubic-bezier(.6,.05,.2,1),color .9s}[data-fx=del].is-on{color:var(--fx-tx2);background-size:100% .08em,100% 100%}[data-fx=add]{background:linear-gradient(color-mix(in srgb,var(--fx-green)18%,transparent),color-mix(in srgb,var(--fx-green)18%,transparent))no-repeat 0 0/0% 100%;transition:background-size 1s cubic-bezier(.6,.05,.2,1) .15s}[data-fx=add].is-on{background-size:100% 100%}[data-fx=type]{border:1px solid var(--fx-ui);background:var(--fx-bg2);border-radius:.45rem;margin:1.35rem 0;font-family:Geist Mono,ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.8rem;line-height:1.4;display:block;overflow:hidden}[data-fx=type] .fx-term__row{background:var(--fx-bg);align-items:center;gap:.55rem;padding:.6rem .75rem .6rem .9rem;display:flex}[data-fx=type] .fx-term__sig{color:var(--fx-green);-webkit-user-select:none;user-select:none;flex-shrink:0;font-family:Geist Pixel,Geist Mono,ui-monospace,monospace;font-size:.85rem}[data-fx=type] .fx-term__body{color:var(--fx-tx);flex:1;min-width:0}[data-fx=type] .fx-term__txt{color:var(--fx-tx)}[data-fx=type] .fx-term__ghost{visibility:hidden;pointer-events:none;-webkit-user-select:none;user-select:none}[data-fx=type] .fx-term__cur{background:var(--fx-green);vertical-align:-.15em;width:.48em;height:1.05em;margin-right:-.48em;animation:1s step-end infinite fx-blink;display:inline-block}[data-fx=type].is-running .fx-term__cur,[data-fx=type].is-branch .fx-term__cur{display:none}[data-fx=type] .fx-term__send{border:1px solid color-mix(in srgb,var(--fx-green)45%,transparent);background:color-mix(in srgb,var(--fx-green)12%,transparent);color:var(--fx-green);text-transform:uppercase;letter-spacing:.04em;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:.25rem;flex-shrink:0;align-items:center;gap:.3rem;margin-left:auto;padding:.2rem .52rem;font-family:Geist Pixel,Geist Mono,ui-monospace,monospace;font-size:.62rem;line-height:1;transition:background .2s,border-color .2s,transform .15s;display:inline-flex}[data-fx=type] .fx-term__send kbd{font-family:inherit;font-size:.72rem}[data-fx=type] .fx-term__send:hover,[data-fx=type] .fx-term__send:focus-visible{background:color-mix(in srgb,var(--fx-green)28%,transparent);border-color:var(--fx-green);outline:0}[data-fx=type] .fx-term__send:active{transform:translateY(1px)}[data-fx=type].is-done .fx-term__send{background:color-mix(in srgb,var(--fx-green)20%,transparent);border-color:var(--fx-green)}[data-fx=type].is-running .fx-term__send{border-color:var(--fx-border);background:var(--fx-bg2);color:var(--fx-tx2)}[data-fx=type] .fx-term__status{border-top:1px solid var(--fx-ui);background:var(--fx-bg2);color:var(--fx-tx2);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:.45rem;height:1.85rem;padding:0 .9rem;font-family:Geist Mono,ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.66rem;display:flex;overflow:hidden}[data-fx=type] .fx-term__status kbd,[data-fx=type] .fx-term__status code{background:var(--fx-bg);border:1px solid var(--fx-ui);color:var(--fx-tx);border-radius:.2em;padding:.04em .3em;font-family:Geist Mono,ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.92em}[data-fx=type] .fx-term__status b{color:var(--fx-green);font-family:Geist Pixel,Geist Mono,ui-monospace,monospace;font-weight:500}[data-fx=type] .fx-term__dot{background:var(--fx-tx3);border-radius:50%;flex-shrink:0;width:6px;height:6px}[data-fx=type].is-running .fx-term__dot{background:var(--fx-green);animation:.6s step-end infinite fx-blink}[data-fx=type].is-branch .fx-term__dot{background:var(--fx-green)}[data-fx=type] .fx-term__msg{text-overflow:ellipsis;min-width:0;overflow:hidden}@keyframes fx-blink{50%{opacity:0}}[data-fx=count]{font-variant-numeric:tabular-nums;font-weight:600}[data-fx=pos],[data-fx=neg]{border-radius:.25em;padding:0 .3em;font-family:Geist Mono,ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.88em}[data-fx=pos]{color:var(--fx-green);background:color-mix(in srgb,var(--fx-green)15%,transparent)}[data-fx=neg]{color:var(--fx-red);background:color-mix(in srgb,var(--fx-red)13%,transparent)}[data-fx=bar]{white-space:nowrap;font-weight:600}.fx-bar{vertical-align:.12em;background:var(--fx-ui);border-radius:.1em;width:2.6em;height:.42em;margin-left:.3em;display:inline-block;position:relative;overflow:hidden}.fx-bar i{position:absolute;top:0;bottom:0;left:0}.fx-bar .fx-bar__old{width:var(--from);background:var(--fx-tx3)}.fx-bar .fx-bar__new{background:var(--fx-tx2);transform:scaleX(var(--from-k));transform-origin:0;width:100%;transition:transform 1.4s cubic-bezier(.6,.05,.2,1) .3s}.fx-bar.is-down .fx-bar__old{background:var(--fx-red)}.fx-bar.is-up .fx-bar__new{background:var(--fx-green)}.fx-bar.is-up .fx-bar__old{z-index:1;background:var(--fx-tx2)}.is-on>.fx-bar .fx-bar__new{transform:scaleX(var(--to-k))}.fx-meter{vertical-align:.12em;background:repeating-linear-gradient(135deg,var(--fx-ui)0 2px,transparent 2px 4px);box-shadow:inset 0 0 0 1px var(--fx-ui);border-radius:.1em;width:2.4em;height:.42em;margin-left:.3em;display:inline-block;position:relative;overflow:hidden}.fx-meter i{background:var(--fx-green);transform-origin:0;width:100%;transition:transform 1.8s cubic-bezier(.6,.05,.2,1) .3s;position:absolute;inset:0 auto 0 0;transform:scaleX(0)}.is-on>.fx-meter i{transform:scaleX(var(--to-k))}.fx-spark{vertical-align:-.1em;width:3.4em;height:.95em;margin-left:.3em;display:inline-block}.fx-spark svg{width:100%;height:100%;display:block;overflow:visible}.fx-spark path{fill:none;stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;stroke-dasharray:120;stroke-dashoffset:120px}.fx-spark .fx-spark__base{stroke:var(--fx-tx3)}.fx-spark .fx-spark__hot{stroke:var(--fx-red)}.fx-spark circle{fill:var(--fx-red);opacity:0}.is-on>.fx-spark .fx-spark__base{stroke-dashoffset:0;transition:stroke-dashoffset 1.2s linear}.is-on>.fx-spark .fx-spark__hot{stroke-dashoffset:0;transition:stroke-dashoffset .6s ease-out 1.2s}.is-on>.fx-spark circle{opacity:1;transition:opacity .2s 1.6s}@media (prefers-reduced-motion:reduce){[data-fx],[data-fx] *,[data-fx]:before,[data-fx]:after{transition:none!important;animation:none!important}}.blog-content .pull-quote{border-left:3px solid var(--fx-green);color:var(--fx-tx);margin:1.8rem 0;padding:.2rem 0 .2rem 1rem;font-family:Geist Pixel,Geist Mono,ui-monospace,monospace;font-size:1.15rem;line-height:1.4}.blog-content .pull-quote p{font-size:inherit;margin:0}@media (width>=1440px){.blog-content .pull-quote{float:right;clear:right;width:11rem;margin:.35rem -12.25rem 1rem 1.25rem;font-size:.8rem}}.blog-content blockquote cite{color:var(--fx-tx3);margin-top:.35rem;font-size:.8rem;font-style:normal;display:block}.blog-content .fx-figure{margin:2.1rem 0}.blog-content .fx-figure figcaption{color:var(--fx-tx3);margin-top:.5rem;font-family:Geist Pixel,Geist Mono,ui-monospace,monospace;font-size:.68rem;line-height:1.4}.fx-figure__kicker{color:var(--fx-tx2);margin-right:.4em}.fx-figure__stage{contain:layout paint;border:1px solid var(--fx-border);background:radial-gradient(120% 90% at 50% 0%,color-mix(in srgb,var(--fx-bg)55%,transparent),transparent 70%),var(--fx-bg2);box-shadow:inset 0 1px 0 color-mix(in srgb,var(--fx-bg)75%,transparent),0 4px 18px -6px #00000014;isolation:isolate;border-radius:.55rem;font-size:.7rem;line-height:1.45;transition:border-color .35s cubic-bezier(.6,.05,.2,1),box-shadow .35s cubic-bezier(.6,.05,.2,1);position:relative;overflow:hidden}.fx-figure__stage:hover{border-color:var(--fx-tx3);box-shadow:inset 0 1px 0 color-mix(in srgb,var(--fx-bg)85%,transparent),0 8px 24px -8px #0000001f}.fx-figure__stage:before{content:"";z-index:-1;pointer-events:none;opacity:.06;image-rendering:pixelated;background-image:url(../noise-a.18542138.png);background-repeat:repeat;background-size:384px 384px;position:absolute;inset:0}@media screen and (width<=400px){.fx-figure__stage{border-left:0;border-right:0;border-radius:0;margin-left:-1rem;margin-right:-1rem}}.fxv-canvas{width:100%;display:block}.fxv-pill{z-index:2;border:1px solid var(--fx-border);background:color-mix(in srgb,var(--fx-bg)88%,transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:.35rem;gap:.22rem;padding:.16rem;display:inline-flex;position:absolute;top:.6rem;right:.7rem;box-shadow:0 2px 6px #0000000f}.fxv-pill__btn{color:var(--fx-tx2);cursor:pointer;background:0 0;border:0;border-radius:.22rem;padding:.16rem .5rem;font-family:Geist Pixel,Geist Mono,ui-monospace,monospace;font-size:.56rem;transition:background .25s cubic-bezier(.6,.05,.2,1),color .25s cubic-bezier(.6,.05,.2,1),transform .15s}.fxv-pill__btn:hover,.fxv-pill__btn:focus-visible{color:var(--fx-tx);outline:0}.fxv-pill__btn:active{transform:scale(.96)}.fxv-pill__btn.is-active{background:color-mix(in srgb,var(--fx-green)20%,transparent);color:var(--fx-green)}.fxf{min-height:250px}.fxf-svg{position:absolute;inset:0;overflow:visible}.fxf-pipe{fill:none;stroke:var(--fx-tx3);stroke-width:1.5px;transition:stroke .6s,opacity .6s}.fxf-pipe.is-harness{stroke-dasharray:3 6;opacity:.6}.is-local .fxf-pipe.is-harness{stroke:var(--fx-green);stroke-dasharray:none;opacity:1}.fxf-node{border:1px solid var(--fx-ui);background:var(--fx-bg);border-radius:.35rem;padding:.4rem .55rem;transition:opacity .6s,border-color .6s,transform .3s;position:absolute}.fxf-node__title{color:var(--fx-tx);font-family:Geist Pixel,Geist Mono,ui-monospace,monospace;font-size:.68rem}.fxf-node__count{color:var(--fx-tx2);margin-top:.1rem;font-family:Geist Mono,ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.62rem}.fxf-node__count b{color:var(--fx-tx);font-variant-numeric:tabular-nums;font-weight:600}.fxf-you{border-color:var(--fx-tx2);text-align:center}.fxf-you .fxf-node__title{justify-content:center;font-size:.78rem}.fxf-sink.is-harness{opacity:.55;border-style:dashed}.is-local .fxf-sink.is-harness{opacity:1;border-style:solid;border-color:color-mix(in srgb,var(--fx-green)60%,var(--fx-bg))}.fxf-sink.is-harness.is-ping{animation:.6s ease-out fxf-ping}@keyframes fxf-ping{30%{border-color:var(--fx-green);box-shadow:0 0 0 4px color-mix(in srgb,var(--fx-green)18%,transparent);transform:scale(1.04)}}.fxf-toggle{border:1px solid var(--fx-border);background:var(--fx-bg);color:var(--fx-tx2);cursor:pointer;border-radius:2rem;align-items:center;gap:.4rem;padding:.25rem .55rem;font-family:Geist Pixel,Geist Mono,ui-monospace,monospace;font-size:.58rem;display:inline-flex;position:absolute;bottom:.6rem;left:50%;transform:translate(-50%)}.fxf-toggle:focus-visible{outline:2px solid var(--fx-tx3);outline-offset:2px}.fxf-toggle__track{background:var(--fx-ui);border-radius:1rem;width:1.5rem;height:.8rem;transition:background .3s;position:relative}.fxf-toggle__track i{background:var(--fx-bg);border-radius:50%;width:.6rem;height:.6rem;transition:transform .3s cubic-bezier(.6,.05,.2,1);position:absolute;top:.1rem;left:.1rem;box-shadow:0 1px 2px #00000040}.is-local .fxf-toggle__track{background:var(--fx-green)}.is-local .fxf-toggle__track i{transform:translate(.7rem)}.fxk-canvas{display:block}.fxk-hud{pointer-events:none;position:absolute;top:.6rem;left:.85rem;right:.85rem}.fxk-hud__main{color:var(--fx-tx2);font-family:Geist Pixel,Geist Mono,ui-monospace,monospace;font-size:.68rem}.fxk-green{color:var(--fx-green)}.fxl{padding:.65rem .85rem .8rem}.fxl-head{color:var(--fx-tx3);justify-content:space-between;margin-bottom:.35rem;font-family:Geist Pixel,Geist Mono,ui-monospace,monospace;font-size:.6rem;display:flex}.fxl-legend{color:var(--fx-tx2);align-items:center;gap:.35rem;display:inline-flex}.fxl-legend__line{border-top:1.5px dashed var(--fx-red);width:1.2rem}.fxl-ladder{--step:1.5rem;margin:0;padding:0 0 0 1.1rem;list-style:none;position:relative}@media (width<=680px){.fxl-ladder{--step:.55rem}}.fxl-rung{width:calc(100% - 7*var(--step));margin:.24rem 0 0 calc(var(--i)*var(--step));border:1px solid var(--fx-ui);background:var(--fx-bg);border-radius:.28rem;justify-content:space-between;align-items:center;gap:.6rem;padding:.32rem .5rem;transition:border-color .4s,background .4s;display:flex}.fxl-rung.is-open{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--fx-tx3)14%,transparent)0 2px,transparent 2px 6px),var(--fx-bg)}.fxl-rung.is-check{border-color:color-mix(in srgb,var(--fx-green)45%,var(--fx-bg));background:color-mix(in srgb,var(--fx-green)9%,var(--fx-bg))}.fxl-rung__bar{background:var(--fx-tx3);opacity:.45;border-radius:2px;flex:1;height:4px;transition:background .4s,opacity .4s}.is-check .fxl-rung__bar{background:var(--fx-green);opacity:.85}.is-open .fxl-rung__bar{border-top:1px dashed var(--fx-tx3);background:0 0;height:1px}.fxl-rung__badge{color:var(--fx-tx3);border-radius:.18rem;flex:none;padding:0 .3rem;font-family:Geist Pixel,Geist Mono,ui-monospace,monospace;font-size:.54rem}.is-check .fxl-rung__badge{color:var(--fx-green)}.fxl-boundary{border-top:1.5px dashed var(--fx-red);pointer-events:none;height:0;margin-top:.12rem;transition:transform .6s cubic-bezier(.6,.05,.2,1);position:absolute;top:0;left:0;right:0}.fxl-you{color:var(--fx-tx);margin-top:-.28rem;font-size:.55rem;line-height:1;transition:transform .6s cubic-bezier(.6,.05,.2,1);position:absolute;top:0;left:0}.blog-content .fx-project-footer{border-top:1px solid var(--fx-ui);margin-top:3.25rem;padding-top:2rem}.fx-project-footer__desc{color:var(--fx-tx2);margin:0 0 1.35rem!important;font-size:.88rem!important;line-height:1.5!important}.fx-project-footer__link{opacity:.88;width:100%;transition:opacity .25s cubic-bezier(.6,.05,.2,1),transform .25s cubic-bezier(.6,.05,.2,1);display:block;text-decoration:none!important}.fx-project-footer__link:hover,.fx-project-footer__link:focus-visible{opacity:1;outline:0;transform:translateY(-1px)}.fx-project-footer__wordmark{width:100%;height:auto;display:block}@media (prefers-color-scheme:dark){.fx-project-footer__wordmark{filter:invert()}}@media (prefers-reduced-motion:reduce){.fx-figure *,.fx-figure :before,.fx-figure :after{transition:none!important;animation:none!important}}html{font-size:20px}@font-face{font-family:Geist Pixel;src:url(https://cdn.jsdelivr.net/npm/geist@1.7.0/dist/fonts/geist-pixel/GeistPixel-Square.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}:root{--fx-bg:#fffcf0;--fx-bg2:#f2f0e5;--fx-ui:#e6e4d9;--fx-ui-h:#dad8ce;--fx-border:#cecdc3;--fx-tx:#100f0f;--fx-tx2:#6f6e69;--fx-tx3:#b7b5ac;--fx-red:#af3029;--fx-orange:#bc5215;--fx-yellow:#ad8301;--fx-green:#66800b;--fx-cyan:#24837b;--fx-blue:#205ea6;--fx-purple:#5e409d;--fx-magenta:#a02f6f}@media (prefers-color-scheme:dark){:root{--fx-bg:#100f0f;--fx-bg2:#1c1b1a;--fx-ui:#282726;--fx-ui-h:#343331;--fx-border:#403e3c;--fx-tx:#e1e0d5;--fx-tx2:#878580;--fx-tx3:#575653;--fx-red:#d14d41;--fx-orange:#da702c;--fx-yellow:#d0a215;--fx-green:#879a39;--fx-cyan:#3aa99f;--fx-blue:#4385be;--fx-purple:#8b7ec8;--fx-magenta:#ce5d97}}.blog-page{color:var(--fx-tx);background:var(--fx-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh}.blog-canvas{min-height:100vh;position:relative}.blog-shell{width:min(100%,48rem);margin:0 auto;padding:3rem 1.5rem 4rem;position:relative}@media screen and (width<=1000px){.blog-shell{width:100%;padding:2rem 1.25rem 3rem}}@media screen and (width<=400px){.blog-shell{padding:1.5rem 1rem 2.5rem}}.blog-shell:has(>.blog-content>.graph-story.is-trigger-scroll:last-child){padding-bottom:0}.blog-kicker{letter-spacing:.06em;text-transform:uppercase;color:var(--fx-orange);margin-bottom:.25rem;font-family:Figtree,system-ui,sans-serif;font-size:.75rem;font-weight:600;display:inline-block}.blog-title{color:var(--fx-tx);text-shadow:0 0 5px var(--fx-tx),0 0 12px var(--fx-tx);margin-bottom:.2rem;font-family:Geist Pixel,Geist Mono,ui-monospace,monospace;font-size:3rem;font-weight:500;line-height:1.15;animation:5s step-end infinite title-flicker;position:relative}@media screen and (width<=1000px){.blog-title{font-size:2.15rem}}.blog-title:before,.blog-title:after{content:attr(data-text);pointer-events:none;opacity:.7;position:absolute;top:0;left:0;right:0;overflow:hidden}.blog-title:before{text-shadow:-1px 0 var(--fx-red);animation:4s step-end infinite glitch-top}.blog-title:after{text-shadow:1px 0 var(--fx-blue);animation:4s step-end .15s infinite glitch-bottom}@keyframes title-flicker{0%,19.9%,22%,62.9%,64%,64.9%,70%,to{opacity:.99;text-shadow:0 -2px 8px var(--fx-tx2),0 0 2px var(--fx-tx2),0 0 5px var(--fx-tx2),0 0 15px var(--fx-tx2),0 0 2px var(--fx-tx),0 2px 3px var(--fx-bg)}20%,21.9%,63%,63.9%,65%,69.9%{opacity:.4;text-shadow:none}}@keyframes glitch-top{0%,to{clip-path:inset(0 0 100%);transform:none}5%{clip-path:inset(42% 0 44%);transform:translate(-1px)}10%{clip-path:inset(0 0 100%);transform:none}20%{clip-path:inset(63% 0 27%);transform:translate(1px)}25%{clip-path:inset(0 0 100%);transform:none}55%{clip-path:inset(5% 0 82%);transform:translate(-1px)}60%{clip-path:inset(0 0 100%);transform:none}85%{clip-path:inset(54% 0 30%);transform:translate(1px)}90%{clip-path:inset(0 0 100%);transform:none}}@keyframes glitch-bottom{0%,to{clip-path:inset(0 0 100%);transform:none}10%{clip-path:inset(48% 0 30%);transform:translate(1px)}15%{clip-path:inset(0 0 100%);transform:none}45%{clip-path:inset(25% 0 50%);transform:translate(-1px)}50%{clip-path:inset(0 0 100%);transform:none}70%{clip-path:inset(28% 0 52%);transform:translate(1px)}75%{clip-path:inset(0 0 100%);transform:none}90%{clip-path:inset(45% 0 35%);transform:translate(-1px)}95%{clip-path:inset(0 0 100%);transform:none}}.blog-subtitle{color:var(--fx-tx2);margin-bottom:2rem;font-family:Figtree,system-ui,sans-serif;font-size:1rem;line-height:1.5}.blog-post-list{list-style:none}.blog-post-card{color:inherit;border-radius:.4rem;margin-bottom:1px;padding:1.1rem 1.25rem;text-decoration:none;transition:background .15s;display:block}.blog-post-card:hover,.blog-post-card:focus-visible{background:var(--fx-bg2);outline:0}.blog-post-card__title{color:var(--fx-tx);text-shadow:0 0 3px var(--fx-tx2),0 0 8px var(--fx-tx3);margin-bottom:.2rem;font-family:Geist Pixel,Geist Mono,ui-monospace,monospace;font-size:1.35rem;font-weight:500;line-height:1.3}.blog-post-card__meta{color:var(--fx-tx3);flex-wrap:wrap;gap:.4rem;margin-bottom:.25rem;font-family:Figtree,system-ui,sans-serif;font-size:.8rem;display:flex}.blog-post-card__description{color:var(--fx-tx2);margin:0;font-family:Figtree,system-ui,sans-serif;font-size:.95rem;line-height:1.5}.blog-post .blog-title{margin-bottom:.4rem}.blog-post .blog-post-card__meta{margin-bottom:2.5rem}.blog-decor-canvas{z-index:0;pointer-events:none;opacity:.85;width:100%;height:100%;position:absolute;inset:0}@media screen and (width<=1000px){.blog-decor-canvas{opacity:.65}}.blog-defs{width:0;height:0;position:absolute;overflow:hidden}.blog-pictograms{z-index:0;pointer-events:none;color:var(--fx-tx3);position:absolute;inset:0;overflow:hidden}@media screen and (width<=1000px){.blog-pictograms{opacity:.55}.blog-pictogram-wrap--left{left:min(var(--left),8%)!important}.blog-pictogram-wrap--right{left:max(var(--left),92%)!important}}.blog-pictogram-wrap{left:var(--left);top:var(--top);opacity:var(--pictogram-opacity);position:absolute;transform:translate(-50%,-50%)}.blog-pictogram{width:1rem;height:1rem;display:block}@media (prefers-color-scheme:dark){.blog-pictogram{filter:drop-shadow(0 0 2px var(--fx-tx3))}}.blog-content{color:var(--fx-tx);font-family:Figtree,system-ui,sans-serif;font-size:1rem;line-height:1.7}.blog-content>*+*{margin-top:1.15rem}.blog-content h1,.blog-content h2,.blog-content h3,.blog-content h4{color:var(--fx-tx);text-shadow:0 0 3px var(--fx-tx2),0 0 8px var(--fx-tx3);margin-bottom:.4rem;font-family:Geist Pixel,Geist Mono,ui-monospace,monospace;font-weight:500;line-height:1.25}.blog-content h1{margin-top:2.25rem;font-size:1.85rem}.blog-content h2{margin-top:1.75rem;font-size:1.45rem}.blog-content h3{margin-top:1.35rem;font-size:1.2rem}.blog-content p,.blog-content ul,.blog-content ol,.blog-content blockquote{font-size:1rem}.blog-content ul,.blog-content ol{padding-left:1.4rem}.blog-content li{margin-bottom:.3rem}.blog-content li::marker{color:var(--fx-tx3)}.blog-content a{color:var(--fx-blue);text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb,var(--fx-blue)30%,transparent);-webkit-text-decoration-color:color-mix(in srgb,var(--fx-blue)30%,transparent);text-decoration-color:color-mix(in srgb,var(--fx-blue)30%,transparent);text-underline-offset:.15em;transition:text-decoration-color .15s}.blog-content a:hover{-webkit-text-decoration-color:var(--fx-blue);-webkit-text-decoration-color:var(--fx-blue);text-decoration-color:var(--fx-blue)}.blog-content code{background:var(--fx-bg2);color:var(--fx-tx);border-radius:.2em;padding:.12em .3em;font-family:Geist Mono,ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.88em}.blog-content pre{background:var(--fx-ui);color:var(--fx-tx);border-radius:.4rem;margin-top:1.25rem;margin-bottom:1.25rem;padding:1rem 1.25rem;line-height:1.55;overflow-x:auto}@media screen and (width<=400px){.blog-content pre{border-radius:0;margin-left:-1rem;margin-right:-1rem;padding:.85rem}}.blog-content pre code{color:inherit;background:0 0;padding:0;font-size:.85rem}.blog-content blockquote{border-left:3px solid var(--fx-border);color:var(--fx-tx2);margin-left:0;padding:.1rem 0 .1rem 1.15rem;font-style:italic}.blog-content hr{border:none;border-top:1px solid var(--fx-ui);margin:2rem 0}.blog-content table{border-collapse:collapse;width:100%;margin-top:1.25rem;margin-bottom:1.25rem;font-size:.92rem}.blog-content th,.blog-content td{text-align:left;border-bottom:1px solid var(--fx-ui);padding:.55rem .75rem}.blog-content th{color:var(--fx-tx);text-shadow:0 0 3px var(--fx-tx2),0 0 8px var(--fx-tx3);border-bottom:2px solid var(--fx-border);font-family:Geist Pixel,Geist Mono,ui-monospace,monospace;font-size:.85rem;font-weight:500}.blog-content td{color:var(--fx-tx2)}.blog-content tr:last-child td{border-bottom:none}.blog-content img{border-radius:.3rem;max-width:100%;height:auto}.blog-back-link{color:var(--fx-tx2);align-items:center;gap:.25rem;margin-bottom:1.75rem;font-family:Figtree,system-ui,sans-serif;font-size:.85rem;text-decoration:none;transition:color .15s;display:inline-flex}.blog-back-link:hover,.blog-back-link:focus-visible{color:var(--fx-tx);outline:0}.blog-back-link:before{content:"←"}@media not all and (prefers-color-scheme:dark){.blog-title{text-shadow:none;animation:none}.blog-title:before,.blog-title:after{display:none}.blog-post-card__title,.blog-content h1,.blog-content h2,.blog-content h3,.blog-content h4{text-shadow:none}.blog-pictogram{filter:none}}
/*# sourceMappingURL=index.2056930e.css.map */
