/* El Hilo que Persiste · design master. No remote fonts or runtime dependencies. */
:root {
  --paper:#f5f3eb;
  --white:#fcfbf6;
  --ink:#20332c;
  --dark:#1e332b;
  --muted:#58645b;
  --line:#c8cdc2;
  --accent:#ae432d;
  --accent-dark:#943722;
  --lime:#d7e8aa;
  --serif:Georgia,'Times New Roman',serif;
  --sans:Arial,Helvetica,sans-serif;
  --max:1344px;
  --gutter:clamp(22px,4.7vw,76px)
}

*,*::before,*::after {
  box-sizing:border-box
}

html {
  scroll-padding-top:30px
}

body {
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:17px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased
}

a {
  overflow-wrap:anywhere;
  color:inherit;
  text-underline-offset:5px;
  text-decoration-thickness:1px
}

a:hover {
  text-decoration-thickness:2px
}

button,input,select {
  font:inherit
}

button {
  cursor:pointer
}

button:disabled {
  cursor:default
}

img,svg {
  max-width:100%;
  height:auto
}

svg {
  display:block
}

h1,h2,h3,h4,p,figure,blockquote {
  margin:0
}

h1,h2,h3 {
  font-weight:400
}

h1,h2,.display {
  font-family:var(--serif);
  letter-spacing:-.055em;
  line-height:1.05
}

h1 em,h2 em,.display em {
  font-weight:400
}

p+p {
  margin-top:1em
}

ul,ol {
  padding-left:1.3em
}

li+li {
  margin-top:.5em
}

abbr[title] {
  text-decoration:none
}

::selection {
  background:var(--lime);
  color:var(--ink)
}

[hidden] {
  display:none!important
}

:focus-visible {
  outline:3px solid var(--accent);
  outline-offset:5px
}

.dark :focus-visible,.site-footer :focus-visible,.contact-primary :focus-visible {
  outline-color:var(--lime)
}

.community-banner :focus-visible {
  outline-color:var(--paper)
}

main:focus {
  outline:none
}

.wrap {
  width:min(100%,calc(var(--max) + var(--gutter)*2));
  padding-inline:var(--gutter);
  margin-inline:auto
}

.eyebrow {
  font-size:11px;
  font-weight:700;
  letter-spacing:.13em;
  line-height:1.5;
  text-transform:uppercase
}

.subtle {
  color:var(--muted)
}

.accent {
  color:var(--accent)
}

.intro {
  font-size:20px;
  line-height:1.6;
  max-width:660px
}

.caption {
  font-size:12px;
  line-height:1.5;
  color:var(--muted)
}

.small {
  font-size:14px
}

.visually-hidden {
  position:absolute!important;
  width:1px;
  height:1px;
  padding:0;
  margin:-1px;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0
}

.skip-link {
  position:absolute;
  left:20px;
  top:-100px;
  z-index:30;
  background:var(--ink);
  color:var(--paper);
  padding:12px 20px
}

.skip-link:focus {
  top:12px
}

.site-header {
  border-bottom:1px solid var(--line);
  position:relative;
  z-index:10;
  background:var(--paper)
}

.header-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:110px;
  gap:28px
}

.brand {
  display:flex;
  align-items:center;
  gap:17px;
  font-size:21px;
  font-weight:700;
  letter-spacing:-.055em;
  line-height:1.05;
  text-decoration:none;
  flex-shrink:0
}

.brand-mark {
  width:33px;
  height:43px
}

.desktop-nav {
  display:flex;
  align-items:center;
  gap:27px;
  margin-left:auto
}

.desktop-nav a {
  font-size:13px;
  padding-block:15px;
  text-decoration:none;
  position:relative
}

.desktop-nav a::after {
  content:'';
  position:absolute;
  bottom:6px;
  left:0;
  right:0;
  height:1px;
  background:var(--ink);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .18s ease
}

.desktop-nav a:hover::after,.desktop-nav a[aria-current]::after {
  transform:scaleX(1)
}

.header-actions {
  display:flex;
  align-items:center;
  gap:25px
}

.language-link {
  font-size:12px;
  min-width:44px;
  min-height:44px;
  border-left:1px solid var(--line);
  display:grid;
  place-items:center;
  text-decoration:none;
  letter-spacing:.03em
}

.header-contact {
  font-size:13px;
  font-weight:700;
  text-decoration:none;
  display:flex;
  gap:19px;
  align-items:center;
  border-bottom:1px solid var(--ink);
  padding-block:12px
}

.mobile-menu {
  display:none
}

.hero {
  padding-top:66px;
  padding-bottom:28px
}

.hero-top {
  display:flex;
  justify-content:space-between;
  gap:20px;
  margin-bottom:42px
}

.hero-top .where {
  font-size:12px;
  color:var(--muted)
}

.hero-grid {
  display:grid;
  grid-template-columns:1.1fr 1fr;
  gap:58px;
  align-items:center
}

.hero h1 {
  font-size:clamp(62px,7.8vw,120px);
  line-height:.97;
  max-width:750px
}

.hero h1 em {
  color:var(--accent);
  display:block;
  margin-top:.06em
}

.hero-text .intro {
  font-size:19px;
  max-width:505px;
  margin-top:35px
}

.actions {
  display:flex;
  flex-wrap:wrap;
  gap:16px 26px;
  align-items:center;
  margin-top:32px
}

.hero-evidence {
  display:flex;
  align-items:center;
  gap:12px;
  margin:30px 0 0;
  font-size:12px;
  letter-spacing:.09em;
  text-transform:uppercase;
  color:var(--muted);
  text-decoration:none
}

.hero-evidence:hover {
  color:var(--ink)
}

