/* Page-specific styles. The shared kit remains byte-identical. */
/* Paint the browser canvas and overscroll area with the active theme. */
html{background:var(--color-bg)}
.site-header__tools,.site-brand,.site-brand__text{min-width:0}
.site-brand__affil{max-width:28em}
.lang-toggle button{min-height:44px}
.site-brand{min-height:44px}
.site-footer__contact{display:inline-flex;align-items:center;min-height:44px}
.skip{min-height:44px}
.site-header__inner{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--space-3) var(--space-6)}
.site-header__tools{display:contents}
.site-header .site-prefs{grid-column:2;grid-row:1;position:static;justify-self:end}
.site-header .lang-toggle{position:static}
.site-header__inner:has(.site-prefs) .site-brand{padding-right:0}
.site-nav{grid-column:1/-1;grid-row:2;min-width:0;margin:0}
.site-nav ul{flex-wrap:wrap;gap:var(--space-1) var(--space-2)}
.site-nav li{flex:none}
.site-nav a{justify-content:center;min-width:44px;font-size:var(--fs-xs);padding-inline:var(--space-2)}
.site-nav a:focus-visible{outline-offset:-3px}
main{flex:1;min-width:0}
.hero--circuit .container{padding-block:var(--space-16)}
.hero--circuit h1{max-width:22em;font-size:var(--fs-display)}
html[lang=en] .hero--circuit h1{font-size:var(--fs-3xl);max-width:27em;text-wrap:pretty}
.hero-affiliation{display:block;margin-top:var(--space-6);color:var(--color-on-band-muted);font-size:var(--fs-base)}
.hero-pi{display:block;margin-top:var(--space-3);font-family:var(--font-display);font-size:var(--fs-base)}
.section{padding-block:var(--space-12)}
.section h2{margin-bottom:var(--space-6)}
.section-heading{display:grid;grid-template-columns:1fr 2fr;gap:var(--space-10)}
.award{display:grid;grid-template-columns:1.15fr 1fr;align-items:center;gap:var(--space-12);padding-block:var(--space-12)}
.award figure{margin:0}
.award img{width:100%;height:auto;border-radius:var(--radius-lg)}
.award .num{font-size:var(--fs-xl);color:var(--color-text-muted);margin-bottom:var(--space-4)}
.award h2{font-size:var(--fs-xl);margin-bottom:var(--space-5)}
.award p{font-size:var(--fs-md)}
.divider{margin:0}
.docs{display:grid;grid-template-columns:1fr 1fr;gap:0 var(--space-10);margin:0;padding:0;list-style:none}
.docs li{padding-block:var(--space-6);border-top:1px solid var(--color-border)}
.docs h3{font-size:var(--fs-md);margin-bottom:var(--space-4)}
.docs h3 a{display:flex;align-items:center;min-height:44px;color:var(--color-heading);text-decoration:none}
.docs h3 a:hover{text-decoration:underline}
.docs p{color:var(--color-text-muted)}
.media-frame{position:relative;aspect-ratio:16/9;background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}
.media-placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:var(--space-4);font-family:var(--font-display);font-size:var(--fs-xs);color:var(--color-text-muted)}
.media-frame iframe{position:relative}
iframe{display:block;width:100%;height:100%;border:0;color-scheme:inherit}
.media-link{display:inline-flex;align-items:center;min-height:44px;margin-top:var(--space-3);font-family:var(--font-display);font-size:var(--fs-xs)}
.page-title{width:fit-content;max-width:100%;padding-block:var(--space-12) var(--space-8)}
.page-title::after{content:"";display:block;width:var(--heading-trace-width,100%);height:var(--space-1);margin-top:var(--space-6);background:var(--color-primary)}
.page-content{padding-bottom:var(--space-16)}
.page-content>.section:first-child{padding-top:var(--space-4)}
/* Keep each circuit trace, including its via, within the heading width. */
main .fx-h2{width:fit-content;max-width:100%}
main .fx-h2::after{width:var(--heading-trace-width,100%);max-width:100%}
.group{padding-block:var(--space-8)}
.group h2{margin-bottom:var(--space-6)}
.record-list{list-style:none;margin:0;padding:0}
.record{display:grid;grid-template-columns:18rem 1fr;gap:var(--space-8);padding-block:var(--space-5);border-top:1px solid var(--color-border)}
.record>.num{color:var(--color-text-muted);font-size:var(--fs-xs);padding-top:var(--space-1)}
.record p+p{margin-top:var(--space-2);color:var(--color-text-muted)}
.record ul{margin:0;padding-left:var(--space-5)}
.record li+li{margin-top:var(--space-3)}
.profile{display:grid;grid-template-columns:240px 1fr;align-items:start;gap:var(--space-10);padding-bottom:var(--space-8)}
.profile img{width:240px;height:auto;border-radius:var(--radius-lg)}
.profile h2{margin-bottom:var(--space-6)}
dl{margin:0}
.contact-details{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:var(--space-3) var(--space-6)}
dt{font-family:var(--font-display);font-size:var(--fs-xs);color:var(--color-text-muted);padding-top:var(--space-1)}
dd{margin:0;overflow-wrap:anywhere}
dd a{display:inline-flex;align-items:center;min-height:44px}
.links{display:flex;flex-wrap:wrap;gap:var(--space-2) var(--space-6);margin-top:var(--space-5)}
.links a{display:inline-flex;align-items:center;min-height:44px;font-family:var(--font-display);font-size:var(--fs-xs)}
.contact-block{display:grid;grid-template-columns:1fr 2fr;gap:var(--space-10)}
.contact-block h2{margin-bottom:var(--space-4)}
.contact-people{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-10);margin-block:var(--space-10)}
.person{border-top:1px solid var(--color-border);padding-top:var(--space-6)}
.person h2{font-size:var(--fs-lg);margin-block:var(--space-3) var(--space-6)}
.person p{margin-block:var(--space-4)}
.person .role{font-family:var(--font-display);font-size:var(--fs-xs);color:var(--color-text-muted);margin:0}
.booking{height:680px;margin-top:var(--space-6);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}
.facilities{margin-top:var(--space-10);display:grid;gap:var(--space-8)}
.facilities img{width:100%;height:auto;border-radius:var(--radius-lg)}
.news-item{display:grid;grid-template-columns:12rem 1fr;gap:var(--space-8);padding-block:var(--space-8);border-top:1px solid var(--color-border)}
.news-item h2{font-size:var(--fs-lg);max-width:30em;margin-bottom:var(--space-5)}
.news-item h2 a{display:flex;align-items:center;min-height:44px;text-decoration:none}
.news-item .num{font-size:var(--fs-xs);color:var(--color-text-muted)}
.source-link{display:inline-flex;align-items:center;min-width:44px;min-height:44px;margin-top:var(--space-4);font-family:var(--font-display);font-size:var(--fs-xs)}
.qa-item{padding-block:var(--space-6);border-top:1px solid var(--color-border);max-width:var(--measure)}
.qa-item h2{font-size:var(--fs-md);margin-bottom:var(--space-4)}
.qa-item .btn{margin-top:var(--space-5)}
.research-layout{display:grid;grid-template-columns:18rem minmax(0,1fr);gap:var(--space-12)}
.topic-index{align-self:start;font-family:var(--font-display);font-size:var(--fs-xs)}
.topic-index ul{list-style:none;margin:0;padding:0}
.topic-index a{display:flex;align-items:center;min-height:44px;padding-block:var(--space-3);border-top:1px solid var(--color-border);text-decoration:none;color:var(--color-text-muted)}
.topic-index a:hover{color:var(--color-link)}
.topic{padding-block:var(--space-8);border-top:1px solid var(--color-border);scroll-margin-top:var(--space-6)}
.topic:first-child{padding-top:0;border-top:0}
.topic h2{font-size:var(--fs-lg);margin-bottom:var(--space-6)}
.topic p+p{margin-top:var(--space-5)}
.topic .back{display:inline-flex;align-items:center;min-height:44px;font-family:var(--font-display);font-size:var(--fs-xs);margin-top:var(--space-4)}
.empty-state{padding-block:var(--space-6) var(--space-20);color:var(--color-text-muted)}
.copyright{font-size:var(--fs-xs);color:var(--color-text-muted);padding-bottom:var(--space-8)}
@media(max-width:720px){
 .site-header__inner{gap:var(--space-2);padding-bottom:var(--space-1)}
 .site-brand{padding-right:0}
 .site-nav ul{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;mask-image:linear-gradient(to right,black calc(100% - var(--space-6)),transparent);-webkit-mask-image:linear-gradient(to right,black calc(100% - var(--space-6)),transparent)}
 .site-nav li:last-child{padding-right:var(--space-8)}
 .hero--circuit .container{padding-block:var(--space-10)}
 .hero--circuit h1{font-size:var(--fs-2xl)}
 html[lang=en] .hero--circuit h1{font-size:var(--fs-xl)}
 .hero-affiliation{margin-top:var(--space-5)}
 .award,.section-heading,.contact-block,.contact-people,.profile,.research-layout{grid-template-columns:1fr;gap:var(--space-6)}
 .award{padding-block:var(--space-10)}
 .section{padding-block:var(--space-10)}
 .docs{grid-template-columns:1fr}
 .record,.news-item{grid-template-columns:1fr;gap:var(--space-3)}
 .page-title{padding-block:var(--space-8)}
 .page-content{padding-bottom:var(--space-10)}
 .profile img{width:180px}
 .contact-details{gap:var(--space-2) var(--space-4)}
 .topic-index{padding-bottom:var(--space-5)}
 .topic h2{font-size:var(--fs-md)}
}

/* homepage stat strip (numbers are counted from the research, projects and professor pages) */
.stats{padding-block:0 var(--space-10)}
.stats__list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4)}
.stats__list a{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-5) var(--space-6);border:1px solid var(--color-border);border-radius:var(--radius-lg);
  background:var(--color-surface);color:var(--color-text);text-decoration:none;transition:border-color var(--dur-2) var(--ease)}
.stats__list a:hover{border-color:var(--color-primary)}
.stats__list a:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}
.stats__num{font-family:var(--font-display);font-size:var(--fs-3xl);font-weight:700;line-height:1.1;color:var(--color-heading)}
.stats__label{font-size:var(--fs-sm);color:var(--color-text-muted)}
@media (max-width:720px){.stats__list{gap:var(--space-2)}.stats__list a{padding:var(--space-4) var(--space-3)}.stats__num{font-size:var(--fs-2xl)}}
