:root{
  --ink:#1c2430;
  --ink-soft:#4a5566;
  --paper:#f7f5f0;
  --paper-raised:#ffffff;
  --line:#dcd6c9;
  --oxblood:#7a2b2f;
  --oxblood-deep:#5c2023;
  --slate:#33505c;
  --slate-tint:#e8eeef;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:'IBM Plex Sans', sans-serif;
  line-height:1.6;
  font-size:16px;
}
h1,h2,h3,h4{
  font-family:'Source Serif 4', serif;
  color:var(--ink);
  font-weight:600;
}
a{color:var(--oxblood);text-decoration:none;}
a:hover{text-decoration:underline;}
.wrap{max-width:960px;margin:0 auto;padding:0 32px;}

/* NAV */
nav{
  position:sticky;top:0;z-index:50;
  background:rgba(247,245,240,0.94);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}
nav .wrap{
  display:flex;align-items:center;justify-content:space-between;
  height:56px;
}
nav .brand{font-family:'Source Serif 4',serif;font-weight:600;font-size:15px;color:var(--ink);letter-spacing:.2px;}
nav ul{list-style:none;display:flex;gap:24px;}
nav a{color:var(--ink-soft);font-size:13.5px;font-weight:500;}
nav a:hover{color:var(--oxblood);text-decoration:none;}
nav a.active{color:var(--oxblood);}
@media (max-width:760px){ nav ul{gap:14px;} nav a{font-size:12.5px;} }

/* PAGE HEADER (sub-pages) */
header.page-head{
  padding:52px 0 36px;border-bottom:1px solid var(--line);
}
.eyebrow-line{display:flex;align-items:center;gap:10px;margin-bottom:14px;}
.eyebrow-line .rule{width:34px;height:2px;background:var(--oxblood);}
.eyebrow-line span{font-size:12.5px;color:var(--slate);font-weight:500;letter-spacing:.2px;}
header.page-head h1{font-size:32px;margin-bottom:8px;}
header.page-head p.lede{font-size:15px;color:var(--ink-soft);max-width:640px;}

/* HERO (home) */
header.hero{padding:72px 0 56px;border-bottom:1px solid var(--line);}
.hero-grid{display:grid;grid-template-columns:1fr 220px;gap:48px;align-items:start;}
@media (max-width:720px){ .hero-grid{grid-template-columns:1fr;} }
h1.name{font-size:38px;line-height:1.15;margin-bottom:6px;}
.post-nominal{font-family:'Source Serif 4',serif;font-weight:400;color:var(--ink-soft);}
.role{font-size:16.5px;color:var(--ink-soft);margin-bottom:18px;}
.affil{font-size:14.5px;color:var(--slate);margin-bottom:22px;}
.affil .zh{display:block;margin-bottom:2px;}
.statement{
  font-family:'Source Serif 4',serif;font-size:17px;line-height:1.75;color:#2b3542;
  border-left:3px solid var(--oxblood);padding-left:18px;max-width:640px;
}
.hero-photo img{width:100%;border-radius:2px;border:1px solid var(--line);display:block;object-fit:cover;}
.hero-photo .cap{font-size:12px;color:var(--slate);margin-top:8px;text-align:center;}

/* SECTION */
section{padding:56px 0;border-bottom:1px solid var(--line);}
section:last-of-type{border-bottom:none;}
.sec-head{display:flex;align-items:baseline;gap:14px;margin-bottom:30px;}
.sec-num{font-family:'IBM Plex Mono',monospace;font-size:12.5px;color:var(--oxblood);}
h2.sec-title{font-size:24px;}

/* RESEARCH PILLARS */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
@media (max-width:820px){ .pillars{grid-template-columns:1fr;} }
.pillar{background:var(--paper-raised);border:1px solid var(--line);padding:24px 22px;}
.pillar h3{font-size:16.5px;margin-bottom:10px;}
.pillar p{font-size:14px;color:var(--ink-soft);}
.pillar .tag{display:inline-block;font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--slate);background:var(--slate-tint);padding:3px 8px;margin-top:12px;}

/* TWO COL */
.twocol{display:grid;grid-template-columns:1fr 1fr;gap:44px;}
@media (max-width:720px){ .twocol{grid-template-columns:1fr;} }
.tl-item{display:grid;grid-template-columns:100px 1fr;gap:14px;padding:14px 0;border-top:1px solid var(--line);}
.tl-item:first-child{border-top:none;}
.tl-date{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--oxblood);padding-top:2px;}
.tl-body .role-title{font-weight:600;font-size:14.5px;}
.tl-body .role-place{font-size:13.5px;color:var(--ink-soft);}

/* GRANTS */
.grants{border-top:1px solid var(--line);}
.grant{display:grid;grid-template-columns:120px 1fr;gap:18px;padding:16px 0;border-bottom:1px solid var(--line);}
.grant .period{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--slate);padding-top:2px;}
.grant .role-badge{display:inline-block;font-size:10.5px;font-weight:600;letter-spacing:.3px;color:var(--oxblood);border:1px solid var(--oxblood);padding:1px 6px;margin-bottom:6px;}
.grant .code{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--slate);}
.grant .title{font-size:14.5px;color:var(--ink);margin-top:2px;}

/* AWARDS */
.awards-list{columns:2;column-gap:36px;}
@media (max-width:720px){ .awards-list{columns:1;} }
.awards-list li{list-style:none;font-size:14px;color:var(--ink-soft);padding:8px 0;border-bottom:1px dotted var(--line);break-inside:avoid;}
.awards-list li strong{color:var(--ink);font-weight:600;}

