body:has(.article-page){background:var(--color-canvas);color:var(--color-ink)}.article-page.svelte-1teoznn{background:var(--color-canvas);min-height:100svh;color:var(--color-ink);font-family:var(--font-neue-haas-text);grid-template-rows:auto 1fr auto;display:grid}.site-header.svelte-1teoznn,main.svelte-1teoznn,footer.svelte-1teoznn{width:min(100%, var(--content-blog));padding-inline:var(--space-page);margin-inline:auto}.site-header.svelte-1teoznn{min-height:var(--page-edge-height);align-items:center;gap:2rem;display:flex}.skip-link.svelte-1teoznn{z-index:var(--layer-skip-link);background:var(--color-ink);color:var(--color-canvas);font-family:var(--font-suisse-mono);padding:.75rem 1rem;font-size:.875rem;position:fixed;inset-block-start:0;inset-inline-start:var(--space-page);transform:translateY(-120%)}.skip-link.svelte-1teoznn:focus{transform:translateY(0)}.skip-link.svelte-1teoznn:focus-visible{outline:2px solid var(--color-focus);outline-offset:4px;border-radius:1px}main.svelte-1teoznn{padding-block:clamp(5rem,10vw,10rem) clamp(7rem,12vw,12rem)}.article-layout.svelte-1teoznn{position:relative}article.svelte-1teoznn{width:min(100%,48rem);margin-inline:auto;scroll-margin-block-start:2rem}.heading-navigator.svelte-1teoznn{display:none}article.literary.svelte-1teoznn h1:where(.svelte-1teoznn),article.literary.svelte-1teoznn .article-body:where(.svelte-1teoznn),article.literary.svelte-1teoznn time:where(.svelte-1teoznn){font-family:var(--font-tiempos-text)}.article-header.svelte-1teoznn{margin-block-end:clamp(3rem,6vw,5rem)}h1.svelte-1teoznn{letter-spacing:-.035em;margin:0 0 1.25rem;font-size:clamp(2rem,4vw,3.5rem);font-weight:400;line-height:1.05}time.svelte-1teoznn{color:var(--color-muted);font-family:var(--font-neue-haas-text);font-size:var(--font-size-site-link);letter-spacing:var(--letter-spacing-site-link);line-height:1.2}.article-body.svelte-1teoznn{font-size:clamp(1.0625rem,1.25vw,1.1875rem);line-height:1.65}article.svelte-1teoznn:not(.literary) h1:where(.svelte-1teoznn),article.svelte-1teoznn:not(.literary) time:where(.svelte-1teoznn),article.svelte-1teoznn:not(.literary) .article-body:where(.svelte-1teoznn){letter-spacing:normal}.article-body.svelte-1teoznn :first-child{margin-block-start:0}.article-body.svelte-1teoznn p,.article-body.svelte-1teoznn ul,.article-body.svelte-1teoznn ol,.article-body.svelte-1teoznn blockquote,.article-body.svelte-1teoznn pre,.article-body.svelte-1teoznn figure,.article-body.svelte-1teoznn hr{margin-block:1.5rem 0}.article-body.svelte-1teoznn h2,.article-body.svelte-1teoznn h3{margin-block:2.75rem 0;scroll-margin-block-start:3rem;font-weight:400;line-height:1.2}.article-body.svelte-1teoznn h2{letter-spacing:-.02em;font-size:clamp(1.5rem,2.25vw,2rem)}.article-body.svelte-1teoznn h3{font-size:clamp(1.2rem,1.5vw,1.4rem)}.article-body.svelte-1teoznn ul,.article-body.svelte-1teoznn ol{padding-inline-start:1.5em}.article-body.svelte-1teoznn ul{list-style-type:disc}.article-body.svelte-1teoznn ol{list-style-type:decimal}.article-body.svelte-1teoznn ul ul{list-style-type:circle}.article-body.svelte-1teoznn ul ul ul{list-style-type:square}.article-body.svelte-1teoznn ol ol{list-style-type:lower-alpha}.article-body.svelte-1teoznn ol ol ol{list-style-type:lower-roman}.article-body.svelte-1teoznn li>ul,.article-body.svelte-1teoznn li>ol{margin-block:.25rem 0}.article-body.svelte-1teoznn li+li{margin-block-start:.5rem}.article-body.svelte-1teoznn li li+li{margin-block-start:0}.article-body.svelte-1teoznn .task-list-item{align-items:flex-start;gap:.625rem;list-style-type:none;display:flex}.article-body.svelte-1teoznn li:has(>input[type=checkbox]){align-items:flex-start;gap:.625rem;list-style-type:none;display:flex}.article-body.svelte-1teoznn .task-list-item input,.article-body.svelte-1teoznn li>input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--color-ink);filter:grayscale();opacity:1;flex:0 0 1rem;margin:.38em 0 0}.article-body.svelte-1teoznn blockquote{border-inline-start:2px solid var(--color-muted);color:var(--color-muted);padding-inline-start:1.25rem}.article-body.svelte-1teoznn a{color:inherit;overflow-wrap:anywhere;text-underline-offset:.16em;text-decoration-thickness:.07em}.article-body.svelte-1teoznn a:hover{text-decoration-thickness:.11em}.article-body.svelte-1teoznn a:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px;border-radius:1px}.article-body.svelte-1teoznn .download-block{border:1px solid var(--color-ink);min-height:3.5rem;color:var(--color-ink);justify-content:space-between;align-items:center;gap:2rem;margin-block:1.5rem 0;padding:.875rem 1rem;text-decoration:none;display:flex}.article-body.svelte-1teoznn .download-title{min-width:0}.article-body.svelte-1teoznn .download-block:hover{background:var(--color-ink);color:var(--color-canvas)}.article-body.svelte-1teoznn .download-action{color:var(--color-ink);font-family:var(--font-suisse-mono);text-underline-offset:.18em;flex:none;font-size:.75rem;text-decoration:underline}.article-body.svelte-1teoznn .download-block:hover .download-title{text-underline-offset:.16em;text-decoration:underline}.article-body.svelte-1teoznn .download-block:hover .download-action{color:var(--color-canvas);text-decoration-thickness:.11em}.article-body.svelte-1teoznn .terminal-block{background:var(--color-ink);color:var(--color-canvas);font-family:var(--font-source-code);font-size:clamp(.875rem,1.05vw,.975rem);line-height:1.6;position:relative}.article-body.svelte-1teoznn .terminal-scroll{overscroll-behavior-inline:contain;scrollbar-color:var(--color-muted) transparent;scrollbar-width:thin;padding:1rem 1.125rem;overflow-x:auto}.article-body.svelte-1teoznn .terminal-scroll::-webkit-scrollbar{height:.3rem}.article-body.svelte-1teoznn .terminal-scroll::-webkit-scrollbar-track{background:0 0}.article-body.svelte-1teoznn .terminal-scroll::-webkit-scrollbar-corner{background:0 0}.article-body.svelte-1teoznn .terminal-scroll::-webkit-scrollbar-thumb{background:var(--color-muted);border-radius:0}.article-body.svelte-1teoznn .terminal-scroll::-webkit-scrollbar-thumb:hover{background:var(--color-canvas)}.article-body.svelte-1teoznn .terminal-scroll:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}.article-body.svelte-1teoznn .terminal-command{grid-template-columns:auto 1fr;align-items:start;gap:.75rem;min-width:max-content;display:grid}.article-body.svelte-1teoznn .terminal-command>span{color:var(--color-canvas);opacity:.55;-webkit-user-select:none;user-select:none}.article-body.svelte-1teoznn .terminal-command code{color:var(--color-canvas);font:inherit;background:0 0;padding:0}.article-body.svelte-1teoznn .terminal-output{min-width:max-content;color:var(--color-canvas);font:inherit;opacity:.72;white-space:pre;background:0 0;margin:.75rem 0 0;padding:0;overflow:visible}.article-body.svelte-1teoznn code{color:var(--color-code-ink);font-family:var(--font-source-code);letter-spacing:-.015em;background:0 0;padding:0;font-size:.92em;font-weight:470}.article-body.svelte-1teoznn pre{background:var(--color-code-surface);max-width:100%;color:var(--color-code-ink);overscroll-behavior-inline:contain;padding:1rem;line-height:1.55;overflow-x:auto}.article-body.svelte-1teoznn pre code{background:0 0;padding:0;font-size:.9rem}.article-body.svelte-1teoznn .code-block{position:relative}.article-body.svelte-1teoznn .code-copy{z-index:2;min-height:1.5rem;color:var(--color-muted);cursor:pointer;font-family:var(--font-suisse-mono);text-underline-offset:.18em;background:0 0;border:0;padding:0;font-size:.6875rem;line-height:1;position:absolute;inset-block-start:.125rem;inset-inline-start:0}.article-body.svelte-1teoznn .code-copy:after{content:"";position:absolute;inset:-.5rem}.article-body.svelte-1teoznn .code-copy:hover{color:var(--color-ink);text-decoration:underline}.article-body.svelte-1teoznn .code-language{z-index:2;color:var(--color-muted);font-family:var(--font-suisse-mono);font-size:.6875rem;line-height:1.5rem;position:absolute;inset-block-start:.125rem;inset-inline-end:0}.article-body.svelte-1teoznn .code-copy:focus-visible,.article-body.svelte-1teoznn .code-block pre:focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}.article-body.svelte-1teoznn .code-block pre{font-family:var(--font-source-code);scrollbar-color:var(--color-muted) transparent;scrollbar-width:thin;tab-size:2;background:0 0;grid-template-columns:auto minmax(max-content,1fr);align-items:start;margin:0;padding:1.875rem 0 .9rem;font-size:clamp(.875rem,1.05vw,.975rem);line-height:1.65;display:grid}.article-body.svelte-1teoznn .code-block pre::-webkit-scrollbar{height:.3rem}.article-body.svelte-1teoznn .code-block pre::-webkit-scrollbar-track{background:0 0}.article-body.svelte-1teoznn .code-block pre::-webkit-scrollbar-corner{background:0 0}.article-body.svelte-1teoznn .code-block pre::-webkit-scrollbar-thumb{background:var(--color-muted);border-radius:0}.article-body.svelte-1teoznn .code-block pre::-webkit-scrollbar-thumb:hover{background:var(--color-ink)}.article-body.svelte-1teoznn .code-line-numbers{z-index:1;border-inline-end:1px solid var(--color-muted);background:var(--color-canvas);color:var(--color-muted);font:inherit;opacity:.62;text-align:end;-webkit-user-select:none;user-select:none;white-space:pre;padding-inline:.125rem .75rem;display:block;position:sticky;inset-inline-start:0}.article-body.svelte-1teoznn .code-block code{min-width:max-content;color:var(--color-code-ink);font:inherit;font-variant-ligatures:none;white-space:pre;padding-inline:1rem 1.25rem;display:block}.article-body.svelte-1teoznn .code-block code::selection{background:var(--color-code-surface)}.article-body.svelte-1teoznn .code-block code ::selection{background:var(--color-code-surface)}.article-body.svelte-1teoznn .hljs-comment,.article-body.svelte-1teoznn .hljs-quote{color:var(--color-code-comment);font-style:italic}.article-body.svelte-1teoznn .hljs-keyword,.article-body.svelte-1teoznn .hljs-selector-tag,.article-body.svelte-1teoznn .hljs-doctag,.article-body.svelte-1teoznn .hljs-meta .hljs-keyword{color:var(--color-code-keyword);font-weight:560}.article-body.svelte-1teoznn .hljs-string,.article-body.svelte-1teoznn .hljs-regexp,.article-body.svelte-1teoznn .hljs-template-tag,.article-body.svelte-1teoznn .hljs-template-variable,.article-body.svelte-1teoznn .hljs-addition{color:var(--color-code-string)}.article-body.svelte-1teoznn .hljs-number,.article-body.svelte-1teoznn .hljs-literal,.article-body.svelte-1teoznn .hljs-symbol,.article-body.svelte-1teoznn .hljs-bullet{color:var(--color-code-number)}.article-body.svelte-1teoznn .hljs-title,.article-body.svelte-1teoznn .hljs-section,.article-body.svelte-1teoznn .hljs-selector-id,.article-body.svelte-1teoznn .hljs-selector-class{color:var(--color-code-title);font-weight:540}.article-body.svelte-1teoznn .hljs-type,.article-body.svelte-1teoznn .hljs-built_in,.article-body.svelte-1teoznn .hljs-attribute,.article-body.svelte-1teoznn .hljs-attr{color:var(--color-code-title)}.article-body.svelte-1teoznn .hljs-variable,.article-body.svelte-1teoznn .hljs-params,.article-body.svelte-1teoznn .hljs-property,.article-body.svelte-1teoznn .hljs-punctuation,.article-body.svelte-1teoznn .hljs-subst{color:var(--color-code-punctuation)}.article-body.svelte-1teoznn .hljs-deletion{color:var(--color-code-keyword)}.article-body.svelte-1teoznn .hljs-emphasis{font-style:italic}.article-body.svelte-1teoznn .hljs-strong{font-weight:620}.article-body.svelte-1teoznn table{border-collapse:collapse;width:100%;margin-block:1.5rem 0;font-size:.95em;line-height:1.5}.article-body.svelte-1teoznn th,.article-body.svelte-1teoznn td{border-block-end:1px solid var(--color-code-surface);text-align:start;vertical-align:top;padding:.75rem 1rem}.article-body.svelte-1teoznn th:first-child,.article-body.svelte-1teoznn td:first-child{padding-inline-start:0}.article-body.svelte-1teoznn th:last-child,.article-body.svelte-1teoznn td:last-child{padding-inline-end:0}.article-body.svelte-1teoznn th{border-block-end-color:var(--color-muted);font-weight:500}.article-body.svelte-1teoznn tbody tr:last-child td{border-block-end:0}.article-body.svelte-1teoznn td code{white-space:nowrap}.article-body.svelte-1teoznn img{max-width:100%;height:auto;display:block}.article-body.svelte-1teoznn hr{border:0;border-block-start:1px solid var(--color-muted)}.article-return.svelte-1teoznn{margin-block-start:clamp(4rem,8vw,7rem)}footer.svelte-1teoznn{min-height:var(--page-edge-height);align-items:center;line-height:1.5;display:flex}@media (width>=75rem){.article-layout.has-navigator.svelte-1teoznn{grid-template-columns:minmax(10rem,1fr) minmax(0,48rem) minmax(10rem,1fr);align-items:start;column-gap:clamp(2.5rem,4vw,5rem);display:grid}.article-layout.has-navigator.svelte-1teoznn article:where(.svelte-1teoznn){grid-column:2;width:100%;margin-inline:0}.heading-navigator.svelte-1teoznn{width:min(100%,12rem);max-height:calc(100svh - 6rem);color:var(--color-muted);font-family:var(--font-suisse-mono);overscroll-behavior-block:contain;scrollbar-color:var(--color-muted) transparent;scrollbar-width:thin;grid-area:1/1;justify-self:end;padding:0 .5rem .5rem 0;font-size:.75rem;line-height:1.4;display:block;position:sticky;inset-block-start:3rem;overflow-y:auto}.heading-navigator-label.svelte-1teoznn{color:var(--color-muted);margin-block-end:.75rem;font-size:.6875rem;line-height:1;display:block}.heading-navigator.svelte-1teoznn ol:where(.svelte-1teoznn){gap:.125rem;margin:0;padding:0;list-style:none;display:grid}.heading-navigator.svelte-1teoznn li:where(.svelte-1teoznn){min-width:0}.heading-navigator.svelte-1teoznn li.subheading:where(.svelte-1teoznn){padding-inline-start:1rem}.heading-navigator.svelte-1teoznn a:where(.svelte-1teoznn){color:inherit;overflow-wrap:anywhere;text-underline-offset:.18em;padding-block:.3125rem;text-decoration:none;display:block}.heading-navigator.svelte-1teoznn a:where(.svelte-1teoznn):hover,.heading-navigator.svelte-1teoznn a[aria-current=location]:where(.svelte-1teoznn){color:var(--color-ink);text-decoration:underline}.heading-navigator.svelte-1teoznn a:where(.svelte-1teoznn):focus-visible{outline:2px solid var(--color-focus);outline-offset:3px;border-radius:1px}.heading-navigator.svelte-1teoznn::-webkit-scrollbar{width:.3rem}.heading-navigator.svelte-1teoznn::-webkit-scrollbar-track{background:0 0}.heading-navigator.svelte-1teoznn::-webkit-scrollbar-corner{background:0 0}.heading-navigator.svelte-1teoznn::-webkit-scrollbar-thumb{background:var(--color-muted);border-radius:0}.heading-navigator.svelte-1teoznn::-webkit-scrollbar-thumb:hover{background:var(--color-ink)}}@media (width<=45rem){main.svelte-1teoznn{padding-block:4rem 7rem}h1.svelte-1teoznn{font-size:2.25rem}.article-body.svelte-1teoznn table{overscroll-behavior-inline:contain;max-width:100%;display:block;overflow-x:auto}.article-body.svelte-1teoznn .code-line-numbers{padding-inline-end:.625rem}.article-body.svelte-1teoznn .code-block code{padding-inline:.75rem 1rem}}@media (forced-colors:active){.article-page.svelte-1teoznn,.article-body.svelte-1teoznn code,.article-body.svelte-1teoznn pre{color:canvastext;background:canvas}.article-body.svelte-1teoznn .code-line-numbers{border-color:canvastext}.article-body.svelte-1teoznn .code-block code,.article-body.svelte-1teoznn .code-block code *{color:canvastext}.heading-navigator.svelte-1teoznn,.heading-navigator.svelte-1teoznn a:where(.svelte-1teoznn){color:linktext}}
