@charset "UTF-8";
:root{--paper:#f8f9f6;--ink:#1d302b;--muted:#62716a;--accent:#267665;--line:#dce3dc;--soft:#eaf0e9;--white:#fff;--serif:Georgia,"Times New Roman",serif;--sans:"Segoe UI",Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:105px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.7;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid var(--accent);outline-offset:5px}::selection{background:#cde7db}button{cursor:pointer}img{max-width:100%}.shell{max-width:1090px;margin:auto;padding:0 42px}.skip-link{position:fixed;left:15px;top:-100px;z-index:100;background:var(--ink);color:white;padding:10px 20px}.skip-link:focus{top:10px}
.site-header{position:sticky;top:0;z-index:20;background:rgba(248,249,246,.94);backdrop-filter:blur(18px)}.nav-wrap{height:86px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.wordmark{display:flex;align-items:center;gap:13px;font-weight:600;font-size:14px;letter-spacing:.02em}.monogram{font-family:var(--serif);font-size:22px;letter-spacing:-2px;border:1px solid #b4c8bb;width:40px;height:40px;display:grid;place-items:center;border-radius:50%;padding-right:2px}.nav-links{display:flex;gap:30px;align-items:center;font-size:13px}.nav-links a{transition:color .2s}.nav-links a:hover{color:var(--accent)}.nav-cv{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:6px;padding:6px 13px}.arrow{display:inline-block;transition:transform .2s}.nav-cv:hover .arrow,.text-link:hover .arrow{transform:translate(2px,-2px)}
.hero{position:relative;display:grid;grid-template-columns:252px 1fr;gap:82px;align-items:center;padding:77px 0 64px}.hero-copy{grid-column:2}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.17em;font-weight:650;display:flex;align-items:center;gap:9px;color:var(--accent)}.status-dot{height:6px;width:6px;background:var(--accent);border-radius:50%}h1{font-family:var(--serif);font-size:65px;font-weight:400;line-height:1.08;letter-spacing:-2.4px;margin:20px 0 10px}.chinese-name{font-size:17px;color:var(--muted);letter-spacing:.25em;font-weight:400}.hero-focus{font-size:22px;line-height:1.55;font-weight:450;letter-spacing:-.45px;margin:27px 0 17px;max-width:590px}.hero-bio{font-size:14px;line-height:1.85;color:var(--muted);max-width:560px;margin-bottom:25px}.inline-link{color:var(--accent);text-decoration:underline;text-decoration-color:#a7c6b6;text-underline-offset:3px}.socials{display:flex;align-items:center;flex-wrap:wrap;gap:18px;font-size:12px}.socials a{padding:3px 0}.socials a:hover{color:var(--accent)}.socials .email{display:flex;align-items:center;gap:7px}.socials svg{width:15px;height:15px}.portrait-wrap{grid-column:1;grid-row:1;position:relative;margin:24px 0 0;align-self:start}.portrait-frame{position:relative;isolation:isolate;padding:11px;background:#e5ece3;border-radius:30px 92px 30px 92px}.portrait-frame:before{content:"";position:absolute;inset:18px 18px -18px -18px;border:1px solid #bfd0bf;border-radius:25px 82px 25px 82px;z-index:-1}.portrait-frame img{display:block;width:228px;height:272px;object-fit:cover;object-position:center;border-radius:21px 82px 21px 82px;filter:saturate(.84)}.portrait-note{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:31px;text-align:center}.topics{display:flex;flex-wrap:wrap;gap:12px 28px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:16px 0;color:var(--muted);font-size:11px;letter-spacing:.025em}.topics span:before{content:"+";color:var(--accent);margin-right:8px;font-weight:700}
section{scroll-margin-top:105px}.research{padding-top:61px}.section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:28px}.section-kicker{font-size:10px;letter-spacing:.15em;color:var(--accent);text-transform:uppercase;margin:0 0 9px;font-weight:650}.section-head h2,.experience h2,.contact h2{font-family:var(--serif);font-size:35px;font-weight:400;letter-spacing:-.9px;line-height:1.2;margin:0}.section-note{font-size:11px;color:var(--muted);margin:0 0 4px}.filter-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.filters{display:flex;gap:7px;flex-wrap:wrap}.filter{border:1px solid transparent;background:transparent;color:var(--muted);border-radius:5px;padding:6px 13px;font-size:12px;transition:background .2s,color .2s}.filter:hover{background:var(--soft)}.filter[aria-pressed="true"]{background:var(--ink);color:var(--white)}.result-count{font-size:10px;color:var(--muted);white-space:nowrap}.paper{display:grid;grid-template-columns:268px 1fr;gap:31px;border-bottom:1px solid var(--line);padding:28px 0;align-items:center}.paper[hidden]{display:none}.teaser-button{border:1px solid #e3e6e1;border-radius:8px;background:#fff;padding:14px;position:relative;width:100%;height:174px;display:flex;align-items:center;justify-content:center;overflow:hidden;transition:border-color .2s,box-shadow .2s}.teaser-button:hover{border-color:#a9c3b3;box-shadow:0 4px 20px #243b2810}.teaser-button img{width:100%;height:100%;object-fit:contain;transition:transform .3s}.teaser-button:hover img{transform:scale(1.03)}.zoom-mark{position:absolute;bottom:7px;right:8px;font-size:14px;color:var(--accent);opacity:0;transition:opacity .2s;background:white;width:22px;height:22px;border-radius:4px}.teaser-button:hover .zoom-mark,.teaser-button:focus-visible .zoom-mark{opacity:1}.paper-meta{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:10px;letter-spacing:.05em;color:var(--muted);margin-bottom:8px}.venue{font-weight:650;color:var(--accent);text-transform:uppercase}.distinction{font-size:9px;padding:1px 7px;border-radius:3px;background:#e5eee0;color:#426139;font-weight:650}.meta-dot{width:2px;height:2px;border-radius:50%;background:#a4afa6}.paper h3{font-size:17px;line-height:1.45;font-weight:600;letter-spacing:-.2px;margin:0 0 9px}.paper h3 a:hover{color:var(--accent)}.paper-authors{font-size:11px;line-height:1.8;color:var(--muted);margin:0 0 11px}.paper-authors strong{color:var(--ink);font-weight:650}.paper-links{display:flex;gap:17px;font-size:10px}.paper-links a{color:var(--accent);font-weight:600}.paper-links a:hover{text-decoration:underline;text-underline-offset:3px}.equal-note{font-size:11px;color:var(--muted);margin:17px 0 0}.experience{padding:70px 0 65px;display:grid;grid-template-columns:1.2fr 1fr;gap:80px}.experience h2{font-size:30px;margin-bottom:25px}.timeline{list-style:none;padding:0;margin:0}.timeline li{display:grid;grid-template-columns:10px 1fr;gap:15px;position:relative;padding:0 0 22px}.timeline li:before{content:"";width:6px;height:6px;border:1px solid #8ba894;border-radius:50%;background:var(--paper);margin-top:9px;z-index:1}.timeline li:after{content:"";width:1px;background:var(--line);position:absolute;left:3px;top:19px;bottom:-1px}.timeline li:last-child:after{display:none}.timeline li.current:before{background:var(--accent);border-color:var(--accent)}.job-heading{display:flex;justify-content:space-between;gap:12px;align-items:baseline}.job-heading h3{font-size:14px;margin:0;font-weight:600}.job-date{font-size:10px;color:var(--muted);white-space:nowrap}.job-description{font-size:11px;color:var(--muted);margin:2px 0 0}.education-item{margin-bottom:22px}.education-item h3{font-size:14px;font-weight:600;margin:0 0 4px}.education-item p{font-size:12px;color:var(--muted);margin:3px 0}.education-item .dates{font-size:10px;letter-spacing:.04em;color:#7f8b82}.service,.honors{font-size:12px;color:var(--muted);border-top:1px solid var(--line);padding-top:21px;margin-top:22px}.service h3,.honors h3{font-size:14px;color:var(--ink);font-weight:600;margin:0 0 8px}.service p,.honors p{margin:0;line-height:1.8}.honors p+p{margin-top:12px}.honors strong{color:var(--ink);font-weight:600}.contact{border-top:1px solid var(--line);padding:42px 0 45px;display:flex;align-items:center;justify-content:space-between;gap:25px}.contact h2{font-size:31px}.contact p{font-size:12px;color:var(--muted);margin:10px 0 0}.contact-link{border-bottom:1px solid var(--accent);padding-bottom:5px;color:var(--accent);font-size:15px;white-space:nowrap}.footer{border-top:1px solid var(--line);padding:20px 0 26px;display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}
.teaser-dialog{border:0;border-radius:12px;padding:0;width:min(1000px,90vw);max-height:88vh;background:white;box-shadow:0 30px 120px #102a2540;color:var(--ink)}.teaser-dialog::backdrop{background:#102620aa;backdrop-filter:blur(5px)}.dialog-header{display:flex;align-items:center;justify-content:space-between;gap:25px;padding:19px 23px;border-bottom:1px solid var(--line)}.dialog-header h2{font-size:15px;line-height:1.5;margin:0;font-weight:600}.dialog-close{border:1px solid var(--line);border-radius:50%;width:34px;height:34px;flex:none;background:white;font-size:24px;line-height:1}.dialog-image-wrap{padding:25px;display:flex;align-items:center;justify-content:center}.dialog-image-wrap img{width:auto;max-width:100%;max-height:58vh;object-fit:contain}.dialog-caption{font-size:11px;color:var(--muted);padding:0 25px 19px;margin:0}.dialog-caption a{color:var(--accent)}
@media(min-width:1400px){.shell{max-width:1160px}.hero{gap:106px;padding-top:90px;padding-bottom:75px}h1{font-size:72px}.hero-focus{font-size:23px}.paper{grid-template-columns:290px 1fr;gap:38px}.teaser-button{height:183px}}
@media(max-width:850px){.shell{padding:0 28px}.nav-links{gap:20px}.hero{grid-template-columns:190px 1fr;gap:45px;padding-top:55px;padding-bottom:43px}h1{font-size:51px}.hero-focus{font-size:20px}.portrait-frame img{width:170px;height:225px}.hero-bio{font-size:13px}.socials{gap:13px}.topics{gap:10px 20px}.paper{grid-template-columns:225px 1fr;gap:23px}.teaser-button{height:155px}.experience{gap:40px}.job-heading{display:block}.job-date{display:block}}
@media(max-width:620px){html{scroll-padding-top:78px}.shell{padding:0 22px}.nav-wrap{height:71px}.wordmark>span:last-child{display:none}.nav-links{gap:17px;font-size:11px}.nav-cv{padding:5px 10px}.monogram{width:34px;height:34px;font-size:19px}.hero{display:flex;flex-direction:column-reverse;align-items:start;gap:28px;padding:39px 0 35px}.hero-copy{width:100%}.portrait-wrap{align-self:start;margin:0}.portrait-frame{padding:5px;border-radius:18px 48px 18px 48px;background:#e4ece1}.portrait-frame img{height:106px;width:106px;border-radius:14px 43px 14px 43px}.portrait-frame:before{inset:-6px;border-radius:20px 50px 20px 50px}.portrait-note{position:absolute;left:142px;bottom:30px;text-align:left;margin:0;white-space:nowrap;font-size:9px}.eyebrow{font-size:9px;letter-spacing:.13em}h1{font-size:48px;letter-spacing:-1.8px;margin-top:17px}.chinese-name{font-size:14px}.hero-focus{font-size:20px;margin:20px 0 13px}.hero-bio{font-size:13px}.socials{font-size:11px;gap:17px}.topics{font-size:10px;padding:15px 0;gap:9px 17px}.research{padding-top:39px}.section-head{display:block;margin-bottom:21px}.section-head h2{font-size:30px}.section-note{margin-top:12px;font-size:10px}.section-kicker{font-size:9px}.filter-bar{display:block}.filters{gap:2px}.filter{font-size:11px;padding:6px 9px}.result-count{display:block;margin-top:12px}.paper{grid-template-columns:1fr;gap:18px;padding:26px 0}.teaser-button{height:192px;padding:16px}.paper h3{font-size:17px}.paper-authors{font-size:11px}.paper-meta{font-size:10px}.paper-links{font-size:11px;gap:19px}.experience{grid-template-columns:1fr;gap:39px;padding:44px 0}.experience h2{font-size:29px}.job-heading{display:flex}.job-date{font-size:10px}.contact{display:block;padding:31px 0}.contact h2{font-size:29px}.contact-link{display:inline-block;margin-top:23px;font-size:14px}.footer{gap:20px;line-height:1.8}.dialog-header{padding:14px 17px}.dialog-header h2{font-size:13px}.dialog-image-wrap{padding:17px}.dialog-caption{padding:0 17px 15px}.teaser-dialog{width:94vw}.zoom-mark{opacity:1}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
