/* Academic website: shared, responsive presentation. */
:root { --ink:#172d45; --text:#35465a; --muted:#607185; --accent:#007fbd; --accent-hover:#009ddf; --line:#dce5ec; --surface:#f3f7fa; }
* { box-sizing:border-box; }
html { color-scheme:light; scrollbar-gutter:stable; }
body { margin:0; background:#fff; color:var(--text); font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-size:1rem; line-height:1.75; }
a { color:var(--accent); text-decoration:none; overflow-wrap:anywhere; }
a:hover { color:var(--accent-hover); }
:focus-visible { outline:3px solid var(--accent); outline-offset:5px; }
img { display:block; max-width:100%; height:auto; }
h1,h2,h3 { color:var(--ink); line-height:1.25; font-weight:600; }
h1 { font-family:Georgia,"Times New Roman",serif; font-size:clamp(2.1rem,3.5vw,2.8rem); font-weight:400; margin:0 0 1.8rem; letter-spacing:-.025em; }
h2 { font-size:1.4rem; margin:2.5rem 0 1rem; }
h3 { font-size:1.15rem; }
p { margin:0 0 1.5rem; }
.skip-link { position:absolute; top:-10rem; left:1rem; z-index:5; padding:.6rem 1rem; background:#fff; }
.skip-link:focus { top:1rem; }
.site-header { border-top:4px solid var(--accent); border-bottom:1px solid var(--line); }
.header-inner,.site-nav,.main-content,.site-footer { width:min(960px,calc(100% - 96px)); margin-inline:auto; }
.header-inner { display:flex; justify-content:space-between; align-items:center; gap:2rem; padding:2rem 0 1.6rem; }
.site-name { color:var(--ink); font-family:Georgia,"Times New Roman",serif; font-size:clamp(1.7rem,3vw,2.25rem); text-decoration:none; line-height:1.25; letter-spacing:-.025em; }
.position { color:var(--muted); font-size:1.15rem; max-width:none; text-align:right; line-height:1.5; margin:0; }
.site-nav ul { list-style:none; display:flex; flex-wrap:wrap; gap:.25rem 1.4rem; padding:0; margin:0; }
.site-nav li { margin:0; }
.site-nav a { display:block; color:var(--text); text-decoration:none; font-size:.95rem; padding:.75rem 0 1rem; border-bottom:3px solid transparent; }
.site-nav a:hover { color:var(--accent-hover); border-color:var(--accent-hover); }
.site-nav a[aria-current] { color:var(--accent); border-color:var(--accent); }
.menu-toggle { display:none; }
.main-content { padding-block:2.5rem 4rem; min-height:48vh; }
.main-content a { font-weight:500; }
.main-content>p,.main-content>h2 { max-width:80ch; }
.page-publications .main-content>p:first-of-type { max-width:none; }
.page-teaching .main-content>p:first-of-type { max-width:none; }
.page-teaching .topic-label { color:#000; }
.page-teaching .topic-label a { font-weight:700; }
.cv-document { display:block; width:100%; height:80vh; min-height:600px; border:1px solid var(--line); }
.main-content p { overflow-wrap:anywhere; }
.about { display:grid; grid-template-columns:minmax(0,1fr) 270px; gap:2rem; align-items:start; }
.portrait { margin:0; align-self:center; }
.portrait img { width:100%; border-radius:3px; }
.contact { margin-top:2rem; padding-top:1.5rem; border-top:1px solid var(--line); }
.page-index .funding { margin-top:.5rem; margin-bottom:1rem; padding-block:2rem; border-top:1px solid var(--line); color:var(--muted); }
.page-index .contact { margin-top:0; padding-top:1rem; border-top:0; }
.contact h2 { margin-top:0; }
.contact p { line-height:1.9; }
.campus { margin:2.8rem 0 0; overflow:hidden; border-radius:3px; }
.campus img { width:100%; height:auto; margin-block:-1cm; object-fit:cover; object-position:center 55%; border-radius:3px; }
.page-index .contact { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.75fr); gap:2rem; align-items:stretch; }
.page-index .contact p { margin-bottom:0; }
.page-index .contact .campus { margin:0; align-self:start; }
.page-index .contact .campus img { width:100%; height:auto; margin:0; object-fit:contain; }
.page-group .main-content>p { max-width:none; }
.group-members h3 { font-size:1.4rem; margin:2rem 0 1rem; }
.group-members h3:first-child { margin-top:0; }
.member-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1.5rem; }
.member-grid figure { margin:0; }
.member-photo { width:100%; aspect-ratio:4/5; object-fit:cover; object-position:center; border-radius:3px; }
.member-grid figcaption { margin-top:.65rem; color:var(--ink); font-size:1.1rem; font-weight:500; }
.publication-list { padding:0 0 0 2.8rem; margin:2.5rem 0 0; max-width:95ch; }
.publication-list li { padding:1.5rem 0 1.5rem 1rem; border-top:1px solid var(--line); }
.publication-list li::marker { color:var(--muted); font-size:.95rem; font-variant-numeric:tabular-nums; }
.publication-heading { color:var(--ink); font-weight:500; font-size:1.05rem; line-height:1.6; }
.publication-heading a { font-weight:500; font-size:.9rem; }
.publication-meta { font-size:.95rem; color:var(--muted); margin:.6rem 0 0; line-height:1.65; }
.publication-meta b { color:var(--text); }
.movie-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2.5rem 2rem; margin-top:2.5rem; }
.movie-card { text-decoration:none; min-width:0; }
.movie-image { background:#0a1220; border:1px solid var(--line); border-radius:3px; overflow:hidden; aspect-ratio:1.6; }
.movie-image img { width:100%; height:100%; object-fit:contain; transition:transform .2s; }
.movie-card:hover img { transform:scale(1.025); }
.movie-card h2 { margin:.8rem 0 0; font-size:1.1rem; color:var(--accent); }
.movie-accordion { display:grid; gap:1rem; margin-top:2rem; }
.movie-panel { border:1px solid var(--line); border-radius:3px; }
.movie-panel summary { display:grid; grid-template-columns:220px minmax(0,1fr); gap:1.5rem; align-items:center; padding:1rem; cursor:pointer; list-style:none; }
.movie-panel summary::-webkit-details-marker { display:none; }
.movie-panel summary::after { content:"+"; grid-column:2; grid-row:1; justify-self:end; color:var(--accent); font-size:1.5rem; }
.movie-panel[open] summary::after { content:"−"; }
.movie-panel .movie-image { width:220px; }
.movie-panel-title { color:var(--accent); font-size:1.1rem; font-weight:600; padding-right:2rem; }
.movie-panel-body { border-top:1px solid var(--line); padding:1.5rem; }
.movie-panel-body .video-frame:last-child { margin-bottom:0; }

.video-frame { width:min(100%,900px); margin:2rem 0 3rem; background:#0a1220; aspect-ratio:780/480; }
.video-frame iframe { display:block; border:0; width:100%; height:100%; }
.event-heading { border-top:1px solid var(--line); padding-top:1.8rem; font-size:1.3rem; }
.event-heading u { text-decoration:none; }
.site-footer { padding-block:2rem; color:var(--muted); font-size:.875rem; }
.funding { display:grid; grid-template-columns:1fr; gap:1rem; padding-bottom:2rem; margin-bottom:1.5rem; border-bottom:1px solid var(--line); align-items:center; }
.funding p { margin:0; font-size:.875rem; line-height:1.7; }
.funding-logos { display:grid; grid-template-columns:1.036364fr 2.595156fr; width:100%; max-width:100%; align-items:center; gap:1.5rem; }
.page-index .funding-logos { grid-template-columns:2.27fr 1fr; width:min(100%,800px); margin-inline:auto; gap:2rem; }
.funding-logos img { width:100%; object-fit:contain; }
.footer-inner { display:flex; justify-content:space-between; align-items:start; gap:1rem; }
.credits { max-width:25rem; text-align:right; }
.credits summary { cursor:pointer; }
.credits p { font-size:.875rem; margin:1rem 0 0; }
.credits small { font-size:inherit; }
.statcounter { width:1px; height:1px; }
@media(max-width:850px) {
 .about { grid-template-columns:minmax(0,1fr) 210px; gap:2.5rem; }
 .site-nav ul { gap:.25rem 1rem; }
 .funding { grid-template-columns:1fr; gap:1.5rem; }
}
@media(max-width:640px) {
 .header-inner,.site-nav,.main-content,.site-footer { width:calc(100% - 48px); }
 .header-inner { display:block; padding:1.5rem 0 1rem; }
 .position { text-align:left; margin-top:.6rem; max-width:none; font-size:.9rem; }
 .menu-toggle:not([hidden]) { display:flex; justify-content:space-between; width:100%; align-items:center; border:0; background:transparent; color:var(--ink); font:inherit; padding:.8rem 0; cursor:pointer; }
 .site-nav ul { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 1rem; padding-bottom:.75rem; }
 .site-nav.enhanced .menu-toggle[aria-expanded="false"]+ul { display:none; }
 .site-nav a { padding:.6rem 0; }
 .main-content { padding-block:2.2rem 3rem; }
 .about { grid-template-columns:1fr; gap:1rem; }
 .portrait { grid-row:1; width:160px; }
 h1 { margin-bottom:1.3rem; }
 .contact { margin-top:1rem; }
 .page-index .contact { grid-template-columns:1fr; }
 .campus img { height:140px; margin-block:0; }
 .movie-grid { grid-template-columns:1fr; gap:2rem; }
 .movie-panel summary { grid-template-columns:100px minmax(0,1fr); gap:1rem; }
 .movie-panel .movie-image { width:100px; }
 .movie-panel-title { font-size:1rem; }
 .member-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.5rem 1rem; }
 .publication-list { padding-left:1.8rem; }
 .publication-list li { padding-left:.4rem; }
 .funding { display:flex; flex-direction:column; align-items:start; gap:1.5rem; }
 .funding-logos { width:100%; }
 .footer-inner { display:block; }
 .credits { text-align:left; margin-top:.6rem; }
}
@media(prefers-reduced-motion:reduce) { .movie-image img { transition:none; } }
@media print { .site-nav,.menu-toggle,.credits,.skip-link { display:none!important; } .header-inner,.main-content,.site-footer { width:100%; } .main-content { padding-block:1.5rem; } a { color:inherit; } }
