@font-face{font-family:Berkeley Mono;src:url(/fonts/BerkeleyMono-Regular.otf)format("opentype");font-display:swap}@font-face{font-family:Departure Mono;src:url(/fonts/DepartureMono-Regular.woff2)format("woff2");font-display:swap}:root{--bg:#0d0d0b;--fg:#f3f3ee;--muted:#aaa8a1;--faint:#7a7871;--fill:color-mix(in srgb, var(--fg) 7%, transparent);--fill-hi:color-mix(in srgb, var(--fg) 15%, transparent);--line:color-mix(in srgb, var(--muted) 30%, transparent);--red:#cf8078;--blue:#8daab9;--amber:#c5ae6a;--navy:#7c86d9;--mono:"Berkeley Mono", ui-monospace, monospace;--pixel:"Departure Mono", "Berkeley Mono", ui-monospace, monospace;--ease:cubic-bezier(.2, .7, .1, 1);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}@media (prefers-color-scheme:light){:root{--bg:#fdfdfc;--fg:#1a1a1a;--muted:#6b6b66;--faint:#a3a39c;--red:#b34d48;--blue:#42677b;--amber:#947322;--navy:#1e2139;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}html{overscroll-behavior:none}@media (width>=641px){html:not(:has(.dev)){zoom:1.2}}body{overscroll-behavior:none;background:var(--bg);color:var(--muted);font-family:var(--mono);-webkit-font-smoothing:antialiased;margin:0;font-size:.875rem;line-height:1.6}h1,h2,h3{color:var(--fg);font-weight:400;font-size:inherit;margin:0}p,figure{margin:0}img{max-width:100%}.site{box-sizing:border-box;max-width:80rem;margin-inline:auto;padding:2.5rem 2rem 3rem}.top{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.top .who{color:var(--fg)}.top nav{font-family:var(--pixel);text-transform:uppercase;letter-spacing:.03em;gap:1.25rem;font-size:.6875rem;display:flex}.top nav a{color:var(--muted);transition:color .2s;position:relative}.top nav a .dots{opacity:0;transition:opacity .2s, transform .3s var(--ease);position:absolute;top:50%;translate:0 -50%}.top nav a .dots:first-child{right:100%;transform:translate(-.125rem)}.top nav a .dots:last-child{left:100%;transform:translate(.125rem)}.top nav a:is(:hover,:focus-visible,[aria-current]){color:var(--fg)}.top nav a:is(:hover,:focus-visible,[aria-current]) .dots{opacity:1}.top nav a:is(:hover,:focus-visible,[aria-current]) .dots:first-child{transform:translate(-.3rem)}.top nav a:is(:hover,:focus-visible,[aria-current]) .dots:last-child{transform:translate(.3rem)}.top nav a[aria-current]>.dots{color:var(--c,currentColor)}.top nav a .back{margin-right:.25rem}.top nav a .back .dots.dots{opacity:1;position:static;transform:translate(0,0)}html.crt-off body{animation:.17s cubic-bezier(.6,0,.9,.4) both crt-off}@keyframes crt-off{60%{clip-path:inset(49.5% 0);filter:brightness(2)}to{clip-path:inset(50%);filter:brightness(3)}}@keyframes crt-on{0%{clip-path:inset(49.5% 0);filter:brightness(2)}45%{clip-path:inset(49.5% 0)}to{clip-path:inset(0);filter:none}}@media (prefers-reduced-motion:reduce){html.crt-off body{animation:none}}.blk{padding-bottom:4.5rem}.blk.first{padding-top:6rem}@media (width>=1152px){.blk{margin-left:var(--off,0%);width:var(--w,100%);padding-bottom:var(--gap,7.5rem)}.blk.first{padding-top:8.5rem}}@font-face{font-family:Iosevka Charon Mono;src:url(/fonts/IosevkaCharonMono-Regular.woff2)format("woff2");font-display:block}@font-face{font-family:Nonicons;src:url(/fonts/nonicons.woff2?v=2)format("woff2");font-display:block}.label{font-family:var(--pixel);text-transform:uppercase;letter-spacing:.03em;color:var(--muted);align-items:center;margin:0 0 1rem;font-size:.6875rem;line-height:1;display:flex;position:relative}.label:before{--d:var(--dot,var(--faint));content:"";background:var(--d);width:7.5px;height:7.5px;position:absolute;top:calc(50% - 3.75px);right:calc(100% + .5rem);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 9 9'%3E%3Cpath d='M0 0h4v4H0zM5 0h4v4H5zM0 5h4v4H0zM5 5h4v4H5z'/%3E%3C/svg%3E") 0 0/100% 100%;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 9 9'%3E%3Cpath d='M0 0h4v4H0zM5 0h4v4H5zM0 5h4v4H0zM5 5h4v4H5z'/%3E%3C/svg%3E") 0 0/100% 100%}.label.red{--dot:var(--red)}.label.blue{--dot:var(--blue)}.label.amber{--dot:var(--amber)}.label.navy{--dot:var(--navy)}.fig{font-family:var(--pixel);color:var(--faint);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.6875rem}.fig .dots{color:var(--muted)}.rows{gap:.125rem;margin:0 -.5rem;padding:0;list-style:none;display:grid}.rows .row{border-radius:.1875rem;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:1.25rem;padding:.6rem .5rem;transition:background-color .15s;display:grid}.rows .row .name{color:var(--fg)}@media (hover:hover){.rows .row:hover{background:var(--fill)}}.foot{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1.25rem 2.5rem;padding-bottom:0;display:flex}.elsewhere{font-family:var(--pixel);text-transform:uppercase;letter-spacing:.03em;flex-wrap:wrap;gap:.4rem .9rem;font-size:.6875rem;display:flex}.colophon{font-family:var(--pixel);color:var(--faint);text-align:right;text-transform:uppercase;letter-spacing:.03em;font-size:.6875rem;line-height:1.8}main.not-found{text-align:center;place-items:center;min-height:min(60vh,24rem);display:grid}@media (width<=640px){body{font-size:.8125rem;line-height:1.5}.site{padding:1.5rem 24px 2rem}.blk{padding-bottom:3.5rem}.blk.first{padding-top:3.5rem}.colophon{text-align:left}}main.thought{padding-block:5rem 4.5rem;font-size:1rem;line-height:1.75}main.thought h1{letter-spacing:-.015em;text-wrap:balance;font-size:1.875rem;line-height:1.2}main.thought .meta{font-family:var(--pixel);text-transform:uppercase;letter-spacing:.03em;color:var(--faint);flex-wrap:wrap;gap:.35rem 1.25rem;margin-top:.75rem;margin-bottom:1.5rem;font-size:.6875rem;line-height:1.5;display:flex}main.thought .meta>:first-child{color:var(--muted)}main.thought article>:not(header,figure,pre,.code,.callout){max-width:62ch}.toc{display:none}@media (width>=1152px){.thought-grid{grid-template-columns:repeat(12,minmax(0,1fr));column-gap:1.25rem;display:grid}.thought-grid>main.thought{grid-column:1/span 9;min-width:0}main.thought{padding-top:8.5rem}main.thought article{grid-template-columns:repeat(9,minmax(0,1fr));column-gap:1.25rem;display:grid}main.thought article>*{grid-column:3/span 7;min-width:0}main.thought article>header{display:contents}main.thought article>header p.meta{flex-direction:column;grid-area:1/1/span 2/span 2;align-self:start;margin:0;padding-top:.61rem}main.thought article>header h1{grid-column:3/span 7;margin-bottom:3rem}.toc{grid-column:10/span 3;padding-top:12.5rem;display:block}.toc-in{position:sticky;top:2.5rem}.toc-label{font-family:var(--pixel);text-transform:uppercase;letter-spacing:.03em;color:var(--faint);margin-bottom:.6rem;font-size:.6875rem}.toc-list{padding-left:1.1rem;position:relative}.toc ol{margin:0;padding:0;list-style:none}.toc-rail{cursor:pointer;touch-action:none;width:15.5px;position:absolute;top:.75rem;bottom:.75rem;left:-4px}.toc-rail:before{content:"";background:linear-gradient(var(--faint) 50%, transparent 0) 0 0 / 1px 4px repeat-y;opacity:.6;width:1px;position:absolute;top:0;bottom:0;left:7.25px}.toc-mark{background:var(--blue);cursor:grab;touch-action:none;width:7.5px;height:7.5px;position:absolute;left:0;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 9 9'%3E%3Cpath d='M0 0h4v4H0zM5 0h4v4H5zM0 5h4v4H0zM5 5h4v4H5z'/%3E%3C/svg%3E") 0 0/100% 100%;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 9 9'%3E%3Cpath d='M0 0h4v4H0zM5 0h4v4H5zM0 5h4v4H0zM5 5h4v4H5z'/%3E%3C/svg%3E") 0 0/100% 100%}.toc-mark:after{content:"";position:absolute;inset:-6px}.toc-list.dragging,.toc-list.dragging .toc-mark{cursor:grabbing}.toc-list.dragging{-webkit-user-select:none;user-select:none}.toc-label{align-items:center;gap:.5rem;display:flex}.toc-read{color:var(--muted);font-variant-numeric:tabular-nums}.toc-read .dots{margin-inline:.3rem}.toc-read .dots:first-child{margin-left:0}.toc li a{color:var(--muted);padding-block:.3rem;font-size:.75rem;line-height:1.45;transition:color .15s;display:block}.toc li a:is(:hover,.on){color:var(--fg)}}main.thought h2{letter-spacing:-.01em;text-wrap:balance;margin-block:3.25rem 1rem;scroll-margin-top:2rem;font-size:1.1875rem;line-height:1.35}main.thought h2 a{color:inherit;position:relative}main.thought h2 a:before{content:"#";color:var(--faint);opacity:0;margin-right:.6em;transition:opacity .15s;position:absolute;right:100%}main.thought h2 a:is(:hover,:focus-visible):before{opacity:1}html{scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}main.thought figure img{cursor:zoom-in}.zoom-veil{z-index:20;cursor:zoom-out;background:color-mix(in srgb, var(--bg) 0%, transparent);transition:background-color .3s var(--ease);position:fixed;inset:0}.zoom-veil.on{background:color-mix(in srgb, var(--bg) 94%, transparent)}.zoom-img{transform-origin:0 0;max-width:none;transition:transform .35s var(--ease);position:fixed}@media (prefers-reduced-motion:reduce){.zoom-veil,.zoom-img{transition:none}}main.thought article p{margin-block:1em}@media (width<=1151px){main.thought article>header p.meta{margin-block:.75rem 1.5rem}}@media (width<=640px){main.thought{padding-top:3.5rem;font-size:.9375rem;line-height:1.65}main.thought h1{font-size:1.5rem}main.thought h2{margin-top:2.5rem;font-size:1.0625rem}main.thought article>header p.meta{margin-bottom:2.25rem}}figure{margin-inline:0}.filetree{background:color-mix(in srgb, var(--fg) 7%, transparent);border-radius:.375rem;margin-block:1.5rem;padding:1rem;overflow-x:auto}.ft-row{white-space:nowrap;gap:1.25rem;display:flex}.ft-name{color:var(--fg)}.ft-note{color:var(--muted)}.ft-note:before{content:"# "}code,pre,kbd,samp{font-family:inherit;font-size:1em}code{color:var(--fg)}em,i{font-synthesis:style;font-style:italic}p>code{background:color-mix(in srgb, var(--fg) 10%, transparent);border-radius:.25rem;padding:.12em .35em}pre{box-sizing:border-box;background:color-mix(in srgb, var(--fg) 7%, transparent);border-radius:.375rem;width:max-content;max-width:100%;margin-block:1.5rem;padding:1rem;overflow-x:auto}pre code{background:0 0;padding:0}.code{background:color-mix(in srgb, var(--fg) 7%, transparent);border-radius:.375rem;margin-block:1.5rem;overflow:hidden}.code-bar{border-bottom:1px solid var(--line);font-family:var(--pixel);color:var(--muted);justify-content:space-between;align-items:center;gap:1rem;padding:.5rem 1rem;font-size:.6875rem;line-height:1.4;display:flex}.code-name{align-items:center;gap:.7rem;display:inline-flex}.code-icon{color:var(--muted);font-family:Nonicons;font-size:.75rem;line-height:1}.code-copy{font:inherit;color:var(--faint);cursor:pointer;background:0 0;border:0;padding:0;transition:color .15s}.code-copy:is(:hover,:focus-visible){color:var(--fg)}.code pre{background:0 0;border-radius:0;width:auto;max-width:none;margin:0}.code.numbered pre code{counter-reset:ln}.code.numbered .line:before{counter-increment:ln;content:counter(ln);text-align:right;width:2ch;color:var(--faint);margin-right:1.5ch;display:inline-block}.code-more{opacity:0;pointer-events:none;position:absolute}.code.fold:not(:has(.code-more:checked)) pre{max-height:calc(var(--shown) * 1lh + 1rem);overflow:hidden;-webkit-mask-image:linear-gradient(#000 calc(100% - 3rem),#0000);mask-image:linear-gradient(#000 calc(100% - 3rem),#0000)}.code-expand{border-top:1px solid var(--line);font-family:var(--pixel);text-align:center;color:var(--faint);cursor:pointer;padding:.5rem 1rem;font-size:.6875rem;transition:color .15s;display:block}.code-expand:hover,.code-more:focus-visible+.code-body+.code-expand{color:var(--fg)}.code:has(.code-more:checked) .code-expand{display:none}a{color:var(--fg);background:var(--fill);-webkit-box-decoration-break:clone;box-decoration-break:clone;margin:0 -.06em;padding:0 .18em;text-decoration:none;transition:background-color .15s,color .15s}a:not(.bare):is(:hover,:focus-visible){background:var(--fg);color:var(--bg)}a.bare{background:0 0;margin:0;padding:0}a:focus-visible{outline:1px solid var(--fg);outline-offset:2px}a code{color:inherit}p>a>code{background:0 0;padding:0}.callout{margin-block:1.5rem;padding-left:1rem}.callout-label{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-size:.8em}.callout-label p{margin:0}.callout>:first-child{margin-top:0}.callout>:last-child{margin-bottom:0}.callout>p{margin-block:.25rem 0}:is(.autonomy,.sans-io) figure{margin:2rem 0}:is(.autonomy,.sans-io) .diagram-scroll{border:.0625rem solid color-mix(in srgb, var(--muted) 45%, transparent);border-radius:.375rem;padding:clamp(.75rem,2.4vw,1.25rem);overflow-x:auto}:is(.autonomy,.sans-io) .diagram-scroll:focus-visible{outline:.0625rem solid var(--fg);outline-offset:.25rem}:is(.autonomy,.sans-io) figure img{width:100%;min-width:32rem;max-width:none;height:auto;display:block}:is(.autonomy,.sans-io) figcaption{margin-top:.75rem;font-size:.85em}mark{color:var(--fg);-webkit-box-decoration-break:clone;box-decoration-break:clone;background:#e6c23724;padding:.08em .12em}@media (prefers-color-scheme:light){mark{background:#fadc4b42}}.shiki,.shiki span{color:var(--shiki-dark)}.shiki span{font-style:var(--shiki-dark-font-style);font-weight:var(--shiki-dark-font-weight);font-synthesis:style weight}@media (prefers-color-scheme:light){.shiki,.shiki span{color:var(--shiki-light)}.shiki span{font-style:var(--shiki-light-font-style);font-weight:var(--shiki-light-font-weight)}}.code-defs [data-def]{-webkit-text-decoration:underline solid color-mix(in srgb, currentColor 30%, transparent);text-decoration:underline solid color-mix(in srgb, currentColor 30%, transparent);text-underline-offset:.25em;outline:none;text-decoration-thickness:.0625rem}.code-defs [data-def]:is(:hover,:focus-visible,[aria-describedby]){text-decoration-color:currentColor}.def-pop{z-index:11;box-sizing:border-box;border:.0625rem solid color-mix(in srgb, var(--muted) 45%, transparent);background:color-mix(in srgb, var(--fg) 7%, var(--bg));max-width:min(48rem,100vw - 1.5rem);color:var(--fg);opacity:0;visibility:hidden;pointer-events:none;padding:.75rem 1rem;transition:opacity .12s,visibility 0s linear .12s;position:fixed;top:0;left:0}.def-pop.on{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .12s}.def-pop.on.passive{pointer-events:none}.def-pop pre{white-space:pre-wrap;overflow-wrap:anywhere;background:0 0;border-radius:0;width:auto;max-width:none;margin:0;padding:0;overflow:visible}.def-owner,.def-doc{color:var(--muted)}.def-doc{max-width:60ch;margin-top:.5rem}.def-doc p{margin:0 0 .35rem}.def-doc p:last-child{margin-bottom:0}.def-doc code{color:inherit;background:0 0;padding:0}.def-link{margin-top:.35rem;display:inline-block}
