.astro-route-announcer{position:absolute;left:0;top:0;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden;white-space:nowrap;width:1px;height:1px}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-ext-opsz-normal.CfYZpDVp.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-opsz-normal.BFQXbQ-f.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-ext-opsz-normal.BmPQvyvo.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-opsz-normal.BM0NlUE_.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-vietnamese-opsz-normal.Ci9T9ieq.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-ext-opsz-normal.DpK-iCPk.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-opsz-normal.BwkfbSeq.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:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-ext-opsz-italic.fe11NjBs.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:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-opsz-italic.Ck9oD2H0.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-ext-opsz-italic.BIcRYUEt.woff2) format("woff2-variations");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-opsz-italic.mtaF_0H_.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:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/inter-vietnamese-opsz-italic.C7TReJrb.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:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-ext-opsz-italic.BLMf5All.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:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-opsz-italic.BbqH_2Ar.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}:root{--max-width: 740px;--bg: #13101b;--text: #f0ede5;--heading: #ffffff;--meta: #8b858e;--border: #2e2638;--code-bg: #221a2c;--pink: #ec4899;--pink-soft: rgba(236, 72, 153, .22);--teal: #2dd4bf;--teal-soft: rgba(45, 212, 191, .14);color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{font-family:Inter Variable,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:16px;line-height:1.65;font-feature-settings:"cv01","cv11","ss01","ss03";font-variant-ligatures:contextual common-ligatures;font-optical-sizing:auto;font-synthesis:none;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}h1,h2,h3,h4,h5,h6,.site-title,.reading-title,.posts .title{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Helvetica Neue,sans-serif}h1,h2,h3,h4,h5,h6{color:var(--heading)}::selection{background:var(--pink-soft)}body{background:var(--bg);color:var(--text);margin:0;padding:0;min-height:100vh;display:flex;flex-direction:column}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}main{flex:1;width:100%;max-width:var(--max-width);margin:0 auto;padding:1.5rem 1.5rem 4rem}header.site{width:100%;max-width:var(--max-width);margin:0 auto;padding:2rem 1.5rem 1.25rem;display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:.5rem}.site-title{font-weight:600;font-size:1rem;letter-spacing:-.01em}.site-nav a{margin-left:1rem;color:var(--meta);font-size:.9rem}.site-nav a:first-child{margin-left:0}.site-nav a[aria-current=page],.site-nav a:hover{color:var(--text)}.site-nav a[aria-current=page]{text-decoration:underline;text-decoration-color:var(--pink);text-decoration-thickness:1.5px;text-underline-offset:4px}footer.site{width:100%;max-width:var(--max-width);margin:0 auto;padding:1.5rem 1.5rem 2.5rem;color:var(--meta);font-size:.85rem;border-top:1px solid var(--border)}footer.site a{color:var(--meta)}.home-tagline{font-size:1rem;font-style:italic;color:var(--text);opacity:.7;margin:0 0 2.5rem;text-wrap:pretty;max-width:36em}.year{color:var(--meta);font-weight:400;font-size:.9rem;margin:2rem 0 .75rem;letter-spacing:.02em}section:first-of-type .year{margin-top:.5rem}.posts{list-style:none;padding:0;margin:0 0 1rem}.posts li{padding:.3rem 0}.posts a{display:flex;gap:1.25rem;align-items:baseline;transition:color .12s ease}.posts a:hover{text-decoration:none}.posts a:hover .title{color:var(--pink);text-decoration:underline;text-decoration-color:var(--pink);text-decoration-thickness:1.5px;text-underline-offset:4px}.posts .date{color:var(--teal);font-variant-numeric:tabular-nums;flex-shrink:0;width:4rem;font-size:.9rem}.posts .title{flex:1;font-size:.98rem;text-wrap:balance}article header{margin-bottom:2.5rem}article h1{font-size:2.1rem;font-weight:600;margin:0 0 .6rem;line-height:1.15;letter-spacing:-.028em;text-wrap:balance}article .lede{font-size:1.05rem;line-height:1.55;color:var(--text);font-style:italic;margin:0 0 .85rem;text-wrap:pretty;max-width:36em;opacity:.85}article .meta{color:var(--meta);font-size:.85rem;margin:0}article .meta time{font-variant-numeric:tabular-nums}.content{margin-top:2rem;line-height:1.78;letter-spacing:-.003em}.content>*:first-child{margin-top:0}.content p,.content ul,.content ol{margin:0 0 1.15rem;text-wrap:pretty}.content h1{margin:2.5rem 0 .4rem;font-size:1.55rem;font-weight:700;line-height:1.25;letter-spacing:-.02em;text-wrap:balance}.content h2{margin:2rem 0 .5rem;font-size:1.3rem;font-weight:700;line-height:1.3;letter-spacing:-.016em;text-wrap:balance}.content h3{margin:1.5rem 0 .35rem;font-size:1.1rem;font-weight:700;line-height:1.35;letter-spacing:-.012em;text-wrap:balance}.content a{text-decoration:underline;text-decoration-thickness:1.5px;text-decoration-color:var(--pink);text-underline-offset:3px;transition:color .12s ease}.content a:hover{color:var(--pink)}.content code{background:var(--teal-soft);color:var(--teal);padding:.12em .35em;border-radius:3px;font-size:.88em;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace}.content pre{background:var(--code-bg);padding:1rem;border-radius:4px;overflow-x:auto;font-size:.85rem;line-height:1.55;margin:1.25rem 0}.content pre code{background:none;color:inherit;padding:0;font-size:inherit}.content .callout{border-left:2px solid var(--pink);background:var(--pink-soft);padding:.85rem 1rem;margin:1.25rem 0;border-radius:0 4px 4px 0}.content .callout>*:first-child{margin-top:0}.content .callout>*:last-child{margin-bottom:0}.content blockquote{border-left:2px solid var(--border);padding-left:1rem;margin:1.25rem 0;color:var(--meta);font-style:italic}.content img{max-width:100%;height:auto;border-radius:4px;margin:1.5rem 0}.content hr{border:none;border-top:1px solid var(--border);margin:2.5rem 0}.content ul,.content ol{padding-left:1.5rem}.content li{margin:.25rem 0}.readings{list-style:none;padding:0;margin:0}.readings li{padding:0 0 2.25rem}.readings li+li{padding-top:.25rem}.reading-title{display:block;font-size:1.2rem;font-weight:600;letter-spacing:-.018em;line-height:1.3;color:var(--text);text-wrap:balance;transition:color .12s ease,scale .12s ease}.reading-title:hover{color:var(--pink);text-decoration:none}.reading-title:active{scale:.99}.reading-meta{margin:.3rem 0 .6rem;color:var(--meta);font-size:.82rem;letter-spacing:.005em}.reading-meta time{font-variant-numeric:tabular-nums}.reading-summary{margin:0;font-size:.95rem;line-height:1.65;letter-spacing:-.003em;color:var(--meta);text-wrap:pretty;max-width:38em}.toc{--toc-width: 240px;--toc-gutter: 48px;position:fixed;top:25vh;left:max(1.5rem,calc(50vw - (var(--max-width) / 2) - var(--toc-gutter) - var(--toc-width)));z-index:5;pointer-events:auto}.toc nav{display:block}.toc{--toc-ease: cubic-bezier(.23, 1, .32, 1);--toc-spread: 8px;--toc-spread-ms: .36s;--toc-text-ms: .24s;--toc-text-delay: .2s;--toc-text-stagger: 28ms}.toc ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0}.toc-item{margin:0;padding:0;transform:translateY(0);transition:transform var(--toc-spread-ms) var(--toc-ease);will-change:transform}.toc:hover .toc-item,.toc:focus-within .toc-item{transform:translateY(calc(var(--i, 0) * var(--toc-spread)))}.toc a{display:grid;grid-template-columns:28px 1fr;align-items:center;gap:14px;padding:1px 0;color:inherit;text-decoration:none;max-width:var(--toc-width);position:relative}.toc a:hover{text-decoration:none}.toc:hover .toc-item:not(:first-child) a:before,.toc:focus-within .toc-item:not(:first-child) a:before{content:"";position:absolute;left:0;right:0;bottom:100%;height:calc(var(--toc-spread) / 2)}.toc:hover .toc-item:not(:last-child) a:after,.toc:focus-within .toc-item:not(:last-child) a:after{content:"";position:absolute;left:0;right:0;top:100%;height:calc(var(--toc-spread) / 2)}.toc .bar{display:block;height:2px;border-radius:1px;background:var(--meta);opacity:.45;flex-shrink:0;transition:opacity .2s ease,background-color .2s ease}.toc-item.depth-1 .bar{width:28px}.toc-item.depth-2 .bar{width:18px}.toc-item.depth-3 .bar{width:10px}.toc .text{font-size:.82rem;line-height:1.35;color:var(--meta);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:0;transform:translate(-4px);transition:opacity var(--toc-text-ms) var(--toc-ease) 0ms,transform var(--toc-text-ms) var(--toc-ease) 0ms,max-width 0ms var(--toc-text-ms),color .16s ease;max-width:0}.toc-item.depth-2 .text{font-size:.78rem}.toc-item.depth-3 .text{font-size:.76rem;opacity:.85}.toc a.active .bar{background:var(--teal);opacity:1}.toc a.active .text{color:var(--teal)}.toc a:not(.active):hover .bar{background:var(--text);opacity:1}.toc a:not(.active):hover .text{color:var(--text)}.toc:hover .text,.toc:focus-within .text{opacity:1;transform:translate(0);max-width:200px;transition:opacity var(--toc-text-ms) var(--toc-ease) var(--toc-text-delay),transform var(--toc-text-ms) var(--toc-ease) var(--toc-text-delay),max-width 0ms var(--toc-text-delay),color .16s ease}.toc a:focus-visible{outline:2px solid var(--pink);outline-offset:2px;border-radius:2px}@media(max-width:1280px){.toc{display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important}}@media(max-width:480px){header.site{padding-top:1.5rem}.posts a{flex-direction:column;gap:.1rem}.posts .date{width:auto;font-size:.82rem}.posts .title{font-size:.95rem}}