.hero-evidence:focus-visible {
  outline:3px solid var(--accent);
  outline-offset:5px
}

.hero-evidence::before {
  content:"";
  flex:none;
  width:28px;
  height:2px;
  background:var(--accent)
}

.button {
  display:inline-flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  min-height:52px;
  padding:14px 20px;
  background:var(--ink);
  color:var(--paper);
  text-decoration:none;
  font-size:13px;
  font-weight:700;
  border:1px solid var(--ink);
  transition:background .15s ease,transform .15s ease
}

.button:hover {
  background:#34493e;
  transform:translateY(-1px)
}

.button.light {
  background:var(--lime);
  color:var(--ink);
  border-color:var(--lime)
}

.button.outline {
  background:transparent;
  color:var(--ink);
  border-color:var(--line)
}

.text-link {
  display:inline-flex;
  align-items:center;
  gap:22px;
  min-height:44px;
  font-size:13px;
  font-weight:700;
  text-decoration:none;
  border-bottom:1px solid currentColor;
  padding-block:9px
}

.text-link:hover {
  gap:30px
}

.hero-bottom {
  display:flex;
  justify-content:space-between;
  gap:24px;
  border-top:1px solid var(--line);
  padding-top:21px;
  margin-top:60px;
  font-size:11px;
  line-height:1.6;
  color:var(--muted)
}

.hero-bottom span:last-child {
  text-align:right
}

.hero-art {
  position:relative;
  margin:0;
  background:#e7e8db;
  min-height:480px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  overflow:hidden;
  padding:25px
}

.art-heading {
  display:flex;
  justify-content:space-between;
  gap:10px;
  color:#415044
}

.art-heading span:last-child {
  font-weight:400
}

.signal-art {
  width:100%;
  height:370px
}

.art-footer {
  display:flex;
  gap:14px;
  justify-content:space-between;
  border-top:1px solid #aab5a5;
  padding-top:12px;
  font-size:10px;
  letter-spacing:.03em;
  line-height:1.5;
  color:#435346
}

.art-footer span {
  max-width:190px
}

.art-footer span:last-child {
  text-align:right
}

.art-ring {
  stroke:var(--accent);
  stroke-width:1.2;
  fill:none
}

.art-line {
  stroke:var(--ink);
  stroke-width:1.3;
  fill:none
}

.source-ref {
  font-family:var(--sans);
  font-size:12px;
  vertical-align:super;
  text-decoration:none;
  white-space:nowrap;
  display:inline-block;
  padding:4px
}

.dark {
  background:var(--dark);
  color:var(--paper)
}

.dark .subtle,.dark .caption {
  color:#c5d1c4
}

.field-band {
  margin-top:28px;
  padding-block:58px 33px
}

.field-band .band-top {
  display:flex;
  justify-content:space-between;
  gap:20px;
  color:#d1dcca
}

.field-band .band-content {
  display:grid;
  grid-template-columns:1.2fr 1fr;
  gap:80px;
  align-items:start;
  margin-top:28px
}

.field-band h2 {
  font-size:clamp(48px,5.8vw,87px);
  max-width:660px
}

.field-band .band-content p {
  font-size:17px;
  max-width:490px;
  color:#e0e6d7
}

.field-band .text-link {
  color:var(--lime);
  margin-top:16px
}

.band-bottom {
  display:flex;
  justify-content:space-between;
  gap:20px;
  border-top:1px solid #637366;
  margin-top:38px;
  padding-top:19px;
  font-size:11px;
  color:#c6d2c1
}

.section {
  padding-block:90px
}

.section+.section {
  border-top:1px solid var(--line)
}

.section-heading {
  display:grid;
  grid-template-columns:1fr 2fr;
  gap:60px;
  margin-bottom:45px
}

.section-heading h2 {
  font-size:clamp(38px,4.5vw,68px);
  max-width:850px
}

.section-heading .eyebrow {
  padding-top:8px
}

.section-heading p {
  max-width:700px;
  margin-top:22px
}

.section-heading.stacked {
  display:block
}

.section-heading.stacked h2 {
  margin-top:20px
}

.question-list {
  margin-left:calc((100% - 120px)/3 + 60px);
  border-top:1px solid var(--ink)
}

.question-list details {
  border-bottom:1px solid var(--line)
}

.question-list summary {
  list-style:none;
  cursor:pointer;
  display:flex;
  align-items:center;
  gap:25px;
  padding-block:27px;
  font-size:23px;
  line-height:1.3;
  min-height:88px
}

.question-list summary::-webkit-details-marker {
  display:none
}

.question-list summary .number {
  font-size:11px;
  color:var(--accent);
  font-weight:700
}

.question-list summary .toggle {
  margin-left:auto;
  font-size:24px;
  font-weight:400;
  transition:transform .15s
}

.question-list details[open] .toggle {
  transform:rotate(45deg)
}

.question-list .answer {
  padding:0 40px 27px 43px;
  max-width:740px;
  font-size:16px;
  color:var(--muted)
}

.split {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:80px
}

.research-teaser {
  background:#e9edde
}

.research-teaser h2 {
  font-size:clamp(42px,4.8vw,73px);
  margin-top:22px
}

.research-teaser .right {
  padding-top:35px
}

.research-teaser .right p {
  max-width:560px;
  font-size:18px
}

.mini-lines {
  margin-top:32px;
  border-top:1px solid #bdc6b3
}

.mini-lines div {
  display:flex;
  justify-content:space-between;
  gap:30px;
  padding:18px 0;
  border-bottom:1px solid #bdc6b3;
  font-size:15px
}

.mini-lines span {
  font-size:12px;
  color:var(--muted)
}

