@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400;1,600;1,700&family=IBM+Plex+Sans+Condensed:wght@500;600;700&display=swap");

@layer reset, tokens, base, layout, components, reports, utilities;

@layer reset {
  *, *::before, *::after { box-sizing: border-box; }
  html { scroll-behavior: smooth; }
  body { margin: 0; min-width: 320px; overflow-x: hidden; }
  html[data-js="true"][data-hero-lock="true"],
  html[data-js="true"][data-hero-lock="true"] body {
    height: 100%;
    overflow: hidden;
    overscroll-behavior: none;
  }
  img, svg { display: block; max-width: 100%; }
  input, select, textarea, button { font: inherit; }
  button, a { -webkit-tap-highlight-color: transparent; }
}

@layer tokens {
  :root {
    color-scheme: light;
    --paper: #f4f2ec;
    --paper-strong: #fffdf8;
    --surface: #fbfaf5;
    --surface-muted: #e8ebe7;
    --ink: #11151a;
    --charcoal: #25313a;
    --text: #172027;
    --text-muted: #24313b;
    --line: #c6cec8;
    --line-strong: #7d8781;
    --steel: #78858d;
    --teal: #08736b;
    --teal-strong: #034f4b;
    --brass: #b78948;
    --oxide: #8b3b2f;
    --green: #3f6250;
    --bg: var(--paper);
    --bg-elevated: var(--surface);
    --bg-soft: var(--surface-muted);
    --border: var(--line);
    --card-border: color-mix(in srgb, var(--line) 84%, var(--text) 12%);
    --accent: var(--teal);
    --accent-strong: var(--teal-strong);
    --warm: var(--brass);
    --chart-one: var(--teal);
    --chart-two: #436f7f;
    --chart-three: var(--brass);
    --chart-down: #9ca7a2;
    --chart-train: #dce7df;
    --chart-test: #ead7b3;
    --shadow: 0 20px 50px rgb(17 21 26 / 12%);
    --radius-sm: 3px;
    --radius: 4px;
    --radius-lg: 6px;
    --font-sans: "IBM Plex Sans", "Aptos", "Segoe UI", system-ui, sans-serif;
    --font-label: "IBM Plex Sans Condensed", "IBM Plex Sans", "Aptos", "Segoe UI", system-ui, sans-serif;
    --font-display: "Iowan Old Style", "Palatino Linotype", "Book Antiqua", Georgia, serif;
    --font-mono: "JetBrains Mono", "IBM Plex Mono", "Cascadia Mono", Consolas, monospace;
    --step--1: clamp(0.86rem, 0.82rem + 0.14vw, 0.95rem);
    --step-0: clamp(0.98rem, 0.92rem + 0.22vw, 1.1rem);
    --step-1: clamp(1.14rem, 1.04rem + 0.46vw, 1.38rem);
    --step-2: clamp(1.45rem, 1.24rem + 0.92vw, 1.95rem);
    --step-3: clamp(2rem, 1.58rem + 1.82vw, 3rem);
    --step-4: clamp(3rem, 2.15rem + 3.6vw, 5.2rem);
    --space-xs: clamp(0.55rem, 0.5rem + 0.22vw, 0.72rem);
    --space-s: clamp(0.8rem, 0.72rem + 0.32vw, 1rem);
    --space-m: clamp(1.15rem, 1rem + 0.68vw, 1.6rem);
    --space-l: clamp(1.8rem, 1.45rem + 1.45vw, 2.8rem);
    --space-xl: clamp(2.7rem, 2rem + 3vw, 5rem);
    --shell: min(1180px, calc(100vw - clamp(1.4rem, 4vw, 5rem)));
    --header-height: 76px;
    --field-grid: color-mix(in srgb, #6f4d57 18%, transparent);
    --field-wave-start: #8a3648;
    --field-wave-mid: #596c75;
    --field-wave-end: #38586f;
    --field-veil-one: #8a3648;
    --field-veil-two: #24313b;
    --field-veil-three: #38586f;
    --field-wave-two: #6f3349;
    --field-wave-three: #2f536c;
    --field-dot-border: #6f3349;
    --field-dot-fill: color-mix(in srgb, var(--paper-strong) 60%, #38586f 40%);
    --field-bg-start: var(--bg);
    --field-bg-end: var(--bg-soft);
    --field-veil-bg-start: var(--field-bg-start);
    --field-veil-bg-end: var(--field-bg-end);
    --field-curve-gain: 1.45;
  }

  :root[data-theme="dark"] {
    color-scheme: dark;
    --paper: #11151a;
    --paper-strong: #171c21;
    --surface: #1b2228;
    --surface-muted: #242d32;
    --ink: #f3efe5;
    --charcoal: #e8e5dc;
    --text: #f2efe6;
    --text-muted: #bec5c2;
    --line: #46514c;
    --line-strong: #7d8781;
    --steel: #a8b0b3;
    --teal: #42b9a7;
    --teal-strong: #9be0d2;
    --brass: #d3a45c;
    --oxide: #d46b59;
    --green: #8fb39c;
    --shadow: 0 20px 50px rgb(0 0 0 / 36%);
    --chart-down: #69746f;
    --chart-train: #263e35;
    --chart-test: #4b3d26;
    --field-grid: color-mix(in srgb, var(--ink) 10%, transparent);
    --field-wave-start: var(--teal);
    --field-wave-mid: var(--steel);
    --field-wave-end: var(--brass);
    --field-veil-one: var(--teal);
    --field-veil-two: var(--ink);
    --field-veil-three: var(--brass);
    --field-wave-two: color-mix(in srgb, var(--teal) 70%, var(--ink));
    --field-wave-three: color-mix(in srgb, var(--brass) 72%, var(--ink));
    --field-dot-border: color-mix(in srgb, var(--teal) 60%, var(--ink));
    --field-dot-fill: color-mix(in srgb, var(--paper-strong) 40%, transparent);
    --field-bg-start: var(--bg);
    --field-bg-end: var(--bg-soft);
    --field-veil-bg-start: #11151a;
    --field-veil-bg-end: #000;
    --field-curve-gain: 1;
  }

  @media (prefers-color-scheme: dark) {
    :root[data-theme="system"] {
      color-scheme: dark;
      --paper: #11151a;
      --paper-strong: #171c21;
      --surface: #1b2228;
      --surface-muted: #242d32;
      --ink: #f3efe5;
      --charcoal: #e8e5dc;
      --text: #f2efe6;
      --text-muted: #bec5c2;
      --line: #46514c;
      --line-strong: #7d8781;
      --steel: #a8b0b3;
      --teal: #42b9a7;
      --teal-strong: #9be0d2;
      --brass: #d3a45c;
      --oxide: #d46b59;
      --green: #8fb39c;
      --shadow: 0 20px 50px rgb(0 0 0 / 36%);
      --chart-down: #69746f;
      --chart-train: #263e35;
      --chart-test: #4b3d26;
      --field-grid: color-mix(in srgb, var(--ink) 10%, transparent);
      --field-wave-start: var(--teal);
      --field-wave-mid: var(--steel);
      --field-wave-end: var(--brass);
      --field-veil-one: var(--teal);
      --field-veil-two: var(--ink);
      --field-veil-three: var(--brass);
      --field-wave-two: color-mix(in srgb, var(--teal) 70%, var(--ink));
      --field-wave-three: color-mix(in srgb, var(--brass) 72%, var(--ink));
      --field-dot-border: color-mix(in srgb, var(--teal) 60%, var(--ink));
      --field-dot-fill: color-mix(in srgb, var(--paper-strong) 40%, transparent);
      --field-bg-start: var(--bg);
      --field-bg-end: var(--bg-soft);
      --field-veil-bg-start: #11151a;
      --field-veil-bg-end: #000;
      --field-curve-gain: 1;
    }
  }
}

@layer base {
  body {
    background:
      linear-gradient(color-mix(in srgb, var(--text) 8%, transparent) 1px, transparent 1px),
      linear-gradient(90deg, color-mix(in srgb, var(--text) 6%, transparent) 1px, transparent 1px),
      var(--bg);
    background-size: 72px 72px;
    color: var(--text);
    font-family: var(--font-sans);
    font-size: var(--step-0);
    line-height: 1.58;
    text-rendering: optimizeLegibility;
  }

  body.landing-page {
    background: var(--field-bg-start);
  }

  .page-background {
    display: none;
  }

  body.landing-page .page-background {
    position: fixed;
    inset: 0;
    z-index: 0;
    display: block;
    overflow: hidden;
    background: var(--field-bg-start);
    pointer-events: none;
  }

  body.landing-page .page-background signal-field,
  body.landing-page .page-background .signal-field {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
  }

  ::selection {
    background: color-mix(in srgb, var(--teal) 28%, transparent);
  }

  :focus-visible {
    outline: 3px solid var(--brass);
    outline-offset: 4px;
  }

  h1, h2, h3, p, dl, dd { margin-block-start: 0; }
  h1, h2 {
    color: var(--ink);
    font-family: var(--font-display);
    font-weight: 700;
    letter-spacing: 0;
    line-height: 1;
  }
  h3 {
    color: var(--ink);
    font-size: var(--step-1);
    letter-spacing: 0;
    line-height: 1.16;
  }
  h1 { max-width: 12ch; font-size: var(--step-4); }
  h2 { max-width: 15ch; font-size: var(--step-3); }
  p { max-width: 72ch; color: var(--text-muted); }
  a { color: inherit; text-underline-offset: 0.18em; }
  main {
    position: relative;
    overflow: clip;
  }
}

@layer layout {
  .shell { width: var(--shell); margin-inline: auto; }
  .section {
    padding-block: var(--space-xl);
    border-block-start: 1px solid var(--line);
    scroll-margin-top: calc(var(--header-height) + 1.5rem);
  }

  html[data-js="true"][data-deck="true"],
  html[data-js="true"][data-deck="true"] body.landing-page {
    --deck-bottom-nav-space: 0.9rem;
    --deck-barrier-bottom: var(--deck-bottom-nav-space);
    height: 100%;
    overflow: hidden;
    overscroll-behavior: none;
  }

  html[data-js="true"][data-deck="true"] body.landing-page main {
    --deck-barrier-top: calc(var(--header-height) + 1rem);
    position: fixed;
    inset: 0;
    z-index: 1;
    height: auto;
    overflow: hidden;
    overflow: clip;
    clip-path: inset(var(--deck-barrier-top) 0 var(--deck-barrier-bottom) 0);
  }

  html[data-js="true"][data-deck="true"] body.landing-page .site-header {
    position: fixed;
  }

  html[data-js="true"][data-deck="true"] body.landing-page .deck-section {
    --deck-panel-top: var(--deck-barrier-top);
    --deck-panel-bottom: calc(clamp(0.8rem, 2vw, 1.6rem) + var(--deck-bottom-nav-space));
    position: absolute;
    inset-block: var(--deck-panel-top) var(--deck-panel-bottom);
    inset-inline-start: 50%;
    z-index: 10;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    width: var(--shell);
    max-width: var(--shell);
    margin: 0;
    padding: clamp(1rem, 2.4vw, 2rem);
    border: 0;
    background: transparent;
    box-shadow: none;
    opacity: 0;
    overflow-x: hidden;
    overflow-y: auto;
    pointer-events: none;
    scrollbar-gutter: stable;
    transform: translateX(-50%) translateY(var(--deck-y, 0px));
    opacity: var(--deck-opacity, 0);
    transition: none;
    visibility: hidden;
    overscroll-behavior: contain;
  }

  html[data-js="true"][data-deck="true"] body.landing-page .deck-section[data-deck-overflow="fit"] {
    justify-content: center;
    overflow: visible;
  }

  html[data-js="true"][data-deck="true"] body.landing-page .deck-section[data-deck-overflow="scroll"] {
    justify-content: flex-start;
  }

  html[data-js="true"][data-deck="true"] body.landing-page .deck-section[data-deck-state="active"] {
    z-index: 12;
    pointer-events: auto;
    visibility: visible;
  }

  html[data-js="true"][data-deck="true"] body.landing-page .deck-section[data-deck-state="inactive"] {
    z-index: 11;
  }

  html[data-js="true"][data-deck="true"] body.landing-page .deck-section[data-deck-state="scrub-in"],
  html[data-js="true"][data-deck="true"] body.landing-page .deck-section[data-deck-state="scrub-out"] {
    z-index: 12;
    visibility: visible;
  }

  html[data-js="true"][data-deck="true"] body.landing-page main > .hero.deck-section {
    min-height: auto;
    align-items: stretch;
    color: var(--ink);
  }

  html[data-js="true"][data-deck="true"] body.landing-page .hero::before {
    display: none;
  }

  html[data-js="true"][data-deck="true"] body.landing-page .hero__inner {
    width: 100%;
    min-height: 100%;
    margin: 0;
    padding-block: 0;
  }

  html[data-js="true"][data-deck="true"] body.landing-page .hero signal-field {
    display: none;
  }

  .site-header {
    position: absolute;
    inset-block-start: 0;
    inset-inline: 0;
    z-index: 60;
    min-height: var(--header-height);
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: var(--space-m);
    width: var(--shell);
    margin: 1rem auto 0;
    padding: 0.25rem 0;
    border: 1px solid transparent;
    border-radius: var(--radius-lg);
    background: transparent;
    color: var(--text);
    backdrop-filter: none;
    box-shadow: none;
    transition:
      box-shadow 180ms ease,
      border-color 180ms ease,
      background 180ms ease,
      color 180ms ease;
  }

  .site-header[data-popped="true"] {
    position: fixed;
    inset-block-start: 0;
    width: min(1340px, calc(100vw - 1.2rem));
    margin-block-start: 0.6rem;
    padding: 0.6rem 0.7rem;
    border-color: color-mix(in srgb, var(--teal) 28%, var(--line));
    box-shadow: var(--shadow);
    background: color-mix(in srgb, var(--bg-elevated) 95%, transparent);
    color: var(--text);
    backdrop-filter: blur(16px);
    animation: header-pop 220ms ease both;
  }

  .site-header[data-popped="false"] .brand,
  .site-header[data-popped="false"] .brand small,
  .site-header[data-popped="false"] .site-nav a {
    color: var(--text-muted);
  }

  .site-header[data-popped="false"] .brand strong,
  .site-header[data-popped="false"] .site-nav a:hover {
    color: var(--text);
  }

  .site-header[data-popped="false"] .theme-toggle,
  .site-header[data-popped="false"] .nav-toggle {
    border-color: color-mix(in srgb, var(--text) 20%, transparent);
    background: color-mix(in srgb, var(--text) 8%, transparent);
    color: var(--text);
  }

  .site-header[data-popped="false"] .nav-toggle span:not(.sr-only),
  .site-header[data-popped="false"] .nav-toggle span:not(.sr-only)::before,
  .site-header[data-popped="false"] .nav-toggle span:not(.sr-only)::after {
    background: var(--text);
  }

  .site-header[data-popped="false"] .button {
    border-color: color-mix(in srgb, var(--text) 24%, transparent);
    background: color-mix(in srgb, var(--text) 10%, transparent);
    color: var(--text);
  }

  .site-header[data-popped="false"] .button:hover {
    border-color: var(--brass);
    background: var(--brass);
    color: #11151a;
  }

  .site-nav {
    justify-self: center;
    display: flex;
    align-items: center;
    gap: clamp(0.2rem, 1vw, 0.75rem);
  }

  .site-nav a,
  .site-footer a {
    color: var(--text-muted);
    text-decoration: none;
  }

  .site-nav a {
    padding: 0.45rem 0.55rem;
    border-block-start: 1px solid transparent;
    font-family: var(--font-label);
    font-size: 0.76rem;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: uppercase;
  }

  .site-nav a:hover,
  .site-nav a[aria-current="page"] {
    color: var(--text);
    border-block-start-color: var(--teal);
  }

  .header-actions {
    display: flex;
    align-items: center;
    gap: 0.5rem;
  }

  .hero {
    --hero-resting-min-height: min(760px, calc(100svh - 112px));
    position: relative;
    min-height: var(--hero-resting-min-height);
    display: grid;
    align-items: stretch;
    overflow: hidden;
    background: var(--ink);
    color: var(--paper-strong);
  }

  html[data-js="true"][data-hero-lock="true"] .hero {
    min-height: 100svh;
  }

  .hero::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 1;
    background:
      linear-gradient(90deg, rgb(17 21 26 / 92%) 0%, rgb(17 21 26 / 76%) 44%, rgb(17 21 26 / 28%) 100%),
      linear-gradient(180deg, rgb(17 21 26 / 12%) 0%, rgb(17 21 26 / 72%) 100%);
    pointer-events: none;
  }

  .hero signal-field {
    position: absolute;
    inset: 0;
  }

  html[data-js="true"][data-hero-lock="true"] .hero signal-field {
    position: fixed;
  }

  .hero__inner {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 420px);
    align-items: center;
    gap: var(--space-xl);
    padding-block: calc(var(--header-height) + clamp(2.4rem, 5vw, 4.5rem)) clamp(3rem, 7vw, 6.5rem);
  }

  html[data-js="true"][data-hero-lock="true"] .hero__inner {
    min-height: 100svh;
    padding-block: calc(var(--header-height) + clamp(1.6rem, 4vw, 3.4rem)) clamp(1.6rem, 4vw, 3.4rem);
  }

  .hero h1,
  .hero h2,
  .hero h3,
  .hero p {
    color: #fffdf8;
  }

  .hero__copy {
    display: grid;
    align-content: center;
  }

  .hero__copy-stage {
    position: relative;
    max-width: 61ch;
    overflow: hidden;
  }

  .hero__text {
    display: grid;
    gap: var(--space-s);
    max-width: 61ch;
    transition:
      opacity 180ms linear,
      transform 620ms linear;
    will-change: transform;
  }

  .hero__text > *,
  .hero-mission__body > * {
    margin-block-end: 0;
  }

  .hero__text--mission {
    position: absolute;
    inset: 0 auto auto 0;
    width: 100%;
    opacity: 1;
    pointer-events: none;
    transform: translateY(var(--hero-text-travel, calc(100% + var(--space-l))));
  }

  .hero[data-hero-view="mission"] .hero__text--home {
    position: absolute;
    inset: 0 auto auto 0;
    width: 100%;
    opacity: 1;
    pointer-events: none;
    transform: translateY(calc(-1 * var(--hero-text-travel, calc(100% + var(--space-l)))));
  }

  .hero[data-hero-view="mission"] .hero__text--mission {
    position: relative;
    opacity: 1;
    pointer-events: auto;
    transform: translateY(0);
  }

  .hero--no-transition .hero__copy-stage,
  .hero--no-transition .hero__text {
    transition: none !important;
  }
  .hero[data-hero-scrub="true"] .hero__copy-stage,
  .hero[data-hero-scrub="true"] .hero__text {
    transition: none !important;
  }

  .hero__lede {
    max-width: 61ch;
    color: rgb(255 253 248 / 78%);
    font-size: var(--step-1);
  }

  .hero .hero__lede {
    font-size: var(--step-0);
  }

  .hero__actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-block-start: var(--space-m);
  }

  .hero__actions [data-hero-mission-toggle] {
    min-width: 10rem;
  }

  .hero-mission__title {
    max-width: 30ch;
    font-size: var(--step-2);
    line-height: 1.14;
  }

  .hero-mission__body {
    display: grid;
    gap: 1.1rem;
    max-inline-size: 61ch;
  }

  .hero-mission__body p {
    max-width: none;
    font-size: var(--step-0);
  }

  .hero .hero-mission__body .mission-principle {
    padding-inline-start: 1.1rem;
    border-inline-start: 3px solid var(--brass);
    font-weight: 620;
  }

  .split {
    display: grid;
    grid-template-columns: minmax(240px, 0.7fr) minmax(0, 1.3fr);
    gap: var(--space-xl);
    align-items: start;
  }

  .site-footer {
    display: flex;
    justify-content: space-between;
    gap: var(--space-l);
    padding-block: var(--space-l);
    border-block-start: 1px solid var(--line);
  }

  .site-footer nav {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    align-content: start;
    justify-content: end;
  }

  .deck-bottom-nav {
    display: none;
  }

  .deck-copyright {
    display: none;
  }

  html[data-js="true"][data-deck="true"] body.landing-page .deck-bottom-nav {
    position: fixed;
    inset-inline-start: 50%;
    inset-block-end: 0.8rem;
    z-index: 55;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.35rem;
    width: min(var(--shell), calc(100vw - 1.5rem));
    min-height: 2.4rem;
    padding: 0.25rem 0;
    border: 1px solid transparent;
    border-radius: var(--radius-lg);
    background: transparent;
    backdrop-filter: none;
    box-shadow: none;
    transform: translateX(-50%);
  }

  html[data-js="true"][data-deck="true"] body.landing-page[data-inline-report-active="true"] .deck-bottom-nav {
    display: none;
  }

  .deck-bottom-nav a {
    padding: 0.45rem 0.55rem;
    color: var(--text-muted);
    font-family: var(--font-sans);
    font-size: 0.76rem;
    font-weight: 400;
    line-height: 1;
    letter-spacing: 0;
    text-decoration: none;
    text-transform: uppercase;
  }

  .deck-bottom-nav a:hover,
  .deck-bottom-nav a[aria-current="page"] {
    color: var(--text);
    font-weight: 400;
  }

  html[data-js="true"][data-deck="true"] body.landing-page .deck-copyright {
    position: fixed;
    inset-inline-end: 0.65rem;
    inset-block-end: 0.45rem;
    z-index: 55;
    display: block;
    margin: 0;
    color: var(--text);
    font: 500 0.72rem / 1 var(--font-label);
    letter-spacing: 0;
    opacity: 0;
    pointer-events: none;
  }

  html[data-js="true"][data-deck="true"] body.landing-page[data-inline-report-active="true"] .deck-copyright {
    display: none;
  }

  @media (max-width: 920px) {
    .site-header {
      grid-template-columns: auto auto;
      align-items: start;
    }
    .header-actions {
      grid-column: 1 / -1;
      justify-content: space-between;
      width: 100%;
    }
    .site-nav {
      position: absolute;
      inset: calc(100% + 0.5rem) 0 auto 0;
      inline-size: 100%;
      display: none;
      flex-direction: column;
      align-items: stretch;
      padding: 0.8rem;
      border: 1px solid var(--line);
      background: var(--bg-elevated);
      box-shadow: var(--shadow);
    }
    .site-header[data-popped="false"] .site-nav {
      border-color: color-mix(in srgb, var(--text) 18%, transparent);
      background: color-mix(in srgb, var(--bg) 96%, transparent);
    }
    .site-nav[data-open="true"] { display: flex; }
    .nav-toggle { display: inline-grid; }
    .hero__inner,
    .split { grid-template-columns: 1fr; }
    .hero { min-height: 100svh; }
    html[data-js="true"][data-deck="true"] body.landing-page .deck-section {
      --deck-panel-top: var(--deck-barrier-top);
      --deck-panel-bottom: calc(0.75rem + var(--deck-bottom-nav-space));
      padding: 1rem;
    }
    html[data-js="true"][data-deck="true"] body.landing-page main {
      --deck-barrier-top: 8.65rem;
    }
    .inline-report-stage {
      --report-barrier-top: 8.65rem;
    }
    html[data-js="true"][data-deck="true"] body.landing-page .hero.deck-section {
      min-height: auto;
    }
    html[data-js="true"][data-deck="true"] body.landing-page .site-footer.deck-section {
      display: grid;
    }
    .site-footer {
      flex-direction: column;
    }
    .site-footer nav {
      justify-content: start;
    }
    html[data-js="true"][data-deck="true"] body.landing-page .deck-bottom-nav {
      inset-block-end: 0.55rem;
      width: min(var(--shell), calc(100vw - 1rem));
    }
    html[data-js="true"][data-deck="true"] body.landing-page .deck-copyright {
      inset-inline-end: 0.55rem;
      inset-block-end: 0.38rem;
    }
    .deck-bottom-nav a {
      padding-inline: 0.48rem;
      font-size: 0.7rem;
    }
  }

  @media (min-width: 921px) {
    .nav-toggle { display: none; }
  }
}

