@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-cyrillic-ext-wght-normal.cHuGMAiY.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-cyrillic-wght-normal.DwHjdM4S.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-greek-wght-normal.ece1310W.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-vietnamese-wght-normal.D-yuW59g.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-latin-ext-wght-normal.CxNHBx-q.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-latin-wght-normal.D9elroTD.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-cyrillic-ext-opsz-italic.Bl6DJqma.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-cyrillic-opsz-italic.Dibx14aP.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-greek-opsz-italic.CMW9dfKg.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-vietnamese-opsz-italic.C-k5pZlm.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-latin-ext-opsz-italic.BhUEwDRF.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4 Variable";font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/source-serif-4-latin-opsz-italic.BOLXpvkj.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.xuaO2J-f.woff2) format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-ext-400-normal.DMdlQ8Kv.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-cyrillic-400-normal.BSMlKf0J.woff2) format("woff2"),url(/_astro/ibm-plex-mono-cyrillic-400-normal.CEL4l2ZJ.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-vietnamese-400-normal.BulugwFq.woff2) format("woff2"),url(/_astro/ibm-plex-mono-vietnamese-400-normal.DDuiU_S-.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-ext-400-normal.BmRBH3aV.woff2) format("woff2"),url(/_astro/ibm-plex-mono-latin-ext-400-normal.D3D2R8hC.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/ibm-plex-mono-latin-400-normal.DMJ8VG8y.woff2) format("woff2"),url(/_astro/ibm-plex-mono-latin-400-normal.CvHOgSBP.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--serif: "Source Serif 4 Variable", Charter, Georgia, serif;--mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--measure: 34rem;--step--1: .85rem;--step-0: 1.1875rem;--step-1: 1.45rem;--step-2: 1.75rem;--step-3: 2.15rem;--ink: #1a1a18;--ink-muted: #6b6b66;--ink-faint: #9a9a94;--paper: #fbfaf7;--rule: #e3e1da;--accent: #7a5c3e;--leading: 1.68}:root[data-theme=dark]{--ink: #e6e4dd;--ink-muted: #9d9b93;--ink-faint: #6e6c65;--paper: #14140f;--rule: #2c2c26;--accent: #c9a87c}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--ink: #e6e4dd;--ink-muted: #9d9b93;--ink-faint: #6e6c65;--paper: #14140f;--rule: #2c2c26;--accent: #c9a87c}}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:var(--step-0);line-height:var(--leading);font-synthesis-weight:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}.shell{max-width:var(--measure);margin:0 auto;padding:0 1.5rem}.shell--wide{max-width:42rem}main{min-height:60vh;padding-block:3.5rem 6rem}.masthead{padding-block:2.5rem 0}.masthead__inner{display:flex;align-items:baseline;justify-content:space-between;gap:1rem}.masthead__name{font-size:var(--step-0);font-weight:600;letter-spacing:-.01em;text-decoration:none;color:var(--ink)}.masthead__name:hover{color:var(--accent)}.masthead__nav{display:flex;align-items:baseline;gap:1.25rem;font-family:var(--mono);font-size:var(--step--1);letter-spacing:.02em}.masthead__nav a{color:var(--ink-muted);text-decoration:none}.masthead__nav a:hover,.masthead__nav a[aria-current=page]{color:var(--ink)}.theme-toggle{background:none;border:0;padding:0;cursor:pointer;color:var(--ink-faint);font-family:var(--mono);font-size:var(--step--1);line-height:1}.theme-toggle:hover{color:var(--ink)}.prose{font-size:var(--step-0)}.prose>*+*{margin-top:1.4em}.prose p{margin:0;hanging-punctuation:first last}.prose h2,.prose h3{font-weight:600;line-height:1.25;letter-spacing:-.011em;margin-top:2.4em;margin-bottom:-.6em}.prose h2{font-size:var(--step-1)}.prose h3{font-size:var(--step-0);font-style:italic;font-weight:400}.prose a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--rule);text-decoration-thickness:1px;text-underline-offset:.18em}.prose a:hover{color:var(--accent);text-decoration-color:var(--accent)}.prose blockquote{margin:2em 0;padding-left:1.25rem;border-left:1px solid var(--rule);color:var(--ink-muted);font-style:italic}.prose blockquote p{margin:0}.prose ul,.prose ol{margin:0;padding-left:1.3rem}.prose li+li{margin-top:.4em}.prose li::marker{color:var(--ink-faint)}.prose img{max-width:100%;height:auto;display:block}.prose figure{margin:2.5em 0}.prose figcaption{margin-top:.7em;font-family:var(--mono);font-size:var(--step--1);color:var(--ink-muted);line-height:1.5}.prose hr{border:0;margin:3em auto;width:4rem;border-top:1px solid var(--rule)}.prose code{font-family:var(--mono);font-size:.85em}.prose :not(pre)>code{background:color-mix(in srgb,var(--ink) 6%,transparent);padding:.12em .3em;border-radius:3px}.prose pre{font-size:var(--step--1);line-height:1.6;padding:1rem 1.1rem;border-radius:4px;overflow-x:auto;border:1px solid var(--rule)}:root[data-theme=dark] .astro-code,:root[data-theme=dark] .astro-code span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .astro-code,:root:not([data-theme=light]) .astro-code span{color:var(--shiki-dark)!important;background-color:var(--shiki-dark-bg)!important}}.post__header{margin-bottom:3rem}.post__title{font-size:var(--step-3);font-weight:600;line-height:1.15;letter-spacing:-.022em;margin:0 0 .5rem;text-wrap:balance}.post__meta{font-family:var(--mono);font-size:var(--step--1);color:var(--ink-faint);letter-spacing:.02em}.post__footer{margin-top:5rem;padding-top:1.5rem;border-top:1px solid var(--rule);font-family:var(--mono);font-size:var(--step--1)}.post__footer a{color:var(--ink-muted);text-decoration:none}.post__footer a:hover{color:var(--ink)}.intro{margin-bottom:4.5rem}.intro p{margin:0 0 1.2em;text-wrap:pretty}.intro p:last-child{margin-bottom:0}.intro a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--rule);text-underline-offset:.18em}.intro a:hover{color:var(--accent);text-decoration-color:var(--accent)}.section-label{font-family:var(--mono);font-size:var(--step--1);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:1.75rem}.entries{list-style:none;margin:0;padding:0}.entry{padding-block:1.4rem;border-top:1px solid var(--rule)}.entry:last-child{border-bottom:1px solid var(--rule)}.entry__link{text-decoration:none;color:inherit;display:block}.entry__title{font-size:var(--step-1);font-weight:600;line-height:1.3;letter-spacing:-.014em;margin:0 0 .3rem;text-wrap:balance}.entry__link:hover .entry__title{color:var(--accent)}.entry__blurb{margin:0 0 .5rem;color:var(--ink-muted);line-height:1.55;text-wrap:pretty}.entry__date{font-family:var(--mono);font-size:var(--step--1);color:var(--ink-faint);letter-spacing:.02em}.empty{color:var(--ink-muted);font-style:italic}.colophon{border-top:1px solid var(--rule);font-family:var(--mono);font-size:var(--step--1);color:var(--ink-faint)}.colophon__inner{padding-block:2rem 3rem;display:flex;justify-content:space-between;align-items:baseline;gap:1rem;flex-wrap:wrap}.colophon a{color:var(--ink-muted);text-decoration:none}.colophon a:hover{color:var(--ink)}.colophon__links{display:flex;gap:1.1rem;flex-wrap:wrap}.record{list-style:none;margin:0 0 2.5rem;padding:0}.record li{display:grid;grid-template-columns:7.5rem 1fr;gap:1rem;padding-block:.7rem;border-top:1px solid var(--rule);align-items:baseline}.record li:last-child{border-bottom:1px solid var(--rule)}.record__when{font-family:var(--mono);font-size:var(--step--1);color:var(--ink-faint);letter-spacing:.01em}.record__what strong{font-weight:600}.record__what span{display:block;color:var(--ink-muted);font-size:.95em;line-height:1.5}.record__what a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--rule);text-underline-offset:.16em}.record__what a:hover{color:var(--accent);text-decoration-color:var(--accent)}@media(max-width:34rem){.record li{grid-template-columns:1fr;gap:.25rem}}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:1rem;top:1rem;z-index:10;background:var(--paper);padding:.5rem .75rem;border:1px solid var(--rule)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
