@layer reset,tokens,layout,typography,components,code,markdown-look;@layer reset{*,*::before,*::after{box-sizing:border-box}*{margin:0}html{hanging-punctuation:first last;interpolate-size:allow-keywords;overflow-wrap:break-word;scrollbar-gutter:stable;scroll-padding-block-start:2rem;-webkit-text-size-adjust:100%}body{min-height:100svh;-webkit-font-smoothing:antialiased}img,video,svg,canvas{display:block;max-width:100%;height:auto}input,button,textarea,select{font:inherit}h1,h2,h3,h4,h5,h6{text-wrap:balance}p,li{text-wrap:pretty}:focus-visible{outline:max(2px,.08em)solid currentColor;outline-offset:.15em}}@layer tokens{:root{--font-body:"Piazzolla", "Georgia", serif;--font-sans:system-ui, sans-serif;--font-mono:ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas,
      "DejaVu Sans Mono", monospace;--font-heading:var(--font-sans);--font-body-weight:400;--font-body-bold:600;--font-heading-weight:600}:root{color-scheme:light dark;--hue:350;--accent:light-dark(oklch(0.58 0.255 var(--hue)), oklch(0.75 0.18 var(--hue)));--surface:light-dark(oklch(0.985 0.005 var(--hue)), oklch(0.15 0.008 var(--hue)));--surface-raised:light-dark(oklch(0.965 0.008 var(--hue)), oklch(0.2 0.01 var(--hue)));--surface-code:light-dark(oklch(0.955 0.008 var(--hue)), oklch(0.18 0.01 var(--hue)));--text:light-dark(oklch(0.2 0.01 var(--hue)), oklch(0.88 0.008 var(--hue)));--text-secondary:light-dark(oklch(0.42 0.01 var(--hue)), oklch(0.65 0.01 var(--hue)));--text-tertiary:light-dark(oklch(0.55 0.008 var(--hue)), oklch(0.6 0.008 var(--hue)));--border:light-dark(oklch(0.87 0.01 var(--hue)), oklch(0.3 0.012 var(--hue)));--border-light:light-dark(oklch(0.92 0.008 var(--hue)), oklch(0.25 0.01 var(--hue)))}[data-theme=light]{color-scheme:light}[data-theme=dark]{color-scheme:dark}:root{--space-3xs:0.25rem;--space-2xs:0.5rem;--space-xs:0.75rem;--space-sm:1rem;--space-md:1.5rem;--space-lg:2rem;--space-xl:3rem;--space-2xl:4rem;--space-3xl:6rem}:root{--ease-out:cubic-bezier(0.23, 1, 0.32, 1)}:root{--text-xs:0.75rem;--text-sm:0.875rem;--text-base:1.125rem;--text-md:1.25rem;--text-lg:clamp(1.375rem, 1.25rem + 0.5vw, 1.625rem);--text-xl:clamp(1.75rem, 1.5rem + 1vw, 2.375rem)}}@layer layout{body{background-color:var(--surface);color:var(--text);line-height:1.6}.container{--content-width:42rem;--toc-width:12rem;--toc-gap:var(--space-xl);--sidenote-width:12rem;--sidenote-gap:var(--space-lg);max-width:var(--content-width);margin-inline:auto;padding-inline:var(--space-md);padding-block:var(--space-lg)}.site-footer{padding-block-start:var(--space-xl);padding-block-end:var(--space-lg)}@media(min-width:48rem){.container{padding-block:var(--space-xl)}}@media(min-width:72rem){.post{position:relative}}}@layer typography{body{font-family:var(--font-body,Georgia,serif);font-weight:var(--font-body-weight);font-size:var(--text-base);font-feature-settings:"kern" 1,"liga" 1,"calt" 1,"onum" 1,"pnum" 1;font-kerning:normal;font-variant-ligatures:common-ligatures contextual}code,kbd,pre,samp,[style*="font-family: var(--font-mono)"]{font-variant-ligatures:none;font-feature-settings:"liga" 0,"calt" 0}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading,system-ui,sans-serif);font-weight:var(--font-heading-weight);letter-spacing:-.01em;font-variant-numeric:lining-nums}h1{font-size:var(--text-xl);line-height:1.12;letter-spacing:-.025em}h2{font-size:var(--text-lg);line-height:1.25;margin-block-start:var(--space-xl);margin-block-end:var(--space-sm)}h3{font-size:var(--text-md);line-height:1.3;margin-block-start:var(--space-xl);margin-block-end:var(--space-xs)}h4{font-size:var(--text-base);line-height:1.4;margin-block-start:var(--space-lg);margin-block-end:var(--space-2xs)}a{color:var(--accent);text-decoration-line:underline;text-decoration-thickness:1px;text-underline-offset:.15em;text-decoration-color:color-mix(in oklch,var(--accent) 40%,transparent);transition:text-decoration-color .15s ease}@media(hover:hover) and (pointer:fine){a:hover{text-decoration-color:var(--accent)}}.post-content p,.page p{margin-block-end:var(--space-sm);max-width:68ch;hyphens:auto;hyphenate-limit-chars:8 4 4;font-variant-numeric:oldstyle-nums}.post-content ul,.post-content ol,.page ul:not(.post-list),.page ol{margin-block-end:var(--space-sm);padding-inline-start:var(--space-md);max-width:68ch}.post-content li{margin-block-end:var(--space-3xs)}:not(pre)>code{font-family:var(--font-mono);font-size:.85em;font-variant-numeric:tabular-nums lining-nums;background-color:var(--surface-code);padding:.1em .3em;border-radius:3px;hyphens:none}strong{font-weight:var(--font-body-bold)}em{font-style:italic}hr{border:none;border-block-start:1px solid var(--border);margin-block:var(--space-md);max-width:8rem}blockquote{font-style:italic;color:var(--text-secondary);padding-inline-start:var(--space-md);border-inline-start:1px solid var(--border);margin-block:var(--space-md);max-width:60ch}blockquote p{margin-block-end:var(--space-2xs)}dl{margin-block:var(--space-md);max-width:68ch}dt{font-family:var(--font-heading,system-ui,sans-serif);font-weight:var(--font-heading-weight,600);font-size:var(--text-sm);color:var(--text);margin-block-start:var(--space-sm)}dt:first-child{margin-block-start:0}dd{margin-inline-start:0;padding-inline-start:var(--space-md);margin-block-start:var(--space-3xs);color:var(--text-secondary);line-height:1.5}dd+dd{margin-block-start:var(--space-3xs)}.post-content table{display:block;overflow-x:auto}table{width:100%;border-collapse:collapse;margin-block:var(--space-md);font-size:var(--text-sm);font-variant-numeric:tabular-nums lining-nums}thead{border-block-end:2px solid var(--border)}th,td{padding:var(--space-2xs)var(--space-xs);text-align:start;vertical-align:top}th{font-family:var(--font-heading,system-ui,sans-serif);font-weight:var(--font-heading-weight,600);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);white-space:nowrap}tbody tr{border-block-end:1px solid var(--border-light)}tbody tr:last-child{border-block-end:none}tbody tr:nth-child(even){background-color:var(--surface-raised)}.post-content img{max-width:100%;height:auto;margin-block:var(--space-md);border-radius:2px}figure{margin-block:var(--space-lg)}figure img{display:block;margin-block:0;border:1px solid var(--border-light)}figure.narrow{display:flex;flex-direction:column;align-items:center}figure.narrow img{width:20rem}figure.narrow figcaption{max-width:24rem}figcaption{font-size:var(--text-sm);color:var(--text-secondary);margin-block-start:var(--space-2xs)}kbd{font-family:var(--font-mono);font-size:.85em;padding:.1em .4em;border:1px solid var(--border);border-radius:3px;background-color:var(--surface-raised);box-shadow:0 1px 0 var(--border)}}@layer components{@media(min-width:72rem){.wide,table{clear:inline-end;width:calc(100% + var(--sidenote-gap) + var(--sidenote-width))}figure.wide figcaption{max-width:var(--content-width)}}.diagram svg{width:100%;height:auto}.diagram-mermaid,.diagram-mermaid text,.diagram-mermaid .nodeLabel,.diagram-mermaid .edgeLabel{font-family:var(--font-mono)!important;font-size:var(--text-xs)}.diagram-mermaid rect.actor,.diagram-mermaid .node rect,.diagram-mermaid .node polygon,.diagram-mermaid .node circle,.diagram-mermaid .labelBox{fill:var(--surface-raised)!important;stroke:var(--border)!important}.diagram-mermaid .node.col0 rect{fill:light-dark(oklch(.95 .04 75),oklch(.24 .03 75))!important;stroke:light-dark(oklch(.78 .09 75),oklch(.48 .08 75))!important}.diagram-mermaid .node.col1 rect{fill:light-dark(oklch(.95 .035 230),oklch(.24 .025 230))!important;stroke:light-dark(oklch(.78 .08 230),oklch(.48 .07 230))!important}.diagram-mermaid .node.col2 rect{fill:light-dark(oklch(.95 .04 165),oklch(.24 .03 165))!important;stroke:light-dark(oklch(.78 .09 165),oklch(.48 .08 165))!important}.diagram-mermaid .nodeLabel{color:var(--text)!important;vertical-align:super}.diagram-mermaid .cluster rect,.diagram-mermaid .actor-line{fill:var(--surface-code)!important;stroke:var(--border)!important}.diagram-mermaid .edgeLabel p{background-color:var(--surface)!important;color:var(--text-secondary)!important}.diagram-mermaid .flowchart-link{stroke:var(--text-tertiary)!important}.diagram-mermaid .marker,.diagram-mermaid .loopLine,.diagram-mermaid .messageLine0,.diagram-mermaid path{fill:var(--text-tertiary)!important;stroke:var(--text-tertiary)!important}.diagram-mermaid text,.diagram-mermaid tspan{fill:var(--text)!important}.diagram-mermaid .label{color:var(--text)!important}.breadcrumb{margin:var(--space-sm)0}.breadcrumb a{color:var(--text-secondary);padding:var(--space-xs);text-decoration:none;border-radius:.5rem}@media(hover:hover) and (pointer:fine){.breadcrumb a:hover{color:var(--accent);background-color:var(--surface-raised)}}.post-header{margin-block-end:var(--space-lg)}.post-title{margin-block-end:var(--space-xs)}.post-meta{font-family:var(--font-sans,system-ui,sans-serif);font-size:var(--text-sm);color:var(--text-secondary);line-height:1.5}.post-meta a{color:var(--text-secondary);text-decoration-color:var(--border)}@media(hover:hover) and (pointer:fine){.post-meta a:hover{color:var(--accent);text-decoration-color:var(--accent)}}.post-meta em{font-style:normal;background-color:var(--surface-raised);padding:.05em .4em;border-radius:3px;font-size:.92em}.post-toc{font-family:var(--font-sans,system-ui,sans-serif);font-size:var(--text-sm);color:var(--text-secondary);margin-block-end:var(--space-xl);padding-block:var(--space-sm);border-block:1px solid var(--border-light)}.post-toc header{display:none;margin-block-end:var(--space-sm);font-weight:var(--font-heading-weight)}.post-toc summary{text-transform:uppercase;letter-spacing:1px;cursor:pointer}.post-toc summary::marker{color:var(--text-tertiary)}.post-toc nav{margin-block-start:var(--space-xs)}.post-toc ol{list-style:decimal;padding-inline-start:var(--space-md)}.post-toc li{margin-block-end:var(--space-3xs);line-height:1.4}.post-toc ol ol{padding-inline-start:var(--space-sm);margin-block-start:var(--space-3xs)}.post-toc ol ol li{font-size:var(--text-xs)}.post-toc a{color:var(--text-secondary);text-decoration:none}@media(hover:hover) and (pointer:fine){.post-toc a:hover{color:var(--accent)}}@media(min-width:72rem){.post-toc{position:sticky;inset-block-start:var(--space-lg);float:inline-start;width:var(--toc-width,12rem);margin-inline-start:calc(-1 * (var(--toc-width,12rem) + var(--toc-gap,3rem)));border-block:none;padding-block:0;margin-block-end:0;container-type:scroll-state;header{display:block;visibility:hidden;opacity:0;transition:opacity .15s linear;@container scroll-state(stuck:top){visibility: visible;
          opacity: 1;
        }}}@supports selector(::details-content){.post-toc details::details-content{content-visibility:visible}.post-toc summary{list-style:none;pointer-events:none}}}.post-list{list-style:none;padding-inline-start:0;margin-block-start:var(--space-sm)}.post-list li{border-block-end:1px solid var(--border-light)}.post-list li:first-child{border-block-start:1px solid var(--border-light)}.post-link{text-decoration:none;color:var(--text);transition:color .15s ease;line-height:1.35;display:block;padding-block:var(--space-xs)}.post-date,.post-count{font-family:var(--font-sans,system-ui,sans-serif);font-size:var(--text-xs);color:var(--text-tertiary);display:inline-block;margin-inline-start:var(--space-xs);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}@media(hover:hover) and (pointer:fine){.post-link:hover{color:var(--accent)}}.footnotes{margin-block-start:var(--space-md);padding-block-start:var(--space-md);font-size:var(--text-sm);color:var(--text-secondary);line-height:1.5}.footnotes hr{border-block-start:1px solid var(--border-light);max-width:none}.footnotes ol{padding-inline-start:var(--space-md);max-width:none}.footnotes li{margin-block-end:var(--space-2xs)}.footnotes p{margin-block-end:var(--space-3xs)}sup[id^="fnref:"]{line-height:1;line-break:loose}.footnote-ref{font-family:var(--font-sans,system-ui,sans-serif);font-size:.75em;text-decoration:none;color:var(--accent);margin-inline-start:.1em}@media(hover:hover) and (pointer:fine){.footnote-ref:hover{text-decoration:underline}}.footnote-backref{text-decoration:none;color:var(--text-tertiary);margin-inline-start:var(--space-3xs)}@media(hover:hover) and (pointer:fine){.footnote-backref:hover{color:var(--accent)}}.sidenote{display:none;text-decoration:none}.sidenote:empty{display:none!important}.sidenote .sidenote{display:contents;float:none;width:auto;margin:0;font-size:inherit;color:inherit}.sidenote p{margin-block-end:var(--space-3xs)}.sidenote p:last-child{margin-block-end:0}.sidenote-fn>p:first-of-type{display:inline}.sidenote-fn::before{content:attr(data-sn);color:var(--accent);margin-inline-end:.3em;font-size:.9em;vertical-align:super}.sidenote-fn:popover-open{display:block;position:fixed;inset:auto var(--space-sm)var(--space-sm);width:auto;max-width:40rem;max-height:50dvh;margin-inline:auto;padding:var(--space-sm)var(--space-md);font-family:var(--font-sans,system-ui,sans-serif);font-size:var(--text-sm);line-height:1.5;color:var(--text);background-color:var(--surface-raised);border:1px solid var(--border);border-radius:4px;box-shadow:0 .5rem 2rem oklch(0 0 none/.15)}@media(prefers-reduced-motion:no-preference){.sidenote-fn:popover-open{transition:opacity .2s var(--ease-out),translate .2s var(--ease-out);@starting-style{opacity: 0;
        translate: 0 0.5rem;
      }}}@media(min-width:72rem){.sidenote{display:block;position:static;height:auto;overflow:visible;border:none;background:0 0;margin-block-start:0;margin-inline-start:0;float:inline-end;clear:inline-end;width:var(--sidenote-width,12rem);margin-inline-end:calc( -1 * (var(--sidenote-width,12rem) + var(--sidenote-gap,2rem)) );margin-block-end:var(--space-sm);font-family:var(--font-sans,system-ui,sans-serif);font-size:var(--text-xs);color:var(--text-secondary);line-height:1.45;padding:var(--space-3xs)}.sidenote-link{font-style:italic;color:var(--text-tertiary)}.sidenote-link-domain{font-style:normal;font-size:.95em;display:block;margin-block-end:.15em;text-decoration:none;color:var(--text-secondary)}@media(hover:hover) and (pointer:fine){.sidenote-link-domain:hover{color:var(--accent)}sup:hover+.sidenote{background-color:var(--surface-raised)}a:hover+.sidenote-link,.sidenote-link:hover{color:var(--text-secondary);background-color:var(--surface-raised)}a:hover+.sidenote-link span,.sidenote-link:hover span{color:var(--accent)}}.footnotes{display:none}}@media(prefers-reduced-motion:no-preference){:target{animation:target-flash 1.5s var(--ease-out)}}@keyframes target-flash{from,30%{background-color:color-mix(in oklch,var(--accent) 15%,transparent)}}.btw{background-color:var(--surface-raised);border-inline-start:4px solid var(--accent);padding:var(--space-sm);margin-block:var(--space-md)}.article-footer{margin-block-start:var(--space-2xl);padding-block-start:var(--space-md);border-block-start:1px solid var(--border-light);font-size:var(--text-sm);color:var(--text-secondary)}.article-footer p{margin-block-end:var(--space-2xs)}.article-footer a{color:var(--text-secondary);text-decoration-color:var(--border)}@media(hover:hover) and (pointer:fine){.article-footer a:hover{color:var(--accent);text-decoration-color:var(--accent)}}.site-footer{font-family:var(--font-sans,system-ui,sans-serif);font-size:var(--text-sm);color:var(--text-tertiary);border-block-start:1px solid var(--border-light)}.site-footer p{margin-block-end:var(--space-2xs)}.site-footer a{color:var(--text-tertiary);text-decoration:none}@media(hover:hover) and (pointer:fine){.site-footer a:hover{color:var(--accent)}}.page h1{margin-block-end:var(--space-sm)}.page h2{margin-block-start:var(--space-xl);font-size:var(--text-md);color:var(--text-secondary);font-weight:var(--font-heading-weight,600)}.comments{margin-block-start:var(--space-xl);--sequoia-accent-color:var(--accent);--sequoia-border-radius:4px;--sequoia-bg-color:var(--surface-raised);--sequoia-fg-color:var(--text);--sequoia-border-color:var(--border);--sequoia-secondary-color:var(--text-tertiary);--sequoia-font-family:var(--font-sans)}}@layer code{.highlight{margin-block:var(--space-md)}pre{font-family:var(--font-mono);font-size:.85em;line-height:1.55;padding:var(--space-sm);overflow-x:auto;border-radius:4px;margin-block-end:var(--space-sm)}pre:not(.chroma){background-color:var(--surface-code);color:var(--text)}.chroma{background-color:var(--code-bg);color:var(--code-text)}:root{--code-bg:light-dark(oklch(0.965 0.006 var(--hue)), oklch(0.18 0.01 var(--hue)));--code-text:light-dark(oklch(0.28 0.01 var(--hue)), oklch(0.82 0.008 var(--hue)));--code-comment:light-dark(oklch(0.52 0.01 var(--hue)), oklch(0.62 0.01 var(--hue)));--code-keyword:light-dark(oklch(0.48 0.18 12), oklch(0.72 0.14 15));--code-string:light-dark(oklch(0.42 0.1 250), oklch(0.78 0.08 220));--code-function:light-dark(oklch(0.47 0.16 300), oklch(0.78 0.12 300));--code-number:light-dark(oklch(0.45 0.14 255), oklch(0.75 0.1 235));--code-type:light-dark(oklch(0.5 0.14 55), oklch(0.75 0.12 60));--code-operator:var(--code-keyword);--code-punctuation:light-dark(oklch(0.45 0.01 var(--hue)), oklch(0.62 0.008 var(--hue)));--code-added:light-dark(oklch(0.45 0.15 145), oklch(0.72 0.12 145));--code-deleted:light-dark(oklch(0.5 0.18 25), oklch(0.72 0.14 25))}.chroma .c,.chroma .c1,.chroma .cm,.chroma .cp,.chroma .cpf,.chroma .cs{color:var(--code-comment);font-style:italic}.chroma .k,.chroma .kc,.chroma .kd,.chroma .kn,.chroma .kp,.chroma .kr,.chroma .ow{color:var(--code-keyword);font-weight:500}.chroma .kt{color:var(--code-type)}.chroma .s,.chroma .sa,.chroma .sb,.chroma .sc,.chroma .sd,.chroma .se,.chroma .sh,.chroma .si,.chroma .sx,.chroma .sr,.chroma .s1,.chroma .s2,.chroma .ss,.chroma .dl{color:var(--code-string)}.chroma .n,.chroma .na,.chroma .nb,.chroma .ni,.chroma .nl,.chroma .nv,.chroma .bp,.chroma .vc,.chroma .vg,.chroma .vi{color:var(--code-text)}.chroma .nf,.chroma .fm,.chroma .nd{color:var(--code-function)}.chroma .nc,.chroma .ne,.chroma .no,.chroma .nn{color:var(--code-type)}.chroma .nt{color:var(--code-keyword)}.chroma .m,.chroma .mb,.chroma .mf,.chroma .mh,.chroma .mi,.chroma .mo,.chroma .il{color:var(--code-number)}.chroma .o{color:var(--code-operator)}.chroma .p{color:var(--code-punctuation)}.chroma .gi{color:var(--code-added)}.chroma .gd{color:var(--code-deleted)}.chroma .gu{color:var(--code-function);font-weight:600}.chroma .w{color:transparent}.chroma .err{color:var(--code-deleted)}}@layer markdown-look{:root{--md-marker:var(--text-tertiary);--font-heading:var(--font-mono)}h1,h2,h3,h4,h5,h6{font-size:var(--text-base);font-weight:var(--font-body-bold);line-height:1.6;letter-spacing:normal;font-variant-ligatures:none;font-feature-settings:"liga" 0,"calt" 0}h1::before{content:none}h1{padding-block-end:.15em;border-block-end:3px double var(--md-marker)}:is(h2,h3,h4,h5,h6)::before,.heading-anchor::before{color:var(--md-marker);font-weight:var(--font-body-weight,400)}h2::before{content:"## "/""}h3::before{content:"### "/""}h4::before{content:"#### "/""}h5::before{content:"##### "/""}h6::before{content:"###### "/""}:is(h2,h3,h4,h5,h6):has(>.heading-anchor)::before{content:none}.heading-anchor{text-decoration:none}.heading-anchor::before{content:attr(data-marker)" "/""}@media(hover:hover) and (pointer:fine){:hover>.heading-anchor::before{color:var(--accent)}}.post-content :not(pre)>code::before,.post-content :not(pre)>code::after{content:"`"/"";color:var(--md-marker)}.post-content :not(pre)>code{background:0 0;padding:0;border-radius:0}@counter-style md-ol{system: extends decimal;
    suffix: ". ";
  }ul{list-style:"–  " outside}ol:not(.footnotes ol){list-style:md-ol outside}.post-list{list-style:none}:is(ul,ol:not(.footnotes ol))>li::marker{color:var(--md-marker)}.post-toc ol{list-style:decimal outside}hr{border:none;max-width:none}hr::after{content:"---"/"";display:block;color:var(--md-marker);text-align:start;font-family:var(--font-mono)}.footnote-ref{font-size:inherit}sup[id^="fnref:"]::before,sup[id^="fnref:"],sup[id^="fnref:"]::after{color:var(--md-marker);font-size:var(--text-sm)}sup[id^="fnref:"]::before{content:"[^"/""}sup[id^="fnref:"]::after{content:"]"/""}.post-content img{border-radius:0}}