@charset "UTF-8";
:root {
  --paper:#ffffff;
  --ink:#121a2b;
  --muted:#536078;
  --line:#dce3ed;
  --accent:#2254df;
  --sage:#eef3ff;
  --serif:'Segoe UI',Arial,sans-serif;
  --sans:'Segoe UI',Arial,sans-serif;
  --max:1280px
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:100px
}
body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased
}
body.modal-open {
  overflow:hidden
}
::selection {
  background:#dfb69d;
  color:#24372b
}
a {
  color:inherit;
  text-decoration:none
}
button,input {
  font:inherit
}
button,a,input {
  -webkit-tap-highlight-color:transparent
}
button {
  color:inherit;
  cursor:pointer
}
button:disabled {
  cursor:default
}
a,button,input {
  outline-offset:5px
}
a:focus-visible,button:focus-visible,input:focus-visible,pre:focus-visible {
  outline:2px solid var(--accent)
}
button {
  border:0
}
img {
  display:block;
  max-width:100%;
  height:auto
}
svg {
  display:block
}
h1,h2,h3,p,figure {
  margin:0
}
h1,h2 {
  font-weight:400;
  font-family:var(--serif);
  line-height:1.08;
  letter-spacing:-.045em
}
em {
  font-weight:400
}
h2 {
  font-size:clamp(40px,4.5vw,60px)
}
h3 {
  font-weight:500;
  line-height:1.35
}
p {
  color:var(--muted)
}
[hidden] {
  display:none!important
}
.section-shell {
  width:min(var(--max),calc(100% - 112px));
  margin-inline:auto
}
.eyebrow {
  font-size:10px;
  letter-spacing:.15em;
  font-weight:650;
  line-height:1.5;
  color:var(--muted)
}
.section-number {
  margin-bottom:22px
}
.text-link {
  display:inline-flex;
  align-items:center;
  gap:20px;
  font-size:13px;
  font-weight:600;
  white-space:nowrap;
  position:relative;
  background:none;
  padding:5px 0;
  border-bottom:1px solid var(--ink);
  line-height:1.65
}
.text-link span {
  font-size:18px;
  font-weight:400;
  transition:transform .2s
}
.text-link:hover span {
  transform:translate(2px,-2px)
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:28px;
  padding:13px 21px;
  font-size:13px;
  border:1px solid transparent;
  border-radius:2px;
  line-height:1.5;
  transition:background .2s,transform .2s
}
.button-dark {
  background:var(--ink);
  color:var(--paper)
}
.button-dark:hover {
  background:#425743;
  transform:translateY(-2px)
}
.button span {
  font-size:20px;
  font-weight:400
}
.skip-link {
  position:fixed;
  top:-100px;
  left:20px;
  background:var(--ink);
  color:#fff;
  padding:12px 20px;
  z-index:100
}
.skip-link:focus {
  top:12px
}
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0
}
.site-header {
  height:94px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  width:min(var(--max),calc(100% - 112px));
  margin:auto;
  border-bottom:1px solid var(--line);
  position:relative;
  z-index:10
}
.wordmark {
  display:flex;
  align-items:center;
  gap:24px
}
.monogram {
  font-family:var(--serif);
  font-size:35px;
  line-height:1;
  letter-spacing:-3px
}
.monogram span {
  font-size:21px;
  color:var(--accent);
  display:inline-block;
  transform:translate(6px,-7px);
  letter-spacing:0
}
.wordmark-label {
  font-size:10px;
  letter-spacing:.15em;
  font-weight:650;
  border-left:1px solid var(--line);
  padding-left:24px
}
.site-header nav {
  display:flex;
  align-items:center;
  gap:30px;
  font-size:12px
}
.site-header nav>a {
  position:relative
}
.site-header nav>a:hover,.site-header nav>a.active {
  color:var(--accent)
}
.site-header .nav-contact {
  margin-left:9px;
  border:1px solid #dce3ed;
  padding:9px 16px;
  border-radius:2px;
  display:flex;
  gap:24px
}
.menu-toggle {
  display:none;
  background:none
}
.hero {
  display:grid;
  grid-template-columns:1.18fr .82fr;
  column-gap:65px;
  padding-top:71px
}
.hero-copy {
  padding-top:14px
}
.hero .eyebrow {
  font-size:9px;
  letter-spacing:.13em;
  display:flex;
  align-items:center;
  gap:9px
}
.status-dot {
  width:6px;
  height:6px;
  border-radius:50%;
  background:#7a8867;
  display:inline-block;
  box-shadow:0 0 0 4px #f0f4fb
}
.hero h1 {
  font-size:clamp(70px,7.6vw,106px);
  margin:21px 0 24px;
  white-space:nowrap;
  letter-spacing:-.06em
}
.hero h1 em {
  color:var(--accent)
}
.hero-statement {
  font-family:var(--serif);
  font-size:clamp(28px,2.5vw,36px);
  color:var(--ink);
  line-height:1.25;
  letter-spacing:-.025em
}
.hero-statement em {
  color:#6b735e
}
.hero-description {
  font-size:15px;
  max-width:490px;
  margin-top:21px;
  line-height:1.85
}
.hero-actions {
  display:flex;
  align-items:center;
  gap:29px;
  margin-top:28px
}
.hero-affiliations {
  display:flex;
  margin-top:38px;
  gap:27px
}
.hero-affiliations>span {
  font-size:13px;
  font-weight:650;
  line-height:1.4
}
.hero-affiliations>span+span {
  border-left:1px solid var(--line);
  padding-left:27px
}
.hero-affiliations small {
  display:block;
  font-size:10px;
  font-weight:400;
  color:var(--muted);
  margin-top:7px
}
.hero-visual {
  position:relative;
  padding:12px 30px 0 9px;
  align-self:start;
  max-width:445px;
  justify-self:end;
  width:100%
}
.portrait {
  position:relative;
  z-index:1
}
.portrait img {
  width:100%;
  height:443px;
  object-fit:cover;
  object-position:50% 34%;
  border-radius:150px 150px 2px 2px;
  filter:saturate(.77);
  background:#e3e2db
}
.portrait figcaption {
  display:flex;
  justify-content:space-between;
  font-size:8px;
  letter-spacing:.09em;
  padding-top:13px;
  color:var(--muted)
}
.portrait-grid {
  position:absolute;
  inset:44px 0 3px -35px;
  background-image:radial-gradient(#9ca48d 1px,transparent 1px);
  background-size:14px 14px;
  opacity:.36;
  transform:rotate(-4deg);
  border-radius:50%
}
.hero-visual:before {
  content:'';
  position:absolute;
  inset:-5px 13px 33px 27px;
  border:1px solid #adb89b;
  border-radius:180px 180px 2px 2px;
  transform:rotate(4deg)
}
.portrait-note {
  display:flex;
  align-items:center;
  gap:18px;
  position:absolute;
  z-index:2;
  bottom:55px;
  left:-27px;
  background:var(--paper);
  border:1px solid var(--line);
  padding:15px 23px;
  box-shadow:0 3px 14px #27382e09;
  transform:rotate(-4deg);
  font-family:var(--serif);
  font-style:italic;
  font-size:17px;
  line-height:1.25
}
.note-symbol {
  font-size:36px;
  color:var(--accent);
  font-family:var(--sans);
  font-style:normal
}
.hero-bottom {
  grid-column:1/-1;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:33px 0 29px;
  margin-top:51px;
  border-top:1px solid var(--line);
  font-size:8px;
  letter-spacing:.1em;
  color:var(--muted)
}
.research-loop {
  display:flex;
  align-items:center;
  gap:18px;
  font-family:var(--serif);
  font-size:16px;
  letter-spacing:0;
  color:var(--ink)
}
.research-loop i {
  font-family:var(--sans);
  font-size:12px;
  font-style:normal;
  color:var(--accent)
}
.hero-bottom>a {
  display:flex;
  gap:16px;
  align-items:center
}
.hero-bottom>a span {
  font-size:18px
}
.section-heading {
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:50px;
  margin-bottom:42px
}
.section-intro {
  font-size:14px;
  max-width:353px;
  line-height:1.9;
  padding-bottom:6px
}
.news-section {
  padding:62px 0 65px;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line)
}
.compact {
  margin-bottom:28px
}
.compact h2 {
  font-size:43px
}
.compact .section-number {
  margin-bottom:12px
}
.news-row {
  display:grid;
  grid-template-columns:110px 1fr 22px;
  gap:28px;
  padding:19px 0;
  border-top:1px solid var(--line);
  align-items:start
}
.news-date {
  font-size:10px;
  letter-spacing:.07em;
  color:var(--muted);
  padding-top:4px;
  text-transform:uppercase
}
.news-row h3 {
  font-size:14px;
  font-weight:600
}
.news-row p {
  font-size:12px;
  line-height:1.7;
  margin-top:5px;
  max-width:810px
}
.news-arrow {
  font-size:20px;
  line-height:1.4;
  transition:transform .2s
}
.news-row:hover .news-arrow {
  transform:translate(2px,-2px)
}
.news-row:hover h3 {
  color:var(--accent)
}
.news-tag {
  display:inline-block;
  font-size:8px;
  font-weight:650;
  letter-spacing:.08em;
  color:var(--accent);
  background:#edf2ff;
  padding:3px 7px;
  margin-left:10px;
  vertical-align:middle;
  white-space:nowrap
}
.news-more {
  font-size:11px;
  margin-top:9px;
  margin-left:138px;
  border:0
}
.research-section {
  padding-block:91px 96px
}
.project-grid {
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:36px 25px
}
.project-card {
  grid-column:span 2;
  position:relative;
  border-bottom:1px solid var(--line);
  padding-bottom:22px
}
.project-card.featured {
  grid-column:span 3
}
.project-button {
  display:block;
  text-align:left;
  padding:0;
  background:transparent;
  width:100%
}
.project-image {
  height:215px;
  overflow:hidden;
  position:relative;
  background:#f1f4fa;
  border-radius:2px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px solid #dce3ed
}
.project-card.featured .project-image {
  height:293px
}
.project-image img {
  width:100%;
  height:100%;
  object-fit:contain;
  padding:15px;
  transition:transform .5s
}
.project-card:hover .project-image img {
  transform:scale(1.025)
}
.project-image.object-image {
  background:#edf1f5
}
.project-image.object-image img {
  padding:0;
  width:215px;
  height:215px
}
.image-label {
  position:absolute;
  top:12px;
  left:12px;
  background:#ffffffed;
  border:1px solid #dce3ed;
  padding:4px 7px;
  font-size:8px;
  letter-spacing:.08em;
  z-index:1
}
.project-type {
  font-size:9px;
  letter-spacing:.1em;
  text-transform:uppercase;
  margin-top:20px;
  color:var(--accent);
  line-height:1.6;
  min-height:15px
}
.project-title-row {
  display:flex;
  justify-content:space-between;
  align-items:start;
  gap:15px;
  margin-top:9px
}
.project-title-row .project-title {
  font-family:var(--serif);
  font-size:23px;
  font-weight:400;
  letter-spacing:-.025em
}
.featured .project-title-row .project-title {
  font-size:29px
}
.project-title-row>span:last-child {
  font-size:23px;
  line-height:1.2;
  color:var(--accent)
}
.project-description {
  font-size:12px;
  line-height:1.8;
  margin-top:12px;
  display:block;
  color:var(--muted);
  max-width:94%
}
.project-meta {
  font-size:9px;
  color:var(--muted);
  letter-spacing:.04em;
  margin-top:20px;
  display:block
}
.motion-toggle {
  position:absolute;
  right:10px;
  top:176px;
  z-index:2;
  background:var(--paper);
  font-size:10px;
  padding:5px 9px;
  border:1px solid #c7d0e0;
  border-radius:2px
}
.vision-section {
  background:#293c31;
  color:var(--paper);
  position:relative;
  overflow:hidden
}
.vision-section:after {
  content:'';
  position:absolute;
  width:570px;
  height:570px;
  right:-350px;
  top:-340px;
  border:1px solid #f7f6f223;
  border-radius:50%;
  box-shadow:0 0 0 40px #f7f6f207,0 0 0 80px #f7f6f205
}
.vision-inner {
  padding-block:75px 78px;
  display:grid;
  grid-template-columns:1.3fr 1fr;
  gap:110px
}
.vision-main .eyebrow {
  color:#c2cbb9;
  margin-bottom:25px
}
.vision-main h2 {
  font-size:clamp(40px,4.1vw,57px)
}
.vision-main h2 em {
  color:#d2b090
}
.vision-main>p:not(.eyebrow) {
  font-size:14px;
  color:#c6cec3;
  line-height:1.85;
  margin-top:26px;
  max-width:510px
}
.vision-link {
  font-size:12px;
  display:inline-flex;
  gap:20px;
  border-bottom:1px solid #8b9a87;
  padding-bottom:7px;
  margin-top:26px;
  color:#f1ede4
}
.vision-principles {
  padding-top:8px
}
.vision-principles>div {
  position:relative;
  padding:17px 0 22px 36px;
  border-bottom:1px solid #61725f
}
.vision-principles>div:first-child {
  padding-top:0
}
.vision-principles>div:last-child {
  border:0;
  padding-bottom:0
}
.vision-principles span {
  position:absolute;
  left:0;
  font-size:10px;
  color:#caaa8d;
  top:20px
}
.vision-principles>div:first-child span {
  top:4px
}
.vision-principles h3 {
  font-family:var(--serif);
  font-size:23px;
  font-weight:400
}
.vision-principles p {
  font-size:12px;
  color:#b9c4b8;
  margin-top:7px;
  line-height:1.85
}
.publications-section {
  padding-block:96px 85px
}
.publication-toolbar {
  display:flex;
  align-items:center;
  gap:20px;
  justify-content:space-between;
  border-bottom:1px solid var(--line);
  padding-bottom:20px
}
.publication-filters {
  display:flex;
  gap:7px;
  flex-wrap:wrap
}
.filter-button {
  font-size:10px;
  white-space:nowrap;
  padding:8px 13px;
  background:transparent;
  border:1px solid var(--line);
  border-radius:30px;
  line-height:1.5;
  transition:background .2s
}
.filter-button.active {
  background:var(--ink);
  border-color:var(--ink);
  color:var(--paper)
}
.filter-button:hover:not(.active) {
  background:var(--sage)
}
.search-label {
  display:flex;
  align-items:center;
  gap:8px;
  width:180px
}
.search-label svg {
  width:16px;
  height:16px;
  flex-shrink:0;
  color:var(--muted)
}
.search-label input {
  width:100%;
  min-width:0;
  border:0;
  background:transparent;
  color:var(--ink);
  font-size:11px;
  padding:7px 0
}
.publication-row {
  display:grid;
  grid-template-columns:133px 1fr 80px;
  gap:30px;
  padding:29px 0;
  border-bottom:1px solid var(--line);
  align-items:start
}
.publication-venue {
  display:inline-block;
  font-size:9px;
  font-weight:600;
  border:1px solid #ced8eb;
  color:#324c77;
  padding:5px 8px;
  border-radius:2px;
  line-height:1.5
}
.venue-science {
  border-color:#c9d7ff;
  color:#1b46b7;
  background:#edf2ff
}
.venue-neurips {
  color:#5535a0;
  background:#f4f0ff;
  border-color:#ded4f6
}
.publication-year {
  font-size:10px;
  color:var(--muted);
  margin-top:7px;
  display:block
}
.publication-row h3 {
  font-size:16px;
  font-weight:500;
  line-height:1.5;
  max-width:790px;
  letter-spacing:-.015em
}
.publication-row h3 a:hover {
  color:var(--accent)
}
.publication-authors {
  font-size:11px;
  margin-top:8px;
  line-height:1.7
}
.publication-authors strong {
  color:var(--ink);
  font-weight:600
}
.publication-summary {
  font-size:12px;
  line-height:1.8;
  margin-top:9px;
  max-width:780px
}
.publication-actions {
  display:flex;
  gap:8px;
  justify-content:end;
  padding-top:2px;
  flex-direction:column;
  align-items:end
}
.publication-actions a,.publication-actions button {
  font-size:10px;
  background:transparent;
  white-space:nowrap;
  padding:0;
  border-bottom:1px solid #b6c4da
}
.publication-actions a:hover,.publication-actions button:hover {
  color:var(--accent)
}
.publication-footer {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px;
  padding-top:25px;
  color:var(--muted);
  font-size:10px
}
.publication-footer .text-link {
  font-size:11px
}
.empty-state {
  padding:35px 0;
  font-size:14px;
  border-bottom:1px solid var(--line)
}
.about-section {
  padding-block:75px 95px;
  border-top:1px solid var(--line);
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:105px
}
.about-copy h2 {
  font-size:47px;
  margin-bottom:28px
}
.about-copy>p:not(.eyebrow) {
  font-size:13px;
  line-height:1.95;
  margin-top:16px
}
.about-copy .text-link {
  margin-top:21px;
  font-size:12px
}
.positions {
  padding-top:7px
}
.position-list {
  list-style:none;
  padding:0;
  margin:20px 0 0
}
.position-list li {
  display:grid;
  grid-template-columns:91px 1fr;
  position:relative;
  gap:17px;
  padding:17px 0;
  border-top:1px solid var(--line)
}
.position-date {
  font-size:8px;
  letter-spacing:.07em;
  padding-top:4px;
  color:var(--muted)
}
.position-list h3 {
  font-size:13px;
  font-weight:600
}
.position-list p {
  font-size:11px;
  margin-top:3px;
  line-height:1.7
}
.position-list small {
  display:block;
  font-size:9px;
  margin-top:5px;
  color:var(--accent)
}
.position-list .position-upcoming {
  background:#f1f5ff;
  padding:18px 15px;
  margin:0 -15px 6px;
  border:1px solid #d1dcf6;
  border-radius:2px;
  padding-right:36px
}
.position-upcoming .position-date {
  color:#234aba;
  font-weight:600
}
.position-arrow {
  position:absolute;
  right:15px;
  top:21px;
  font-size:19px
}
.contact-section {
  background:#e9ebdf;
  border-block:1px solid #d9ddcd;
  padding-block:54px 51px
}
.contact-section .eyebrow {
  margin-bottom:23px
}
.contact-main {
  display:flex;
  align-items:center;
  justify-content:space-between
}
.contact-main h2 {
  font-size:clamp(42px,5vw,68px)
}
.contact-arrow {
  border:1px solid #a6ae93;
  width:90px;
  height:90px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:46px;
  font-weight:300;
  line-height:1;
  transition:background .2s,color .2s
}
.contact-arrow:hover {
  background:var(--ink);
  color:var(--paper)
}
.contact-bottom {
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:30px;
  margin-top:30px
}
.contact-bottom p {
  font-size:12px;
  line-height:1.9
}
.email-link {
  font-size:16px;
  border-bottom:1px solid #9aa48a;
  padding-bottom:4px
}
.site-footer {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:27px;
  padding-block:30px
}
.footer-name {
  font-family:var(--serif);
  font-size:22px;
  letter-spacing:-.025em
}
.footer-name span {
  font-family:var(--sans);
  font-size:15px;
  color:var(--accent);
  display:inline-block;
  margin-left:8px
}
.site-footer p {
  font-size:10px;
  flex:1
}
.site-footer>div {
  display:flex;
  gap:21px;
  font-size:10px
}
.site-footer small {
  font-size:9px;
  color:var(--muted);
  border-left:1px solid var(--line);
  padding-left:21px
}
dialog {
  border:1px solid var(--line);
  padding:44px;
  background:var(--paper);
  color:var(--ink);
  border-radius:5px;
  max-height:90dvh;
  width:min(850px,calc(100% - 40px));
  overscroll-behavior:contain;
  box-shadow:0 20px 90px #0003
}
dialog::backdrop {
  background:#09162ac2;
  backdrop-filter:blur(4px)
}
.dialog-close {
  position:absolute;
  top:12px;
  right:15px;
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  font-size:18px;
  border-radius:50%;
  background:#f1f4fa;
  z-index:2
}
.dialog-close:hover {
  background:#dce6fc
}
.project-dialog h2 {
  font-size:42px;
  margin-top:13px;
  margin-bottom:20px
}
.dialog-description {
  font-size:15px;
  line-height:1.9;
  max-width:720px
}
.dialog-figure {
  margin-top:27px;
  background:#fff;
  padding:17px;
  border:1px solid var(--line);
  border-radius:2px;
  position:relative
}
.dialog-figure img {
  width:100%;
  max-height:420px;
  object-fit:contain
}
.dialog-figure .dialog-gif {
  max-height:300px
}
.dialog-caption {
  font-size:10px;
  color:var(--muted);
  margin-top:10px;
  line-height:1.7
}
.dialog-video {
  width:100%;
  max-height:480px;
  background:#101a30;
  margin-top:25px
}
.dialog-links {
  display:flex;
  gap:20px;
  flex-wrap:wrap;
  margin-top:25px
}
.dialog-links .text-link {
  font-size:12px;
  white-space:normal
}
.dialog-note {
  font-size:12px;
  margin-top:16px
}
.dialog-subheading {
  font-size:18px;
  margin-top:30px;
  font-weight:500
}
.citation-dialog {
  max-width:730px
}
.citation-dialog h2 {
  font-size:35px;
  margin-top:10px
}
.citation-dialog pre {
  font-family:Consolas,monospace;
  font-size:12px;
  line-height:1.7;
  white-space:pre-wrap;
  overflow-wrap:anywhere;
  background:#f0f4fb;
  padding:20px;
  margin:25px 0
}
.citation-status {
  font-size:12px;
  margin-top:15px;
  min-height:20px
}
.noscript-note {
  padding:20px;
  text-align:center;
  border:1px solid var(--line)
}
.noscript-note a {
  text-decoration:underline
}
@media(min-width:1500px) {
  .hero {
    padding-top:85px
  }
  .portrait img {
    height:465px
  }
  .hero-description {
    max-width:510px
  }
  .hero h1 {
    margin-top:25px
  }
}
@media(max-width:1100px) {
  .section-shell,.site-header {
    width:calc(100% - 72px)
  }
  .hero {
    gap:35px
  }
  .hero h1 {
    font-size:81px
  }
  .hero .eyebrow {
    font-size:8px
  }
  .hero-statement {
    font-size:31px
  }
  .hero-visual {
    padding-right:10px
  }
  .portrait img {
    height:414px
  }
  .portrait-note {
    left:-12px;
    font-size:15px;
    padding:12px 17px
  }
  .portrait figcaption {
    font-size:7px
  }
  .hero-description {
    font-size:14px
  }
  .hero-affiliations {
    gap:19px
  }
  .hero-affiliations>span+span {
    padding-left:19px
  }
  .hero-actions {
    gap:21px
  }
  .hero-bottom>span {
    display:none
  }
  .hero-bottom {
    justify-content:space-between
  }
  .vision-inner {
    gap:55px
  }
  .about-section {
    gap:55px
  }
  .project-card.featured .project-image {
    height:252px
  }
  .project-image {
    height:185px
  }
  .project-image.object-image img {
    width:185px;
    height:185px
  }
  .motion-toggle {
    top:146px
  }
  .publication-toolbar {
    align-items:start
  }
  .publication-filters {
    gap:5px
  }
  .filter-button {
    padding:8px 10px;
    font-size:9px
  }
  .search-label {
    width:148px;
    flex-shrink:0
  }
  .site-footer {
    gap:20px
  }
  .site-footer p {
    display:none
  }
  .site-footer>div {
    margin-left:auto
  }
  .site-header nav {
    gap:23px
  }
}
@media(max-width:800px) {
  .section-shell,.site-header {
    width:calc(100% - 44px)
  }
  .site-header {
    height:79px
  }
  .wordmark-label {
    font-size:9px
  }
  .menu-toggle {
    display:flex;
    align-items:center;
    gap:14px;
    font-size:12px;
    padding:8px 0 8px 16px
  }
  .menu-toggle span {
    font-size:20px
  }
  .site-header nav {
    display:none;
    position:absolute;
    top:78px;
    left:-22px;
    right:-22px;
    background:var(--paper);
    padding:20px 24px;
    box-shadow:0 15px 20px #28362e0c;
    border-bottom:1px solid var(--line);
    align-items:stretch
  }
  .site-header nav.open {
    display:flex;
    flex-direction:column;
    gap:0
  }
  .site-header nav>a {
    padding:12px 0
  }
  .site-header .nav-contact {
    margin:10px 0 4px;
    padding:10px 14px;
    width:fit-content
  }
  .hero {
    padding-top:43px;
    grid-template-columns:1.1fr .9fr;
    gap:23px
  }
  .hero-copy {
    padding-top:7px
  }
  .hero h1 {
    font-size:clamp(51px,8.5vw,69px);
    white-space:normal;
    margin-block:20px
  }
  .hero .eyebrow {
    font-size:7px;
    letter-spacing:.08em;
    gap:7px
  }
  .hero-statement {
    font-size:25px
  }
  .hero-description {
    font-size:12px
  }
  .hero-visual {
    padding:19px 2px 0 5px;
    margin-top:25px
  }
  .portrait img {
    height:332px;
    border-radius:130px 130px 2px 2px
  }
  .portrait-note {
    left:0;
    bottom:44px;
    font-size:13px;
    padding:9px 12px;
    gap:12px
  }
  .note-symbol {
    font-size:26px
  }
  .portrait figcaption>span+span {
    display:none
  }
  .hero-actions {
    flex-wrap:wrap;
    gap:15px
  }
  .hero-actions .button {
    padding:11px 14px;
    font-size:11px;
    gap:14px
  }
  .hero-actions .text-link {
    font-size:11px;
    gap:10px
  }
  .hero-affiliations {
    gap:16px;
    margin-top:25px
  }
  .hero-affiliations>span {
    font-size:10px
  }
  .hero-affiliations small {
    font-size:8px
  }
  .hero-affiliations>span+span {
    padding-left:16px
  }
  .hero-bottom {
    margin-top:30px;
    padding-block:23px
  }
  .research-loop {
    font-size:14px;
    gap:15px
  }
  .hero-bottom>a {
    font-size:7px;
    gap:10px
  }
  .section-heading {
    gap:30px
  }
  .section-intro {
    max-width:280px;
    font-size:12px
  }
  h2 {
    font-size:42px
  }
  .news-section {
    padding-block:43px
  }
  .compact h2 {
    font-size:37px
  }
  .compact .text-link {
    font-size:11px;
    gap:12px
  }
  .news-row {
    grid-template-columns:86px 1fr 18px;
    gap:17px
  }
  .news-row h3 {
    font-size:13px
  }
  .news-date {
    font-size:9px
  }
  .news-more {
    margin-left:103px
  }
  .research-section {
    padding-block:62px
  }
  .project-grid {
    gap:27px 18px
  }
  .project-card,.project-card.featured {
    grid-column:span 3
  }
  .project-card:last-child {
    grid-column:span 6;
    display:block
  }
  .project-card:last-child .project-button {
    display:grid;
    grid-template-columns:1fr 1fr;
    column-gap:23px
  }
  .project-card:last-child .project-image {
    grid-row:span 5;
    height:205px
  }
  .project-card:last-child .project-type {
    margin-top:10px
  }
  .project-card:last-child .project-meta {
    margin-top:13px
  }
  .project-card.featured .project-image,.project-image {
    height:213px
  }
  .project-image.object-image img {
    height:213px;
    width:213px
  }
  .motion-toggle {
    top:174px
  }
  .featured .project-title-row .project-title,.project-title-row .project-title {
    font-size:24px
  }
  .project-type {
    font-size:8px
  }
  .project-description {
    font-size:11px
  }
  .vision-inner {
    gap:40px;
    grid-template-columns:1.1fr 1fr;
    padding-block:53px
  }
  .vision-main h2 {
    font-size:38px
  }
  .vision-main>p:not(.eyebrow) {
    font-size:12px
  }
  .vision-principles h3 {
    font-size:21px
  }
  .vision-principles p {
    font-size:11px
  }
  .vision-link {
    font-size:10px;
    gap:10px
  }
  .publications-section {
    padding-block:65px
  }
  .publications-section .section-heading {
    align-items:end
  }
  .publications-section .section-heading>.text-link {
    font-size:10px;
    gap:10px
  }
  .publication-toolbar {
    flex-direction:column;
    gap:14px
  }
  .search-label {
    width:100%;
    border:1px solid var(--line);
    padding:3px 10px;
    border-radius:2px
  }
  .publication-row {
    grid-template-columns:103px 1fr 55px;
    gap:18px;
    padding-block:23px
  }
  .publication-venue {
    font-size:8px
  }
  .publication-row h3 {
    font-size:14px
  }
  .publication-summary {
    font-size:11px
  }
  .publication-authors {
    font-size:10px
  }
  .publication-actions a,.publication-actions button {
    font-size:9px
  }
  .publication-footer {
    font-size:9px
  }
  .publication-footer .text-link {
    font-size:10px
  }
  .about-section {
    grid-template-columns:1fr 1fr;
    gap:35px;
    padding-block:58px 65px
  }
  .about-copy h2 {
    font-size:34px
  }
  .about-copy>p:not(.eyebrow) {
    font-size:12px
  }
  .position-list li {
    grid-template-columns:70px 1fr;
    gap:10px
  }
  .position-date {
    font-size:7px
  }
  .position-list h3 {
    font-size:11px
  }
  .position-list p {
    font-size:10px
  }
  .position-list small {
    font-size:8px
  }
  .positions>.eyebrow {
    font-size:9px
  }
  .contact-main h2 {
    font-size:46px
  }
  .contact-arrow {
    width:67px;
    height:67px;
    font-size:35px
  }
  .contact-bottom p {
    font-size:10px
  }
  .email-link {
    font-size:13px
  }
  .site-footer {
    gap:15px
  }
  .site-footer>div {
    gap:14px
  }
  .site-footer small {
    flex-basis:100%;
    border:0;
    padding:0;
    text-align:center
  }
  .footer-name {
    font-size:21px
  }
}
@media(max-width:560px) {
  html {
    scroll-padding-top:25px
  }
  .section-shell,.site-header {
    width:calc(100% - 40px)
  }
  .hero {
    grid-template-columns:1fr;
    padding-top:34px;
    gap:0
  }
  .hero .eyebrow {
    font-size:7.6px;
    letter-spacing:.1em
  }
  .hero h1 {
    font-size:77px;
    margin-block:20px 19px;
    letter-spacing:-.065em
  }
  .hero-statement {
    font-size:31px
  }
  .hero-description {
    font-size:14px;
    line-height:1.8;
    margin-top:18px;
    max-width:100%
  }
  .hero-actions {
    gap:26px;
    margin-top:24px
  }
  .hero-actions .button {
    font-size:12px;
    padding:12px 15px;
    gap:19px
  }
  .hero-affiliations {
    gap:22px;
    margin-top:29px
  }
  .hero-affiliations>span {
    font-size:12px
  }
  .hero-affiliations small {
    font-size:9px
  }
  .hero-affiliations>span+span {
    padding-left:22px
  }
  .hero-visual {
    justify-self:center;
    max-width:310px;
    margin-top:35px;
    width:calc(100% - 50px);
    padding-top:12px
  }
  .portrait img {
    height:335px;
    border-radius:140px 140px 2px 2px
  }
  .portrait figcaption {
    font-size:7px;
    padding-top:15px
  }
  .portrait figcaption>span+span {
    display:block;
    font-size:6px
  }
  .portrait-note {
    bottom:45px;
    left:-21px;
    font-size:15px;
    padding:12px 16px
  }
  .hero-visual:before {
    inset:-1px -10px 31px 16px
  }
  .portrait-grid {
    inset:40px -20px 0 -25px
  }
  .hero-bottom {
    display:flex;
    justify-content:center;
    margin-top:32px;
    padding-block:24px
  }
  .hero-bottom>a {
    display:none
  }
  .research-loop {
    font-size:17px;
    gap:18px
  }
  .news-section {
    padding-block:37px
  }
  .section-heading {
    display:block;
    margin-bottom:30px
  }
  .compact {
    display:flex;
    align-items:end;
    gap:13px
  }
  .compact .text-link {
    font-size:9px;
    gap:8px
  }
  .compact .section-number {
    font-size:8px;
    margin-bottom:12px
  }
  .compact h2 {
    font-size:36px
  }
  .news-row {
    grid-template-columns:1fr 16px;
    gap:7px 12px;
    padding-block:17px
  }
  .news-date {
    grid-column:1;
    grid-row:1;
    font-size:8px
  }
  .news-row>div {
    grid-column:1;
    grid-row:2
  }
  .news-arrow {
    grid-column:2;
    grid-row:2;
    font-size:18px
  }
  .news-row h3 {
    font-size:13px;
    line-height:1.6
  }
  .news-tag {
    font-size:7px;
    margin-left:6px
  }
  .news-row p {
    font-size:11px;
    margin-top:5px
  }
  .news-more {
    margin-left:0;
    margin-top:5px;
    font-size:10px
  }
  .section-number {
    font-size:9px;
    margin-bottom:17px
  }
  .research-section {
    padding-block:50px 55px
  }
  h2 {
    font-size:42px
  }
  .section-intro {
    margin-top:22px;
    max-width:100%;
    font-size:13px;
    padding:0
  }
  .project-grid {
    grid-template-columns:1fr;
    gap:28px
  }
  .project-card,.project-card.featured,.project-card:last-child {
    grid-column:auto
  }
  .project-card.featured .project-image,.project-image {
    height:230px
  }
  .project-card:last-child .project-button {
    display:block
  }
  .project-card:last-child .project-image {
    height:230px
  }
  .project-card:last-child .project-type {
    margin-top:20px
  }
  .project-card:last-child .project-meta {
    margin-top:20px
  }
  .project-image.object-image img {
    height:230px;
    width:230px
  }
  .motion-toggle {
    top:190px
  }
  .project-title-row .project-title,.featured .project-title-row .project-title {
    font-size:26px
  }
  .project-description {
    font-size:13px;
    margin-top:10px
  }
  .project-meta {
    font-size:9px;
    margin-top:15px
  }
  .project-card {
    padding-bottom:23px
  }
  .project-type {
    font-size:9px;
    margin-top:17px
  }
  .vision-inner {
    grid-template-columns:1fr;
    gap:35px;
    padding-block:45px
  }
  .vision-main h2 {
    font-size:43px
  }
  .vision-main .eyebrow {
    font-size:9px;
    margin-bottom:22px
  }
  .vision-main>p:not(.eyebrow) {
    font-size:13px;
    margin-top:20px
  }
  .vision-link {
    font-size:11px;
    margin-top:23px
  }
  .vision-principles {
    padding-top:0
  }
  .vision-principles>div {
    padding-bottom:17px;
    padding-top:17px
  }
  .vision-principles h3 {
    font-size:23px
  }
  .vision-principles p {
    font-size:12px
  }
  .vision-principles span {
    top:21px
  }
  .publications-section {
    padding-block:53px
  }
  .publications-section .section-heading>.text-link {
    margin-top:18px;
    font-size:11px
  }
  .publication-filters {
    gap:7px
  }
  .filter-button {
    font-size:9px;
    padding:7px 10px
  }
  .publication-toolbar {
    padding-bottom:15px
  }
  .publication-row {
    grid-template-columns:1fr;
    gap:12px;
    padding-block:23px
  }
  .publication-row>div:first-child {
    display:flex;
    align-items:center;
    gap:10px
  }
  .publication-year {
    margin:0;
    font-size:9px
  }
  .publication-venue {
    font-size:9px
  }
  .publication-row h3 {
    font-size:15px;
    line-height:1.55
  }
  .publication-authors {
    font-size:10px
  }
  .publication-summary {
    font-size:12px
  }
  .publication-actions {
    justify-content:start;
    flex-direction:row;
    gap:18px;
    align-items:center;
    padding-top:0
  }
  .publication-actions a,.publication-actions button {
    font-size:10px
  }
  .publication-footer {
    display:block;
    font-size:10px
  }
  .publication-footer .text-link {
    margin-top:15px;
    font-size:11px
  }
  .about-section {
    grid-template-columns:1fr;
    gap:40px;
    padding-block:49px 50px
  }
  .about-copy h2 {
    font-size:41px;
    margin-bottom:24px
  }
  .about-copy>p:not(.eyebrow) {
    font-size:13px
  }
  .positions {
    padding-top:0
  }
  .positions>.eyebrow {
    font-size:9px
  }
  .position-list {
    margin-top:20px
  }
  .position-list li {
    grid-template-columns:85px 1fr;
    gap:14px;
    padding-block:17px
  }
  .position-date {
    font-size:8px
  }
  .position-list h3 {
    font-size:13px
  }
  .position-list p {
    font-size:11px
  }
  .position-list small {
    font-size:9px
  }
  .position-list .position-upcoming {
    margin-inline:-8px;
    padding-inline:8px 26px
  }
  .position-arrow {
    right:11px
  }
  .contact-section {
    padding-block:39px 35px
  }
  .contact-section .eyebrow {
    font-size:9px;
    margin-bottom:20px
  }
  .contact-main {
    gap:15px
  }
  .contact-main h2 {
    font-size:37px
  }
  .contact-arrow {
    width:48px;
    height:48px;
    font-size:29px;
    flex-shrink:0
  }
  .contact-bottom {
    display:block;
    margin-top:22px
  }
  .contact-bottom p {
    font-size:12px
  }
  .email-link {
    font-size:15px;
    display:inline-block;
    margin-top:19px
  }
  .site-footer {
    padding-block:25px;
    justify-content:space-between;
    gap:21px
  }
  .footer-name {
    font-size:22px
  }
  .site-footer>div {
    margin:0;
    gap:15px;
    flex-basis:100%;
    font-size:10px
  }
  .site-footer small {
    text-align:left;
    flex-basis:auto;
    font-size:8px;
    order:1
  }
  .site-footer>.footer-name {
    order:0
  }
  .site-footer>div {
    order:2
  }
  dialog {
    padding:36px 21px 24px;
    width:calc(100% - 24px);
    max-height:93dvh
  }
  .project-dialog h2 {
    font-size:34px;
    margin-top:13px
  }
  .dialog-description {
    font-size:13px
  }
  .dialog-figure {
    padding:8px;
    margin-top:20px
  }
  .dialog-caption {
    font-size:9px
  }
  .dialog-links {
    gap:14px
  }
  .dialog-links .text-link {
    font-size:11px
  }
  .citation-dialog pre {
    font-size:10px;
    padding:13px
  }
  .citation-dialog h2 {
    font-size:31px
  }
}
@media(max-width:370px) {
  .hero h1 {
    font-size:65px
  }
  .hero .eyebrow {
    font-size:6.7px
  }
  .hero-statement {
    font-size:28px
  }
  .hero-actions {
    gap:17px
  }
  .hero-actions .button {
    font-size:11px
  }
  .hero-affiliations {
    gap:17px
  }
  .hero-affiliations>span+span {
    padding-left:17px
  }
  .hero-affiliations>span {
    font-size:11px
  }
  .hero-affiliations small {
    font-size:8px
  }
  .research-loop {
    gap:13px
  }
  .compact .text-link {
    font-size:8px;
    gap:6px
  }
  .contact-main h2 {
    font-size:32px
  }
  .contact-arrow {
    width:42px;
    height:42px;
    font-size:25px
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*:before,*:after {
    animation:none!important;
    transition:none!important
  }
  .project-card:hover .project-image img {
    transform:none
  }
}
@media print {
  .site-header,.hero-visual,.hero-bottom,.hero-actions,.publication-toolbar,.project-grid,.contact-arrow,dialog,.news-more,.publication-actions,.site-footer>div {
    display:none!important
  }
  body {
    background:#fff;
    color:#000;
    font-size:11pt
  }
  .section-shell {
    width:100%
  }
  .hero,.vision-inner,.about-section {
    display:block;
    padding:20px 0
  }
  .hero h1 {
    font-size:50px
  }
  .hero-description {
    max-width:none
  }
  .hero-affiliations {
    margin-top:20px
  }
  .hero-statement {
    font-size:24px
  }
  section {
    break-inside:auto
  }
  .news-section,.research-section,.publications-section,.contact-section {
    padding:25px 0
  }
  .vision-section {
    background:#fff;
    color:#000
  }
  .vision-section p,.vision-main .eyebrow {
    color:#444!important
  }
  .vision-main h2 em {
    color:#333
  }
  .vision-principles {
    display:none
  }
  .publication-row {
    break-inside:avoid;
    padding:15px 0;
    grid-template-columns:110px 1fr
  }
  .section-heading {
    margin-bottom:15px
  }
  h2,.about-copy h2,.contact-main h2 {
    font-size:30px
  }
  .news-row {
    padding:12px 0
  }
  .positions {
    margin-top:25px
  }
  .contact-bottom {
    margin-top:15px
  }
  .site-footer {
    padding:20px 0
  }
}
/* Let grid content shrink at narrow viewport widths. */
.hero>* {
  min-width:0
}
.project-title {
  display:block;
  font-weight:400;
  line-height:1.35
}
.project-type {
  display:block
}
@media(max-width:560px) {
  .hero-copy {
    width:100%
  }
  .research-loop {
    gap:clamp(10px,3.8vw,18px)
  }
  .hero h1 {
    font-size:clamp(62px,19.7vw,77px)
  }
}
@media(max-width:370px) {
  .research-loop {
    font-size:14px;
    gap:8px
  }
}

/* Research theme: crisp white, cobalt accents, and a stronger content hierarchy. */
:root { --mono:'Cascadia Code',Consolas,monospace; }
html { scroll-padding-top:32px; }
::selection { background:#cddcff; color:#102657; }
button,input,select,textarea { font:inherit; }
button,a,input,select,textarea { -webkit-tap-highlight-color:transparent; outline-offset:5px; }
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,pre:focus-visible { outline:3px solid var(--accent); }
button:disabled { cursor:wait; opacity:.65; }
h1,h2 { font-family:var(--sans); font-weight:730; line-height:1.06; letter-spacing:-.055em; }
h2,.compact h2 { font-size:clamp(44px,4vw,56px); }
h3 { font-weight:650; letter-spacing:-.02em; }
em { font-style:normal; font-weight:inherit; }
h2 em { color:var(--accent); }
.eyebrow { font-family:var(--mono); font-size:11px; letter-spacing:.08em; line-height:1.6; }
.text-link { font-size:13px; font-weight:650; gap:18px; padding:6px 0; }
.text-link:hover { color:var(--accent); border-color:var(--accent); }
.button { padding:14px 21px; font-size:14px; font-weight:650; border-radius:4px; }
.button-dark { background:var(--accent); color:#fff; }
.button-dark:hover { background:#153dae; }
.site-header { height:92px; }
.monogram { font-family:var(--sans); font-weight:750; font-size:33px; letter-spacing:-2px; }
.monogram span { font-size:20px; transform:translate(5px,-8px); }
.wordmark-label { font-family:var(--mono); font-size:11px; letter-spacing:.07em; }
.site-header nav { font-size:13px; font-weight:550; }
.site-header .nav-contact { border-color:var(--line); border-radius:4px; }
.hero { grid-template-columns:minmax(0,1fr) 250px; column-gap:64px; padding-top:40px; }
.hero-copy { padding-top:0; }
.hero .eyebrow { font-size:15px; letter-spacing:.025em; gap:11px; color:var(--accent); }
.status-dot { width:7px; height:7px; flex-shrink:0; background:var(--accent); box-shadow:0 0 0 4px #eaf0ff; }
.hero h1 { font-size:32px; font-weight:620; margin:14px 0 18px; letter-spacing:-.035em; white-space:normal; }
.hero h1 em { color:var(--ink); font-style:italic; }
.hero-statement { font-family:var(--sans); font-size:clamp(38px,3.35vw,48px); font-weight:700; color:var(--ink); line-height:1.14; letter-spacing:-.045em; text-wrap:pretty; }
.hero-statement em { color:var(--accent); font-style:italic; }
.hero-description { font-size:16px; max-width:660px; margin-top:18px; line-height:1.75; }
.hero-actions { flex-wrap:wrap; gap:26px; margin-top:22px; }
.hero-affiliations { flex-wrap:wrap; margin-top:24px; gap:26px; }
.hero-affiliations>span { font-size:15px; }
.hero-affiliations>span+span { padding-left:26px; }
.hero-affiliations small { font-size:11px; }
.hero-visual { padding:0; align-self:center; max-width:250px; margin-top:0; }
.portrait img { width:220px; height:220px; margin-inline:auto; object-position:50% 25%; border-radius:50%; filter:none; background:#edf0f5; border:4px solid #fff; box-shadow:0 0 0 1px var(--line),0 0 0 7px var(--sage); }
.portrait figcaption { font-family:var(--mono); justify-content:center; flex-wrap:wrap; gap:2px 10px; font-size:8px; letter-spacing:.02em; padding-top:16px; }
.portrait-grid { display:none; }
.hero-visual:before { display:none; }
.portrait-note { position:relative; bottom:auto; left:auto; justify-content:center; margin-top:14px; padding:0; gap:10px; background:none; border:0; box-shadow:none; transform:none; font-family:var(--sans); font-style:italic; font-size:14px; font-weight:450; line-height:1.45; color:var(--muted); }
.note-symbol { font-size:25px; }
.hero-bottom { gap:25px; padding:20px 0; margin-top:28px; font-family:var(--mono); font-size:10px; letter-spacing:.04em; }
.research-loop { font-family:var(--sans); font-size:16px; font-weight:550; letter-spacing:-.01em; gap:17px; }
.research-loop i { font-size:14px; }
.section-heading { gap:50px; margin-bottom:44px; }
.section-heading>div { min-width:0; }
.section-intro { font-size:15px; flex:0 0 310px; max-width:310px; line-height:1.8; }
.news-section { padding:69px 0 73px; }
.compact { margin-bottom:35px; }
.compact .section-number { margin-bottom:18px; }
.news-row { grid-template-columns:115px minmax(0,1fr) 24px; padding:23px 0; }
.news-date { font-family:var(--mono); font-size:11px; letter-spacing:.035em; padding-top:5px; }
.news-row h3 { font-size:18px; font-weight:650; }
.news-row p { font-size:14px; line-height:1.75; margin-top:7px; max-width:900px; }
.news-arrow { font-size:23px; color:var(--accent); }
.news-tag { font-size:9px; padding:4px 8px; border-radius:2px; }
.news-more { font-size:12px; margin-top:10px; margin-left:143px; color:var(--accent); }
.research-section { padding-block:98px 104px; }
.project-grid { grid-template-columns:repeat(6,minmax(0,1fr)); gap:43px 26px; }
.project-card { min-width:0; padding-bottom:24px; }
.project-image { height:224px; background:#f5f7fa; border-radius:4px; border-color:var(--line); }
.project-card.featured .project-image { height:308px; }
.project-image.object-image img { width:224px; height:224px; }
.image-label { font-family:var(--mono); font-size:9px; letter-spacing:.04em; padding:5px 8px; }
.project-type { font-family:var(--mono); font-size:10px; letter-spacing:.04em; margin-top:22px; }
.project-title-row .project-title { font-family:var(--sans); font-size:26px; font-weight:650; letter-spacing:-.04em; line-height:1.2; }
.featured .project-title-row .project-title { font-size:31px; }
.project-description { font-size:14px; line-height:1.8; margin-top:14px; max-width:96%; }
.project-meta { font-family:var(--mono); font-size:10px; letter-spacing:0; }
.motion-toggle { top:184px; background:#fff; font-size:11px; padding:6px 10px; border-radius:3px; }
.vision-section { background:#101a30; color:#fff; }
.vision-section:after { height:4px; width:100%; inset:0 0 auto; background:var(--accent); border:0; border-radius:0; box-shadow:none; }
.vision-inner { padding-block:90px; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); gap:95px; }
.vision-main .eyebrow { color:#b3c0db; margin-bottom:26px; }
.vision-main h2 { font-size:clamp(42px,3.7vw,52px); }
.vision-main h2 em { color:#83a6ff; }
.vision-main>p:not(.eyebrow) { font-size:15px; color:#c0cce1; margin-top:27px; max-width:600px; }
.vision-link { font-size:13px; border-color:#71809c; color:#fff; margin-top:28px; }
.vision-link:hover { border-color:#a9c1ff; color:#a9c1ff; }
.vision-principles { align-self:center; }
.vision-principles>div { padding:23px 0 26px 39px; border-color:#34425f; }
.vision-principles span { font-family:var(--mono); font-size:12px; color:#8caeff; top:29px; }
.vision-principles h3 { font-family:var(--sans); font-size:24px; font-weight:600; letter-spacing:-.03em; }
.vision-principles p { font-size:14px; color:#b9c7df; margin-top:9px; line-height:1.8; }
.publications-section { padding-block:100px 95px; }
.publication-toolbar { gap:22px; padding-bottom:23px; }
.publication-filters { gap:8px; }
.filter-button { font-size:12px; padding:9px 13px; border-radius:4px; }
.search-label { width:195px; gap:10px; flex-shrink:0; }
.search-label input { font-size:13px; padding:9px 0; }
.publication-row { grid-template-columns:138px minmax(0,1fr) 85px; gap:28px; padding:32px 0; }
.publication-venue { font-size:11px; font-weight:650; padding:6px 9px; border-radius:3px; }
.publication-year { font-family:var(--mono); font-size:11px; margin-top:8px; }
.publication-row h3 { font-size:19px; font-weight:620; line-height:1.45; max-width:880px; letter-spacing:-.025em; }
.publication-authors { font-size:12px; margin-top:10px; line-height:1.75; }
.publication-summary { font-size:14px; margin-top:11px; max-width:840px; }
.publication-actions { gap:10px; }
.publication-actions a,.publication-actions button { font-size:12px; }
.publication-footer { padding-top:27px; font-size:12px; }
.publication-footer .text-link { font-size:12px; }
.about-section { padding-block:89px 100px; grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:90px; }
.about-copy h2 { font-size:clamp(42px,3.7vw,52px); margin-bottom:26px; }
.about-copy>p:not(.eyebrow) { font-size:15px; line-height:1.9; margin-top:18px; }
.about-copy .text-link { margin-top:23px; font-size:13px; }
.position-list { margin-top:23px; }
.position-list li { grid-template-columns:105px minmax(0,1fr); gap:19px; padding:19px 0; }
.position-date { font-family:var(--mono); font-size:10px; letter-spacing:0; }
.position-list h3 { font-size:15px; font-weight:650; }
.position-list p { font-size:13px; margin-top:4px; }
.position-list small { font-size:11px; margin-top:6px; }
.position-list .position-upcoming { padding:20px 35px 20px 16px; margin-inline:-16px; border-radius:4px; }
.position-arrow { font-size:22px; color:var(--accent); }
.contact-section { background:#f4f7fd; border-color:var(--line); padding-block:80px; }
.contact-section .eyebrow { margin-bottom:24px; }
.contact-main { gap:30px; }
.contact-main h2,.contact-heading { font-size:clamp(54px,5.25vw,76px); max-width:1000px; }
.contact-bottom { margin-top:29px; }
.contact-bottom p,.contact-copy { font-size:16px; line-height:1.8; max-width:710px; }
.contact-copy { margin-top:25px; }
.contact-form { max-width:980px; margin-top:38px; }
.form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px 26px; }
.form-field { display:flex; flex-direction:column; gap:9px; min-width:0; }
.form-field label { font-size:13px; font-weight:650; color:var(--ink); }
.form-field label span,.form-field label small,.optional-label { font-size:12px; color:var(--muted); font-weight:400; }
.form-field input,.form-field select,.form-field textarea { width:100%; min-width:0; border:1px solid #aebed7; border-radius:4px; padding:13px 15px; background:#fff; color:var(--ink); font-size:16px; line-height:1.5; transition:border-color .2s; }
.form-field input::placeholder,.form-field textarea::placeholder { color:#66748b; opacity:1; }
.form-field input:hover,.form-field select:hover,.form-field textarea:hover { border-color:#718cb8; }
.form-field textarea { resize:vertical; min-height:165px; }
.form-field .file-upload,.file-upload { padding:11px; border-style:dashed; background:#fbfcff; cursor:pointer; font-size:14px; }
.file-upload::file-selector-button { border:1px solid #cad5e8; border-radius:3px; background:#edf2ff; color:#234599; font:inherit; font-weight:600; padding:8px 12px; margin-right:12px; cursor:pointer; }
.full-width { grid-column:1/-1; }
.form-help,.contact-privacy { color:var(--muted); font-size:12px; line-height:1.7; }
.form-help a,.contact-privacy a { text-decoration:underline; text-underline-offset:3px; }
.contact-privacy { margin-top:20px; }
.form-actions { display:flex; align-items:center; gap:24px; flex-wrap:wrap; margin-top:25px; }
.contact-submit { margin-top:25px; min-width:178px; }
.form-actions .contact-submit { margin-top:0; }
.contact-status { min-height:24px; margin-top:15px; font-size:14px; line-height:1.7; max-width:760px; }
.contact-status[data-state="error"],.contact-status.error,.field-error { color:#a1272d; }
.contact-status[data-state="success"],.contact-status.success { color:#166743; }
.field-error { font-size:12px; line-height:1.6; }
.file-remove { width:fit-content; font-size:12px; text-decoration:underline; text-underline-offset:3px; background:none; padding:2px 0; }
.form-honeypot { display:none !important; }
.site-footer { gap:27px; padding-block:35px; }
.footer-name { font-family:var(--sans); font-size:22px; font-weight:650; letter-spacing:-.04em; }
.site-footer p { font-size:12px; }
.site-footer>div { flex-wrap:wrap; gap:22px; font-size:12px; }
.site-footer a:hover { color:var(--accent); }
.site-footer small { font-size:10px; }
dialog { background:#fff; border-radius:7px; width:min(880px,calc(100% - 40px)); box-shadow:0 20px 90px #07152e33; }
.dialog-close { width:38px; height:38px; border-radius:4px; background:#eef2f8; }
.project-dialog h2 { font-size:43px; margin-top:15px; margin-bottom:23px; }
.dialog-figure { border-radius:4px; }
.dialog-caption { font-size:11px; }
.dialog-links .text-link { font-size:13px; }
.dialog-note { font-size:13px; }
.dialog-subheading { font-size:21px; font-weight:650; }
.citation-dialog h2 { font-size:40px; margin-top:12px; }
.citation-status { font-size:13px; }
.thanks-page { min-height:100dvh; }
.thanks-content { width:min(900px,calc(100% - 48px)); margin:0 auto; padding:clamp(70px,14vh,150px) 0; }
.thanks-content h1 { font-size:clamp(46px,7vw,86px); margin:23px 0 28px; max-width:800px; }
.thanks-content p { max-width:660px; font-size:17px; line-height:1.85; margin-bottom:22px; }
.thanks-content p.eyebrow { font-size:11px; }
.thanks-content .button { margin-top:18px; }
@media(max-width:1150px) {
  .section-shell,.site-header { width:calc(100% - 72px); }
  .site-header nav { gap:21px; }
  .hero { column-gap:36px; grid-template-columns:minmax(0,1fr) 210px; }
  .hero h1 { font-size:30px; }
  .hero-statement { font-size:42px; }
  .portrait img { width:190px; height:190px; }
  .portrait figcaption { font-size:8px; }
  .portrait figcaption>span+span { display:none; }
  .hero-bottom>span { display:none; }
  .section-heading { gap:30px; }
  .section-intro { flex-basis:275px; max-width:275px; }
  h2,.compact h2 { font-size:48px; }
  .contact-main h2 { font-size:62px; }
  .vision-inner { gap:55px; }
  .vision-main h2,.about-copy h2 { font-size:46px; }
  .about-section { gap:55px; }
  .project-card.featured .project-image { height:270px; }
  .project-image { height:200px; }
  .project-image.object-image img { width:200px; height:200px; }
  .motion-toggle { top:160px; }
  .publication-toolbar { align-items:start; }
  .publication-filters { gap:6px; }
  .filter-button { padding:9px 11px; font-size:11px; }
  .search-label { width:165px; }
  .position-list li { grid-template-columns:94px minmax(0,1fr); gap:14px; }
  .site-footer p { display:none; }
  .site-footer>div { margin-left:auto; }
}
@media(max-width:900px) {
  .section-shell,.site-header { width:calc(100% - 48px); }
  .site-header { height:80px; }
  .wordmark-label { font-size:10px; }
  .menu-toggle { display:flex; align-items:center; gap:14px; font-size:13px; padding:8px 0 8px 16px; }
  .menu-toggle span { font-size:22px; }
  .site-header nav { display:none; position:absolute; top:79px; left:-24px; right:-24px; background:#fff; padding:18px 24px; box-shadow:0 15px 25px #11254a12; border-bottom:1px solid var(--line); align-items:stretch; }
  .site-header nav.open { display:flex; flex-direction:column; gap:0; }
  .site-header nav>a { padding:12px 0; }
  .site-header .nav-contact { margin:10px 0 4px; padding:10px 14px; width:fit-content; }
  .hero { padding-top:32px; column-gap:28px; grid-template-columns:minmax(0,1fr) 170px; }
  .hero h1 { font-size:28px; margin:12px 0 16px; }
  .hero .eyebrow { font-size:13px; letter-spacing:0; line-height:1.6; }
  .hero-statement { font-size:36px; }
  .hero-description { font-size:15px; }
  .hero-visual { align-self:center; margin-top:0; }
  .portrait img { width:154px; height:154px; border-radius:50%; }
  .portrait-note { font-size:12px; gap:7px; padding:0; left:auto; bottom:auto; }
  .hero-actions { gap:19px; }
  .hero-actions .button { font-size:12px; padding:12px 15px; gap:15px; }
  .hero-actions .text-link { font-size:12px; gap:12px; }
  .hero-affiliations { gap:17px; margin-top:22px; }
  .hero-affiliations>span { font-size:13px; }
  .hero-affiliations small { font-size:10px; }
  .hero-affiliations>span+span { padding-left:17px; }
  .hero-bottom { margin-top:24px; padding-block:18px; }
  .hero-bottom>a { font-size:9px; }
  .research-loop { font-size:15px; gap:14px; }
  .section-heading { display:block; margin-bottom:34px; }
  .section-heading>.text-link { margin-top:24px; }
  .section-intro { max-width:580px; margin-top:23px; padding:0; }
  h2,.compact h2 { font-size:44px; }
  .contact-main h2 { font-size:56px; }
  .compact { display:flex; align-items:end; }
  .compact .text-link { font-size:12px; gap:12px; }
  .news-section { padding-block:54px; }
  .news-row { grid-template-columns:98px minmax(0,1fr) 21px; gap:20px; }
  .news-row h3 { font-size:17px; }
  .news-date { font-size:10px; }
  .news-more { margin-left:118px; }
  .research-section,.publications-section { padding-block:70px; }
  .project-grid { gap:33px 22px; }
  .project-card,.project-card.featured { grid-column:span 3; }
  .project-card:last-child { grid-column:span 6; }
  .project-card:last-child .project-button { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); column-gap:24px; }
  .project-card:last-child .project-image { grid-row:span 5; height:260px; }
  .project-card:last-child .project-type { margin-top:5px; }
  .project-card:last-child .project-meta { margin-top:13px; }
  .project-card.featured .project-image,.project-image { height:230px; }
  .project-image.object-image img { width:230px; height:230px; }
  .motion-toggle { top:190px; }
  .featured .project-title-row .project-title,.project-title-row .project-title { font-size:27px; }
  .project-description { font-size:13px; }
  .project-type { font-size:9px; }
  .vision-inner { grid-template-columns:minmax(0,1.15fr) minmax(0,1fr); gap:34px; padding-block:68px; }
  .vision-main h2,.about-copy h2 { font-size:42px; }
  .vision-main>p:not(.eyebrow) { font-size:14px; }
  .vision-principles h3 { font-size:22px; }
  .vision-principles p { font-size:13px; }
  .vision-link { font-size:12px; gap:12px; }
  .publication-toolbar { flex-direction:column; gap:16px; }
  .search-label { width:100%; border:1px solid var(--line); padding:3px 12px; border-radius:4px; }
  .publication-row { grid-template-columns:116px minmax(0,1fr) 65px; gap:21px; padding-block:27px; }
  .publication-venue { font-size:10px; }
  .publication-row h3 { font-size:17px; }
  .publication-summary { font-size:13px; }
  .publication-authors { font-size:11px; }
  .publication-actions a,.publication-actions button { font-size:11px; }
  .publication-footer { font-size:11px; }
  .about-section { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:34px; padding-block:67px 73px; }
  .about-copy>p:not(.eyebrow) { font-size:14px; }
  .position-list li { grid-template-columns:78px minmax(0,1fr); gap:12px; }
  .position-date { font-size:9px; }
  .position-list h3 { font-size:14px; }
  .position-list p { font-size:12px; }
  .position-list small { font-size:10px; }
  .positions>.eyebrow { font-size:10px; }
  .contact-section { padding-block:66px; }
  .site-footer { gap:22px; }
  .site-footer>div { gap:16px; }
  .site-footer small { flex-basis:100%; border:0; padding:0; }
}
@media(max-width:620px) {
  .section-shell,.site-header { width:calc(100% - 40px); }
  .site-header nav { left:-20px; right:-20px; padding-inline:20px; }
  .hero { grid-template-columns:1fr; padding-top:28px; gap:0; }
  .hero .eyebrow { font-size:13px; gap:9px; align-items:baseline; }
  .hero h1 { font-size:27px; margin:12px 0 16px; }
  .hero-statement { font-size:clamp(29px,7.9vw,38px); line-height:1.16; }
  .hero-description { font-size:15px; margin-top:17px; max-width:100%; }
  .hero-actions { gap:22px; margin-top:20px; }
  .hero-actions .button { font-size:13px; padding:13px 16px; gap:17px; }
  .hero-actions .text-link { font-size:12px; }
  .hero-affiliations { gap:20px; margin-top:22px; }
  .hero-affiliations>span { font-size:14px; }
  .hero-affiliations>span+span { padding-left:20px; }
  .hero-affiliations small { font-size:10px; }
  .hero-visual { display:grid; grid-template-columns:128px minmax(0,1fr); align-items:center; gap:20px; justify-self:start; max-width:350px; margin-top:26px; width:100%; padding:0; }
  .portrait img { width:128px; height:128px; object-position:50% 25%; border-radius:50%; }
  .portrait figcaption { font-size:7px; padding-top:12px; }
  .portrait figcaption>span+span { display:none; }
  .portrait-note { justify-content:start; margin-top:0; padding:0; font-size:13px; left:auto; bottom:auto; }
  .portrait-note br { display:initial; }
  .hero-visual:before { inset:-14px auto auto 0; }
  .hero-bottom { justify-content:center; margin-top:22px; padding-block:17px; }
  .hero-bottom>a { display:none; }
  .research-loop { font-size:15px; gap:13px; }
  .news-section { padding-block:44px; }
  .section-heading { display:block; margin-bottom:30px; }
  .compact .text-link { font-size:12px; margin-top:21px; }
  .compact .section-number { font-size:10px; margin-bottom:17px; }
  h2,.compact h2,.vision-main h2,.about-copy h2 { font-size:clamp(34px,8.5vw,42px); }
  .contact-main h2 { font-size:clamp(42px,10vw,58px); }
  .news-row { grid-template-columns:minmax(0,1fr) 20px; gap:9px 12px; padding-block:21px; }
  .news-date { grid-column:1; grid-row:1; font-size:10px; }
  .news-row>div { grid-column:1; grid-row:2; }
  .news-arrow { grid-column:2; grid-row:2; font-size:22px; }
  .news-row h3 { font-size:16px; line-height:1.5; }
  .news-tag { font-size:8px; margin-left:5px; }
  .news-row p { font-size:13px; margin-top:7px; }
  .news-more { margin-left:0; font-size:12px; }
  .section-number { font-size:10px; margin-bottom:18px; }
  .research-section { padding-block:59px 63px; }
  .section-intro { margin-top:22px; max-width:100%; font-size:14px; }
  .project-grid { grid-template-columns:minmax(0,1fr); gap:32px; }
  .project-card,.project-card.featured,.project-card:last-child { grid-column:auto; }
  .project-card.featured .project-image,.project-image,.project-card:last-child .project-image { height:240px; }
  .project-card:last-child .project-button { display:block; }
  .project-card:last-child .project-type { margin-top:20px; }
  .project-card:last-child .project-meta { margin-top:18px; }
  .project-image.object-image img { height:240px; width:240px; }
  .motion-toggle { top:200px; }
  .project-title-row .project-title,.featured .project-title-row .project-title { font-size:28px; }
  .project-description { font-size:14px; margin-top:12px; }
  .project-meta { font-size:10px; margin-top:18px; }
  .project-card { padding-bottom:26px; }
  .project-type { font-size:10px; margin-top:20px; }
  .vision-inner { grid-template-columns:1fr; gap:39px; padding-block:57px; }
  .vision-main .eyebrow { font-size:10px; margin-bottom:24px; }
  .vision-main>p:not(.eyebrow) { font-size:14px; margin-top:25px; }
  .vision-link { font-size:12px; margin-top:25px; }
  .vision-principles { padding-top:0; }
  .vision-principles>div { padding-bottom:23px; padding-top:23px; }
  .vision-principles h3 { font-size:23px; }
  .vision-principles p { font-size:14px; }
  .vision-principles span { top:27px; }
  .publications-section { padding-block:59px; }
  .publications-section .section-heading>.text-link { margin-top:21px; font-size:12px; }
  .publication-filters { gap:8px; }
  .filter-button { font-size:11px; padding:9px 11px; }
  .publication-toolbar { padding-bottom:18px; }
  .publication-row { grid-template-columns:1fr; gap:15px; padding-block:27px; }
  .publication-row>div:first-child { display:flex; align-items:center; gap:12px; }
  .publication-year { margin:0; font-size:11px; }
  .publication-venue { font-size:11px; }
  .publication-row h3 { font-size:18px; line-height:1.45; }
  .publication-authors { font-size:12px; }
  .publication-summary { font-size:13px; }
  .publication-actions { justify-content:start; flex-direction:row; gap:22px; align-items:center; padding-top:0; }
  .publication-actions a,.publication-actions button { font-size:12px; }
  .publication-footer { display:block; font-size:12px; }
  .publication-footer .text-link { margin-top:18px; font-size:12px; }
  .about-section { grid-template-columns:1fr; gap:44px; padding-block:58px 60px; }
  .about-copy h2 { margin-bottom:27px; }
  .about-copy>p:not(.eyebrow) { font-size:15px; }
  .positions { padding-top:0; }
  .position-list { margin-top:23px; }
  .position-list li { grid-template-columns:95px minmax(0,1fr); gap:14px; padding-block:20px; }
  .position-date { font-size:10px; }
  .position-list h3 { font-size:15px; }
  .position-list p { font-size:13px; }
  .position-list small { font-size:11px; }
  .position-list .position-upcoming { margin-inline:-8px; padding-inline:8px 28px; }
  .position-arrow { right:10px; }
  .contact-section { padding-block:57px; }
  .contact-section .eyebrow { font-size:10px; margin-bottom:23px; }
  .contact-main { display:block; }
  .contact-bottom { display:block; margin-top:25px; }
  .contact-bottom p,.contact-copy { font-size:15px; }
  .contact-form { margin-top:31px; }
  .form-grid { grid-template-columns:minmax(0,1fr); gap:21px; }
  .form-field label { font-size:13px; }
  .file-upload { font-size:12px; }
  .file-upload::file-selector-button { margin-right:9px; padding:8px 9px; }
  .contact-submit { width:100%; padding-block:15px; }
  .site-footer { padding-block:30px; justify-content:space-between; gap:22px; }
  .footer-name { font-size:23px; }
  .site-footer>div { margin:0; gap:18px; flex-basis:100%; font-size:11px; order:2; }
  .site-footer small { text-align:left; flex-basis:auto; font-size:9px; order:1; }
  .site-footer>.footer-name { order:0; }
  dialog { padding:49px 22px 26px; width:calc(100% - 24px); max-height:93dvh; }
  .project-dialog h2 { font-size:34px; margin-top:15px; }
  .dialog-description { font-size:14px; }
  .dialog-figure { padding:8px; margin-top:23px; }
  .dialog-caption { font-size:10px; }
  .dialog-links { gap:17px; }
  .dialog-links .text-link { font-size:12px; }
  .citation-dialog pre { font-size:11px; padding:14px; }
  .citation-dialog h2 { font-size:33px; }
}
@media(max-width:370px) {
  .hero h1 { font-size:25px; }
  .hero .eyebrow { font-size:12px; }
  .hero-statement { font-size:29px; letter-spacing:-.045em; }
  .hero-actions { gap:17px; }
  .hero-actions .button { font-size:12px; }
  .hero-affiliations { gap:12px; }
  .hero-affiliations>span+span { padding-left:12px; }
  .hero-affiliations>span { font-size:12px; }
  .hero-affiliations small { font-size:9px; }
  .hero-visual { grid-template-columns:112px minmax(0,1fr); gap:17px; }
  .portrait img { width:112px; height:112px; }
  .portrait figcaption>span+span { font-size:7px; }
  .research-loop { font-size:13px; gap:9px; }
  .position-list li { grid-template-columns:82px minmax(0,1fr); gap:12px; }
  .position-date { font-size:9px; }
  .site-footer>div { gap:15px; font-size:10px; }
}
@media print {
  .contact-form { display:none !important; }
  .hero h1 { font-size:28px; }
  .hero-statement { font-size:34px; }
  .vision-section { background:#fff; color:#000; }
  h2,.compact h2,.vision-main h2,.about-copy h2,.contact-main h2 { font-size:34px; }
}
/* Contact introduction and form share a calm, readable two-column layout. */
.contact-main { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:65px; align-items:start; }
.contact-copy { max-width:none; margin-top:0; }
.contact-copy h2 { font-size:clamp(54px,4.5vw,66px); }
.contact-copy>p { margin-top:27px; }
.contact-copy>.text-link { margin-top:24px; }
.contact-main .contact-form { margin-top:0; min-width:0; }
.form-field .file-upload { padding:0; border:0; background:transparent; }
.file-upload input[type="file"] { padding:11px; border-style:dashed; background:#fbfcff; font-size:13px; }
.file-upload input::file-selector-button { border:1px solid #cad5e8; border-radius:3px; background:#edf2ff; color:#234599; font:inherit; font-weight:600; padding:8px 12px; margin-right:12px; cursor:pointer; }
.file-remove { margin-top:8px; }
.thanks-content h1 em { color:var(--accent); }
@media(max-width:1150px) {
  .contact-main { grid-template-columns:1fr; gap:38px; }
  .contact-copy { max-width:800px; }
  .contact-copy h2 { font-size:62px; }
}
@media(max-width:900px) {
  .contact-copy h2 { font-size:56px; }
}
@media(max-width:620px) {
  .contact-main { gap:31px; }
  .contact-copy h2 { font-size:clamp(42px,10vw,58px); }
  .thanks-page .site-header { align-items:center; gap:12px; }
  .thanks-page .wordmark-label { display:none; }
  .thanks-page .site-header>.text-link { font-size:12px; gap:10px; }
  .file-upload input[type="file"] { font-size:12px; }
}
/* Keep the phrase together where the hero has room for it. */
@media(min-width:901px) { .hero-statement em { white-space:nowrap; } }

/* Compact layout. Three type roles: headings, reading text, and interface text. */
:root { --max:1200px; --serif:var(--sans); --mono:var(--sans); --type-body:15px; --type-ui:13px; --section-space:32px; }
body { font-size:var(--type-body); line-height:1.6; }
h1,h2,h3,.project-title { font-family:var(--sans); font-style:normal; font-weight:700; letter-spacing:-.025em; line-height:1.2; }
.hero h1 em,.hero-statement em,.portrait-note,em { font-style:normal; }
.hero h1 { font-size:28px; font-weight:700; margin:10px 0 12px; letter-spacing:-.025em; }
.hero-statement { font-size:clamp(20px,2vw,24px); font-weight:700; line-height:1.2; letter-spacing:-.025em; text-wrap:wrap; }
h2,.compact h2,.vision-main h2,.about-copy h2,.contact-main h2,.contact-copy h2,.contact-heading { font-size:28px; line-height:1.2; letter-spacing:-.025em; }
.news-row h3,.publication-row h3,.project-title-row .project-title,.featured .project-title-row .project-title,.vision-principles h3,.position-list h3 { font-size:18px; font-weight:700; line-height:1.35; letter-spacing:-.015em; }
.hero-description,.section-intro,.news-row p,.project-description,.vision-main>p:not(.eyebrow),.vision-principles p,.publication-summary,.about-copy>p:not(.eyebrow),.contact-copy>p,.contact-status,.dialog-description,.dialog-note { font-size:var(--type-body); font-weight:400; line-height:1.6; }
.eyebrow,.hero .eyebrow,.wordmark-label,.hero-affiliations small,.portrait figcaption,.portrait-note,.hero-bottom,
.text-link,.hero-bottom>a,.hero-actions .text-link,.compact .text-link,.publications-section .section-heading>.text-link,
.about-copy .text-link,.publication-footer .text-link,.dialog-links .text-link,.vision-link,.site-header nav,.menu-toggle,
.button,.hero-actions .button,.news-date,.news-tag,.news-more,.project-type,.project-meta,.image-label,.motion-toggle,
.vision-principles span,.publication-venue,.publication-year,.publication-authors,.publication-actions a,.publication-actions button,
.publication-footer,.filter-button,.search-label input,.position-date,.position-list p,.position-list small,.positions>.eyebrow,
.contact-section .eyebrow,.form-field label,.form-help,.contact-privacy,.optional-label,.file-remove,.field-error,
.site-footer p,.site-footer>div,.site-footer small,.dialog-caption,.citation-status {
  font-family:var(--sans); font-size:var(--type-ui); font-style:normal; font-weight:600; line-height:1.5; letter-spacing:0;
}
.text-link,.hero-bottom>a,.vision-link { display:inline-flex; align-items:center; gap:10px; padding:4px 0; border-bottom:1px solid currentColor; }
.text-link span,.hero-bottom>a span { font-size:18px; font-weight:400; }
.button,.hero-actions .button { gap:16px; padding:10px 16px; min-height:42px; }
.section-shell,.site-header { width:min(var(--max),calc(100% - 48px)); }
.site-header { height:72px; }
.site-header-navigation { justify-content:flex-end; }
.site-header nav { gap:18px; }
.wordmark { gap:16px; }
.wordmark-label { padding-left:16px; }
.monogram { font-size:28px; font-weight:700; }
.hero { grid-template-columns:180px minmax(0,1fr); column-gap:16px; padding-top:24px; }
.hero-copy { grid-column:2; grid-row:1; padding:0; }
.hero-visual { grid-column:1; grid-row:1; align-self:center; justify-self:start; width:180px; max-width:180px; margin:0; padding:0; }
.portrait img { width:168px; height:168px; }
.portrait figcaption { padding-top:12px; }
.portrait figcaption>span+span { display:none; }
.portrait-note { margin-top:10px; gap:7px; padding:0; font-weight:600; }
.note-symbol { display:none; }
.hero .eyebrow { color:var(--accent); font-size:14px; gap:10px; line-height:1.5; }
.hero-description { max-width:100%; margin-top:12px; }
.hero-actions { gap:16px; margin-top:16px; }
.hero-affiliations { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); max-width:100%; gap:16px; margin-top:16px; }
.hero-affiliations>span { display:flex; flex-direction:column; justify-content:center; align-items:center; text-align:center; min-width:0; padding-inline:12px; font-size:var(--type-body); font-weight:700; line-height:1.4; }
.hero-affiliations>span+span { padding-left:12px; }
.hero-affiliations small { margin-top:3px; }
.hero-bottom { grid-column:1/-1; padding:10px 0; margin-top:20px; gap:16px; }
.hero-bottom>span { display:none; }
.research-loop { font-size:var(--type-ui); font-weight:600; gap:14px; line-height:1.5; }
.research-loop i { font-size:var(--type-ui); }
.news-section,.research-section,.publications-section,.about-section,.contact-section,.vision-inner { padding-block:var(--section-space); }
.section-heading,.compact { justify-content:flex-start; gap:18px; margin-bottom:16px; align-items:center; }
.section-number,.compact .section-number,.vision-main .eyebrow,.contact-section .eyebrow { margin-bottom:8px; }
.section-heading>.text-link,.compact .text-link { margin-top:0; }
.section-intro { flex-basis:420px; max-width:420px; margin-top:0; padding:0; }
.news-row { grid-template-columns:76px minmax(0,1fr) 20px; gap:18px; padding:14px 0; }
.news-date { padding-top:2px; }
.news-row p { margin-top:4px; }
.news-tag { display:inline-block; white-space:normal; padding:2px 6px; margin-left:8px; }
.news-more { margin:8px 0 0 94px; }
.project-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px 18px; }
.project-card,.project-card.featured,.project-card:last-child { grid-column:auto; padding-bottom:16px; }
.project-button,.project-card:last-child .project-button { display:grid; grid-template-columns:132px minmax(0,1fr); gap:6px 14px; align-content:start; }
.project-image,.project-card.featured .project-image,.project-card:last-child .project-image { grid-column:1; grid-row:1 / span 4; height:110px; align-self:start; }
.project-image img { padding:7px; }
.project-button[data-project="bionics"] .project-image { background:#fff; }
.project-image.object-image img { width:110px; height:110px; }
.project-type,.project-card:last-child .project-type { grid-column:2; margin:0; text-transform:none; min-height:0; color:var(--accent); }
.project-title-row { grid-column:2; margin:0; gap:8px; }
.project-title-row>span:last-child { font-size:18px; }
.project-description { grid-column:2; margin:0; max-width:100%; }
.project-meta,.project-card:last-child .project-meta { grid-column:2; margin:0; }
.project-card>.motion-toggle { top:116px; left:0; right:auto; width:132px; padding:6px 4px; }
.project-card:has(>.motion-toggle) { min-height:168px; }
.vision-inner { grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:14px 20px; }
.vision-main>p:not(.eyebrow) { margin-top:14px; }
.vision-quote { margin:14px 0 0; padding-left:14px; border-left:2px solid var(--accent); color:var(--ink); }
.vision-quote p { font-size:var(--type-body); font-weight:400; line-height:1.6; }
.vision-link { margin-top:16px; }
.vision-principles>div { padding:12px 0 12px 30px; }
.vision-principles span { top:14px; }
.vision-principles p { margin-top:4px; }
.publication-toolbar { gap:16px; padding-bottom:14px; }
.publication-filters { gap:7px; flex-wrap:wrap; }
.filter-button { padding:7px 10px; min-height:36px; }
.search-label { width:180px; }
.search-label input { padding:7px 0; }
.publication-row { grid-template-columns:116px minmax(0,1fr) 60px; gap:12px; padding:16px 0; }
.publication-venue { padding:3px 6px; max-width:100%; color:#1b46b7; background:#edf2ff; border-color:#c9d7ff; }
.publication-year { margin-top:5px; }
.publication-authors { margin-top:5px; font-weight:400; }
.publication-authors strong { font-weight:700; }
.publication-summary { margin-top:5px; }
.publication-actions { gap:8px; }
.publication-footer { padding-top:16px; }
.about-section { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:14px 20px; }
.about-copy h2 { margin-bottom:16px; }
.about-copy>p:not(.eyebrow) { margin-top:12px; }
.about-copy .text-link { margin-top:14px; }
.positions { padding-top:0; }
.position-list { margin-top:12px; }
.position-list li { grid-template-columns:104px minmax(0,1fr); gap:14px; padding:12px 0; }
.position-list h3 { font-size:16px; }
.position-list p,.position-list small { margin-top:3px; font-weight:400; }
.position-list .position-upcoming { padding:12px 24px 12px 10px; margin-inline:-10px; }
.contact-main { grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:20px; }
.contact-copy>p { margin-top:16px; }
.contact-copy>.text-link { margin-top:12px; }
.contact-main .contact-form { margin-top:0; }
.contact-status { margin-top:0; min-height:0; margin-bottom:14px; }
.form-grid { gap:16px 18px; }
.form-field { gap:6px; }
.form-field input,.form-field select,.form-field textarea { padding:10px 12px; }
.form-field textarea { min-height:130px; }
.form-actions { gap:16px; margin-top:16px; }
.contact-privacy { margin-top:14px; font-weight:400; }
.form-help { font-weight:400; }
.site-footer { gap:20px; padding-block:22px; }
.site-footer>div { gap:16px; }
.footer-name { font-size:20px; font-weight:700; letter-spacing:-.025em; }
.project-dialog h2,.citation-dialog h2 { font-size:30px; line-height:1.2; margin-block:12px 16px; }
.dialog-subheading { font-size:18px; font-weight:700; }
.thanks-content h1 { font-size:36px; }
.thanks-content p { font-size:var(--type-body); line-height:1.6; }
@media(max-width:1050px) {
  .hero-affiliations { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 16px; }
  .hero-affiliations>span:nth-child(odd) { border-left:0; }
  .hero-affiliations>span:nth-child(n+3) { border-top:1px solid var(--line); padding-top:12px; }
  .project-grid { grid-template-columns:1fr; gap:16px; }
  .project-button,.project-card:last-child .project-button { grid-template-columns:144px minmax(0,1fr); gap:6px 18px; }
  .project-card>.motion-toggle { width:144px; }
  .publication-toolbar { flex-direction:column; align-items:stretch; }
  .search-label { width:100%; border:1px solid var(--line); border-radius:4px; padding-inline:10px; }
  .contact-main { grid-template-columns:1fr; gap:24px; }
  .contact-copy { max-width:720px; }
}
@media(max-width:900px) {
  .site-header nav { top:71px; left:-24px; right:-24px; padding-inline:24px; }
  .site-header nav.open { gap:0; }
  .section-shell,.site-header { width:calc(100% - 48px); }
  .hero { grid-template-columns:148px minmax(0,1fr); gap:16px; }
  .hero-visual { width:148px; max-width:148px; }
  .portrait img { width:136px; height:136px; }
  .hero-statement { font-size:22px; }
  .hero .eyebrow { font-size:var(--type-ui); }
  .hero-bottom { margin-top:0; }
  .section-heading { display:flex; flex-wrap:wrap; gap:12px 16px; }
  .section-intro { flex-basis:100%; max-width:100%; }
  .vision-inner,.about-section { gap:14px 18px; }
  .publication-row { grid-template-columns:102px minmax(0,1fr) 54px; gap:14px; }
  .position-list li { grid-template-columns:88px minmax(0,1fr); gap:12px; }
  .position-date { overflow-wrap:break-word; }
}
@media(max-width:620px) {
  :root { --section-space:24px; }
  .section-shell,.site-header { width:calc(100% - 36px); }
  .site-header { height:64px; }
  .site-header nav { top:63px; left:-18px; right:-18px; padding-inline:18px; }
  .wordmark-label { font-size:var(--type-ui); }
  .hero { grid-template-columns:1fr; gap:0; padding-top:22px; }
  .hero-copy { grid-column:1; grid-row:1; }
  .hero h1 { font-size:26px; }
  .hero-statement { font-size:22px; line-height:1.3; }
  .hero-statement em { white-space:normal; }
  h2,.compact h2,.vision-main h2,.about-copy h2,.contact-main h2,.contact-copy h2 { font-size:24px; }
  .hero .eyebrow { font-size:var(--type-ui); }
  .hero-description { margin-top:12px; }
  .hero-actions { gap:16px; margin-top:14px; }
  .hero-affiliations { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin-top:16px; }
  .hero-affiliations>span+span { padding-left:12px; }
  .hero-visual { grid-column:1; grid-row:2; grid-template-columns:100px minmax(0,1fr); gap:6px 16px; width:100%; max-width:330px; margin-top:20px; }
  .hero-visual .portrait { display:contents; }
  .portrait img { grid-column:1; grid-row:1 / span 2; width:96px; height:96px; }
  .portrait figcaption { grid-column:2; grid-row:1; align-self:end; justify-content:start; padding:0; font-size:var(--type-ui); }
  .portrait-note { grid-column:2; grid-row:2; align-self:start; margin:0; padding:0; }
  .hero-bottom { grid-column:1; grid-row:3; margin-top:14px; padding:10px 0; }
  .hero-bottom>a { display:none; }
  .research-loop { gap:10px; }
  .section-heading,.compact { display:flex; align-items:start; gap:12px; margin-bottom:16px; }
  .section-heading>.text-link,.compact .text-link,.publications-section .section-heading>.text-link { margin-top:0; }
  .section-number,.compact .section-number { margin-bottom:6px; }
  .news-row { grid-template-columns:minmax(0,1fr) 18px; gap:5px 10px; padding:12px 0; }
  .news-date { grid-column:1; grid-row:1; padding:0; }
  .news-row>div { grid-column:1; grid-row:2; }
  .news-arrow { grid-column:2; grid-row:2; }
  .news-more { margin-left:0; }
  .project-grid { gap:14px; }
  .project-button,.project-card:last-child .project-button { grid-template-columns:100px minmax(0,1fr); gap:6px 12px; }
  .project-image,.project-card.featured .project-image,.project-card:last-child .project-image { height:86px; grid-row:1 / span 2; }
  .project-image.object-image img { width:86px; height:86px; }
  .project-type { align-self:end; }
  .project-title-row .project-title,.featured .project-title-row .project-title { font-size:18px; }
  .project-description,.project-meta,.project-card:last-child .project-meta { grid-column:1 / -1; margin:0; }
  .project-description { margin-top:4px; }
  .project-card>.motion-toggle { position:static; width:auto; margin-top:8px; padding:6px 10px; }
  .vision-inner,.about-section { grid-template-columns:1fr; gap:16px; }
  .vision-principles { padding-top:0; }
  .vision-main .eyebrow { margin-bottom:8px; }
  .publication-toolbar { gap:12px; padding-bottom:12px; }
  .publication-row { grid-template-columns:1fr; gap:8px; padding:14px 0; }
  .publication-row>div:first-child { flex-wrap:wrap; gap:8px; }
  .publication-year { margin:0; }
  .publication-actions { flex-direction:row; justify-content:start; gap:18px; padding:0; }
  .publication-footer .text-link { margin-top:10px; }
  .position-list li { grid-template-columns:94px minmax(0,1fr); gap:12px; }
  .contact-main { gap:22px; }
  .form-grid { gap:14px; }
  .contact-section .eyebrow { margin-bottom:12px; }
  .site-footer { padding-block:20px; }
  .site-footer>div { flex-basis:100%; margin:0; }
}
@media(max-width:370px) {
  .wordmark-label { padding-left:12px; }
  .wordmark { gap:12px; }
  .hero-statement { font-size:22px; }
  .hero-affiliations { gap:12px; }
  .hero-affiliations>span+span { padding-left:12px; }
  .research-loop { gap:8px; }
}
@media print {
  .hero,.vision-inner,.about-section { display:block; }
  .hero-copy { display:block; }
  .section-shell { width:100%; }
  .news-section,.research-section,.publications-section,.about-section,.contact-section,.vision-inner { padding-block:18px; }
}

/* A single descriptive heading per section, using the theme accent. */
h2 .heading-accent { color:var(--accent); }
.research-section .section-heading { display:block; }
.research-section .section-intro { max-width:100%; margin-top:8px; }
.vision-inner>h2,.about-section>h2 { grid-column:1 / -1; margin:0; }
.vision-main>p:first-child,.about-copy>p:first-child { margin-top:0; }

/* A pale blue vision panel continues the page's light research theme. */
.vision-section { background:#edf3ff; color:var(--ink); border-block:1px solid #d5e1f5; }
.vision-section:after { height:3px; background:#c7d7f8; }
.vision-main>p:not(.eyebrow),.vision-principles p { color:#46546d; }
.vision-principles>div { border-color:#cbd8ee; }
.vision-principles span { color:var(--accent); }
.vision-link { color:var(--accent); border-color:currentColor; }
.vision-link:hover { color:#153dae; border-color:currentColor; }
@media print {
  .vision-section { background:#fff; border-color:#ddd; color:#000; }
}
