@layer page {
.home-page .ebar {
  position: sticky;
  top: 0;
  z-index: 30;
}

.home-page .ebar-in {
  position: relative;
  gap: 16px;
  width: 100%;
}

.home-page .menu-toggle {
  flex: none;
  margin-left: auto;
  border-color: var(--rule);
  color: var(--ink);
  background: var(--paper);
}

.home-page .ehero .lbl,
.home-page .ehero-intro > p {
  overflow-wrap: anywhere;
  word-break: break-word;
}

@media (max-width: 880px) {
  html.motion-ready .home-page .menu-toggle {
    display: inline-flex !important;
  }

  .home-page .ebar-in {
    padding-inline: 22px;
  }

  .home-page .ebrand {
    min-width: 0;
    flex: 1 1 auto;
  }
}

.home-page .ehero {
  padding: clamp(76px, 8vw, 122px) 0 72px;
  border-bottom: 0;
}

@media (min-width: 901px) {
  .home-page .ehero > .ewrap {
    display: grid;
    grid-template-columns: minmax(0, 6.2fr) minmax(0, 5.8fr);
    column-gap: clamp(32px, 4vw, 54px);
    align-items: start;
  }

  .home-page .ehero > .ewrap > .lbl,
  .home-page .ehero > .ewrap > h1,
  .home-page .ehero > .ewrap > .ehero-intro {
    grid-column: 1;
  }

  .home-page .ehero > .ewrap > .ehero-plate {
    grid-column: 2;
    grid-row: 1 / span 3;
    align-self: center;
    margin-top: 4px;
  }

  .home-page .ehero h1 {
    max-width: 16ch;
    font-size: clamp(52px, 6.4vw, 88px);
  }

  .home-page .ehero > .ewrap > .ehero-story {
    grid-column: 1 / -1;
  }
}

.home-page .ehero .lbl { margin-bottom: 34px; }

.home-page .ehero h1 {
  max-width: 14ch;
  font-size: clamp(58px, 8vw, 112px);
  line-height: .94;
  letter-spacing: -.038em;
  text-wrap: balance;
}

@media (min-width: 901px) {
  .home-page .ehero h1 {
    max-width: 16ch;
    font-size: clamp(52px, 6.4vw, 88px);
  }
}

.ehero-plate {
  width: 100%;
  margin: 42px 0 0;
}

.ehero-plate-image {
  position: relative;
  aspect-ratio: 1.18;
  overflow: hidden;
  isolation: isolate;
  background: var(--paper-2);
  border: 1px solid var(--rule);
}

.ehero-plate-image::after {
  content: '';
  position: absolute;
  inset: 12px;
  border: 1px solid rgba(23, 22, 15, .22);
  pointer-events: none;
}

.ehero-plate-frame {
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  opacity: 0;
  transform: translateY(10px) scale(1.018);
  transition: opacity var(--motion-settle) var(--ease), transform var(--motion-slow) var(--ease);
}

.ehero-plate-frame[data-active="true"] {
  z-index: 1;
  opacity: 1;
  transform: none;
}

.ehero-plate-frame picture,
.ehero-plate-frame img {
  display: block;
  width: 100%;
  height: 100%;
}

.ehero-plate-frame img {
  object-fit: cover;
  object-position: 50% 50%;
  filter: saturate(.84) contrast(1.02);
  transform: scale(1.035);
  transition: transform 12s var(--ease), filter var(--motion-settle) ease;
}

.ehero-plate-frame[data-active="true"] img {
  animation: ehero-plate-drift 12s var(--ease) alternate infinite;
  animation-play-state: paused;
}

.ehero-plate[data-plate-active="true"]:not(.is-static) .ehero-plate-frame[data-active="true"] img {
  animation-play-state: running;
}

.ehero-plate-frame[data-plate-frame="1"] img { object-position: 50% 48%; }
.ehero-plate-frame[data-plate-frame="2"] img { object-position: 55% 50%; }
.ehero-plate-frame[data-plate-frame="3"] img { object-position: 63% 50%; filter: saturate(.72) contrast(.98); }

@keyframes ehero-plate-drift {
  from { transform: scale(1.035) translate3d(0, 0, 0); }
  to { transform: scale(1.07) translate3d(-.65%, -.45%, 0); }
}

/* Type set ON the photographic plate, not on the page.

   These read against the picture, so they must not follow the page
   ground: --paper is near-white on the light face and near-black on
   the dark one, which made every caption vanish the moment the plate
   was toned for dark. A fixed light tone with a real scrim is what
   captions over an image want in either face. */
.ehero-plate-release::after {
  content: 'RESULT RETAINED';
  position: absolute;
  right: 24px;
  bottom: 24px;
  color: var(--on-plate);
  text-shadow: var(--on-plate-scrim);
  font: 500 9px/1.3 var(--mono);
  letter-spacing: .12em;
  text-transform: uppercase;
}

.ehero-plate-state span { transition: opacity var(--motion-control) ease; }

.ehero-plate-mark {
  position: absolute;
  z-index: 4;
  width: 27px;
  height: 27px;
  pointer-events: none;
}

.ehero-plate-mark::before,
.ehero-plate-mark::after {
  content: '';
  position: absolute;
  background: var(--accent);
}

.ehero-plate-mark::before { width: 100%; height: 1px; top: 0; left: 0; }
.ehero-plate-mark::after { width: 1px; height: 100%; top: 0; left: 0; }
.ehero-plate-mark-tl { top: 22px; left: 22px; }
.ehero-plate-mark-br { right: 22px; bottom: 22px; transform: rotate(180deg); }

.ehero-plate-annotation {
  position: absolute;
  z-index: 5;
  top: 43%;
  left: 17%;
  width: min(54%, 260px);
  display: grid;
  grid-template-columns: minmax(30px, 1fr) auto;
  align-items: center;
  gap: 10px;
  color: var(--on-plate);
  font: 500 8px/1.45 var(--mono);
  letter-spacing: .08em;
  text-transform: uppercase;
  text-shadow: var(--on-plate-scrim);
}

.ehero-plate-annotation i {
  height: 1px;
  background: currentColor;
  transform-origin: 0 50%;
}

.ehero-plate-annotation b { font: inherit; }
.ehero-plate[data-plate-mounted="true"] .ehero-plate-annotation {
  opacity: 0;
  transform: translateY(7px);
}
.ehero-plate[data-plate-mounted="true"] .ehero-plate-annotation i { transform: scaleX(0); }
.ehero-plate[data-plate-ready="true"][data-plate-active="true"] .ehero-plate-annotation {
  opacity: 1;
  transform: none;
  transition: opacity var(--motion-settle) 180ms ease, transform var(--motion-slow) 180ms var(--ease);
}
.ehero-plate[data-plate-ready="true"][data-plate-active="true"] .ehero-plate-annotation i {
  transform: scaleX(1);
  transition: transform var(--motion-slow) 320ms var(--ease);
}

.ehero-plate-index,
.ehero-plate-state {
  position: absolute;
  z-index: 5;
  color: var(--accent);
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: .12em;
  line-height: 1.3;
  text-transform: uppercase;
}

.ehero-plate-index { top: 24px; right: 24px; }
.ehero-plate-state { right: 24px; bottom: 24px; color: var(--on-plate); text-shadow: var(--on-plate-scrim); }

.ehero-plate figcaption {
  display: flex;
  justify-content: space-between;
  gap: 18px;
  padding-top: 12px;
  color: var(--muted);
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: .1em;
  line-height: 1.5;
  text-transform: uppercase;
}

.ehero-plate figcaption span:first-child { color: var(--ink-2); }

.ehero-intro {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 28px;
  margin-top: 46px;
  max-width: 58ch;
}

.ehero-intro > p {
  max-width: 53ch;
  color: var(--ink-2);
  font-size: clamp(17px, 1.45vw, 20px);
  line-height: 1.58;
}

.ehero-cta {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
}

.home-page .ehero-cta {
  justify-self: start;
}

.ehero-story {
  --story-step: 0;
  --story-progress: 0;
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 8fr) minmax(255px, 4fr);
  column-gap: clamp(28px, 4vw, 60px);
  align-items: start;
  margin-top: clamp(58px, 8vw, 100px);
}