.feature-publications {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:30px
}

.feature-pub {
  border-top:2px solid var(--ink);
  padding-top:21px;
  display:flex;
  flex-direction:column;
  align-items:start
}

.feature-pub .pub-mini-meta {
  display:flex;
  gap:20px;
  justify-content:space-between;
  width:100%;
  font-size:11px;
  color:var(--muted)
}

.feature-pub h3 {
  font-size:32px;
  line-height:1.2;
  letter-spacing:-.035em;
  font-family:var(--serif);
  margin-top:32px;
  max-width:470px
}

.feature-pub p {
  font-size:15px;
  color:var(--muted);
  max-width:460px;
  margin-top:18px;
  margin-bottom:23px
}

.feature-pub .text-link {
  margin-top:auto
}

.community-banner {
  padding-block:80px;
  background:var(--accent);
  color:var(--paper)
}

.community-banner .split {
  grid-template-columns:1.4fr 1fr;
  align-items:end
}

.community-banner h2 {
  font-size:clamp(42px,4.7vw,71px);
  margin-top:22px
}

.community-banner p {
  font-size:17px;
  max-width:420px
}

.community-banner .text-link {
  margin-top:18px
}

.invitation {
  padding-block:70px
}

.invitation-inner {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:35px
}

.invitation h2 {
  font-size:44px;
  max-width:700px
}

.invitation p {
  margin-top:14px;
  max-width:680px;
  color:var(--muted)
}

.site-footer {
  background:var(--dark);
  color:var(--paper);
  padding-top:64px
}

.footer-top>* {
  min-width:0
}

.footer-top {
  display:grid;
  grid-template-columns:1.4fr .8fr 1fr;
  gap:60px;
  padding-bottom:55px
}

.footer-name {
  font-family:var(--serif);
  font-size:40px;
  line-height:1.06;
  text-decoration:none;
  letter-spacing:-.04em;
  display:block
}

.footer-name em {
  color:var(--lime)
}

.footer-location {
  font-size:12px;
  color:#c0ccbc;
  margin-top:24px
}

.footer-nav {
  display:flex;
  flex-direction:column;
  align-items:start;
  gap:0
}

.footer-nav a {
  font-size:13px;
  padding-block:8px;
  text-decoration:none;
  min-height:38px
}

.footer-contact .eyebrow {
  color:#c0ccbc;
  display:block
}

.footer-contact>a {
  max-width:100%;
  font-size:15px;
  display:inline-flex;
  align-items:center;
  gap:16px;
  min-height:44px;
  margin-top:20px;
  overflow-wrap:anywhere
}

.footer-contact p {
  font-size:12px;
  max-width:300px;
  color:#c0ccbc;
  margin-top:12px
}

.footer-bottom {
  display:flex;
  justify-content:space-between;
  gap:25px;
  border-top:1px solid #506557;
  padding-top:20px;
  padding-bottom:22px;
  font-size:10px;
  color:#c0ccbc
}

.footer-bottom a {
  min-height:28px
}

.page-hero {
  padding-block:54px 65px;
  border-bottom:1px solid var(--line)
}

.breadcrumb {
  display:flex;
  gap:12px;
  align-items:center;
  font-size:11px;
  color:var(--muted);
  margin-bottom:45px
}

.breadcrumb a {
  padding-block:5px
}

.page-hero h1 {
  font-size:clamp(55px,6.5vw,100px);
  max-width:1050px
}

.page-hero h1 em {
  color:var(--accent)
}

.page-hero .eyebrow {
  margin-bottom:23px
}

.page-hero .intro {
  margin-top:30px;
  max-width:780px
}

.page-hero .hero-meta {
  margin-top:30px;
  font-size:12px;
  color:var(--muted);
  display:flex;
  flex-wrap:wrap;
  gap:10px 26px
}

.page-body {
  padding-block:70px
}

.reading-grid {
  display:grid;
  grid-template-columns:1fr 2fr;
  gap:60px
}

.reading-grid .prose {
  max-width:800px
}

.prose {
  max-width:780px
}

.prose h2 {
  font-size:42px;
  margin-bottom:25px
}

.prose h3 {
  font-size:23px;
  letter-spacing:-.03em;
  margin-top:32px;
  margin-bottom:12px
}

.prose p {
  font-size:17px
}

.prose p+p {
  margin-top:22px
}

.prose .eyebrow {
  margin-bottom:19px
}

.prose .callout {
  margin-top:32px
}

.aside-note {
  font-size:13px;
  color:var(--muted);
  max-width:270px
}

.aside-note .eyebrow {
  color:var(--ink);
  margin-bottom:18px
}

.aside-note p+p {
  margin-top:15px
}

.aside-note a {
  display:inline-block;
  margin-top:12px;
  min-height:32px
}

.callout {
  padding:28px 30px;
  background:#e8ecdf;
  border-left:3px solid var(--ink)
}

.callout h3 {
  font-size:18px;
  margin:0 0 10px
}

.callout p {
  font-size:15px
}

.callout.warm {
  background:#efe4d7;
  border-color:var(--accent)
}

.line-cards {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:36px
}

.line-card {
  padding:35px;
  background:#e8ecdf;
  min-height:330px;
  display:flex;
  flex-direction:column
}

.line-card:nth-child(2) {
  background:#eee5d9
}

.line-card .line-label {
  display:flex;
  justify-content:space-between;
  align-items:start
}

.line-card .initial {
  font-size:70px;
  line-height:1;
  font-family:var(--serif);
  color:var(--accent)
}

.line-card h3 {
  font-family:var(--serif);
  font-size:39px;
  line-height:1.1;
  letter-spacing:-.04em;
  margin-top:35px
}

