:root{--ink:#242931;--muted:#636b76;--blue:#245caf;--line:#e3e7ec;--soft:#f5f7fa;--serif:Georgia,'Songti SC','Noto Serif CJK SC',serif;--sans:-apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC','Microsoft YaHei',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:35px}body{margin:0;background:#fff;color:var(--ink);font:16px/1.75 var(--sans);border-top:4px solid var(--blue)}a{color:var(--blue);text-decoration:none;text-underline-offset:4px}a:hover{text-decoration:underline}a:focus-visible,button:focus-visible{outline:2px solid var(--blue);outline-offset:5px}.skip{position:absolute;left:20px;top:-100px;background:white;z-index:10;padding:8px}.skip:focus{top:8px}.layout{max-width:1140px;margin:auto;display:grid;grid-template-columns:245px minmax(0,1fr);gap:74px;padding:66px 38px 0}.profile{position:sticky;top:40px;align-self:start}.portrait{width:120px;height:120px;object-fit:cover;display:block;border-radius:3px;margin:0 0 22px}h1{font:normal 32px/1.25 var(--serif);margin:0 0 13px;letter-spacing:-.8px}.bio{font-size:14px;line-height:1.8;color:var(--muted);margin:0}.bio strong{color:var(--ink);font-weight:500}.focus{font-size:14px;color:var(--muted);line-height:1.65;margin:18px 0}.contact{display:flex;flex-direction:column;align-items:flex-start;gap:6px;font-size:14px}.nav{border-top:1px solid var(--line);padding-top:21px;margin-top:25px;display:flex;flex-direction:column;gap:8px;font-size:14px}.nav a{color:var(--muted);width:fit-content}.nav a:hover,.nav a.active{color:var(--blue)}.nav a.active{font-weight:600}.languages{display:flex;gap:0;align-items:center;font-size:14px;margin-top:30px}.languages a,.languages span{padding:3px 10px;border:1px solid var(--line)}.languages a:first-child,.languages span:first-child{border-radius:4px 0 0 4px}.languages a:last-child,.languages span:last-child{border-radius:0 4px 4px 0;border-left:0}.languages span{background:var(--blue);border-color:var(--blue);color:white}.section{margin-bottom:47px;scroll-margin-top:35px}.section-head{display:flex;align-items:baseline;gap:14px;border-bottom:1px solid var(--line);padding-bottom:11px;margin-bottom:20px}.section-head .num{font:12px/1.5 ui-monospace,SFMono-Regular,monospace;color:var(--blue)}h2{font:normal 27px/1.3 var(--serif);margin:0}p{margin:0 0 14px}.about p{max-width:720px}.news{list-style:none;padding:0;margin:0}.news li{display:grid;grid-template-columns:78px minmax(0,1fr);gap:15px;margin-bottom:12px}.news time{font:13px/1.85 ui-monospace,SFMono-Regular,monospace;color:var(--muted);padding-top:3px}.news p{margin:0;font-size:15px}.entry{position:relative;margin:0 0 25px;padding-left:18px;border-left:2px solid var(--line)}.entry h3{font-size:16px;line-height:1.5;margin:4px 0 3px;font-weight:600}.entry .date{font-size:13px;color:var(--muted)}.entry .subtitle{font-size:14px;color:var(--muted);margin:0 0 7px}.entry p{font-size:15px;margin:0}.subheading{font-size:13px;text-transform:uppercase;letter-spacing:1.3px;color:var(--muted);margin:28px 0 18px;font-weight:500}.paper{padding:0 0 23px;margin-bottom:24px;border-bottom:1px solid var(--line)}.paper:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}.paper-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13px;margin-bottom:9px}.paper-key{font:12px/1.6 ui-monospace,SFMono-Regular,monospace;background:var(--soft);color:var(--blue);padding:2px 7px;border-radius:3px}.venue{color:var(--blue)}.paper h3{font-size:17px;line-height:1.5;margin:0 0 8px;font-weight:600}.authors{font-size:14px;line-height:1.65;color:var(--muted);margin-bottom:8px}.authors strong{font-weight:600;color:var(--ink)}.summary{font-size:15px;margin-bottom:10px}.paper-links{display:flex;gap:14px;font-size:13px;align-items:center;flex-wrap:wrap}.role{font-size:13px;color:var(--muted)}.legend{font-size:13px;color:var(--muted);margin-top:-7px;margin-bottom:25px}.interest-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:23px}.interest-grid h3{font:normal 18px/1.4 var(--serif);margin:0 0 9px}.interest-grid p{font-size:14px;line-height:1.75;color:var(--muted)}footer{border-top:1px solid var(--line);padding:18px 0 30px;color:var(--muted);font-size:12px;display:flex;justify-content:space-between;gap:10px}.zh h1,.zh h2{letter-spacing:0}.zh .about{line-height:1.9}@media(min-width:1400px){.layout{padding-top:80px}}@media(max-width:850px){.layout{gap:37px;padding:40px 25px 0;grid-template-columns:205px minmax(0,1fr)}.interest-grid{grid-template-columns:1fr;gap:5px}}@media(max-width:650px){html{scroll-padding-top:18px}.layout{display:block;padding:28px 22px 0}.profile{position:static;display:grid;grid-template-columns:1fr 86px;gap:0 18px;margin-bottom:38px}.portrait{grid-column:2;grid-row:1/5;width:86px;height:86px;margin:0;align-self:start}h1{grid-column:1;font-size:30px}.bio,.focus,.contact{grid-column:1}.focus{margin:10px 0}.nav{grid-column:1/-1;flex-direction:row;flex-wrap:wrap;gap:7px 18px;margin-top:19px;padding-top:15px}.languages{grid-column:1/-1;margin-top:18px}.section{margin-bottom:36px}h2{font-size:25px}.news li{grid-template-columns:65px minmax(0,1fr);gap:10px}.interest-grid{grid-template-columns:1fr}.section-head{gap:11px}.paper h3{font-size:16px}footer{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}@media print{.layout{display:block;padding:0}.profile{position:static}.nav,.languages,.skip{display:none}.portrait{float:right}.section{break-inside:avoid}a{color:inherit}.paper{break-inside:avoid}body{font-size:12px;border:0}}

.contact a{display:inline-flex;align-items:center;gap:5px}.contact-icon{width:16px;height:16px;flex:none}.file-type{font-size:12px;color:var(--muted)}

/* Resource links share a quiet visual language with the profile links. */
.contact{gap:6px}.contact a{min-height:28px;border-bottom:1px solid transparent}.contact a:hover{border-color:var(--blue);text-decoration:none}
.paper-title-link{color:var(--ink);text-decoration:underline;text-decoration-color:transparent;text-decoration-thickness:1px;transition:color .15s,text-decoration-color .15s}.paper-title-link:hover{color:var(--blue);text-decoration-color:var(--blue)}
.paper .role{margin:0 0 12px}.paper-links{gap:8px}.resource-link{display:inline-flex;align-items:center;gap:6px;min-height:34px;padding:4px 10px;border:1px solid #d5dfed;border-radius:5px;font-size:13px;line-height:1.5;color:var(--blue);background:#fff;transition:background .15s,border-color .15s}.resource-link:hover{background:#edf3fc;border-color:var(--blue);text-decoration:none}.resource-link .contact-icon{width:15px;height:15px}.external-mark{font-size:12px;opacity:.7;margin-left:2px}.resource-link:focus-visible{outline-offset:3px}@media(prefers-reduced-motion:reduce){.resource-link,.paper-title-link{transition:none}}

.paper{display:grid;grid-template-columns:145px minmax(0,1fr);gap:20px;align-items:start}.paper-details{min-width:0}.paper-figure{display:flex;align-items:center;justify-content:center;min-height:0;margin-top:3px;padding:4px;border:1px solid var(--line);border-radius:6px;background:#fff;transition:border-color .15s}.paper-figure:hover{border-color:var(--blue)}.paper-figure img{display:block;width:100%;height:auto;max-height:105px;object-fit:contain}.paper .authors{margin-bottom:14px}@media(min-width:651px) and (max-width:1000px){.paper{grid-template-columns:120px minmax(0,1fr);gap:16px}}@media(max-width:650px){.paper{grid-template-columns:1fr;gap:15px}.paper-figure{width:min(100%,180px);min-height:0;padding:4px}.paper-figure img{max-height:110px}}

.contact .contact-icon{width:1em;height:1em;flex:0 0 1em}.contact a{gap:8px;line-height:1.5}

@media(min-width:651px){.profile{position:sticky;top:40px;max-height:calc(100dvh - 60px);overflow-y:auto;padding-bottom:5px}}

.about-institution{font-weight:600}.about-person{color:var(--blue);font-weight:600}.about-interest{color:inherit;background:linear-gradient(transparent 55%,#e7effb 55%);padding:0 .06em;box-decoration-break:clone;-webkit-box-decoration-break:clone}.about-idea{font-style:italic}.zh .about-idea{font-style:normal;font-weight:500}

.entry{display:grid;grid-template-columns:76px minmax(0,1fr);gap:18px;padding-left:0;border-left:0;align-items:start}.entry-details{min-width:0}.organization-logo{display:flex;align-items:center;justify-content:center;width:76px;height:68px;margin-top:4px;padding:7px;border:1px solid var(--line);border-radius:6px;background:#fff}.organization-logo img{display:block;width:100%;height:100%;object-fit:contain}.organization-logo:hover{border-color:var(--blue)}.organization-logo--tsinghua{background:#683488;border-color:#683488;padding:9px}.organization-logo--tsinghua img{width:48px;height:48px}@media(max-width:650px){.entry{grid-template-columns:54px minmax(0,1fr);gap:13px}.organization-logo{width:54px;height:54px;padding:5px}.organization-logo--tsinghua img{width:40px;height:40px}}

.organization-logo--tsinghua img{object-fit:cover;object-position:left}

/* Keep contact links stacked and thumbnails subordinate at every screen size. */
.profile .contact{display:grid;grid-template-columns:minmax(0,1fr);justify-items:start;gap:6px}.profile .contact>a{grid-column:1;white-space:nowrap}.profile .contact .contact-icon{width:1em;height:1em}
.publication-list .paper{grid-template-columns:96px minmax(0,1fr);gap:18px}.publication-list .paper-figure{width:96px;height:76px;min-height:0;margin-top:0;align-self:center;padding:0;border:0;background:transparent}.publication-list .paper-figure img{width:96px;height:76px;max-height:76px;object-fit:contain}
.publication-controls{display:flex;gap:6px;margin:0 0 20px}.publication-controls button{font:inherit;font-size:14px;line-height:1.5;cursor:pointer;border:1px solid var(--line);border-radius:5px;padding:5px 12px;background:white;color:var(--muted)}.publication-controls button[aria-pressed="true"]{color:var(--blue);background:#edf3fc;border-color:#c3d4ed}.publication-controls button:hover{border-color:var(--blue)}[hidden]{display:none!important}

@media(max-width:650px){.publication-list .paper{grid-template-columns:76px minmax(0,1fr);gap:14px}.publication-list .paper-figure,.publication-list .paper-figure img{width:76px;height:64px;max-height:64px}}

.hobby-tabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:20px}.hobby-tabs button{font:inherit;font-size:14px;line-height:1.5;border:1px solid var(--line);background:#fff;border-radius:5px;padding:6px 11px;color:var(--muted);cursor:pointer}.hobby-tabs button[aria-selected="true"]{color:var(--blue);border-color:#c3d4ed;background:#edf3fc}.hobby-panel h3{font:normal 21px/1.4 var(--serif);margin:0 0 14px}.hobby-stage{background:#fafbfc;border:1px solid var(--line);border-radius:6px;overflow:hidden}.hobby-empty{min-height:190px;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--muted);gap:8px}.hobby-empty>span{font-size:26px;font-weight:300;color:#8997a8}.hobby-empty p{font-size:14px;margin:0}.hobby-slide{margin:0}.hobby-slide img{display:block;width:100%;height:320px;object-fit:contain}.hobby-slide figcaption{padding:8px 14px;font-size:14px;color:var(--muted)}.hobby-slide figcaption:empty{display:none}.hobby-pagination{display:flex;align-items:center;justify-content:flex-end;gap:15px;margin-top:12px}.hobby-pagination button{width:36px;height:32px;border:1px solid var(--line);border-radius:4px;background:#fff;color:var(--blue);font-size:19px;cursor:pointer}.hobby-pagination button:disabled{color:#aeb7c3;cursor:default;background:#fafbfc}.hobby-count{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}@media(max-width:650px){.hobby-slide img{height:230px}.hobby-empty{min-height:150px}}

.preferred-name{display:block;font:normal 16px/1.5 var(--sans);letter-spacing:0;color:var(--muted);margin-top:6px}

/* Slightly tighter rhythm in the upper profile. */
.profile .portrait{margin-bottom:17px}.profile h1{margin-bottom:10px}.profile .preferred-name{line-height:1.35;margin-top:4px}.profile .bio{line-height:1.55}.profile .focus{line-height:1.5;margin:12px 0}.profile .contact{gap:4px}.profile .contact>a{min-height:26px}.profile .nav{margin-top:20px}@media(max-width:650px){.profile .portrait{margin-bottom:0}.profile .focus{margin:8px 0}.profile .nav{margin-top:16px}}

/* Compact links with independent desktop sidebar scrolling. */
.authors .author-marks{font-size:.85em;font-weight:600;line-height:0;vertical-align:super;white-space:nowrap;color:var(--ink)}
.hobby-stage{position:relative}.hobby-pagination{position:absolute;inset:0;margin:0;pointer-events:none}.hobby-pagination button{position:absolute;top:50%;transform:translateY(-50%);width:38px;height:48px;border:0;border-radius:5px;background:rgba(20,28,40,.38);color:#fff;font-size:34px;line-height:1;pointer-events:auto;transition:background .15s}.hobby-pagination button[data-step="-1"]{left:10px}.hobby-pagination button[data-step="1"]{right:10px}.hobby-pagination button:hover{background:rgba(20,28,40,.65)}.hobby-pagination button:focus-visible{outline:2px solid var(--blue);outline-offset:3px}.hobby-pagination button:disabled{display:none}.hobby-count{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.hobby-notice{margin:18px 0 0;font-size:12px;line-height:1.6;color:var(--muted)}.hobby-notice a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.profile .contact{gap:1px}.profile .contact>a{min-height:23px;line-height:1.4}.profile .nav{gap:4px;margin-top:15px;padding-top:14px;line-height:1.5}
