.sprite.svelte-1s1vzji{position:absolute;width:0;height:0;overflow:hidden}symbol.svelte-1s1vzji *{vector-effect:non-scaling-stroke}symbol.svelte-1s1vzji .f{fill:currentColor;stroke:none}.frame.svelte-1k8smb3{position:fixed;right:16px;bottom:16px;z-index:50;max-width:320px;padding:10px 12px;border:1px solid var(--line-strong);border-radius:var(--radius);background:var(--bg)}@media (max-width: 479px){.frame.svelte-1k8smb3{left:16px;right:16px;max-width:none}}.bar.svelte-1k8smb3{display:flex;flex-wrap:wrap;align-items:center;gap:14px}.text.svelte-1k8smb3{color:var(--soft);white-space:nowrap}.text.svelte-1k8smb3 b:where(.svelte-1k8smb3),.head.svelte-1k8smb3 b:where(.svelte-1k8smb3){font-weight:400;color:var(--fg)}.actions.svelte-1k8smb3{display:flex;gap:8px;margin-left:auto}.tap.svelte-1k8smb3{flex:none}.bar-error.svelte-1k8smb3,.stage-error.svelte-1k8smb3{margin-top:4px;font:var(--text-footnote);color:var(--negative);overflow-wrap:anywhere}.bar-note.svelte-1k8smb3{margin-top:4px;font:var(--text-footnote);color:var(--soft)}.toast.svelte-1k8smb3{position:relative;display:grid;gap:14px}.head.svelte-1k8smb3{color:var(--fg)}.stages.svelte-1k8smb3{display:grid;gap:6px}.line.svelte-1k8smb3{display:flex;align-items:center;gap:8px;color:var(--soft)}.stage-error.svelte-1k8smb3{margin-left:14px}.dot.svelte-1k8smb3{flex:none;width:6px;height:6px;border-radius:50%;border:1px solid var(--line-node)}.dot.running.svelte-1k8smb3{border-color:var(--fg)}.dot.done.svelte-1k8smb3{border-color:var(--fg);background:var(--fg)}.dot.failed.svelte-1k8smb3{border-color:var(--negative);background:var(--negative)}.dot.ready.svelte-1k8smb3{border-color:var(--positive);background:var(--positive)}.dot.unconfirmed.svelte-1k8smb3{border-color:var(--soft)}.label.running.svelte-1k8smb3,.label.done.svelte-1k8smb3{color:var(--fg)}.label.failed.svelte-1k8smb3{color:var(--negative)}.label.ready.svelte-1k8smb3{color:var(--positive)}.label.unconfirmed.svelte-1k8smb3{color:var(--soft)}.open.svelte-1k8smb3{position:relative;z-index:1;color:var(--fg);border-bottom:1px solid var(--line-strong)}.open.svelte-1k8smb3:hover{border-color:var(--fg)}.close.svelte-1k8smb3{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;border-radius:var(--radius)}:root{--bg: #131313;--fg: #F3F0E8;--muted: #6E6C67;--soft: rgb(243 240 232 / .62);--line: rgb(243 240 232 / .16);--line-strong: rgb(243 240 232 / .24);--line-focus: rgb(243 240 232 / .3);--line-eyelet: rgb(243 240 232 / .45);--line-node: rgb(243 240 232 / .6);--fill: rgb(243 240 232 / .14);--positive: #7BC99A;--negative: #E8786B;--sans: "Geist", "Helvetica Neue", Helvetica, Arial, sans-serif;--mono: "Geist Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;--serif: "Source Serif 4", "Source Serif Pro", Georgia, serif;--column: 472px;--gutter: 20px;--rule-gap: 32px;--group-gap: 48px;--section-gap: 64px;--radius: 12px;--radius-small: 4px;--indent: 30px;--card-pad: 16px;--card-inset: 12px;--page-top: 56px;--head-gap: 56px;--bar-height: 56px;--slow: .42s cubic-bezier(.4, 0, .2, 1);--text-micro: 10px;--text-read: 300 15px/1.65 var(--sans);--text-quote: 300 14.5px/1.65 var(--sans);--text-footnote: 300 12px/1.6 var(--sans);--text-title: 400 27px/1.15 var(--serif);--text-subtitle: italic 400 15px/1.3 var(--serif);--text-card-title: 400 17px/1.25 var(--serif);--text-card-subtitle: italic 400 13.5px/1.35 var(--serif);--text-small: 300 13px/1.6 var(--sans);--text-page-title: 400 30px/1.1 var(--serif);--weight-strong: 600;color-scheme:dark}@media (max-width: 359px){:root{--gutter: 14px}}@media (min-width: 720px){:root{--column: 652px;--card-pad: 22px;--card-inset: 23px;--bar-height: 64px}}@media (min-width: 1100px){:root{--page-top: 72px}}@font-face{font-family:Geist;src:url(../../../fonts/Geist.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:Geist Mono;src:url(../../../fonts/GeistMono.woff2) format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:"Source Serif 4";src:url(../../../fonts/SourceSerif4.woff2) format("woff2");font-weight:200 900;font-style:normal;font-display:swap}@font-face{font-family:"Source Serif 4";src:url(../../../fonts/SourceSerif4-Italic.woff2) format("woff2");font-weight:200 900;font-style:italic;font-display:swap}*,*:before,*:after{box-sizing:border-box}html{background:var(--bg);color:var(--fg);-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:72px}body{margin:0;background:var(--bg);font-family:var(--sans);font-size:13px;line-height:1.5;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-x:hidden}h1,h2,h3,h4,h5,h6,p,ol,ul,dl,dd,figure,blockquote{margin:0;padding:0}h1,h2,h3,h4,h5,h6{font:inherit}ol,ul{list-style:none}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}:focus{outline:none}:focus-visible{outline:1px solid var(--fg);outline-offset:3px}::selection{background:var(--fg);color:var(--bg)}.column{width:100%;max-width:calc(var(--column) + var(--gutter) * 2);margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter)}.skip{position:absolute;left:var(--gutter);top:-60px;z-index:20;padding:12px 14px;background:var(--fg);color:var(--bg);font-family:var(--mono);font-size:var(--text-micro);letter-spacing:.08em;text-transform:uppercase}.skip:focus{top:8px}.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.sym{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;overflow:visible}.micro{font-family:var(--mono);font-size:var(--text-micro);line-height:1.5;font-weight:400;letter-spacing:.08em;text-transform:uppercase}.dim{color:var(--soft)}.data{display:flex;flex-wrap:wrap;gap:3px 14px;align-items:center;font-family:var(--mono);font-size:var(--text-micro);letter-spacing:.04em;text-transform:uppercase;color:var(--soft)}.data>*{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.data b{font-weight:400;color:var(--fg)}.pill{display:inline-flex;align-items:center;gap:7px;height:24px;padding:0 11px;border:1px solid var(--line-strong);border-radius:var(--radius-small);font-family:var(--sans);font-size:var(--text-micro);line-height:1;letter-spacing:.12em;text-transform:uppercase;font-weight:500;white-space:nowrap;transition:background-color var(--slow),border-color var(--slow)}.pill.small{height:18px;border-color:var(--line-focus);border-radius:3px;font-family:var(--mono);padding:0 7px;color:var(--fg);font-size:9px;line-height:1.5;font-weight:400;letter-spacing:.08em}.pill.large{height:34px;padding:0 20px;font-size:11px}.pill.dashed{border-style:dashed}.tap{display:inline-flex;align-items:center;min-height:40px}.tap:hover .pill,.tap:focus-visible .pill{background:var(--fill);border-color:var(--fg)}.tap:focus-visible{outline:none}.tap:focus-visible .pill{outline:1px solid var(--fg);outline-offset:3px}.pill.solid,.tap:focus-visible .pill.solid{background:var(--fg);border-color:var(--fg);color:var(--bg)}.tap:hover .pill.solid{background:transparent;border-color:var(--fg);color:var(--fg)}.tap:disabled{cursor:default}.tap:disabled .pill,.tap:disabled:hover .pill{background:transparent;border-color:var(--line-strong);color:var(--soft)}.text-link{display:inline-flex;align-items:center;gap:8px;min-height:40px;font-family:var(--mono);font-size:var(--text-micro);font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--fg)}.text-link span{border-bottom:1px solid var(--line-strong);padding-bottom:2px;transition:border-color var(--slow)}.text-link:hover span{border-color:var(--fg)}.colophon{display:flex;flex-wrap:wrap;gap:3px 14px;margin-top:var(--section-gap);margin-bottom:var(--section-gap);color:var(--soft)}main.list{padding-top:var(--page-top)}main.list>*+*{margin-top:var(--head-gap)}main.list+footer .colophon{margin-top:40px}main.post+footer .colophon{margin-top:calc(var(--group-gap) - 11px)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{transition-duration:0s!important;animation-duration:0s!important;scroll-behavior:auto!important}}.prose{position:relative;counter-reset:fig;font:var(--text-read);letter-spacing:.003em;hanging-punctuation:first}.prose>*+*{margin-top:1.35em}.prose em{font-style:italic}.prose strong{font-weight:var(--weight-strong)}.prose a:not(.fn){text-decoration:underline;text-decoration-color:var(--line-strong);text-decoration-thickness:1px;text-underline-offset:3px;transition:text-decoration-color var(--slow)}.prose a:not(.fn):hover{text-decoration-color:var(--fg)}.prose h2{display:flex;align-items:center;gap:10px;margin-top:3em;font-family:var(--mono);font-size:var(--text-micro);font-weight:500;letter-spacing:.12em;text-transform:uppercase}.prose h2:after{content:"";flex:1;border-top:1px solid var(--line-strong)}.prose h3{margin-top:2.4em;font-size:15px;line-height:1.3;font-weight:var(--weight-strong)}.prose :is(h2,h3)+*{margin-top:1em}.prose :is(ul,ol):not(.tracks){padding-left:var(--indent)}.prose ul:not(.tracks){list-style:disc}.prose ol:not(.tracks){list-style:decimal}.prose li::marker{color:var(--soft);font-family:var(--mono);font-size:.8em}.prose li+li{margin-top:.4em}.prose hr{height:0;margin:2em 0;border:0;border-top:1px solid var(--line)}.prose blockquote,.prose :is(.section,.formatted){position:relative;display:block;padding-left:var(--indent);font:var(--text-quote)}.prose :is(.section,.formatted){margin-top:2em;margin-bottom:2em}.prose blockquote{font-style:italic}.prose blockquote>*+*{margin-top:.8em}.prose blockquote:before{content:"“";hanging-punctuation:none;position:absolute;left:0;top:1px;font-size:30px;line-height:1;font-style:normal;font-weight:400;color:var(--muted)}.prose :is(.section,.formatted):before{content:"";position:absolute;left:0;top:0;width:14px;height:14px;background:var(--muted);-webkit-mask:var(--symbol-margin) center / contain no-repeat;mask:var(--symbol-margin) center / contain no-repeat}.prose{--symbol-margin: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='%23000' stroke-width='1.1' stroke-linecap='round'%3E%3Cpath d='M3.5 3v10M6.5 5h6M6.5 8h6M6.5 11h3.5'/%3E%3C/svg%3E")}.prose .section dl{display:grid;gap:14px}.prose .section dt{margin-bottom:3px;color:var(--soft);font-family:var(--sans);font-size:var(--text-micro);line-height:1.4;font-weight:500;font-style:normal;letter-spacing:.1em;text-transform:uppercase}.prose .section dd>.tracks{margin-top:14px}.prose .section>p+p{margin-top:14px}.prose .tracks{counter-reset:track;display:grid;gap:6px}.prose .tracks li{counter-increment:track;display:grid;grid-template-columns:var(--indent) 1fr;align-items:baseline;margin-top:0}.prose .tracks li:before{content:counter(track,decimal-leading-zero);color:var(--soft);font-family:var(--mono);font-size:var(--text-micro);letter-spacing:.04em;font-variant-numeric:tabular-nums}.prose ul.tracks li:before{content:"–"}.prose img:not(.lite-youtube-poster),.prose iframe:not(.lite-youtube-frame),.prose .lite-youtube{display:block;width:100%;margin-top:2em;border:0;border-radius:var(--radius)}.prose img:not(.lite-youtube-poster){height:auto}.prose .lite-youtube{border-radius:0}.prose :is(img,iframe,.lite-youtube,.video-caption)+:not(.video-caption){margin-top:2em}.prose .video-caption{display:flex;gap:12px;align-items:baseline;margin-top:10px;font-size:12px;line-height:1.5;font-weight:300}.prose .video-caption:before{counter-increment:fig;content:"FIG. " counter(fig,decimal-leading-zero);flex:none;color:var(--soft);font-family:var(--mono);font-size:var(--text-micro);letter-spacing:.04em;font-variant-numeric:tabular-nums}.prose pre{padding:16px var(--card-pad);border:1px solid var(--line);border-radius:var(--radius);font-family:var(--mono);font-size:12px;line-height:1.6;overflow-x:auto}.prose code{font-family:var(--mono);font-size:.88em}.prose :not(pre)>code{padding:1px 5px;border-radius:var(--radius-small);background:var(--fill)}.prose table{width:100%;border-collapse:collapse;font-size:13px;line-height:1.5}.prose :is(th,td){padding:8px 12px 8px 0;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.prose th{color:var(--soft);font-family:var(--mono);font-size:var(--text-micro);font-weight:500;letter-spacing:.1em;text-transform:uppercase;border-bottom-color:var(--line-strong)}.prose .aside{display:block;color:var(--soft);font:var(--text-footnote);font-style:italic}.prose sup{font-size:.7em;line-height:1;vertical-align:super}
