:root{color-scheme:light;--bg:#fafbf9;--paper:#fff;--text:#303b40;--strong:#17282e;--muted:#677479;--accent:#246b73;--line:#dde4e2;--soft:#edf3f1;--header:rgba(250,251,249,.95)}:root[data-theme=dark]{color-scheme:dark;--bg:#151c20;--paper:#1c252a;--text:#d1d9db;--strong:#f2f5f3;--muted:#9aaeb3;--accent:#8ad0cd;--line:#334047;--soft:#202f34;--header:rgba(21,28,32,.96)}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:104px}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,segoe ui,sans-serif;font-size:15px;line-height:1.75;-webkit-font-smoothing:antialiased}::selection{background:#cde8e4;color:#17282e}a{color:var(--accent);text-decoration:none;text-underline-offset:4px}a:hover{text-decoration:underline}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:5px;border-radius:3px}button{font:inherit;cursor:pointer}svg{display:block;width:18px;height:18px;flex-shrink:0}h1,h2,h3,p{margin:0}strong{font-weight:600;color:var(--strong)}.skip-link{position:fixed;top:8px;left:8px;z-index:100;transform:translateY(-160%);padding:8px 16px;background:var(--strong);color:var(--bg)}.skip-link:focus{transform:translateY(0)}.site-header{position:sticky;top:0;z-index:20;background:var(--header);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}.header-inner{max-width:1160px;margin:auto;padding:0 36px;min-height:72px;display:flex;align-items:center;gap:30px}.wordmark{font-size:18px;font-weight:650;letter-spacing:-.6px;color:var(--strong);margin-right:auto;white-space:nowrap}.wordmark:hover{text-decoration:none}.wordmark-dot{color:var(--accent)}.nav-links{display:flex;align-items:center;gap:28px}.nav-links a{display:flex;align-items:center;min-height:72px;font-size:13px;font-weight:500;color:var(--muted);position:relative}.nav-links a:hover,.nav-links a[aria-current]{color:var(--accent);text-decoration:none}.nav-links a[aria-current]::after{content:"";height:2px;position:absolute;bottom:-1px;left:0;right:0;background:var(--accent)}.theme-toggle{border:1px solid var(--line);background:0 0;color:var(--muted);width:34px;height:34px;border-radius:50%;display:none;align-items:center;justify-content:center;flex-shrink:0}.js .theme-toggle{display:flex}.theme-toggle:hover{background:var(--soft);color:var(--accent)}.sun,[data-theme=dark] .moon{display:none}[data-theme=dark] .sun{display:block}.menu-toggle{display:none}.page-shell{display:grid;grid-template-columns:224px minmax(0,1fr);gap:64px;max-width:1160px;margin:0 auto;padding:52px 36px 0}.profile{position:sticky;top:112px;align-self:start}.profile-photo{display:block;width:224px;height:168px;max-width:100%;object-fit:cover;border-radius:10px;margin-bottom:25px;border:1px solid var(--line)}h1{font-size:27px;line-height:1.25;font-weight:650;letter-spacing:-1px;color:var(--strong)}h1 span{font-family:pingfang sc,microsoft yahei,sans-serif;font-size:19px;letter-spacing:1px;font-weight:400;margin-left:5px;color:var(--muted);white-space:nowrap}.profile-role{font-size:13px;line-height:1.9;margin-top:13px}.profile-role strong{font-weight:550}.profile-location{font-size:12px;display:flex;gap:7px;align-items:center;color:var(--muted);margin-top:16px}.profile-location svg{width:14px;height:14px}.profile-links{display:grid;gap:3px;margin-top:21px;padding:17px 0;border-block:1px solid var(--line)}.profile-links a{display:flex;gap:10px;align-items:center;padding:6px 0;font-size:13px;font-weight:500;color:var(--text)}.profile-links svg{width:16px;height:16px;color:var(--muted)}.profile-links a:hover{color:var(--accent);text-decoration:none}.link-arrow{margin-left:auto;font-size:14px;color:var(--muted);transition:transform .18s}.profile-links a:hover .link-arrow{transform:translate(2px,-2px)}.profile-note{margin-top:24px;color:var(--muted);font-size:12px;line-height:1.85}.eyebrow{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:1.5px;font-weight:600}.profile-note .eyebrow{margin-bottom:8px}main{min-width:0;outline:none}.section{margin-bottom:46px}.section-heading{display:flex;align-items:baseline;justify-content:space-between;gap:12px;border-bottom:1px solid var(--line);padding-bottom:11px;margin-bottom:23px}h2{font-family:Georgia,times new roman,serif;font-size:28px;line-height:1.2;letter-spacing:-.6px;font-weight:400;color:var(--strong)}.section-aside{font-size:10px;letter-spacing:1.2px;text-transform:uppercase;color:var(--muted);white-space:nowrap}.bio-text{font-size:15.5px;line-height:1.85}.bio-text>p+p{margin-top:15px}.bio-text p:last-child{line-height:1.75;color:var(--muted)}.bio-text em{font-style:italic}.education-entry+.education-entry{margin-top:20px}.entry-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px}h3{font-size:15.5px;font-weight:600;line-height:1.5;color:var(--strong);letter-spacing:-.25px}.date{font-size:11px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums}.entry-role{font-size:12px;margin-top:3px;color:var(--accent)}.entry-summary{font-size:13.5px;line-height:1.8;color:var(--text);margin-top:8px;overflow-wrap:break-word}.entry-summary p+p{margin-top:8px}.education-entry .entry-summary{font-size:12px;color:var(--muted);margin-top:3px}.experience-entry+.experience-entry{margin-top:24px;padding-top:21px;border-top:1px solid var(--line)}.experience-entry h3{max-width:70%}.project-entry{display:grid;grid-template-columns:30px minmax(0,1fr);gap:15px}.project-entry+.project-entry{margin-top:25px;padding-top:23px;border-top:1px solid var(--line)}.project-index{font-family:Georgia,serif;color:var(--accent);font-size:17px;line-height:1.5}.project-entry h3{font-size:16px}.entry-summary ul{margin:0;padding-left:17px}.entry-summary li{padding-left:3px;margin-top:7px}.entry-summary li::marker{color:var(--accent);font-size:10px}.entry-summary li:first-child{margin-top:0}.publication-entry+.publication-entry{border-top:1px solid var(--line);padding-top:23px;margin-top:23px}.publication-meta{color:var(--accent);font-size:10.5px;letter-spacing:.25px;margin-bottom:7px}.publication-entry h3{font-size:17px;line-height:1.5}.publication-entry h3 a{color:var(--strong)}.paper-link{display:inline-flex;gap:12px;align-items:center;margin-top:12px;font-size:11px;font-weight:600;border-bottom:1px solid var(--line);padding-bottom:2px}.paper-link:hover{text-decoration:none;border-color:var(--accent)}.awards-list{list-style:none;margin:0;padding:0}.awards-list li{display:flex;justify-content:space-between;align-items:baseline;gap:25px;padding:12px 0;border-bottom:1px solid var(--line);font-size:13px}.awards-list li:first-child{padding-top:0}.awards-list li:last-child{border-bottom:0;padding-bottom:0}.award-source{display:block;font-size:11px;color:var(--muted);margin-top:2px}.languages{display:flex;align-items:baseline;flex-wrap:wrap;gap:24px;font-size:12px;padding-top:8px;color:var(--text)}.languages small{font-size:10px;color:var(--muted);margin-left:5px}.site-footer{margin-top:38px;border-top:1px solid var(--line);padding:24px 0 32px;display:flex;justify-content:space-between;gap:16px;color:var(--muted);font-size:11px}.site-footer a{color:var(--muted)}@media(min-width:1400px){.page-shell,.header-inner{max-width:1200px}.page-shell{gap:80px}}@media(max-width:1000px){.page-shell{grid-template-columns:190px minmax(0,1fr);gap:38px;padding-inline:28px}.header-inner{padding-inline:28px}.profile-photo{width:190px;height:143px}h1{font-size:24px}h1 span{display:block;margin-left:0;margin-top:7px;font-size:17px}.nav-links{gap:20px}.entry-heading{flex-wrap:wrap;gap:3px 15px}.experience-entry h3{max-width:none}.section-aside{font-size:9px}.bio-text{font-size:15px}}@media(max-width:740px){html{scroll-padding-top:92px}.header-inner{min-height:64px;padding:0 22px;gap:18px}.wordmark{font-size:17px}.nav-links{gap:15px;flex-wrap:wrap}.nav-links a{min-height:40px;font-size:12px}.header-inner nav{order:3;width:100%}.header-inner{flex-wrap:wrap}.theme-toggle{margin-left:auto}.js .header-inner{flex-wrap:nowrap}.js .header-inner nav{order:0;width:auto;margin-left:auto}.js .theme-toggle{margin-left:0}.js .menu-toggle{display:flex;align-items:center;gap:9px;border:0;background:0 0;color:var(--text);font-size:12px;min-height:44px;padding:0 4px}.menu-toggle span{font-size:17px}.js .nav-links{display:none;position:absolute;left:0;right:0;top:64px;padding:10px 22px 18px;background:var(--bg);border-bottom:1px solid var(--line);box-shadow:0 12px 20px rgba(0,0,0,.035)}.js .nav-links.is-open{display:grid;grid-template-columns:1fr 1fr;gap:2px 24px}.nav-links a[aria-current]::after{display:none}.page-shell{display:block;padding:32px 22px 0}.profile{position:static;display:grid;grid-template-columns:116px minmax(0,1fr);gap:16px 23px;margin-bottom:35px}.profile-photo{width:116px;height:87px;object-fit:cover;align-self:center;border-radius:8px;margin:0}.profile-identity{align-self:center}h1{font-size:25px}h1 span{display:inline;font-size:17px;margin-left:6px}.profile-role{margin-top:9px;font-size:12px;line-height:1.7}.profile-location{margin-top:9px;font-size:11px}.profile-links{grid-column:1/-1;display:flex;justify-content:flex-start;flex-wrap:wrap;gap:8px 23px;margin:2px 0 0;padding:12px 0}.profile-links a{font-size:12px;gap:7px;padding:3px 0}.profile-links svg{width:14px;height:14px}.link-arrow,.profile-note{display:none}h2{font-size:26px}.section{margin-bottom:35px}.section-heading{margin-bottom:18px}.section-aside{font-size:9px;letter-spacing:.7px}.about .section-aside{display:none}.bio-text{font-size:14px;line-height:1.85}.entry-summary{font-size:13px}.entry-heading{display:block}.entry-heading .date{display:block;margin-top:4px}h3{font-size:14px}.entry-role{margin-top:4px}.project-entry{grid-template-columns:23px minmax(0,1fr);gap:10px}.project-entry h3{font-size:15px}.project-index{font-size:15px}.publication-entry h3{font-size:16px}.publication-meta{font-size:10px;line-height:1.7}.awards-list li{gap:16px;font-size:12px}.date{font-size:10px}.languages{gap:17px}.site-footer{margin-top:28px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}@media print{.site-header,.profile-links,.profile-note,.site-footer,.skip-link{display:none!important}.page-shell{display:block;padding:0;max-width:none}.profile{position:static;display:block;margin-bottom:24px}.profile-photo{display:none}body{background:#fff;color:#000;font-size:11pt}.section{break-inside:auto;margin-bottom:24px}.section-heading,article{break-inside:avoid}h1 span{display:inline}.entry-summary,.bio-text{font-size:10pt}a{color:inherit}.date{color:#444}}@media(max-height:780px) and (min-width:741px){.profile-note{display:none}}