@font-face{font-family:"YH English";src:url("fonts/yh-english-playfair-variable.woff2") format("woff2");font-style:normal;font-weight:400 900;font-display:swap}
@font-face{font-family:"YH English";src:url("fonts/yh-english-playfair-italic-variable.woff2") format("woff2");font-style:italic;font-weight:400 900;font-display:swap}
:root {
  color-scheme: light;
  --bg:#fff; --text:#454852; --strong:#2e313a; --muted:#7a7e89; --line:#ececf1;
  --card-shadow:0 2px 3px rgba(38,45,68,.035),0 9px 23px -14px rgba(38,45,68,.28); --card-highlight:rgba(255,255,255,.95); --star-bg:#fff8e5; --star-line:#eddca5; --star-text:#826124;
  --subtle:#f7f8fb; --link:#557c9c; --surface:#fff; --chip:#eff4f8;
  --rose:#ad587f; --lavender:#7970a5; --blue:#527e9e; --mint:#4f8479; --gold:#997742;
  --rose-bg:#fcf0f5; --lavender-bg:#f3f0fb; --blue-bg:#edf4fa; --mint-bg:#edf7f2; --gold-bg:#faf4e9;
  font-family:"YH English",Georgia,"Microsoft YaHei",serif;
  font-synthesis:none;
  scroll-behavior:smooth; scroll-padding-top:94px;
}
:root[data-theme="dark"] {
  color-scheme:dark; --bg:#191c23; --text:#c9cbd4; --strong:#eef0f5; --muted:#a0a5b3; --line:#313440;
  --card-shadow:0 2px 3px rgba(0,0,0,.15),0 12px 24px -13px rgba(0,0,0,.65); --card-highlight:rgba(255,255,255,.055); --star-bg:#3c3320; --star-line:#675633; --star-text:#efd18e;
  --subtle:#20242e; --link:#9abbd7; --surface:#20242e; --chip:#293241;
  --rose:#e1a0bc; --lavender:#b7ace6; --blue:#a2c7e4; --mint:#98cbb8; --gold:#d7bb83;
  --rose-bg:#332831; --lavender-bg:#2b293c; --blue-bg:#26313f; --mint-bg:#23362f; --gold-bg:#393124;
}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-size:15px;line-height:1.75}
a{color:var(--link);text-decoration:none;text-underline-offset:4px}a:hover{text-decoration:underline}button,input{font:inherit}button{cursor:pointer}
button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--blue);outline-offset:4px;border-radius:3px}
img{display:block;max-width:100%}svg{display:block;flex-shrink:0;width:18px;height:18px}p,h1,h2,h3,h4,ul,figure{margin:0}
.tone-rose{--tone:var(--rose);--tone-bg:var(--rose-bg)}.tone-lavender{--tone:var(--lavender);--tone-bg:var(--lavender-bg)}.tone-blue{--tone:var(--blue);--tone-bg:var(--blue-bg)}.tone-mint{--tone:var(--mint);--tone-bg:var(--mint-bg)}.tone-gold{--tone:var(--gold);--tone-bg:var(--gold-bg)}
.brand-icon{display:inline-block;width:18px;height:18px;object-fit:contain;flex-shrink:0}.affiliation-icon{width:18px;height:18px;object-fit:contain;flex-shrink:0;background:#fff;border-radius:50%}.profile-links .brand-icon{width:16px;height:16px}.repo-link .brand-icon{width:15px;height:15px}.contact-icon .brand-icon{width:19px;height:19px}:root[data-theme="dark"] .brand-github{filter:invert(1)}.internship-org{display:flex;align-items:center;gap:14px;margin-top:15px}.lab-logo{width:52px;height:52px;object-fit:contain;background:white;border-radius:50%;flex-shrink:0}.internship-org h3{margin-top:0!important}.internship-org>div{min-width:0}
.skip-link{position:fixed;top:-100px;left:16px;padding:8px 14px;background:var(--bg);z-index:30;border:1px solid var(--line)}.skip-link:focus{top:10px}
.site-header{position:sticky;top:0;z-index:20;background:var(--bg);border-bottom:1px solid var(--line)}
.header-inner{max-width:1328px;padding:0 36px;min-height:68px;margin:auto;display:flex;align-items:center;gap:30px}
.home-link{display:inline-flex;gap:10px;align-items:center;color:var(--strong);font-size:16px;font-weight:750;letter-spacing:-.3px;white-space:nowrap}
.brand-dots{display:grid;grid-template-columns:repeat(2,5px);gap:3px;transform:rotate(-10deg)}.brand-dots i{width:5px;height:5px;border-radius:2px;background:var(--rose)}.brand-dots i:nth-child(2){background:var(--blue)}.brand-dots i:nth-child(3){background:var(--mint)}.brand-dots i:nth-child(4){background:var(--lavender)}
.header-inner nav{display:flex;align-items:center;gap:22px;min-width:0}.header-inner nav a{font-size:13px;font-weight:680;padding:22px 0 18px;border-bottom:3px solid transparent;white-space:nowrap;transition:color .15s,border-color .15s}
.nav-neutral{--nav:var(--text)}.nav-rose{--nav:var(--rose)}.nav-lavender{--nav:var(--lavender)}.nav-blue{--nav:var(--blue)}.nav-mint{--nav:var(--mint)}.nav-gold{--nav:var(--gold)}
.header-inner nav a{color:var(--nav)}.header-inner nav a:hover,.header-inner nav a[aria-current="location"]{text-decoration:none;border-bottom-color:var(--nav)}
.header-tools{margin-left:auto;display:flex;align-items:center;gap:16px}.theme-toggle{width:29px;height:29px;padding:5px;color:var(--muted);background:transparent;border:0;border-radius:50%}.theme-toggle:hover{background:var(--subtle)}.theme-toggle svg{width:19px;height:19px}.language-link{font-size:13px;font-weight:600;color:var(--text);white-space:nowrap}
.layout{display:grid;grid-template-columns:224px minmax(0,1fr);gap:55px;max-width:1248px;margin:auto;padding:40px 40px 0;align-items:start}
.profile{position:sticky;top:97px;max-height:calc(100vh - 112px);overflow-y:auto;scrollbar-width:thin;padding:0 3px 18px 0}.portrait{width:164px;height:164px;object-fit:cover;border-radius:50%;margin-bottom:21px;border:1px solid var(--line)}
.profile h1{font-size:25px;line-height:1.3;font-weight:700;letter-spacing:-.6px;color:var(--strong)}.role{margin-top:6px;font-size:13px;color:var(--muted)}.profile-focus{margin-top:17px;line-height:1.7;font-size:13px;max-width:212px}
.profile-links{display:grid;gap:10px;list-style:none;padding:0;margin-top:22px;font-size:13px}.profile-links li{min-width:0}.profile-links a,.pending-link,.wechat-details summary{display:flex;align-items:center;gap:9px;color:var(--text);line-height:1.6}.profile-links svg{width:16px;height:16px;color:var(--muted)}.profile-links a:hover{color:var(--link)}.pending-link{color:var(--muted)}.pending-link small{font-size:8px;padding:1px 5px;border-radius:4px;background:var(--subtle);border:1px solid var(--line);line-height:1.5;white-space:nowrap}
.wechat-details summary{cursor:pointer;list-style:none}.wechat-details summary::-webkit-details-marker{display:none}.wechat-details summary::after{content:'+';color:var(--muted);font-size:13px;margin-left:3px}.wechat-details[open] summary::after{content:'−'}.wechat-popover{padding:10px 0 3px 25px;display:flex;gap:7px;flex-wrap:wrap;align-items:center}.social-value{font-size:11px;overflow-wrap:anywhere}.copy-button{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:5px;padding:4px 7px;font-size:10px;line-height:1.6}.copy-button:hover{color:var(--link);border-color:var(--link)}.copy-button svg{width:12px;height:12px}
main{min-width:0}.section-kicker{font-size:10px;font-weight:650;letter-spacing:1.5px;color:var(--muted);margin-bottom:13px}.about p{margin-bottom:14px;line-height:1.85}.about strong{color:var(--strong);font-weight:650}.research-interests{display:flex;flex-wrap:wrap;gap:6px;margin-top:18px}.research-interests span{padding:3px 9px;font-size:10px;line-height:1.8;color:var(--link);background:var(--chip);border-radius:4px}
.section-block{margin-top:38px}.section-heading{display:flex;align-items:center;gap:10px;padding-bottom:11px;margin-bottom:22px;border-bottom:1px solid var(--line);position:relative}.section-heading::after{content:'';position:absolute;bottom:-1px;left:0;width:55px;height:2px;background:var(--tone);border-radius:2px}.section-icon{color:var(--tone);background:var(--tone-bg);width:28px;height:28px;display:grid;place-items:center;border-radius:8px}.section-icon svg{width:17px;height:17px}h2{font-size:23px;font-weight:700;color:var(--strong);letter-spacing:-.5px;line-height:1.3}.section-link{margin-left:auto;color:var(--muted);display:flex;align-items:center;gap:5px;font-size:10px}.section-link svg{width:12px;height:12px}
.news-list{list-style:none;padding:0;display:grid;gap:15px}.news-list li{display:grid;grid-template-columns:82px minmax(0,1fr);gap:15px;align-items:baseline;position:relative;padding-left:12px}.news-list li::before{content:'';position:absolute;left:0;top:9px;width:4px;height:4px;border-radius:50%;background:var(--tone)}.news-list time{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}.news-list p{font-size:13.5px;line-height:1.8}.news-highlight{color:var(--tone);font-weight:650}
.publication-empty{border:1px solid var(--line);border-radius:9px;padding:18px 22px;background:linear-gradient(115deg,var(--surface),var(--lavender-bg))}.publication-note{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:12px}.publication-note svg{width:16px;height:16px}.ongoing-research{margin-top:17px;padding-top:15px;border-top:1px solid var(--line)}.status{display:inline-flex;align-items:center;gap:5px;color:var(--mint);font-size:10px}.status::before{content:'';width:5px;height:5px;border-radius:50%;background:currentColor}.ongoing-research h3{display:inline;margin-left:12px;font-size:15px;font-weight:650;color:var(--strong)}.ongoing-research p{font-size:13px;margin-top:7px;line-height:1.7}
/* Compact project tiles: a clear title and a direct invitation to star. */
.project-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.project-card{position:relative;min-width:0;display:flex;flex-direction:column;gap:15px;padding:17px 18px 21px;border:1px solid var(--line);border-bottom-color:color-mix(in srgb,var(--tone) 22%,var(--line));border-radius:13px;background:linear-gradient(145deg,var(--surface) 15%,color-mix(in srgb,var(--tone-bg) 58%,var(--surface)));box-shadow:inset 0 1px 0 var(--card-highlight),0 3px 0 color-mix(in srgb,var(--tone) 10%,var(--line)),var(--card-shadow);transition:transform .18s,box-shadow .18s,border-color .18s}
.project-card:hover,.project-card:focus-within{transform:translateY(-3px);border-color:color-mix(in srgb,var(--tone) 45%,var(--line));box-shadow:inset 0 1px 0 var(--card-highlight),0 3px 0 color-mix(in srgb,var(--tone) 16%,var(--line)),0 15px 25px -15px color-mix(in srgb,var(--tone) 55%,transparent)}
.project-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.project-github{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:0 2px 3px rgba(30,40,65,.04)}
.project-github .brand-icon{width:19px;height:19px}
.project-card h3{font-size:20px;letter-spacing:-.4px;line-height:1.4;font-weight:700;overflow-wrap:anywhere}
.project-card h3 a{color:var(--tone)}
.star-button{min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:6px 12px;border:1px solid var(--star-line);border-radius:8px;background:var(--star-bg);color:var(--star-text);font-size:12px;font-weight:700;line-height:1.4;box-shadow:inset 0 1px 0 var(--card-highlight),0 2px 0 color-mix(in srgb,var(--star-line) 65%,transparent);white-space:nowrap;transition:transform .16s,box-shadow .16s}
.star-button svg{width:15px;height:15px;fill:currentColor;stroke-width:1.3}
.star-button:hover{text-decoration:none;box-shadow:inset 0 1px 0 var(--card-highlight),0 2px 0 var(--star-line),0 4px 10px -5px var(--gold)}
.star-button:active{transform:translateY(1px)}
.publication-empty,.contact-card{box-shadow:inset 0 1px 0 var(--card-highlight),var(--card-shadow)}
.internship-timeline{margin-left:6px;border-left:1px solid var(--line);padding-left:24px}.internship-entry{position:relative}.timeline-dot{position:absolute;top:8px;left:-29px;height:9px;width:9px;border-radius:50%;border:2px solid var(--bg);background:var(--mint);box-shadow:0 0 0 1px var(--mint)}.internship-meta{display:flex;gap:10px;align-items:center;justify-content:space-between}.role-pill{font-size:10px;padding:2px 8px;background:var(--mint-bg);color:var(--mint);border-radius:4px}.internship-meta time{font-size:11px;color:var(--muted)}.internship-entry h3{font-size:17px;line-height:1.5;margin-top:12px;font-weight:650}.internship-entry h3 a{color:var(--strong);display:inline-flex;gap:7px;align-items:center}.internship-entry h3 svg{width:13px;height:13px;color:var(--mint)}.internship-school{color:var(--muted);font-size:12px;margin-top:4px}.internship-entry>p:last-child{font-size:13px;margin-top:12px;line-height:1.8}.internship-placeholder{position:relative;display:flex;align-items:center;gap:18px;margin-top:24px;padding:17px 18px;border:1px dashed var(--line);border-radius:9px}.internship-placeholder .timeline-dot{left:-29px;top:23px;background:var(--bg);box-shadow:0 0 0 1px var(--line)}.placeholder-index{font-size:19px;color:var(--muted);opacity:.5;font-variant-numeric:tabular-nums}.placeholder-lines{flex:1;display:grid;gap:9px}.placeholder-lines span{display:block;background:var(--line);height:5px;max-width:170px;border-radius:3px}.placeholder-lines span:last-child{max-width:105px}.internship-placeholder small{font-size:9px;color:var(--muted)}
.education-card{display:grid;grid-template-columns:66px minmax(0,1fr) auto;gap:20px;align-items:center}.school-logo{width:66px;height:66px;background:white;border-radius:50%;padding:2px;overflow:hidden}.school-logo img{width:100%;height:100%;object-fit:contain}.education-card h3{font-size:17px;font-weight:650;line-height:1.5}.education-card h3 a{color:var(--strong)}.education-info p{font-size:12px;margin-top:5px;color:var(--muted)}.education-card time{font-size:11px;white-space:nowrap;color:var(--muted);align-self:start;padding-top:5px}.honors-heading{margin-top:29px;margin-bottom:10px;font-size:14px;font-weight:650;color:var(--strong)}.honors-list{list-style:none;padding:0}.honor-item{display:grid;grid-template-columns:30px minmax(0,1fr) 35px;gap:12px;align-items:start;padding:15px 0;border-bottom:1px solid var(--line)}.honor-item:last-child{border-bottom:0}.honor-symbol{width:28px;height:28px;display:grid;place-items:center;background:var(--tone-bg);color:var(--tone);border-radius:7px}.honor-symbol svg{width:15px;height:15px}.honor-item h4{font-size:13px;line-height:1.65;font-weight:550;color:var(--text)}.honor-item p{font-size:10px;margin-top:4px;color:var(--muted)}.honor-item time{font-size:11px;padding-top:2px;color:var(--muted);text-align:right}
.contact-intro h3{font-size:20px;line-height:1.4;color:var(--strong);font-weight:650;letter-spacing:-.3px}.contact-intro p{font-size:13px;margin-top:9px;line-height:1.8;max-width:650px}.contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:22px}.contact-card{display:flex;align-items:center;gap:11px;min-width:0;border:1px solid var(--line);border-radius:9px;padding:15px;background:var(--surface)}.contact-icon{display:grid;place-items:center;background:var(--tone-bg);color:var(--tone);width:32px;height:32px;border-radius:9px;flex-shrink:0}.contact-icon svg{width:17px;height:17px}.contact-card>div{min-width:0}.contact-label{display:block;font-size:9px;color:var(--muted);margin-bottom:2px}.contact-card a,.contact-value{font-size:11px;line-height:1.6;overflow-wrap:anywhere;color:var(--text)}.contact-card a{display:flex;align-items:center;gap:5px}.contact-card a svg{width:11px;height:11px;color:var(--tone)}.contact-card .copy-button{margin-left:auto;padding:4px 6px}.contact-card .copy-button span{display:none}
.site-footer{border-top:1px solid var(--line);padding:20px 0 28px;margin-top:43px;display:flex;gap:16px;justify-content:space-between;color:var(--muted);font-size:10px}.site-footer a{color:var(--muted)}.copy-status{position:fixed;z-index:50;left:50%;bottom:24px;transform:translate(-50%,12px);max-width:calc(100% - 36px);padding:10px 16px;background:var(--strong);color:var(--bg);border-radius:8px;font-size:12px;opacity:0;visibility:hidden;transition:opacity .16s,transform .16s;overflow-wrap:anywhere}.copy-status.visible{opacity:1;visibility:visible;transform:translate(-50%,0)}
@media(max-width:1100px){.header-inner{padding:0 28px;gap:21px}.header-inner nav{gap:16px}.header-inner nav a{font-size:12px}.layout{padding-left:28px;padding-right:28px;grid-template-columns:205px minmax(0,1fr);gap:34px}.profile h1{font-size:23px}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.education-card{gap:15px;grid-template-columns:60px minmax(0,1fr)}.school-logo{width:60px;height:60px}.education-card time{grid-column:2;margin-top:-10px;padding:0}.school-logo{grid-row:1/3}}
@media(max-width:940px){:root{scroll-padding-top:118px}.header-inner{display:grid;grid-template-columns:1fr auto;gap:0;padding:0 28px}.home-link{padding-top:13px;padding-bottom:9px}.header-tools{grid-column:2;grid-row:1}.header-inner nav{grid-column:1/-1;grid-row:2;justify-content:space-between;gap:18px;overflow-x:auto;scrollbar-width:none}.header-inner nav a{padding:1px 0 10px;font-size:12px}.profile{top:123px;max-height:calc(100vh - 135px)}}
@media(max-width:760px){.header-inner{padding-left:21px;padding-right:21px}.header-inner nav{gap:21px;justify-content:flex-start}.header-inner nav a{font-size:12px}.header-tools{gap:13px}.home-link{font-size:15px}.brand-dots{grid-template-columns:repeat(2,4px)}.brand-dots i{width:4px;height:4px}.layout{display:block;padding:27px 22px 0}.profile{position:static;max-height:none;overflow:visible;display:grid;grid-template-columns:92px minmax(0,1fr);gap:0 19px;padding:0 0 24px;border-bottom:1px solid var(--line);margin-bottom:26px}.portrait{width:92px;height:92px;margin:0;grid-column:1;grid-row:1}.identity{align-self:center}.profile h1{font-size:24px;letter-spacing:-.6px}.role{font-size:12px;margin-top:5px}.profile-focus{grid-column:1/-1;max-width:none;font-size:12px;line-height:1.75;margin-top:16px}.profile-links{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));font-size:12px;margin-top:14px;gap:10px 12px}.profile-links li:first-child{grid-column:1/-1}.profile-links svg{width:15px;height:15px}.pending-link small{font-size:7px;padding:1px 3px}.pending-link,.profile-links a,.wechat-details summary{gap:7px}.wechat-popover{padding-left:22px}.section-kicker{font-size:9px;margin-bottom:10px}body{font-size:14px}.about p{line-height:1.85}.research-interests{gap:5px;margin-top:15px}.research-interests span{font-size:9px;padding:3px 7px}.section-block{margin-top:32px}.section-heading{margin-bottom:20px;padding-bottom:10px;gap:8px}h2{font-size:22px}.section-icon{width:26px;height:26px}.section-icon svg{width:16px;height:16px}.news-list{gap:15px}.news-list li{grid-template-columns:68px minmax(0,1fr);gap:9px;padding-left:10px}.news-list time{font-size:10px;padding-top:2px}.news-list p{font-size:12px;line-height:1.85}.publication-empty{padding:16px}.publication-note{font-size:11px;align-items:flex-start}.publication-note svg{margin-top:2px}.ongoing-research h3{font-size:14px;margin-left:8px}.ongoing-research p{font-size:12px}.status{font-size:9px}.project-grid{gap:16px}.project-card{padding:16px 18px 20px}.project-card h3{font-size:20px}.star-button{min-height:44px}.section-link{font-size:9px}.internship-timeline{padding-left:20px;margin-left:5px}.timeline-dot{left:-25px}.internship-entry h3{font-size:16px}.internship-meta{flex-wrap:wrap;gap:7px}.internship-meta time{font-size:10px}.internship-school{font-size:11px}.internship-entry>p:last-child{font-size:12px}.internship-placeholder{padding:15px 13px}.internship-placeholder .timeline-dot{left:-25px}.education-card{grid-template-columns:54px minmax(0,1fr);gap:0 14px}.school-logo{width:54px;height:54px}.education-card h3{font-size:16px}.education-info p{font-size:11px;margin-top:4px}.education-card time{margin-top:6px;font-size:10px}.honors-heading{margin-top:24px}.honor-item{grid-template-columns:27px minmax(0,1fr) 29px;gap:9px}.honor-item h4{font-size:12px}.honor-item time{font-size:10px}.honor-item p{font-size:9px}.honor-symbol{width:25px;height:25px}.contact-intro h3{font-size:19px}.contact-intro p{font-size:12px}.contact-grid{grid-template-columns:1fr;gap:10px;margin-top:18px}.contact-card{padding:13px}.contact-card a,.contact-value{font-size:12px}.contact-card .copy-button span{display:inline}.site-footer{margin-top:33px;font-size:9px}}
@media(max-width:600px){.project-grid{grid-template-columns:1fr}.project-card{gap:12px}}
@media(max-width:360px){.header-inner{padding-left:18px;padding-right:18px}.header-inner nav{gap:18px}.layout{padding-left:18px;padding-right:18px}.profile{grid-template-columns:76px minmax(0,1fr);gap:0 13px}.portrait{width:76px;height:76px}.profile h1{font-size:21px}.profile-links{font-size:11px;grid-template-columns:1.2fr 1fr}.pending-link small{font-size:6px}.profile-links svg{width:13px;height:13px}.news-list li{grid-template-columns:60px minmax(0,1fr);gap:7px}.news-list p{font-size:11.5px}.news-list time{font-size:9px}.project-card{padding:16px}.project-card h3{font-size:18px}}
@media(prefers-reduced-motion:reduce){.project-card:hover,.project-card:focus-within,.star-button:active{transform:none}:root{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}
@media print{.site-header,.theme-toggle,.copy-button,.copy-status,.internship-placeholder,.site-footer a{display:none}.layout{display:block;padding:0}.profile{position:static;max-height:none}.project-card,.honor-item,.internship-entry{break-inside:avoid}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Editorial content stays neutral; the existing colorful navigation is unchanged. */
:root{--text:#353a43;--strong:#282e37;--muted:#737985}
:root[data-theme="dark"]{--text:#d2d6df;--strong:#f1f3f7;--muted:#a8afbd}
main{--link:var(--strong);--rose:var(--text);--lavender:var(--text);--blue:var(--text);--mint:var(--text);--gold:var(--text);--rose-bg:var(--subtle);--lavender-bg:var(--subtle);--blue-bg:var(--subtle);--mint-bg:var(--subtle);--gold-bg:var(--subtle)}
.section-heading::after{background:var(--line);height:1px;width:100%}
.section-icon{background:none;color:var(--text);border-radius:0;width:26px;height:28px}
.section-icon svg{width:23px;height:23px;stroke-width:1.7}
.news-list{gap:13px}.news-list li{grid-template-columns:75px minmax(0,1fr);gap:14px;padding-left:12px}
.news-list li::before{background:var(--muted);top:11px}.news-list time{font-style:italic;font-size:12px;color:var(--text);padding-top:1px}.news-list p{font-size:13.5px}.news-highlight{color:var(--strong);font-weight:650}.news-emoji{margin-right:6px;font-size:14px}.example-badge{display:inline-block;vertical-align:1px;margin-right:7px;border:1px solid var(--line);border-radius:4px;padding:1px 5px;font-size:9px;line-height:1.6;font-weight:500;letter-spacing:.1px;color:var(--muted);background:var(--surface)}
.publication-legend{font-size:11px;color:var(--muted);margin-top:-7px;margin-bottom:19px}
.publication-list{display:grid;gap:19px}.publication-card{display:grid;grid-template-columns:230px minmax(0,1fr);align-items:center;gap:23px;padding:20px;border:1px solid var(--line);border-radius:10px;background:var(--surface);box-shadow:0 2px 5px rgba(30,40,55,.035)}
.publication-card.is-example{background:var(--subtle)}.publication-info{min-width:0}.publication-info>.example-badge{margin-bottom:5px}.publication-info h3{font-size:15.5px;font-weight:680;line-height:1.55;color:var(--strong);letter-spacing:-.12px}
.publication-authors{font-size:12px;line-height:1.8;margin-top:7px}.publication-authors strong{font-weight:750;color:var(--strong)}.publication-authors sup{font-size:9px;line-height:0;margin-left:2px}.publication-venue{font-size:12px;line-height:1.75;margin-top:4px;color:var(--text)}.publication-venue span{white-space:nowrap}
.publication-figure{display:block;min-width:0;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:#fff;color:var(--text);box-shadow:0 2px 5px rgba(30,40,55,.05)}.publication-figure img{width:100%;height:auto;aspect-ratio:1.96;object-fit:contain;padding:5px}.publication-figure>span{display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:10px;padding:6px 9px;border-top:1px solid var(--line);background:var(--surface)}.publication-figure svg{width:12px;height:12px}
.publication-placeholder{min-height:126px;border:1px dashed var(--line);border-radius:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--surface);color:var(--muted);gap:8px}.publication-placeholder>span{font-size:25px;font-weight:650;letter-spacing:1.5px}.publication-placeholder>small{font-size:8px;letter-spacing:1.4px}.publication-links{display:flex;gap:10px;margin-top:11px}.publication-links a{display:inline-flex;gap:5px;align-items:center;border:1px solid var(--line);border-radius:5px;padding:3px 8px;font-size:10px}.publication-links svg{width:13px;height:13px}
.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.project-card{gap:11px;padding:17px 19px 18px;border-radius:10px;border-color:var(--line);background:var(--subtle);box-shadow:inset 0 1px 0 var(--card-highlight),0 2px 0 var(--line),0 7px 16px -13px rgba(30,40,55,.35)}.project-card:hover,.project-card:focus-within{transform:translateY(-2px);border-color:color-mix(in srgb,var(--text) 24%,var(--line));box-shadow:inset 0 1px 0 var(--card-highlight),0 2px 0 var(--line),0 10px 18px -14px rgba(30,40,55,.45)}
.project-top{align-items:flex-start;gap:12px}.project-card h3{font-size:16px;font-weight:680;line-height:1.5;letter-spacing:-.15px;margin-top:2px}.project-card h3 a{color:var(--strong)}.project-description{font-size:12px;line-height:1.8;color:var(--text)}.project-repository{display:flex;gap:7px;align-items:center;font-size:10px;line-height:1.7;color:var(--text);margin-top:auto}.project-repository>span{overflow-wrap:anywhere;min-width:0}.project-repository .brand-icon{width:16px;height:16px}
.star-button{color:var(--text);background:var(--surface);border-color:var(--line);padding:4px 9px;min-height:32px;font-size:10px;border-radius:6px;flex-shrink:0;box-shadow:0 1px 0 var(--line)}.star-button svg{width:13px;height:13px;fill:none;stroke-width:2}.star-button:hover{box-shadow:0 2px 4px rgba(30,40,55,.08)}
@media(max-width:1100px){.publication-card{grid-template-columns:190px minmax(0,1fr);gap:18px;padding:17px}.publication-info h3{font-size:15px}}
@media(max-width:940px){.publication-card{grid-template-columns:165px minmax(0,1fr);gap:16px}.project-grid{grid-template-columns:1fr}}
@media(max-width:760px){.publication-card{grid-template-columns:150px minmax(0,1fr)}.project-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.publication-legend{font-size:10px}.project-card h3{font-size:16px}.star-button{min-height:40px}.news-list li{grid-template-columns:65px minmax(0,1fr);gap:8px}.news-list time{font-size:11px}.news-list p{font-size:12px}}
@media(max-width:600px){.project-grid{grid-template-columns:1fr}.publication-card{grid-template-columns:1fr;padding:16px;gap:16px}.publication-figure{max-width:100%;width:100%}.publication-figure img{max-height:200px}.publication-placeholder{min-height:100px}.publication-info h3{font-size:15px}.publication-authors,.publication-venue{font-size:12px}.publication-links a{padding:5px 9px}.news-list li{display:block;padding-left:12px}.news-list time{display:block;margin-bottom:3px}.news-list p{font-size:12px}.news-list li::before{top:9px}.project-card h3{font-size:16px}.project-repository{font-size:10px}}
@media(prefers-reduced-motion:reduce){.project-card:hover,.project-card:focus-within{transform:none}}
@media print{.publication-card{break-inside:avoid}}

/* Original Microsoft Fluent Emoji Color artwork for section landmarks. */
.section-icon{width:32px;height:32px;background:none;flex-shrink:0}
.section-illustration{display:block;width:32px;height:32px;object-fit:contain;flex-shrink:0}
.honor-symbol{background:none;width:28px;height:28px}.honor-symbol .section-illustration{width:26px;height:26px}
@media(max-width:760px){.section-icon,.section-illustration{width:30px;height:30px}.honor-symbol .section-illustration{width:25px;height:25px}}

/* Compact raised cards in quiet grey tones. */
.project-card{--project-face:#fff;--project-base:#eef0f3;--project-edge:#d3d7df;--project-border:#dfe3e9;--project-glint:rgba(255,255,255,.98);--project-shadow:rgba(36,45,60,.24);border-color:var(--project-border);border-bottom-color:var(--project-edge);background:linear-gradient(145deg,var(--project-face) 4%,var(--project-base) 100%);box-shadow:inset 0 1px 0 var(--project-glint),inset 0 -1px 0 rgba(255,255,255,.25),0 3px 0 -1px var(--project-edge),0 7px 10px -7px var(--project-shadow),0 15px 23px -18px var(--project-shadow);transition:transform .18s,box-shadow .18s,border-color .18s}
.project-card:nth-child(3n+2){--project-face:#fffefa;--project-base:#f0efec;--project-edge:#d9d6d0;--project-border:#e4e1dc}
.project-card:nth-child(3n){--project-face:#fefeff;--project-base:#efedf2;--project-edge:#d8d4df;--project-border:#e3e0e8}
.project-card::before{content:'';position:absolute;top:1px;left:16px;right:16px;height:1px;pointer-events:none;background:linear-gradient(90deg,transparent,var(--project-glint),transparent)}
.project-card:hover,.project-card:focus-within{transform:translateY(-2px);border-color:var(--project-edge);box-shadow:inset 0 1px 0 var(--project-glint),inset 0 -1px 0 rgba(255,255,255,.2),0 4px 0 -1px var(--project-edge),0 9px 13px -8px var(--project-shadow),0 18px 27px -17px var(--project-shadow)}
.project-card .star-button{box-shadow:inset 0 1px 0 var(--project-glint),0 2px 0 color-mix(in srgb,var(--project-edge) 70%,var(--surface))}
:root[data-theme="dark"] .project-card{--project-face:#333a45;--project-base:#252b34;--project-edge:#141921;--project-border:#414956;--project-glint:rgba(255,255,255,.1);--project-shadow:rgba(0,0,0,.6);box-shadow:inset 0 1px 0 var(--project-glint),inset 0 -1px 0 rgba(0,0,0,.12),0 3px 0 -1px var(--project-edge),0 7px 10px -7px var(--project-shadow),0 15px 23px -18px var(--project-shadow)}
:root[data-theme="dark"] .project-card:nth-child(3n+2){--project-face:#383936;--project-base:#2a2b29;--project-border:#494a45}
:root[data-theme="dark"] .project-card:nth-child(3n){--project-face:#383540;--project-base:#2a2731;--project-border:#48434f}
:root[data-theme="dark"] .project-card:hover,:root[data-theme="dark"] .project-card:focus-within{border-color:color-mix(in srgb,var(--project-border) 78%,#aeb5c3);box-shadow:inset 0 1px 0 var(--project-glint),inset 0 -1px 0 rgba(0,0,0,.12),0 4px 0 -1px var(--project-edge),0 9px 13px -8px var(--project-shadow),0 18px 27px -17px var(--project-shadow)}

/* Softly colored timeline; every article owns its connector to the next one. */
.internship-timeline{--timeline-gutter:24px;--timeline-gap:22px;display:grid;gap:var(--timeline-gap);margin-left:6px;padding-left:var(--timeline-gutter);border-left:0}
.internship-entry{--timeline-accent:#658c80;--timeline-surface:#f3f7f5;--timeline-line:#d7e4dd;--timeline-pill:#edf4f0;position:relative;min-width:0;padding:17px 18px 18px;border:1px solid var(--timeline-line);border-radius:10px;background:linear-gradient(115deg,var(--surface) 8%,var(--timeline-surface));box-shadow:inset 3px 0 0 color-mix(in srgb,var(--timeline-accent) 20%,var(--surface)),0 3px 9px -7px rgba(40,50,65,.2)}
.internship-entry[data-tone="slate"]{--timeline-accent:#7c8da5;--timeline-surface:#f4f6f9;--timeline-line:#dce2ea;--timeline-pill:#edf1f6}
.internship-entry[data-tone="lavender"]{--timeline-accent:#9483aa;--timeline-surface:#f7f4f9;--timeline-line:#e4ddea;--timeline-pill:#f0ebf5}
.internship-entry::before{content:'';position:absolute;left:calc(-1 * var(--timeline-gutter));top:27px;width:1px;height:calc(100% + var(--timeline-gap));background:linear-gradient(var(--timeline-accent),var(--timeline-line));opacity:.65;pointer-events:none}
.internship-entry:last-child::before{display:none}
.internship-entry>.timeline-dot{top:22px;left:calc(-1 * var(--timeline-gutter) - 5px);width:11px;height:11px;background:var(--timeline-accent);border:2px solid var(--bg);box-shadow:0 0 0 1px var(--timeline-line)}
.internship-entry .internship-meta{flex-wrap:wrap;gap:8px 12px}
.internship-entry .role-pill{color:var(--text);background:var(--timeline-pill);border:1px solid var(--timeline-line)}
.internship-entry h3,.internship-entry>p{overflow-wrap:anywhere}
.internship-entry h3 svg{color:var(--timeline-accent)}
.internship-entry.is-example{border-style:dashed}
.internship-entry .example-badge{margin-right:0;border-color:var(--timeline-line);color:var(--text);background:var(--surface)}
:root[data-theme="dark"] .internship-entry{--timeline-accent:#9abdab;--timeline-surface:#242e29;--timeline-line:#3e5147;--timeline-pill:#2b3a32;box-shadow:inset 3px 0 0 color-mix(in srgb,var(--timeline-accent) 18%,var(--surface)),0 3px 9px -7px rgba(0,0,0,.5)}
:root[data-theme="dark"] .internship-entry[data-tone="slate"]{--timeline-accent:#a7b7ce;--timeline-surface:#272e38;--timeline-line:#445266;--timeline-pill:#303b4b}
:root[data-theme="dark"] .internship-entry[data-tone="lavender"]{--timeline-accent:#bdadcf;--timeline-surface:#2e2935;--timeline-line:#53465f;--timeline-pill:#3a3044}
@media(max-width:760px){.internship-timeline{--timeline-gutter:20px;--timeline-gap:20px;margin-left:5px}.internship-entry{padding:15px 16px 16px}.internship-entry>.timeline-dot{top:21px}.internship-entry::before{top:26px}}
@media(prefers-reduced-motion:reduce){.project-card:hover,.project-card:focus-within{transform:none;transition:none}}
@media print{.project-card,.internship-entry{box-shadow:none}.project-card:hover,.project-card:focus-within{transform:none}}

/* E6 across English text; C3 is loaded separately for Chinese content. */
body{font-size:16px}
.profile-focus,.profile-links{font-size:14px}
.news-list p{font-size:14.5px}
.publication-info h3{font-size:16px;line-height:1.55}
.publication-authors,.publication-venue{font-size:13px}
.project-description,.contact-intro p{font-size:13.5px}
@media(max-width:760px){body{font-size:15px}.profile-focus,.profile-links{font-size:12px}.news-list p{font-size:13px}.publication-info h3{font-size:15px}.project-description,.contact-intro p{font-size:13px}}

/* A short invitation, a direct email link, and personal interests. */
.contact-intro>p{font-size:15px;line-height:1.9;max-width:740px;margin:0}
.about a.about-link{color:var(--strong);font-weight:650;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--strong) 28%,transparent);text-decoration-thickness:1px;text-underline-offset:4px}
.about a.about-link:hover{text-decoration-color:currentColor}
.contact-email{display:inline-flex;align-items:center;gap:9px;max-width:100%;margin-top:16px;font-size:14px;line-height:1.8;color:var(--text)}
.contact-email .section-illustration{width:25px;height:25px}
.contact-email>span{min-width:0;overflow-wrap:anywhere;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:5px}
.contact-email:hover{text-decoration:none;color:var(--strong)}.contact-email:hover>span{text-decoration-color:currentColor}
.personal-interests{display:flex;align-items:center;flex-wrap:wrap;gap:12px 25px;margin-top:27px;padding-top:18px;border-top:1px solid var(--line)}
.interests-label{font-size:12px;color:var(--muted)}
.personal-interests ul{display:flex;align-items:center;flex-wrap:wrap;gap:14px 26px;padding:0;list-style:none}
.personal-interests li{display:inline-flex;align-items:center;gap:8px;font-size:14px;line-height:1.7}
.personal-interests .section-illustration{width:29px;height:29px}
@media(max-width:760px){.contact-intro>p{font-size:14px}.contact-email{font-size:13px;gap:8px}.personal-interests{gap:10px 19px;margin-top:24px;padding-top:16px}.personal-interests ul{gap:15px}.personal-interests li{font-size:13px}.personal-interests .section-illustration{width:27px;height:27px}}
