@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+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-wght-normal.DqGufNeO.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-wght-normal.DlzME5K_.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-wght-normal.CkhJZR-_.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-wght-normal.CBcvBZtf.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-wght-normal.DO1Apj_S.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-wght-normal.Dx4kXJAl.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: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}:root{--bg: #fbfdfc;--bg-soft: #edf5f1;--fg: #17211d;--fg-soft: #3e4b45;--muted: #6e7e77;--line: #dde8e2;--accent: #0f766e;--accent-strong: #115e59;--hover: rgba(13, 148, 136, .06);--glow-warm: rgba(56, 189, 248, .16);--glow-cool: rgba(52, 211, 153, .14);--cursor-tint: rgba(45, 212, 191, .12);--ring: rgba(15, 118, 110, .4);--chip: rgba(13, 148, 136, .1);--aur-1: rgba(56, 189, 248, .2);--aur-2: rgba(52, 211, 153, .18);--aur-3: rgba(20, 184, 166, .16);--name-grad: linear-gradient(105deg, #0f766e, #0284c7 55%, #059669);--font-serif: "Source Serif 4 Variable", "Source Serif 4", Georgia, "Times New Roman", serif;--font-sans: "Inter Variable", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}[data-theme=dark]{--bg: #101815;--bg-soft: #182420;--fg: #e4ece8;--fg-soft: #adbbb3;--muted: #82928a;--line: #253129;--accent: #2dd4bf;--accent-strong: #5eead4;--hover: rgba(45, 212, 191, .07);--glow-warm: rgba(56, 189, 248, .1);--glow-cool: rgba(52, 211, 153, .08);--cursor-tint: rgba(45, 212, 191, .08);--ring: rgba(45, 212, 191, .45);--chip: rgba(45, 212, 191, .11);--aur-1: rgba(56, 189, 248, .12);--aur-2: rgba(52, 211, 153, .1);--aur-3: rgba(45, 212, 191, .1);--name-grad: linear-gradient(105deg, #5eead4, #38bdf8 55%, #6ee7b7)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2.5rem}body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--font-sans);font-size:1.0625rem;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body:before{content:"";position:fixed;inset:-6%;z-index:-1;pointer-events:none;background:radial-gradient(56rem 38rem at 84% -8%,var(--glow-warm),transparent 70%),radial-gradient(44rem 34rem at -6% 102%,var(--glow-cool),transparent 70%);animation:drift 16s ease-in-out infinite alternate}.cursor-glow{position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(34rem 34rem at var(--mx, 72%) var(--my, 18%),var(--cursor-tint),transparent 65%)}@media(hover:none){.cursor-glow{display:none}}.aurora{position:fixed;top:0;left:0;right:0;height:72vh;z-index:-1;pointer-events:none;overflow:hidden;-webkit-mask-image:linear-gradient(#000 50%,transparent);mask-image:linear-gradient(#000 50%,transparent)}.aurora span{position:absolute;border-radius:50%;filter:blur(64px);will-change:transform}.aurora .a1{width:48rem;height:30rem;top:-14rem;left:-10rem;background:radial-gradient(closest-side,var(--aur-1),transparent 72%);animation:aur-a 24s ease-in-out infinite alternate}.aurora .a2{width:44rem;height:28rem;top:-10rem;right:-12rem;background:radial-gradient(closest-side,var(--aur-2),transparent 72%);animation:aur-b 28s ease-in-out infinite alternate}.aurora .a3{width:34rem;height:24rem;top:4rem;left:32%;background:radial-gradient(closest-side,var(--aur-3),transparent 72%);animation:aur-c 20s ease-in-out infinite alternate}@keyframes aur-a{to{transform:translate(7rem,4rem) scale(1.12)}}@keyframes aur-b{to{transform:translate(-6rem,5rem) scale(1.18)}}@keyframes aur-c{to{transform:translate(-5rem,-3rem) scale(.92)}}::selection{background:var(--accent);color:var(--bg)}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-strong)}:focus-visible{outline:2px solid var(--ring);outline-offset:3px;border-radius:2px}.ext:after{content:"↗";display:inline-block;font-size:.7em;margin-left:.3em;opacity:.55;transition:transform .2s ease,opacity .2s ease}.ext:hover:after{transform:translate(2px,-2px);opacity:1}.layout{max-width:82rem;margin-inline:auto;padding-inline:clamp(1.5rem,5vw,5rem);display:grid;grid-template-columns:minmax(0,26rem) minmax(0,1fr);gap:clamp(3rem,7vw,7rem)}.side{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding-block:clamp(3.5rem,10vh,6.5rem) clamp(2.5rem,6vh,4rem)}.content{min-width:0;padding-block:clamp(3.5rem,10vh,6.5rem) 3.5rem}@media(max-width:1023px){.layout{display:block}.side{position:static;height:auto;padding-block:3.25rem 0}.side-nav{display:none}.content{padding-block:3.5rem 3rem}}.avatar{width:84px;height:84px;border-radius:50%;object-fit:cover;border:1px solid var(--line);margin-bottom:1.5rem}.side h1{margin:0;font-family:var(--font-serif);font-weight:600;font-size:clamp(2.3rem,3.4vw,3rem);line-height:1.12;letter-spacing:-.02em;color:#0f766e;background:var(--name-grad);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:rise .5s ease .09s both,shine 8s ease-in-out 1.2s infinite alternate}.side .avatar{animation:rise .5s ease .03s both}.side .role{animation:rise .5s ease .16s both}.side .org{animation:rise .5s ease .2s both}.side .loc{animation:rise .5s ease .24s both}.side .tagline{animation:rise .5s ease .3s both}.side-nav{animation:rise .5s ease .38s both}.side-links{animation:rise .5s ease .46s both}[data-theme=dark] .side h1{color:#2dd4bf}.role{margin:.9rem 0 0;font-size:1.06rem;font-weight:550;color:var(--fg);line-height:1.5}.org{margin:.25rem 0 0;font-size:.94rem;color:var(--fg-soft)}.org a{color:inherit;border-bottom:1px solid var(--line)}.org a:hover{color:var(--accent);border-color:currentColor}.loc{margin:.3rem 0 0;font-size:.86rem;color:var(--muted)}.tagline{margin:1.35rem 0 0;max-width:23rem;font-size:.97rem;color:var(--fg-soft);line-height:1.68}.side-nav{margin-top:3.6rem}.side-nav ul{margin:0;padding:0;list-style:none}.side-nav a{display:flex;align-items:center;gap:.9rem;padding-block:.42rem;font-size:.76rem;font-weight:650;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.side-nav a:before{content:"";width:1.8rem;height:1px;background:var(--muted);opacity:.5;transition:width .25s ease,opacity .2s ease,background-color .2s ease}.side-nav a:hover,.side-nav a.active{color:var(--fg)}.side-nav a:hover:before,.side-nav a.active:before{width:3.6rem;background:var(--fg);opacity:1}.side-links{display:flex;gap:1.15rem;margin:auto 0 0;padding:2.5rem 0 0;list-style:none}.side-links a{display:inline-flex;color:var(--muted);transition:color .15s ease,transform .15s ease}.side-links a:hover{color:var(--fg);transform:translateY(-2px)}@media(max-width:1023px){.side-links{margin-top:1.7rem;padding-top:0}}.section{margin-top:5.25rem}.content .section:first-child{margin-top:0}.section>h2{display:flex;align-items:center;gap:1.1rem;margin:0 0 1.8rem;font-size:.78rem;font-weight:650;letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}.section>h2:after{content:"";flex:1;height:1px;background:var(--line)}.sub{margin:2.5rem 0 .65rem;font-size:.95rem;font-weight:600;color:var(--fg)}.section h3.sub:first-of-type{margin-top:0}.intro p{margin:0 0 1rem;color:var(--fg-soft);font-size:1.02rem;line-height:1.74}.now{margin-top:1.4rem;padding:.95rem 1.15rem;background:var(--chip);border-left:2px solid var(--accent);border-radius:0 10px 10px 0;font-size:.95rem;color:var(--fg-soft);line-height:1.6}.now-label{display:block;margin-bottom:.3rem;font-size:.7rem;font-weight:650;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}.rows{display:flex;flex-direction:column;gap:.3rem}.row{display:grid;grid-template-columns:8.5rem 1fr;gap:1.4rem;padding:1.05rem 1.25rem;margin-inline:-1.25rem;border-radius:12px;transition:background-color .2s ease,opacity .2s ease}.row.single{grid-template-columns:1fr}@media(hover:hover){.rows:hover .row{opacity:.55}.rows:hover .row:hover{opacity:1;background:var(--hover)}}@media(max-width:640px){.row{grid-template-columns:1fr;gap:.35rem;padding:.9rem 1rem;margin-inline:-1rem}}.xp-period{padding-top:.2rem;font-size:.8rem;font-weight:550;letter-spacing:.03em;text-transform:uppercase;color:var(--muted);font-variant-numeric:tabular-nums}.xp-role{margin:0;font-size:1.01rem;font-weight:600;line-height:1.45}.xp-org{color:var(--fg-soft);font-weight:400}.row ul{margin:.6rem 0 0;padding-left:1.05rem}.row li{margin-top:.4rem;font-size:.93rem;color:var(--fg-soft);line-height:1.62}.row li::marker{color:var(--muted)}.xp-note{margin:.6rem 0 0;font-size:.92rem;font-style:italic;color:var(--muted)}.toolbox{margin:2rem 0 0;font-size:.875rem;color:var(--muted);line-height:1.7}.toolbox strong{color:var(--fg-soft);font-weight:600}.project h3{margin:0;font-size:1.03rem;font-weight:600}.project h3 a{color:var(--fg)}.project h3 a:hover{color:var(--accent)}.project p{margin:.45rem 0 0;font-size:.95rem;color:var(--fg-soft);line-height:1.65}.plinks{display:flex;gap:1.1rem;margin-top:.5rem;font-size:.85rem}.pub-meta{margin:0 0 .35rem;font-size:.72rem;font-weight:650;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}.pub h3{margin:0;font-family:var(--font-serif);font-size:1.17rem;font-weight:600;line-height:1.42}.pub h3 a{color:var(--fg)}.pub h3 a:hover{color:var(--accent)}.pub-authors{margin:.45rem 0 0;font-size:.86rem;color:var(--muted);line-height:1.6}.pub-authors strong{color:var(--fg-soft);font-weight:600}.pub details{margin-top:.5rem}.pub summary{width:fit-content;font-size:.84rem;color:var(--accent);cursor:pointer}.pub summary:hover{color:var(--accent-strong)}.pub details p{margin:.55rem 0 0;padding-left:1rem;border-left:2px solid var(--line);font-size:.9rem;color:var(--fg-soft);line-height:1.68}.cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.card-wide{grid-column:1 / -1}@media(max-width:640px){.cards{grid-template-columns:1fr}}.card{border:1px solid var(--line);border-radius:14px;padding:1.2rem 1.3rem;background:color-mix(in srgb,var(--bg-soft) 30%,transparent);transition:background-color .2s ease,border-color .2s ease,transform .2s ease}.card:hover{background:var(--hover);border-color:color-mix(in srgb,var(--accent) 30%,var(--line));transform:translateY(-2px);box-shadow:0 8px 26px #0d94881a}.card-head{display:flex;align-items:center;gap:.75rem;margin-bottom:.85rem}.chip{display:inline-flex;align-items:center;justify-content:center;width:2.3rem;height:2.3rem;border-radius:10px;background:var(--chip);color:var(--accent);flex-shrink:0}.card-role{font-size:.7rem;font-weight:650;letter-spacing:.13em;text-transform:uppercase;color:var(--accent)}.card-title{margin:0;font-size:.98rem;font-weight:600;line-height:1.45}.card-org{margin:.2rem 0 0;font-size:.85rem;color:var(--muted)}.card-desc{margin:.55rem 0 0;font-size:.9rem;color:var(--fg-soft);line-height:1.62}.pills{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.9rem}.pill{padding:.16rem .62rem;border-radius:999px;border:1px solid var(--line);background:var(--bg);font-size:.72rem;font-weight:550;color:var(--fg-soft)}.item-title{margin:0;font-size:.97rem;font-weight:600;line-height:1.5}.item-meta{margin:.18rem 0 0;font-size:.84rem;color:var(--muted)}.edu{display:grid;gap:1.15rem}.edu-item{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.25rem 1rem}.edu-years{margin:0;font-size:.84rem;color:var(--muted);font-variant-numeric:tabular-nums}.awards{margin:1.3rem 0 0;padding-left:1.05rem}.awards li{margin-top:.35rem;font-size:.9rem;color:var(--fg-soft)}.awards li::marker{color:var(--muted)}.contact-big{margin:0;font-family:var(--font-serif);font-size:1.7rem;font-weight:600}.contact-body{margin:.7rem 0 0;max-width:36rem;font-size:.98rem;color:var(--fg-soft);line-height:1.7}.contact-email{margin:1.1rem 0 0;font-size:1rem}.colophon{margin-top:5.5rem;padding-top:1.4rem;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 1.5rem;font-size:.82rem;color:var(--muted)}.colophon a{color:var(--muted);border-bottom:1px solid var(--line)}.colophon a:hover{color:var(--fg);border-color:currentColor}.theme-toggle{position:fixed;top:1.15rem;right:1.15rem;z-index:100;display:inline-flex;align-items:center;justify-content:center;width:2.4rem;height:2.4rem;padding:0;border-radius:50%;border:1px solid var(--line);background:color-mix(in srgb,var(--bg) 78%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:var(--muted);cursor:pointer}.theme-toggle svg{transition:transform .25s ease}.theme-toggle:hover{color:var(--fg);border-color:var(--muted)}.theme-toggle:hover svg{transform:rotate(24deg) scale(1.08)}.icon-sun{display:none}.icon-moon,[data-theme=dark] .icon-sun{display:block}[data-theme=dark] .icon-moon{display:none}.page-404{max-width:40rem;margin-inline:auto;padding:6rem 1.5rem}.page-404 h1{margin:0 0 1rem;font-family:var(--font-serif);font-size:3rem}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes shine{0%{background-position:0% 50%}to{background-position:100% 50%}}@keyframes drift{0%{transform:translateZ(0) scale(1)}to{transform:translate3d(-2.5%,2%,0) scale(1.07)}}.reveal{opacity:0;transform:translateY(14px);transition:opacity .55s ease,transform .55s ease;transition-delay:var(--d, 0s)}.reveal.in{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}.cursor-glow{display:none}}
