@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-ext-wght-normal.BOeWTOD4.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-wght-normal.DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-ext-wght-normal.DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-wght-normal.CkhJZR-_.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-vietnamese-wght-normal.CBcvBZtf.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-ext-wght-normal.DO1Apj_S.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-wght-normal.Dx4kXJAl.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:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-ext-wght-italic.B5xAaiFk.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:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/inter-cyrillic-wght-italic.DzZdc28x.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-ext-wght-italic.DcOpz6Lw.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/inter-greek-wght-italic.CILZdfAp.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:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/inter-vietnamese-wght-italic.K3WlGtc8.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:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-ext-wght-italic.0pjOp8NU.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:Inter Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/_astro/inter-latin-wght-italic.DpCbqKDY.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:Crimson Pro Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/crimson-pro-vietnamese-wght-normal.Djpar-EE.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:Crimson Pro Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/crimson-pro-latin-ext-wght-normal.4mBZvMWv.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:Crimson Pro Variable;font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/crimson-pro-latin-wght-normal.C4R2PX-h.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:Crimson Pro Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/crimson-pro-vietnamese-wght-italic.Dpzp2Zc3.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:Crimson Pro Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/crimson-pro-latin-ext-wght-italic.BwehhlXF.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:Crimson Pro Variable;font-style:italic;font-display:swap;font-weight:200 900;src:url(/_astro/crimson-pro-latin-wght-italic.CkPs-Rv6.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:EB Garamond Variable;font-style:normal;font-display:swap;font-weight:400 800;src:url(/_astro/eb-garamond-cyrillic-ext-wght-normal.Bt3rCdHq.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:EB Garamond Variable;font-style:normal;font-display:swap;font-weight:400 800;src:url(/_astro/eb-garamond-cyrillic-wght-normal.DBa2mnKT.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:EB Garamond Variable;font-style:normal;font-display:swap;font-weight:400 800;src:url(/_astro/eb-garamond-greek-ext-wght-normal.CW-BywWH.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:EB Garamond Variable;font-style:normal;font-display:swap;font-weight:400 800;src:url(/_astro/eb-garamond-greek-wght-normal.DCPER7xl.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:EB Garamond Variable;font-style:normal;font-display:swap;font-weight:400 800;src:url(/_astro/eb-garamond-vietnamese-wght-normal.DvUmmjCN.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:EB Garamond Variable;font-style:normal;font-display:swap;font-weight:400 800;src:url(/_astro/eb-garamond-latin-ext-wght-normal.B6IpcvL2.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:EB Garamond Variable;font-style:normal;font-display:swap;font-weight:400 800;src:url(/_astro/eb-garamond-latin-wght-normal.CRpggXlh.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:dark;--color-void:#050505;--color-surface:#0f0f0e;--color-line:#232320;--color-text:#f2f2ef;--color-subtle:#a6a6a0;--color-muted:#7c7c76;--color-accent:#f08050;--color-mark:#c94fe6;--font-ui:"Inter Variable", Inter, system-ui, -apple-system, "Segoe UI", sans-serif;--font-code:ui-monospace, "SF Mono", Menlo, Consolas, monospace;--font-serif:"Crimson Pro Variable", "Crimson Pro", Georgia, "Times New Roman", serif;--fs-0:.8rem;--fs-1:.875rem;--fs-2:1rem;--fs-3:1.125rem;--fs-4:1.5rem;--fs-5:2rem;--fs-prose:1.25rem;--lh-prose:1.6;--measure-read:42rem;--measure-wide:64rem;--measure-prose:35rem;--pad-x:1.5rem;--pad-top:2.5rem;--space-section:3.5rem}@media (width>=40em){:root{--pad-top:4rem;--fs-prose:1.3125rem}}*,:before,:after{box-sizing:border-box}*{margin:0}html{scrollbar-gutter:stable;background:var(--color-void);color:var(--color-text);font-family:var(--font-ui);-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;font-size:100%;line-height:1.5}body{min-height:100dvh}img,svg,video{max-width:100%;height:auto;display:block}ul[class],ol[class]{padding:0;list-style:none}a{color:inherit;text-decoration-line:underline;text-decoration-color:var(--color-accent);text-underline-offset:.2em;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}:focus-visible{outline:2px solid var(--color-accent);outline-offset:3px}::selection{color:var(--color-text);background:#c94fe673}h1,h2,h3,h4{letter-spacing:-.01em;overflow-wrap:anywhere;font-weight:500;line-height:1.25}.skip{top:1rem;left:var(--pad-x);z-index:1;font-size:var(--fs-1);background:var(--color-void);border:1px solid var(--color-line);padding:.3rem .7rem;position:absolute;transform:translateY(-200%)}.skip:focus{transform:none}.site{flex-direction:column;width:100%;min-height:100dvh;display:flex}.main{width:100%;max-width:calc(var(--measure-read) + 2 * var(--pad-x));padding:3rem var(--pad-x) 5rem;flex:1;margin-inline:auto}.main:focus{outline:none}.main.wide{max-width:calc(var(--measure-wide) + 2 * var(--pad-x))}@media (width>=40em){.main{padding-top:4rem}}@keyframes slide-enter{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:no-preference){.slide-enter,.slide-enter-content>*{--enter-stage:0;--enter-step:50ms;--enter-initial:0s;animation:.6s cubic-bezier(.16,1,.3,1) both slide-enter;animation-delay:calc(var(--enter-initial) + var(--enter-stage) * var(--enter-step))}.main .slide-enter{--enter-initial:.12s}.slide-enter-content>:first-child{--enter-stage:1}.slide-enter-content>:nth-child(2){--enter-stage:2}.slide-enter-content>:nth-child(3){--enter-stage:3}.slide-enter-content>:nth-child(4){--enter-stage:4}.slide-enter-content>:nth-child(5){--enter-stage:5}.slide-enter-content>:nth-child(6){--enter-stage:6}.slide-enter-content>:nth-child(7){--enter-stage:7}.slide-enter-content>:nth-child(8){--enter-stage:8}.slide-enter-content>:nth-child(9){--enter-stage:9}.slide-enter-content>:nth-child(10){--enter-stage:10}.slide-enter-content>:nth-child(11){--enter-stage:11}.slide-enter-content>:nth-child(12){--enter-stage:12}.slide-enter-content>:nth-child(13){--enter-stage:13}.slide-enter-content>:nth-child(14){--enter-stage:14}.slide-enter-content>:nth-child(15){--enter-stage:15}.slide-enter-content>:nth-child(16){--enter-stage:16}.slide-enter-content>:nth-child(17){--enter-stage:17}.slide-enter-content>:nth-child(18){--enter-stage:18}.slide-enter-content>:nth-child(19){--enter-stage:19}.slide-enter-content>:nth-child(20),.slide-enter-content>:nth-child(n+21){--enter-stage:20}}::view-transition-old(root),::view-transition-new(root){animation-duration:.2s}.plum{z-index:-1;pointer-events:none;width:100%;height:100lvh;position:fixed;top:0;left:0;-webkit-mask-image:radial-gradient(circle,#0000,#000);mask-image:radial-gradient(circle,#0000,#000)}.site-header{font-size:var(--fs-1);justify-content:flex-end;padding:1.5rem 1.5rem .5rem 6.5rem;display:flex;position:relative}.site-mark{width:4rem;height:4rem;color:var(--color-mark);transition:opacity .2s;display:block;position:absolute;top:.9rem;left:1.25rem}.site-mark svg{width:100%;height:100%;display:block}.site-mark path{stroke:currentColor;stroke-width:16px;stroke-linejoin:round}.site-mark:hover{opacity:.7}@media (width>=80em){.site-mark{position:fixed}}.site-nav{flex-direction:column;align-items:flex-end;gap:.35rem;display:flex}.nav-list{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.35rem 1.25rem;display:flex}.site-nav a{color:var(--color-subtle);text-decoration:none;transition:color .2s}.nav-list a{border-bottom:2px solid #0000;padding-bottom:.1em}.site-nav a:hover{color:var(--color-text)}.nav-list a[aria-current=page]{color:var(--color-text);border-bottom-color:var(--color-mark)}.nav-icon+.nav-icon{margin-left:-.35rem}.nav-rule{background:var(--color-line);width:1px;height:1em;margin-inline:.25rem}.nav-icon a{border-bottom:0;width:1.25rem;height:1.25rem;display:block}.nav-icon svg{width:100%;height:100%;display:block}.section-nav{font-size:var(--fs-4);letter-spacing:-.01em;flex-wrap:wrap;align-items:baseline;gap:.25rem 1rem;font-weight:500;line-height:1.25;display:flex}@media (width>=40em){.section-nav{font-size:var(--fs-5)}}.section-nav h1{font:inherit;letter-spacing:inherit}.section-nav a{color:var(--color-text);opacity:.25;text-decoration:none;transition:opacity .2s}.section-nav a:hover{opacity:.55}.section-nav a[aria-current=page]{opacity:1}.section-other{font-size:var(--fs-1);flex-wrap:wrap;align-items:baseline;gap:.25rem 1rem;margin-top:.5rem;display:flex}.section-other a{color:var(--color-muted);text-decoration:none;transition:color .2s}.section-other a:hover{color:var(--color-text)}.section-arrow{color:var(--color-muted)}.page-title{font-size:var(--fs-4)}@media (width>=40em){.page-title{font-size:var(--fs-5)}}.quiet{color:var(--color-subtle);margin-top:1.5rem}.back{font-size:var(--fs-1);margin-top:3rem}.back a{color:var(--color-subtle)}.frame,.portrait,.prose img{background:var(--color-surface);border:1px solid var(--color-line);border-radius:3px;padding:.25rem}figcaption{font-size:var(--fs-0);color:var(--color-subtle);margin-top:.75rem}.intro{max-width:var(--measure-prose);align-items:center;gap:1.5rem;margin-bottom:2rem;display:grid}.portrait{object-fit:cover;order:-1;width:7rem;height:7rem}@media (width>=40em){.intro{grid-template-columns:1fr auto}.portrait{order:0;width:9rem;height:9rem}}.publications{margin-top:var(--space-section)}.publications h2{font-size:var(--fs-3)}.pub-list{margin-top:1.5rem}.publications li{flex-direction:column;gap:.3rem;display:flex}.publications li+li{margin-top:1.5rem}.pub-title{max-width:60ch;text-decoration:none}.pub-title:hover,.pub-title:focus-visible{text-decoration:underline;text-decoration-color:var(--color-accent);text-underline-offset:.2em;text-decoration-thickness:2px}.pub-authors,.pub-venue{font-size:var(--fs-1);color:var(--color-subtle)}.pub-venue{font-style:italic}.cv{flex-wrap:wrap;gap:.25rem 1.5rem;margin-top:2rem;display:flex}.affiliation{font-size:var(--fs-2);align-items:center;gap:.6rem;margin-top:.75rem;display:flex}.publications .affiliation{margin-top:.5rem}.affiliation a{color:var(--color-subtle);text-decoration:none}.affiliation a:hover{color:var(--color-text)}.affiliation-logo{width:2.25rem;height:2.25rem;display:block}.posts{margin-top:1rem}.posts-year{padding-top:3.5rem;position:relative}.posts-year+.posts-year{margin-top:1rem}.year-mark{color:#0000;-webkit-text-stroke:1.5px var(--color-line);pointer-events:none;user-select:none;font-family:EB Garamond Variable,EB Garamond,Georgia,serif;font-size:5.5rem;font-weight:700;line-height:1;position:absolute;top:-.5rem;left:-2rem}.posts a{flex-wrap:wrap;align-items:baseline;gap:.25rem 1rem;padding-block:.6rem;text-decoration:none;display:flex}.posts-title{font-size:var(--fs-3)}.posts-meta{font-size:var(--fs-1);color:var(--color-subtle);white-space:nowrap;font-variant-numeric:tabular-nums}.posts a:hover .posts-title{text-decoration:underline;text-decoration-color:var(--color-accent);text-underline-offset:.2em;text-decoration-thickness:2px}.post-note{font-size:var(--fs-1);color:var(--color-subtle);margin-top:.5rem}.post-header{margin-bottom:2.5rem}.post-date{font-size:var(--fs-1);color:var(--color-subtle);margin-top:.75rem;display:block}.prose{max-width:var(--measure-prose);font-family:var(--font-serif);font-weight:430;font-size:var(--fs-prose);line-height:var(--lh-prose)}.prose>*+*{margin-top:1.1em}.prose h2,.prose h3,.prose h4{font-family:var(--font-ui);line-height:1.3}.prose h2{font-size:var(--fs-3);margin-top:2.4em}.prose h3{font-size:var(--fs-2);margin-top:2em}.prose h2+*,.prose h3+*{margin-top:.75em}.prose strong{font-weight:600}.prose ul,.prose ol{padding-left:1.4em}.prose li+li{margin-top:.4em}.prose li::marker{color:var(--color-muted)}.prose blockquote{border-left:2px solid var(--color-line);color:var(--color-subtle);padding-left:1.25em;font-style:italic}.prose code{font-family:var(--font-code);background:var(--color-surface);border:1px solid var(--color-line);border-radius:3px;padding:.1em .35em;font-size:.82em}.prose pre{font-family:var(--font-code);font-size:var(--fs-1);border:1px solid var(--color-line);border-radius:4px;padding:1rem 1.25rem;line-height:1.6;overflow-x:auto;background:var(--color-surface)!important}.prose pre code{font-size:inherit;background:0 0;border:0;padding:0}.prose figure{margin-block:2em}.prose figcaption{font-family:var(--font-ui)}.prose hr{border:0;border-top:1px solid var(--color-muted);width:3rem;margin-block:2.5em}.prose table{border-collapse:collapse;width:100%;font-family:var(--font-ui);font-size:var(--fs-1)}.prose th,.prose td{text-align:left;border-bottom:1px solid var(--color-line);padding:.4em .75em .4em 0}.prose .signoff{text-align:right;margin-top:3em}.tag{border:1px solid var(--color-line);color:var(--color-subtle);white-space:nowrap;border-radius:999px;padding:0 .5em;font-size:.8em;line-height:1.6;display:inline-block}.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*),[data-astro-transition-scope]{animation:none!important}}