.line-card p {
  font-size:16px;
  margin-top:20px;
  max-width:500px
}

.line-card .bottom-line {
  border-top:1px solid #c0c4b7;
  margin-top:28px;
  padding-top:20px;
  font-size:13px;
  color:var(--muted)
}

.method-list {
  counter-reset:method;
  margin:0;
  padding:0;
  list-style:none
}

.method-list li {
  display:grid;
  grid-template-columns:60px 1fr;
  gap:20px;
  border-top:1px solid var(--line);
  padding-block:25px;
  margin:0;
  counter-increment:method
}

.method-list li::before {
  content:'0' counter(method);
  font-size:12px;
  color:var(--accent);
  font-weight:700;
  padding-top:7px
}

.method-list h3 {
  font-size:22px;
  letter-spacing:-.035em
}

.method-list p {
  margin-top:10px;
  font-size:16px;
  color:var(--muted);
  max-width:710px
}

.field-summary {
  padding:45px;
  background:var(--dark);
  color:var(--paper);
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:65px;
  align-items:center
}

.field-summary h2 {
  font-size:62px;
  line-height:1.05;
  margin-top:24px
}

.field-summary p {
  color:#dbe3d4;
  margin-top:23px;
  max-width:515px
}

.field-diagram {
  width:100%;
  border:1px solid #6b7e6d;
  padding:22px
}

.field-diagram svg {
  width:100%;
  height:185px
}

.field-diagram figcaption {
  font-size:11px;
  color:#c5d1c4;
  border-top:1px solid #6b7e6d;
  padding-top:15px
}

.field-facts {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  border-bottom:1px solid var(--line);
  padding-block:28px;
  gap:40px
}

.field-facts div {
  border-right:1px solid var(--line);
  padding-right:30px
}

.field-facts div:last-child {
  border-right:none
}

.field-facts dt {
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.08em;
  color:var(--muted)
}

.field-facts dd {
  margin:10px 0 0;
  font-size:17px
}

.observations {
  margin:0;
  list-style:none;
  padding:0
}

.observations li {
  border-top:1px solid var(--line);
  padding-block:25px;
  display:grid;
  grid-template-columns:1fr 1.6fr;
  gap:28px;
  margin:0
}

.observations h3 {
  font-size:21px;
  line-height:1.3;
  letter-spacing:-.035em
}

.observations p {
  font-size:16px;
  color:var(--muted)
}

.timeline-mark {
  font-size:11px;
  letter-spacing:.09em;
  text-transform:uppercase;
  color:var(--accent);
  margin-bottom:22px;
  font-weight:700
}

.wide-note {
  border-top:1px solid var(--ink);
  padding-top:22px;
  font-size:14px;
  color:var(--muted);
  margin-top:30px
}

.pub-intro {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:70px;
  align-items:start;
  margin-bottom:45px
}

.pub-intro h2 {
  font-size:43px
}

.pub-intro p {
  font-size:16px;
  color:var(--muted)
}

.publication-tools {
  display:flex;
  flex-wrap:wrap;
  align-items:end;
  justify-content:space-between;
  gap:23px;
  background:#e8ecdf;
  padding:25px;
  margin-bottom:40px
}

.search-wrap {
  flex:1;
  min-width:260px
}

.search-wrap label {
  display:block;
  font-size:12px;
  font-weight:700;
  margin-bottom:8px
}

.search-field {
  display:flex;
  align-items:center;
  border-bottom:1px solid var(--ink);
  gap:16px
}

.search-field svg {
  width:20px;
  flex-shrink:0
}

.search-field input {
  font-size:16px;
  width:100%;
  padding:11px 0;
  background:transparent;
  color:var(--ink);
  border:0;
  border-radius:0;
  min-height:46px
}

.filter-wrap label {
  display:block;
  font-size:12px;
  font-weight:700;
  margin-bottom:8px
}

.filter-wrap select {
  font-size:14px;
  min-height:46px;
  padding:8px 35px 8px 12px;
  background:var(--paper);
  border:1px solid #7d8b78;
  color:var(--ink);
  border-radius:0;
  max-width:100%
}

.reset-filter {
  background:transparent;
  border:0;
  border-bottom:1px solid var(--ink);
  padding:10px 0;
  min-height:44px;
  font-size:13px;
  font-weight:700;
  color:var(--ink)
}

.filter-count {
  font-size:12px;
  color:var(--muted);
  margin-bottom:20px;
  min-height:19px
}

.publication-list {
  list-style:none;
  padding:0;
  margin:0;
  border-top:1px solid var(--ink)
}

.publication-item {
  margin:0;
  padding:32px 0;
  display:grid;
  grid-template-columns:1fr 3.2fr .7fr;
  gap:40px;
  border-bottom:1px solid var(--line)
}

.pub-meta {
  font-size:12px;
  color:var(--muted);
  line-height:1.7
}

.pub-meta .pub-type {
  font-size:10px;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
  display:block;
  color:var(--accent);
  margin-top:12px
}

.publication-item h3 {
  font-family:var(--serif);
  font-size:28px;
  line-height:1.2;
  letter-spacing:-.025em
}

.publication-item .summary {
  font-size:15px;
  color:var(--muted);
  margin-top:16px;
  max-width:660px
}

.pub-by {
  font-size:11px;
  color:var(--muted);
  margin-top:14px
}

.pub-status {
  margin-top:17px;
  font-size:12px;
  padding-top:13px;
  border-top:1px solid var(--line);
  color:var(--muted);
  max-width:660px
}

.pub-action {
  display:flex;
  flex-direction:column;
  align-items:start
}

