:root{--paper:#f8f9f5;--ink:#182f3b;--muted:#536570;--accent:#15695d;--line:#d9e1dc;--wash:#e8efea;--white:#fff;scroll-behavior:smooth}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,"Segoe UI",Arial,sans-serif;font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}a:focus-visible{outline:3px solid var(--accent);outline-offset:5px}::selection{background:#cde4da}img{max-width:100%;display:block}.wrap{max-width:1160px;width:calc(100% - 96px);margin:auto}.header{display:flex;align-items:center;justify-content:space-between;padding:24px 0;border-bottom:1px solid var(--line)}.brand{font-size:29px;font-weight:800;letter-spacing:-2px}.brand span{color:var(--accent)}nav{display:flex;gap:32px;font-size:14px;font-weight:600}.skip{position:absolute;left:16px;top:-100px;background:var(--ink);color:white;padding:10px 20px;z-index:10}.skip:focus{top:12px;color:white}
.hero{display:grid;grid-template-columns:1fr 290px;gap:90px;align-items:center;padding:78px 0 88px}.eyebrow{font-size:11px;letter-spacing:.18em;font-weight:700;color:var(--accent);margin:0 0 22px}h1{font-size:64px;line-height:1.1;letter-spacing:-3px;margin:0 0 16px;font-weight:650}.name-cn{font-size:22px;font-weight:400;letter-spacing:.1em;margin-left:20px;color:var(--muted)}.role{font-size:14px;color:var(--muted);margin:0}.role span{margin:0 8px;color:#81948b}.lead{font-family:Georgia,"Times New Roman",serif;font-size:36px;line-height:1.25;letter-spacing:-.7px;margin:30px 0 20px}.lead em{color:var(--accent);font-weight:400}.bio{color:var(--muted);font-size:16px;max-width:630px}.social{display:flex;flex-wrap:wrap;gap:18px;align-items:center;font-size:12px;font-weight:650;margin-top:28px}.primary{padding:11px 17px;background:var(--ink);color:white;border-radius:4px}.primary:hover{background:var(--accent);color:white}.portrait{margin:0;position:relative}.portrait:before{content:"";position:absolute;inset:-14px 14px 52px -14px;border:1px solid #b6ccc0;z-index:-1}.portrait img{width:290px;height:340px;object-fit:cover;object-position:center;border-radius:3px}.portrait figcaption{font-size:12px;margin-top:20px;font-weight:600}.portrait figcaption>span:last-child{display:block;margin-left:18px;color:var(--muted);font-size:11px;font-weight:400}.dot{display:inline-block;width:6px;height:6px;background:var(--accent);border-radius:50%;margin-right:8px;vertical-align:middle}
.section{border-top:1px solid var(--line);padding:60px 0;scroll-margin-top:24px}h2{font-family:Georgia,"Times New Roman",serif;font-size:36px;line-height:1.25;letter-spacing:-.8px;font-weight:400;margin:0}.research{display:grid;grid-template-columns:1fr 1.4fr;gap:70px}.interests{display:grid;grid-template-columns:1fr 1fr;gap:28px 35px}.interests>div>span{font-family:Georgia,serif;color:var(--accent);font-size:13px}.interests h3{font-size:15px;line-height:1.4;margin:6px 0}.interests p{font-size:13px;color:var(--muted);margin:0}.pub-heading{display:flex;align-items:end;justify-content:space-between;gap:24px}.text-link{font-size:13px;color:var(--accent);border-bottom:1px solid #9cbdb0}.section-note{font-size:13px;color:var(--muted);margin:18px 0 38px}.year-group{display:grid;grid-template-columns:125px 1fr;gap:28px}.year{font:28px Georgia,serif;color:var(--muted);margin:18px 0}.paper{padding:24px 0 27px;border-top:1px solid var(--line)}.paper-meta{display:flex;align-items:center;gap:12px;font-size:11px;color:var(--muted);flex-wrap:wrap}.badge{display:inline-block;padding:3px 9px;background:var(--wash);color:var(--accent);font-size:10px;letter-spacing:.06em;font-weight:750;border-radius:3px}.preprint{background:#f1eadd;color:#755223}.paper h4{font-size:21px;line-height:1.4;font-weight:600;letter-spacing:-.3px;margin:12px 0 8px;max-width:820px}.paper h4 a:hover{text-decoration:underline;text-underline-offset:4px}.authors{font-size:13px;color:var(--muted);margin:0}.authors strong{color:var(--ink);font-weight:650}.summary{font-size:14px;color:var(--muted);margin:12px 0}.paper-links{display:flex;gap:20px;font-size:12px;font-weight:700;color:var(--accent)}.paper-links a{padding:3px 0}.paper-links a:hover{text-decoration:underline}.contact{display:flex;align-items:center;justify-content:space-between;gap:30px}.contact h2{font-size:32px}.contact p:not(.eyebrow){font-size:14px;color:var(--muted)}.contact>a{font-size:17px;border-bottom:1px solid #98b3a7;overflow-wrap:anywhere}.footer{padding:24px 0 32px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;font-size:11px;color:var(--muted)}
@media(min-width:1500px){.hero{padding-top:100px;padding-bottom:100px}}
@media(max-width:1000px){.wrap{width:calc(100% - 64px)}.hero{gap:40px;grid-template-columns:1fr 240px}.portrait img{width:240px;height:300px}h1{font-size:54px}.lead{font-size:32px}.research{gap:35px;grid-template-columns:1fr 1.5fr}.social{gap:14px}h2{font-size:30px}.contact{align-items:start;flex-direction:column;gap:12px}}
@media(max-width:700px){.wrap{width:calc(100% - 40px)}.header{padding:18px 0}nav{gap:16px;font-size:12px}.brand{font-size:25px}.hero{grid-template-columns:1fr;gap:38px;padding:44px 0 48px}.eyebrow{font-size:10px;margin-bottom:18px}h1{font-size:52px}.name-cn{font-size:20px}.lead{font-size:32px}.bio{font-size:15px}.portrait{width:200px;margin-left:14px}.portrait img{width:200px;height:230px}.research{grid-template-columns:1fr;gap:28px}.interests{gap:25px}.section{padding:40px 0}.pub-heading{align-items:start;flex-direction:column;gap:20px}.year-group{grid-template-columns:1fr;gap:0}.year{font-size:25px;margin:18px 0}.paper h4{font-size:19px}.paper{padding:22px 0}.footer{flex-wrap:wrap;gap:10px 24px}.footer>span:nth-child(2){order:3;width:100%}.footer>a{margin-left:auto}.contact h2{font-size:30px}}
@media(max-width:360px){nav{gap:10px;font-size:11px}.interests{grid-template-columns:1fr}.name-cn{margin-left:12px}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}}
@media print{body{background:white}.header,.social,.contact,.footer>a{display:none}.wrap{width:100%;max-width:none}.hero{padding:20px 0;grid-template-columns:1fr 150px}.portrait img{width:150px;height:180px}.section{padding:20px 0}.paper{break-inside:avoid}.year-group{grid-template-columns:70px 1fr}.lead{font-size:26px}}

/* Academic experience */
.experience{display:grid;grid-template-columns:1fr 1.4fr;gap:70px}
.timeline{list-style:none;margin:0;padding:0 0 0 23px;border-left:1px solid var(--line)}
.timeline li{position:relative;padding:0 0 32px}
.timeline li:last-child{padding-bottom:0}
.timeline li:before{content:"";position:absolute;left:-28px;top:9px;width:9px;height:9px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 5px var(--paper)}
.timeline h3{font-size:19px;line-height:1.4;font-weight:600;margin:8px 0}
.timeline p{font-size:14px;color:var(--muted);margin:4px 0}
.timeline .experience-date{font-size:12px;color:var(--accent);display:flex;align-items:center;flex-wrap:wrap;gap:5px}
.experience-date .badge{margin-left:8px}
.timeline .experience-role{color:var(--ink)}
@media(max-width:1000px){.experience{gap:35px;grid-template-columns:1fr 1.5fr}}
@media(max-width:700px){.experience{grid-template-columns:1fr;gap:16px}.header{flex-wrap:wrap;gap:10px}nav{flex-wrap:wrap;gap:12px}.timeline h3{font-size:18px}}