/* NEWS TIMELINE */
.news-year{margin-bottom:26px;}
.news-year h4{font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--oxblood);margin-bottom:10px;letter-spacing:.5px;}
.news-item{display:grid;grid-template-columns:88px 1fr;gap:14px;padding:8px 0;font-size:13.8px;}
.news-item .date{color:var(--slate);font-family:'IBM Plex Mono',monospace;font-size:12px;padding-top:1px;}
.news-item .txt{color:var(--ink-soft);}
.news-item .txt a{font-size:13px;}
details{margin-top:8px;}
summary{cursor:pointer;font-size:13px;color:var(--slate);font-weight:500;}
summary:hover{color:var(--oxblood);}

/* LAB MEMBERS */
.members{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
@media (max-width:820px){ .members{grid-template-columns:1fr;} }
.members h4{font-size:13px;color:var(--slate);font-family:'IBM Plex Mono',monospace;letter-spacing:.4px;margin-bottom:10px;text-transform:uppercase;}
.members ol{padding-left:18px;}
.members li{font-size:14px;color:var(--ink);padding:4px 0;}
.members li .note{color:var(--slate);font-size:12px;display:block;}

/* PUBLICATION LIST */
.pub-toolbar{display:flex;gap:12px;align-items:center;margin-bottom:24px;flex-wrap:wrap;}
.pub-toolbar input{
  flex:1;min-width:220px;padding:10px 14px;border:1px solid var(--line);background:var(--paper-raised);
  font-family:'IBM Plex Sans',sans-serif;font-size:14px;color:var(--ink);
}
.pub-toolbar input:focus{outline:2px solid var(--oxblood);outline-offset:1px;}
.pub-count{font-size:12.5px;color:var(--slate);font-family:'IBM Plex Mono',monospace;white-space:nowrap;}
.pub-list{border-top:1px solid var(--line);}
.pub-item{display:grid;grid-template-columns:44px 1fr;gap:16px;padding:16px 0;border-bottom:1px solid var(--line);}
.pub-item .idx{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--slate);padding-top:2px;}
.pub-item .cite{font-size:14px;color:var(--ink);}
.pub-item .cite .authors{color:var(--ink-soft);}
.pub-item .cite .journal{font-style:italic;color:var(--slate);}
.pub-item .cite .flag{font-size:10.5px;font-weight:600;color:var(--oxblood);border:1px solid var(--oxblood);padding:0 5px;margin-left:6px;white-space:nowrap;}
.pub-item.hide{display:none;}

/* ORCID AUTO-SYNC */
.orcid-status{font-size:13px;color:var(--slate);font-family:'IBM Plex Mono',monospace;margin-bottom:12px;}
.orcid-list{border-top:1px solid var(--line);margin-bottom:12px;}
.orcid-item{display:grid;grid-template-columns:70px 1fr;gap:16px;padding:12px 0;border-bottom:1px solid var(--line);font-size:13.5px;}
.orcid-item .yr{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--oxblood);padding-top:1px;}
.orcid-item .ttl{color:var(--ink);}
.orcid-item .jr{color:var(--slate);font-style:italic;font-size:12.5px;}
.orcid-item a{font-size:12px;}
.orcid-footnote{font-size:11.5px;color:var(--slate);}
.orcid-footnote a{font-size:11.5px;}

/* CONFERENCE / SERVICE LISTS */
.simple-list{border-top:1px solid var(--line);}
.simple-item{display:grid;grid-template-columns:44px 1fr;gap:16px;padding:14px 0;border-bottom:1px solid var(--line);font-size:14px;color:var(--ink);}
.simple-item .idx{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--slate);}
.simple-item .badge{display:inline-block;font-size:10px;font-weight:600;color:#fff;background:var(--slate);padding:1px 6px;margin-left:6px;}
.service-cols{display:grid;grid-template-columns:1fr 1fr;gap:40px;}
@media (max-width:720px){ .service-cols{grid-template-columns:1fr;} }
.service-block h3{font-size:15px;margin-bottom:12px;color:var(--slate);font-family:'IBM Plex Mono',monospace;letter-spacing:.3px;text-transform:uppercase;}
.service-block ul{list-style:none;}
.service-block li{font-size:14px;padding:6px 0;border-bottom:1px dotted var(--line);}
.reviewer-grid{columns:3;column-gap:28px;margin-top:8px;}
@media (max-width:820px){ .reviewer-grid{columns:2;} }
@media (max-width:560px){ .reviewer-grid{columns:1;} }
.reviewer-grid li{font-size:13px;color:var(--ink-soft);break-inside:avoid;border-bottom:none;padding:3px 0;}

/* GALLERY */
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;}
@media (max-width:720px){ .gallery-grid{grid-template-columns:repeat(2,1fr);} }
.gallery-grid figure{border:1px solid var(--line);background:var(--paper-raised);overflow:hidden;}
.gallery-grid img{width:100%;height:180px;object-fit:cover;display:block;}
.gallery-grid figcaption{font-size:11.5px;color:var(--slate);padding:8px 10px;}
.gallery-group{margin-bottom:44px;}
.gallery-group h3{font-size:15px;color:var(--slate);font-family:'IBM Plex Mono',monospace;letter-spacing:.3px;margin-bottom:14px;text-transform:uppercase;}

/* FOOTER */
footer{padding:48px 0 60px;}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px;}
@media (max-width:720px){ .contact-grid{grid-template-columns:1fr;} }
.contact-grid p{font-size:14px;color:var(--ink-soft);margin-bottom:6px;}
.contact-grid strong{color:var(--ink);}
.foot-note{margin-top:40px;font-size:12px;color:var(--slate);border-top:1px solid var(--line);padding-top:18px;}
