@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Instrument+Serif&display=swap');

:root{color-scheme:light;--ink:#182631;--muted:#55616b;--paper:#faf9f5;--tint:#eeeee8;--navy:#101f2e;--navy-deep:#0b1723;--gold:#eac080;--line:#d9dad2;--serif:"Instrument Serif",Georgia,serif;--sans:"DM Sans",system-ui,sans-serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font:1rem/1.65 var(--sans)}
[hidden]{display:none!important}
a{color:inherit;text-underline-offset:.24em}
a:hover{text-decoration:underline}
:focus-visible{outline:3px solid #b77b31;outline-offset:5px}
button,input,select{font:inherit}
button,summary{cursor:pointer}
img{display:block;max-width:100%;height:auto}
figure,p,h1,h2,h3{margin:0}
h1,h2,h3{line-height:1.07}
h1,h2{font-family:var(--serif);font-weight:400}
h2{font-size:clamp(3rem,5vw,4.75rem);letter-spacing:-.025em}
h3{font-size:1.18rem;line-height:1.32}
.wrap{width:min(1120px,calc(100% - 72px));margin-inline:auto}
.skip{position:fixed;z-index:4;top:8px;left:8px;transform:translateY(-160%);background:white;padding:8px 14px}
.skip:focus{transform:none}
.top{background:var(--navy-deep);color:#f7f1e7;border-bottom:1px solid #ffffff20}
.topinner{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.top a,.profiles a{text-decoration:none}
.top a:hover,.profiles a:hover{color:var(--gold)}
.brand{display:flex;align-items:center;gap:11px;font-weight:700;white-space:nowrap}
nav{display:flex;gap:clamp(14px,2.25vw,34px);font-size:.88rem;color:#e0e6ea}
.language{font-size:.78rem;letter-spacing:.12em;border:1px solid #ffffff3d;padding:6px 11px}
.hero{background:radial-gradient(ellipse at 85% 35%,#263b4a 0%,transparent 55%),var(--navy);color:#f7f1e7}
.intro{min-height:520px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,min(33%,330px));align-items:center;gap:clamp(32px,7vw,100px);padding-block:64px}
.eyebrow{display:flex;align-items:center;gap:11px;color:var(--gold);font-size:.75rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.eyebrow i{height:1px;width:25px;background:currentColor}
h1{font-size:clamp(3.6rem,6.2vw,6.55rem);line-height:.92;letter-spacing:-.045em;margin:22px 0 25px}
h1 span{color:var(--gold)}
.role{font-size:1rem;color:#f0d4a8;font-weight:600}
.lede{margin-top:15px;max-width:43ch;color:#d2dce3;font-size:1.12rem}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.button{display:inline-flex;align-items:center;justify-content:center;gap:14px;text-decoration:none;font-weight:700;font-size:.88rem;border:1px solid transparent;padding:10px 16px;min-height:46px}
.primary{background:var(--gold);color:var(--navy-deep)}
.primary:hover{background:#f5d3a0}
.secondary{border-color:#ffffff65}
.secondary:hover{background:#ffffff10}
.hero-visual{align-self:start;justify-self:end;width:min(100%,320px);padding:7px;border:1px solid #dcb87c80;background:#0b17234d}
.hero-visual img{width:100%;aspect-ratio:4/5;object-fit:cover}
.hero-visual figcaption{display:flex;flex-wrap:wrap;gap:3px 12px;justify-content:space-between;padding:9px 2px 0;font-size:.75rem;color:#e9e0d1}
.profiles{display:flex;justify-content:space-between;gap:12px 24px;flex-wrap:wrap;padding-block:19px;border-top:1px solid #ffffff2d}
.profiles a{font-size:.85rem;color:#e0e6ea;font-weight:600}
.profiles span{color:var(--gold);margin-left:4px}
.section{padding-block:76px;scroll-margin-top:12px}
.tinted{background:var(--tint)}
.sectionhead{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:34px}
.sectionhead p{max-width:41ch;color:var(--muted)}
.cards{display:grid;grid-template-columns:repeat(3,1fr);border-block:1px solid var(--line)}
.cards article{display:flex;flex-direction:column;align-items:start;padding:26px;border-left:1px solid var(--line)}
.cards article:first-child{border-left:0;padding-left:0}
.cards h3{font:400 clamp(1.9rem,3vw,2.65rem)/1 var(--serif)}
.cards p{margin:12px 0 17px;color:var(--muted)}
.cards a{margin-top:auto;font-size:.87rem;font-weight:700}
details summary{font-weight:700;padding:14px 0}
.projects{margin-top:22px;border-bottom:1px solid var(--line)}
.timeline,.publications{list-style:none;padding:0;margin:0}
.timeline li,.publications li{display:grid;gap:16px;align-items:start;padding:16px 0;border-top:1px solid var(--line)}
.timeline li{grid-template-columns:135px 1fr}
.timeline p,.publications p{color:var(--muted);margin-top:3px;font-size:.92rem}
time,.timeline li>span{color:var(--muted);font-size:.9rem;font-weight:700;font-variant-numeric:tabular-nums}
.filters{display:grid;grid-template-columns:minmax(0,1fr) minmax(118px,180px) auto;align-items:end;gap:12px;margin-bottom:20px}
.filters label{display:grid;gap:5px;font-size:.83rem;font-weight:700}
.filters input,.filters select{width:100%;height:44px;color:var(--ink);background:var(--paper);border:1px solid #a9ada6;padding:0 10px;border-radius:0}
.count{color:var(--muted);padding-bottom:8px;min-width:68px;text-align:right;font-size:.86rem}
.empty{padding:18px 0}
.publications li{grid-template-columns:67px 1fr auto}
.publications li:last-child,.cvlist li:last-child{border-bottom:1px solid var(--line)}
.publications a{font-size:.84rem;font-weight:700;white-space:nowrap}
.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(25px,6vw,85px)}
.split p{margin:8px 0 22px;color:var(--muted)}
.courses details{border-top:1px solid var(--line)}
.courses details:last-child{border-bottom:1px solid var(--line)}
.courses details p{margin-top:0}
.cvmore{margin-top:25px}
.print{border-color:#a9ada6;background:transparent;color:var(--ink)}
.future{display:grid;grid-template-columns:1.4fr 1fr;gap:38px;padding:clamp(24px,5vw,60px);background:var(--navy);color:#f7f1e7;align-items:center}
.future h2{margin:12px 0}
.future p:not(.eyebrow),.future ul{color:#d2dce3}
.future ul{padding-left:19px;margin-bottom:0}
footer{background:var(--navy-deep);color:#f7f1e7;padding:38px 0}
.footerinner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:22px}
footer h2{font-size:2.4rem;margin-bottom:7px}
footer address{font-style:normal;color:#d2dce3}
@media(max-width:820px){.intro{min-height:auto;gap:26px}.topinner{flex-wrap:wrap;padding-block:13px}.top nav{order:3;width:100%;padding-bottom:3px;flex-wrap:wrap}.section{padding-block:56px}}
@media(max-width:620px){.wrap{width:calc(100% - 36px)}.intro{grid-template-columns:minmax(0,1fr);padding-block:38px}.introtext h1{font-size:clamp(2.8rem,10vw,4.8rem)}.hero-visual{justify-self:start;width:min(100%,310px)}.sectionhead{align-items:start;flex-direction:column;gap:10px}.cards,.split,.future{grid-template-columns:1fr;gap:0}.cards article,.cards article:first-child{padding:20px 0;border-left:0}.cards article+article{border-top:1px solid var(--line)}.future>div+div{margin-top:22px}.courses{margin-top:10px}.timeline li{grid-template-columns:92px 1fr}.publications li{grid-template-columns:44px 1fr;gap:5px 10px}.publications a{grid-column:2}.filters{grid-template-columns:minmax(0,1fr) minmax(106px,135px)}.count{grid-column:1/-1;text-align:left;padding:0}.profiles{justify-content:flex-start}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
@media print{.top,.skip,.actions,.profiles,.filters,.print,.hero-visual,#physics,.footerinner>a{display:none!important}.hero,.tinted,footer{background:white;color:black}.intro{min-height:0;padding-block:12px;display:block}.eyebrow,.role,.lede,footer address,h1 span{color:black}h1{font-size:38pt}.section{padding:16px 0}.sectionhead{margin-bottom:12px}.publications li,.timeline li,.cards article{break-inside:avoid}.wrap{width:100%}}

.physics-library{margin-top:26px}
.physics-library h3{font-family:var(--serif);font-size:2rem;font-weight:400}
.resource-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:16px}
.resource-list:empty{display:none}
.resource-list article{min-width:0;border:1px solid var(--line);padding:18px}
.resource-list article h4{margin:0 0 8px}
.resource-list article :is(video,iframe,img){width:100%;margin-block:10px;border:0}
.resource-list article iframe{aspect-ratio:16/9}
@media(max-width:620px){.resource-list{grid-template-columns:1fr}}

.language-picker{display:flex;gap:4px;flex-shrink:0}
.language-picker .language{font-weight:700;padding:6px 8px}
.language-picker .language[aria-current="page"]{background:var(--gold);border-color:var(--gold);color:var(--navy-deep)}
.physics-library{margin-top:0}
.physics-library h2 + p{margin-top:10px}
#physics .future{margin-top:28px}


.library-tracks {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  margin-top: 26px;
}
.library-track {
  min-width: 0;
  padding: clamp(18px, 3vw, 30px);
  background: var(--tint);
  border-top: 2px solid #b77b31;
}
.library-track > p {
  margin-top: 8px;
  color: var(--muted);
}
.library-track ul, .library-references ul {
  padding-left: 1.25rem;
}
.library-track details, .library-references {
  border-top: 1px solid var(--line);
}
.library-track details p {
  padding-bottom: 12px;
}
.library-references {
  margin-top: 26px;
}
@media (max-width: 620px) {
  .library-tracks { grid-template-columns: 1fr; }
}

#research-questions { padding-top: 0; }
.research-question { border-top: 1px solid var(--line); }
.research-question:last-child { border-bottom: 1px solid var(--line); }
.research-question summary { font-size: 1.08rem; }
.research-question p { max-width: 78ch; margin: 0 0 12px; color: var(--muted); }
.research-question-source { font-size: .86rem; }
.research-question-source a { color: var(--ink); font-weight: 700; }
@media (max-width: 1020px) {
  .topinner { flex-wrap: wrap; padding-block: 13px; }
  .top nav { order: 3; width: 100%; padding-bottom: 3px; flex-wrap: wrap; }
}

.library-lab-link { margin-top: 20px; }
.lab-hero { padding: clamp(42px, 7vw, 90px) 0; background: var(--navy); color: #f7f1e7; }
.lab-hero h1 { font-size: clamp(2.9rem, 7.5vw, 6.5rem); line-height: 1; max-width: 15ch; overflow-wrap: anywhere; }
.lab-hero p:last-child { max-width: 65ch; color: #d2dce3; }
.lab-section > p { max-width: 78ch; margin-top: 15px; }
.lab-controls { display: flex; flex-wrap: wrap; gap: 18px 36px; margin-block: 23px; }
.lab-controls > div { display: grid; grid-template-columns: minmax(120px, 225px) 3rem; gap: 6px; align-items: center; }
.lab-controls label { grid-column: 1 / -1; font-weight: 700; }
.lab-controls input { width: 100%; margin: 0; accent-color: #17647a; }
.lab-controls output { text-align: right; font-variant-numeric: tabular-nums; }
.lab-chart { width: min(100%, 770px); padding: 12px; border: 1px solid var(--line); background: #fff; }
.lab-chart canvas { display: block; width: 100%; height: auto; }
.lab-chart figcaption { font-weight: 700; padding: 6px 10px; }
.lab-code-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; margin-top: 24px; }
.lab-code-grid article { min-width: 0; padding: 16px; border: 1px solid var(--line); }
.lab-code-grid article p { margin: 9px 0; }
.lab-code-grid pre { overflow-x: auto; background: var(--navy); color: #f7f1e7; padding: 12px; font-size: .82rem; }
.lab-reading { padding-top: 0; }
@media (max-width: 820px) { .lab-code-grid { grid-template-columns: 1fr; } }

.contact-portrait {
  width: 108px;
  height: auto;
  flex: none;
  border: 1px solid #dcb87c80;
}
