:root{color-scheme:light dark;--halcyon-base-blue-01: #171c28;--halcyon-base-blue-02: #1d2433;--halcyon-base-blue-03: #2f3b54;--halcyon-base-blue-04: #6679a4;--halcyon-base-blue-05: #8695b7;--halcyon-base-grey-dark: #a2aabc;--halcyon-base-grey-light: #d7dce2;--halcyon-base-grey-lighter: #f0f3f7;--halcyon-base-grey-lightest: #e1e7ea;--halcyon-base-grey-tab: #71777f;--halcyon-base-grey-token: #586582;--halcyon-base-grey-scroll: #3f495e;--halcyon-base-grey-scroll-hover: #5c6782;--halcyon-base-blue-01-02-mix: color-mix(in hsl, var(--halcyon-base-blue-01), var(--halcyon-base-blue-02));--halcyon-base-blue-02-03-mix: color-mix(in hsl, var(--halcyon-base-blue-02), var(--halcyon-base-blue-03));--halcyon-base-blue-03-04-mix: color-mix(in hsl, var(--halcyon-base-blue-03), var(--halcyon-base-blue-04));--halcyon-base-blue-04-05-mix: color-mix(in hsl, var(--halcyon-base-blue-04), var(--halcyon-base-blue-05));--halcyon-base-grey-mix: color-mix(in hsl, var(--halcyon-base-grey-light), var(--halcyon-base-grey-dark));--halcyon-accent: light-dark(#8a5a00, #ffcc66);--halcyon-palette-cyan: light-dark(#0e7086, #5ccfe6);--halcyon-palette-lime: light-dark(#4d8811, #bae67e);--halcyon-palette-orange: light-dark(#9a4e00, #ffae57);--halcyon-palette-yellow: light-dark(#7b5b00, #ffd580);--halcyon-palette-lilac: light-dark(#5d43a8, #c3a6ff);--halcyon-palette-salmon: light-dark(#b23b45, #ef6b73);--halcyon-palette-blue: light-dark(#305fa8, #7099db);--halcyon-palette-pink: light-dark(#984c86, #f9cff2);--halcyon-bg-dark: var(--halcyon-base-blue-01);--halcyon-bg-light: var(--halcyon-base-grey-lighter);--halcyon-bg: light-dark(var(--halcyon-bg-light), var(--halcyon-bg-dark));--halcyon-text-normal: light-dark(var(--halcyon-base-blue-01), var(--halcyon-base-grey-light));--halcyon-text-muted: light-dark(#868686, #8695b799);--halcyon-math-color: var(--halcyon-accent);--halcyon-math-display-color: var(--halcyon-accent);--halcyon-mermaid-background-light: var(--halcyon-bg-light);--halcyon-mermaid-primary-color-light: var(--halcyon-base-grey-lightest);--halcyon-mermaid-primary-text-color-light: var(--halcyon-base-blue-01);--halcyon-mermaid-primary-border-color-light: var(--halcyon-base-blue-04);--halcyon-mermaid-secondary-color-light: var(--halcyon-base-grey-lighter);--halcyon-mermaid-tertiary-color-light: var(--halcyon-base-grey-lightest);--halcyon-mermaid-line-color-light: var(--halcyon-base-blue-03);--halcyon-mermaid-edge-label-background-light: var(--halcyon-base-grey-lighter);--halcyon-mermaid-cluster-background-light: var(--halcyon-base-grey-lightest);--halcyon-mermaid-cluster-border-light: var(--halcyon-base-blue-04);--halcyon-mermaid-title-color-light: #8a5a00;--halcyon-mermaid-note-background-light: var(--halcyon-base-grey-lightest);--halcyon-mermaid-note-text-color-light: var(--halcyon-base-blue-01);--halcyon-mermaid-note-border-color-light: var(--halcyon-base-blue-04);--halcyon-mermaid-background-dark: var(--halcyon-bg-dark);--halcyon-mermaid-primary-color-dark: var(--halcyon-base-blue-03);--halcyon-mermaid-primary-text-color-dark: var(--halcyon-base-grey-light);--halcyon-mermaid-primary-border-color-dark: var(--halcyon-base-blue-04);--halcyon-mermaid-secondary-color-dark: var(--halcyon-base-blue-02);--halcyon-mermaid-tertiary-color-dark: var(--halcyon-base-blue-03);--halcyon-mermaid-line-color-dark: var(--halcyon-base-blue-05);--halcyon-mermaid-edge-label-background-dark: var(--halcyon-base-blue-02);--halcyon-mermaid-cluster-background-dark: var(--halcyon-base-blue-02);--halcyon-mermaid-cluster-border-dark: var(--halcyon-base-blue-04);--halcyon-mermaid-title-color-dark: #ffcc66;--halcyon-mermaid-note-background-dark: var(--halcyon-base-blue-03);--halcyon-mermaid-note-text-color-dark: var(--halcyon-base-grey-light);--halcyon-mermaid-note-border-color-dark: var(--halcyon-base-blue-04)}:root{--radius-unit: 2px;--radius-1: calc(1 * var(--radius-unit));--radius-2: calc(2 * var(--radius-unit));--radius-3: calc(3 * var(--radius-unit));--radius-4: calc(4 * var(--radius-unit))}:root{--container: 72rem;--page-padding-inline: clamp(var(--space-4), 4vw, var(--space-8));--spacing-unit: 0.25rem;--space-2: calc(2 * var(--spacing-unit));--space-3: calc(3 * var(--spacing-unit));--space-4: calc(4 * var(--spacing-unit));--space-5: calc(5 * var(--spacing-unit));--space-6: calc(6 * var(--spacing-unit));--space-8: calc(8 * var(--spacing-unit));--space-10: calc(10 * var(--spacing-unit))}:root{--border-width: 1px}:root{--font-sans: "Inter", sans-serif;--font-serif: "Roboto Serif", serif;--font-mono: "JetBrains Mono", monospace;--font-size-base: 1rem;--font-size-small: calc(0.92 * var(--font-size-base));--font-size-title: calc(1.3 * var(--font-size-base));--header-line-height-base: 1.1;--text-line-height: 1.5;--text-color: var(--halcyon-text-normal);--text-color-muted: var(--halcyon-text-muted)}:root{--blockquote-color: var(--halcyon-palette-orange)}blockquote{--blockquote-bg: color-mix(in hsl, var(--blockquote-color), var(--halcyon-bg) 90%);--blockquote-text: color-mix(in hsl, var(--text-color), var(--blockquote-color) 20%);--blockquote-borders: color-mix(in hsl, var(--blockquote-color) 25%, transparent);margin:var(--space-6) 0;padding:var(--space-3) var(--space-4);border:var(--border-width) solid var(--blockquote-borders);border-left:calc(2*var(--radius-2)) solid var(--blockquote-color);border-radius:var(--radius-2);background:var(--blockquote-bg)}blockquote p{margin:0;color:var(--blockquote-text)}blockquote p+p{margin-top:var(--space-3)}blockquote.markdown-alert-note{--blockquote-color: var(--halcyon-palette-blue)}blockquote.markdown-alert-tip{--blockquote-color: var(--halcyon-palette-lime)}blockquote.markdown-alert-important{--blockquote-color: var(--halcyon-palette-lilac)}blockquote.markdown-alert-warning{--blockquote-color: var(--halcyon-palette-yellow)}blockquote.markdown-alert-caution{--blockquote-color: var(--halcyon-palette-salmon)}code,pre{font-family:var(--font-mono)}:root{--code-inline: var(--halcyon-palette-cyan);--code-inline-bg: light-dark(var(--halcyon-base-grey-lightest), var(--halcyon-base-blue-02));--code-bg: light-dark(var(--halcyon-base-grey-lightest), var(--halcyon-base-blue-02));--code-inline-border: light-dark(var(--halcyon-base-blue-05), var(--halcyon-base-blue-03));--code-block-border: light-dark(var(--halcyon-base-blue-04), var(--halcyon-base-blue-03-04-mix));--code-line-no: var(--halcyon-text-muted);--code-text: var(--halcyon-text-normal);--code-fallback: var(--halcyon-text-muted);--code-highlight: light-dark(var(--halcyon-base-grey-light), var(--halcyon-base-blue-02-03-mix));--code-punctuation: var(code-text);--code-variable: var(--halcyon-palette-cyan);--code-function: var(--halcyon-palette-yellow);--code-operator: var(--halcyon-palette-orange);--code-error: var(--halcyon-palette-salmon);--code-keyword: var(--halcyon-palette-lilac);--code-const: var(--halcyon-palette-lilac);--code-comment: var(--halcyon-text-muted);--code-entity: var(--halcyon-palette-orange);--code-string-literal: var(--halcyon-palette-lime);--code-md-bold: var(--halcyon-palette-salmon);--code-md-italic: var(--halcyon-palette-salmon);--code-md-link: var(--halcyon-palette-lilac);--code-md-quote: var(--halcyon-palette-yellow);--code-md-header: var(--halcyon-palette-lime);--code-diff-add: var(--halcyon-palette-lime);--code-diff-del: var(--halcyon-palette-salmon)}.giallo-l{display:inline-block;min-height:1lh;width:100%}.giallo-ln{color:var(--code-line-no);display:inline-block;margin-right:.4em;min-width:3ch;opacity:.8;padding:.4em;text-align:right;user-select:none}.giallo-l:not(:has(>.giallo-ln)){box-sizing:border-box;padding-inline-start:1em}.giallo-l:not(:has(>.giallo-ln)):first-child{padding-top:.4em}.giallo-l:not(:has(>.giallo-ln)):last-child{padding-bottom:.4em}code{font-size:smaller}code:not([data-lang]){color:var(--code-inline);background-color:var(--code-inline-bg);border:1px solid var(--code-inline-border);border-radius:var(--radius-2);margin:0 .15em}code[data-lang=plain]{color:var(--code-text)}code[data-lang=diff]>span.giallo-l>span.z-source{color:var(--code-text)}pre{border:1px solid var(--code-block-border);border-radius:var(--radius-3);background-color:var(--code-bg);overflow-x:auto}pre code{font-size:.95em}.z-code{color:var(--code-fallback);background-color:var(--code-bg);border:1px solid var(--code-block-border);border-radius:var(--radius-3);overflow-x:auto}blockquote pre,blockquote .z-code{border-color:color-mix(in hsl, var(--code-block-border), var(--halcyon-palette-lilac) 25%)}.z-hl{background-color:var(--code-highlight)}.z-text{color:var(--code-text)}.z-punctuation{color:var(--code-punctuation)}.z-comment{color:var(--code-comment);font-style:italic}.z-string{color:var(--code-string-literal)}.z-keyword{color:var(--code-keyword)}.z-variable{color:var(--code-variable)}.z-variable.z-constant{color:var(--code-variable)}.z-constant{color:var(--code-const)}.z-storage{color:var(--code-keyword)}.z-function{color:var(--code-function)}.z-property{color:var(--code-variable)}.z-entity{color:var(--code-entity)}.z-support{color:var(--code-variable)}.z-support.z-type{color:var(--code-function)}.z-source{color:var(--code-variable)}.z-tag{color:var(--code-variable)}.z-punctuation.z-tag{color:var(--code-punctuation)}.z-markup.z-bold{color:var(--code-md-bold);font-weight:bold}.z-markup.z-italic{color:var(--code-md-italic);font-style:italic}.z-markup.z-strikethrough{text-decoration:line-through}.z-markup.z-link{color:var(--code-md-link);text-decoration:underline}.z-markup.z-quote{color:var(--code-md-quote)}.z-markdown.z-heading{color:var(--code-md-header)}.z-deleted{color:var(--code-diff-del)}.z-inserted{color:var(--code-diff-add)}:root{--h1-line-height: var(--header-line-height-base);--h2-line-height: calc(0.1 + var(--h1-line-height));--h3-line-height: calc(0.1 + var(--h2-line-height));--h4-line-height: calc(0.1 + var(--h3-line-height));--h5-line-height: calc(0.1 + var(--h4-line-height));--h6-line-height: calc(0.1 + var(--h5-line-height));--h1-size: calc(2 * var(--font-size-base));--h2-size: calc(1.7 * var(--font-size-base));--h3-size: calc(1.4 * var(--font-size-base));--h4-size: calc(1.2 * var(--font-size-base));--h5-size: calc(1.1 * var(--font-size-base));--h6-size: var(--font-size-base);--h1-color: var(--halcyon-palette-lime);--h2-color: var(--halcyon-palette-lime);--h3-color: var(--halcyon-palette-lime);--h4-color: var(--halcyon-palette-lime);--h5-color: var(--halcyon-palette-lime);--h6-color: var(--halcyon-palette-lime);--offset: 3.8em}h1,h2,h3,h4,h5,h6{font-family:var(--font-serif);margin:0 0 .75rem;color:var(--heading-color)}h1>a,h2>a,h3>a,h4>a,h5>a,h6>a{color:inherit;text-decoration:none;text-decoration-color:currentColor;text-underline-offset:.12em;transition:text-decoration-color .15s ease}h1:hover>a,h1>a:hover,h1>a:focus-visible,h2:hover>a,h2>a:hover,h2>a:focus-visible,h3:hover>a,h3>a:hover,h3>a:focus-visible,h4:hover>a,h4>a:hover,h4>a:focus-visible,h5:hover>a,h5>a:hover,h5>a:focus-visible,h6:hover>a,h6>a:hover,h6>a:focus-visible{text-decoration:underline}h1[id],h2[id],h3[id],h4[id],h5[id],h6[id]{scroll-margin-top:var(--offset)}h1{--heading-color: var(--h1-color);font-size:var(--h1-size);line-height:var(--h1-line-height)}h2{--heading-color: var(--h2-color);font-size:var(--h2-size);line-height:var(--h2-line-height)}h3{--heading-color: var(--h3-color);font-size:var(--h3-size);line-height:var(--h3-line-height)}h4{--heading-color: var(--h4-color);font-size:var(--h4-size);line-height:var(--h4-line-height)}h5{--heading-color: var(--h5-color);font-size:var(--h5-size);line-height:var(--h5-line-height)}h6{--heading-color: var(--h6-color);font-size:var(--h6-size);line-height:var(--h6-line-height)}:root{--link-color: var(--halcyon-palette-lilac);--link-color-hover: color-mix(in hsl, var(--halcyon-palette-lilac), var(--halcyon-palette-pink) 28%)}a{color:var(--link-color);text-decoration-color:color-mix(in hsl, var(--link-color), rgba(0,0,0,0) 35%);text-underline-offset:.12em}a:hover{color:var(--link-color-hover)}p,ul,ol,li{color:var(--text-color)}:root{--md-list-marker-color: var(--halcyon-palette-lilac)}ul li::marker,ol li::marker{color:var(--md-list-marker-color)}ol{list-style-type:decimal}ol ol{list-style-type:lower-alpha}ol ol ol,ol ol ol ol,ol ol ol ol ol,ol ol ol ol ol ol,ol ol ol ol ol ol ol,ol ol ol ol ol ol ol ol{list-style-type:lower-roman}mjx-container{color:var(--halcyon-math-color)}mjx-container[display=true]{color:var(--halcyon-math-display-color)}:root{--md-table-border: color-mix(in hsl, var(--halcyon-palette-lilac), transparent 68%);--md-table-header-bg: color-mix(in hsl, var(--halcyon-palette-lilac), transparent 88%);--md-table-row-alt-bg: color-mix(in hsl, var(--halcyon-palette-lilac), transparent 94%);--md-table-row-hover-bg: color-mix(in hsl, var(--halcyon-palette-lilac), transparent 86%)}table{width:100%;border-collapse:collapse;border:var(--border-width) solid var(--md-table-border);margin:var(--space-6) 0}thead{background-color:var(--md-table-header-bg)}th,td{padding:var(--space-3) var(--space-4);border:var(--border-width) solid var(--md-table-border);text-align:left;vertical-align:top}tbody tr:nth-child(even){background-color:var(--md-table-row-alt-bg)}tbody tr{transition:background-color 120ms ease}tbody tr:hover{background-color:var(--md-table-row-hover-bg)}pre.mermaid{border:unset;background-color:unset;display:flex;justify-content:center}.footnote-definition{display:flex;flex-direction:row;align-items:baseline;gap:.5em}.footnote-definition>p{margin:0;padding:0}.footnote-reference{padding:0 .1rem}.footnote-definition-label{font-family:var(--font-mono);color:var(--halcyon-text-muted)}.footnote-definition-label::after{content:" ->"}figure{background-color:light-dark(var(--halcyon-base-grey-light), var(--halcyon-base-blue-03));width:fit-content}figure figcaption{font-size:var(--font-size-small);text-align:center;padding:var(--space-2) 0}.site-header{position:sticky;top:0;z-index:20;border-bottom:1px solid light-dark(rgba(15,23,42,.12), var(--halcyon-base-blue-03));backdrop-filter:blur(10px)}.navigation-wrapper{min-height:3.25rem;display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding-block:var(--space-2)}.site-title{font-family:var(--font-serif);font-size:var(--font-size-title);font-weight:700;letter-spacing:.01em;text-decoration:none;color:light-dark(#1f2a37, var(--halcyon-base-grey-light));white-space:nowrap}.site-title:hover{color:light-dark(#0f172a, var(--halcyon-accent))}.nav-actions{display:flex;align-items:center;gap:var(--space-3);margin-left:auto}.nav-list{list-style:none;display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-2);margin:0;padding:0}.nav-list a{display:inline-flex;align-items:center;text-decoration:none;font-family:var(--font-sans);font-size:var(--font-size-small);line-height:1;padding:var(--space-2) var(--space-3);border-radius:calc(99*var(--radius-4));color:light-dark(#475569, var(--halcyon-base-blue-05));transition:color 140ms ease,background-color 140ms ease}.nav-list a:hover{color:light-dark(#0f172a, var(--halcyon-base-grey-light));background:light-dark(rgba(36,89,168,.12), rgba(102,121,164,.22))}.nav-list a[aria-current=page]{color:light-dark(#0f172a, var(--halcyon-base-grey-light));background:light-dark(rgba(36,89,168,.18), rgba(102,121,164,.3));font-weight:600}.theme-toggle{border:1px solid light-dark(rgba(15,23,42,.14), var(--halcyon-base-blue-04));background:light-dark(#fff, var(--halcyon-base-blue-02));color:light-dark(#0f172a, var(--halcyon-base-grey-light));border-radius:50%;width:2.2rem;height:2.2rem;padding:0;display:inline-flex;align-items:center;justify-content:center;font-family:var(--font-sans);font-size:var(--font-size-small);font-weight:700;cursor:pointer;transition:transform 140ms ease,background-color 140ms ease,color 140ms ease}.theme-toggle svg{display:block;flex-shrink:0}.theme-toggle:hover{background:light-dark(rgba(36,89,168,.15), rgba(102,121,164,.28))}@media (max-width: 48rem){.navigation-wrapper{flex-wrap:wrap;row-gap:var(--space-2)}.site-title{width:100%}.nav-actions{width:100%;justify-content:space-between}.nav-list{overflow-x:auto;flex-wrap:nowrap;padding-bottom:2px}}.toc-container{margin:var(--space-6) 0;padding:var(--space-3) var(--space-4);border:1px solid color-mix(in hsl, var(--halcyon-text-muted), rgba(0,0,0,0) 55%);border-radius:var(--radius-3);background:color-mix(in hsl, var(--halcyon-bg), var(--halcyon-base-blue-03) 12%)}.toc-container>summary{cursor:pointer;font-family:var(--font-sans);font-weight:700;color:var(--halcyon-palette-blue)}.toc-container .toc{margin-top:var(--space-3)}.toc-container .toc a{text-decoration-thickness:1px;text-underline-offset:2px}.toc-container .toc>ul,.toc-container .toc>ol{margin:0;padding-left:var(--space-6)}.toc-container .toc li+li{margin-top:var(--space-2)}.toc-container .toc ul>li:last-child,.toc-container .toc ol>li:last-child{margin-bottom:var(--space-2)}.err{min-height:100svh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;gap:var(--space-4);padding:var(--space-6)}.err__code{margin:0;font-family:var(--font-mono);font-size:clamp(3rem,16vw,7rem);line-height:1}.err__title{margin:0;font-size:clamp(1.1rem,2.5vw,1.35rem);color:var(--text-color-muted)}.err__link{border:var(--border-width) solid color-mix(in hsl, var(--halcyon-accent), rgba(0,0,0,0) 35%);border-radius:var(--radius-3);padding:var(--space-2) var(--space-4);text-decoration:none;color:var(--halcyon-accent);transition:background-color 120ms ease,color 120ms ease}.err__link:hover,.err__link:focus-visible{background:color-mix(in hsl, var(--halcyon-accent), rgba(0,0,0,0) 85%);color:var(--halcyon-accent)}:root{--footer-bg: light-dark(var(--halcyon-base-grey-lighter), var(--halcyon-base-blue-02));--footer-border: light-dark(var(--halcyon-base-grey-light), var(--halcyon-base-blue-02))}.footer{display:flex;justify-content:center;margin-top:var(--space-8);color:var(--halcyon-text-muted);font-size:var(--font-size-small);text-align:center;border-top:1px solid var(--footer-border);background:var(--footer-bg)}.footer .footer__content{font-family:var(--font-serif);max-width:var(--container);margin:0}:root{--card-bg: light-dark(var(--halcyon-base-grey-lightest), var(--halcyon-base-blue-02))}.posts{display:flex;flex-wrap:wrap;justify-content:flex-start;align-content:flex-start;flex-direction:row;align-items:flex-start;gap:var(--space-2);padding:1rem}.in-postcard{padding:var(--space-4);overflow:hidden;display:flex;flex-direction:column;flex-wrap:nowrap;justify-content:flex-start;height:100%}.postcard{width:100%;height:12rem;border-radius:var(--radius-2);border:var(--border-width) solid var(--halcyon-accent);background-color:var(--card-bg)}@media (min-width: 605px){.postcard{width:16rem}}.postcard__date{margin:0 0 var(--space-2) 0;color:var(--halcyon-text-muted)}.postcard__title{margin:0 0 var(--space-4) 0;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.postcard__summary{min-height:0;margin:0;display:-webkit-box;line-clamp:3;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;flex-grow:0}.postcard .tags{margin-top:auto;margin-bottom:var(--space-8)}:root{--tag-text: var(--halcyon-palette-cyan);--tag-bg: light-dark(var(--halcyon-base-grey-light), var(--halcyon-base-blue-03))}.tag-pill{display:inline-block;padding:calc(.25*var(--spacing-unit)) var(--spacing-unit);border-radius:var(--radius-4);background-color:var(--tag-bg);color:var(--tag-text);font-size:var(--font-size-small);font-family:var(--font-mono);white-space:nowrap;flex:0 0 auto}.tag-pill::before{content:"#";margin-right:.2em}.tag-pill:hover{filter:brightness(1.3)}.tags{display:flex;flex-wrap:nowrap;gap:var(--spacing-unit);overflow:hidden;white-space:nowrap;min-width:0;max-width:100%;--tags-fade-width: 3em;-webkit-mask-image:linear-gradient(to right, #000 0, #000 calc(100% - var(--tags-fade-width)), rgba(0,0,0,0) 100%);-webkit-mask-repeat:no-repeat;mask-image:linear-gradient(to right, #000 0, #000 calc(100% - var(--tags-fade-width)), rgba(0,0,0,0) 100%);mask-repeat:no-repeat}.post-subtitle{display:flex;align-items:center;gap:var(--spacing-unit);color:var(--halcyon-text-muted);flex-wrap:nowrap}.post-subtitle svg{width:1em;height:1em;flex:0 0 auto}.post-subtitle__meta,.post-subtitle__tags{display:inline-flex;align-items:center;gap:var(--spacing-unit);min-width:0;white-space:nowrap}.post-subtitle__meta{flex:0 0 auto}.post-subtitle__tags{flex:1 1 auto}.post-subtitle__tags .tags{flex:1 1 auto;min-width:0}@media (max-width: 48rem){.post-subtitle{flex-direction:column;align-items:flex-start;gap:calc(.5*var(--spacing-unit))}.post-subtitle__meta,.post-subtitle__tags{width:100%}.post-subtitle__tags-separator{display:none}}body{background-color:var(--halcyon-bg);margin:0;min-height:100svh;display:flex;flex-direction:column}html{font-family:var(--font-sans)}#main-content{flex:1 0 auto}.container{width:min(100% - 2*var(--page-padding-inline),var(--container));margin-inline:auto;margin-top:var(--space-5)}