:root{--bg:#f7f8fb;--surface:#fff;--text:#182230;--muted:#5d6878;--primary:#123b63;--primary-soft:#eaf1f8;--border:#dfe6ee;--shadow:0 18px 50px rgba(19,35,54,.08);--radius:22px;--max:1120px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text);line-height:1.65}a{color:inherit;text-decoration:none}.container{width:min(calc(100% - 48px),var(--max));margin:0 auto}
.site-header{position:sticky;top:0;z-index:20;backdrop-filter:blur(18px);background:rgba(247,248,251,.88);border-bottom:1px solid rgba(223,230,238,.85)}
.nav{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;flex-direction:column}.brand-name{font-size:1.18rem;font-weight:750}.brand-role{font-size:.88rem;color:var(--muted)}.nav-links{display:flex;gap:20px;flex-wrap:wrap;font-size:.97rem;color:var(--muted)}.nav-links a:hover,.nav-links a.active{color:var(--primary);font-weight:700}
.hero{padding:78px 0 40px}.hero-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.85fr);gap:34px}.hero-main,.profile-card,.section-card,.page-intro,.list-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.hero-main{padding:44px}
.eyebrow{display:inline-flex;padding:7px 13px;border-radius:999px;background:var(--primary-soft);color:var(--primary);font-size:.9rem;font-weight:650;margin-bottom:22px}
h1,h2,h3,p{margin-top:0}h1{font-size:clamp(2.35rem,5vw,4.1rem);line-height:1.08;letter-spacing:-.05em;margin-bottom:20px}.page-title{font-size:clamp(2.1rem,4vw,3.25rem);line-height:1.12;letter-spacing:-.045em;margin-bottom:16px}.hero-subtitle,.page-subtitle{font-size:1.18rem;color:var(--muted);max-width:820px;margin-bottom:26px}.highlight{color:var(--primary);font-weight:720}.muted{color:var(--muted)}.small{font-size:.95rem}
.button-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 18px;border-radius:999px;font-weight:650;border:1px solid var(--border)}.button.primary{background:var(--primary);color:#fff;border-color:var(--primary)}.button.secondary{background:#fff;color:var(--primary)}
.profile-card{padding:28px;display:flex;flex-direction:column;gap:22px}.portrait{min-height:285px;border-radius:18px;border:1px dashed #b9c7d6;background:linear-gradient(135deg,rgba(18,59,99,.12),rgba(18,59,99,.03)),#f5f8fb;display:flex;align-items:center;justify-content:center;text-align:center;color:var(--muted);padding:24px}.profile-meta{display:grid;gap:14px}.meta-item{padding-bottom:13px;border-bottom:1px solid var(--border)}.meta-label{display:block;color:var(--muted);font-size:.84rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px}.meta-value{font-weight:620}
main{padding-bottom:72px}.section-grid,.content-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:24px}.section-card,.list-card{padding:30px}.full-width{grid-column:1/-1}.section-title{font-size:1.55rem;line-height:1.25;letter-spacing:-.03em;margin-bottom:16px}.tag-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.tag{padding:8px 12px;border-radius:999px;background:#f3f6fa;border:1px solid var(--border);font-size:.93rem;color:#314156}
.publication-list,.project-list,.quick-list,.timeline-list{list-style:none;padding:0;margin:0;display:grid;gap:16px}.publication-list li,.project-list li,.quick-list li,.timeline-list li{padding-left:16px;border-left:3px solid #c9d8e6}.item-title{font-weight:700;margin-bottom:3px}.item-meta{font-size:.95rem;color:var(--muted);margin-bottom:5px}
.page-shell{padding:64px 0 0}.page-intro{padding:38px;margin-bottom:24px}.text-link{color:var(--primary);font-weight:650}.footer{padding:34px 0 48px;color:var(--muted);border-top:1px solid var(--border);font-size:.94rem}
@media(max-width:920px){.hero-grid,.section-grid,.content-grid{grid-template-columns:1fr}.hero-main,.page-intro{padding:30px}.nav{align-items:flex-start;flex-direction:column;justify-content:center;padding:16px 0}.nav-links{gap:14px}}
@media(max-width:640px){.container{width:min(calc(100% - 28px),var(--max))}.hero,.page-shell{padding-top:42px}.hero-main,.profile-card,.section-card,.page-intro,.list-card{padding:22px;border-radius:18px}.portrait{min-height:220px}.button{width:100%}}.photo-box {
  padding: 0;
  overflow: hidden;
  border: none;
  background: #f5f8fb;
}

.photo-box img {
  width: 100%;
  height: 100%;
  min-height: 285px;
  object-fit: cover;
  display: block;
}
