:root{--primary-blue:#1e40af;--accent-blue:#3b82f6;--text-primary:#1f2937;--text-secondary:#6b7280;--border-light:#e5e7eb;--bg-light:#f9fafb}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;padding-top:64px;background:#fafafa;color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif;font-size:15px;line-height:1.7}a{color:var(--primary-blue);text-decoration:none}a:hover{text-decoration:underline}a:focus-visible,button:focus-visible{outline:3px solid #93c5fd;outline-offset:4px}p{margin:0 0 12px}p:last-child{margin-bottom:0}.navbar{position:fixed;top:0;left:0;right:0;background:#fff;z-index:10;box-shadow:0 1px 3px #0000000d}.navbar-content{max-width:1280px;margin:auto;padding:10px 32px;min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{font:700 26px 'Crimson Pro',Georgia,serif;color:var(--text-primary);white-space:nowrap}.brand span{font:400 14px Inter,sans-serif;color:var(--text-secondary);margin-left:12px}nav{display:flex;gap:28px}nav a{color:var(--text-secondary);font-size:14px;font-weight:500}nav a:hover{color:var(--primary-blue)}main{max-width:1152px;margin:auto;padding:24px 16px;display:grid;gap:16px}.card{background:white;border-radius:8px;border:1px solid var(--border-light);box-shadow:0 1px 3px #00000014;padding:24px;min-width:0}h1,h2{font-family:'Crimson Pro',Georgia,'Songti SC',serif}h1{font-size:36px;line-height:1.2;margin:0 0 4px}h1 span{font-size:.85em}h2{color:var(--primary-blue);font-size:23px;line-height:1.3;margin:0;font-weight:700}.section-divider{width:50px;height:3px;background:var(--primary-blue);margin:8px 0 16px;border-radius:2px}.profile{display:flex;gap:26px;align-items:flex-start}.portrait{display:block;width:230px;height:auto;border:3px solid white;border-radius:16px;box-shadow:0 2px 8px #0000001a}.profile-main{flex:1;min-width:0}.profile-main p{color:var(--text-secondary);font-size:14px;margin-bottom:9px}.profile-main .location{font-size:12px;margin-top:12px}.email{display:inline-block;border:1px solid var(--border-light);border-radius:7px;padding:5px 10px;font-size:13px}.profile-side{display:flex;align-items:center;flex-direction:column;gap:20px;padding-top:6px}.profile-side img{object-fit:contain;max-width:130px;display:block}.profile-side .nju-logo{width:60px;height:72px}#biography p,#research p{color:#4b5563}.research-tag,.badge{display:inline-block;padding:4px 10px;border-radius:4px;font-size:12px;font-weight:600;background:#eff6ff;color:var(--primary-blue)}.publication-item{display:grid;grid-template-columns:40px 116px minmax(0,1fr);gap:16px;padding:18px 0;border-bottom:1px solid var(--border-light)}.publication-item:last-child{border-bottom:0;padding-bottom:0}.pub-number{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:8px;background:var(--primary-blue);color:#fff;font-size:13px;font-weight:700}.pub-content h3{font-size:15px;line-height:1.55;color:var(--primary-blue);margin:0 0 5px}.pub-content p{font-size:13px;color:var(--text-secondary);margin-bottom:5px}.pub-content b{color:var(--text-primary)}.pub-content u{text-decoration:none;color:var(--primary-blue)}.venue{font-style:italic}.paper-links{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;font-weight:600;margin-top:8px}.publication-note{background:#eff6ff;border-left:3px solid #93c5fd;padding:8px 12px;margin-top:8px}ul{padding-left:22px;margin:0}li{padding-left:3px;margin-bottom:12px;color:#4b5563}li::marker{color:var(--primary-blue)}li:last-child{margin-bottom:0}#awards ul{columns:2;column-gap:40px}#awards li{break-inside:avoid;font-size:14px}#contact h3{font-size:14px;margin:18px 0 6px;color:var(--primary-blue)}#contact p{font-size:14px;color:var(--text-secondary)}footer{text-align:center;font-size:12px;color:var(--text-secondary);padding:8px 16px 28px}.menu-toggle{display:none;background:white;border:1px solid var(--border-light);border-radius:6px;font-size:23px;color:var(--primary-blue);cursor:pointer}.skip-link{position:fixed;top:-80px;background:white;padding:8px;z-index:20}.skip-link:focus{top:4px}@media(max-width:960px){.brand span{display:none}nav{gap:20px}.profile{gap:20px}.portrait{width:190px}}@media(max-width:700px){body{padding-top:60px}.navbar-content{padding:10px 18px;min-height:60px}.menu-toggle{display:block}nav{display:none;position:absolute;top:60px;left:0;right:0;background:white;box-shadow:0 4px 8px #00000010;padding:16px 24px;flex-direction:column;gap:0}nav.open{display:flex}nav a{padding:10px 0}main{padding:16px 12px;gap:14px}.card{padding:20px}.profile{display:grid;grid-template-columns:110px minmax(0,1fr);gap:16px}.portrait{width:140px}.profile-main h1{font-size:28px}.profile-main p{font-size:12px}.email{font-size:11px;padding:5px}.profile-main .location{font-size:11px}.profile-side{grid-column:1/-1;flex-direction:row;justify-content:center;border-top:1px solid var(--border-light);padding-top:16px;gap:30px}.profile-side img{max-width:105px}.profile-side .nju-logo{width:38px;height:46px}.publication-item{grid-template-columns:36px minmax(0,1fr);gap:10px;padding:18px 0}.pub-content{grid-column:1/-1}.pub-content h3{font-size:14px}.pub-content p{font-size:12px}#awards ul{columns:1}h2{font-size:22px}.card p{overflow-wrap:anywhere}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Publication groups, matching the reference homepage. */
.publication-group-title{font-family:"Crimson Pro",Georgia,serif;font-size:19px;font-weight:600;color:var(--text-secondary);margin:4px 0 8px}.published-heading{margin-top:28px;padding-top:20px;border-top:1px solid var(--border-light)}.badge-preprint{background:#f3f4f6;color:#4b5563}

/* Larger profile text and institutional logos. */
.profile-main h1{font-size:42px}
.profile-main p{font-size:16px}
.profile-main .location{font-size:14px}
.profile-main .email{font-size:15px;padding:6px 12px}
.profile-side{flex-shrink:0}
.profile-side img{width:160px;max-width:160px;height:auto}
.profile-side .nju-logo{width:84px;height:101px}
@media(max-width:960px) and (min-width:701px){
 .profile{flex-wrap:wrap}
 .profile-main{flex-basis:calc(100% - 210px)}
 .profile-side{width:100%;flex-direction:row;justify-content:center}
}
@media(max-width:700px){
 .profile{grid-template-columns:1fr}
 .portrait-link{justify-self:center}
 .profile-main h1{font-size:34px}
 .profile-main p{font-size:15px}
 .profile-main .location{font-size:13px}
 .profile-main .email{font-size:14px}
 .profile-side img{width:140px;max-width:140px}
 .profile-side .nju-logo{width:60px;height:72px}
}
