@layer reset{*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin:0}ul[role=list],ol[role=list]{list-style:none}body{min-height:100vh}h1,h2,h3,h4{font-size:inherit;font-weight:400;line-height:inherit;text-wrap:balance}a{color:currentColor;-webkit-text-decoration-skip-ink:auto;text-decoration-skip-ink:auto}img,picture{max-width:100%;display:block}input,button,textarea,select{font:inherit}textarea:not([rows]){min-height:10em}:target{scroll-margin-block:5ex}}@layer base{:root{--font-base:var(--font-switzer-variable), system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--unit:1rem;--font-size-sm:calc(var(--unit) * 1.4);--font-size-base:calc(var(--unit) * 1.6);--line-height-base:calc(var(--unit) * 2.4);--space:var(--line-height-base);--page-gutter:calc(var(--unit) * 1.6);--page-width:calc(var(--unit) * 102.4);--color-background:white;--color-ink:oklch(2% 5.96046e-8 none);--color-ink-muted:oklch(50% 5.96046e-8 none);--color-ink-hover:oklch(95% 5.96046e-8 none);--color-selection:oklch(90% 5.96046e-8 none);--color-code:#f8f8f9}@media (prefers-color-scheme:dark){:root{--color-background:black;--color-ink:oklch(96% 5.96046e-8 none);--color-ink-muted:oklch(75% 5.96046e-8 none);--color-ink-hover:oklch(35% 5.96046e-8 none);--color-selection:oklch(25% 5.96046e-8 none)}}html{color:var(--color-ink);font-size:10px}body{font-family:var(--font-base);font-size:var(--font-size-base);font-weight:350;line-height:var(--line-height-base);background:var(--color-background)}::selection{background:var(--color-selection)}}@layer components{.typeset{--typeset-font-body:inherit;--typeset-font-heading:var(--font-heading);--typeset-font-mono:var(--font-mono);--typeset-size:1em;--typeset-leading:1.75;--typeset-flow:1.25em}.typeset{font-family:var(--typeset-font-body);font-size:calc(var(--typeset-size) * 1.125);line-height:var(--typeset-leading);color:var(--color-foreground,currentColor);overflow-wrap:break-word;margin-trim:block-start}@media (width>=48rem),print{.typeset{font-size:var(--typeset-size)}}.typeset{--typeset-muted:var(--color-muted-foreground,color-mix(in oklab, currentColor 60%, transparent));--typeset-rule:var(--color-border,color-mix(in oklab, currentColor 20%, transparent))}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(p){margin-block-start:var(--typeset-flow);margin-block-end:0}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(h1,h2,h3,h4,h5,h6){color:var(--color-foreground,currentColor);font-family:var(--typeset-font-heading);margin-block-end:0;font-weight:600}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(h1){margin-block-start:var(--typeset-flow);font-size:1.75em;line-height:1.3}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(h2){margin-block-start:calc(var(--typeset-flow) * 1.4);font-size:1.25em;line-height:1.4}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(h3){margin-block-start:var(--typeset-flow);font-size:1.125em;line-height:1.45}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(h4){margin-block-start:var(--typeset-flow);font-size:1em;line-height:1.5}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(h5){color:var(--typeset-muted);margin-block-start:calc(var(--typeset-flow) / .875);font-size:.875em;font-weight:500;line-height:1.5}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(h6){letter-spacing:.08em;text-transform:uppercase;color:var(--typeset-muted);margin-block-start:calc(var(--typeset-flow) / .8125);font-size:.8125em;font-weight:500;line-height:1.5}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where([id]){scroll-margin-block-start:var(--typeset-flow)}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(h1+*,h2+*,h3+*,h4+*,h5+*,h6+*){margin-block-start:1em}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(:is(h1,h2,h3,h4) :is(code)){font-size:.9em}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(a){color:inherit;text-decoration-line:underline;-webkit-text-decoration-color:color-mix(in oklab, currentColor 30%, transparent);text-decoration-color:color-mix(in oklab, currentColor 30%, transparent);font-weight:500}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(a:hover){text-decoration-color:currentColor}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(a:focus-visible){outline:2px solid var(--color-ring,currentColor);outline-offset:2px;border-radius:.125em}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(:is(h1,h2,h3,h4,h5,h6) :is(a)){font-weight:inherit}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(strong,b),.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(:is(h1,h2,h3,h4) :is(strong,b)){font-weight:600}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(mark){color:inherit;background-color:oklab(86% -.0148165 .169353/.4);border-radius:.2em;padding:.05em .15em}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(abbr[title]){text-underline-offset:.2em;cursor:help;text-decoration-line:underline;text-decoration-style:dotted}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(del,s){color:var(--typeset-muted);text-decoration-line:line-through}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(sup,sub){vertical-align:baseline;font-size:.75em;line-height:0;position:relative}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(sup){top:-.5em}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(sub){bottom:-.25em}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(sup a){font-weight:500;text-decoration-line:none}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(ul){list-style-type:disc}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(ol){list-style-type:decimal}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(ul ul){list-style-type:circle}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(ul ul ul){list-style-type:square}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(ol[type=a i]){list-style-type:lower-alpha}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(ol[type=i i]){list-style-type:lower-roman}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(ol[type=A s]){list-style-type:upper-alpha}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(ol[type=I s]){list-style-type:upper-roman}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(ul,ol){margin-block-start:var(--typeset-flow);margin-block-end:0;padding-inline-start:1.5em}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(li){margin-block-start:.5em;padding-inline-start:.4em}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(li>p,li>ul,li>ol){margin-block-start:.5em}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(ul>li)::marker{color:var(--typeset-muted)}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(ol>li)::marker{color:var(--typeset-muted)}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(ul.contains-task-list){padding-inline-start:.25em;list-style-type:none}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(li.task-list-item>input[type=checkbox]){vertical-align:-.1em;accent-color:var(--color-primary,currentColor);margin-inline-end:.5em}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(details){margin-block-start:var(--typeset-flow);margin-block-end:0}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(summary){cursor:pointer;font-weight:500}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(summary)::marker{color:var(--typeset-muted)}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(kbd){border:1px solid var(--typeset-rule);border-radius:min(calc(var(--radius,.5em) * .6), .35em);border-block-end-width:2px;padding:.0625em .35em;font-family:inherit;font-size:.85em;font-weight:500}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(dl){margin-block-start:var(--typeset-flow);margin-block-end:0}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(dt){margin-block-start:1em;font-weight:500}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(dt+dt){margin-block-start:.25em}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(dd){color:var(--typeset-muted);margin-block-start:.25em;margin-inline-start:0;padding-inline-start:1em}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(:not(pre)>code){background-color:var(--color-muted,color-mix(in oklab, currentColor 8%, transparent));font-family:var(--typeset-font-mono);border-radius:min(calc(var(--radius,.5em) * .6), .35em);padding:.125em .3em;font-size:.85em}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(pre){background-color:var(--color-muted,color-mix(in oklab, currentColor 8%, transparent));font-family:var(--typeset-font-mono);tab-size:2;border-radius:var(--radius,.5em);direction:ltr;margin-block-start:calc(var(--typeset-flow) / .875);margin-block-end:0;padding:.75em 1em;font-size:.875em;line-height:1.5;overflow-x:auto}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(pre code){font-family:inherit;font-size:inherit;background-color:#0000;border-radius:0;padding:0}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(blockquote){border-inline-start:2px solid var(--typeset-rule);margin-block-start:var(--typeset-flow);margin-block-end:0;margin-inline:0;padding-inline-start:1em}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(hr){border:0;border-block-start:1px solid var(--typeset-rule);margin-block-start:calc(var(--typeset-flow) * 2.4);margin-block-end:0}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(hr+h1,hr+h2,hr+h3,hr+h4){margin-block-start:var(--typeset-flow)}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(.footnotes,[data-footnotes]){border-block-start:1px solid var(--typeset-rule);color:var(--typeset-muted);margin-block-start:calc(var(--typeset-flow) * 2);padding-block-start:var(--typeset-flow);font-size:.875em}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(math[display=block]){margin-block-start:var(--typeset-flow);margin-block-end:0;padding-block:.25em;overflow:auto hidden}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(img,video){border-radius:var(--radius,.5em);max-width:100%;height:auto;margin-block-start:var(--typeset-flow);margin-block-end:0}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(p img){margin-block-start:0}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(figure){margin-block-start:var(--typeset-flow);margin-block-end:0;margin-inline:0}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(figcaption,caption){color:var(--typeset-muted);text-align:center;margin-block-start:.857143em;font-size:.875em}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(caption){caption-side:bottom}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(table){font-variant-numeric:tabular-nums;border-collapse:separate;border-spacing:0;border-block-end:1px solid var(--typeset-rule);max-width:100%;margin-block-start:var(--typeset-flow);margin-block-end:0;font-size:1em;line-height:1.5}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(.typeset-scroll){margin-block-start:var(--typeset-flow);overflow-x:auto}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(.typeset-scroll>*){margin-block-start:0}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(.typeset-scroll table){width:max-content;max-width:none}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(thead th){text-align:start;white-space:nowrap;padding:.65em 1em;font-weight:500}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(:is(tbody,tfoot) :is(td,th)){text-align:start;vertical-align:top;border-block-start:1px solid var(--typeset-rule);padding:.75em 1em}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(tbody th,tfoot th){font-weight:500}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(th:first-child,td:first-child){padding-inline-start:0}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(th[align=center],td[align=center]){text-align:center}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(th[align=right],td[align=right]){text-align:end}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(li>blockquote,li>table,li>figure){margin-block-start:.5em}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(li>pre){margin-block-start:.571429em}@media print{.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(pre,table,blockquote,figure){break-inside:avoid}.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(h1,h2,h3,h4){break-after:avoid}}@media (forced-colors:active){.typeset :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(:not(pre)>code){border:1px solid}}.typeset>:where(:first-child):not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)),.typeset>:where(:first-child)>:where(:first-child):not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)),.typeset :where(li>:first-child,blockquote>:first-child,td>:first-child,th>:first-child,dd>:first-child,figure>:first-child,figure>picture>img):not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)){margin-block-start:0}.typeset-article{--typeset-font-body:var(--font-base);--typeset-font-heading:var(--font-base);--typeset-font-mono:monospace;--typeset-size:var(--font-size-base);--typeset-leading:var(--line-height-base);--typeset-flow:var(--space);--typeset-muted:var(--color-ink-muted);--typeset-rule:var(--color-ink-hover);--radius:0;color:var(--color-ink-muted);font-size:var(--typeset-size)}.typeset-article :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(h1,h2,h3,h4,h5,h6){color:var(--color-ink);font-size:var(--font-size-base);font-weight:400;line-height:var(--line-height-base);letter-spacing:normal;text-transform:none;margin-block-start:var(--space)}.typeset-article :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(h1+*,h2+*,h3+*,h4+*,h5+*,h6+*){margin-block-start:var(--space)}.typeset-article :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(:is(h1,h2,h3,h4) :is(code)){font-size:var(--font-size-sm)}.typeset-article :not(:where(.not-typeset,[data-not-typeset],.not-typeset *,[data-not-typeset] *)):where(pre){font-size:var(--font-size-sm);line-height:var(--line-height-base);padding:var(--page-gutter);margin-block-start:var(--space)}.container{column-gap:var(--space);row-gap:calc(var(--space) * 6);max-inline-size:var(--page-width);padding:calc(var(--space) * 5) var(--page-gutter);grid-template-columns:repeat(4,1fr);margin-inline:auto;display:grid}.container>*{grid-column:1/-1}.site-header p{color:var(--color-ink-muted)}.text-link{text-decoration:none;display:inline-block;position:relative}.text-link:before{z-index:-1;content:"";inset:0 calc(var(--unit) * -.4);background:0 0;position:absolute}.text-link:hover:before,.text-link:focus-visible:before{background:var(--color-ink-hover)}.home-section{grid-template-columns:subgrid;row-gap:var(--space);display:grid}.home-section>h2{grid-column:1/-1}.home-section p{color:var(--color-ink-muted)}.home-section strong{color:var(--color-ink);font-weight:inherit}.home-section .section-content,.home-section>.entry-content,.home-section>article{grid-column:1/-1}.home-section .entry-title{color:var(--color-ink)}.home-section .dated-entry{column-gap:var(--space);grid-template-columns:minmax(0,1fr) auto;display:grid}.home-section .dated-entry .entry-date{color:var(--color-ink-muted);white-space:nowrap;grid-area:1/2}.home-section .dated-entry .entry-content{display:contents}.home-section .dated-entry .entry-content>*{grid-column:1}.home-section .dated-entry .entry-content>:nth-child(n+2){grid-column:1/-1}.post-header{grid-template-columns:subgrid;margin-block-end:calc(var(--space) * -2);display:grid}.post-header time,.post-header p{color:var(--color-ink-muted)}.post-header time,.post-header div{grid-column:1/-1}.article-layout{grid-template-columns:subgrid;display:grid}.article-layout>*{grid-column:1/-1}.astro-code,.astro-code span{background:var(--color-code)!important}@media (prefers-color-scheme:dark){.astro-code,.astro-code span{color:var(--shiki-dark)!important;background:var(--shiki-dark-bg)!important;font-style:var(--shiki-dark-font-style)!important;font-weight:var(--shiki-dark-font-weight)!important;-webkit-text-decoration:var(--shiki-dark-text-decoration)!important;text-decoration:var(--shiki-dark-text-decoration)!important}}@media (width>=48em){.home-section .section-content,.home-section>.entry-content{grid-column:2/-1}.home-section .dated-entry{grid-template-columns:subgrid}.home-section .dated-entry .entry-date{grid-column:1}.home-section .dated-entry .entry-content{grid-column:2/-1;display:block}.post-header time{grid-column:1}.post-header div{grid-column:2/-1}.article-layout{column-count:2;column-gap:var(--space);grid-column:2/-1;display:block}.article-layout>*{break-inside:avoid;margin-block-start:0;margin-block-end:var(--space)}.article-layout>:last-child{margin-block-end:0}.article-layout :is(h2,h3,h4,pre,table,p:has(>img:only-child)){column-span:all;margin-block-start:var(--space)}}@media (width>=64em){.container{grid-template-columns:repeat(5,1fr)}.home-section .section-content,.home-section>.entry-content,.home-section .dated-entry .entry-content{grid-column-end:-2}.post-header div,.article-layout{grid-column-end:-2}}}