@layer components {
  .skip-link {
    position: fixed;
    z-index: 100;
    inset: 1rem auto auto 1rem;
    transform: translateY(-180%);
    background: var(--ink);
    color: var(--paper-strong);
    padding: 0.7rem 1rem;
    border-radius: var(--radius);
  }
  .skip-link:focus { transform: translateY(0); }

  .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;
  }

  .brand {
    display: inline-flex;
    align-items: center;
    gap: 0.7rem;
    min-width: max-content;
    color: var(--ink);
    text-decoration: none;
  }
  .brand img {
    border: 0;
    background: transparent;
  }
  .brand span {
    display: grid;
    line-height: 1.02;
  }
  .brand strong {
    font-size: 1rem;
    letter-spacing: 0;
  }
  .brand small {
    color: var(--text-muted);
    font-family: var(--font-label);
    font-size: 0.68rem;
    font-weight: 700;
    text-transform: uppercase;
  }

  .button,
  button.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 0.72rem 1rem;
    border: 1px solid var(--ink);
    border-radius: var(--radius);
    background: var(--ink);
    color: var(--paper-strong);
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    cursor: pointer;
    transition: transform 160ms ease, background 160ms ease, border-color 160ms ease;
  }
  .button:hover {
    transform: translateY(-1px);
    border-color: var(--teal);
    background: var(--teal-strong);
  }
  .hero__actions .button:not(.button--ghost) {
    border-color: var(--ink);
    background: var(--ink);
    color: var(--paper-strong);
  }
  .hero__actions .button:not(.button--ghost):hover {
    border-color: var(--brass);
    background: var(--brass);
    color: #11151a;
  }
  .button--ghost {
    border-color: color-mix(in srgb, var(--text) 45%, transparent);
    background: color-mix(in srgb, var(--text) 5%, transparent);
    color: var(--text);
  }
  .button--ghost:hover {
    border-color: var(--brass);
    background: color-mix(in srgb, var(--text) 10%, transparent);
  }
  .site-header .button--ghost,
  .report-aside .button--ghost {
    border-color: var(--line);
    background: transparent;
    color: var(--text);
  }
  .button--compact {
    min-height: 38px;
    padding: 0.54rem 0.78rem;
    font-size: 0.88rem;
  }

  .text-button {
    appearance: none;
    padding: 0;
    border: 0;
    background: none;
    color: var(--teal-strong);
    font-weight: 800;
    text-decoration: underline;
    text-underline-offset: 0.2em;
    cursor: pointer;
  }

  .theme-toggle,
  .nav-toggle {
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--bg-elevated);
    color: var(--text);
    cursor: pointer;
  }
  .theme-toggle {
    inline-size: 40px;
    block-size: 40px;
    display: grid;
    place-items: center;
  }
  .nav-toggle {
    inline-size: 44px;
    block-size: 40px;
    place-items: center;
  }
  .nav-toggle span:not(.sr-only),
  .nav-toggle span:not(.sr-only)::before,
  .nav-toggle span:not(.sr-only)::after {
    display: block;
    inline-size: 18px;
    block-size: 2px;
    background: var(--text);
    content: "";
  }
  .nav-toggle span:not(.sr-only)::before { transform: translateY(-6px); }
  .nav-toggle span:not(.sr-only)::after { transform: translateY(4px); }

  .eyebrow,
  .panel-label {
    color: var(--teal-strong);
    font-family: var(--font-label);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: uppercase;
  }
  .hero .eyebrow,
  .hero .panel-label {
    color: #8ee3d2;
  }

  .section-heading {
    display: grid;
    gap: 0.2rem;
    margin-block-end: var(--space-l);
  }
  .section-heading--split {
    grid-template-columns: minmax(0, 0.88fr) minmax(280px, 0.55fr);
    gap: var(--space-l);
    align-items: end;
  }
  .section-heading p:last-child {
    font-size: var(--step-0);
  }

  .mission-section .section-heading {
    margin-block-end: var(--space-m);
  }
  .mission-title {
    max-width: 30ch;
    font-size: var(--step-2);
    line-height: 1.14;
  }
  .mission-body {
    display: grid;
    gap: 1.1rem;
    max-inline-size: 61ch;
  }
  .mission-body p {
    max-width: none;
    font-size: var(--step-0);
    color: var(--text);
  }
  .mission-principle {
    padding-inline-start: 1.1rem;
    border-inline-start: 3px solid var(--brass);
    color: var(--ink);
    font-weight: 620;
  }

  .hero-brief {
    display: grid;
    gap: 1rem;
    padding: clamp(1rem, 2vw, 1.4rem);
    border: 1px solid color-mix(in srgb, var(--text) 24%, transparent);
    background: color-mix(in srgb, var(--bg-elevated) 80%, transparent);
    box-shadow: 0 26px 70px rgb(0 0 0 / 26%);
    backdrop-filter: blur(14px);
  }
  .hero-brief__nav {
    display: grid;
    gap: 0;
    margin: 0;
  }
  .hero-brief__button {
    display: grid;
    gap: 0.25rem;
    padding: 0.8rem 0.7rem;
    border-block-start: 1px solid color-mix(in srgb, var(--text) 14%, transparent);
    border-inline: 1px solid transparent;
    color: inherit;
    text-decoration: none;
    transition: background 160ms ease, border-color 160ms ease, transform 160ms ease;
  }
  .hero-brief__button:hover,
  .hero-brief__button:focus-visible {
    border-inline-color: color-mix(in srgb, #8ee3d2 36%, transparent);
    background: color-mix(in srgb, #8ee3d2 10%, transparent);
    transform: translateX(2px);
  }
  .hero-brief__button span {
    color: var(--ink);
    font: 700 0.82rem / 1.2 var(--font-label);
    text-transform: uppercase;
  }
  .hero-brief__button small {
    margin: 0;
    color: var(--text-muted);
    font-size: 0.95rem;
    line-height: 1.45;
  }

  .signal-field {
    /* Grid is drawn in CSS (not the stretched SVG) so cells stay square no
       matter the window aspect. Cell = viewport width / 12 keeps the original
       12 columns, and using the same size on both axes makes them square and
       tiles the full height. */
    --field-cell: calc(100vw / 12);
    --field-line: var(--field-grid);
    position: relative;
    isolation: isolate;
    width: 100%;
    height: 100%;
    min-height: 100%;
    overflow: hidden;
    background-color: var(--field-bg-start);
    background-image:
      repeating-linear-gradient(to right, var(--field-line) 0 1px, transparent 1px var(--field-cell)),
      repeating-linear-gradient(to bottom, var(--field-line) 0 1px, transparent 1px var(--field-cell)),
      linear-gradient(120deg, var(--field-bg-start), var(--field-bg-end));
  }
  .signal-field::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 2;
    background:
      linear-gradient(90deg, color-mix(in srgb, var(--field-veil-bg-start) 90%, transparent) 0%, color-mix(in srgb, var(--field-veil-bg-end) 22%, transparent) 100%),
      linear-gradient(180deg, color-mix(in srgb, var(--field-veil-bg-start) 10%, transparent) 0%, color-mix(in srgb, var(--field-veil-bg-end) 42%, transparent) 100%);
    pointer-events: none;
  }
  .signal-field svg {
    /* Curves sit in the lower band of the screen; the grid fills the space
       above them. */
    position: absolute;
    inset: auto 0 0 0;
    z-index: 1;
    width: 100%;
    height: 60vh;
  }
  .field-veils {
    opacity: calc(0.72 * var(--field-curve-gain));
    transform-box: fill-box;
    transform-origin: center;
    animation: field-veil-drift 24s ease-in-out infinite alternate;
  }
  .field-veil {
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
    vector-effect: non-scaling-stroke;
  }
  .field-veil--one {
    stroke: color-mix(in srgb, var(--field-veil-one) 42%, transparent);
    stroke-width: 2;
    opacity: 0.46;
  }
  .field-veil--two {
    stroke: color-mix(in srgb, var(--field-veil-two) 15%, transparent);
    stroke-width: 1.2;
    opacity: 0.72;
  }
  .field-veil--three {
    stroke: color-mix(in srgb, var(--field-veil-three) 34%, transparent);
    stroke-width: 1.6;
    opacity: 0.42;
  }
  .field-wave {
    fill: none;
    stroke-linecap: round;
    stroke-linejoin: round;
    transform-box: fill-box;
    transform-origin: center;
    vector-effect: non-scaling-stroke;
  }
  .field-wave--one {
    stroke: url("#field-wave");
    stroke-width: 7;
    opacity: calc(0.72 * var(--field-curve-gain));
    animation: field-wave-primary 18s ease-in-out infinite alternate;
  }
  .field-wave--two {
    stroke: var(--field-wave-two);
    stroke-width: 2.5;
    opacity: calc(0.42 * var(--field-curve-gain));
    animation: field-wave-secondary 22s ease-in-out infinite alternate;
  }
  .field-wave--three {
    stroke: var(--field-wave-three);
    stroke-width: 3;
    opacity: calc(0.4 * var(--field-curve-gain));
    animation: field-wave-tertiary 26s ease-in-out infinite alternate;
  }
  .signal-field span {
    position: absolute;
    z-index: 1;
    inset: calc(var(--y) * 1%) auto auto calc(var(--x) * 1%);
    inline-size: calc(var(--s) * 1px);
    block-size: calc(var(--s) * 1px);
    border: 1px solid var(--field-dot-border);
    background: var(--field-dot-fill);
    animation: pulse 2200ms ease-in-out infinite;
    animation-delay: var(--d);
  }

  .standard-grid,
  .domain-grid,
  .sector-grid,
  .case-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    border: 1px solid var(--line);
    background: var(--line);
  }

  .standard-card,
  .domain-card,
  .sector-card,
  .case-card {
    display: grid;
    gap: 0.75rem;
    min-height: 100%;
    padding: clamp(1rem, 2vw, 1.35rem);
    border: 1px solid var(--card-border);
    background: color-mix(in srgb, var(--bg-elevated) 94%, transparent);
  }
  .standard-card span {
    color: var(--brass);
    font: 700 0.86rem / 1 var(--font-label);
    letter-spacing: 0;
  }
  .standard-card p,
  .domain-card p,
  .sector-card p,
  .case-card p {
    margin: 0;
  }

  .rect-enter-window {
    display: block;
  }
  .rect-enter-window--above {
    padding-block-end: var(--space-l);
  }
  .rect-enter-window--above .section-heading {
    margin-block-end: 0;
  }
  .library-section .rect-enter-window--below {
    padding-block-start: 1rem;
  }
  .library-controls {
    display: grid;
    grid-template-columns: minmax(260px, 1.3fr) repeat(3, minmax(150px, 0.55fr));
    gap: 1px;
    margin-block-end: 1rem;
    border: 1px solid var(--line);
    background: var(--line);
  }
  .library-section .library-controls {
    margin-block-end: 0;
  }
  [data-rect-enter] .rect-enter-window,
  [data-rect-exit] .rect-enter-window {
    overflow: clip;
  }
  [data-rect-enter] .library-controls,
  [data-rect-enter] .standard-grid,
  [data-rect-enter] .domain-grid,
  [data-rect-enter] .sector-grid,
  [data-rect-exit] .library-controls,
  [data-rect-exit] .standard-grid,
  [data-rect-exit] .domain-grid,
  [data-rect-exit] .sector-grid {
    position: relative;
    z-index: 3;
  }
  [data-rect-enter] .rect-enter-content,
  [data-rect-exit] .rect-enter-content {
    position: relative;
    z-index: 1;
    will-change: transform;
  }
  [data-rect-enter="pending"] .rect-enter-content {
    transform: translateY(var(--rect-enter-y, 90px));
  }
  [data-rect-enter="running"] .rect-enter-content {
    animation: rect-enter-slide var(--rect-enter-duration, 760ms) linear both;
  }
  [data-rect-exit="running"] .rect-enter-content {
    animation: rect-enter-slide var(--rect-enter-duration, 760ms) linear reverse both;
  }
  [data-rect-shared-source] .library-controls,
  [data-rect-shared-target] .library-controls,
  [data-rect-shared-source] .standard-grid,
  [data-rect-shared-target] .standard-grid,
  [data-rect-shared-source] .domain-grid,
  [data-rect-shared-target] .domain-grid,
  [data-rect-shared-source] .sector-grid,
  [data-rect-shared-target] .sector-grid,
  [data-rect-shared-source] .contact__panel,
  [data-rect-shared-target] .contact__panel {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
  .rect-shared-proxy {
    position: fixed;
    inset-block-start: 0;
    inset-inline-start: 0;
    z-index: 35;
    overflow: hidden;
    pointer-events: none;
    transform-origin: 0 0;
    will-change: transform, width, height;
  }
  .rect-shared-proxy__clone {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0 !important;
    box-sizing: border-box;
    pointer-events: none;
  }
  .rect-shared-proxy__content {
    position: absolute;
    box-sizing: border-box;
    min-width: 0;
    min-height: 0;
    will-change: transform;
  }
  .rect-shared-proxy__clone--incoming {
    border-color: transparent !important;
    background: transparent !important;
    box-shadow: none !important;
  }
  .rect-shared-proxy[data-target-panel="contact"] .rect-shared-proxy__clone--outgoing {
    border-color: var(--line) !important;
    background: color-mix(in srgb, var(--bg-elevated) 80%, transparent) !important;
    box-shadow: none !important;
  }
  .rect-shared-proxy .library-controls {
    margin-block-end: 0;
  }
  label {
    display: grid;
    gap: 0.4rem;
    padding: 0.8rem;
    background: var(--bg-elevated);
    color: var(--text);
    font-weight: 700;
  }
  label span {
    color: var(--text-muted);
    font-family: var(--font-label);
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: uppercase;
  }
  input, select, textarea {
    width: 100%;
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
    background: var(--paper-strong);
    color: var(--text);
    padding: 0.72rem 0.78rem;
  }
  textarea { resize: vertical; }

  .library-status {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    gap: 1rem;
    margin-block: 1rem;
    color: var(--text-muted);
    font-family: var(--font-sans);
    font-size: 0.82rem;
  }
  .library-section .library-status {
    margin-block: 0 1rem;
  }
  .library-status .text-button {
    justify-self: end;
  }
  .research-pagination {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.35rem;
  }
  .pagination-button {
    appearance: none;
    display: inline-grid;
    place-items: center;
    min-inline-size: 2rem;
    min-block-size: 2rem;
    padding: 0.2rem 0.55rem;
    border: 1px solid var(--line);
    border-radius: var(--radius-sm);
    background: transparent;
    color: var(--text-muted);
    font-weight: 800;
    line-height: 1;
    cursor: pointer;
  }
  .pagination-button:hover {
    border-color: var(--teal);
    color: var(--teal-strong);
  }
  .pagination-button[aria-current="page"] {
    border-color: var(--teal-strong);
    background: var(--teal-strong);
    color: var(--paper-strong);
    cursor: default;
    opacity: 1;
  }

  .research-grid {
    --research-card-height: 31.2rem;
    position: relative;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    overflow: hidden;
    border: 0;
    background: transparent;
    view-transition-name: research-grid;
  }
  .research-grid[data-page-animating="true"] {
    display: block;
  }
  .research-grid__track {
    position: absolute;
    inset: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1px;
    will-change: transform;
  }
  research-card {
    display: block;
    container-type: inline-size;
  }
  .research-card {
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto auto;
    height: var(--research-card-height);
    min-height: 0;
    color: inherit;
    text-decoration: none;
    border: 1px solid var(--card-border);
    background: var(--bg-elevated);
    transition:
      background-color 160ms ease,
      border-color 160ms ease,
      box-shadow 160ms ease,
      transform 160ms ease;
  }
  .research-card:hover,
  .research-card:focus-visible {
    border-color: color-mix(in srgb, var(--teal) 55%, var(--card-border));
    background: color-mix(in srgb, var(--bg-elevated) 90%, var(--teal) 10%);
    box-shadow: 0 12px 26px rgb(17 21 26 / 10%);
    transform: translateY(-1px);
  }
  .research-card__body,
  .research-card__spec,
  .research-card__tags {
    padding: 0.85rem;
  }
  .research-card__body {
    overflow: hidden;
  }
  .research-card__tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
  }
  .research-card__tags span {
    color: var(--text-muted);
    font: 700 0.74rem / 1 var(--font-label);
    letter-spacing: 0;
    text-transform: uppercase;
  }
  .research-card__topic {
    margin: 0 0 0.45rem;
    color: var(--teal-strong);
    font: 700 0.82rem / 1.2 var(--font-label);
    letter-spacing: 0;
    text-transform: uppercase;
  }
  .research-card__body p {
    margin-block-end: 0;
  }
  .research-card__body h3 {
    font-size: 1rem;
    line-height: 1.16;
  }
  .research-card__body p:not(.research-card__topic) {
    font-size: 0.9rem;
    line-height: 1.46;
    text-align: justify;
    text-align-last: left;
    hyphens: auto;
  }
  .research-card__spec {
    display: grid;
    gap: 0;
    margin: 0;
    border-block: 1px solid var(--line);
  }
  .research-card__spec div {
    display: grid;
    grid-template-columns: 92px 1fr;
    gap: 0.7rem;
    padding-block: 0.5rem;
    border-block-start: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
  }
  .research-card__spec div:first-child { border-block-start: 0; }
  .research-card__spec dt {
    color: var(--text-muted);
    font: 700 0.72rem / 1.2 var(--font-label);
    letter-spacing: 0;
    text-transform: uppercase;
  }
  .research-card__spec dd {
    margin: 0;
    color: var(--text);
    font-size: 0.86rem;
    line-height: 1.35;
  }
  .empty-state {
    grid-column: 1 / -1;
    padding: var(--space-l);
    background: var(--bg-elevated);
  }

  .method-list {
    display: grid;
    gap: 1px;
    margin: 0;
    padding: 0;
    border: 1px solid var(--line);
    background: var(--line);
    list-style: none;
  }
  .method-list li {
    display: grid;
    grid-template-columns: 64px 1fr;
    gap: 1rem;
    padding: 1.15rem;
    background: var(--bg-elevated);
  }
  .method-list li > span {
    color: var(--brass);
    font: 900 var(--step-1) / 1 var(--font-mono);
  }
  .method-list p { margin-block-end: 0; }

  .case-card__stat {
    color: var(--brass);
    font: 900 var(--step-3) / 0.95 var(--font-mono);
  }
  .case-card > span {
    color: var(--text-muted);
    font: 700 0.82rem / 1.3 var(--font-label);
    letter-spacing: 0;
    text-transform: uppercase;
  }

  .contact__panel {
    display: grid;
    grid-template-columns: minmax(0, 0.85fr) minmax(300px, 0.65fr);
    gap: var(--space-l);
    padding: clamp(1rem, 3vw, 2rem);
    border: 1px solid var(--line);
    background:
      linear-gradient(90deg, color-mix(in srgb, var(--ink) 8%, transparent) 1px, transparent 1px),
      linear-gradient(color-mix(in srgb, var(--ink) 8%, transparent) 1px, transparent 1px),
      var(--bg-elevated);
    background-size: 56px 56px;
  }
  .contact-form {
    display: grid;
    gap: 1px;
    border: 1px solid var(--line);
    background: var(--line);
  }
  .contact-form .button {
    margin: 0.8rem;
  }
  .form-note {
    min-height: 1.4em;
    margin: 0;
    padding: 0 0.8rem 0.8rem;
    background: var(--bg-elevated);
    font-size: 0.92rem;
  }
  .form-note:empty {
    display: none;
  }
}

