@font-face{font-family:"Source Sans 3 Variable";font-style:normal;font-display:swap;font-weight:200 900;src:url(/_astro/source-sans-3-latin-wght-normal.Bo_j9asI.woff2)format("woff2")}:root{color-scheme:light;--paper:#fff;--ink:#292929;--secondary:#626262;--link:#185d9c;--link-hover:#0c3d6b;--sans:"Source Sans 3 Variable", "Helvetica Neue", "PingFang SC", "Microsoft YaHei", sans-serif}*{box-sizing:border-box}html{scroll-padding-top:85px}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}html:not([lang=zh-CN]) [data-language=zh-CN],html[lang=zh-CN] [data-language=en]{display:none}body{background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;margin:0;font-size:1.0625rem;line-height:1.6}::selection{color:var(--ink);background:#e1ecf6}a{color:var(--link);text-underline-offset:.16em;text-decoration:none}a:hover{color:var(--link-hover);text-decoration:underline}a:focus-visible,button:focus-visible{outline:2px solid var(--link);outline-offset:4px}h1,h2,h3,p{margin:0}h1,h2{font-weight:600}h1{letter-spacing:-.025em;flex-wrap:wrap;align-items:baseline;gap:8px 18px;font-size:2.25rem;line-height:1.2;display:flex}h1 span{color:var(--secondary);letter-spacing:0;font-size:1.25rem;font-weight:400}h2{margin-bottom:26px;font-size:1.5rem;line-height:1.3}strong{font-weight:600}.page{width:min(800px,100% - 48px);margin:34px auto 0}.section-nav{z-index:5;background:var(--paper);border-bottom:1px solid #e4e4e4;width:min(800px,100% - 48px);margin:0 auto;padding:8px 0;font-size:.9375rem;position:sticky;top:0}.section-nav-heading{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.section-nav ul{scrollbar-width:thin;scrollbar-color:var(--secondary) var(--paper);gap:0 20px;margin:0;padding:4px;list-style:none;display:flex;overflow-x:auto}.section-nav li{flex-shrink:0}.section-nav a{min-height:44px;color:var(--secondary);white-space:nowrap;text-underline-offset:.35em;align-items:center;display:flex}.section-nav a:hover{color:var(--link-hover)}.section-nav a[aria-current=location]{color:var(--link);font-weight:600;text-decoration:underline}@media (width>=1200px){html{scroll-padding-top:24px}.page{margin-top:70px}.section-nav{border-bottom:0;width:144px;max-height:calc(100dvh - 100px);margin:0;padding:0;position:fixed;top:76px;left:calc(50% - 584px);overflow-y:auto}.section-nav-heading{clip-path:none;width:auto;height:auto;color:var(--secondary);margin-bottom:12px;padding-left:16px;font-size:.8125rem;position:static;overflow:visible}.section-nav ul{display:block;overflow:visible}.section-nav a{border-left:1px solid #e4e4e4;padding-left:12px}.section-nav a[aria-current=location]{border-left-color:var(--link)}}.skip-link{z-index:10;background:var(--paper);padding:8px 12px;position:fixed;top:8px;left:16px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.profile{grid-template-columns:minmax(0,1fr) 160px;grid-template-areas:"name photo""bio photo""contact contact";column-gap:36px;margin-bottom:42px;display:grid}.profile-heading{flex-wrap:wrap;grid-area:name;justify-content:space-between;align-items:center;gap:8px 24px;display:flex}.language-switch:not([hidden]){color:var(--secondary);align-items:center;gap:2px;font-size:.9375rem;display:flex}.language-switch button{min-width:44px;min-height:44px;color:var(--link);font:inherit;cursor:pointer;text-underline-offset:.25em;background:0 0;border:0;padding:0 6px}.language-switch button:hover{color:var(--link-hover);text-decoration:underline}.language-switch button[aria-pressed=true]{color:var(--ink);font-weight:600;text-decoration:underline}.profile-image{grid-area:photo;align-self:center;width:100%;height:auto;display:block}.bio{grid-area:bio;max-width:76ch;margin-top:23px}.bio p+p{margin-top:16px}.bio a{white-space:nowrap;text-decoration:underline}.contact-links{flex-wrap:wrap;grid-area:contact;gap:0 24px;margin:15px 0 0;padding:0;font-size:1rem;list-style:none;display:flex}.contact-links a{align-items:center;min-height:44px;display:inline-flex}.publication-list{gap:32px;display:grid}.publication{min-width:0}.publication h3{font-size:1.0625rem;font-weight:600;line-height:1.4}.authors{color:var(--secondary);margin-top:6px;font-size:.9375rem;line-height:1.5}.authors strong{color:var(--ink)}.venue{margin-top:2px;font-size:.9375rem;line-height:1.5}.paper-description{margin-top:8px;font-size:1rem;line-height:1.5}.resource-links{flex-wrap:wrap;gap:0 20px;margin:0;padding:0;font-size:.9375rem;list-style:none;display:flex}.resource-links a{align-items:center;min-height:44px;display:inline-flex}.education,.honors{margin-top:42px}.education h2,.honors h2{margin-bottom:18px}.education-school{font-weight:600}.education-list,.honors-list{gap:10px;margin:12px 0 0;padding:0;font-size:1rem;list-style:none;display:grid}.honors-list{margin-top:0}.education-list li,.honors-list li{justify-content:space-between;align-items:baseline;gap:8px 24px;display:flex}.education-date,.honor-year{color:var(--secondary);flex-shrink:0;font-size:.9375rem}.site-footer{color:var(--secondary);margin-top:42px;padding-bottom:30px;font-size:.8125rem}@media (width<=600px){.page{margin-top:34px}h1{gap:8px 14px;font-size:2rem}h1 span{font-size:1.125rem}.profile{grid-template-columns:minmax(0,1fr) 96px;grid-template-areas:"name photo""bio bio""contact contact";column-gap:18px;margin-bottom:30px}.profile-heading{align-self:center}.bio{margin-top:21px}.bio a{white-space:normal}.contact-links{gap:0 20px;margin-top:12px;font-size:.9375rem}h2{margin-bottom:24px;font-size:1.375rem}.publication-list{gap:25px}.education,.honors{margin-top:30px}.education-list,.honors-list{gap:14px}.education-list li,.honors-list li{flex-direction:column;gap:2px}.site-footer{margin-top:34px}}@media print{.page{width:100%;margin-top:0}.skip-link,.language-switch,.section-nav{display:none!important}.publication{break-inside:avoid}a{color:inherit}}@font-face{font-family:Pixelify Sans;font-style:normal;font-weight:400 700;font-display:swap;src:url(/_astro/pixelify-sans-latin.F1EUzFrp.woff2)format("woff2")}@font-face{font-family:Homepage Pixel CJK;font-style:normal;font-weight:400;font-display:swap;src:url(data:font/woff2;base64,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)format("woff2")}.profile-heading{min-width:0}.profile-name{letter-spacing:0;gap:6px 18px;max-width:100%;font-size:2.5rem;line-height:1.15}.profile-name-latin,.pixel-heading{font-family:"Pixelify Sans", var(--sans);font-synthesis:none;-webkit-font-smoothing:auto}.profile-name .profile-name-latin{min-width:0;max-width:100%;color:var(--ink);font-size:inherit;overflow-wrap:anywhere;font-weight:500}.profile-name .profile-name-chinese,.pixel-heading [lang=zh-CN]{font-family:"Homepage Pixel CJK", var(--sans);font-synthesis:none;letter-spacing:.04em;-webkit-font-smoothing:auto;font-weight:400}.pixel-heading{letter-spacing:0;overflow-wrap:anywhere;font-size:1.625rem;font-weight:400;line-height:1.4}.pixel-heading [lang=zh-CN]{font-size:1.5rem}@media (width<=600px){.profile-name{font-size:2.25rem}.contact-links li{min-width:0;max-width:100%}.contact-links a{overflow-wrap:anywhere;max-width:100%}}@media print{.profile-name-latin,.profile-name .profile-name-chinese,.pixel-heading,.pixel-heading [lang=zh-CN]{font-family:var(--sans)}.profile-name .profile-name-latin,.pixel-heading,.pixel-heading [lang=zh-CN]{font-weight:600}}
