@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-ext-wght-normal.DjL33-gN.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-cyrillic-wght-normal.BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-vietnamese-wght-normal.6IgcOCM7.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-ext-wght-normal.DC-KSUi6.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:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-latin-wght-normal.BgDaEnEv.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-ext-wght-normal.X_5orZeX.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-cyrillic-wght-normal.DiZS0aHC.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-symbols2-wght-normal.CO5SzqOn.woff2)format("woff2-variations");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-vietnamese-wght-normal.DadHysG0.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-ext-wght-normal.Bwz-egvJ.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:Geist Mono Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/geist-mono-latin-wght-normal.XN7g48iV.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{color-scheme:light dark;--paper:oklch(97% .0013 106.4);--surface:oklch(99.3% .0008 106.4);--ink:oklch(22.3% .0153 136.8);--muted:oklch(54% .0204 135);--line:oklch(90.5% .003 106.4);--underline:oklch(80% .005 120);--ring:oklch(22.3% .0153 136.8/.08);--pill:oklch(22.3% .0153 136.8/.06);--pill-active:oklch(22.3% .0153 136.8/.12);--accent:oklch(78.5% .164 77.6);--accent-halo:oklch(78.5% .164 77.6/.18);--accent-halo-wide:oklch(78.5% .164 77.6/.08);--selection:oklch(78.5% .164 77.6/.3);--font-sans:"Geist Variable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--font-mono:"Geist Mono Variable", ui-monospace, "SF Mono", Menlo, monospace;--weight-regular:450;--weight-medium:550;--weight-semibold:650;--text-sm:.875rem;--text-base:1rem;--text-lg:1.25rem;--text-xl:1.5625rem;--leading-sm:calc(20 / 14);--leading-base:1.5;--leading-lg:1.4;--leading-xl:1.28;--tracking-normal:0em;--tracking-tight:-.01em;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-8:2rem;--space-10:2.5rem;--space-12:3rem;--space-16:4rem;--space-24:6rem;--measure:40rem;--gutter:1.25rem;--label-column:7.5rem;--row:2.5rem;--control:2rem;--avatar:3.5rem;--portrait:17.5rem;--dot:.4375rem;--radius-sm:.375rem;--radius-md:.625rem;--hairline:1px;--underline-thickness:.09em;--underline-offset:.25em;--pill-x:.375rem;--pill-y:.25rem}@media (prefers-color-scheme:dark){:root{--paper:oklch(17.9% .0068 135);--surface:oklch(20.5% .009 135);--ink:oklch(94.3% .0027 106.5);--muted:oklch(76.7% 0 0);--line:oklch(27% .008 135);--underline:oklch(42% .008 135);--ring:oklch(94.3% .0027 106.5/.1);--pill:oklch(94.3% .0027 106.5/.08);--pill-active:oklch(94.3% .0027 106.5/.15)}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%;background:var(--paper)}body{background:var(--paper);color:var(--ink);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-base);font-weight:var(--weight-regular);letter-spacing:var(--tracking-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0}strong,b{font-weight:var(--weight-medium)}::selection{background:var(--selection)}a{color:inherit;text-decoration-line:underline;text-decoration-color:#0000;text-decoration-thickness:var(--underline-thickness);text-underline-offset:var(--underline-offset)}a:hover{text-decoration-color:currentColor}p a,.detail a{text-decoration-color:var(--underline)}p a:hover,.detail a:hover{color:var(--ink);text-decoration-color:currentColor}a:active,p a:active,.detail a:active{color:var(--muted)}.masthead nav a,.footer a,.links a,.row--project .lead a,.row--book .title a,.quiet{margin:calc(-1 * var(--pill-y)) calc(-1 * var(--pill-x));padding:var(--pill-y) var(--pill-x);border-radius:var(--radius-sm);text-decoration:none}.masthead nav a:hover,.masthead nav a[aria-current=page],.footer a:hover,.links a:hover,.row--project .lead a:hover,.row--book .title a:hover,.quiet:hover{background:var(--pill);color:var(--ink)}.masthead nav a:active,.footer a:active,.links a:active,.row--project .lead a:active,.row--book .title a:active,.quiet:active{background:var(--pill-active);color:var(--ink)}:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:var(--space-1)}.skip{position:absolute;left:-9999px}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip:focus{left:var(--gutter);top:var(--space-3);z-index:10;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--ink);color:var(--paper)}.wrap{width:min(var(--measure), 100% - 2 * var(--gutter));padding-top:max(var(--space-10), env(safe-area-inset-top));padding-bottom:max(var(--space-12), env(safe-area-inset-bottom));margin-inline:auto}.masthead{justify-content:space-between;align-items:center;gap:var(--space-1) var(--space-6);min-height:var(--row);flex-wrap:wrap;display:flex}.masthead .name{font-size:var(--text-sm);line-height:var(--leading-sm);font-weight:var(--weight-semibold);text-transform:uppercase;align-items:center;gap:.7em;text-decoration:none;display:inline-flex}.masthead .mark{aspect-ratio:1063/668;flex-shrink:0;width:auto;height:.7em}.masthead nav{gap:var(--space-5);display:flex}.masthead nav a,.secondary{color:var(--muted)}.intro,.about,.page-head{padding-top:var(--space-24)}.avatar{width:var(--avatar);height:var(--avatar);margin-bottom:var(--space-8);box-shadow:0 0 0 var(--hairline) var(--ring);display:block}.lede p,.page-head p{text-wrap:pretty;margin:0}.lede p:first-child,.page-head h1+p,.page-head .title-row+p{font-size:var(--text-lg);line-height:var(--leading-lg)}.lede p+p,.page-head p+p{margin-top:var(--space-4)}.now{align-items:flex-start;gap:var(--space-3);padding-block:var(--space-2);color:var(--muted);margin:0;display:flex}.dot{width:var(--dot);height:var(--dot);margin-top:calc((1lh - var(--dot)) / 2);background:var(--accent);box-shadow:0 0 0 .1875rem var(--accent-halo);border-radius:50%;flex-shrink:0}@media (prefers-reduced-motion:no-preference){.dot{animation:2.8s ease-in-out infinite breathe}@keyframes breathe{50%{box-shadow:0 0 0 .3125rem var(--accent-halo-wide)}}}.links{gap:var(--space-2) var(--space-5);margin:var(--space-8) 0 0;flex-wrap:wrap;display:flex}.links a{color:var(--muted)}.page-head .links{margin-top:var(--space-4)}.section{margin-top:var(--space-16)}.label{justify-content:space-between;align-items:baseline;gap:var(--space-4);min-height:var(--row);padding-block:var(--space-2);display:flex}.label h2{font-size:var(--text-base);line-height:var(--leading-base);font-weight:var(--weight-medium);color:var(--ink);margin:0}.label>span{font-size:var(--text-sm);line-height:var(--leading-sm);color:var(--muted)}.rows{margin:0;padding:0;list-style:none}.row{grid-template-columns:var(--label-column) minmax(0, 1fr) auto;min-height:var(--row);padding-block:var(--space-2);align-items:baseline;display:grid}.row .lead{font-size:var(--text-sm);line-height:var(--leading-sm);color:var(--muted);font-variant-numeric:lining-nums tabular-nums}.row--project .lead{font-size:var(--text-base);line-height:var(--leading-base);color:var(--ink)}.row .title{text-wrap:pretty;min-width:0}.row .title.secondary{color:var(--muted)}.row .meta{padding-left:var(--space-4);font-size:var(--text-sm);line-height:var(--leading-sm);color:var(--muted);text-align:right;white-space:nowrap;font-variant-numeric:lining-nums tabular-nums}.tag{margin-left:var(--space-2);font-size:var(--text-sm);line-height:var(--leading-sm);color:var(--muted);white-space:nowrap}.role{margin-left:var(--space-1);color:var(--muted);font-variant-numeric:lining-nums tabular-nums}.row--work,.row--entry{grid-template-columns:var(--label-column) minmax(0, 1fr)}.row--entry{padding-block:var(--space-3)}.row--book{grid-template-columns:minmax(0,1fr) auto}.row--book .role{margin-left:var(--space-2);white-space:nowrap}.detail{margin-top:var(--space-1);color:var(--muted);display:block}.quiet{color:var(--muted)}.page-head h1{font-size:var(--text-xl);line-height:var(--leading-xl);font-weight:var(--weight-medium);letter-spacing:var(--tracking-tight);text-wrap:balance;margin:0}.page-head h1+p,.page-head .title-row+p{margin-top:var(--space-4)}.title-row{justify-content:space-between;align-items:baseline;gap:var(--space-4);display:flex}.title-row .meta,.links .count{font-size:var(--text-sm);line-height:var(--leading-sm);color:var(--muted);font-variant-numeric:lining-nums tabular-nums}.portrait{width:var(--portrait);height:var(--portrait);box-shadow:0 0 0 var(--hairline) var(--ring);display:block}.about .lede{margin-top:var(--space-10)}.figures{border-collapse:collapse;font-variant-numeric:lining-nums tabular-nums;width:100%}.figures tr{border-bottom:var(--hairline) solid var(--line)}.figures tr:last-child{border-bottom:0}.figures th,.figures td{height:var(--row);padding:var(--space-2) 0;font-weight:var(--weight-regular)}.figures th{text-align:left}.figures td{text-align:right}.footer{align-items:center;gap:var(--space-4);margin-top:var(--space-24);font-family:var(--font-mono);font-size:var(--text-sm);line-height:var(--leading-sm);color:var(--muted);display:flex}.footer .rule{min-width:var(--space-6);height:var(--hairline);background:var(--line);flex:1}.footer nav{gap:var(--space-4);display:flex}@media (width<=35em){.wrap{padding-top:max(var(--space-4), env(safe-area-inset-top))}.masthead nav{gap:var(--space-4)}.intro,.about,.page-head{padding-top:var(--space-10)}.avatar{--avatar:3rem;margin-bottom:var(--space-6)}.portrait{aspect-ratio:1;width:100%;height:auto}.section{margin-top:var(--space-12)}.row{grid-template-columns:minmax(0,1fr) auto}.row--project{grid-template-areas:"lead meta""title title"}.row--project .lead{grid-area:lead}.row--project .title{grid-area:title}.row--project .meta{grid-area:meta}.row--work{grid-template-areas:"title lead"}.row--work .lead{padding-left:var(--space-4);text-align:right;grid-area:lead}.row--work .title{grid-area:title}.row--work .role{margin:var(--space-1) 0 0;display:block}.row--entry{grid-template-columns:minmax(0,1fr)}.row--entry .lead{margin-bottom:var(--space-1)}.row--book .role{margin-left:0;display:block}.footer{margin-top:var(--space-16)}.footer nav{gap:var(--space-3)}}@media (width<=23.75em){.footer{row-gap:var(--space-2);flex-wrap:wrap}.footer .rule{display:none}}
