*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{
  --bg:#fdfdfd;
  --bg-alt:#f5f6f8;
  --text:#1a1a2e;
  --text2:#555;
  --accent:#1a56db;
  --accent-light:#e8eefb;
  --border:#e0e0e0;
  --radius:6px;
  --max-w:860px;
}
html{scroll-behavior:smooth;font-size:16px}
body{background:var(--bg);color:var(--text);font-family:'Palatino Linotype','Book Antiqua',Palatino,'Noto Serif SC',Georgia,serif;line-height:1.75}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
::selection{background:var(--accent);color:#fff}

/* LAYOUT */
.wrapper{max-width:var(--max-w);margin:0 auto;padding:0 1.5rem}

/* NAV */
.nav{border-bottom:1px solid var(--border);padding:.8rem 0;position:sticky;top:0;background:rgba(253,253,253,.95);backdrop-filter:blur(8px);z-index:50}
.nav .wrapper{display:flex;justify-content:space-between;align-items:center}
.nav-name{font-weight:700;font-size:1.05rem;color:var(--text);letter-spacing:.02em}
.nav-links{display:flex;gap:1.8rem;list-style:none}
.nav-links a{color:var(--text2);font-size:.88rem;font-family:'Inter',system-ui,sans-serif;font-weight:500;text-decoration:none;transition:color .2s}
.nav-links a:hover{color:var(--accent);text-decoration:none}
.nav-toggle{display:none;background:none;border:none;font-size:1.4rem;cursor:pointer;color:var(--text)}

/* HERO — photo prominent */
.hero{padding:3.5rem 0 3rem;border-bottom:1px solid var(--border)}
.hero-grid{display:grid;grid-template-columns:200px 1fr;gap:2.5rem;align-items:start}
.hero-photo img{width:200px;height:250px;object-fit:cover;border-radius:var(--radius);border:1px solid var(--border)}
.hero-photo .photo-placeholder{width:200px;height:250px;display:flex;align-items:center;justify-content:center;background:var(--bg-alt);border:2px dashed var(--border);border-radius:var(--radius);color:var(--text2);font-size:.85rem;text-align:center;font-family:sans-serif;padding:1rem}
.hero-info h1{font-size:1.7rem;font-weight:700;margin-bottom:.2rem;letter-spacing:.01em}
.hero-info .zh-name{font-size:inherit;color:var(--text2);font-weight:inherit}
.hero-info p{font-size:.92rem;color:var(--text2);margin-bottom:.3rem;font-family:'Inter',system-ui,sans-serif}
.hero-info .research{margin-top:.8rem;font-size:.92rem;line-height:1.7;color:var(--text)}
.hero-info .links{margin-top:1rem;display:flex;flex-wrap:wrap;gap:.6rem 1.5rem;font-family:'Inter',system-ui,sans-serif;font-size:.88rem}
.hero-info .links a{display:inline-flex;align-items:center;gap:.3rem}

/* SECTION */
section{padding:2.5rem 0}
section+section{border-top:1px solid var(--border)}
.section-title{font-size:1.2rem;font-weight:700;margin-bottom:1.5rem;padding-bottom:.4rem;border-bottom:2px solid var(--accent);display:inline-block}

/* PUBLICATION ITEM */
.pub{margin-bottom:1.5rem}
.pub-title{font-weight:600;font-size:.95rem;line-height:1.5}
.pub-authors{font-size:.88rem;color:var(--text2);margin:.15rem 0}
.pub-authors strong{color:var(--text);font-weight:600}
.pub-venue{font-size:.85rem;font-weight:600;color:var(--accent)}
.pub-desc{font-size:.88rem;color:var(--text2);margin-top:.3rem;line-height:1.6}
.pub-links{margin-top:.35rem;font-size:.83rem;font-family:'Inter',system-ui,sans-serif}
.pub-links a{margin-right:1rem}
.pub-badge{display:inline-block;font-size:.72rem;padding:.1rem .45rem;border-radius:3px;font-weight:600;font-family:'Inter',system-ui,sans-serif;vertical-align:middle;margin-left:.4rem}
.badge-first{background:var(--accent);color:#fff}
.badge-collab{background:var(--accent-light);color:var(--accent)}
.badge-cite{background:rgba(16,185,129,.1);color:#059669;font-size:.72rem;padding:.1rem .45rem;border-radius:3px;font-weight:600;font-family:'Inter',system-ui,sans-serif;vertical-align:middle;margin-left:.4rem;display:inline-block}

/* EXPERIENCE */
.exp{margin-bottom:1.5rem}
.exp-header{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:.3rem}
.exp-title{font-weight:600;font-size:.95rem}
.exp-date{font-size:.83rem;color:var(--text2);font-family:'Inter',system-ui,sans-serif;white-space:nowrap}
.exp-sub{font-size:.88rem;color:var(--text2);margin:.1rem 0 .3rem}
.exp-list{list-style:disc;padding-left:1.3rem;font-size:.88rem;color:var(--text2);line-height:1.7}

/* SKILLS */
.skills-section{columns:2;column-gap:2rem}
.skill-group{break-inside:avoid;margin-bottom:1.3rem}
.skill-group h3{font-size:.92rem;font-weight:600;margin-bottom:.4rem}
.skill-group p{font-size:.88rem;color:var(--text2);line-height:1.6}

/* HONORS */
.honors-table{width:100%;font-size:.88rem;border-collapse:collapse}
.honors-table td{padding:.4rem 0;vertical-align:top}
.honors-table td:last-child{text-align:right;color:var(--text2);white-space:nowrap;padding-left:1rem;font-family:'Inter',system-ui,sans-serif;font-size:.83rem}
.honors-table tr+tr td{border-top:1px solid var(--bg-alt)}

/* FOOTER */
.footer{text-align:center;padding:2rem 0;border-top:1px solid var(--border);color:var(--text2);font-size:.82rem;font-family:'Inter',system-ui,sans-serif}

/* RESPONSIVE */
@media(max-width:640px){
  .hero-grid{grid-template-columns:1fr;justify-items:center;text-align:center}
  .hero-photo img,.hero-photo .photo-placeholder{width:160px;height:200px}
  .hero-info .links{justify-content:center}
  .nav-links{display:none;position:absolute;top:100%;left:0;right:0;background:var(--bg);flex-direction:column;padding:1rem 1.5rem;gap:.7rem;border-bottom:1px solid var(--border);box-shadow:0 4px 12px rgba(0,0,0,.05)}
  .nav-links.open{display:flex}
  .nav-toggle{display:block}
  .skills-section{columns:1}
  .exp-header{flex-direction:column}
}
