:root { --blue:#246a8d; --blue-dark:#174b66; --ink:#30343b; --muted:#6d737b; --line:#e5e8eb; --soft:#f5f7f8; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:#fff; font-family:"Source Serif 4",Georgia,serif; font-size:16px; font-weight:400; line-height:1.7; }
a { color:var(--blue); text-decoration:none; }
a:hover,a:focus-visible { color:var(--blue-dark); text-decoration:underline; }
.skip-link { position:fixed; left:1rem; top:-4rem; z-index:20; padding:.6rem 1rem; color:#fff; background:var(--blue-dark); }
.skip-link:focus { top:1rem; }
.topbar { min-height:4.5rem; padding:0 max(1.5rem,calc((100vw - 1120px)/2)); display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); background:rgba(255,255,255,.96); position:sticky; top:0; z-index:10; }
.site-name { color:var(--ink); font-family:"Source Serif 4",Georgia,serif; font-size:1.25rem; font-weight:600; }
.site-name:hover { text-decoration:none; }
nav { display:flex; gap:2rem; }
nav a { color:#4f555c; font-size:.9rem; }
.menu-button { display:none; border:1px solid var(--line); padding:.4rem .7rem; background:white; color:var(--ink); font:inherit; }
.page { width:min(1120px,calc(100% - 3rem)); margin:0 auto; padding:5.5rem 0 6rem; display:grid; grid-template-columns:250px minmax(0,720px); gap:clamp(4rem,9vw,8rem); }
.profile { text-align:center; }
.portrait { width:190px; height:190px; margin:0 auto 1.5rem; border-radius:50%; display:block; object-fit:cover; object-position:center; background:#dcebf0; }
.profile h1 { margin:0 0 .25rem; font-family:"Source Serif 4",Georgia,serif; font-size:1.65rem; line-height:1.25; }
.role,.institution { margin:0; color:var(--muted); font-size:.92rem; }
.institution { margin-bottom:1.5rem; }
.profile-links { display:inline-flex; flex-direction:column; align-items:flex-start; gap:.4rem; margin:0; padding:0; list-style:none; font-size:.9rem; }
.profile-links span { display:inline-block; width:1.5rem; text-align:center; color:var(--muted); }
.content section { padding-bottom:3.5rem; margin-bottom:3.5rem; border-bottom:1px solid var(--line); scroll-margin-top:6rem; }
.content section:last-child { border-bottom:0; }
h2 { margin:0 0 1.4rem; color:#292d32; font-family:"Source Serif 4",Georgia,serif; font-size:2.15rem; line-height:1.2; }
h3 { margin:0 0 .35rem; color:#34383e; font-size:1.05rem; font-weight:500; line-height:1.45; }
h4 { margin:0 0 .1rem; color:#34383e; font-size:1rem; font-weight:500; line-height:1.5; }
p { margin:0 0 1rem; }
.intro-section p { font-size:1.08rem; }
.research-list { border-top:1px solid var(--line); }
.research-item { padding:1.4rem 0; border-bottom:1px solid var(--line); }
.research-item:last-child { border-bottom:0; }
.research-item p:last-child { margin-bottom:0; }
.research-item h3 { color:var(--blue); }
.education-list { border-top:1px solid var(--line); }
.education-item { padding:1.4rem 0; border-bottom:1px solid var(--line); }
.education-item:last-child { border-bottom:0; }
.education-item p { margin:0 0 .35rem; color:var(--muted); font-size:.92rem; }
.education-row { display:grid; grid-template-columns:110px minmax(0,1fr) 150px; gap:1.25rem; align-items:baseline; }
.education-item h3 { margin:0; }
.education-item .date { color:var(--blue); font-weight:500; }
.education-place { text-align:right; }
.education-details { margin:1rem 0 0 130px; }
.teaching-item,.presentations-item { padding:1.4rem 0; border-top:1px solid var(--line); }
.teaching-row { display:grid; grid-template-columns:110px minmax(0,1fr) 150px; gap:1.25rem; align-items:baseline; }
.presentations-item { display:grid; gap:1rem; }
.presentation-entry { display:grid; grid-template-columns:110px minmax(0,1fr) 150px; gap:1.25rem; align-items:baseline; }
.teaching-row h3,.teaching-row p,.presentation-entry h3,.presentation-entry p { margin:0; }
.teaching-item .date,.presentation-entry .date { color:var(--blue); font-weight:500; }
.teaching-place { text-align:right; color:var(--muted); font-size:.92rem; }
.teaching-details { margin:.45rem 0 0 130px; }
.teaching-details p { color:var(--muted); font-size:.92rem; }
.presentations-place { text-align:right; color:var(--muted); font-size:.92rem; }
.date { white-space:nowrap; }
footer { padding:2.5rem 1.5rem; border-top:1px solid var(--line); color:var(--muted); text-align:center; font-size:.82rem; }
@media (max-width:760px) {
  .topbar { padding:0 1.25rem; } .menu-button { display:block; }
  nav { display:none; position:absolute; top:4.5rem; left:0; right:0; padding:1.25rem; flex-direction:column; gap:.8rem; background:white; border-bottom:1px solid var(--line); }
  nav.open { display:flex; }
  .page { width:min(100% - 2.5rem,680px); grid-template-columns:1fr; gap:4rem; padding-top:3.5rem; }
  .portrait { width:160px; height:160px; }
  .education-row { grid-template-columns:1fr; gap:.15rem; }
  .education-place { text-align:left; }
  .education-details { margin:1rem 0 0; }
  .teaching-row,.presentation-entry { grid-template-columns:1fr; gap:.15rem; }
  .year-spacer { display:none; }
  .teaching-place { text-align:left; }
  .presentations-place { text-align:left; }
  .teaching-details { margin:.45rem 0 0; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
