:root { color-scheme: light; --ink:#24303b; --muted:#596574; --link:#1772d0; --line:#e1e6ec; --accent:#671778; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:24px; }
body { margin:0; background:#fff; color:var(--ink); font:16px/1.65 Arial,Helvetica,sans-serif; }
main { max-width:1040px; margin:0 auto; padding:64px 40px 28px; }
a { color:var(--link); text-decoration:none; text-underline-offset:3px; }
a:hover { text-decoration:underline; }
a:focus-visible,summary:focus-visible { outline:2px solid var(--link); outline-offset:4px; }
h1,h2,h3,p { margin-top:0; }
h1 { font-size:38px; font-weight:600; line-height:1.2; margin-bottom:20px; }
h1 span { font-size:24px; font-weight:400; color:var(--muted); white-space:nowrap; }
h2 { font-size:25px; line-height:1.3; margin-bottom:22px; font-weight:600; }
h3 { font-size:17px; line-height:1.45; margin-bottom:8px; }
p { margin-bottom:13px; }
.profile { display:grid; grid-template-columns:minmax(0,1fr) 210px; gap:45px; align-items:start; }
.portrait { width:210px; height:auto; border-radius:15px; margin-top:8px; }
.affiliation { color:var(--muted); line-height:1.5; }
.contact { display:flex; flex-wrap:wrap; gap:9px 20px; margin-top:22px; }
.small,.caption { color:var(--muted); font-size:13px; }
.sections { display:flex; flex-wrap:wrap; gap:12px 26px; padding:18px 0; margin:32px 0 36px; border-block:1px solid var(--line); }
section { margin-bottom:48px; }
.dated-list { list-style:none; padding:0; margin:0; }
.dated-list li { display:grid; grid-template-columns:124px minmax(0,1fr); gap:18px; margin:0 0 15px; }
.dated-list time,.date { font-size:14px; color:var(--muted); padding-top:2px; }
.project,.paper { display:grid; grid-template-columns:260px minmax(0,1fr); gap:28px; margin:28px 0 36px; align-items:start; }
.project img,.paper img { width:100%; height:auto; max-height:260px; object-fit:contain; border-radius:10px; }
.figure-link { display:block; cursor:zoom-in; }
.paper p { margin-bottom:7px; font-size:14px; }
.paper h3 { font-size:17px; }
.text-paper { display:block; padding-left:288px; }
.venue { color:var(--muted); }
.award { display:block; color:var(--accent); font-weight:600; }
details { font-size:14px; margin-top:12px; }
summary { cursor:pointer; color:var(--link); }
details p { margin:8px 0 0; }
.entry { margin:0 0 26px; }
.entry p { font-size:15px; }
.period { float:right; font-size:14px; font-weight:400; color:var(--muted); }
.project div > p:last-child { margin-bottom:0; }
.project div > p a + a { margin-left:16px; }
footer { border-top:1px solid var(--line); padding-top:20px; color:var(--muted); font-size:12px; }
@media (max-width:720px) {
  main { padding:32px 22px 20px; }
  h1 { font-size:32px; }
  h1 span { display:block; font-size:22px; margin-top:8px; }
  .profile { grid-template-columns:minmax(0,1fr) 120px; gap:22px; }
  .portrait { width:120px; }
  .contact { gap:8px 16px; }
  .project,.paper { grid-template-columns:190px minmax(0,1fr); gap:20px; }
  .text-paper { padding-left:210px; }
  .period { float:none; display:block; margin-top:4px; }
}
@media (max-width:520px) {
  .profile { display:flex; flex-direction:column-reverse; gap:24px; }
  .portrait { width:128px; }
  .project,.paper { display:block; }
  .project img,.paper img { max-width:340px; max-height:280px; margin-bottom:18px; }
  .text-paper { padding-left:0; }
  .dated-list li { grid-template-columns:1fr; gap:2px; margin-bottom:20px; }
  section { margin-bottom:38px; }
  .sections { gap:10px 19px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
