:root {
  color-scheme: light dark;
  --bg: #ffffff;
  --fg: #23272d;
  --muted: #626970;
  --subtle: #6b737c;
  --accent: #315b70;
  --border: #e2e6e9;
  --soft: #f6f8fa;
  --serif: 'Source Serif 4', Georgia, 'Times New Roman', serif;
  --sans: Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --maxw: 960px;
}
@media (prefers-color-scheme: dark) {
  :root { --bg:#10161b; --fg:#e9edf0; --muted:#acb6bf; --subtle:#99a6b0; --accent:#a6cfdf; --border:#303b43; --soft:#1a242c; }
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust:100%; scroll-padding-top:7rem; }
body { margin:0; font-family:var(--sans); font-size:1rem; line-height:1.65; color:var(--fg); background:var(--bg); font-optical-sizing:auto; -webkit-font-smoothing:antialiased; }
[hidden] { display:none!important; }
a { color:var(--accent); text-decoration-thickness:1px; text-underline-offset:.23em; }
a:hover { color:var(--fg); }
a:focus-visible, button:focus-visible, select:focus-visible, summary:focus-visible { outline:2px solid var(--accent); outline-offset:5px; }
button, select { font:inherit; }
button { cursor:pointer; }
.container { max-width:var(--maxw); margin:0 auto; padding:0 2rem; }
.site-header { position:sticky; top:0; z-index:10; background:var(--bg); border-bottom:1px solid var(--border); }
.nav { display:flex; align-items:center; justify-content:space-between; gap:1rem; min-height:4.25rem; padding-top:.65rem; padding-bottom:.65rem; flex-wrap:wrap; }
.brand { font-size:.875rem; font-weight:600; color:var(--fg); text-decoration:none; letter-spacing:-.015em; }
nav ul { display:flex; flex-wrap:wrap; gap:.35rem 1.4rem; list-style:none; margin:0; padding:0; }
nav a { display:flex; align-items:center; padding:.4rem 0; border-bottom:1px solid transparent; color:var(--muted); text-decoration:none; font-size:.875rem; }
nav a:hover { color:var(--fg); }
nav a[aria-current='page'] { color:var(--fg); border-bottom-color:var(--fg); }
.skip-link { position:absolute; top:-10rem; left:1rem; padding:.6rem 1rem; background:var(--bg); z-index:20; }
.skip-link:focus { top:.5rem; }
h1,h2,h3 { overflow-wrap:break-word; }
h1,h2 { font-family:var(--serif); font-weight:400; font-optical-sizing:auto; }
h1 { font-size:2.75rem; line-height:1.15; letter-spacing:-.03em; margin:0 0 1rem; }
h2 { font-size:1.875rem; line-height:1.25; letter-spacing:-.025em; margin:0 0 1rem; }
h3 { font-size:1rem; font-weight:500; line-height:1.5; margin:0 0 .4rem; letter-spacing:-.015em; }
p { margin:0 0 1rem; }
.muted { color:var(--muted); }
.hero { display:grid; grid-template-columns:132px minmax(0,1fr); gap:3rem; align-items:start; padding:3.5rem 0 3rem; }
.hero h1 { font-size:2.875rem; margin-bottom:.7rem; }
.hero-copy { min-width:0; }
.avatar { width:132px; height:132px; border-radius:50%; object-fit:cover; margin-top:.2rem; border:1px solid var(--border); }
.title-sub { font-size:.9375rem; font-weight:500; line-height:1.6; margin-bottom:.85rem; letter-spacing:-.01em; }
.affiliation { font-size:.9375rem; line-height:1.6; color:var(--muted); margin-bottom:.5rem; }
.qualification { font-size:.875rem; color:var(--muted); margin-bottom:1rem; }
.leadership { margin-bottom:1rem; }
.leadership p { color:var(--muted); font-size:.875rem; line-height:1.6; margin:0 0 .2rem; }
.actions { display:flex; flex-wrap:wrap; gap:.5rem 1.3rem; }
.actions a { font-size:.875rem; text-decoration:none; border-bottom:1px solid var(--border); }
.actions a:hover { border-bottom-color:var(--accent); }
.home-section { padding:2.5rem 0; border-top:1px solid var(--border); }
.section-heading { display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:.5rem 1rem; margin-bottom:1.5rem; }
.section-heading h2 { margin:0; }
.section-link { display:inline-block; font-size:.875rem; text-decoration:none; white-space:nowrap; }
.section-link span { margin-left:.3rem; }
.section-link:hover { text-decoration:underline; }
.lab-statement { max-width:43rem; font-size:1.0625rem; line-height:1.7; letter-spacing:-.015em; margin:0; text-wrap:balance; }
.research-areas { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:1.75rem 2rem; margin:0; }
.area-link { color:var(--fg); text-decoration:none; border-top:1px solid var(--border); padding-top:1.35rem; }
.area-link:nth-child(-n+2) { border-top:0; padding-top:0; }
.area-link h3 { font-size:1rem; font-weight:600; line-height:1.4; letter-spacing:-.02em; margin-bottom:.55rem; }
.area-link:hover h3 { color:var(--accent); text-decoration:underline; text-underline-offset:.25em; }
.area-general { font-size:.9375rem; line-height:1.6; letter-spacing:-.01em; margin:0 0 .4rem; }
.area-technical { font-size:.875rem; line-height:1.65; color:var(--muted); margin:0; }
.inline-links { display:flex; gap:1.5rem; flex-wrap:wrap; font-size:.875rem; }
.legacy-links { margin-top:1.7rem; margin-bottom:0; }
.legacy-teaching { font-size:.875rem; margin:0; }
.lab-intro { display:grid; grid-template-columns:17rem minmax(0,1fr); gap:2rem; }
.eyebrow { text-transform:uppercase; font-size:.6875rem; line-height:1.6; letter-spacing:.11em; font-weight:600; color:var(--muted); margin:0 0 .65rem; }
.lab-intro h2 { margin:0 0 .55rem; font-size:2.25rem; }
.lab-intro h2 a { color:var(--fg); text-decoration:none; }
.lab-name { font-size:.9375rem; line-height:1.6; color:var(--muted); margin:0; }
.lab-intro .section-link { margin-top:1rem; }
.page-heading { padding:3.25rem 0 2rem; }
.page-heading>h1 { margin-bottom:1.1rem; }
.research-heading { padding-bottom:1.6rem; }
.research-heading>h1 { margin-bottom:0; }
.research-controls { padding:.1rem 0 .6rem; }
.topic-filters { display:flex; flex-wrap:wrap; align-items:stretch; gap:.25rem 1.25rem; padding-bottom:.45rem; border-bottom:1px solid var(--border); }
.topic-filters button { padding:.55rem 0; color:var(--muted); background:none; border:0; border-bottom:2px solid transparent; border-radius:0; font-size:.875rem; line-height:1.5; max-width:100%; text-align:left; }
.topic-filters button:hover { color:var(--fg); }
.topic-filters button[aria-pressed='true'] { color:var(--fg); border-bottom-color:var(--accent); font-weight:600; }
.filter-meta { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.75rem 1rem; margin-top:1.1rem; font-size:.875rem; color:var(--muted); }
.filter-meta p { margin:0; }
.filter-meta label { display:flex; align-items:center; gap:.7rem; flex-wrap:wrap; }
select { border:1px solid var(--border); background:var(--bg); color:var(--fg); border-radius:4px; padding:.45rem .7rem; max-width:100%; }
.student-note { font-size:.8125rem; color:var(--muted); margin:.3rem 0 1.75rem; }
.paper-group { margin-bottom:3rem; }
.paper-group>h2 { font-family:var(--sans); font-size:.75rem; line-height:1.5; font-weight:600; letter-spacing:.09em; text-transform:uppercase; border-bottom:1px solid var(--border); padding-bottom:.85rem; margin:0; color:var(--muted); }
.paper { padding:1.5rem 0; border-bottom:1px solid var(--border); scroll-margin-top:7rem; }
.paper h3 { font-family:var(--serif); font-weight:500; font-size:1.3rem; line-height:1.45; letter-spacing:-.012em; max-width:49rem; margin:0 0 .45rem; }
.paper h3 a { color:var(--fg); text-decoration:none; }
.paper h3 a:hover { color:var(--accent); text-decoration:underline; text-decoration-thickness:1px; }
.paper-authors { font-size:.875rem; line-height:1.65; color:var(--muted); margin:0 0 .3rem; }
.paper-venue { font-size:.875rem; line-height:1.6; color:var(--muted); margin:0; }
.paper-venue strong { color:var(--fg); font-weight:500; }
.paper-summary { font-size:.9375rem; margin:.75rem 0; }
.paper-topics { list-style:none; display:flex; flex-wrap:wrap; gap:.2rem 1rem; padding:0; margin:.65rem 0 0; color:var(--subtle); font-size:.75rem; line-height:1.6; }
.paper-links { display:flex; flex-wrap:wrap; gap:.5rem 1.3rem; font-size:.875rem; line-height:1.6; margin:.7rem 0 0; }
.paper-footer { display:flex; align-items:baseline; justify-content:space-between; flex-wrap:wrap; gap:.5rem 1.5rem; margin-top:.75rem; }
.paper-footer .paper-topics,.paper-footer .paper-links { margin:0; }
.paper-links a { text-decoration:none; border-bottom:1px solid var(--border); }
.paper-links a:hover { border-bottom-color:var(--accent); }
.abstract { font-size:.9375rem; line-height:1.75; margin-top:.8rem; max-width:52rem; }
.abstract summary { cursor:pointer; width:fit-content; color:var(--accent); font-size:.8125rem; }
.abstract>div { padding-top:.65rem; }
.empty-state { padding:2rem 0; border-top:1px solid var(--border); }
.plain-button { background:var(--soft); color:var(--fg); border:1px solid var(--border); border-radius:4px; padding:.5rem .8rem; font-size:.875rem; }
.lab-heading { padding-bottom:2.5rem; }
.lab-heading h1 { font-size:3.25rem; margin-bottom:.5rem; letter-spacing:-.03em; }
.lab-heading .lab-name { font-size:1.0625rem; margin-bottom:1.5rem; }
.lab-context { margin:1.1rem 0 0; color:var(--muted); font-size:.875rem; max-width:49rem; }
.lab-context a { text-decoration:none; border-bottom:1px solid var(--border); }
.lab-section { display:grid; grid-template-columns:13rem minmax(0,1fr); gap:2rem; padding:2rem 0; border-top:1px solid var(--border); }
.lab-section h2 { font-size:1.4375rem; font-weight:400; line-height:1.35; letter-spacing:-.02em; margin:0; }
.section-caption { font-size:.8125rem; color:var(--muted); line-height:1.65; margin:.65rem 0 0; }
.people-list,.course-list { list-style:none; padding:0; margin:0; }
.person { display:flex; justify-content:space-between; gap:1.5rem; padding:1rem 0; border-top:1px solid var(--border); }
.person:first-child { padding-top:0; border-top:0; }
.person:last-child { padding-bottom:0; }
.person>div { min-width:0; }
.person h3 { font-size:1rem; font-weight:500; margin:0; }
.person h3 a { color:var(--fg); }
.person p { font-size:.875rem; line-height:1.65; margin:.3rem 0 0; }
.person .person-field { color:var(--muted); margin-top:.15rem; }
.person .person-note { color:var(--muted); font-size:.875rem; max-width:31rem; }
.person .person-role { color:var(--muted); font-size:.875rem; text-align:right; flex-shrink:0; margin:.12rem 0 0; font-variant-numeric:tabular-nums; }
.resource-description,.resource-empty { color:var(--muted); font-size:.9375rem; line-height:1.7; margin:0; }
.resource-empty { color:var(--subtle); font-size:.875rem; }
.resource { padding:1rem 0; border-top:1px solid var(--border); }
.resource:first-child { border-top:0; padding-top:0; }
.resource h3 { font-family:var(--serif); font-size:1.1875rem; font-weight:500; line-height:1.5; margin-bottom:.4rem; }
.resource h3 a { color:var(--fg); text-decoration:none; }
.resource-description { margin-top:.5rem; font-size:.875rem; }
.teaching-section { margin:0 0 2.75rem; }
.teaching-section>h2 { font-size:1.5rem; }
.course-list li { border-top:1px solid var(--border); padding:1.1rem 0; }
.course-list h3 { font-family:var(--serif); font-size:1.1875rem; font-weight:500; }
.course-list p { color:var(--muted); font-size:.875rem; margin:.3rem 0 0; }
.site-footer { padding-top:2rem; padding-bottom:2rem; }
.site-footer p { padding-top:1.5rem; border-top:1px solid var(--border); color:var(--subtle); font-size:.75rem; line-height:1.7; margin:0; }
@media (max-width:760px) {
  .container { padding-left:1.5rem; padding-right:1.5rem; }
  .nav { gap:.4rem 1.5rem; }
  .hero { grid-template-columns:104px minmax(0,1fr); gap:2rem; padding:2.75rem 0; }
  .hero h1 { font-size:2.375rem; }
  .avatar { width:104px; height:104px; }
  .research-areas { gap:1.5rem; }
  .lab-intro { grid-template-columns:1fr; gap:1.2rem; }
  .lab-section { grid-template-columns:9rem minmax(0,1fr); gap:1.5rem; }
  .person { display:block; }
  .person .person-role { text-align:left; margin-top:.3rem; }
}
@media (max-width:540px) {
  .container { padding-left:1.25rem; padding-right:1.25rem; }
  .nav { padding-top:.8rem; padding-bottom:.65rem; }
  .brand { width:100%; font-size:.8125rem; }
  nav ul { gap:1.5rem; }
  nav a { font-size:.875rem; }
  .hero { grid-template-columns:1fr; gap:1.25rem; padding-top:2rem; padding-bottom:2.25rem; }
  .avatar { width:96px; height:96px; margin:0; }
  h1,.hero h1 { font-size:2.125rem; line-height:1.2; }
  .hero h1 { font-size:clamp(1.875rem,8.5vw,2.125rem); letter-spacing:-.03em; }
  .research-areas { grid-template-columns:1fr; gap:1.4rem; }
  .area-link:nth-child(2) { border-top:1px solid var(--border); padding-top:1.35rem; }
  .lab-statement { font-size:1.0625rem; }
  .home-section { padding:2rem 0; }
  .page-heading { padding-top:2.4rem; padding-bottom:1.75rem; }
  .topic-filters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.25rem 1rem; }
  .topic-filters button { display:flex; align-items:center; min-height:44px; text-wrap:balance; }
  .topic-filters button:first-child { grid-column:1 / -1; justify-self:start; }
  .lab-section { grid-template-columns:1fr; gap:1.3rem; padding:1.8rem 0; }
  .lab-heading h1 { font-size:2.875rem; }
  .paper h3 { font-size:1.1875rem; }
  .section-heading { align-items:center; }
}
@media (pointer:coarse) {
  button,select,nav a,.actions a,.paper-links a { min-height:44px; }
  .paper-links a,.actions a { display:inline-flex; align-items:center; }
  .filter-meta select { font-size:1rem; }
}
@media print {
  :root { --bg:#fff; --fg:#111; --muted:#444; --subtle:#666; --border:#bbb; --accent:#111; }
  .site-header,.research-controls,.site-footer,.skip-link { display:none!important; }
  .paper[hidden],.paper-group[hidden] { display:block!important; }
  .paper { break-inside:avoid; }
  body { color:#111;background:#fff; }
  .container { max-width:none; }
  .page-heading { padding-top:0; }
}
