@font-face{font-family:Manrope;src:url('assets/fonts/Manrope.ttf') format('truetype');font-weight:200 800;font-style:normal;font-display:swap}
:root{--ink:#243240;--muted:#5c6874;--accent:#086fa0;--line:#e6ebee;--soft:#f4f7f9}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:44px}
body{margin:0;background:#fff;color:var(--ink);font:16px/1.8 Manrope,sans-serif;-webkit-font-smoothing:antialiased}
a{color:var(--accent);text-decoration:none;text-underline-offset:4px;transition:color .15s}
a:hover{color:#044769;text-decoration:underline}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #7dbfdd;outline-offset:5px;border-radius:3px}
button{font:inherit;cursor:pointer}
strong{font-weight:750;color:#203344}
.wrapper{display:grid;grid-template-columns:255px minmax(0,770px);gap:74px;max-width:1195px;padding:68px 48px 36px;margin:auto}
.profile{position:fixed;top:68px;left:max(48px,calc((100vw - 1195px)/2 + 48px));width:255px;text-align:left}
.portrait{width:222px;height:236px;overflow:hidden;border-radius:7px;position:relative;background:#e3e5e2;margin-bottom:24px}
.portrait img{position:absolute;max-width:none;width:132%;height:auto;left:-19%;top:-51%}
h1,h2,h3,p{margin:0}
h1{font:700 30px/1.24 Manrope,sans-serif;letter-spacing:-1.15px;white-space:nowrap;color:#203344}
.chinese-name{font-size:18px;letter-spacing:3px;margin:6px 0 17px;color:var(--muted)}
.position{font-size:16px;font-weight:650;margin-bottom:9px}
.affiliations{font-size:14px;line-height:1.85;margin-bottom:16px}
.affiliations a{color:#405767}
.email{display:block;font-size:13px;white-space:nowrap}
.social-links{display:flex;gap:23px;margin-top:15px;font-size:14px;font-weight:650}
.social-links span{font-size:13px;margin-left:4px}
nav{border-top:1px solid var(--line);margin-top:30px;padding-top:21px;display:flex;flex-direction:column;gap:7px;font-size:14px}
nav a{color:var(--muted);width:max-content}
nav a[aria-current="location"]{color:var(--accent);font-weight:750}
main{min-width:0;grid-column:2}
main section{margin-bottom:45px;scroll-margin-top:22px}
h2{font-family:Georgia,'Times New Roman',serif;font-size:27px;line-height:1.25;font-weight:500;letter-spacing:-.55px;margin-bottom:20px;color:#213649}
.about p{margin-bottom:16px}
.about .contact-note{margin-top:20px;font-size:15px;color:var(--muted)}
.about .opportunity{padding:12px 17px;border-left:3px solid #3184a6;background:#f2f7fa;font-size:14px;line-height:1.8;margin-top:23px;margin-bottom:0}
.opportunity strong{color:#1b5271;font-weight:750}
.equal-note{font-size:12px;line-height:1.7;color:var(--muted);margin-top:2px}
.about{padding-bottom:30px;border-bottom:1px solid var(--line)}
.bibliography{list-style:none;padding:0;margin:0}
.publication{display:grid;grid-template-columns:205px minmax(0,1fr);gap:25px;align-items:start;margin-top:32px;padding-bottom:32px;border-bottom:1px solid var(--line)}
.publication:first-child{margin-top:26px}
.publication:last-child{padding-bottom:0;border-bottom:0}
.teaser{display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:1.49;border:1px solid var(--line);border-radius:5px;overflow:hidden;background:#fff;margin-top:7px}
.teaser img{display:block;width:100%;height:100%;object-fit:contain}
.teaser:hover{border-color:#a7c5d6}
.venue{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;font-size:13px;line-height:1.4;font-weight:800;color:var(--accent);margin-bottom:8px}
.venue span{color:var(--muted);font-weight:500}
h3{font-size:17px;font-weight:750;line-height:1.55;letter-spacing:-.24px}
h3 a{color:#223c51}
h3 a:hover{color:var(--accent)}
.authors{font-size:13.5px;line-height:1.7;color:var(--muted);margin-top:8px}
.authors summary{list-style:none;cursor:pointer}
.authors summary::-webkit-details-marker{display:none}
.authors summary:after{content:' +';color:var(--accent);font-weight:700}
.authors[open] summary:after{content:' −'}
.authors>p{font-size:13.5px;padding:10px 13px;background:var(--soft);margin-top:9px;border-radius:3px}
.pub-description{font-size:14px;line-height:1.7;margin-top:9px;color:#475967}
.pub-links{display:flex;align-items:center;flex-wrap:wrap;gap:18px;margin-top:9px;font-size:13px;font-weight:750}
.pub-links button{font-size:13px;font-weight:750;border:0;background:transparent;color:var(--accent);padding:0}
.pub-links button:hover{text-decoration:underline;text-underline-offset:4px}
.pub-links button span{font-size:9px;margin-left:4px}
.contribution{margin-top:0!important}
.joy-teaser img{object-fit:cover;object-position:center 0}
.timeline{display:grid;gap:25px}
.timeline-item{display:grid;grid-template-columns:156px minmax(0,1fr);gap:18px}
.date{font-size:13px;color:var(--muted);padding-top:2px;font-variant-numeric:tabular-nums}
.timeline h3{font-size:16px;font-weight:750;line-height:1.7}
.timeline-item>div>p{font-size:14px;line-height:1.8;color:#52616e;margin-top:3px}
.timeline-item .role{color:#344e63;font-size:14px;margin:1px 0 6px}
.award{display:grid;grid-template-columns:156px minmax(0,1fr);gap:18px;font-size:14px;line-height:1.8}
.award-year{font-size:13px;color:var(--muted);padding-top:1px}
.award+.award{margin-top:20px}
footer{border-top:1px solid var(--line);padding-top:23px;display:flex;justify-content:space-between;gap:15px;color:var(--muted);font-size:11px}
footer a{color:var(--muted)}
.skip-link{position:fixed;top:-60px;left:20px;padding:8px 20px;background:white;z-index:20}
.skip-link:focus{top:10px}
dialog{width:min(1080px,94vw);max-height:95dvh;border:1px solid var(--line);padding:0;border-radius:8px;background:white;box-shadow:0 24px 100px #0005}
dialog::backdrop{background:#13212bd9}
.dialog-header{padding:14px 20px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.dialog-header h2{font-family:Manrope,sans-serif;font-size:17px;font-weight:750;margin:0;letter-spacing:0}
.close-dialog{border:0;background:transparent;color:var(--muted);font-size:14px;padding:6px}
.demo-credits{font-size:12px;margin-left:auto;color:var(--muted)}
dialog video{display:block;background:#000;width:100%;max-height:80dvh}
body:has(dialog[open]){overflow:hidden}
@media(min-width:1400px){.wrapper{padding-top:86px}.profile{top:86px}}
@media(max-width:1050px){.wrapper{grid-template-columns:224px minmax(0,1fr);gap:43px;padding:48px 30px}.portrait{width:210px;height:223px}.publication{grid-template-columns:165px minmax(0,1fr);gap:21px}.timeline-item,.award{grid-template-columns:140px minmax(0,1fr)}h1{font-size:28px}.email{font-size:12px}}
@media(max-width:800px){.wrapper{display:block;max-width:740px;padding:35px 26px}.profile{position:static;display:grid;grid-template-columns:160px minmax(0,1fr);gap:0 27px;margin-bottom:37px}.portrait{width:160px;height:176px;grid-row:1;margin:0}.identity h1{font-size:28px}.chinese-name{font-size:15px;margin:3px 0 10px}.position{font-size:14px;margin-bottom:3px}.affiliations{font-size:13px;line-height:1.6;margin-bottom:6px}.email{font-size:12px}.social-links{margin-top:8px;font-size:13px;gap:19px}.profile nav{grid-column:1/-1;flex-direction:row;gap:25px;margin-top:27px;padding-top:17px}.publication{grid-template-columns:180px minmax(0,1fr)}main section{margin-bottom:37px}.about{padding-bottom:21px}h2{font-size:26px}}
@media(max-width:520px){body{font-size:15px}.wrapper{padding:27px 21px}.profile{grid-template-columns:112px minmax(0,1fr);gap:0 18px}.portrait{width:112px;height:144px;border-radius:5px}.portrait img{width:185%;left:-65%;top:-63%}h1,.identity h1{font-size:24px;letter-spacing:-.7px}.chinese-name{font-size:14px;margin-bottom:7px}.affiliations{font-size:11.5px}.position{font-size:13px}.email{font-size:10.5px}.social-links{font-size:12px;margin-top:7px}.profile nav{font-size:13px;gap:24px}.publication{grid-template-columns:1fr;gap:16px;margin-top:28px;padding-bottom:28px}.teaser{width:100%;max-width:none;height:auto;aspect-ratio:2.3;margin:0;background:#fafbfc}.teaser img{padding:8px}.joy-teaser{aspect-ratio:2}.joy-teaser img{padding:0}.venue{font-size:13px;margin-bottom:8px}h3{font-size:17px}.authors{font-size:14px}.pub-description{font-size:14px}.pub-links{font-size:14px;gap:21px;margin-top:12px}.pub-links button{font-size:14px}.timeline-item{grid-template-columns:1fr;gap:3px}.timeline{gap:22px}.date{font-size:12px}.award{grid-template-columns:40px minmax(0,1fr);gap:12px}footer{font-size:10px;flex-wrap:wrap}dialog{width:96vw}.dialog-header{padding:10px 14px}.dialog-header h2{font-size:14px}}
@media(min-width:801px) and (max-width:1050px){.profile{width:224px;top:48px;left:30px}}
@media(min-width:801px) and (max-height:780px){.profile{top:30px}.portrait{width:190px;height:180px;margin-bottom:17px}.portrait img{top:-61%}.chinese-name{margin-bottom:11px}.profile nav{margin-top:20px;padding-top:15px;gap:4px}}
@media(max-width:800px){.profile{width:auto;left:auto;top:auto}main{grid-column:auto}}
@media(max-width:520px){.portrait img{width:140%;left:-22%;top:-36%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