.ehero-glossary-rail {
  position: fixed;
  z-index: 18;
  top: calc(var(--site-nav) + clamp(40px, 7vh, 72px));
  left: max(18px, calc((100vw - var(--site-max)) / 2 - 172px));
  display: none;
  width: min(148px, calc((100vw - var(--site-max)) / 2 + var(--site-gutter) - 38px));
  color: var(--muted);
  opacity: 0;
  pointer-events: none;
  contain: layout paint style;
  transform: translate3d(-9px, 0, 0);
  transition: opacity var(--motion-advance) ease, transform var(--motion-settle) var(--ease);
}

.ehero-glossary-rail[data-visible] {
  opacity: 1;
  transform: none;
}

.ehero-glossary-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  margin: 0 0 15px 14px;
  color: var(--faint);
  font: 500 7.5px/1.4 var(--mono);
  letter-spacing: .1em;
  text-transform: uppercase;
}

.ehero-glossary-head b {
  color: var(--accent);
  font: inherit;
  letter-spacing: .05em;
}

.ehero-glossary-rail ol {
  position: relative;
  margin: 0;
  padding: 0 0 0 14px;
  border-left: 1px solid var(--rule);
  list-style: none;
}

.ehero-glossary-rail li {
  position: relative;
  display: grid;
  grid-template-columns: 26px minmax(0, 1fr);
  gap: 7px;
  min-width: 0;
  padding: 10px 0 11px;
  color: var(--faint);
  transition: color var(--motion-advance) ease, transform var(--motion-settle) var(--ease);
}

.ehero-glossary-rail li::before {
  content: '';
  position: absolute;
  top: 17px;
  left: -17px;
  width: 5px;
  height: 5px;
  border: 1px solid var(--rule-strong);
  background: var(--paper);
  transform: translateY(-50%);
  transition: border-color var(--motion-control) ease, background-color var(--motion-control) ease, transform var(--motion-glide) var(--ease);
}

.ehero-glossary-no {
  padding-top: 1px;
  font: 500 7px/1.35 var(--mono);
  letter-spacing: .05em;
}

.ehero-glossary-rail strong {
  display: block;
  color: inherit;
  font-family: var(--serif);
  font-size: 13px;
  font-weight: 450;
  line-height: 1.08;
  letter-spacing: -.01em;
}

/* The rail is an annotation layer, not a margin note: it sits ON the
   field plate at every width it appears, and by design -- the offset
   tracks the plate rather than escaping it, so the labels read as
   markings on the photograph.

   What it lacked was separation. Measured under the four terms, the
   ground swings between 3x and 9.3x in luminance inside a single
   word's own bounding box, in both faces, because the threads and pin
   heads run straight through them. No single text colour holds against
   that, which is why "Available evidence" was unreadable where it
   crossed the pin cluster.

   The compact layout now gives the glossary a real editorial matte.
   Type over a high-variance photograph needed a halo to survive, but
   the halo read as a glow and still changed character as pins crossed
   it. A solid piece of the page ground is calmer and deterministic. */

.ehero-glossary-rail p {
  max-height: 0;
  margin: 0;
  overflow: hidden;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.42;
  opacity: 0;
  transform: translateY(-3px);
  /* max-height rather than height because height: 0 -> auto is not
     interpolable by default. The cost is that the easing is applied to
     a distance the content never travels: the curve finishes at 76px
     while the text stops at whatever it actually is, so the tail of
     the animation is empty time and the motion reads as arriving early
     and then waiting. The @supports block below fixes that where
     interpolate-size exists.

     margin is deliberately NOT in this list. Animating it forces
     layout on every frame for 7px of movement nobody can see against
     a simultaneous opacity fade. */
  transition:
    max-height var(--motion-settle) var(--ease),
    opacity var(--motion-control) ease,
    transform var(--motion-glide) var(--ease);
}

/* Where the browser can interpolate to a keyword, animate the real
   height. The easing then describes the distance the content actually
   travels, which is the difference between a disclosure that opens and
   one that expands toward a number. */
@supports (interpolate-size: allow-keywords) {
  .ehero-glossary-rail p {
    interpolate-size: allow-keywords;
    max-height: none;
    height: 0;
    transition:
      height var(--motion-settle) var(--ease),
      opacity var(--motion-control) ease,
      transform var(--motion-glide) var(--ease);
  }
}

.ehero-glossary-rail li[data-active="true"] {
  color: var(--ink);
  transform: translateX(3px);
}

.ehero-glossary-rail li[data-active="true"]::before {
  border-color: var(--accent);
  background: var(--accent);
  transform: translateY(-50%) rotate(45deg);
}

.ehero-glossary-rail li[data-active="true"] .ehero-glossary-no { color: var(--accent); }
.ehero-glossary-rail li[data-active="true"] p {
  max-height: 76px;
  margin-top: 7px;
  opacity: 1;
  transform: none;
  transition-delay: 70ms;
}
@supports (interpolate-size: allow-keywords) {
  .ehero-glossary-rail li[data-active="true"] p { height: auto; }
}

.ehero-glossary-progress {
  position: absolute;
  top: 31px;
  bottom: 0;
  left: 0;
  width: 1px;
  overflow: hidden;
}

.ehero-glossary-progress i {
  display: block;
  width: 100%;
  height: 100%;
  background: var(--accent);
  transform: scaleY(0);
  transform-origin: top;
  will-change: transform;
}

@media (min-width: 1420px) {
  .ehero-glossary-rail { display: block; }
}

@media (min-width: 1420px) and (max-width: 1539px) {
  .ehero-glossary-rail {
    left: 8px;
    width: clamp(105px, 7.4vw, 114px);
    padding: 12px 10px 12px 13px;
    border: 1px solid var(--rule);
    background: var(--paper);
  }
  .ehero-glossary-head { display: block; margin: 0 0 10px; }
  .ehero-glossary-head b,
  .ehero-glossary-rail p { display: none; }
  .ehero-glossary-rail ol { padding-left: 10px; }
  .ehero-glossary-rail li { grid-template-columns: 21px minmax(0, 1fr); gap: 5px; padding-block: 9px; }
  .ehero-glossary-rail li::before { left: -13px; }
  .ehero-glossary-rail strong {
    font-size: 12.5px;
    line-height: 1.04;
    overflow-wrap: normal;
    word-break: normal;
    hyphens: none;
  }
  .ehero-glossary-progress { top: 0; bottom: 0; left: -1px; }
}