.pub-action a {
  min-height:44px;
  font-size:12px;
  white-space:nowrap
}

.pub-doi {
  font-size:10px;
  line-height:1.5;
  overflow-wrap:anywhere;
  color:var(--muted);
  margin-top:14px
}

.publication-empty {
  padding:30px;
  background:#eee5d9;
  margin-top:25px
}

.principle-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 65px
}

.principle {
  border-top:1px solid var(--line);
  padding-top:27px;
  padding-bottom:38px
}

.principle .eyebrow {
  color:var(--accent)
}

.principle h3 {
  font-family:var(--serif);
  font-size:34px;
  line-height:1.16;
  letter-spacing:-.035em;
  margin-top:21px
}

.principle p {
  font-size:16px;
  color:var(--muted);
  margin-top:17px;
  max-width:520px
}

.people-list {
  border-top:1px solid var(--ink)
}

.person {
  display:grid;
  grid-template-columns:.7fr 1.25fr 1.6fr;
  gap:35px;
  border-bottom:1px solid var(--line);
  padding-block:30px
}

.person .role {
  font-size:12px;
  color:var(--accent);
  max-width:180px
}

.person h3 {
  font-family:var(--serif);
  font-size:28px;
  line-height:1.2;
  letter-spacing:-.03em;
  max-width:360px
}

.person p {
  font-size:15px;
  color:var(--muted);
  max-width:510px
}

.records-list {
  list-style:none;
  padding:0;
  margin:0;
  border-top:1px solid var(--ink)
}

.record-item {
  display:grid;
  grid-template-columns:.18fr 1.2fr 1fr auto;
  gap:25px;
  align-items:start;
  padding-block:28px;
  border-bottom:1px solid var(--line);
  margin:0
}

.record-number {
  font-size:12px;
  color:var(--accent);
  padding-top:7px
}

.record-item h3 {
  font-family:var(--serif);
  font-size:26px;
  line-height:1.2;
  letter-spacing:-.03em
}

.record-item .discipline {
  font-size:12px;
  color:var(--muted);
  margin-top:9px
}

.record-item .record-role {
  font-size:14px;
  color:var(--muted);
  max-width:250px
}

.record-item a {
  font-size:12px;
  min-height:44px;
  display:inline-flex;
  align-items:center;
  gap:14px;
  white-space:nowrap
}

.contact-grid {
  display:grid;
  grid-template-columns:1.4fr 1fr;
  gap:75px
}

.contact-primary {
  padding:40px;
  background:var(--dark);
  color:var(--paper)
}

.contact-primary h2 {
  font-size:52px;
  margin-top:26px
}

.contact-primary .email {
  font-size:clamp(18px,2vw,28px);
  display:inline-block;
  margin-top:30px;
  overflow-wrap:anywhere;
  max-width:100%
}

.contact-primary .text-link {
  color:var(--lime);
  margin-top:25px
}

.contact-primary p {
  font-size:14px;
  margin-top:26px;
  max-width:500px;
  color:#d0dcc9
}

.contact-primary .caption {
  font-size:11px;
  margin-top:18px
}

.contact-guidance h3 {
  font-size:22px;
  letter-spacing:-.035em
}

.contact-guidance p {
  font-size:15px;
  margin-top:14px;
  color:var(--muted)
}

.contact-guidance>div+div {
  margin-top:28px;
  padding-top:25px;
  border-top:1px solid var(--line)
}

.source-block {
  padding-block:30px;
  border-top:1px solid var(--line)
}

.source-block h2 {
  font-size:32px;
  margin-bottom:19px
}

.source-block p {
  font-size:16px
}

.source-block .reference {
  font-size:14px;
  overflow-wrap:anywhere;
  padding:20px 0
}

.source-block dl {
  font-size:14px
}

.source-block dt {
  font-weight:700;
  margin-top:20px
}

.source-block dd {
  margin:6px 0 0;
  color:var(--muted)
}

.page-jump {
  display:flex;
  gap:25px;
  flex-wrap:wrap;
  margin-top:30px;
  padding-top:20px;
  border-top:1px solid var(--line);
  font-size:12px
}

.page-jump a {
  min-height:35px;
  display:flex;
  align-items:center
}

.alias-page {
  padding-block:90px;
  max-width:950px
}

.alias-page h1 {
  font-size:64px;
  margin-bottom:30px
}

.alias-page p {
  max-width:600px
}

.language-note {
  font-size:12px;
  color:var(--muted);
  margin-top:24px
}

.anchor-marker {
  display:block;
  position:relative
}

.reading-copy-only {
  display:none
}

@media(min-width:1600px) {
  .hero-art {
    min-height:500px
  }

  .hero h1 {
    font-size:122px
  }

  .signal-art {
    height:385px
  }

}

@media(max-width:1150px) {
  .desktop-nav {
    gap:18px
  }

  .header-actions {
    gap:12px
  }

  .header-inner {
    gap:20px
  }

  .header-contact {
    display:none
  }

  .hero-grid {
    gap:35px
  }

  .hero-art {
    min-height:435px;
    padding:22px
  }

  .signal-art {
    height:320px
  }

  .hero h1 {
    font-size:clamp(62px,8.1vw,104px)
  }

  .hero-text .intro {
    font-size:18px
  }

  .field-band .band-content {
    gap:40px
  }

  .section-heading {
    gap:36px
  }

  .question-list {
    margin-left:calc((100% - 72px)/3 + 36px)
  }

  .split {
    gap:45px
  }

  .footer-top {
    gap:35px
  }

  .publication-item {
    gap:25px
  }

  .contact-grid {
    gap:35px
  }

  .people-list .person {
    gap:25px
  }

}

