:root{--bg:#fff;--ink:#494e52;--heading:#494e52;--muted:#70777d;--line:#e8e8e8;--accent:#224b8d;--page-width:1280px}
*{box-sizing:border-box}
html{scroll-padding-top:92px}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Trebuchet MS",Helvetica,"PingFang SC","Microsoft YaHei",sans-serif;font-size:1rem;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:var(--accent);text-decoration:none;text-underline-offset:3px}
a:hover{text-decoration:underline}
a:focus-visible{outline:2px solid var(--accent);outline-offset:5px;border-radius:2px}
p,h1,h2,h3{margin-top:0}
img{display:block;max-width:100%}
.topnav{position:sticky;top:0;z-index:10;background:#fff;border-bottom:1px solid var(--line)}
.nav-inner{max-width:var(--page-width);min-height:68px;margin:auto;padding:14px 32px;display:flex;align-items:center;gap:38px}
.site-title{font-size:1rem;font-weight:700;color:var(--ink);flex-shrink:0}
nav{display:flex;align-items:center;gap:24px;flex-wrap:wrap;line-height:1.5}
nav a{font-size:.875rem;color:var(--muted)}
nav a:hover{color:var(--accent)}
.page-shell{max-width:var(--page-width);margin:0 auto;padding:32px 32px 72px}
.page-grid{display:grid;grid-template-columns:208px minmax(0,1fr);gap:58px}
.profile-sticky{position:sticky;top:110px}
.portrait{width:200px;height:200px;margin:0 0 22px;border-radius:50%;overflow:hidden}
.portrait img{width:100%;height:100%;object-fit:cover}
.identity h1{font-size:1.65rem;line-height:1.3;margin-bottom:10px;letter-spacing:-.025em}
.identity h1 span{font-size:1.35rem;white-space:nowrap;margin-left:5px}
.identity .title{font-size:1rem;margin-bottom:4px}
.institution{font-size:.875rem;line-height:1.6;margin-bottom:16px;color:var(--muted)}
.location{display:flex;align-items:center;gap:10px;font-size:.875rem;color:var(--muted);margin-bottom:20px}
.location svg,.profile-links svg{width:19px;height:19px;flex-shrink:0}
.profile-icon{display:block;overflow:visible}
.icon-email,.icon-scholar,.icon-review,.icon-orcid,.icon-location{color:#494e52}.icon-github{color:#181717}.icon-x{color:#55acee}
.location .icon-location{width:19px;height:23px}.location{color:var(--ink)}
.profile-links{padding:0;margin:0;list-style:none;display:flex;flex-direction:column;gap:9px}
.profile-links a{display:inline-flex;align-items:center;gap:11px;color:var(--ink);font-size:.9375rem;line-height:1.7}
.profile-links a:hover{color:var(--accent)}
.main-column{min-width:0}
.main-column a{text-decoration:none}.main-column a:hover{text-decoration:underline}
.main-column .prose a,.main-column .history-list p a,.main-column .news-list a{text-decoration:underline}
.news-scroll:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
.section{margin-bottom:46px;scroll-margin-top:0}
.section:last-child{margin-bottom:0}
.section h2{font-size:1.55rem;line-height:1.3;letter-spacing:0;margin:0 0 20px;padding-bottom:12px;border-bottom:1px solid var(--line);font-weight:700;color:var(--heading)}
.section-icon{display:inline-block;margin-right:5px;font-size:.95em;vertical-align:baseline}

.prose{max-width:78ch}.prose p{margin-bottom:15px;text-wrap:pretty}
.prose p:last-child{margin-bottom:0}
.research-heading{font-size:1.0625rem;line-height:1.5;margin:22px 0 9px}
.research-interests{margin:0 0 18px;padding-left:23px}
.research-interests li{padding-left:2px;margin:3px 0;text-wrap:pretty}
.research-interests strong{font-weight:700;color:var(--ink)}
.news-scroll{max-height:180px;overflow-y:auto;overscroll-behavior-y:contain;border:1px solid var(--line);border-radius:6px;padding:12px 16px;background:#fafafa;scrollbar-width:thin;scrollbar-color:#cbd5e1 #f1f5f9}
.news-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.news-list li{display:grid;grid-template-columns:76px minmax(0,1fr);gap:12px;line-height:1.55}
.news-list time{font-size:.875rem;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;padding-top:1px}
.news-icon{display:inline-block;margin-left:2px;font-size:1em;vertical-align:baseline}
.section-title-row{display:flex;align-items:baseline;gap:10px;border-bottom:1px solid var(--line);margin-bottom:20px;flex-wrap:wrap}
.section-title-row h2{border:0;margin:0}
.full-list-link{font-size:.9rem;white-space:nowrap}
.full-list-link::before{content:"(";color:var(--ink)}
.full-list-link::after{content:")";color:var(--ink)}
.entry-separator{font-weight:400;color:#94a3b8;margin:0 5px}
.paper-list{list-style:none;padding:0;margin:0;display:grid;gap:30px}
.paper-entry{display:grid;grid-template-columns:260px minmax(0,1fr);gap:26px;align-items:center;padding-bottom:30px;border-bottom:1px solid var(--line)}
.paper-entry:last-child{border-bottom:0;padding-bottom:0}
.paper-figure{display:flex;align-items:center;justify-content:center;aspect-ratio:4 / 3;border:1px solid var(--line);border-radius:6px;padding:8px;overflow:hidden;background:#fff}
.paper-figure img{width:100%;height:100%;object-fit:contain}
.paper-figure:hover{border-color:#a9bad2}
.paper-details{min-width:0}
.paper-summary{font-size:1rem;line-height:1.55;margin:0;color:var(--ink)}
.paper-title{font-size:1.0625rem;line-height:1.45;font-weight:700;margin:0 0 8px;text-wrap:balance}
.main-column .paper-title a{text-decoration:none}
.main-column .paper-title a:hover{text-decoration:underline}
.authors{text-wrap:pretty;color:#555;font-size:.9rem;line-height:1.55;margin:0 0 4px}
.authors strong{white-space:nowrap;font-weight:700;color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.venue{display:flex;align-items:baseline;gap:8px 14px;flex-wrap:wrap;font-size:.875rem;line-height:1.55;margin:9px 0 10px}.venue strong{color:var(--ink);font-weight:700}.venue span{color:var(--muted)}
.publication-links{display:flex;gap:6px;font-size:.75rem;flex-wrap:wrap}
.paper-summary+.publication-links{margin-top:10px}
.main-column .publication-links a{border:1px solid #ccc;border-radius:4px;padding:1px 8px;color:#333;background:#fff;line-height:1.6;text-decoration:none}
.main-column .publication-links a:hover{background:#f7f7f7;border-color:#999}
footer{max-width:var(--page-width);margin:auto;padding:22px 32px 32px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:16px;font-size:.8125rem;color:var(--muted)}
@media(min-width:1500px){:root{--page-width:1320px}.page-grid{grid-template-columns:240px minmax(0,1fr);gap:76px}}
@media(max-width:1020px){.nav-inner{gap:28px}nav{gap:17px}.page-grid{grid-template-columns:210px minmax(0,1fr);gap:38px}.portrait{width:184px;height:184px}.paper-entry{grid-template-columns:200px minmax(0,1fr);gap:22px}}
@media(max-width:760px){html{scroll-padding-top:24px}.topnav{position:static}.nav-inner{padding:15px 22px;align-items:flex-start;gap:20px}nav{gap:10px 18px}.page-shell{padding:32px 22px 52px}.page-grid{grid-template-columns:minmax(0,1fr);gap:36px}.profile-sticky{position:static;display:grid;grid-template-columns:124px minmax(0,1fr);column-gap:24px}.portrait{width:124px;height:124px;grid-row:1 / 3;margin:0}.identity h1{font-size:1.5rem}.identity h1 span{font-size:1.2rem}.institution{margin-bottom:8px}.location{margin:0}.profile-links{grid-column:1 / -1;flex-direction:row;flex-wrap:wrap;gap:8px 23px;margin-top:24px}.section{margin-bottom:34px}.section h2{font-size:1.4rem}.paper-entry{grid-template-columns:210px minmax(0,1fr)}footer{padding:20px 22px;font-size:.75rem}}
@media(max-width:500px){.nav-inner{display:block}.site-title{display:inline-block;margin-bottom:10px}nav{gap:8px 18px}.profile-sticky{grid-template-columns:100px minmax(0,1fr);column-gap:18px}.portrait{width:100px;height:100px}.institution br{display:none}.profile-links{gap:9px 18px}.profile-links a{font-size:.875rem}.section-title-row{align-items:baseline;gap:0 10px}.full-list-link{padding-bottom:12px}.paper-entry{grid-template-columns:1fr;gap:18px}.paper-figure{width:100%;max-width:360px;justify-self:center}.paper-title{font-size:1.0625rem}footer{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

@media(min-width:761px) and (max-width:900px){.paper-entry{grid-template-columns:1fr;gap:18px}.paper-figure{width:280px;max-width:100%}}
@media(min-width:501px) and (max-width:620px){.paper-entry{grid-template-columns:1fr;gap:18px}.paper-figure{width:320px;max-width:100%;justify-self:center}}