@layer reports {
  .report-view:not([hidden]) {
    display: block;
    padding-block: calc(var(--header-height) + var(--space-l)) var(--space-xl);
  }
  .inline-report-stage {
    --report-barrier-top: calc(var(--header-height) + 1rem);
    --report-scrollbar-rail: 24px;
    position: fixed;
    inset: 0;
    z-index: 50;
    overflow: hidden;
    pointer-events: none;
    visibility: hidden;
    clip-path: polygon(
      calc(100% - var(--report-scrollbar-rail)) 0,
      100% 0,
      100% 100%,
      0 100%,
      0 var(--report-barrier-top),
      calc(100% - var(--report-scrollbar-rail)) var(--report-barrier-top),
      calc(100% - var(--report-scrollbar-rail)) 0
    );
  }
  .inline-report-stage[data-active="true"],
  .inline-report-stage[data-transitioning="true"] {
    pointer-events: auto;
    visibility: visible;
  }
  .inline-report-pane {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scroll-padding-block-start: var(--report-barrier-top);
    scrollbar-gutter: stable;
    will-change: transform;
  }
  html[data-js="true"][data-deck="true"] body.landing-page[data-inline-report-active="true"]:not([data-inline-report-transitioning="true"]) main > .deck-section {
    visibility: hidden;
  }
  @media (max-width: 920px) {
    .inline-report-stage {
      --report-barrier-top: 8.65rem;
    }
  }
  .report-shell { display: grid; gap: var(--space-l); }
  .report-hero {
    display: grid;
    gap: var(--space-m);
    padding: var(--space-l);
    border: 1px solid var(--line);
    background: var(--bg-elevated);
  }
  .report-hero__top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
  }
  .report-hero__top .eyebrow {
    margin: 0;
  }
  .report-back-link {
    flex: 0 0 auto;
    color: var(--teal-strong);
  }
  .report-hero h1 { max-width: 18ch; }
  .report-hero .hero__lede {
    color: var(--text-muted);
  }
  .report-hero dl {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 1px;
    margin: 0;
    border: 1px solid var(--line);
    background: var(--line);
  }
  .report-hero dl div {
    padding: 0.85rem;
    background: var(--paper-strong);
  }
  .report-hero dt {
    color: var(--text-muted);
    font: 700 0.76rem / 1.2 var(--font-label);
    letter-spacing: 0;
    text-transform: uppercase;
  }
  .report-hero dd {
    margin: 0.2rem 0 0;
    color: var(--text);
    font-weight: 700;
  }
  .report-layout {
    display: grid;
    grid-template-columns: minmax(220px, 0.34fr) 1fr;
    gap: var(--space-l);
    align-items: start;
  }
  .report-aside {
    position: sticky;
    inset-block-start: 6.5rem;
    display: grid;
    gap: 1rem;
  }
  .report-aside nav,
  .download-card {
    display: grid;
    gap: 0.55rem;
    padding: 0.85rem;
    border: 1px solid var(--line);
    background: var(--bg-elevated);
  }
  .report-aside nav strong,
  .download-card span {
    color: var(--teal-strong);
    font: 700 0.68rem / 1 var(--font-label);
    letter-spacing: 0;
    text-transform: uppercase;
  }
  .report-aside nav a {
    color: var(--text-muted);
    font-size: 0.82rem;
    line-height: 1.25;
    text-decoration: none;
  }
  .report-aside nav a:hover { color: var(--text); }
  .download-card strong {
    color: var(--brass);
    font: 900 1rem / 1 var(--font-mono);
  }
  .download-card p {
    margin: 0;
    font-size: 0.8rem;
    line-height: 1.35;
  }
  .download-card .button {
    min-height: 34px;
    padding: 0.45rem 0.62rem;
    font-size: 0.78rem;
  }
  .report-content {
    display: grid;
    gap: var(--space-l);
    min-width: 0;
  }
  .report-text-box {
    display: grid;
    gap: var(--space-l);
    min-width: 0;
    padding: var(--space-l);
    border: 1px solid var(--line);
    background: color-mix(in srgb, var(--bg-elevated) 75%, transparent);
  }
  .report-content section {
    display: grid;
    gap: 1rem;
    padding-block-end: var(--space-l);
    border-block-end: 1px solid var(--line);
  }
  .report-content section:last-of-type { border-block-end: 0; }
  .report-content h2 {
    max-width: 22ch;
    font-size: var(--step-2);
  }
  .report-content p { color: var(--text); }
  .report-list {
    display: grid;
    gap: 0.55rem;
    padding-inline-start: 1.1rem;
  }

  .chart-card {
    padding: 1rem;
    border: 1px solid var(--line);
    background: var(--paper-strong);
    overflow-x: auto;
  }
  .chart-grid path {
    stroke: color-mix(in srgb, var(--text) 15%, transparent);
    stroke-width: 1;
  }
  .chart-line {
    fill: none;
    stroke-width: 7;
    stroke-linecap: round;
  }
  .chart-line--one { stroke: var(--chart-one); }
  .chart-line--two { stroke: var(--chart-two); }
  .chart-line--three { stroke: var(--chart-three); }
  .chart-card figcaption {
    margin-block-start: 0.7rem;
    color: var(--text-muted);
    font-size: 0.95rem;
    line-height: 1.5;
  }
  .chart-card figcaption strong { color: var(--text); }
  .fig-svg {
    width: 100%;
    height: auto;
    font-family: var(--font-sans);
  }
  .fig-grid {
    stroke: color-mix(in srgb, var(--text) 12%, transparent);
    stroke-width: 1;
    fill: none;
  }
  .fig-frame {
    fill: none;
    stroke: color-mix(in srgb, var(--text) 22%, transparent);
    stroke-width: 1;
  }
  .fig-ref {
    stroke: color-mix(in srgb, var(--brass) 70%, transparent);
    stroke-width: 1.4;
    stroke-dasharray: 5 5;
    fill: none;
  }
  .fig-ref-label {
    fill: var(--brass);
    font: 700 10px / 1 var(--font-mono);
    text-anchor: end;
  }
  .fig-zero {
    stroke: color-mix(in srgb, var(--text) 35%, transparent);
    stroke-width: 1.4;
    fill: none;
  }
  .fig-split,
  .fig-quintile,
  .fig-ci,
  .fig-mean {
    stroke: color-mix(in srgb, var(--text) 40%, transparent);
    stroke-width: 1.5;
    fill: none;
  }
  .fig-mean { stroke-dasharray: 4 4; }
  .fig-line {
    fill: none;
    stroke-width: 2.2;
    stroke-linecap: round;
    stroke-linejoin: round;
  }
  .fig-line-one {
    fill: none;
    stroke: var(--chart-one);
    stroke-width: 2.4;
    stroke-linecap: round;
    stroke-linejoin: round;
  }
  .fig-title {
    fill: var(--text);
    font: 700 12.5px / 1 var(--font-sans);
    text-anchor: middle;
  }
  .fig-axis-y,
  .fig-axis-x {
    fill: var(--text-muted);
    font: 500 10.5px / 1 var(--font-mono);
  }
  .fig-axis-y { text-anchor: end; }
  .fig-axis-x { text-anchor: middle; }
  .fig-axis-label {
    fill: var(--text-muted);
    font: 700 10.5px / 1 var(--font-sans);
    text-anchor: middle;
  }
  .fig-value {
    fill: var(--text);
    font: 700 11px / 1 var(--font-mono);
    text-anchor: middle;
  }
  .fig-value-sm {
    fill: var(--text-muted);
    font: 600 9.5px / 1 var(--font-mono);
    text-anchor: middle;
  }
  .fig-legend {
    fill: var(--text-muted);
    font: 600 10.5px / 1 var(--font-sans);
    dominant-baseline: middle;
  }
  .fig-band {
    fill: var(--chart-down);
    opacity: 0.22;
    stroke: none;
  }
  .fig-anno {
    fill: var(--text-muted);
    font: 600 10px / 1.3 var(--font-mono);
    text-anchor: start;
  }
  .fig-forest-label {
    fill: var(--text);
    font: 600 10px / 1 var(--font-mono);
    text-anchor: end;
  }
  .fig-cell-text {
    fill: var(--text);
    font: 700 12.5px / 1 var(--font-mono);
    text-anchor: middle;
  }
  .fig-cell-label {
    fill: var(--text-muted);
    font: 600 11px / 1 var(--font-sans);
  }

  .fig-table {
    width: 100%;
    margin: 0;
    border-collapse: collapse;
    font-size: 0.92rem;
  }
  .fig-table th,
  .fig-table td {
    padding: 0.55rem 0.7rem;
    border-block-end: 1px solid var(--line);
    text-align: left;
  }
  .fig-table thead th {
    color: var(--teal-strong);
    font: 700 0.76rem / 1.2 var(--font-label);
    letter-spacing: 0;
    text-transform: uppercase;
  }
  .fig-table tbody th {
    color: var(--text);
    font-weight: 700;
  }
  .fig-table tbody th code {
    color: var(--text);
    font: 700 0.86rem / 1 var(--font-mono);
  }
  .fig-table td.num,
  .fig-table th.num {
    font-family: var(--font-mono);
    text-align: right;
    white-space: nowrap;
  }
  .fig-table td.pos { color: var(--teal-strong); }
  .fig-table td.neg { color: var(--oxide); }
  .fig-table tbody tr:last-child th,
  .fig-table tbody tr:last-child td { border-block-end: 0; }
  .fig-table--cost,
  .fig-table--data { font-size: 0.88rem; }
  .fig-table--cost th,
  .fig-table--cost td,
  .fig-table--data th,
  .fig-table--data td { padding: 0.45rem 0.6rem; }
  .chart-card--table { padding: 1rem 1rem 0.8rem; }
  .fig-table-title {
    margin: 0 0 0.55rem;
    color: var(--text);
    font: 700 0.96rem / 1.3 var(--font-sans);
  }

  .report-prose { display: grid; gap: 0.95rem; }
  .report-prose p { margin: 0; color: var(--text); }
  .report-prose strong { color: var(--text); }
  .report-prose em { font-style: italic; }
  .report-callout {
    display: grid;
    gap: 0.55rem;
    margin: 0.3rem 0 0.1rem;
    padding: 0.95rem 1.1rem;
    border-left: 3px solid var(--teal);
    background: color-mix(in srgb, var(--teal) 8%, transparent);
    color: var(--text);
  }
  .report-callout p { margin: 0; }
  .report-callout p:first-child {
    color: var(--teal-strong);
    font: 700 0.82rem / 1.2 var(--font-label);
    letter-spacing: 0;
    text-transform: uppercase;
  }

  .eq-block {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: 1rem;
    padding: 0.7rem 1rem;
    margin: 0.4rem 0 0.2rem;
    border-left: 3px solid var(--teal);
    background: var(--bg-elevated);
    overflow-x: auto;
  }
  .eq-content {
    color: var(--text);
    font-family: var(--font-display);
    font-size: 1.04rem;
    line-height: 1.4;
    text-align: center;
  }
  .eq-num {
    color: var(--text-muted);
    font: 600 0.85rem / 1 var(--font-mono);
  }
  .eq-content i,
  .eq-content var { font-style: italic; }
  .eq-content sub,
  .eq-content sup { font-size: 0.66em; }
  .eq-content sub { vertical-align: -0.3em; }
  .eq-content sup { vertical-align: 0.6em; }
  .eq-content .op {
    padding: 0 0.18em;
    color: var(--text-muted);
  }
  .eq-content .frac {
    display: inline-grid;
    justify-items: center;
    padding: 0 0.2em;
    vertical-align: middle;
  }
  .eq-content .frac > span:first-child {
    border-bottom: 1px solid currentColor;
    padding: 0 0.4em 0.05em;
  }
  .eq-content .frac > span:last-child { padding-top: 0.05em; }
  .eq-content .indic { font-size: 0.95em; }
  .eq-inline {
    display: inline-flex;
    align-items: baseline;
    padding: 0.05em 0.28em;
    background: color-mix(in srgb, var(--teal) 8%, transparent);
    font-family: var(--font-display);
    font-size: 0.98em;
  }
  .eq-inline i { font-style: italic; }
  .eq-inline sub,
  .eq-inline sup { font-size: 0.7em; }

  .related-research h2 { font-size: var(--step-2); }
  .research-grid--compact {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    view-transition-name: none;
  }
  .mini-card {
    display: grid;
    gap: 0.65rem;
    padding: 1rem;
    color: inherit;
    text-decoration: none;
    border: 1px solid var(--line);
    background: var(--bg-elevated);
    transition:
      background-color 160ms ease,
      border-color 160ms ease,
      box-shadow 160ms ease,
      transform 160ms ease;
  }
  .mini-card:hover,
  .mini-card:focus-visible {
    border-color: color-mix(in srgb, var(--teal) 55%, var(--line));
    background: color-mix(in srgb, var(--bg-elevated) 90%, var(--teal) 10%);
    box-shadow: 0 12px 26px rgb(17 21 26 / 10%);
    transform: translateY(-1px);
  }
  .mini-card span {
    color: var(--teal-strong);
    font: 700 0.8rem / 1.2 var(--font-label);
    letter-spacing: 0;
    text-transform: uppercase;
  }
  .mini-card h3,
  .mini-card p,
  .mini-card small { margin: 0; }
  .mini-card p,
  .mini-card small { color: var(--text-muted); }
}