@media(max-width:850px) {
  .header-inner {
    min-height:87px
  }

  .brand {
    font-size:19px
  }

  .brand-mark {
    width:28px;
    height:37px
  }

  .desktop-nav {
    display:none
  }

  .header-actions {
    gap:15px
  }

  .language-link {
    border:0
  }

  .mobile-menu {
    display:block
  }

  .mobile-menu summary {
    display:flex;
    align-items:center;
    justify-content:space-between;
    list-style:none;
    font-size:12px;
    gap:16px;
    cursor:pointer;
    min-height:44px;
    padding:9px 0 9px 12px
  }

  .mobile-menu summary::-webkit-details-marker {
    display:none
  }

  .menu-icon {
    font-size:24px;
    line-height:1
  }

  .mobile-menu[open] .menu-icon {
    transform:rotate(45deg)
  }

  .mobile-menu nav {
    position:absolute;
    top:100%;
    left:0;
    right:0;
    background:var(--paper);
    border-block:1px solid var(--ink);
    padding:15px var(--gutter) 25px;
    box-shadow:0 16px 20px #20332c12
  }

  .mobile-menu nav a {
    display:block;
    border-bottom:1px solid var(--line);
    font-size:18px;
    padding-block:13px;
    text-decoration:none
  }

  .mobile-menu nav a[aria-current] {
    color:var(--accent)
  }

  .hero {
    padding-top:35px
  }

  .hero-top {
    margin-bottom:30px
  }

  .hero-top .where {
    display:none
  }

  .hero-grid {
    grid-template-columns:1fr .83fr;
    gap:25px
  }

  .hero h1 {
    font-size:clamp(55px,8.4vw,74px)
  }

  .hero-art {
    min-height:390px;
    padding:18px
  }

  .signal-art {
    height:295px
  }

  .art-heading {
    font-size:9px
  }

  .art-footer {
    font-size:9px
  }

  .hero-text .intro {
    font-size:16px;
    margin-top:25px
  }

  .hero .actions {
    gap:10px;
    margin-top:23px
  }

  .hero .button {
    font-size:12px;
    gap:16px
  }

  .hero .text-link {
    font-size:12px
  }

  .hero-bottom {
    margin-top:35px
  }

  .section {
    padding-block:60px
  }

  .field-band h2 {
    font-size:60px
  }

  .field-band .band-content {
    grid-template-columns:1fr 1fr;
    gap:25px
  }

  .field-band .band-content p {
    font-size:15px
  }

  .section-heading {
    grid-template-columns:1fr;
    gap:18px;
    margin-bottom:30px
  }

  .section-heading h2 {
    font-size:49px;
    max-width:640px
  }

  .question-list {
    margin-left:0
  }

  .question-list summary {
    font-size:22px
  }

  .split {
    gap:32px
  }

  .research-teaser h2 {
    font-size:48px
  }

  .research-teaser .right p {
    font-size:16px
  }

  .feature-pub h3 {
    font-size:29px
  }

  .community-banner {
    padding-block:55px
  }

  .community-banner .split {
    grid-template-columns:1.3fr 1fr
  }

  .community-banner h2 {
    font-size:47px
  }

  .community-banner p {
    font-size:15px
  }

  .invitation h2 {
    font-size:38px
  }

  .footer-top {
    grid-template-columns:1.2fr .8fr;
    gap:40px
  }

  .footer-contact {
    grid-column:1/-1;
    border-top:1px solid #506557;
    padding-top:24px;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:5px 35px
  }

  .footer-contact>a {
    margin-top:0
  }

  .footer-contact p {
    grid-column:2;
    margin-top:0
  }

  .footer-bottom {
    flex-wrap:wrap;
    gap:10px 25px
  }

  .page-hero {
    padding-block:35px 45px
  }

  .breadcrumb {
    margin-bottom:33px
  }

  .page-hero h1 {
    font-size:67px
  }

  .page-hero .intro {
    font-size:18px
  }

  .reading-grid {
    grid-template-columns:1fr;
    gap:32px
  }

  .aside-note {
    max-width:660px;
    border-bottom:1px solid var(--line);
    padding-bottom:22px
  }

  .aside-note .eyebrow {
    margin-bottom:10px
  }

  .page-body {
    padding-block:45px
  }

  .line-cards {
    gap:22px
  }

  .line-card {
    padding:25px
  }

  .line-card h3 {
    font-size:32px
  }

  .field-summary {
    gap:30px;
    padding:30px;
    grid-template-columns:1fr 1fr
  }

  .field-summary h2 {
    font-size:48px
  }

  .field-summary p {
    font-size:15px
  }

  .field-facts {
    gap:25px
  }

  .field-facts dd {
    font-size:15px
  }

  .observations {
    max-width:none
  }

  .publication-item {
    grid-template-columns:.8fr 2.6fr;
    gap:25px
  }

  .pub-action {
    grid-column:2;
    flex-direction:row;
    align-items:center;
    gap:25px
  }

  .pub-doi {
    margin:0;
    font-size:11px
  }

  .pub-intro {
    gap:35px
  }

  .person {
    grid-template-columns:1fr 1.3fr
  }

  .person .role {
    grid-column:1
  }

  .person p {
    grid-column:2;
    grid-row:1/3
  }

  .person h3 {
    grid-column:1
  }

  .record-item {
    grid-template-columns:24px 1.3fr 1fr;
    gap:20px
  }

  .record-item a {
    grid-column:2
  }

  .contact-grid {
    grid-template-columns:1fr;
    gap:35px
  }

  .contact-guidance {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:30px
  }

  .contact-guidance>div+div {
    margin:0;
    padding:0;
    border:0
  }

}

