@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-vietnamese-wght-normal.CnvboYUG.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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-latin-ext-wght-normal.Ca2vKHc0.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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/_astro/fraunces-latin-wght-normal.ukD16Tqj.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{--night: #0b0c1e;--void: #07081a;--paper: #f4f3f8;--panel: #fbfaff;--ink: #171a33;--muted: #5a5d7a;--faint: #8b8ea8;--hairline: #dcd9ea;--violet: #7452ff;--cyan: #12ddea;--magenta: #b44cff;--amber: #ffd27a;--amber-deep: #b06a1a;--font-display: "Fraunces Variable", "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--font-body: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-mono: ui-monospace, "SF Mono", SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;--content: 68rem;--gutter: clamp(1.25rem, 4vw, 2.5rem);--section-gap: clamp(3.5rem, 8vw, 6.5rem)}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:1.0625rem;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4{font-family:var(--font-display);font-variation-settings:"SOFT" 0,"WONK" 1;font-optical-sizing:auto;line-height:1.12;margin:0;text-wrap:balance}p{margin:0 0 1.1em}p:last-child{margin-bottom:0}a{color:var(--violet);text-decoration-color:color-mix(in srgb,var(--violet) 40%,transparent);text-decoration-thickness:1px;text-underline-offset:3px}a:hover{color:var(--magenta);text-decoration-color:currentColor}:focus-visible{outline:2px solid var(--cyan);outline-offset:2px;border-radius:2px}.skip-link{position:absolute;left:.75rem;top:-3rem;z-index:100;background:var(--night);color:var(--cyan);padding:.5rem .9rem;font-family:var(--font-mono);font-size:.85rem;text-decoration:none;transition:top .15s ease}.skip-link:focus{top:.75rem}::selection{background:var(--cyan);color:var(--night)}.wrap{max-width:var(--content);margin-inline:auto;padding-inline:var(--gutter)}.section{padding-block:var(--section-gap)}.section-head{margin-bottom:clamp(1.75rem,4vw,3rem)}.section-head h2{font-size:clamp(1.9rem,3.4vw,2.6rem);letter-spacing:-.01em}.section-head p.lede{margin-top:.65rem;max-width:60ch;color:var(--muted)}.tag-note{display:inline-block;margin-left:.5rem;padding:.05rem .45rem .1rem;border:1px solid var(--amber);color:var(--amber-deep);font-family:var(--font-mono);font-size:.72rem;letter-spacing:.02em;vertical-align:.18em;white-space:nowrap}.text-link{font-family:var(--font-mono);font-size:.9rem;letter-spacing:.01em}.site-header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--paper) 88%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--hairline)}.site-header .wrap{display:flex;align-items:center;gap:1.5rem;min-height:3.9rem}.brand{display:inline-flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--ink)}.brand img{width:1.7rem;height:1.7rem}.brand .word{font-family:var(--font-display);font-weight:640;font-size:1.28rem;letter-spacing:-.01em;line-height:1}.brand:hover{color:var(--ink)}.main-nav{margin-inline-start:auto}.main-nav ul{display:flex;gap:clamp(.9rem,2.4vw,1.9rem);list-style:none;margin:0;padding:0}.main-nav a{color:var(--muted);text-decoration:none;font-size:.95rem;padding-block:.3rem;border-bottom:2px solid transparent}.main-nav a:hover{color:var(--ink)}.main-nav a[aria-current=page]{color:var(--ink);border-bottom-color:var(--cyan)}.lang-switch{display:inline-flex;gap:.45rem;align-items:center;font-family:var(--font-mono);font-size:.82rem}.lang-switch a{color:var(--faint);text-decoration:none}.lang-switch a[aria-current=page]{color:var(--violet);font-weight:700}.nav-toggle{display:none}@media(max-width:46rem){.main-nav{display:none}.nav-toggle{display:block;margin-inline-start:auto}.nav-toggle summary{list-style:none;cursor:pointer;font-family:var(--font-mono);font-size:.85rem;color:var(--muted);padding:.4rem .6rem;border:1px solid var(--hairline)}.nav-toggle summary::-webkit-details-marker{display:none}.nav-toggle[open] summary{color:var(--ink)}.nav-toggle ul{position:absolute;right:var(--gutter);top:3.6rem;min-width:12rem;list-style:none;margin:0;padding:.5rem 0;background:var(--panel);border:1px solid var(--hairline);box-shadow:0 12px 30px color-mix(in srgb,var(--night) 18%,transparent)}.nav-toggle ul a{display:block;padding:.55rem 1rem;color:var(--ink);text-decoration:none}.nav-toggle ul a[aria-current=page]{color:var(--violet)}}.site-footer{background:var(--void);color:#b9bbd6;margin-top:var(--section-gap)}.site-footer .wrap{padding-block:clamp(2.5rem,5vw,4rem)}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:2.5rem}.footer-brand{display:flex;gap:.75rem;align-items:flex-start}.footer-brand img{width:2.1rem;height:2.1rem}.footer-brand .word{font-family:var(--font-display);font-size:1.35rem;color:#f2f1fb;line-height:1.15}.footer-brand p{margin:.5rem 0 0;max-width:42ch;font-size:.92rem;color:#8f92b8}.footer-col h3{font-family:var(--font-body);font-size:.78rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--cyan);margin-bottom:.9rem}.footer-col ul{list-style:none;margin:0;padding:0;display:grid;gap:.45rem}.footer-col a{color:#b9bbd6;text-decoration:none;font-size:.95rem}.footer-col a:hover{color:var(--cyan)}.footer-col .mono{font-family:var(--font-mono);font-size:.85rem}.footer-bottom{border-top:1px solid #23264a;margin-top:clamp(2rem,4vw,3rem);padding-top:1.4rem;display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;justify-content:space-between;font-family:var(--font-mono);font-size:.8rem;color:#6f72a0}@media(max-width:46rem){.footer-grid{grid-template-columns:1fr;gap:2rem}}.hero{background:radial-gradient(58rem 30rem at 12% -8%,rgba(116,82,255,.34),transparent 62%),radial-gradient(46rem 26rem at 96% 12%,rgba(18,221,234,.2),transparent 60%),radial-gradient(1px 1px at 18% 22%,rgba(255,255,255,.85),transparent 100%),radial-gradient(1px 1px at 71% 14%,rgba(255,255,255,.6),transparent 100%),radial-gradient(1.5px 1.5px at 84% 38%,rgba(255,255,255,.75),transparent 100%),radial-gradient(1px 1px at 34% 62%,rgba(255,255,255,.5),transparent 100%),radial-gradient(1.5px 1.5px at 58% 78%,rgba(255,255,255,.6),transparent 100%),radial-gradient(1px 1px at 9% 84%,rgba(255,255,255,.55),transparent 100%),radial-gradient(1px 1px at 92% 68%,rgba(255,255,255,.5),transparent 100%),var(--night);color:#e9e8f8;border-bottom:1px solid #23264a}.hero .wrap{min-height:clamp(30rem,74vh,42rem);display:flex;flex-direction:column;justify-content:center;padding-block:clamp(3rem,8vw,6rem)}.hero-inner{max-width:52rem;animation:hero-rise .7s cubic-bezier(.2,.7,.3,1) both}@keyframes hero-rise{0%{opacity:0;transform:translateY(.9rem)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.hero-inner{animation:none}}.hero-mark{width:clamp(4.2rem,8vw,5.6rem);height:clamp(4.2rem,8vw,5.6rem);margin-bottom:clamp(1.6rem,3vw,2.4rem);position:relative}.hero-mark img{width:100%;height:100%;display:block}.hero-mark:after{content:"";position:absolute;inset:-22%;border:1px solid rgba(18,221,234,.35);border-radius:50%}.hero h1{font-size:clamp(3.4rem,9.5vw,6.6rem);font-weight:560;letter-spacing:-.025em;background:linear-gradient(94deg,#a99aff 4%,#7452ff 34%,#12ddea 78%,#8efaef);-webkit-background-clip:text;background-clip:text;color:transparent}.hero .lede{margin-top:1.1rem;font-family:var(--font-display);font-size:clamp(1.25rem,2.6vw,1.7rem);font-weight:380;color:#cfd0ea;max-width:34ch;line-height:1.35}.hero .aff{margin-top:1.6rem;font-family:var(--font-mono);font-size:.85rem;color:#7f83b8}.hero .aff b{color:var(--cyan);font-weight:600}.band{border-top:1px solid var(--hairline)}.about-cols{display:grid;grid-template-columns:1fr 2fr;gap:clamp(2rem,5vw,4rem);align-items:start}.about-cols h2{font-size:clamp(1.9rem,3.4vw,2.6rem)}.about-cols .prose{max-width:68ch;color:var(--ink)}.about-cols .prose p{color:var(--muted)}.about-cols .prose p strong{color:var(--ink)}@media(max-width:46rem){.about-cols{grid-template-columns:1fr;gap:1.5rem}}.stack{display:grid}.stack>*+*{border-top:1px solid var(--hairline)}.home-more{margin-top:clamp(1.5rem,3vw,2.25rem)}.cta{background:var(--night);color:#e9e8f8;border-top:1px solid #23264a}.cta .wrap{padding-block:clamp(3rem,6vw,4.5rem);display:flex;flex-wrap:wrap;gap:1.5rem 3rem;align-items:baseline;justify-content:space-between}.cta h2{font-size:clamp(1.8rem,3.4vw,2.5rem);color:#f2f1fb}.cta p{margin:.6rem 0 0;color:#9c9fca;max-width:52ch}.btn{display:inline-block;padding:.7rem 1.5rem;font-family:var(--font-mono);font-size:.95rem;color:var(--night);background:var(--cyan);text-decoration:none;border-radius:2px}.btn:hover{background:#8efaef;color:var(--night)}.research-band{padding-block:clamp(1.6rem,3vw,2.4rem)}.research-band .top{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;align-items:baseline}.research-band h3{font-size:clamp(1.5rem,2.6vw,2rem);font-weight:540}.research-band .tagline{color:var(--violet);font-family:var(--font-display);font-style:italic}.research-band p{margin-top:.7rem;max-width:68ch;color:var(--muted)}.keywords{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.9rem}.keywords span{font-family:var(--font-mono);font-size:.78rem;color:var(--muted);border:1px solid var(--hairline);padding:.12rem .55rem .16rem}.role-group{margin-bottom:clamp(2.5rem,5vw,3.5rem)}.role-group h2{font-family:var(--font-body);font-size:.95rem;font-weight:650;font-variant:small-caps;color:var(--faint);margin-bottom:.6rem}.member{display:grid;grid-template-columns:4.2rem 1fr;gap:1.2rem 1.5rem;padding-block:1.4rem;border-top:1px solid var(--hairline)}.member:first-of-type{border-top:none}.avatar{width:4.2rem;height:4.2rem;border-radius:2px;background:linear-gradient(135deg,var(--violet),var(--cyan));color:#fff;display:grid;place-items:center;font-family:var(--font-display);font-size:1.35rem;font-weight:600}.avatar img{width:100%;height:100%;object-fit:cover;border-radius:2px}.member .who h3{font-size:1.3rem;font-weight:560}.member .who .title{color:var(--muted);margin-top:.1rem}.member .links{margin-top:.45rem;display:flex;flex-wrap:wrap;gap:.4rem 1.1rem}.member .links a{font-family:var(--font-mono);font-size:.82rem}.member .bio{margin-top:.7rem;max-width:70ch;color:var(--muted)}.member .interests{margin-top:.6rem;max-width:70ch;color:var(--faint);font-size:.95rem}.member .interests b{color:var(--muted);font-weight:600}@media(max-width:40rem){.member{grid-template-columns:1fr;gap:.8rem}}.pub{display:grid;grid-template-columns:6.5rem 1fr;gap:1.2rem 2rem;padding-block:clamp(1.4rem,3vw,1.9rem);border-top:1px solid var(--hairline)}.pub:first-child{border-top:none}.pub .year{font-family:var(--font-display);font-size:clamp(1.7rem,3vw,2.3rem);font-weight:380;color:#c9c4e4;line-height:1.1}.pub h3{font-size:clamp(1.2rem,2vw,1.45rem);font-weight:560}.pub .authors{margin-top:.35rem;color:var(--muted)}.pub .meta{margin-top:.4rem;display:flex;flex-wrap:wrap;gap:.4rem 1.1rem;font-family:var(--font-mono);font-size:.82rem;color:var(--faint)}.pub .meta .venue{color:var(--violet)}.pub .award{color:var(--amber-deep);border:1px solid var(--amber);padding:0 .4rem}.pub .links{margin-top:.4rem;display:flex;flex-wrap:wrap;gap:.4rem 1.1rem}.pub .links a{font-family:var(--font-mono);font-size:.82rem}.pub .abstract{margin-top:.65rem;max-width:72ch;color:var(--muted);font-size:.97rem}details.bibtex{margin-top:.65rem;max-width:72ch}details.bibtex summary{cursor:pointer;font-family:var(--font-mono);font-size:.82rem;color:var(--faint);display:inline-block}details.bibtex pre{margin-top:.6rem;padding:1rem 1.1rem;background:var(--panel);border:1px solid var(--hairline);font-family:var(--font-mono);font-size:.78rem;line-height:1.55;overflow-x:auto;white-space:pre-wrap}@media(max-width:40rem){.pub{grid-template-columns:1fr;gap:.4rem}}.news-item{display:grid;grid-template-columns:9.5rem 1fr;gap:1rem 2rem;padding-block:clamp(1.3rem,2.6vw,1.7rem);border-top:1px solid var(--hairline)}.news-item:first-child{border-top:none}.news-item .date{font-family:var(--font-mono);font-size:.85rem;color:var(--faint);padding-top:.2rem}.news-item .kind{font-family:var(--font-mono);font-size:.72rem;color:var(--violet);border:1px solid var(--hairline);padding:.02rem .4rem .06rem;margin-right:.6rem;vertical-align:.15em}.news-item h3{font-size:1.18rem;font-weight:560}.news-item p{margin-top:.4rem;max-width:70ch;color:var(--muted)}@media(max-width:40rem){.news-item{grid-template-columns:1fr;gap:.3rem}}.page-head{padding-top:clamp(3rem,6vw,5rem);padding-bottom:clamp(1.75rem,4vw,3rem);border-bottom:1px solid var(--hairline)}.page-head h1{font-size:clamp(2.6rem,6vw,4rem);letter-spacing:-.02em}.page-head .lede{margin-top:.8rem;color:var(--muted);max-width:62ch}.contact-rows{display:grid}.contact-row{display:grid;grid-template-columns:12rem 1fr;gap:1rem 2rem;padding-block:1.5rem;border-top:1px solid var(--hairline)}.contact-row:first-child{border-top:none}.contact-row .k{font-family:var(--font-mono);font-size:.82rem;color:var(--faint);padding-top:.15rem}.contact-row .v a{font-family:var(--font-mono)}@media(max-width:40rem){.contact-row{grid-template-columns:1fr;gap:.3rem}}.standalone{min-height:60vh;display:grid;place-items:center;text-align:center}.standalone .wrap{padding-block:4rem}.standalone h1{font-size:clamp(3rem,8vw,5.5rem)}.standalone .code{font-family:var(--font-mono);font-size:1rem;color:var(--cyan);margin-top:1rem}.standalone p{color:var(--muted);margin-top:1.2rem}.standalone .ring{width:6rem;height:6rem;margin:0 auto 2rem;border:1px solid var(--violet);border-radius:50%;position:relative}.standalone .ring:before{content:"";position:absolute;inset:-14%;border:1px dashed var(--cyan);border-radius:50%;opacity:.6}