@layer utilities {
  html[data-js="true"][data-deck="true"] body.landing-page .deck-section,
  html[data-js="true"][data-deck="true"] body.landing-page .deck-section h1,
  html[data-js="true"][data-deck="true"] body.landing-page .deck-section h2,
  html[data-js="true"][data-deck="true"] body.landing-page .deck-section h3 {
    color: var(--ink);
  }

  html[data-js="true"][data-deck="true"] body.landing-page .deck-section p,
  html[data-js="true"][data-deck="true"] body.landing-page .deck-section dd,
  html[data-js="true"][data-deck="true"] body.landing-page .section-heading p:last-child,
  html[data-js="true"][data-deck="true"] body.landing-page .mission-body p,
  html[data-js="true"][data-deck="true"] body.landing-page .research-card__spec dd {
    color: var(--text-muted);
  }

  html[data-js="true"][data-deck="true"] body.landing-page .deck-section .eyebrow,
  html[data-js="true"][data-deck="true"] body.landing-page .deck-section .panel-label,
  html[data-js="true"][data-deck="true"] body.landing-page .research-card__topic {
    color: var(--teal-strong);
  }

  html[data-js="true"][data-deck="true"] body.landing-page .mission-principle {
    color: var(--ink);
  }

  html[data-js="true"][data-deck="true"] body.landing-page .standard-card,
  html[data-js="true"][data-deck="true"] body.landing-page .domain-card,
  html[data-js="true"][data-deck="true"] body.landing-page .sector-card,
  html[data-js="true"][data-deck="true"] body.landing-page .research-card:not(:hover):not(:focus-visible),
  html[data-js="true"][data-deck="true"] body.landing-page .empty-state,
  html[data-js="true"][data-deck="true"] body.landing-page label,
  html[data-js="true"][data-deck="true"] body.landing-page .contact__panel {
    background: color-mix(in srgb, var(--bg-elevated) 80%, transparent);
  }

  html[data-js="true"][data-deck="true"] body.landing-page .standard-grid,
  html[data-js="true"][data-deck="true"] body.landing-page .domain-grid,
  html[data-js="true"][data-deck="true"] body.landing-page .sector-grid,
  html[data-js="true"][data-deck="true"] body.landing-page .library-controls,
  html[data-js="true"][data-deck="true"] body.landing-page .contact-form {
    border-color: var(--line);
    background: var(--line);
  }

  html[data-js="true"][data-deck="true"] body.landing-page .research-grid {
    border-color: var(--line);
    background: transparent;
  }

  html[data-js="true"][data-deck="true"] body.landing-page .research-card__spec {
    border-color: var(--line);
  }

  .reveal {
    opacity: 1;
    transform: none;
    transition: opacity 560ms ease, transform 560ms ease;
  }
  .reveal[data-visible="true"] {
    opacity: 1;
    transform: none;
  }

  @keyframes pulse {
    0%, 100% { transform: scale(0.85); opacity: 0.18; }
    50% { transform: scale(1.55); opacity: 0.48; }
  }

  @keyframes header-pop {
    from {
      opacity: 0;
      transform: translateY(-0.75rem);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }

  @keyframes rect-enter-slide {
    0% {
      transform: translateY(var(--rect-enter-y, 90px));
    }
    100% {
      transform: translateY(0);
    }
  }

  @keyframes field-wave-primary {
    0% { transform: translate3d(-0.45rem, 0.2rem, 0) scaleX(1); }
    100% { transform: translate3d(0.45rem, -0.25rem, 0) scaleX(1.012); }
  }

  @keyframes field-wave-secondary {
    0% { transform: translate3d(0.25rem, -0.3rem, 0) scaleX(0.996); }
    100% { transform: translate3d(-0.5rem, 0.22rem, 0) scaleX(1.01); }
  }

  @keyframes field-wave-tertiary {
    0% { transform: translate3d(-0.25rem, 0.18rem, 0) scaleY(1); }
    100% { transform: translate3d(0.4rem, -0.2rem, 0) scaleY(1.012); }
  }

  @keyframes field-veil-drift {
    0% { transform: translate3d(-0.35rem, 0.15rem, 0); }
    100% { transform: translate3d(0.5rem, -0.25rem, 0); }
  }

  @media (max-width: 980px) {
    .section-heading--split,
    .domain-grid,
    .sector-grid,
    .case-grid,
    .standard-grid,
    .research-grid,
    .research-grid--compact {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .library-controls {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .search-field {
      grid-column: 1 / -1;
    }
    .contact__panel,
    .report-layout {
      grid-template-columns: 1fr;
    }
    .report-aside {
      position: static;
    }
    .report-hero dl {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }
  }

  @media (max-width: 640px) {
    :root {
      --shell: min(100vw - 1.5rem, 1180px);
    }
    html[data-js="true"][data-deck="true"] body.landing-page {
      --deck-bottom-nav-space: 0.9rem;
    }
    h1 { max-width: 10ch; }
    h2 { max-width: 13ch; }
    .hero__inner {
      padding-block: calc(var(--header-height) + 2.4rem) 3rem;
    }
    html[data-js="true"][data-deck="true"] body.landing-page .deck-section {
      --deck-panel-top: var(--deck-barrier-top);
      --deck-panel-bottom: calc(0.65rem + var(--deck-bottom-nav-space));
      padding: 0.85rem;
    }
    html[data-js="true"][data-deck="true"] body.landing-page main {
      --deck-barrier-top: 8.5rem;
    }
    .inline-report-stage {
      --report-barrier-top: 8.5rem;
    }
    html[data-js="true"][data-deck="true"] body.landing-page .hero__inner {
      padding-block: 0;
    }
    html[data-js="true"][data-deck="true"] body.landing-page .hero h1 {
      max-width: 12ch;
      font-size: clamp(2.35rem, 10.5vw, 2.85rem);
    }
    html[data-js="true"][data-deck="true"] body.landing-page .hero .hero__lede {
      line-height: 1.48;
    }
    html[data-js="true"][data-deck="true"] body.landing-page .hero__actions {
      position: sticky;
      inset-block-end: 0;
      z-index: 5;
      gap: 0.55rem;
      margin-block-start: 0.85rem;
      padding-block: 0.65rem 0;
      background: linear-gradient(180deg, transparent, var(--field-bg-start) 42%);
    }
    html[data-js="true"][data-deck="true"] body.landing-page .hero__actions .button {
      min-height: 42px;
      padding: 0.64rem 0.8rem;
    }
    .hero::before {
      background: linear-gradient(180deg, rgb(17 21 26 / 92%) 0%, rgb(17 21 26 / 76%) 100%);
    }
    .hero-brief {
      display: none;
    }
    .section-heading--split,
    .domain-grid,
    .sector-grid,
    .case-grid,
    .standard-grid,
    .research-grid,
    .research-grid--compact,
    .library-controls,
    .report-hero dl,
    .research-card__spec div {
      grid-template-columns: 1fr;
    }
    .library-status {
      grid-template-columns: 1fr;
      align-items: start;
    }
    .library-status .text-button,
    .research-pagination {
      justify-self: start;
      justify-content: start;
    }
    .method-list li {
      grid-template-columns: 1fr;
    }
    .contact__panel {
      padding: 1rem;
    }
    .site-footer nav {
      gap: 0.7rem;
    }
    .header-actions {
      gap: 0.45rem;
    }
    .header-actions .button {
      flex: 1;
      min-width: 0;
      padding-inline: 0.55rem;
      white-space: normal;
    }
  }

  @media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
      animation-duration: 0.01ms !important;
      animation-iteration-count: 1 !important;
      scroll-behavior: auto !important;
      transition-duration: 0.01ms !important;
    }
    .reveal { opacity: 1; transform: none; }
    html[data-js="true"][data-deck="true"] body.landing-page .deck-section {
      transition: none;
    }
    .field-wave,
    .field-veils {
      animation: none !important;
      transform: none !important;
    }
  }

  @media (prefers-contrast: more) {
    :root { --line: currentColor; --border: currentColor; }
    .button { border-width: 2px; }
  }
}