@media(max-width:600px) {
  body {
    font-size:16px
  }

  .wrap {
    padding-inline:22px
  }

  .header-inner {
    min-height:82px;
    gap:12px;
    flex-wrap:wrap;
    padding-block:12px
  }

  .brand {
    font-size:18px;
    gap:11px
  }

  .brand-mark {
    width:24px;
    height:33px
  }

  .header-actions {
    gap:9px
  }

  .language-link {
    min-width:37px
  }

  .mobile-menu summary {
    gap:8px
  }

  .hero {
    padding-top:30px
  }

  .hero-top .eyebrow {
    font-size:9px;
    letter-spacing:.1em
  }

  .hero-top {
    margin-bottom:28px
  }

  .hero-grid {
    grid-template-columns:1fr;
    gap:36px
  }

  .hero h1 {
    font-size:clamp(55px,12vw,72px);
    max-width:450px
  }

  .hero-text .intro {
    font-size:17px;
    line-height:1.55;
    max-width:470px;
    margin-top:25px
  }

  .hero .actions {
    gap:10px 20px;
    margin-top:24px
  }

  .hero-evidence {
    margin-top:22px;
    font-size:11px
  }

  .hero-art {
    min-height:370px;
    padding:19px
  }

  .signal-art {
    height:290px
  }

  .art-heading {
    font-size:10px
  }

  .art-footer {
    font-size:9px
  }

  .hero-bottom {
    margin-top:28px;
    display:block;
    font-size:10px;
    padding-top:16px
  }

  .hero-bottom span {
    display:block
  }

  .hero-bottom span:last-child {
    text-align:left;
    margin-top:7px
  }

  .field-band {
    margin-top:0;
    padding-block:35px 25px
  }

  .field-band .band-top {
    font-size:9px
  }

  .field-band .band-content {
    grid-template-columns:1fr;
    gap:25px;
    margin-top:24px
  }

  .field-band h2 {
    font-size:58px;
    max-width:330px
  }

  .field-band .band-content p {
    font-size:16px
  }

  .field-band .text-link {
    margin-top:14px
  }

  .band-bottom {
    font-size:10px;
    margin-top:28px;
    display:block
  }

  .band-bottom span {
    display:block
  }

  .band-bottom span+span {
    margin-top:6px
  }

  .section {
    padding-block:48px
  }

  .section-heading h2 {
    font-size:42px
  }

  .section-heading {
    gap:18px
  }

  .section-heading p {
    font-size:16px;
    margin-top:18px
  }

  .question-list summary {
    font-size:20px;
    gap:16px;
    min-height:80px;
    padding-block:21px
  }

  .question-list .answer {
    padding:0 7px 24px 30px;
    font-size:15px
  }

  .split {
    grid-template-columns:1fr;
    gap:26px
  }

  .research-teaser h2 {
    font-size:44px
  }

  .research-teaser .right {
    padding-top:0
  }

  .mini-lines div {
    font-size:14px
  }

  .feature-publications {
    grid-template-columns:1fr;
    gap:40px
  }

  .feature-pub h3 {
    font-size:32px;
    margin-top:23px
  }

  .feature-pub p {
    margin-top:15px
  }

  .community-banner .split {
    grid-template-columns:1fr;
    gap:27px
  }

  .community-banner h2 {
    font-size:43px
  }

  .community-banner p {
    font-size:16px
  }

  .invitation {
    padding-block:45px
  }

  .invitation-inner {
    display:block
  }

  .invitation h2 {
    font-size:38px
  }

  .invitation p {
    font-size:16px
  }

  .invitation .button {
    margin-top:24px
  }

  .site-footer {
    padding-top:45px
  }

  .footer-top {
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:35px 20px;
    padding-bottom:35px
  }

  .footer-name {
    font-size:32px
  }

  .footer-location {
    font-size:11px
  }

  .footer-nav a {
    font-size:12px;
    min-height:40px
  }

  .footer-contact {
    display:block;
    padding-top:25px
  }

  .footer-contact>a {
    font-size:16px;
    margin-top:10px;
    gap:16px
  }

  .footer-contact p {
    font-size:12px;
    max-width:340px;
    margin-top:4px
  }

  .footer-bottom {
    font-size:10px;
    display:block;
    padding-top:20px
  }

  .footer-bottom p+p {
    margin-top:9px
  }

  .footer-bottom a {
    display:inline-flex;
    align-items:center;
    margin-top:9px
  }

  .page-hero {
    padding-block:27px 40px
  }

  .breadcrumb {
    margin-bottom:28px;
    font-size:10px
  }

  .page-hero h1 {
    font-size:clamp(46px,10.7vw,62px)
  }

  .page-hero .eyebrow {
    font-size:10px;
    margin-bottom:18px
  }

  .page-hero .intro {
    font-size:17px;
    margin-top:23px
  }

  .page-hero .hero-meta {
    margin-top:25px;
    font-size:11px
  }

  .page-body {
    padding-block:35px
  }

  .prose h2 {
    font-size:36px
  }

  .prose p {
    font-size:16px
  }

  .callout {
    padding:24px
  }

  .callout p {
    font-size:14px
  }

  .line-cards {
    grid-template-columns:1fr;
    gap:22px
  }

  .line-card {
    padding:27px
  }

  .line-card h3 {
    font-size:37px;
    margin-top:23px
  }

  .line-card .initial {
    font-size:60px
  }

  .line-card p {
    font-size:16px
  }

  .method-list li {
    grid-template-columns:25px 1fr;
    gap:18px
  }

  .method-list h3 {
    font-size:21px
  }

  .method-list p {
    font-size:15px
  }

  .field-summary {
    grid-template-columns:1fr;
    padding:27px;
    gap:27px;
    margin-inline:-22px
  }

  .field-summary h2 {
    font-size:52px
  }

  .field-summary p {
    font-size:16px
  }

  .field-diagram {
    padding:18px
  }

  .field-diagram svg {
    height:165px
  }

  .field-facts {
    grid-template-columns:1fr;
    padding-block:24px;
    gap:17px
  }

  .field-facts div {
    border-right:0;
    display:grid;
    grid-template-columns:1fr 1.7fr;
    gap:18px;
    padding:0
  }

  .field-facts dt {
    font-size:10px;
    padding-top:3px
  }

  .field-facts dd {
    margin:0;
    font-size:14px
  }

  .observations li {
    grid-template-columns:1fr;
    gap:15px;
    padding-block:24px
  }

  .observations h3 {
    font-size:22px
  }

  .observations p {
    font-size:15px
  }

  .pub-intro {
    grid-template-columns:1fr;
    gap:22px;
    margin-bottom:28px
  }

  .pub-intro h2 {
    font-size:39px
  }

  .publication-tools {
    padding:20px;
    display:block
  }

  .search-wrap {
    min-width:0
  }

  .filter-wrap {
    margin-top:18px
  }

  .filter-wrap select {
    width:100%
  }

  .reset-filter {
    margin-top:10px
  }

  .publication-item {
    grid-template-columns:1fr;
    gap:17px;
    padding-block:27px
  }

  .pub-meta {
    display:flex;
    justify-content:space-between;
    gap:15px;
    font-size:11px;
    align-items:center
  }

  .pub-meta .pub-type {
    margin:0;
    font-size:9px
  }

  .publication-item h3 {
    font-size:28px
  }

  .publication-item .summary {
    font-size:15px
  }

  .pub-by {
    font-size:11px
  }

  .pub-status {
    font-size:12px
  }

  .pub-action {
    grid-column:auto
  }

  .pub-doi {
    font-size:10px
  }

  .principle-grid {
    grid-template-columns:1fr;
    gap:0
  }

  .principle {
    padding-block:24px
  }

  .principle h3 {
    font-size:33px
  }

  .people-list .person {
    grid-template-columns:1fr;
    gap:13px;
    padding-block:26px
  }

  .person .role,.person h3,.person p {
    grid-column:1;
    grid-row:auto;
    max-width:none
  }

  .person h3 {
    font-size:30px
  }

  .person .role {
    font-size:11px
  }

  .person p {
    font-size:15px
  }

  .record-item {
    grid-template-columns:22px 1fr;
    gap:12px 15px
  }

  .record-item h3 {
    font-size:27px
  }

  .record-item .record-role {
    grid-column:2;
    max-width:none
  }

  .record-item a {
    grid-column:2
  }

  .contact-primary {
    padding:28px
  }

  .contact-primary h2 {
    font-size:43px
  }

  .contact-primary .email {
    font-size:21px;
    margin-top:25px
  }

  .contact-primary .text-link {
    margin-top:20px
  }

  .contact-guidance {
    display:block
  }

  .contact-guidance>div+div {
    margin-top:27px;
    border-top:1px solid var(--line);
    padding-top:23px
  }

  .source-block h2 {
    font-size:32px
  }

  .source-block p {
    font-size:15px
  }

  .page-jump {
    gap:12px 22px
  }

  .alias-page {
    padding-block:55px
  }

  .alias-page h1 {
    font-size:45px
  }

}

