@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-opsz-normal.DIwfbPUE.woff2)format("woff2-variations");unicode-range:U+460-52F,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-opsz-normal.C0olyEE-.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,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-opsz-normal.DrHU7SY7.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@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-opsz-normal.BOyYyU_V.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,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-opsz-normal.HoL-AExg.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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-opsz-normal.BpEBLj1O.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,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+460-52F,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+301,U+400-45F,U+490-491,U+4B0-4B1,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+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@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+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,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+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper:#fefefe;--ink:#1a1a1a;--muted:#63656a;--faint:#9a9c9f;--rule:#e6e6e3;--wash:#f4f4f1;--accent:#7048e8;--serif:"Source Serif 4 Variable", "Iowan Old Style", Georgia, "Times New Roman", serif;--mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--col:40rem;color-scheme:light}@media (prefers-color-scheme:dark){:root{--paper:#121212;--ink:#e9e7e2;--muted:#a2a4a8;--faint:#6e7074;--rule:#2a2a2a;--wash:#1b1b1b;--accent:#b39cf0;color-scheme:dark}}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-gutter:stable}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--paper);color:var(--ink);font-family:var(--serif);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:19px;line-height:1.6}a{color:inherit;text-decoration:none}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}img,video,svg{max-width:100%;height:auto}[hidden]{display:none!important}.underlined{text-underline-offset:3px;text-decoration:underline 1px;text-decoration-color:color-mix(in srgb, var(--accent) 70%, transparent)}.underlined:hover{text-decoration-color:var(--accent)}.accent{color:var(--accent)}.page{padding-block:0 96px;padding-inline:20px}.col{max-width:var(--col);margin:0 auto}.skip-link{background:var(--paper);border:1px solid var(--rule);border-radius:4px;padding:8px 12px;font-size:15px;position:absolute;top:8px;left:-999px}.skip-link:focus{z-index:40;left:8px}.masthead{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 24px;padding-block:30px 0;font-size:17px;display:flex}.masthead .brand{text-transform:uppercase;letter-spacing:.16em;color:var(--ink);font-size:19px;font-weight:300}@media (width<=420px){.masthead .brand{letter-spacing:.1em;font-size:16px}}.masthead nav{gap:22px;display:flex}.masthead nav a{color:var(--muted)}.masthead nav a:hover,.masthead nav a[aria-current=page]{color:var(--ink)}.site-footer{border-top:1px solid var(--rule);color:var(--faint);flex-wrap:wrap;gap:6px 20px;margin-top:72px;padding-top:18px;font-size:15px;display:flex}.site-footer a:hover{color:var(--ink)}#reading-progress{background:var(--accent);z-index:30;width:0;height:2px;position:fixed;top:0;left:0}@media (prefers-reduced-motion:no-preference){#reading-progress{transition:width 80ms linear}}#back-to-top{z-index:20;border:1px solid var(--rule);background:var(--paper);color:var(--muted);font:inherit;cursor:pointer;border-radius:999px;padding:8px 12px;font-size:15px;position:fixed;bottom:20px;right:20px}#back-to-top:hover{color:var(--ink)}.hello{grid-template-columns:1fr;grid-template-areas:"face""text";gap:24px;padding-block:72px 60px;display:grid}.hello .text{grid-area:text}.hello .face-wrap{aspect-ratio:3/4;grid-area:face;width:140px;position:relative}.hello .face{object-fit:cover;object-position:50% 15%;border-radius:4px;width:100%;height:100%;position:absolute;inset:0}.hello h1{letter-spacing:-.01em;text-wrap:balance;max-width:24ch;margin:0 0 14px;font-size:34px;font-weight:500;line-height:1.2}.hello p{color:var(--muted);text-wrap:pretty;max-width:40ch;margin:0;font-size:20px}.hello p a{color:var(--ink);text-underline-offset:3px;text-decoration:underline 1px;text-decoration-color:var(--accent)}.hello p a:hover{color:var(--accent)}@media (width>=640px){.hello{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"head face""body face";align-items:stretch;gap:14px 40px}.hello .text{display:contents}.hello h1{grid-area:head;margin:0}.hello p{grid-area:body}.hello .face-wrap{aspect-ratio:auto;align-self:stretch;width:13rem}}.shelf{border-top:1px solid var(--ink);padding-block:34px 10px}.shelf+.shelf{margin-top:28px}.shelf-head{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:4px;display:flex}.shelf h2{letter-spacing:-.015em;margin:0;font-size:27px;font-weight:600;line-height:1.2}.shelf h2 a{color:var(--ink);text-decoration:none}.shelf h2 a:after{content:" →" / "";color:var(--faint);font-weight:400;transition:color .12s}.shelf h2 a:hover,.shelf h2 a:focus-visible,.shelf h2 a:hover:after,.shelf h2 a:focus-visible:after{color:var(--accent)}.shelf .count{color:var(--faint);font-variant-numeric:tabular-nums;font-size:15px;font-style:italic}.shelf .why{color:var(--muted);text-wrap:pretty;max-width:52ch;margin:0 0 22px;font-size:18px;font-style:italic}.shelf ul{margin:0;padding:0;list-style:none}.shelf li{padding-block:10px 12px}.shelf li a{text-wrap:pretty;text-underline-offset:4px;text-decoration:underline 1px;text-decoration-color:color-mix(in srgb, var(--accent) 70%, transparent);font-size:18px;font-weight:400;line-height:1.3}.shelf li a:hover{color:var(--accent);text-decoration-color:var(--accent)}.shelf li .deck{color:var(--muted);text-wrap:pretty;max-width:54ch;margin-top:2px;font-size:16px;line-height:1.45;display:block}.shelf li .when{color:var(--faint);font-variant-numeric:tabular-nums;margin-top:4px;font-size:13px;display:block}.shelf .more{margin-top:10px;font-size:16px;display:inline-block}.all-link{border-top:1px solid var(--rule);margin-top:40px;padding-top:26px;font-size:18px}.index-head{padding-block:72px 24px}.index-head h1{letter-spacing:-.01em;margin:0 0 8px;font-size:34px;font-weight:500}.index-head p{color:var(--muted);margin:0;font-size:18px}.year{border-top:1px solid var(--rule);grid-template-columns:4rem 1fr;gap:0 16px;padding-block:16px 6px;display:grid}.year>h2{color:var(--faint);font-variant-numeric:tabular-nums;margin:0;padding-top:9px;font-size:15px;font-weight:400}.year ol{margin:0;padding:0;list-style:none}.year li{grid-template-columns:1fr auto;align-items:baseline;column-gap:20px;padding-block:8px;display:grid}.year li a{text-wrap:pretty;font-size:19px;font-weight:500;line-height:1.35}.year li a:hover{color:var(--accent)}.year li span{color:var(--faint);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:14px}.post-head{padding-block:72px 30px}.post-head .in{color:var(--muted);margin:0 0 18px;font-size:15px}.post-head h1{letter-spacing:-.015em;text-wrap:balance;margin:0 0 14px;font-size:40px;font-weight:500;line-height:1.12}.post-head .deck{color:var(--muted);text-wrap:pretty;margin:0 0 18px;font-size:21px;line-height:1.4}.post-head .meta{color:var(--faint);font-variant-numeric:tabular-nums;font-size:15px}.hero{margin:0 0 36px}.hero img{cursor:zoom-in;width:100%;display:block}.prose{text-wrap:pretty;font-size:20px;line-height:1.65}.prose>:first-child{margin-top:0}.prose p{margin:0 0 1.3em}.prose a{color:var(--accent);text-underline-offset:3px;text-decoration:underline 1px;text-decoration-color:color-mix(in srgb, var(--accent) 70%, transparent)}.prose a:hover{text-decoration-color:var(--accent)}.prose h2,.prose h3,.prose h4{letter-spacing:-.01em;text-wrap:balance;scroll-margin-top:24px;font-weight:500;line-height:1.2}.prose h2{margin:2.1em 0 .6em;font-size:28px}.prose h3{margin:1.8em 0 .5em;font-size:23px}.prose h4{margin:1.6em 0 .4em;font-size:20px}.prose ul,.prose ol{margin:0 0 1.3em;padding-left:1.4em}.prose li{margin-bottom:.3em}.prose blockquote{border-left:2px solid var(--rule);color:var(--muted);margin:0 0 1.3em;padding-left:1rem;font-style:italic}.prose img{cursor:zoom-in;margin:1.6em 0;display:block}.prose figure{margin:1.6em 0}.prose figcaption{color:var(--muted);margin-top:8px;font-size:15px}.prose hr{background:var(--rule);border:0;height:1px;margin:2.4em 0}.prose table{border-collapse:collapse;margin:0 0 1.3em;font-size:17px;display:block;overflow-x:auto}.prose th,.prose td{text-align:left;border-bottom:1px solid var(--rule);vertical-align:top;padding:6px 12px 6px 0}.prose strong{font-weight:600}.prose code{font-family:var(--mono);font-size:.86em}.prose :not(pre)>code{background:var(--wash);border-radius:3px;padding:.1em .35em}.prose pre{font-family:var(--mono);background:var(--wash);border-radius:4px;margin:0 0 1.5em;padding:16px 18px;font-size:15px;line-height:1.55;position:relative;overflow-x:auto}.prose pre code{font-size:inherit;background:0 0;padding:0}.astro-code,.astro-code span{color:var(--shiki-light)}@media (prefers-color-scheme:dark){.astro-code,.astro-code span{color:var(--shiki-dark)}}.copy-btn{border:1px solid var(--rule);background:var(--paper);width:28px;height:28px;color:var(--muted);cursor:pointer;opacity:0;border-radius:4px;justify-content:center;align-items:center;transition:opacity .12s ease-in-out;display:inline-flex;position:absolute;top:8px;right:8px}pre:hover .copy-btn,.copy-btn:focus-visible{opacity:1}@media (hover:none){.copy-btn{opacity:.6}}.lang-badge{font-family:var(--mono);letter-spacing:.06em;color:var(--faint);font-size:10px;position:absolute;top:8px;left:10px}.medium-zoom-overlay{z-index:70!important}.medium-zoom-image--opened{position:relative;z-index:80!important}a.external-link:after{content:" ↗";opacity:.6;font-size:.75em}.prose sup{line-height:0}.prose a[data-footnote-ref]{padding:0 .15em;font-size:.85em;text-decoration:none}.prose .footnotes{border-top:1px solid var(--rule);color:var(--muted);margin-top:48px;padding-top:18px;font-size:16px}.prose .footnotes h2{color:var(--faint);margin:0 0 8px;font-size:15px;font-style:italic;font-weight:400}.prose .footnotes ol{margin:0;padding-left:1.4em}.prose .footnotes li{margin-bottom:.4em}.prose .footnotes p{margin:0}.prose .footnotes li:target{color:var(--ink)}.prose a[data-footnote-backref]{margin-left:.3em;text-decoration:none}.fn-pop{z-index:50;background:var(--paper);max-width:min(28rem,100vw - 40px);color:var(--muted);border:1px solid var(--rule);border-radius:6px;padding:10px 14px;font-size:15.5px;line-height:1.5;position:absolute;box-shadow:0 6px 24px #0000001f}.fn-pop p{margin:0 0 .5em}.fn-pop p:last-child{margin-bottom:0}.fn-pop a[data-footnote-backref]{display:none}.toc{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin:0 0 36px;font-size:15.5px;line-height:1.45}.toc summary{cursor:pointer;color:var(--muted);padding:12px 0;font-size:15px;font-style:italic;list-style:none}.toc summary::-webkit-details-marker{display:none}.toc summary:before{content:"▸";width:1.1em;color:var(--faint);font-style:normal;display:inline-block}.toc[open] summary:before{content:"▾"}.toc summary:hover{color:var(--ink)}.toc ol{columns:2;column-gap:32px;margin:0;padding:0 0 14px 1.1em;list-style:none}.toc li{break-inside:avoid}.toc li a{color:var(--muted);padding:3px 0;display:block}.toc li a:hover{color:var(--ink)}@media (width<=640px){.toc ol{columns:1}}.paywall{border-top:1px solid var(--rule);margin:8px 0 0;padding:26px 0 0}.paywall p{color:var(--muted);text-wrap:pretty;max-width:52ch;margin:0 0 14px;font-size:18px}.paywall .go{color:var(--ink);text-underline-offset:4px;text-decoration:underline;text-decoration-color:var(--rule);font-size:18px;font-weight:500;display:inline-block}.paywall .go:hover{text-decoration-color:var(--ink)}.paywall .fine{color:var(--faint);margin-top:10px;font-size:15px}.notes{color:var(--muted);margin-top:40px;font-size:16px}.notes h2{color:var(--faint);margin:0 0 8px;font-size:15px;font-style:italic;font-weight:400}.notes ul{margin:0;padding-left:1.2em}.after{border-top:1px solid var(--rule);margin-top:56px;padding-top:26px}.after h2{color:var(--faint);margin:0 0 10px;font-size:15px;font-style:italic;font-weight:400}.next-in{padding:4px 0 8px;display:block}.next-in .t{font-size:22px;font-weight:500;line-height:1.25;display:block}.next-in:hover .t{color:var(--accent)}.next-in .deck{color:var(--muted);max-width:54ch;margin-top:4px;font-size:17px;line-height:1.45;display:block}.also{margin-top:30px}.also ul{margin:0;padding:0;list-style:none}.also li{grid-template-columns:1fr auto;align-items:baseline;column-gap:20px;padding-block:6px;display:grid}.also li a{font-size:19px;font-weight:500;line-height:1.3}.also li a:hover{color:var(--accent)}.also li span{color:var(--faint);white-space:nowrap;font-variant-numeric:tabular-nums;font-size:14px}.who{border-top:1px solid var(--rule);color:var(--muted);max-width:56ch;margin-top:44px;padding-top:22px;font-size:17px;line-height:1.55}.who p{margin:0 0 10px}.who strong{color:var(--ink);font-weight:500}.who .links{flex-wrap:wrap;gap:6px 18px;font-size:16px;display:flex}.who .links a{color:var(--ink);text-underline-offset:3px;text-decoration:underline;text-decoration-color:var(--rule)}.who .links a:hover{text-decoration-color:var(--ink)}.page-head{padding-block:72px 24px}.page-head h1{letter-spacing:-.01em;margin:0;font-size:34px;font-weight:500}.about{grid-template-columns:1fr;gap:28px;display:grid}@media (width>=720px){.about{grid-template-columns:11rem 1fr;align-items:start;gap:40px}}.about .portrait{aspect-ratio:4/5;object-fit:cover;object-position:50% 10%;filter:grayscale()brightness(1.15);border-radius:3px;width:100%;max-width:11rem;display:block}.about .prose{font-size:19px}.elsewhere{border-top:1px solid var(--rule);margin-top:8px;padding-top:18px}.elsewhere h2{color:var(--faint);margin:0 0 8px;font-size:15px;font-style:italic;font-weight:400}.elsewhere ul{margin:0;padding:0;list-style:none}.elsewhere li{padding-block:5px;font-size:18px}.elsewhere li span{color:var(--muted)}.not-found{text-align:center;padding-block:96px}.not-found h1{margin:0 0 12px;font-size:34px;font-weight:500}.not-found p{color:var(--muted);margin:0 0 20px}@media (width<=640px){body{font-size:18px}.hello{padding-block:52px 40px}.hello h1{font-size:28px}.hello p{font-size:18px}.post-head{padding-block:48px 24px}.post-head h1{font-size:31px}.post-head .deck{font-size:19px}.prose{font-size:18.5px}.year{grid-template-columns:1fr}.year>h2{padding-top:0}.year li{grid-template-columns:1fr;row-gap:1px}.masthead nav{gap:16px}}@media print{@page{size:A4;margin:1in}body{color:#000;background:#fff}.masthead,.site-footer,.toc,#reading-progress,#back-to-top,.copy-btn,.after{display:none!important}.prose a:after{content:" (" attr(href) ")";color:#666;font-size:.8em}a.external-link:after{content:""!important}img,pre,blockquote,table{break-inside:avoid}h1,h2,h3{break-after:avoid}}