.ehero-story-pin {
  position: sticky;
  top: 84px;
  z-index: 1;
  align-self: start;
  overflow: hidden;
  border: 1px solid var(--rule);
  background: var(--card);
}

.ehero-story-head,
.ehero-story-foot {
  min-height: 52px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 12px 18px;
  font-family: var(--mono);
  font-size: 10px;
  line-height: 1.45;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.ehero-story-head {
  position: relative;
  border-bottom: 1px solid var(--rule);
  color: var(--accent);
}

.ehero-story-head::after {
  content: "";
  position: absolute;
  right: 0;
  bottom: -1px;
  left: 0;
  height: 1px;
  background: var(--accent);
  transform: scaleX(var(--story-progress));
  transform-origin: 0 50%;
}

.ehero-story-state {
  display: flex;
  align-items: center;
  gap: 13px;
  color: var(--ink-2);
}

.ehero-story-state b {
  min-width: 54px;
  color: var(--faint);
  font: inherit;
}

.ehero-story-viewport {
  position: relative;
  isolation: isolate;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #e9e4d9;
}

:root[data-mode="dark"] .ehero-story-viewport {
  background: #1d1914;
}

.ehero-story-frame {
  position: absolute;
  inset: 0;
  z-index: 0;
  margin: 0;
  opacity: 0;
  transform: translateY(14px) scale(1.008);
  transition: opacity var(--motion-press) linear, transform var(--motion-control) var(--ease);
}

.ehero-story-frame[data-active="true"] {
  z-index: 1;
  opacity: 1;
  transform: none;
}

.ehero-story-frame picture,
.ehero-story-frame img {
  display: block;
  width: 100%;
  height: 100%;
}

.ehero-story-frame img {
  object-fit: cover;
  object-position: center;
  transform: translate3d(var(--story-camera-x, 0), var(--story-camera-y, 0), 0) scale(var(--story-camera-scale, 1.02));
  transform-origin: var(--story-camera-origin, 50% 50%);
  transition: transform var(--motion-control) linear;
  will-change: transform;
}

.ehero-story-overlay {
  position: absolute;
  inset: 0;
  z-index: 30;
  width: 100%;
  height: 100%;
  pointer-events: none;
}

.ehero-story-aperture {
  position: absolute;
  z-index: 31;
  inset: clamp(13px, 2.2vw, 22px);
  pointer-events: none;
}

.ehero-story-aperture i {
  --aperture-shift: calc(var(--story-local, .5) * 4px);
  position: absolute;
  width: 25px;
  height: 25px;
  opacity: .62;
  transform: translate3d(0, 0, 0);
  transition: transform var(--motion-control) linear, opacity var(--motion-control) ease;
}

.ehero-story-aperture i::before,
.ehero-story-aperture i::after {
  content: '';
  position: absolute;
  background: var(--accent);
}

.ehero-story-aperture i::before { width: 100%; height: 1px; }
.ehero-story-aperture i::after { width: 1px; height: 100%; }
.ehero-story-aperture i:nth-child(1) { top: 0; left: 0; transform: translate3d(var(--aperture-shift), var(--aperture-shift), 0); }
.ehero-story-aperture i:nth-child(2) { top: 0; right: 0; transform: rotate(90deg) translate3d(var(--aperture-shift), var(--aperture-shift), 0); }
.ehero-story-aperture i:nth-child(3) { right: 0; bottom: 0; transform: rotate(180deg) translate3d(var(--aperture-shift), var(--aperture-shift), 0); }
.ehero-story-aperture i:nth-child(4) { bottom: 0; left: 0; transform: rotate(270deg) translate3d(var(--aperture-shift), var(--aperture-shift), 0); }

.ehero-release-frame img {
  object-position: 61% center;
  opacity: .88;
  filter: saturate(.76) contrast(1.02);
}

.ehero-release-copy {
  --release-panel: #eee8dc;
  --release-ink: #181711;
  --release-muted: #5d594e;
  --release-rule: #a9a193;
  position: absolute;
  z-index: 2;
  bottom: clamp(22px, 3.4vw, 42px);
  left: clamp(22px, 3.4vw, 42px);
  width: min(51%, 450px);
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: min(47%, 290px);
  padding: clamp(20px, 2.5vw, 32px);
  border: 1px solid var(--release-rule);
  border-left: 4px solid var(--accent);
  background: var(--release-panel);
  box-shadow: 12px 12px 0 color-mix(in srgb, #12130f 34%, transparent);
  opacity: 0;
  transform: translate3d(-16px, 10px, 0);
  transition: opacity var(--motion-control) linear, transform var(--motion-glide) var(--ease);
}

:root[data-mode="dark"] .ehero-release-copy {
  --release-panel: #171913;
  --release-ink: #eee9dd;
  --release-muted: #aaa397;
  --release-rule: #4b5148;
  box-shadow: 12px 12px 0 rgba(3, 4, 3, .42);
}

.ehero-release-frame[data-active="true"] .ehero-release-copy {
  opacity: 1;
  transform: none;
}

.ehero-release-copy > span,
.ehero-release-copy p {
  color: var(--accent);
  font-family: var(--mono);
  font-size: 10px;
  line-height: 1.5;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.ehero-release-copy strong {
  display: block;
  max-width: 15ch;
  margin: 17px 0 21px;
  color: var(--release-ink);
  font-family: var(--serif);
  font-size: clamp(26px, 2.45vw, 36px);
  font-weight: 400;
  line-height: 1;
  letter-spacing: -.025em;
}

.ehero-release-copy p {
  max-width: 43ch;
  padding-top: 13px;
  border-top: 1px solid var(--release-rule);
  color: var(--release-muted);
}

.ehero-release-copy > * {
  opacity: 0;
  transform: translateY(9px);
  transition: opacity var(--motion-glide) var(--ease), transform var(--motion-glide) var(--ease);
}

.ehero-release-frame[data-active="true"] .ehero-release-copy > * {
  opacity: 1;
  transform: none;
}

.ehero-release-frame[data-active="true"] .ehero-release-copy strong { transition-delay: 70ms; }
.ehero-release-frame[data-active="true"] .ehero-release-copy p { transition-delay: 130ms; }

.ehero-story-foot {
  border-top: 1px solid var(--rule);
  color: var(--muted);
}

.ehero-story-foot span:last-child {
  color: var(--ink-2);
  text-align: right;
}

.ehero-story-steps {
  position: relative;
  list-style: none;
  margin: 0;
  padding: 0;
}

.ehero-story-steps::before {
  content: "";
  position: absolute;
  top: 10%;
  bottom: 10%;
  left: 0;
  width: 1px;
  background: var(--rule);
}

.ehero-story-steps::after {
  content: "";
  position: absolute;
  top: 10%;
  left: 0;
  width: 1px;
  height: calc(80% * var(--story-progress));
  background: var(--accent);
}

.ehero-story-steps li {
  position: relative;
  min-height: 82vh;
  display: grid;
  grid-template-columns: 42px minmax(0, 1fr);
  align-content: center;
  gap: 18px;
  padding: 12vh 0 12vh 27px;
  color: var(--ink-2);
  opacity: 1;
  transition: color var(--motion-control) ease, transform var(--motion-glide) var(--ease);
}

.ehero-story-steps li::before {
  content: "";
  position: absolute;
  top: 50%;
  left: -3px;
  width: 7px;
  height: 7px;
  border: 1px solid var(--rule-strong);
  background: var(--paper);
  transform: translateY(-50%);
  transition: border-color var(--motion-control) ease, background-color var(--motion-control) ease;
}

.ehero-story-steps li[data-active="true"] {
  color: var(--ink);
  transform: translateX(6px);
}

.ehero-story-steps li[data-active="true"]::before {
  border-color: var(--accent);
  background: var(--accent);
}

.ehero-step-no {
  padding-top: 5px;
  color: var(--accent);
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: .12em;
}

.ehero-story-steps h3 {
  max-width: 14ch;
  color: inherit;
  font-family: var(--serif);
  font-size: clamp(27px, 3vw, 42px);
  font-weight: 400;
  line-height: 1.06;
  letter-spacing: -.025em;
}

.ehero-story-steps p {
  max-width: 35ch;
  margin-top: 17px;
  color: var(--ink-2);
  font-size: 15px;
  line-height: 1.62;
}

.ehero-step-evidence {
  display: block;
  margin-top: 24px;
  color: var(--muted);
  font-family: var(--mono);
  font-size: 10px;
  line-height: 1.5;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.home-register {
  padding-block: 22px;
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
}

.home-register p {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 28px;
  color: var(--ink-2);
  font-size: 15px;
  line-height: 1.5;
}

.home-register span {
  flex: none;
  color: var(--accent);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.home-chapter-rail {
  --home-register-progress: 0;
  position: fixed;
  z-index: 18;
  top: 50%;
  left: max(22px, calc((100vw - var(--site-max)) / 2 - 96px));
  width: 74px;
  color: var(--muted);
  opacity: 0;
  pointer-events: none;
  transform: translate3d(-8px, -50%, 0);
  transition: opacity var(--motion-glide) ease, transform var(--motion-settle) var(--ease);
}

.home-chapter-rail[data-active="true"] {
  opacity: 1;
  pointer-events: auto;
  transform: translate3d(0, -50%, 0);
}

.home-chapter-rail-label {
  display: block;
  margin: 0 0 12px 18px;
  color: var(--faint);
  font: 500 7.5px/1.4 var(--mono);
  letter-spacing: .11em;
  text-transform: uppercase;
}

.home-chapter-rail ol {
  position: relative;
  margin: 0;
  padding: 0 0 0 18px;
  border-left: 1px solid var(--rule);
  list-style: none;
}

.home-chapter-rail li { margin: 0; }
.home-chapter-rail a {
  position: relative;
  display: grid;
  grid-template-columns: 17px minmax(0, 1fr);
  gap: 5px;
  align-items: baseline;
  padding: 8px 0;
  color: var(--faint);
  font-family: var(--mono);
  line-height: 1.2;
  transition: color var(--motion-control) ease, transform var(--motion-glide) var(--ease);
}

.home-chapter-rail a::before {
  content: '';
  position: absolute;
  top: 50%;
  left: -21px;
  width: 5px;
  height: 5px;
  border: 1px solid var(--rule-strong);
  background: var(--paper);
  transform: translateY(-50%);
  transition: border-color var(--motion-control) ease, background-color var(--motion-control) ease;
}

.home-chapter-rail a span { font-size: 7px; letter-spacing: .08em; }
.home-chapter-rail a b { font-size: 8px; font-weight: 500; letter-spacing: .02em; }
.home-chapter-rail a:hover,
.home-chapter-rail a:focus-visible,
.home-chapter-rail a[aria-current="location"] { color: var(--ink); }
.home-chapter-rail a[aria-current="location"] { transform: translateX(3px); }
.home-chapter-rail a[aria-current="location"]::before { border-color: var(--accent); background: var(--accent); }

.home-chapter-rail-progress {
  position: absolute;
  top: 27px;
  bottom: 0;
  left: 0;
  width: 1px;
  overflow: hidden;
}

.home-chapter-rail-progress i {
  display: block;
  width: 100%;
  height: calc(var(--home-register-progress) * 100%);
  background: var(--accent);
  transform-origin: top;
}

.home-page .esec[data-home-active="true"] .esec-head .lbl { color: var(--accent); }

.home-page .esec { padding: clamp(92px, 9vw, 138px) 0; }
.home-page #work,
.home-page #funding,
.home-page #pledge { background: var(--paper-2); }
.home-page #research,
.home-page #approach { background: var(--paper); }
.home-page .esec-head { grid-template-columns: minmax(140px, 2fr) 10fr; gap: 34px; margin-bottom: 54px; }
.home-page .esec-head h2 {
  max-width: 30ch;
  font-size: clamp(34px, 4.3vw, 58px);
  line-height: 1.06;
  letter-spacing: -.026em;
}

.home-page .ethesis {
  max-width: 72ch;
  margin: 0 0 46px calc(16.666% + 18px);
  color: var(--ink-2);
  font-size: 18px;
  line-height: 1.65;
}

.home-frontier-index .ti small {
  display: block;
  margin-top: 8px;
  color: var(--muted);
  font: 500 9px/1.3 var(--mono);
  letter-spacing: .1em;
  text-transform: uppercase;
}

.home-research-link { margin-top: 30px; }

.home-page .efunding {
  max-width: 58ch;
  margin-top: 36px;
  color: var(--muted);
  font-size: 15px;
  line-height: 1.6;
}

.home-page .ework-detail {
  max-width: 78ch;
  margin-top: 34px;
  padding-top: 28px;
  border-top: 1px solid var(--rule);
  color: var(--ink-2);
  font-size: 16px;
  line-height: 1.65;
}

.home-page .ework-detail p + p { margin-top: 14px; }

.home-page .ework-detail .ework-pricing {
  color: var(--muted);
  font-size: 15px;
}

.home-page .efunding-refuse {
  max-width: 68ch;
  margin: 0 0 36px;
  color: var(--ink);
  font-family: var(--serif);
  font-size: clamp(20px, 2.4vw, 28px);
  line-height: 1.35;
  letter-spacing: -.015em;
}

.home-page .efunding-ask {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(28px, 5vw, 64px);
  margin-bottom: 48px;
  padding-bottom: 40px;
  border-bottom: 1px solid var(--rule);
}

.home-page .efunding-ask h3 {
  margin: 0 0 14px;
  font-family: var(--serif);
  font-size: 24px;
  font-weight: 400;
  letter-spacing: -.02em;
}

.home-page .efunding-ask ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

.home-page .efunding-ask li {
  position: relative;
  padding: 10px 0 10px 18px;
  border-top: 1px solid var(--rule);
  color: var(--ink-2);
  font-size: 15px;
  line-height: 1.5;
}

.home-page .efunding-ask li:last-child { border-bottom: 1px solid var(--rule); }

.home-page .efunding-ask li::before {
  content: "";
  position: absolute;
  top: 1.1em;
  left: 0;
  width: 6px;
  height: 1px;
  background: var(--accent);
}

.home-page .efunding-ask p {
  max-width: 42ch;
  margin: 0;
  color: var(--ink-2);
  font-size: 16px;
  line-height: 1.6;
}

.home-page .efunding-cta {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 22px !important;
  max-width: none !important;
}

.home-page .efunding-partners .lbl {
  display: block;
  margin-bottom: 22px;
}

.home-page .efunding-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--rule);
}

.home-page .efunding-list li {
  padding: 14px 18px 14px 0;
  border-bottom: 1px solid var(--rule);
  border-right: 1px solid var(--rule);
  color: var(--ink-2);
  font-size: 14px;
  line-height: 1.45;
}

.home-page .efunding-list li:nth-child(3n) { border-right: 0; padding-right: 0; }

.home-page .efunding-note {
  max-width: 72ch;
  margin-top: 22px;
  color: var(--faint);
  font-size: 13px;
  line-height: 1.55;
}

.home-page .estatus.preview {
  color: var(--accent-2);
  border: 1px solid rgba(177, 84, 45, .45);
}

.home-page .erow,
.home-page .eprodrow {
  transition: color var(--motion-control) ease, background-color var(--motion-control) ease, padding var(--motion-control) ease;
}

.home-page .eprodrow .nm { letter-spacing: -.022em; }

.home-page .erow:hover,
.home-page a.eprodrow:hover {
  margin-inline: -14px;
  padding-inline: 14px;
  background: var(--paper-2);
}

.motion-ready .home-page [data-motion="reveal"] {
  opacity: 0;
  transform: translateY(16px);
  transition: opacity var(--motion-settle) var(--ease), transform var(--motion-settle) var(--ease);
}

.motion-ready .home-page [data-motion="reveal"].in {
  opacity: 1;
  transform: none;
}

.home-page .eprin-4 {
  counter-reset: principle;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.home-page .eprin-4 > div {
  counter-increment: principle;
  position: relative;
  min-height: 218px;
  margin: 0;
  padding: 40px 34px 40px 70px;
  border-right: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
}

.home-page .eprin-4 > div:nth-child(even) { border-right: 0; }
.home-page .eprin-4 > div:nth-last-child(-n + 2) { border-bottom: 0; }
.home-page .eprin-4 > div::before {
  content: "0" counter(principle);
  position: absolute;
  top: 43px;
  left: 0;
  color: var(--accent);
  font: 500 11px/1 var(--mono);
  letter-spacing: .08em;
}

.home-page .eprin-4 h3 { font-size: 25px; font-weight: 400; line-height: 1.15; letter-spacing: -.018em; }
.home-page .eprin-4 p { max-width: 46ch; font-size: 16px; }

.home-page .epledge {
  display: grid;
  grid-template-columns: 4fr 8fr;
  gap: clamp(34px, 6vw, 84px);
  align-items: start;
  padding: 54px 0 0;
  border: 0;
  border-top: 1px solid var(--rule);
  border-radius: 0;
  background: transparent;
}

.home-page .epledge-fig { text-align: left; }
.home-page .epledge .fig {
  color: var(--accent);
  font-family: var(--serif);
  font-size: clamp(76px, 12vw, 154px);
  line-height: .9;
  letter-spacing: -.04em;
}
.home-page .epledge .figsub {
  margin-top: 16px;
  color: var(--muted);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.home-page .epledge p {
  max-width: 62ch;
  color: var(--ink-2);
  font-size: 18px;
  line-height: 1.66;
}
.home-page .epledge p + p { margin-top: 16px; }
.home-page .epledge > div > p:first-of-type::first-letter {
  -webkit-initial-letter: normal;
  initial-letter: normal;
  color: inherit;
  font: inherit;
  margin: 0;
  padding: 0;
}
.home-page .epledge-close {
  margin-top: 22px !important;
  color: var(--ink) !important;
  font-family: var(--serif);
  font-size: 22px !important;
  letter-spacing: -.01em;
}
.home-page .epledge .sig {
  margin-top: 26px;
  color: var(--faint);
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: .08em;
}

.home-page .efoot .big { max-width: 22ch; }

/* Research agenda: a semantic route from directions to public records. */
.research-page .ehero { padding-bottom: clamp(60px, 7vw, 94px); }
.research-page .ehero .ewrap { display: block; }
.research-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(320px, 5fr);
  gap: clamp(38px, 6vw, 88px);
  align-items: end;
}
.research-page .ehero h1 {
  max-width: 10ch;
  margin: 0;
  font-size: clamp(58px, 7.2vw, 100px);
  line-height: .94;
  letter-spacing: -.04em;
  text-wrap: balance;
}
.research-page .ehero-sub {
  display: block;
  margin: 0 0 4px;
}
.research-page .ehero-sub p {
  max-width: 55ch;
  color: var(--ink-2);
  font-size: clamp(16px, 1.7vw, 20px);
  line-height: 1.66;
}
.research-page .ehero-sub > p:first-of-type::first-letter {
  -webkit-initial-letter: normal;
  initial-letter: normal;
  color: inherit;
  font: inherit;
  margin: 0;
  padding: 0;
}
.research-page .ehero-sub em { color: var(--accent); font-style: italic; }
.research-page .ehero-cta { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 34px; }
.research-page .esec-head h2 { max-width: 46ch; }
.research-page .efoot .big { max-width: 22ch; }
.research-page .ethesis {
  max-width: 68ch;
  margin-bottom: 40px;
  color: var(--ink-2);
  font-size: 17px;
  line-height: 1.66;
}
.research-page .ethesis em { color: var(--accent); font-style: italic; }

.research-map-section {
  padding: clamp(70px, 8vw, 112px) 0;
  border-top: 1px solid var(--rule);
  border-bottom: 1px solid var(--rule);
  background: var(--paper-2);
}
.research-map-head {
  display: grid;
  grid-template-columns: minmax(150px, 2fr) minmax(0, 10fr);
  gap: 34px;
  align-items: start;
  margin-bottom: 46px;
}
.research-map-head h2 {
  max-width: 20ch;
  scroll-margin-top: calc(var(--site-nav) + 24px);
  font-family: var(--serif);
  font-size: clamp(36px, 4.8vw, 64px);
  font-weight: 400;
  line-height: 1.02;
  letter-spacing: -.032em;
}
.research-map-head p {
  max-width: 62ch;
  margin-top: 20px;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.62;
}
.research-graph-cue {
  --graph-cue-accent: var(--graph-blue, #3158c8);
  position: sticky;
  z-index: 7;
  top: var(--site-nav);
  display: none;
  grid-template-columns: minmax(108px, 1.2fr) minmax(350px, 4.8fr) minmax(230px, 3fr) minmax(78px, .8fr);
  gap: clamp(16px, 2.8vw, 40px);
  align-items: center;
  min-height: 72px;
  border-top: 1px solid var(--rule-strong);
  border-bottom: 1px solid var(--rule-strong);
  background: var(--paper-2);
}
.motion-ready .research-graph-cue { display: grid; }
.research-graph-cue-label,
.research-graph-cue-relation {
  color: var(--muted);
  font: 500 8px/1.45 var(--mono);
  letter-spacing: .09em;
  text-transform: uppercase;
}
.research-graph-cue-label { color: var(--graph-cue-accent); }
.research-graph-cue-stack { position: relative; min-height: 44px; }
.research-graph-cue-stack p {
  position: absolute;
  inset: 0;
  display: grid;
  grid-template-columns: 54px minmax(180px, .75fr) minmax(230px, 1.25fr);
  gap: 14px;
  align-items: center;
  margin: 0;
  opacity: 0;
  transform: translateY(7px);
  transition: opacity var(--motion-advance) ease, transform var(--motion-settle) var(--ease);
}
.research-graph-cue-stack p[data-active="true"] { opacity: 1; transform: none; }
.research-graph-cue-stack span {
  color: var(--graph-cue-accent);
  font: 500 8px/1.4 var(--mono);
  letter-spacing: .08em;
}
.research-graph-cue-stack strong {
  white-space: nowrap;
  font-family: var(--serif);
  font-size: clamp(20px, 2vw, 28px);
  font-weight: 400;
  line-height: 1;
  letter-spacing: -.02em;
}
.research-graph-cue-stack small { color: var(--muted); font-size: 11px; line-height: 1.4; }
.research-graph-cue-meter { display: grid; grid-template-columns: repeat(3, 1fr); gap: 5px; }
.research-graph-cue-meter i { height: 2px; background: var(--rule-strong); transition: background-color var(--motion-advance) ease, transform var(--motion-glide) var(--ease); }
.research-graph-cue-meter i[data-active="true"] { background: var(--graph-cue-accent); transform: scaleY(1.7); }
.research-graph {
  position: relative;
  overflow: clip;
  border-top: 1px solid var(--rule-strong);
}
.research-map-canvas {
  position: absolute;
  z-index: 1;
  inset: 0;
  display: none;
  width: 100%;
  height: 100%;
  pointer-events: none;
}
.research-graph[data-graph-mounted="true"] .research-map-canvas { display: block; }
.research-graph-schema {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  border-bottom: 1px solid var(--rule-strong);
  background: var(--paper-2);
}
.research-graph-schema p {
  display: grid;
  grid-template-columns: auto minmax(92px, 1fr) auto;
  gap: 10px;
  align-items: center;
  min-width: 0;
  margin: 0;
  padding: 13px clamp(12px, 1.6vw, 22px);
  color: var(--muted);
  font: 500 8.5px/1.35 var(--mono);
  letter-spacing: .06em;
}
.research-graph-schema p + p { border-left: 1px solid var(--rule); }
.research-graph-schema b { color: var(--ink-2); font-weight: 500; }
.research-graph-schema span {
  display: flex;
  gap: 8px;
  align-items: center;
  color: var(--accent);
  white-space: nowrap;
}
.research-graph-schema span::after {
  content: '';
  min-width: 12px;
  height: 1px;
  background: currentColor;
}
.research-field-map {
  position: relative;
  z-index: 2;
  margin: 0;
  padding: 0;
  list-style: none;
}
.research-field-map > li {
  --graph-accent: var(--graph-blue, #3158c8);
  position: relative;
  display: grid;
  grid-template-columns: minmax(185px, 2.3fr) minmax(190px, 2fr) minmax(135px, 1.35fr) minmax(215px, 2.7fr);
  gap: clamp(24px, 3.2vw, 48px);
  min-height: clamp(245px, 31vh, 305px);
  padding: clamp(31px, 4vh, 45px) 0;
  border-bottom: 1px solid var(--rule-strong);
}
.research-field-map > li:nth-child(2) { --graph-accent: #cf503d; }
.research-field-map > li:nth-child(3) { --graph-accent: #6b4bb5; }
.research-field-map > li::before {
  content: '';
  position: absolute;
  top: -1px;
  left: 0;
  width: 42px;
  height: 2px;
  background: var(--graph-accent);
  transform: scaleX(.25);
  transform-origin: left;
  transition: transform var(--motion-slow) var(--ease);
}
.research-field-map > li > * {
  position: relative;
  z-index: 2;
  min-width: 0;
  padding: 17px 0;
  background: var(--paper-2);
  transition: opacity var(--motion-settle) ease, transform var(--motion-slow) var(--ease);
}
.research-graph[data-graph-mounted="true"] .research-field-map > li:not([data-graph-active]) > * {
  opacity: .82;
  transform: translateY(2px);
}
.research-field-map > li[data-graph-active]::before { transform: scaleX(1); }
.research-map-kind,
.research-map-frontier > span,
.research-map-artifacts > span {
  color: var(--muted);
  font: 500 9px/1.4 var(--mono);
  letter-spacing: .11em;
  text-transform: uppercase;
}
.research-map-directions { display: grid; align-content: center; gap: 7px; }
.research-map-directions .research-map-kind { margin-bottom: 7px; }
.research-map-directions a {
  display: grid;
  grid-template-columns: 38px minmax(0, 1fr);
  gap: 10px;
  align-items: baseline;
  padding: 4px 0;
  color: var(--ink-2);
  font-size: 13px;
  line-height: 1.35;
}
.research-map-directions b {
  color: var(--graph-accent);
  font: 500 10px/1.35 var(--mono);
  letter-spacing: .09em;
}
.research-map-directions a:hover span,
.research-map-directions a:focus-visible span { color: var(--graph-accent); }
.research-map-frontier {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  color: var(--ink);
}
.research-map-frontier::before,
.research-map-frontier::after {
  content: '';
  position: absolute;
  top: 50%;
}
.research-map-frontier::before { left: -25px; width: 20px; height: 1px; background: var(--graph-accent); }
.research-map-frontier::after {
  left: -10px;
  width: 6px;
  height: 6px;
  border-top: 1px solid var(--graph-accent);
  border-right: 1px solid var(--graph-accent);
  transform: translateY(-3px) rotate(45deg);
}
.research-graph[data-graph-mounted="true"] .research-map-frontier::before,
.research-graph[data-graph-mounted="true"] .research-map-frontier::after { opacity: 0; }
.research-map-frontier strong {
  margin: 12px 0 13px;
  font-family: var(--serif);
  font-size: clamp(27px, 2.7vw, 39px);
  font-weight: 400;
  line-height: 1;
  letter-spacing: -.025em;
}
.research-map-frontier small { color: var(--ink-2); font-size: 13px; line-height: 1.45; }
.research-map-products {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.research-map-products > .research-map-kind { margin-bottom: 9px; }
.research-map-products a {
  display: block;
  padding: 8px 0 9px;
  border-bottom: 1px solid var(--rule);
  color: var(--ink);
}
.research-map-products a:last-child { border-bottom: 0; }
.research-map-products b {
  display: block;
  font-family: var(--serif);
  font-size: 20px;
  font-weight: 400;
  line-height: 1.1;
}
.research-map-products small {
  display: block;
  margin-top: 4px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.35;
}
.research-map-products a:hover b,
.research-map-products a:focus-visible b { color: var(--graph-accent); }
.research-map-artifacts { display: flex; flex-direction: column; justify-content: center; }
.research-map-artifacts ul { margin: 13px 0 0; padding: 0; list-style: none; }
.research-map-artifacts li {
  position: relative;
  padding: 4px 0 4px 14px;
  color: var(--ink-2);
  font-size: 13px;
  line-height: 1.4;
}
.research-map-artifacts li::before {
  content: '';
  position: absolute;
  top: .9em;
  left: 0;
  width: 6px;
  height: 1px;
  background: var(--graph-accent);
}
.research-graph-note {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(130px, 1.3fr) minmax(0, 8.7fr);
  gap: 24px;
  margin: 0;
  padding: 17px 0 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.55;
}
.research-graph-note span {
  color: var(--ink-2);
  font: 500 9px/1.5 var(--mono);
  letter-spacing: .1em;
  text-transform: uppercase;
}
.research-page .erow[id] { scroll-margin-top: calc(var(--site-nav) + 28px); }

@media (min-width: 881px) and (max-width: 1120px) {
  .home-page .enav,
  .research-page .enav { gap: 14px; }
  .home-page .enav a,
  .research-page .enav a { font-size: 13px; }
  .research-hero-grid { grid-template-columns: minmax(0, 6.5fr) minmax(300px, 5.5fr); gap: 38px; }
  .research-graph-cue { grid-template-columns: 92px minmax(0, 1fr) 70px; gap: 18px; }
  .research-graph-cue-relation { display: none; }
  .research-graph-cue-stack p { grid-template-columns: 48px minmax(130px, .7fr) minmax(0, 1.3fr); gap: 10px; }
}

@media (max-width: 1379px) {
  .home-chapter-rail { display: none; }
}

.home-news-rail {
  background: #151b2f;
  color: #fbf8f0;
  border-bottom: 7px solid #2b57d9;
}
.home-news-grid {
  display: grid;
  grid-template-columns: 180px minmax(0, 1fr) auto;
  gap: clamp(28px, 5vw, 72px);
  align-items: center;
  min-height: 164px;
  padding-block: 27px;
}
.home-news-label {
  color: #9dacdb;
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: .11em;
  line-height: 1.5;
  text-transform: uppercase;
}
.home-news-grid > a:not(.home-news-read) { display: grid; gap: 8px; }
.home-news-grid strong {
  color: #fffdf8;
  font-family: var(--serif);
  font-size: clamp(27px, 3vw, 42px);
  font-weight: 400;
  letter-spacing: -.035em;
  line-height: 1;
}
.home-news-grid > a:not(.home-news-read) span { color: #b7bed0; font-size: 13px; }
.home-news-read {
  display: inline-flex;
  gap: 15px;
  padding-bottom: 7px;
  border-bottom: 1px solid #fffdf8;
  color: #fffdf8;
  font-family: var(--mono);
  font-size: 9px;
  letter-spacing: .08em;
  text-transform: uppercase;
  white-space: nowrap;
}
.home-news-read span { color: #f06a55; }

@media (max-width: 900px) {
  .home-news-grid { grid-template-columns: 145px minmax(0, 1fr); }
  .home-news-read { grid-column: 2; justify-self: start; }
  .home-page .ehero > .ewrap {
    display: grid;
    grid-template-columns: 1fr;
    row-gap: 0;
  }
  .home-page .ehero > .ewrap > .lbl { grid-column: 1; grid-row: 1; }
  .home-page .ehero > .ewrap > h1 { grid-column: 1; grid-row: 2; }
  .home-page .ehero > .ewrap > .ehero-intro { grid-column: 1; grid-row: 3; }
  .home-page .ehero > .ewrap > .ehero-plate { grid-column: 1; grid-row: 4; }
  .home-page .ehero > .ewrap > .ehero-story { grid-column: 1; grid-row: 5; }
  .ehero-intro > p { max-width: none; }
  .ehero-cta { grid-column: 9 / -1; }
  .ehero-story { grid-template-columns: 1fr; }
  .ehero-story-pin { top: 76px; }
  .ehero-story-viewport { aspect-ratio: 2 / 1; }
  .ehero-story-steps li {
    min-height: 64vh;
    padding-top: 10vh;
    padding-bottom: 10vh;
  }
  .home-page .ethesis { margin-left: 0; }
  .research-hero-grid { grid-template-columns: 1fr; gap: 32px; }
  .research-page .ehero h1 { max-width: 12ch; }
  .research-page .ehero-sub p { max-width: 66ch; }
  .research-map-head { grid-template-columns: 1fr; gap: 18px; }
  .research-field-map > li {
    grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr) minmax(0, .8fr) minmax(0, 1.25fr);
    gap: 16px;
  }
  .research-graph-schema p {
    grid-template-columns: 1fr;
    gap: 3px;
  }
  .research-graph-schema span::after { display: none; }
}

@media (max-width: 900px) {
  html:not(.motion-ready) .home-page .enav { display: none; }
}

@media (max-width: 820px) {
  .motion-ready .research-graph-cue { display: none; }
  .research-graph-schema { grid-template-columns: 1fr; }
  .research-graph-schema p {
    grid-template-columns: minmax(112px, .9fr) minmax(112px, 1fr) minmax(100px, .9fr);
    gap: 8px;
    padding: 11px 0;
  }
  .research-graph-schema p + p { border-top: 1px solid var(--rule); border-left: 0; }
  .research-graph-schema span::after { display: block; }
  .research-map-canvas { display: none !important; }
  .research-field-map { border-left: 1px solid var(--rule-strong); }
  .research-field-map > li { display: block; min-height: 0; padding: 0 0 0 18px; }
  .research-field-map > li::before {
    top: 0;
    left: -1px;
    width: 2px;
    height: 54px;
    transform: scaleY(.4);
    transform-origin: top;
  }
  .research-field-map > li[data-graph-active]::before { transform: scaleY(1); }
  .research-field-map > li > *,
  .research-graph[data-graph-mounted="true"] .research-field-map > li:not([data-graph-active]) > * {
    padding: 22px 18px;
    border-left: 0;
    opacity: 1;
    transform: none;
  }
  .research-field-map > li > * + * { border-top: 1px solid var(--rule); }
  .research-map-frontier::before { top: -1px; left: -19px; width: 19px; }
  .research-map-frontier::after { top: -4px; left: -5px; }
  .research-map-frontier strong { font-size: 32px; }
  .research-graph[data-graph-mounted="true"] .research-map-frontier::before,
  .research-graph[data-graph-mounted="true"] .research-map-frontier::after { opacity: 1; }
  .research-graph-note { grid-template-columns: 1fr; gap: 5px; padding: 17px 0 0 18px; }
}

@media (max-width: 760px) {
  .home-news-grid { grid-template-columns: 1fr; gap: 17px; padding-block: 34px; }
  .home-news-read { grid-column: 1; }
  .home-page .ehero { padding: 64px 0 54px; }
  .home-page .ehero .lbl { margin-bottom: 26px; }
  .home-page .ehero h1 { max-width: 12ch; font-size: clamp(51px, 14vw, 72px); }
  .ehero-intro { gap: 22px; margin-top: 34px; max-width: none; }
  .ehero-intro > p,
  .ehero-cta { width: 100%; justify-self: start; }
  .ehero-story { margin-top: 44px; }
  .ehero-plate { margin-top: 34px; }
  .ehero-plate-image { aspect-ratio: 1.22; }
  .ehero-plate figcaption { flex-direction: column; gap: 4px; }
  .ehero-story-pin { top: var(--site-nav); }
  .ehero-story-head,
  .ehero-story-foot {
    min-height: 48px;
    gap: 12px;
    padding: 10px 12px;
    font-size: 9px;
    letter-spacing: .075em;
  }
  .ehero-story-state { gap: 7px; }
  .ehero-story-state b { min-width: 44px; }
  .ehero-story-foot span:first-child { max-width: 17ch; }
  .ehero-story-foot span:last-child { max-width: 20ch; }
  .ehero-release-copy {
    bottom: 18px;
    left: 18px;
    width: min(66%, 430px);
    min-height: auto;
    padding: 20px 22px;
    box-shadow: 8px 8px 0 color-mix(in srgb, #12130f 34%, transparent);
  }
  .ehero-release-copy strong {
    margin: 11px 0 14px;
    font-size: clamp(24px, 6vw, 32px);
  }
  .ehero-release-copy p { padding-top: 10px; font-size: 7px; }
  .ehero-story-steps li {
    min-height: 58svh;
    grid-template-columns: 34px minmax(0, 1fr);
    gap: 12px;
    padding: 10svh 0 8svh 20px;
  }
  .ehero-story-steps h3 { max-width: 16ch; font-size: clamp(28px, 8.5vw, 38px); }
  .ehero-story-steps p { font-size: 15px; }
  .home-register p { display: block; }
  .home-register span { display: block; margin-bottom: 7px; }
  .home-page .esec-head { grid-template-columns: 1fr; gap: 17px; }
  .home-page .esec-head h2 { font-size: clamp(33px, 10vw, 48px); }
  .home-page .eprin-4 { grid-template-columns: 1fr; }
  .home-page .eprin-4 > div,
  .home-page .eprin-4 > div:nth-child(even),
  .home-page .eprin-4 > div:nth-last-child(-n + 2) {
    min-height: 0;
    padding: 30px 0 30px 52px !important;
    border-right: 0 !important;
    border-bottom: 1px solid var(--rule);
  }
  .home-page .eprin-4 > div:last-child { border-bottom: 0; }
  .home-page .eprin-4 > div::before { top: 35px; }
  .home-page .epledge { grid-template-columns: 1fr; gap: 28px; padding-top: 40px; }
  .home-page .efunding-ask { grid-template-columns: 1fr; gap: 28px; }
  .home-page .efunding-list { grid-template-columns: 1fr 1fr; }
  .home-page .efunding-list li:nth-child(3n) { border-right: 1px solid var(--rule); padding-right: 18px; }
  .home-page .efunding-list li:nth-child(2n) { border-right: 0; padding-right: 0; }
  .home-page .ethesis { margin-left: 0; }
  .research-page .ehero { padding-top: 62px; }
  .research-page .ehero h1 { font-size: clamp(48px, 13vw, 68px); }
  .research-map-section { padding-block: 66px; }
  .research-map-head h2 { max-width: 13ch; }
}

@media (max-width: 480px) {
  .ehero-release-copy {
    right: 12px;
    bottom: 12px;
    left: 12px;
    width: auto;
    padding: 10px 13px;
    box-shadow: 6px 6px 0 color-mix(in srgb, #12130f 34%, transparent);
  }
  .ehero-release-copy > span,
  .ehero-release-copy p { font-size: 7px; }
  .ehero-release-copy strong {
    max-width: 15ch;
    margin: 6px 0 7px;
    font-size: clamp(18px, 5.3vw, 22px);
  }
  .ehero-release-copy p { padding-top: 7px; }
}

@media (prefers-reduced-motion: reduce) {
  .motion-ready .home-page [data-motion="reveal"] { opacity: 1; transform: none; transition: none; }
  .ehero-story-frame img { transform: none !important; transition: none; }
  .ehero-story-aperture i { transform: none !important; transition: none; }
  .home-chapter-rail,
  .home-chapter-rail a,
  .ehero-glossary-rail,
  .ehero-glossary-rail li,
  .ehero-glossary-rail li::before,
  .ehero-glossary-rail p,
  .research-graph-cue-stack p,
  .research-graph-cue-meter i { transition: none; }
  .research-map-canvas { display: none !important; }
  .research-graph[data-graph-mounted="true"] .research-field-map > li > * {
    opacity: 1;
    transform: none;
    transition: none;
  }
  .research-field-map > li::before { transform: none; transition: none; }
  .ehero-plate-frame,
  .ehero-plate-frame[data-active="true"],
  .ehero-plate-frame img {
    animation: none;
    transform: none;
    transition: none;
  }
  .ehero-plate-annotation,
  .ehero-plate[data-plate-mounted="true"] .ehero-plate-annotation,
  .ehero-plate[data-plate-ready="true"][data-plate-active="true"] .ehero-plate-annotation {
    opacity: 1;
    transform: none;
    transition: none;
  }
  .ehero-plate-annotation i,
  .ehero-plate[data-plate-ready="true"][data-plate-active="true"] .ehero-plate-annotation i {
    transform: scaleX(1);
    transition: none;
  }
  .ehero-story { grid-template-columns: 1fr; }
  .ehero-story-pin { position: relative; top: auto; }
  .ehero-story-viewport {
    aspect-ratio: auto;
    display: grid;
    gap: 1px;
    background: var(--rule);
  }
  .ehero-story-frame,
  .ehero-story-frame[data-active="true"] {
    position: relative;
    inset: auto;
    aspect-ratio: 16 / 9;
    opacity: 1;
    transform: none;
    transition: none;
  }
  .ehero-story-overlay { display: none; }
  .ehero-release-copy,
  .ehero-release-frame[data-active="true"] .ehero-release-copy,
  .ehero-release-copy > * { opacity: 1; transform: none; transition: none; }
  .ehero-story-steps {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-top: 1px solid var(--rule);
  }
  .ehero-story-steps::before,
  .ehero-story-steps::after,
  .ehero-story-steps li::before { display: none; }
  .ehero-story-steps li,
  .ehero-story-steps li[data-active="true"] {
    min-height: 0;
    padding: 34px 26px;
    border-right: 1px solid var(--rule);
    border-bottom: 1px solid var(--rule);
    color: var(--ink);
    opacity: 1;
    transform: none;
  }
  .ehero-story-steps li:nth-child(even) { border-right: 0; }
  .ehero-story-steps li:nth-last-child(-n + 2) { border-bottom: 0; }
}

@media (max-width: 760px) and (prefers-reduced-motion: reduce) {
  .ehero-story-steps { grid-template-columns: 1fr; }
  .ehero-story-steps li,
  .ehero-story-steps li[data-active="true"] {
    border-right: 0;
    border-bottom: 1px solid var(--rule);
    padding-inline: 20px;
  }
  .ehero-story-steps li:last-child { border-bottom: 0; }
}
}

/* The shared reveal ends at filter: blur(0), which still establishes a
   containing block for fixed descendants. The glossary then scrolls with
   this 3,000px scene and disappears after chapter one. Once revealed, the
   story needs no filter at all so the glossary remains a viewport rail.
   This belongs in polish because that is where the shared blur resolves. */
@layer polish {
  .ehero-story.rv.in { filter: none; }
}