@media(prefers-reduced-motion:reduce) {
  *,*::before,*::after {
    scroll-behavior:auto!important;
    animation:none!important;
    transition:none!important
  }

  .button:hover {
    transform:none
  }

}

@media print {
  body {
    font-size:11pt;
    background:#fff;
    color:#000
  }

  .site-header,.site-footer,.publication-tools,.filter-count,.actions,.text-link,.page-jump,.mobile-menu {
    display:none!important
  }

  .wrap {
    max-width:none;
    width:auto;
    padding:0
  }

  .hero,.page-hero,.section,.page-body {
    padding:20px 0
  }

  .hero-grid,.split,.reading-grid,.section-heading,.field-summary,.line-cards,.feature-publications,.people-list .person,.contact-grid {
    display:block
  }

  .hero-art {
    display:none
  }

  .hero h1,.page-hero h1 {
    font-size:38pt
  }

  .section h2 {
    font-size:26pt
  }

  .dark,.community-banner,.callout,.line-card,.contact-primary {
    background:#fff;
    color:#000;
    padding:18px 0
  }

  .dark p,.contact-primary p {
    color:#000
  }

  .question-list {
    margin:0
  }

  .question-list details {
    break-inside:avoid
  }

  .question-list details .answer {
    display:block!important
  }

  .question-list summary {
    font-size:15pt
  }

  .publication-item,.record-item,.principle {
    break-inside:avoid
  }

  .pub-action {
    display:block
  }

  .publication-item[hidden] {
    display:grid!important
  }

  .publication-item {
    grid-template-columns:90px 1fr;
    gap:15px
  }

  .caption,.subtle {
    color:#333
  }

  .page-hero .intro {
    font-size:13pt
  }

  .hero-bottom,.band-bottom {
    font-size:9pt
  }

  .source-block {
    break-inside:avoid
  }

}

/* English gets its own deliberate line lengths rather than inheriting a Spanish headline measure. */
html[lang="en"] .hero h1 {
  font-size:clamp(56px,6.6vw,98px)
}

@media(max-width:600px) {
  html[lang="en"] .hero h1 {
    font-size:clamp(42px,10.5vw,58px)
  }

}


.home-team-link {
  margin-bottom: 28px;
}
