/* Claire Donnat — shared visual system */
:root{--ink:#20232b;--muted:#59616c;--accent:#153d64;--accent-dark:#0c2b49;--line:#dce0e5;--wash:#f2f6fa;--paper:#fff;--font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{margin:0;color:var(--ink);background:var(--paper);font:1.0625rem/1.7 var(--font-family);-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:4px}a:hover{color:var(--accent-dark)}a:focus-visible,button:focus-visible{outline:3px solid #3478b8;outline-offset:5px}img{max-width:100%;height:auto}button{font:inherit}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.25;font-weight:500}h1,h2{font-family:var(--font-family)}h1{font-size:clamp(2.7rem,5.4vw,4.5rem);letter-spacing:-.045em}h2{font-size:2.3rem;letter-spacing:-.025em}h3{font-size:1.2rem;font-weight:600}p{margin-bottom:1.15rem}ul{padding-left:1.3rem}li{margin-bottom:.5rem}strong{font-weight:650}[id]{scroll-margin-top:2rem}.skip-link{position:absolute;top:-6rem;left:1rem;padding:.6rem 1rem;background:white;z-index:10}.skip-link:focus{top:1rem}.site-header{border-top:4px solid var(--accent);border-bottom:1px solid var(--line)}.header-inner,.site-main,.site-footer{width:min(1160px,calc(100% - 96px));margin-inline:auto}.header-inner{min-height:104px;display:flex;justify-content:space-between;align-items:center;gap:32px}.wordmark{font-family:var(--font-family);font-size:1.55rem;color:var(--ink);text-decoration:none;line-height:1.15;white-space:nowrap}.wordmark span{display:block;margin-top:7px;color:var(--muted);font: .875rem/1.4 var(--font-family);letter-spacing:.03em;text-transform:uppercase}.primary-nav{display:flex;align-items:center;gap:27px}.primary-nav a{font-size:1rem;text-decoration:none;color:var(--muted);white-space:nowrap;padding:9px 0;border-bottom:2px solid transparent}.primary-nav a:hover,.primary-nav a[aria-current=page]{color:var(--accent);border-color:var(--accent)}.primary-nav .nav-lab{color:var(--accent);border:1px solid var(--line);padding:9px 15px}.primary-nav .nav-lab:hover{border-color:var(--accent)}.menu-toggle{display:none}.hero{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:90px;align-items:center;padding:76px 0 72px}.eyebrow{font-size:.9375rem;font-weight:650;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);margin-bottom:24px}.hero h1{font-size:clamp(3.4rem,6vw,5rem);line-height:1.1;margin-bottom:23px}.hero .role{font-size:1.2rem;line-height:1.5;margin-bottom:26px}.role a{text-decoration:none;color:inherit}.hero .bio{font-size:1.0625rem;max-width:620px;color:var(--muted)}.hero .bio a{color:var(--accent)}.hero-actions{display:flex;gap:24px;align-items:center;flex-wrap:wrap;margin-top:28px}.button{display:inline-flex;align-items:center;justify-content:center;padding:11px 22px;min-height:48px;background:var(--accent);border:1px solid var(--accent);color:white;text-decoration:none;font-weight:550;font-size:1.0625rem}.button:hover{background:var(--accent-dark);color:white}.button-outline{color:var(--accent);background:transparent}.button-outline:hover{background:var(--wash);color:var(--accent-dark)}.text-link{font-size:1.0625rem;font-weight:550}.portrait{margin:0;position:relative;padding:0 14px 14px 0;width:244px;max-width:100%;justify-self:center}.portrait::after{content:'';position:absolute;right:0;bottom:0;width:85%;height:65%;background:var(--accent);z-index:-1}.portrait img{display:block;width:100%;aspect-ratio:149/191;object-fit:cover;object-position:center}.section{padding:60px 0;border-top:1px solid var(--line)}.section-heading{display:flex;justify-content:space-between;align-items:baseline;gap:24px;margin-bottom:32px}.section-heading h2{margin:0}.section-heading .text-link{white-space:nowrap}.research-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.research-item{border-top:2px solid var(--accent);padding-top:22px}.research-number{font:500 1.1rem var(--font-family);color:var(--accent);margin-bottom:20px;display:block}.research-item h3{font-family:var(--font-family);font-weight:500;font-size:1.55rem;line-height:1.2;margin-bottom:18px}.research-item h3 a{color:var(--ink);text-decoration:none}.research-item h3 a:hover{color:var(--accent);text-decoration:underline}.research-item p{font-size:1.0625rem;color:var(--muted);margin-bottom:0}.lab-panel{background:var(--accent);color:white;padding:42px 46px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:50px;margin:14px 0 64px}.lab-panel .eyebrow{color:#d2e2f2;margin-bottom:12px}.lab-panel h2{font-size:2.4rem;margin-bottom:16px}.lab-panel p{max-width:630px;color:#eef4fb;margin:0}.lab-panel a{color:white}.lab-panel .button{background:white;color:var(--accent);border-color:white;white-space:nowrap}.lab-panel .button:hover{background:#e8f0f8}.publication{padding:25px 0;border-bottom:1px solid var(--line)}.publication:first-child{padding-top:0}.publication h2,.publication h3{font-family:var(--font-family);font-size:1.17rem;line-height:1.5;letter-spacing:0;font-weight:600;margin:6px 0}.publication h2 a,.publication h3 a{color:var(--ink);text-decoration:none}.publication h2 a:hover,.publication h3 a:hover{color:var(--accent);text-decoration:underline}.publication p{font-size:1.0625rem;color:var(--muted);margin:5px 0}.publication-meta{color:var(--accent)!important;font-size:.9375rem!important;letter-spacing:0;font-weight:600}.publication-list{list-style:none;margin:0;padding:0}.publication-links{display:flex;gap:18px;flex-wrap:wrap}.publication-links a{font-size:.9375rem}.contact-strip{display:grid;grid-template-columns:1fr 1fr;gap:70px}.contact-strip p{color:var(--muted);font-size:1.0625rem}.contact-strip h2{font-size:1.8rem}.site-footer{margin-top:28px;border-top:1px solid var(--line);padding:40px 0;display:flex;justify-content:space-between;gap:40px;font-size:1.0625rem}.footer-name{font:1.3rem var(--font-family);text-decoration:none;color:var(--ink)}.site-footer p{color:var(--muted);margin:8px 0;font-size:.9375rem}.footer-contact{text-align:right}.footer-links{display:flex;gap:18px;flex-wrap:wrap;margin-top:12px}.footer-links a{color:var(--muted);font-size:.9375rem}.site-footer .copyright{margin-top:19px;font-size:.9375rem}.page-heading{padding:64px 0 36px;border-bottom:1px solid var(--line);margin-bottom:38px}.page-heading h1{margin:0 0 20px}.page-intro{font-size:1.1rem;color:var(--muted);max-width:800px;margin:0}.page-content{padding-bottom:30px;max-width:100%}.page-content>p{max-width:850px}.page-content>h2{margin:48px 0 24px;font-size:2rem}.page-content>h3{margin-top:30px}.page-content hr{border:0;border-top:1px solid var(--line);margin:42px 0}.research-detail{display:grid;grid-template-columns:70px 1fr;gap:22px;padding:40px 0;border-bottom:1px solid var(--line)}.research-detail h2{font-size:2rem}.research-detail .research-number{font-size:1.5rem}.research-detail p,.research-detail ul{color:var(--muted);max-width:820px}.research-detail .paper-links{font-size:1.0625rem}.research-detail figure{margin:28px 0 0}.research-detail figcaption{font-size:.9375rem;color:var(--muted);margin-top:10px}.application-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px 44px}.application-grid h3{margin-bottom:12px}.application-grid p{font-size:1.0625rem}.timeline{margin:0}.timeline-row{display:grid;grid-template-columns:140px 1fr;gap:30px;padding:24px 0;border-bottom:1px solid var(--line)}.timeline-row dt{color:var(--accent);font-size:.9375rem}.timeline-row dd{margin:0}.timeline-row h3{margin:0 0 8px;font-size:1.08rem}.timeline-row p{margin:0;color:var(--muted);font-size:1.0625rem}.course-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin:36px 0}.course{padding:27px;background:var(--wash);border-top:2px solid var(--accent)}.course h2{font-size:1.6rem;margin:0}.notice{padding:24px 28px;background:var(--wash);border-left:3px solid var(--accent)}.archive__item{padding:25px 0;border-bottom:1px solid var(--line)}.archive__item h2{font-family:var(--font-family);font-size:1.25rem}.archive__item h3{margin-bottom:8px}.archive__item p{color:var(--muted)}.archive__item-teaser{max-width:200px}.list__item{padding:0}.page__date,.page__meta{font-size:.9375rem;color:var(--muted)}.talk-year{display:grid;grid-template-columns:100px 1fr;border-bottom:1px solid var(--line);padding:24px 0;gap:28px}.talk-year h2{font-size:1.8rem;color:var(--accent);margin:0}.talk-year p{margin:0;color:var(--muted)}
@media(min-width:1500px){.hero{padding-block:86px}.hero h1{font-size:5.2rem}}
@media(max-width:1050px){.header-inner,.site-main,.site-footer{width:calc(100% - 64px)}.primary-nav{gap:17px}.primary-nav a{font-size:1rem}.hero{gap:45px;grid-template-columns:minmax(0,1fr) 280px}.hero h1{font-size:4.5rem}.lab-panel{gap:25px;padding:32px}.wordmark{font-size:1.35rem}}
@media(max-width:950px){.header-inner{min-height:86px;flex-wrap:wrap;gap:0;padding-block:19px}.has-menu .menu-toggle{display:flex;align-items:center;gap:12px;background:transparent;border:1px solid var(--line);padding:7px 12px;font-size:1.0625rem;color:var(--ink)}.primary-nav{flex-basis:100%;flex-wrap:wrap;gap:10px 24px;margin-top:20px}.has-menu .primary-nav{display:none}.has-menu .primary-nav.is-open{display:flex}.primary-nav a{font-size:1rem}.hero{grid-template-columns:minmax(0,1fr) 235px;gap:30px;padding-block:52px}.hero h1{font-size:3.8rem}.hero .role{font-size:1.05rem}.hero .bio{font-size:1.0625rem}.research-grid{gap:24px}.research-item h3{font-size:1.4rem}.lab-panel{grid-template-columns:1fr}.lab-panel .button{justify-self:start}.course-grid{grid-template-columns:1fr}.course{padding:24px}.footer-links{justify-content:flex-end}}
@media(max-width:600px){.header-inner,.site-main,.site-footer{width:calc(100% - 40px)}.wordmark{font-size:1.4rem}.wordmark span{font-size:.875rem}.hero{grid-template-columns:1fr;gap:35px;padding-block:40px}.hero h1{font-size:clamp(2.4rem,9vw,3.2rem)}.hero .eyebrow{margin-bottom:18px}.hero .role{font-size:1.1rem}.hero .bio{font-size:1.0625rem}.hero-actions{gap:20px}.portrait{width:224px;max-width:78%;justify-self:center}.portrait img{aspect-ratio:149/191;object-position:center}.section{padding:40px 0}.section-heading{flex-direction:column;gap:14px;margin-bottom:25px}.section-heading h2,h2{font-size:2rem}.research-grid{grid-template-columns:1fr;gap:30px}.research-item{display:grid;grid-template-columns:28px 1fr;gap:0 12px;padding-top:18px}.research-number{grid-row:1/3;margin-top:3px}.research-item h3{font-size:1.55rem;margin-bottom:12px}.research-item p{grid-column:2}.lab-panel{margin-bottom:42px;padding:28px 24px;gap:25px}.lab-panel h2{font-size:2.15rem}.contact-strip{grid-template-columns:1fr;gap:30px}.site-footer{flex-direction:column;gap:25px;margin-top:0;padding:32px 0}.footer-contact{text-align:left}.footer-links{justify-content:flex-start;gap:12px 20px}.page-heading{padding:40px 0 25px;margin-bottom:28px}.page-heading h1{font-size:clamp(2rem,8vw,2.9rem)}.page-intro{font-size:1rem}.research-detail{grid-template-columns:1fr;gap:4px;padding:28px 0}.research-detail .research-number{margin-bottom:15px}.research-detail h2{font-size:1.75rem}.application-grid{grid-template-columns:1fr}.timeline-row{grid-template-columns:1fr;gap:8px;padding:21px 0}.talk-year{grid-template-columns:1fr;gap:12px}.publication h2,.publication h3{font-size:1.1rem}.publication-meta{font-size:.9375rem!important}.page-content{overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.jump-links{display:flex;flex-wrap:wrap;gap:10px 24px;padding:20px 0;margin:20px 0 35px;border-block:1px solid var(--line);font-size:1.0625rem}.content-section{margin:42px 0}.content-section>h2{font-size:2rem;margin-bottom:30px}.funding-note{font-size:.9375rem}.page-content .page-intro{margin-bottom:20px}

.lab-panel.with-logo{grid-template-columns:112px minmax(0,1fr) auto;gap:28px}.lab-logo-link{display:block;background:white;padding:6px;line-height:0}.lab-logo-link img{display:block;width:100%;aspect-ratio:1;object-fit:contain}.lab-panel.with-logo h2{font-size:2.2rem}
@media(max-width:1050px){.lab-panel.with-logo{grid-template-columns:96px minmax(0,1fr)}.lab-panel.with-logo>.button{grid-column:2;justify-self:start}}
@media(max-width:600px){.lab-panel.with-logo{grid-template-columns:1fr;gap:24px}.lab-logo-link{width:96px}.lab-panel.with-logo>.button{grid-column:1}}

/* Lab logo precedes the name at every viewport size. */
.header-identity{order:1;display:flex;align-items:center;gap:16px;min-width:0}.header-inner .primary-nav{order:2;margin-left:auto}.header-lab{display:block;flex-shrink:0;line-height:0}.header-lab img{display:block;width:64px;height:64px;object-fit:contain}.header-inner .menu-toggle{order:3}
@media(max-width:950px){.header-inner{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}.header-identity{grid-column:1;grid-row:1}.header-inner .menu-toggle{grid-column:1;grid-row:2;justify-content:space-between}.header-inner .primary-nav{grid-column:1;grid-row:3;margin:0}.header-lab img{width:56px;height:56px}}
@media(max-width:600px){.header-inner{gap:12px}.header-identity{gap:12px}}

/* Dark header with high-contrast links and controls. */
.site-header{background:var(--accent);color:#fff;border-top-color:var(--accent);border-bottom-color:var(--accent-dark)}
.site-header .wordmark,.site-header .wordmark span,.site-header .primary-nav a{color:#fff}
.site-header .primary-nav a:hover,.site-header .primary-nav a[aria-current=page]{color:#fff;border-bottom-color:#fff}
.site-header .menu-toggle{color:#fff;border-color:rgba(255,255,255,.5)}
.site-header .menu-toggle:hover,.site-header .menu-toggle[aria-expanded=true]{background:rgba(255,255,255,.1)}
.site-header a:focus-visible,.site-header button:focus-visible{outline-color:#fff}
.site-header .header-lab{background:#fff;border-radius:4px;overflow:hidden}
