@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/cormorant-garamond-600-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(fonts/cormorant-garamond-600-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Spectral';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/spectral-500-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Spectral';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(fonts/spectral-500-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root {
  --ink:#283139;
  --ink-deep:#1f2932;
  --muted:#626a71;
  --paper:#ffffff;
  --white:#fff;
  --line:#dce1e5;
  --accent:#dceef7;
  --pale:#f5f7f9;
  --serif:Georgia,'Times New Roman',serif;
  --sans:'Helvetica Neue',Helvetica,Arial,sans-serif
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:110px
}
body {
  margin:0;
  color:var(--ink);
  background:var(--paper);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased
}
a {
  color:inherit
}
button,input {
  font:inherit
}
button,a {
  -webkit-tap-highlight-color:transparent
}
a {
  text-decoration:none
}
button {
  color:inherit
}
svg {
  display:block
}
img {
  display:block;
  max-width:100%
}
::selection {
  background:var(--accent);
  color:var(--ink-deep)
}
:focus-visible {
  outline:2px solid #007eaf;
  outline-offset:6px
}
.wrap {
  width:min(1280px,calc(100% - 112px));
  margin-inline:auto
}
.skip-link {
  position:fixed;
  z-index:10;
  left:20px;
  top:-80px;
  background:var(--ink);
  color:white;
  padding:10px 20px
}
.skip-link:focus {
  top:12px
}
.site-header {
  position:relative;
  z-index:5;
  border-bottom:1px solid var(--line);
  background:var(--paper)
}
.header-inner {
  display:flex;
  justify-content:space-between;
  align-items:center;
  min-height:104px;
  gap:32px
}
.brand {
  display:flex;
  align-items:center;
  gap:13px;
  flex-shrink:0
}
.brand-mark {
  width:42px;
  height:42px
}
.brand-name {
  display:block;
  font-size:22px;
  font-weight:500;
  line-height:1.2;
  letter-spacing:-.65px
}
.brand-subtitle {
  display:block;
  font-size:9px;
  font-weight:500;
  letter-spacing:2.5px;
  line-height:1.4;
  margin-top:7px;
  text-transform:uppercase
}
.site-nav {
  display:flex;
  gap:36px;
  align-items:center;
  font-size:13px;
  font-weight:500
}
.site-nav a {
  position:relative;
  padding:12px 0;
  white-space:nowrap
}
.site-nav a:not(.join-nav):after {
  content:'';
  position:absolute;
  bottom:4px;
  left:0;
  width:0;
  height:1px;
  background:var(--ink);
  transition:width .2s
}
.site-nav a:hover:after,.site-nav a[aria-current=page]:after {
  width:100%
}
.site-nav .join-nav {
  border:1px solid var(--ink);
  padding:10px 20px;
  display:flex;
  gap:19px;
  align-items:center;
  transition:background .2s,color .2s
}
.site-nav .join-nav:hover,.site-nav .join-nav[aria-current=page] {
  background:var(--ink);
  color:var(--paper)
}
.menu-toggle {
  display:none;
  border:0;
  background:none;
  padding:10px;
  cursor:pointer
}
.eyebrow {
  font-size:10px;
  font-weight:500;
  text-transform:uppercase;
  letter-spacing:2.6px;
  display:flex;
  align-items:center;
  gap:12px;
  margin:0 0 25px
}
.eyebrow:before {
  content:'';
  width:22px;
  height:1px;
  background:currentColor;
  flex-shrink:0
}
.display {
  font-family:var(--serif);
  font-size:clamp(50px,6.3vw,90px);
  font-weight:400;
  line-height:1.04;
  letter-spacing:-3.8px;
  margin:0
}
.display em,h2 em {
  font-weight:400;
  color:#0784b7
}
.lede {
  font-size:16px;
  line-height:1.8;
  color:var(--muted);
  max-width:490px
}
.home-hero {
  padding:72px 0 58px
}
.hero-grid {
  display:grid;
  grid-template-columns:1.02fr 1fr;
  gap:64px;
  align-items:center
}
.hero-copy {
  padding-bottom:8px
}
.hero-copy .lede {
  max-width:415px;
  margin:26px 0 30px
}
.text-link {
  display:inline-flex;
  align-items:center;
  gap:30px;
  padding:6px 0 8px;
  border-bottom:1px solid var(--ink);
  font-size:12px;
  font-weight:500;
  transition:gap .2s
}
.text-link:hover {
  gap:39px
}
.arrow {
  font-size:18px;
  font-family:var(--sans);
  font-weight:400;
  line-height:1
}
.hero-art {
  margin:0;
  position:relative
}
.hero-illustration {
  width:100%;
  aspect-ratio:1.03;
  overflow:hidden;
  position:relative;
  background:#f4f6f8;
  border-radius:180px 180px 2px 2px
}
.hero-illustration svg {
  width:100%;
  height:100%
}
.hero-art figcaption {
  display:flex;
  justify-content:space-between;
  gap:12px;
  margin-top:15px;
  font-size:9px;
  text-transform:uppercase;
  letter-spacing:2px;
  color:var(--muted)
}
.hero-art figcaption span:last-child {
  letter-spacing:0;
  font-size:10px;
  text-transform:none
}
.hero-bottom {
  margin-top:60px;
  padding-top:22px;
  border-top:1px solid var(--line);
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px
}
.hero-bottom p {
  margin:0;
  font-size:11px;
  color:var(--muted)
}
.hero-topics {
  display:flex;
  gap:32px;
  font-size:10px;
  letter-spacing:1.4px;
  text-transform:uppercase
}
.hero-topics span {
  display:flex;
  align-items:center;
  gap:9px
}
.hero-topics span:before {
  content:'';
  width:4px;
  height:4px;
  background:#7c8c97;
  border-radius:50%
}
.section {
  padding:85px 0
}
.section-white {
  background:var(--white);
  border-block:1px solid var(--line)
}
.section-heading {
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:24px;
  margin-bottom:42px
}
h2 {
  font-family:var(--serif);
  font-weight:400;
  letter-spacing:-1.7px;
  font-size:clamp(34px,3.5vw,49px);
  line-height:1.15;
  margin:0
}
h3 {
  font-weight:400;
  letter-spacing:-.4px
}
.section-heading .eyebrow {
  margin-bottom:16px
}
.section-heading .text-link {
  margin-bottom:4px
}
.research-cards {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px
}
.research-card {
  display:flex;
  flex-direction:column;
  position:relative
}
.card-art {
  height:202px;
  overflow:hidden;
  position:relative;
  background:var(--pale);
  transition:background .3s
}
.card-art svg {
  width:100%;
  height:100%;
  transition:transform .6s
}
.research-card:hover .card-art svg {
  transform:scale(1.05)
}
.card-art.art-2 {
  background:#f5f5f5
}
.card-art.art-3 {
  background:#f3f6f8
}
.card-meta {
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-top:23px;
  font-size:9px;
  text-transform:uppercase;
  letter-spacing:1.8px;
  color:var(--muted)
}
.research-card h3 {
  font-family:var(--serif);
  font-size:25px;
  line-height:1.22;
  margin:12px 0
}
.research-card p {
  color:var(--muted);
  font-size:13px;
  line-height:1.85;
  margin:0;
  max-width:330px
}
.card-arrow {
  position:absolute;
  bottom:24px;
  right:22px;
  width:32px;
  height:32px;
  border:1px solid #a0b5c2;
  border-radius:50%;
  display:grid;
  place-items:center;
  font-size:16px;
  color:var(--ink);
  background:#ffffff70
}
.about-grid {
  display:grid;
  grid-template-columns:.85fr 1.1fr;
  gap:110px
}
.about-text {
  font-size:18px;
  line-height:1.8;
  margin:0;
  color:var(--muted)
}
.about-text strong {
  color:var(--ink);
  font-weight:400
}
.method-tags {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-top:27px
}
.method-tags span {
  border:1px solid var(--line);
  padding:7px 13px;
  font-size:10px;
  letter-spacing:.3px
}
.cta {
  background:var(--ink);
  color:var(--paper);
  padding:55px 62px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:50px;
  position:relative;
  overflow:hidden
}
.cta h2 {
  font-size:43px;
  position:relative
}
.cta p {
  font-size:13px;
  color:#e5eaee;
  margin:14px 0 0;
  max-width:490px
}
.cta .eyebrow {
  color:#d0e6f0;
  margin-bottom:20px
}
.button {
  display:inline-flex;
  align-items:center;
  justify-content:space-between;
  gap:42px;
  border:1px solid var(--ink);
  background:var(--ink);
  color:var(--paper);
  padding:13px 22px;
  font-size:12px;
  font-weight:500;
  white-space:nowrap;
  cursor:pointer;
  transition:background .2s,transform .2s
}
.button:hover {
  background:#006d98;
  transform:translateY(-2px)
}
.button-light {
  background:var(--accent);
  color:var(--ink);
  border-color:var(--accent)
}
.button-light:hover {
  background:#c8e6f4
}
.cta-section {
  padding:0 0 88px
}
.site-footer {
  border-top:1px solid var(--line);
  padding:44px 0 24px
}
.footer-main {
  display:flex;
  justify-content:space-between;
  gap:40px
}
.footer-brand .brand-name {
  font-family:var(--serif);
  font-size:28px;
  letter-spacing:-1px
}
.footer-brand p {
  font-size:11px;
  color:var(--muted);
  margin:10px 0
}
.footer-contact {
  text-align:right;
  font-size:12px
}
.footer-contact a {
  border-bottom:1px solid #b6c4cc;
  padding-bottom:3px
}
.footer-contact p {
  margin:10px 0 0;
  color:var(--muted);
  font-size:10px
}
.footer-bottom {
  border-top:1px solid var(--line);
  margin-top:35px;
  padding-top:19px;
  display:flex;
  flex-wrap:wrap;
  justify-content:space-between;
  gap:20px;
  font-size:9px;
  color:var(--muted);
  letter-spacing:.2px
}
.footer-icp {
  white-space:nowrap
}
.footer-bottom a:hover {
  text-decoration:underline
}
.page-hero {
  padding:66px 0 58px;
  display:grid;
  grid-template-columns:1.2fr .8fr;
  align-items:end;
  gap:80px
}
.page-hero .display {
  font-size:clamp(48px,5.8vw,78px)
}
.page-hero .lede {
  margin:0;
  max-width:410px;
  font-size:15px
}
.page-body {
  padding-bottom:85px
}
.research-detail {
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:80px;
  align-items:center;
  padding:56px 0;
  border-top:1px solid var(--line);
  scroll-margin-top:30px
}
.research-detail:nth-child(even) {
  grid-template-columns:1.2fr 1fr
}
.research-detail:nth-child(even) .detail-art {
  order:2
}
.research-detail-text .detail-copy {
  grid-column:1 / -1;
  max-width:900px
}
.detail-art {
  background:var(--pale);
  height:310px;
  position:relative;
  overflow:hidden
}
.detail-art svg {
  width:100%;
  height:100%
}
.detail-art.art-2 {
  background:#f5f5f5
}
.detail-art.art-3 {
  background:#f3f6f8
}
.detail-copy h2 {
  font-size:39px;
  line-height:1.16;
  margin-bottom:20px
}
.detail-copy p {
  font-size:14px;
  color:var(--muted);
  line-height:1.9
}
.detail-copy .eyebrow {
  font-size:9px;
  margin-bottom:20px
}
.detail-topics {
  font-size:10px;
  color:var(--ink);
  margin-top:24px;
  display:flex;
  gap:16px;
  flex-wrap:wrap
}
.detail-topics span {
  border-bottom:1px solid var(--line);
  padding-bottom:5px
}
.methods-panel {
  background:var(--ink);
  color:var(--paper);
  padding:52px 58px
}
.methods-panel h2 {
  font-size:38px
}
.methods-panel .method-tags {
  margin-top:28px
}
.methods-panel .method-tags span {
  border-color:#768690;
  color:#ecf3f6;
  padding:10px 18px
}
.methods-panel .eyebrow {
  color:#d0e6f0
}
.publication-layout {
  display:grid;
  grid-template-columns:210px 1fr;
  gap:65px;
  border-top:1px solid var(--line);
  padding-top:42px
}
.archive-aside {
  font-size:12px
}
.archive-aside .eyebrow {
  font-size:9px;
  margin-bottom:23px
}
.archive-note {
  font-size:12px;
  color:var(--muted);
  line-height:1.8;
  max-width:180px
}
.archive-label {
  padding:10px 0;
  display:flex;
  justify-content:space-between;
  border-bottom:1px solid var(--line);
  font-size:12px
}
.status-dot {
  display:inline-flex;
  gap:7px;
  align-items:center;
  font-size:9px;
  letter-spacing:1.4px;
  text-transform:uppercase;
  color:#536f80
}
.status-dot:before {
  content:'';
  width:5px;
  height:5px;
  border-radius:50%;
  background:#1584b1
}
.empty-intro {
  background:var(--pale);
  padding:30px 35px;
  margin-bottom:24px
}
.empty-intro h2 {
  font-size:31px;
  margin:15px 0 12px
}
.empty-intro p {
  font-size:13px;
  color:var(--muted);
  margin:0;
  max-width:550px
}
.paper-template {
  display:grid;
  grid-template-columns:70px 1fr;
  gap:22px;
  padding:30px 0;
  border-bottom:1px solid var(--line)
}
.placeholder-year {
  font-size:12px;
  letter-spacing:1px;
  color:#68747c;
  margin:6px 0
}
.paper-template h3 {
  font-family:var(--serif);
  font-size:25px;
  line-height:1.3;
  margin:0 0 12px;
  color:#637581
}
.paper-template p {
  font-size:12px;
  color:var(--muted);
  margin:3px 0
}
.placeholder-link {
  display:inline-block;
  border-bottom:1px solid #b6c4cc;
  font-size:10px;
  color:var(--muted);
  padding:2px 0;
  margin:10px 18px 0 0
}
.source-note {
  font-size:11px;
  color:var(--muted);
  margin-top:28px;
  line-height:1.9
}
.source-note a {
  text-decoration:underline;
  text-underline-offset:4px
}
.people-banner {
  display:grid;
  grid-template-columns:1.1fr 1fr;
  background:var(--pale);
  margin-bottom:66px
}
.people-illustration {
  min-height:280px;
  overflow:hidden
}
.people-illustration svg {
  width:100%;
  height:100%
}
.people-intro {
  padding:46px 48px 44px 20px;
  align-self:center
}
.people-intro h2 {
  font-size:37px
}
.people-intro p {
  font-size:13px;
  color:var(--muted);
  margin:18px 0 0
}
.team-heading {
  display:flex;
  justify-content:space-between;
  gap:25px;
  align-items:center;
  margin-bottom:26px
}
.team-heading h2 {
  font-size:34px
}
.team-heading span {
  font-size:9px;
  color:var(--muted);
  text-transform:uppercase;
  letter-spacing:1.8px
}
.people-grid {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px
}
.member-portrait {
  height:270px;
  background:#f0f3f5;
  display:grid;
  place-items:center;
  position:relative
}
.member-card:nth-child(2) .member-portrait {
  background:#f4f4f4
}
.member-card:nth-child(3) .member-portrait {
  background:#ecf1f4
}
.member-portrait svg {
  width:110px;
  height:150px
}
.portrait-caption {
  position:absolute;
  bottom:19px;
  font-size:9px;
  letter-spacing:2px;
  text-transform:uppercase;
  color:#6c7982
}
.member-card .eyebrow {
  font-size:9px;
  letter-spacing:1.7px;
  margin:24px 0 10px
}
.member-card .eyebrow:before {
  display:none
}
.member-card h3 {
  font-family:var(--serif);
  font-size:27px;
  line-height:1.2;
  margin:0 0 10px;
  color:#5f7180
}
.member-card p {
  font-size:12px;
  color:var(--muted);
  margin:0;
  max-width:280px
}
.member-detail {
  margin-top:17px;
  border-top:1px solid var(--line);
  padding-top:13px;
  font-size:10px;
  color:var(--muted)
}
.team-more {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:45px;
  margin-top:55px
}
.team-more section {
  border-top:1px solid var(--line);
  padding-top:24px
}
.team-more h3 {
  font-family:var(--serif);
  font-size:25px;
  margin:0 0 12px
}
.team-more p {
  font-size:12px;
  color:var(--muted);
  margin:0
}
.join-grid {
  display:grid;
  grid-template-columns:1.35fr .8fr;
  gap:85px;
  border-top:1px solid var(--line);
  padding-top:45px
}
.opportunity {
  border-bottom:1px solid var(--line);
  padding:0 0 32px;
  margin-bottom:31px
}
.opportunity h2 {
  font-size:34px;
  margin:16px 0
}
.opportunity p {
  font-size:14px;
  line-height:1.9;
  color:var(--muted)
}
.opportunity .role-number {
  font-size:10px;
  color:var(--muted);
  letter-spacing:2px
}
.opportunity .role-meta {
  font-size:10px;
  text-transform:uppercase;
  letter-spacing:1.5px;
  color:#637988;
  margin:20px 0 0
}
.contact-card {
  background:var(--ink);
  color:var(--paper);
  padding:39px 35px;
  align-self:start
}
.contact-card h2 {
  font-size:36px
}
.contact-card .eyebrow {
  color:#d0e6f0
}
.contact-card p {
  font-size:12px;
  color:#e5eaee;
  line-height:1.85
}
.contact-card .contact-email {
  font-size:15px;
  border-bottom:1px solid #b0c5d2;
  padding-bottom:4px;
  display:inline-block;
  margin:20px 0 31px;
  overflow-wrap:anywhere
}
.contact-block {
  padding:22px 0 0;
  border-top:1px solid #afc5d1
}
.contact-block .label {
  display:block;
  font-size:9px;
  letter-spacing:1.8px;
  text-transform:uppercase;
  color:#d6e6ed
}
.contact-block p {
  margin:10px 0 0
}
.contact-card .button {
  margin-top:28px;
  width:100%;
  gap:15px
}
.inline-note {
  padding:17px 20px;
  border-left:2px solid #8faebf;
  background:var(--pale);
  font-size:11px!important
}
.quiet-link {
  font-size:11px;
  color:var(--muted);
  text-decoration:underline;
  text-underline-offset:4px
}
.bottom-caption {
  border-top:1px solid var(--line);
  margin-top:42px;
  padding-top:24px;
  display:flex;
  justify-content:space-between;
  gap:30px;
  font-size:10px;
  color:var(--muted)
}
.bottom-caption p {
  margin:0
}
.fade-in {
  animation:enter .7s ease both
}
@keyframes enter {
  from {
    opacity:0;
    transform:translateY(13px)
  }
  to {
    opacity:1;
    transform:translateY(0)
  }
}
@media(min-width:1500px) {
  .home-hero {
    padding-top:87px
  }
  .hero-illustration {
    max-height:580px
  }
  .display {
    font-size:96px
  }
}
@media(max-width:1100px) {
  .wrap {
    width:calc(100% - 72px)
  }
  .site-nav {
    gap:24px
  }
  .hero-grid {
    gap:34px
  }
  .display {
    font-size:70px;
    letter-spacing:-3px
  }
  .hero-copy .lede {
    font-size:14px
  }
  .hero-topics {
    gap:18px;
    font-size:9px
  }
  .about-grid {
    gap:55px
  }
  .research-detail {
    gap:45px
  }
  .page-hero {
    gap:50px
  }
  .join-grid {
    gap:40px
  }
  .contact-card {
    padding:32px 25px
  }
  .publication-layout {
    grid-template-columns:170px 1fr;
    gap:35px
  }
  .member-portrait {
    height:240px
  }
  .cta {
    padding:43px
  }
  .cta h2 {
    font-size:38px
  }
}
@media(max-width:800px) {
  .wrap {
    width:calc(100% - 48px)
  }
  .header-inner {
    min-height:90px
  }
  .brand-name {
    font-size:20px
  }
  .brand-subtitle {
    font-size:8px;
    letter-spacing:2px
  }
  .brand-mark {
    width:37px;
    height:37px
  }
  .site-nav {
    gap:19px;
    font-size:11px
  }
  .site-nav .join-nav {
    padding:8px 12px;
    gap:12px
  }
  .home-hero {
    padding-top:50px
  }
  .display {
    font-size:59px;
    letter-spacing:-2.5px
  }
  .hero-grid {
    gap:25px
  }
  .hero-copy .lede {
    font-size:13px
  }
  .hero-art figcaption {
    letter-spacing:1px;
    font-size:8px
  }
  .hero-art figcaption span:last-child {
    font-size:8px
  }
  .hero-bottom {
    margin-top:44px
  }
  .hero-bottom p {
    max-width:230px;
    font-size:10px
  }
  .hero-topics {
    gap:12px;
    font-size:8px;
    letter-spacing:.5px
  }
  .section {
    padding:64px 0
  }
  .research-cards {
    gap:18px
  }
  .card-art {
    height:164px
  }
  .research-card h3 {
    font-size:22px
  }
  .research-card p {
    font-size:12px
  }
  .about-grid {
    gap:40px
  }
  .about-text {
    font-size:16px
  }
  .cta {
    padding:35px;
    gap:24px
  }
  .cta h2 {
    font-size:33px
  }
  .cta-section {
    padding-bottom:64px
  }
  .page-hero {
    gap:35px;
    padding:54px 0 45px
  }
  .page-hero .lede {
    font-size:13px
  }
  .detail-copy h2 {
    font-size:31px
  }
  .detail-art {
    height:275px
  }
  .research-detail {
    gap:32px
  }
  .detail-copy p {
    font-size:13px
  }
  .join-grid {
    grid-template-columns:1.2fr 1fr;
    gap:30px
  }
  .contact-card .contact-email {
    font-size:13px
  }
  .people-intro {
    padding:35px 25px 35px 0
  }
  .people-intro h2 {
    font-size:31px
  }
  .member-portrait {
    height:215px
  }
  .member-card h3 {
    font-size:24px
  }
  .people-grid {
    gap:19px
  }
}
@media(max-width:640px) {
  .wrap {
    width:calc(100% - 40px)
  }
  .header-inner {
    min-height:83px;
    gap:20px
  }
  .brand-name {
    font-size:21px
  }
  .brand-subtitle {
    font-size:8px;
    letter-spacing:2px
  }
  .brand-mark {
    width:35px;
    height:35px
  }
  .brand {
    gap:11px
  }
  .menu-toggle {
    display:flex;
    flex-direction:column;
    gap:5px;
    align-items:center;
    font-size:9px;
    letter-spacing:1px;
    padding-right:0
  }
  .menu-toggle .menu-line {
    height:1px;
    width:23px;
    background:var(--ink);
    display:block
  }
  .menu-toggle span:last-child {
    margin-top:2px
  }
  .js .site-nav {
    display:none;
    position:absolute;
    top:82px;
    left:0;
    right:0;
    padding:18px 20px 25px;
    background:var(--paper);
    border-bottom:1px solid var(--line);
    flex-direction:column;
    align-items:stretch;
    gap:3px;
    box-shadow:0 14px 15px #2831390a
  }
  .js .site-nav.is-open {
    display:flex
  }
  .site-nav {
    font-size:14px
  }
  .site-nav a {
    padding:11px 0
  }
  .site-nav a:not(.join-nav):after {
    display:none
  }
  .site-nav a[aria-current=page] {
    font-weight:600
  }
  .site-nav .join-nav {
    margin-top:7px;
    padding:12px 15px
  }
  .no-js .header-inner {
    flex-wrap:wrap;
    padding-block:20px
  }
  .no-js .site-nav {
    display:flex;
    flex-wrap:wrap;
    gap:8px 21px
  }
  .no-js .menu-toggle {
    display:none
  }
  .home-hero {
    padding:38px 0 30px
  }
  .hero-grid {
    grid-template-columns:1fr;
    gap:37px
  }
  .eyebrow {
    font-size:9px;
    letter-spacing:2px;
    margin-bottom:21px
  }
  .display {
    font-size:clamp(53px,13.8vw,80px);
    letter-spacing:-2.7px;
    line-height:1.06
  }
  .hero-copy {
    padding:0
  }
  .hero-copy .lede {
    font-size:14px;
    max-width:390px;
    margin:22px 0
  }
  .text-link {
    font-size:12px
  }
  .hero-illustration {
    aspect-ratio:1.1;
    border-radius:150px 150px 2px 2px;
    max-height:460px
  }
  .hero-art figcaption {
    font-size:8px;
    letter-spacing:1.5px;
    margin-top:12px
  }
  .hero-art figcaption span:last-child {
    font-size:9px
  }
  .hero-bottom {
    margin-top:27px;
    padding-top:19px;
    display:block
  }
  .hero-bottom p {
    max-width:none;
    font-size:10px
  }
  .hero-topics {
    gap:17px;
    font-size:8px;
    letter-spacing:1px;
    margin-top:15px;
    flex-wrap:wrap
  }
  .section {
    padding:48px 0
  }
  .section-heading {
    gap:23px;
    align-items:start;
    margin-bottom:30px
  }
  .section-heading h2 {
    font-size:33px;
    letter-spacing:-1.1px
  }
  .section-heading .text-link {
    font-size:10px;
    gap:10px;
    margin-top:29px;
    flex-shrink:0
  }
  .section-heading .eyebrow {
    font-size:8px;
    letter-spacing:1.4px
  }
  .research-cards {
    grid-template-columns:1fr;
    gap:34px
  }
  .card-art {
    height:210px
  }
  .card-meta {
    margin-top:18px;
    font-size:9px
  }
  .research-card h3 {
    font-size:27px;
    margin:10px 0
  }
  .research-card p {
    font-size:13px;
    max-width:none
  }
  .about-grid {
    grid-template-columns:1fr;
    gap:26px
  }
  .about-grid h2 {
    font-size:38px;
    max-width:330px
  }
  .about-text {
    font-size:16px
  }
  .method-tags span {
    font-size:9px;
    padding:7px 11px
  }
  .cta-section {
    padding-bottom:48px
  }
  .cta {
    padding:31px 26px;
    display:block
  }
  .cta h2 {
    font-size:35px
  }
  .cta p {
    font-size:12px
  }
  .cta .button {
    margin-top:25px
  }
  .site-footer {
    padding-top:31px
  }
  .footer-main {
    display:block
  }
  .footer-brand .brand-name {
    font-size:28px
  }
  .footer-contact {
    text-align:left;
    margin-top:24px
  }
  .footer-bottom {
    margin-top:25px;
    gap:15px;
    font-size:8px;
    align-items:start
  }
  .page-hero {
    padding:40px 0 36px;
    grid-template-columns:1fr;
    gap:23px
  }
  .page-hero .display {
    font-size:60px;
    letter-spacing:-2.4px
  }
  .page-hero .lede {
    font-size:14px;
    max-width:440px
  }
  .page-body {
    padding-bottom:50px
  }
  .research-detail,.research-detail:nth-child(even) {
    grid-template-columns:1fr;
    gap:26px;
    padding:32px 0
  }
  .research-detail:nth-child(even) .detail-art {
    order:0
  }
  .detail-art {
    height:240px
  }
  .detail-copy h2 {
    font-size:33px
  }
  .detail-copy p {
    font-size:14px
  }
  .detail-copy .eyebrow {
    margin-bottom:15px
  }
  .methods-panel {
    padding:32px 26px;
    margin-top:12px
  }
  .methods-panel h2 {
    font-size:31px
  }
  .methods-panel .method-tags {
    gap:9px
  }
  .methods-panel .method-tags span {
    font-size:10px;
    padding:8px 12px
  }
  .publication-layout {
    grid-template-columns:1fr;
    gap:25px;
    padding-top:25px
  }
  .archive-aside {
    display:flex;
    gap:24px;
    flex-wrap:wrap;
    align-items:center
  }
  .archive-aside .eyebrow {
    display:none
  }
  .archive-label {
    min-width:140px;
    gap:25px
  }
  .archive-note {
    font-size:10px;
    max-width:160px;
    margin:0
  }
  .empty-intro {
    padding:26px 23px
  }
  .empty-intro h2 {
    font-size:30px
  }
  .empty-intro p {
    font-size:12px
  }
  .paper-template {
    grid-template-columns:45px 1fr;
    gap:15px;
    padding:25px 0
  }
  .paper-template h3 {
    font-size:24px
  }
  .paper-template p {
    font-size:11px
  }
  .source-note {
    font-size:10px
  }
  .people-banner {
    grid-template-columns:1fr;
    margin-bottom:39px
  }
  .people-illustration {
    min-height:0;
    height:210px
  }
  .people-intro {
    padding:0 27px 30px
  }
  .people-intro h2 {
    font-size:32px
  }
  .people-intro p {
    font-size:12px
  }
  .team-heading h2 {
    font-size:29px
  }
  .team-heading span {
    font-size:8px;
    letter-spacing:1.2px
  }
  .people-grid {
    grid-template-columns:1fr;
    gap:35px
  }
  .member-portrait {
    height:300px
  }
  .member-portrait svg {
    width:130px;
    height:165px
  }
  .member-card h3 {
    font-size:27px
  }
  .member-card p {
    max-width:none
  }
  .member-detail {
    margin-top:14px
  }
  .team-more {
    grid-template-columns:1fr;
    gap:28px;
    margin-top:40px
  }
  .join-grid {
    grid-template-columns:1fr;
    gap:16px;
    padding-top:31px
  }
  .opportunity h2 {
    font-size:32px
  }
  .opportunity p {
    font-size:13px
  }
  .contact-card {
    padding:32px 28px
  }
  .contact-card .contact-email {
    font-size:17px
  }
  .bottom-caption {
    display:block;
    font-size:10px
  }
  .bottom-caption p+p {
    margin-top:10px
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*:before,*:after {
    animation:none!important;
    transition:none!important
  }
}
.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
}
.research-photo {
  width:100%;
  height:100%;
  object-fit:cover
}
.photo-label {
  position:absolute;
  bottom:14px;
  left:16px;
  padding:5px 9px;
  background:#ffffffed;
  font-size:8px;
  letter-spacing:1.1px;
  text-transform:uppercase;
  color:var(--ink)
}
.publication-link {
  display:inline-block;
  margin:12px 18px 0 0;
  border-bottom:1px solid var(--line);
  font-size:11px
}
.paper-template .publication-title {
  color:var(--ink)
}
.member-portrait>img {
  width:100%;
  height:100%;
  object-fit:cover
}
@media(max-width:640px) {
  .home-hero .display {
    font-size:clamp(43px,13.6vw,80px)
  }
}

/* White academic layout: generous masthead, source figures, and research visuals. */
:root { --blue:#0086bb; --serif:'Helvetica Neue',Helvetica,Arial,sans-serif; }
::selection { background:#dceef7; color:#173b50; }
.wrap { width:min(1180px,calc(100% - 100px)); }
.site-header { border:0; }
.header-inner { min-height:max(260px,28vh); display:grid; grid-template-columns:1fr; grid-template-rows:1fr auto; gap:28px; padding-top:36px; border-bottom:1px solid #bfc5ca; }
.brand { gap:22px; align-self:center; }
.brand-mark { width:76px; height:84px; color:var(--blue); flex-shrink:0; }
.brand-name { font-size:50px; font-weight:300; line-height:1.12; letter-spacing:-1.6px; }
.brand-name > span { color:var(--blue); }
.brand-subtitle { font-size:19px; line-height:1.42; letter-spacing:0; text-transform:none; font-weight:300; margin-top:12px; color:#515b63; }
.site-nav { justify-self:end; gap:58px; align-items:center; font-size:20px; font-weight:300; padding:0 0 17px; }
.site-nav a,.site-nav .join-nav { border:0; padding:13px 0; }
.site-nav a:not(.join-nav):after { display:none; }
.site-nav a[aria-current=page],.site-nav a:hover,.site-nav .join-nav[aria-current=page],.site-nav .join-nav:hover { color:var(--blue); background:transparent; }
.site-nav .join-nav .arrow { display:none; }
.display { font-weight:300; letter-spacing:-2px; }
h2 { font-weight:300; }
.display em,h2 em { font-style:normal; color:var(--blue); }
.cta { background:#f4f8fb; color:var(--ink); border:1px solid #e0e8ed; padding:42px 48px; }
.cta h2 { font-size:36px; }
.cta p { color:var(--muted); }
.cta .eyebrow { color:var(--blue); }
.button-light { background:var(--blue); border-color:var(--blue); color:white; }
.button-light:hover { background:#006d98; border-color:#006d98; }
.footer-brand .brand-name { font-size:27px; font-weight:400; letter-spacing:-.7px; }
.methods-panel,.contact-card { background:#f4f8fb; color:var(--ink); border:1px solid #e0e8ed; }
.methods-panel .eyebrow,.contact-card .eyebrow { color:var(--blue); }
.methods-panel .method-tags span { color:var(--ink); border-color:#c7d7e0; }
.contact-card p,.contact-block .label { color:var(--muted); }
.home-overview { padding:58px 0 60px; }
.overview-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:64px; align-items:center; }
.overview-copy h1 { color:var(--blue); font-size:74px; font-weight:300; letter-spacing:-2.5px; line-height:1.12; margin:0 0 30px; }
.overview-copy h1 strong { font-weight:650; }
.overview-copy p { font-size:17px; line-height:1.85; font-weight:300; color:#515961; margin:0 0 19px; }
.overview-link { display:inline-flex; gap:18px; color:var(--blue); font-size:15px; margin-top:4px; padding-block:6px; }
.overview-link:hover { text-decoration:underline; text-underline-offset:5px; }
.featured-research { min-width:0; align-self:center; }
.feature-topline { display:flex; justify-content:space-between; gap:15px; font-size:11px; color:#647381; letter-spacing:1px; margin-bottom:16px; text-transform:uppercase; }
.hover-hint { text-transform:none; letter-spacing:0; color:#75828c; }
.research-slides { min-width:0; }
.js .research-slide:not(.is-active) { display:none; }
.no-js .research-slide + .research-slide { margin-top:26px; }
.featured-paper { display:block; }
.paper-figure { position:relative; aspect-ratio:1.42; border:1px solid #e7ebee; background:#fff; overflow:hidden; }
.paper-figure > img { width:100%; height:100%; object-fit:contain; padding:20px; }
.paper-summary { position:absolute; inset:0; background:rgba(16,54,78,.96); color:#fff; padding:36px; display:flex; flex-direction:column; justify-content:center; opacity:0; transform:translateY(8px); transition:opacity .22s,transform .22s; }
.featured-paper:hover .paper-summary,.featured-paper:focus-visible .paper-summary { opacity:1; transform:none; }
.summary-label { font-size:10px; text-transform:uppercase; letter-spacing:1.8px; color:#b8e0f4; }
.paper-summary h3 { font-size:28px; font-weight:400; line-height:1.24; letter-spacing:-.5px; margin:17px 0; }
.paper-summary p { margin:0; font-size:15px; line-height:1.75; color:#e4eef3; }
.paper-open { font-size:12px; display:flex; justify-content:space-between; border-top:1px solid #66889c; padding-top:15px; margin-top:23px; }
.paper-caption { padding:16px 27px 0 0; position:relative; min-height:109px; }
.paper-meta { font-size:11px; color:var(--blue); letter-spacing:.7px; }
.paper-caption h2 { font-family:var(--sans); font-size:17px; font-weight:400; line-height:1.45; letter-spacing:-.15px; margin:8px 0 0; }
.paper-caption-arrow { position:absolute; right:0; top:17px; font-size:21px; color:var(--blue); }
.carousel-controls,.carousel-navigation { display:flex; align-items:center; gap:12px; }
.carousel-controls { justify-content:space-between; margin-top:15px; border-top:1px solid var(--line); padding-top:13px; }
.carousel-dots { display:flex; gap:4px; }
.carousel-dot { width:28px; height:28px; padding:0; border:0; background:transparent; cursor:pointer; display:grid; place-items:center; }
.carousel-dot:after { content:''; width:7px; height:7px; border:1px solid #8397a4; border-radius:50%; }
.carousel-dot.is-active:after { background:var(--blue); border-color:var(--blue); }
.carousel-count { font-size:12px; color:#667681; font-variant-numeric:tabular-nums; letter-spacing:1.5px; margin-right:13px; }
.icon-button { width:42px; height:42px; padding:0; display:inline-grid; place-items:center; border:1px solid #d5dde3; background:#fff; font-size:19px; line-height:1; color:#536674; cursor:pointer; transition:background .2s,color .2s,border-color .2s; }
.icon-button:hover { color:var(--blue); border-color:var(--blue); background:#f3f9fc; }
.no-js .carousel-controls { display:none; }
[hidden] { display:none!important; }
@media(min-width:1600px) { .header-inner { min-height:28vh; } }
@media(max-width:1050px) {
  .wrap { width:calc(100% - 72px); }
  .header-inner { min-height:max(260px,28vh); }
  .brand-name { font-size:45px; }
  .brand-subtitle { font-size:17px; }
  .site-nav { gap:45px; font-size:19px; }
  .overview-grid { gap:38px; grid-template-columns:.9fr 1.1fr; }
  .overview-copy h1 { font-size:63px; }
  .overview-copy p { font-size:15px; }
  .paper-summary { padding:24px; }
  .paper-summary h3 { font-size:23px; }
  .paper-summary p { font-size:13px; line-height:1.65; }
  .paper-caption h2 { font-size:15px; }
  .paper-figure { aspect-ratio:1.2; }
}
@media(max-width:800px) {
  .wrap { width:calc(100% - 48px); }
  .brand-name { font-size:41px; }
  .brand-mark { width:61px; height:70px; }
  .brand-subtitle { font-size:16px; }
  .site-nav { gap:38px; font-size:18px; }
  .overview-grid { gap:30px; }
  .overview-copy h1 { font-size:54px; }
  .overview-copy p { font-size:14px; line-height:1.75; }
  .paper-figure > img { padding:12px; }
  .paper-summary { padding:20px; }
  .paper-summary h3 { font-size:20px; margin:12px 0; }
  .paper-summary p { font-size:12px; line-height:1.6; }
  .paper-open { margin-top:15px; padding-top:10px; }
  .feature-topline { font-size:9px; letter-spacing:.4px; }
  .paper-caption { min-height:140px; }
}
@media(max-width:640px) {
  .wrap { width:calc(100% - 40px); }
  .header-inner { position:relative; min-height:max(228px,26vh); padding-top:27px; padding-bottom:51px; display:flex; align-items:center; }
  .brand { gap:12px; min-width:0; width:100%; }
  .brand-mark { width:43px; height:61px; }
  .brand-name { font-size:34px; letter-spacing:-1.2px; line-height:1.15; }
  .brand-subtitle { font-size:13px; line-height:1.5; margin-top:10px; max-width:265px; }
  .menu-toggle { position:absolute; right:0; bottom:16px; flex-direction:row; gap:6px; font-size:11px; }
  .menu-toggle .menu-line:first-child { display:none; }
  .menu-toggle .menu-line { width:19px; margin-right:4px; }
  .menu-toggle span:last-child { margin-top:0; }
  .js .site-nav { top:calc(100% - 1px); left:-20px; right:-20px; padding:12px 20px 20px; font-size:18px; background:#fff; box-shadow:0 12px 18px #20333f0a; }
  .site-nav a,.site-nav .join-nav { padding:12px 0; margin:0; font-weight:300; }
  .no-js .header-inner { display:block; padding:27px 0 10px; }
  .no-js .site-nav { font-size:15px; gap:8px 20px; padding-top:20px; }
  .home-overview { padding:34px 0 40px; }
  .overview-grid { grid-template-columns:1fr; gap:38px; }
  .overview-copy h1 { font-size:57px; letter-spacing:-1.7px; margin-bottom:25px; }
  .overview-copy p { font-size:16px; line-height:1.8; }
  .overview-link { font-size:14px; }
  .feature-topline { font-size:10px; }
  .hover-hint { display:none; }
  .paper-figure { aspect-ratio:auto; overflow:visible; }
  .paper-figure > img { height:260px; padding:17px; }
  .paper-summary { position:static; background:#f5f8fa; color:var(--ink); opacity:1; transform:none; padding:23px; min-height:220px; }
  .summary-label { color:var(--blue); font-size:9px; }
  .paper-summary h3 { font-size:24px; }
  .paper-summary p { color:#52616c; font-size:14px; line-height:1.75; }
  .paper-open { border-color:#d6e1e7; color:var(--blue); font-size:12px; }
  .paper-caption { min-height:125px; padding-top:13px; }
  .paper-caption h2 { font-size:15px; }
  .carousel-controls { margin-top:12px; }
  .icon-button { width:44px; height:44px; }
  .cta { padding:30px 25px; }
  .cta h2 { font-size:31px; }
}
@media(max-width:360px) {
  .brand-name { font-size:28px; }
  .brand-subtitle { font-size:12px; }
  .brand-mark { width:37px; }
  .paper-figure > img { height:225px; }
}
@media(hover:none) and (min-width:641px) {
  .paper-figure { aspect-ratio:auto; }
  .paper-figure > img { height:290px; }
  .paper-summary { position:static; opacity:1; transform:none; padding:24px; }
  .hover-hint { display:none; }
}
.figure-credit { font-size:10px; line-height:1.6; color:#6a7883; margin:10px 0 0; min-height:32px; }
@media(max-width:640px) { .figure-credit { font-size:9px; min-height:29px; } }
@media(min-width:641px) and (max-width:900px) {
  .overview-grid { grid-template-columns:1fr; gap:36px; }
  .overview-copy { max-width:none; }
  .overview-copy h1 { font-size:64px; }
  .overview-copy p { font-size:17px; }
  .paper-figure { aspect-ratio:1.65; }
  .paper-summary { padding:32px; }
  .paper-summary h3 { font-size:27px; }
  .paper-summary p { font-size:15px; }
  .paper-caption { min-height:100px; }
}
/* Keep the keyboard skip link out of full-page captures until it is focused. */
.skip-link { top:12px; clip-path:inset(50%); width:1px; height:1px; padding:0; overflow:hidden; white-space:nowrap; }
.skip-link:focus { clip-path:none; width:auto; height:auto; padding:10px 20px; overflow:visible; }
@media(hover:hover) and (min-width:641px) { .paper-summary { background:#173f57; } }
@media(hover:none) { .paper-figure { aspect-ratio:auto; } }

/* Selected type pairing: Cormorant Garamond / Spectral, on white. */
:root {
  --blue:#203550;
  --brand-color:#94070a;
  --serif:'Spectral',Georgia,'Times New Roman',serif;
  --brand-font:'Cormorant Garamond',Georgia,'Times New Roman',serif;
}
::selection { background:#f1e3e3; color:#203550; }
:focus-visible { outline-color:var(--blue); }
.brand-name,.footer-brand .brand-name {
  font-family:var(--brand-font);
  font-weight:600;
  color:#111;
  font-synthesis:none;
}
.brand-name { font-size:64px; letter-spacing:-1.5px; }
.brand-name > span { color:var(--brand-color); }
.brand-mark { color:var(--brand-color); }
.footer-brand .brand-name { font-size:34px; }
.site-nav { font-family:var(--brand-font); font-size:27px; line-height:1.25; font-synthesis:none; }
.site-nav,.site-nav a,.site-nav .join-nav { font-weight:600; }
h2,.display,.section-title,.overview-copy h1,.paper-caption h2 {
  font-family:var(--serif);
  font-weight:500;
  color:var(--blue);
  font-synthesis:none;
}
.display em,h2 em { font-weight:500; }
.home-overview { padding-top:38px; }
.overview-grid { grid-template-columns:1fr; align-items:start; }
.overview-copy h1 { font-size:56px; letter-spacing:-1.4px; line-height:1.12; }
.overview-copy h1 strong { font-weight:500; }
.cta h2 { font-size:30px; }
.paper-caption h2 { font-size:18px; line-height:1.4; }
.button-light:hover { background:#354d6c; border-color:#354d6c; }
.section-title { font-size:48px; line-height:1.2; letter-spacing:-1px; margin:0; }
.research-overview { padding:50px 0 48px; }
.research-overview > p { max-width:1050px; margin:25px 0 0; font-size:18px; line-height:1.9; color:#535c65; }
.detail-copy h2 { font-size:32px; letter-spacing:-.7px; }

/* Publications: article details followed by the original figure and full text. */
.publications-page { padding-top:50px; padding-bottom:80px; }
.publication-list { margin-top:36px; }
.publication-item { padding:36px 0 45px; border-top:1px solid var(--line); }
.publication-item:last-child { padding-bottom:0; }
.publication-meta { display:flex; flex-wrap:wrap; gap:12px; margin:0 0 13px; color:var(--blue); font-size:13px; letter-spacing:.4px; }
.publication-header h2 { font-size:27px; line-height:1.35; letter-spacing:-.45px; margin:0 0 14px; max-width:1100px; }
.publication-header h2 a:hover { text-decoration:underline; text-underline-offset:5px; text-decoration-thickness:1px; }
.publication-authors { margin:0; font-size:15px; line-height:1.75; color:#626a71; }
.publication-materials { display:grid; grid-template-columns:1.1fr 1fr; gap:44px; align-items:center; margin-top:26px; }
.publication-materials.without-figure { grid-template-columns:1fr; }
.publication-figure { margin:0; min-width:0; }
.publication-image { height:310px; background:#fff; border:1px solid #e7e9ed; padding:20px; }
.publication-image img { width:100%; height:100%; object-fit:contain; }
.publication-figure figcaption { font-size:11px; line-height:1.6; color:#6a737c; margin-top:9px; }
.publication-reading > p { font-size:16px; line-height:1.85; margin:0 0 24px; color:#535c65; }
.publication-resources { display:flex; flex-wrap:wrap; gap:16px 24px; align-items:center; }
.pdf-download { display:flex; gap:15px; align-items:center; min-width:235px; padding:15px 18px; border:1px solid #bac4d0; color:var(--blue); transition:background .2s,border-color .2s; }
.pdf-download:hover { background:#f4f6f9; border-color:var(--blue); }
.pdf-label { font-size:12px; letter-spacing:.5px; font-weight:500; border:1px solid currentColor; padding:10px 6px; line-height:1; }
.pdf-download strong { display:block; font-family:var(--sans); font-size:14px; font-weight:500; line-height:1.4; }
.pdf-download small { display:block; margin-top:3px; font-size:11px; color:#6a737c; }
.download-arrow { margin-left:auto; font-size:24px; }
.article-link { color:var(--blue); font-size:13px; padding:8px 0; border-bottom:1px solid #cad1d9; }
.article-link:hover { border-color:var(--blue); }

/* People: equal member cards, with roles inside each card. */
.people-page { padding-top:52px; padding-bottom:80px; }
.people-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.member-card { display:grid; grid-template-columns:42% 58%; min-width:0; border:1px solid #e0e3e8; background:#fff; }
.member-portrait { height:100%; min-height:360px; background:#f4f5f7; }
.member-portrait > img { position:absolute; inset:0; object-position:50% 22%; }
.member-information { padding:31px 27px; display:flex; flex-direction:column; align-items:flex-start; min-width:0; }
.member-card .member-role { font-size:17px; font-weight:500; letter-spacing:0; text-transform:none; color:var(--brand-color); margin:0 0 14px; }
.member-card h2 { font-size:29px; line-height:1.2; letter-spacing:-.8px; margin:0 0 22px; }
.member-card .member-bio { font-size:14px; line-height:1.85; max-width:none; margin:0 0 22px; }
.member-detail { width:100%; margin-top:auto; padding-top:15px; font-size:14px; overflow-wrap:anywhere; }
.member-detail a { color:var(--blue); }
.member-detail a:hover { text-decoration:underline; text-underline-offset:4px; }
@media(max-width:1100px) {
  .brand-name { font-size:58px; }
  .member-card { grid-template-columns:1fr; }
  .member-portrait { height:350px; min-height:0; }
  .member-portrait > img { object-position:50% 20%; }
  .member-information { padding:25px 27px; min-height:250px; }
}
@media(max-width:900px) {
  .brand-name { font-size:52px; }
  .publication-materials { gap:27px; }
  .publication-image { height:275px; padding:15px; }
  .publication-reading > p { font-size:14px; }
  .publication-header h2 { font-size:25px; }
  .section-title { font-size:44px; }
  .overview-copy h1 { font-size:52px; }
  .site-nav { font-size:25px; }
}
@media(max-width:640px) {
  .brand-name { font-size:38px; letter-spacing:-1px; }
  .footer-brand .brand-name { font-size:31px; }
  .section-title { font-size:36px; letter-spacing:-.7px; }
  .home-overview { padding-top:26px; }
  .overview-copy h1 { font-size:44px; }
  .detail-copy h2 { font-size:28px; }
  .cta h2 { font-size:27px; }
  .js .site-nav,.no-js .site-nav { font-size:24px; }
  .research-overview { padding:34px 0; }
  .research-overview > p { font-size:16px; line-height:1.85; margin-top:22px; }
  .publications-page { padding-top:34px; padding-bottom:50px; }
  .publication-list { margin-top:27px; }
  .publication-item { padding:25px 0 32px; }
  .publication-header h2 { font-size:23px; }
  .publication-authors { font-size:13px; }
  .publication-materials { grid-template-columns:1fr; gap:22px; margin-top:22px; }
  .publication-image { height:270px; }
  .publication-reading > p { font-size:15px; }
  .pdf-download { flex:1 1 210px; }
  .publication-resources { gap:14px 22px; }
  .people-page { padding-top:32px; padding-bottom:50px; }
  .people-grid { grid-template-columns:1fr; gap:27px; }
  .member-portrait { height:auto; aspect-ratio:4/4.5; }
  .member-portrait > img { object-position:50% 20%; }
  .member-information { min-height:0; padding:25px; }
  .member-card h2 { font-size:30px; margin-bottom:17px; }
  .member-card .member-bio { margin-bottom:18px; }
  .member-card .member-role { margin-bottom:12px; }
  .paper-caption h2 { font-size:16px; }
}
@media(max-width:360px) { .brand-name { font-size:33px; } }

/* Recruitment is a plain overview and three readable text entries. */
.join-page { padding-top:44px; padding-bottom:76px; }
.join-content { max-width:1060px; font-size:18px; line-height:1.9; color:#535c65; }
.join-overview { margin:25px 0 36px; }
.join-overview a { color:var(--blue); text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px; overflow-wrap:anywhere; }
.recruitment-list { margin:0; padding-left:24px; }
.recruitment-list li { padding-left:8px; margin-top:26px; }
.recruitment-list li::marker { color:var(--blue); font-size:15px; }
.recruitment-list h2 { display:inline; font-size:24px; letter-spacing:-.3px; line-height:inherit; margin:0 8px 0 0; }
.recruitment-list h2::after { content:':'; }
.recruitment-list p { display:inline; margin:0; }
@media(max-width:640px) {
  .join-page { padding-top:32px; padding-bottom:48px; }
  .join-content { font-size:16px; line-height:1.85; }
  .join-overview { margin:22px 0 28px; }
  .recruitment-list { padding-left:19px; }
  .recruitment-list li { padding-left:3px; margin-top:24px; }
  .recruitment-list h2 { font-size:21px; }
}

/* Compact APA publication archive. */
.publication-list { margin-top:30px; }
.publication-sections { display:flex; gap:24px; margin-top:22px; font-size:15px; }
.publication-sections a { color:var(--blue); text-decoration:underline; text-underline-offset:5px; }
.publication-category + .publication-category { margin-top:54px; }
.publication-category > h2 { font-family:var(--serif); font-size:30px; font-weight:500; color:var(--blue); margin:0 0 18px; scroll-margin-top:100px; }
.publication-year { display:grid; grid-template-columns:72px minmax(0,1fr); gap:24px; border-top:1px solid var(--line); padding-top:10px; margin-top:22px; }
.publication-year > h3 { font-family:var(--serif); font-weight:500; color:var(--blue); font-size:25px; letter-spacing:-.4px; margin:12px 0 0; }
.publication-item { display:grid; grid-template-columns:minmax(0,1fr) max-content; align-items:start; gap:24px; padding:17px 0; border-top:0; border-bottom:1px solid #edf0f2; }
.publication-item:last-child { padding-bottom:17px; border-bottom:0; }
.apa-citation { margin:0; padding-left:22px; text-indent:-22px; font-size:15px; line-height:1.8; color:#414a53; overflow-wrap:anywhere; }
.apa-citation a { color:var(--blue); }
.apa-citation a:hover { text-decoration:underline; text-underline-offset:3px; }
.publication-resources { gap:9px; flex-wrap:nowrap; margin-top:1px; }
.pdf-download { min-width:0; height:36px; gap:7px; padding:7px 10px; font-size:12px; white-space:nowrap; }
.pdf-label { padding:3px 2px; font-size:9px; }
.article-link { display:inline-flex; align-items:center; height:36px; font-size:12px; white-space:nowrap; padding:7px 10px; border:1px solid #bac4d0; }
.article-link:hover { background:#f4f6f9; border-color:var(--blue); }

/* Compact current-member portraits and contact details. */
.people-page { padding-top:38px; }
.people-grid { gap:22px; }
.member-card { grid-template-columns:104px minmax(0,1fr); gap:20px; padding:20px; }
.member-portrait { width:104px; height:138px; min-height:0; aspect-ratio:auto; align-self:start; }
.member-portrait > img { object-position:50% 17%; }
.member-portrait > img[src="assets/people/weiran-tang.jpg"] { object-position:100% 50%; }
.member-information { padding:0; min-height:0; }
.member-card .member-role { font-size:15px; line-height:1.4; margin:0 0 9px; }
.member-card h2,.member-card h3 { font-family:var(--serif); font-weight:500; color:var(--blue); font-size:27px; line-height:1.2; letter-spacing:-.6px; margin:0 0 15px; }
.member-card .member-bio { font-size:13px; line-height:1.75; margin:0 0 15px; }
.member-card .member-detail { font-size:12px; line-height:1.6; padding-top:12px; }
.member-card-text { grid-template-columns:1fr; }
.example-profile { font-size:11px; line-height:1.5; color:#70777e; margin:-5px 0 12px; }
.email-address { overflow-wrap:anywhere; }
.join-copy { margin-top:25px; }
.join-copy > p { margin:0 0 22px; }
.join-copy > p:last-child { margin-bottom:0; }
.join-content > .contact-email { margin:30px 0 0; color:var(--ink); }
@media(pointer:coarse) {
  .pdf-download,.article-link { min-height:44px; }
}
@media(max-width:1000px) {
  .publication-item { grid-template-columns:1fr; gap:10px; }
  .publication-resources { justify-content:flex-start; }
  .people-grid { grid-template-columns:1fr; }
  .member-card { grid-template-columns:100px minmax(0,1fr); }
  .member-portrait { width:100px; height:133px; }
  .member-card-text { grid-template-columns:1fr; }
}
@media(max-width:640px) {
  .publication-year { grid-template-columns:1fr; gap:0; padding-top:9px; margin-top:18px; }
  .publication-year > h3 { font-size:23px; margin:10px 0 2px; }
  .publication-item { padding:15px 0; gap:10px; }
  .apa-citation { font-size:14px; line-height:1.75; padding-left:18px; text-indent:-18px; }
  .pdf-download { flex:0 0 auto; }
  .publication-resources { flex-wrap:wrap; gap:9px; }
  .people-page { padding-top:28px; }
  .people-grid { gap:18px; }
  .member-card { grid-template-columns:76px minmax(0,1fr); gap:15px; padding:16px; }
  .member-portrait { width:76px; height:102px; }
  .member-card h2,.member-card h3 { font-size:24px; margin-bottom:12px; }
  .member-card .member-role { font-size:14px; }
  .member-card .member-bio { font-size:13px; }
  .member-card-text { grid-template-columns:1fr; }
  .join-copy { margin-top:22px; }
  .join-copy > p { margin-bottom:20px; }
  .join-content > .contact-email { margin-top:26px; }
}


/* Pre-rendered PKU-red logo with compact transparent margins; no live color filter. */
.brand-mark { display:block; width:128px; height:128px; object-fit:contain; }
.footer-logo { display:flex; align-items:center; gap:12px; width:fit-content; }
.footer-logo .brand-mark { width:62px; height:62px; }
@media(max-width:800px) {
  .brand-mark { width:100px; height:100px; }
}
@media(max-width:640px) {
  .brand-mark { width:56px; height:56px; }
  .footer-logo { gap:8px; }
  .footer-logo .brand-mark { width:46px; height:46px; }
}
@media(max-width:360px) {
  .brand { gap:10px; }
  .brand-mark { width:42px; height:42px; }
  .brand-name { font-size:32px; }
  .footer-brand .brand-name { font-size:29px; }
}

/* Original research figures, with descriptions and paper sources revealed on demand. */
.detail-art.topic-figure-carousel { height:auto; min-width:0; overflow:visible; background:transparent; }
.topic-figure-frame { position:relative; height:330px; border:1px solid #e0e5eb; background:#fff; }
.topic-figure-slide { position:absolute; inset:0; }
.topic-figure-slide[hidden] { display:none; }
.topic-figure-slide > img { width:100%; height:100%; object-fit:contain; padding:16px; }
.topic-figure-pair { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:14px; height:100%; padding:16px; }
.topic-figure-pair > img { display:block; width:100%; height:100%; min-width:0; min-height:0; object-fit:contain; }
.topic-figure-info { position:absolute; inset:0; display:flex; flex-direction:column; justify-content:center; padding:26px; background:#203550; color:#fff; opacity:0; visibility:hidden; transform:translateY(5px); transition:opacity .18s ease,transform .18s ease,visibility .18s; }
.is-showing-details .topic-figure-info { opacity:1; visibility:visible; transform:none; }
.topic-figure-info h3 { margin:0 0 14px; color:#fff; font-family:var(--serif); font-size:23px; font-weight:500; line-height:1.2; letter-spacing:-.3px; }
.topic-figure-info p { margin:0 0 18px; color:#eef2f6; font-size:13px; line-height:1.7; }
.topic-figure-source { display:flex; flex-direction:column; gap:8px; padding-top:14px; border-top:1px solid #ffffff45; font-size:11px; line-height:1.5; }
.topic-figure-source > span:first-child { color:#d4deea; }
.topic-figure-source > a { color:#fff; font-size:12px; line-height:1.5; text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:1px; }
.topic-figure-credit { color:#cad5e1; font-size:9px; }
.topic-figure-credit a { color:inherit; text-decoration:underline; text-underline-offset:2px; }
.topic-figure-caption { margin:12px 0 0; color:#536478; font-size:12px; line-height:1.65; }
.topic-figure-info .topic-figure-rights { margin:14px 0 0; font-size:11px; line-height:1.5; }
.topic-figure-rights a { color:inherit; text-decoration:underline; text-underline-offset:3px; }
.topic-figure-controls { display:flex; align-items:center; justify-content:space-between; gap:12px; padding-top:14px; }
.topic-figure-details { display:inline-flex; align-items:center; gap:12px; padding:8px 0; border:0; background:transparent; color:var(--blue); font-size:11px; line-height:1.5; cursor:pointer; }
.topic-figure-details:hover { text-decoration:underline; text-underline-offset:4px; }
.topic-figure-details > span { font-size:17px; line-height:1; }
.topic-figure-navigation { display:flex; align-items:center; gap:10px; }
.topic-figure-count { margin-right:5px; color:#687788; font-size:10px; letter-spacing:1px; white-space:nowrap; }
.topic-figure-navigation .icon-button { width:36px; height:36px; color:var(--blue); font-size:20px; border-color:#d3dbe4; }
.no-js .topic-figure-controls { display:none; }
.no-js .topic-figure-frame:hover .topic-figure-info,.no-js .topic-figure-frame:focus-within .topic-figure-info { opacity:1; visibility:visible; transform:none; }
@media(min-width:641px) and (max-width:900px) {
  .topic-figure-frame { height:370px; }
  #motor-learning-figures { height:500px; }
  .topic-figure-pair { grid-template-columns:1fr; grid-template-rows:minmax(0,1fr) minmax(0,1fr); }
  .topic-figure-info { padding:19px; }
  .topic-figure-info h3 { font-size:21px; }
  .topic-figure-controls { gap:8px; }
  .topic-figure-details { font-size:10px; gap:7px; }
  .topic-figure-navigation { gap:6px; }
  .topic-figure-count { margin-right:0; font-size:9px; }
  .topic-figure-navigation .icon-button { width:30px; height:34px; }
}
@media(max-width:640px) {
  .topic-figure-frame { height:340px; }
  #motor-learning-figures { height:500px; }
  .topic-figure-pair { grid-template-columns:1fr; grid-template-rows:minmax(0,1fr) minmax(0,1fr); }
  .topic-figure-info { padding:22px; }
  .topic-figure-info h3 { font-size:23px; }
  .topic-figure-info p { font-size:13px; line-height:1.65; }
  .topic-figure-navigation .icon-button { width:40px; height:40px; }
}
@media(max-width:360px) {
  .topic-figure-frame { height:390px; }
  #human-machine-interaction-figures { height:420px; }
  #special-populations-figures { height:460px; }
}
@media(prefers-reduced-motion:reduce) { .topic-figure-info { transition:none; transform:none; } }

/* Paired research visuals with full-size links for detailed viewing. */
.home-visuals { padding-bottom:68px; }
.home-visuals-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:center; gap:32px; border-top:1px solid #bfc5ca; padding-top:32px; }
.home-visual { min-width:0; margin:0; }
.home-visual > a { display:block; cursor:zoom-in; }
.home-visual > a:focus-visible { outline:2px solid var(--blue); outline-offset:6px; }
.home-visual img { display:block; width:100%; height:auto; object-fit:contain; }
.home-visuals-note { margin:20px 0 0; color:var(--muted); font-size:12px; text-align:right; }
@media(max-width:800px) {
  .home-visuals-grid { grid-template-columns:1fr; }
}
@media(max-width:640px) {
  .home-visuals { padding-bottom:44px; }
  .home-visuals-grid { gap:24px; padding-top:24px; }
  .home-visuals-note { margin-top:16px; text-align:center; }
}
