
/* ─────────────────────────────────────────────
   SINGULARITY DYNAMICS — Global Design System
   Structure modelled on the New Avenue Capital
   design system; institutional dark palette.
───────────────────────────────────────────── */


/* ─── 1. CSS CUSTOM PROPERTIES ───
   Palette lifted from the Singularity Dynamics deck:
   charcoal navy #1E2D3D / #0D1117, gold #C9A84C / #C9A227 / #E5C76B,
   light greys #F5F5F5 / #E8ECF0, slate text #4F5766 / #8896A6 / #A7B2BD */
:root {
  /* Colors */
  --c-ink:        #1E2D3D;   /* primary dark — nav, dark sections */
  --c-ink-2:      #26333F;   /* raised surfaces on dark */
  --c-ink-3:      #3A4A5C;   /* borders / hover on dark */
  --c-paper:      #F5F5F5;   /* light section background */
  --c-white:      #FFFFFF;
  --c-black:      #0D1117;   /* headings on light */
  --c-slate:      #4F5766;   /* body text on light */
  --c-mist:       #A7B2BD;   /* muted text on dark */
  --c-accent:     #8C6D1F;   /* deep gold — small text on light */
  --c-gold:       #C9A84C;   /* primary gold */
  --c-accent-dark:#A8861F;   /* gold hover */
  --c-accent-soft:#E5C76B;   /* gold on dark backgrounds */

  /* Typography */
  --f-display: 'Source Serif 4', Georgia, 'Times New Roman', serif;
  --f-base: 'Source Sans 3', system-ui, -apple-system, 'Segoe UI', sans-serif;

  --fs-display: clamp(29px, 4.7vw, 49px);
  --fs-headline: clamp(22px, 2.6vw, 32px);
  --fs-subhead: clamp(15.5px, 1.6vw, 19px);
  --fs-body: 15.5px;
  --fs-label: 11.5px;
  --fs-metric: clamp(33px, 3.8vw, 45px);
  --fs-caption: 12px;

  --ls-label: 0.16em;
  --ls-button: 0.1em;

  --lh-display: 1.08;
  --lh-headline: 1.22;
  --lh-body: 1.75;

  /* Layout */
  --nav-h: 68px;
  --section-v: 6rem;
  --section-h: 4rem;
  --max-w: 1180px;

  /* Dividers */
  --divider-light: 1px solid rgba(13, 17, 23, 0.1);
  --divider-dark:  1px solid rgba(255, 255, 255, 0.1);
}

/* ─── 2. RESET ─── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
[hidden] { display: none !important; }
html { scroll-behavior: smooth; }
body {
  font-family: var(--f-base);
  font-size: var(--fs-body);
  line-height: var(--lh-body);
  color: var(--c-slate);
  background: var(--c-ink);
  overflow-x: hidden;
}
img, svg { max-width: 100%; display: block; }
a { color: inherit; }
ul, ol { list-style: none; }
button { font-family: var(--f-base); }
table { border-collapse: collapse; width: 100%; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
  html { scroll-behavior: auto; }
}

/* ─── 3. TYPOGRAPHY ─── */
.display-headline {
  font-family: var(--f-display);
  font-size: var(--fs-display);
  font-weight: 700;
  line-height: 1.14;
  letter-spacing: 0.002em;
}
.section-headline {
  font-family: var(--f-display);
  font-size: var(--fs-headline);
  font-weight: 700;
  line-height: 1.28;
  color: var(--c-black);
  letter-spacing: 0.002em;
}
.section--ink .section-headline, .section--cta .section-headline { color: var(--c-white); }
.eyebrow {
  display: block;
  font-size: var(--fs-label);
  font-weight: 700;
  letter-spacing: var(--ls-label);
  text-transform: uppercase;
  color: var(--c-accent);
  margin-bottom: 1.1rem;
}
.section--ink .eyebrow, .section--cta .eyebrow { color: var(--c-accent-soft); }
.section-intro {
  max-width: 680px;
  margin-top: 1.4rem;
  font-size: var(--fs-subhead);
  line-height: 1.65;
}
.section--ink .section-intro { color: var(--c-mist); }
.body-text { font-size: var(--fs-body); line-height: var(--lh-body); }
.body-text + .body-text { margin-top: 1.2rem; }
.fine-print {
  font-size: var(--fs-caption);
  line-height: 1.6;
  color: rgba(69, 80, 106, 0.75);
}
.section--ink .fine-print { color: rgba(154, 166, 191, 0.7); }
.desktop-only { display: inline; }

/* ─── 4. BUTTONS ─── */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  font-family: var(--f-base);
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: var(--ls-button);
  text-transform: uppercase;
  text-decoration: none;
  padding: 17px 36px;
  border: 1.5px solid transparent;
  cursor: pointer;
  border-radius: 2px;
  transition: transform 0.2s cubic-bezier(0.22, 1, 0.36, 1), background 0.18s ease, border-color 0.18s ease, color 0.18s ease, box-shadow 0.2s ease;
  background: none;
  position: relative;
}
.btn:focus-visible { outline: 2px solid var(--c-gold); outline-offset: 3px; }
.btn:active { transform: translateY(1px) scale(0.99); }
.btn-primary {
  background: var(--c-gold);
  color: var(--c-black);
  border-color: var(--c-gold);
  box-shadow: 0 2px 14px rgba(201, 168, 76, 0.35);
}
.btn-primary:hover {
  background: var(--c-accent-dark);
  border-color: var(--c-accent-dark);
  color: var(--c-white);
  transform: translateY(-2px);
  box-shadow: 0 6px 22px rgba(201, 168, 76, 0.45);
}
.btn-secondary {
  background: transparent;
  color: var(--c-black);
  border-color: rgba(13, 17, 23, 0.4);
}
.btn-secondary:hover { border-color: var(--c-black); transform: translateY(-2px); }
.btn-ghost {
  background: transparent;
  color: var(--c-white);
  border-color: rgba(255, 255, 255, 0.45);
}
.btn-ghost:hover { border-color: var(--c-white); background: rgba(255,255,255,0.07); transform: translateY(-2px); }

/* ─── 5. NAVIGATION ─── */
.site-nav {
  background: rgba(20, 29, 39, 0.94);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  height: var(--nav-h);
  padding: 0 var(--section-h);
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: sticky;
  top: 0;
  z-index: 100;
  border-bottom: var(--divider-dark);
}
.nav-logo { display: flex; align-items: center; gap: 12px; text-decoration: none; }
.nav-logo .logo-img { height: 24px; width: auto; display: block; }
.site-footer .logo-img { height: 28px; }
.nav-wordmark {
  font-family: var(--f-base);
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--c-white);
  line-height: 1.3;
}
.nav-links { display: flex; align-items: center; gap: 2.4rem; }
.nav-links a {
  font-size: 12.5px;
  font-weight: 500;
  letter-spacing: 0.04em;
  text-decoration: none;
  color: var(--c-mist);
  transition: color 0.18s ease;
  padding: 6px 0;
}
.nav-links a:hover { color: var(--c-white); }
.nav-links a[aria-current="page"] { color: var(--c-white); box-shadow: 0 2px 0 var(--c-gold); }
.nav-links .nav-cta {
  color: var(--c-white);
  border: 1.5px solid rgba(201, 168, 76, 0.55);
  border-radius: 2px;
  padding: 9px 20px;
  font-family: var(--f-base);
  font-weight: 600;
  letter-spacing: 0.09em;
  text-transform: uppercase;
  font-size: 11.5px;
}
.nav-links .nav-cta:hover { border-color: var(--c-gold); background: rgba(201, 168, 76, 0.12); }
.nav-links a.nav-cta[aria-current="page"] { box-shadow: none; border-color: var(--c-gold); color: var(--c-white); background: rgba(201, 168, 76, 0.16); }
.nav-toggle { display: none; background: none; border: 0; cursor: pointer; padding: 10px; }
.nav-toggle span { display: block; width: 22px; height: 2px; background: var(--c-white); margin: 5px 0; transition: transform 0.25s ease, opacity 0.2s ease; }

/* ─── 6. SECTIONS ─── */
.section { padding: var(--section-v) var(--section-h); }
.section-inner { max-width: var(--max-w); margin: 0 auto; }
.section--ink   { background: var(--c-ink); color: var(--c-mist); }
.section--paper { background: var(--c-paper); color: var(--c-slate); }
.section--white { background: var(--c-white); color: var(--c-slate); }
.section--cta   { background: linear-gradient(140deg, #141D27 0%, #1E2D3D 55%, #26333F 100%); color: var(--c-mist); border-top: 2px solid var(--c-gold); }
.section-header { max-width: 780px; }

/* ─── 7. HERO ─── */
.hero-split {
  min-height: calc(100vh - var(--nav-h));
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
  background: #141D27;
  position: relative;
  overflow: hidden;
}
.hero-content {
  padding: clamp(3rem, 8vh, 6rem) var(--section-h);
  display: flex;
  flex-direction: column;
  justify-content: center;
  position: relative;
  z-index: 2;
  max-width: 720px;
  margin-left: auto;
  width: 100%;
}
.hero-split .hero-content { margin-left: calc(max(0px, (100vw - var(--max-w)) / 2 - var(--section-h))); }
.hero-headline { color: var(--c-white); }
.hero-headline .accent-line { color: var(--c-accent-soft); display: block; }
.hero-sub {
  margin-top: 1.6rem;
  font-size: var(--fs-subhead);
  line-height: 1.7;
  color: var(--c-mist);
  max-width: 540px;
}
.hero-ctas { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 2.6rem; }
.hero-visual {
  position: relative;
  min-height: 420px;
}
.hero-visual img {
  position: absolute; inset: 0;
  width: 100%; height: 100%;
  object-fit: cover;
}
.hero-visual::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #141D27 0%, rgba(20, 29, 39, 0.42) 28%, rgba(20, 29, 39, 0.08) 100%);
}

/* full-width photo band */
.photo-band { position: relative; height: clamp(260px, 42vh, 430px); overflow: hidden; background: var(--c-ink); }
.photo-band img { width: 100%; height: 100%; object-fit: cover; display: block; }
.photo-band::after {
  content: '';
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(180deg, rgba(20,29,39,0.3) 0%, rgba(20,29,39,0.05) 45%, rgba(20,29,39,0.5) 100%);
}
.photo-band-caption {
  position: absolute; bottom: 1.2rem; left: var(--section-h); z-index: 2;
  color: rgba(255, 255, 255, 0.85);
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}
.photo-band-caption::before { content: ''; display: inline-block; width: 22px; height: 2px; background: var(--c-gold); vertical-align: middle; margin-right: 10px; }
.hero-standard {
  background: linear-gradient(160deg, #141D27 0%, #1E2D3D 100%);
  padding: clamp(4.5rem, 12vh, 8rem) var(--section-h) clamp(3.5rem, 9vh, 6rem);
}
.hero-standard .section-inner { max-width: var(--max-w); }
.hero-standard h1,
.hero-standard .display-headline[role="heading"] { color: var(--c-white); max-width: 800px; }
.hero-standard .hero-sub { max-width: 640px; }

/* entrance animation */
[data-hero-anim].anim-ready { opacity: 0; transform: translateY(22px); transition: opacity 0.7s ease, transform 0.7s cubic-bezier(0.22, 1, 0.36, 1); }
[data-hero-anim].anim-in { opacity: 1; transform: translateY(0); }

/* ─── 8. REVEAL ─── */
/* Content is visible by default; the script opts in to the animation, so nothing
   depends on JS, an observer firing, or the reader having scrolled. */
.reveal { transition: opacity 0.75s ease, transform 0.75s cubic-bezier(0.22, 1, 0.36, 1); }
html.js-anim .reveal { opacity: 0; transform: translateY(26px); }
html.js-anim .reveal.is-visible { opacity: 1; transform: translateY(0); }

/* ─── 9. METRIC BAND / STAT GRIDS ─── */
.metric-band {
  background: var(--c-ink-2);
  border-top: var(--divider-dark);
  border-bottom: var(--divider-dark);
  padding: 2.8rem var(--section-h);
}
.metric-band-grid {
  max-width: var(--max-w);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
}
.metric { text-align: left; }
.metric-num {
  font-family: var(--f-display);
  font-size: var(--fs-metric);
  font-weight: 700;
  color: var(--c-white);
  line-height: 1.05;
  letter-spacing: -0.01em;
}
.metric-num .metric-unit { font-size: 0.55em; font-weight: 600; color: var(--c-accent-soft); }
.metric-label {
  margin-top: 0.55rem;
  font-size: 12.5px;
  font-weight: 500;
  color: var(--c-mist);
  line-height: 1.45;
}
.stat-cards {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.25rem;
  margin-top: 3rem;
}
.stat-card {
  background: var(--c-white);
  border: var(--divider-light);
  border-radius: 4px;
  padding: 1.8rem 1.6rem;
}
.section--white .stat-card { background: var(--c-paper); }
.section--ink .stat-card, .section--cta .stat-card {
  background: var(--c-ink-2);
  border: 1px solid rgba(255,255,255,0.08);
}
.stat-card-num {
  font-family: var(--f-display);
  font-size: clamp(28px, 3vw, 38px);
  font-weight: 700;
  color: var(--c-gold);
  line-height: 1.1;
}
.section--ink .stat-card-num, .section--cta .stat-card-num { color: var(--c-accent-soft); }
.stat-card-title {
  font-family: var(--f-display);
  font-size: 15.5px;
  font-weight: 600;
  color: var(--c-black);
  margin-top: 0.7rem;
}
.section--ink .stat-card-title, .section--cta .stat-card-title { color: var(--c-white); }
.stat-card p { font-size: 14px; line-height: 1.6; margin-top: 0.5rem; }
.stat-card .fine-print { margin-top: 0.7rem; }

/* ─── 10. NUMBERED CARDS / ARROW ROWS ─── */
.numbered-cards { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.25rem; margin-top: 3rem; }
.numbered-card {
  display: flex; gap: 1.4rem;
  background: var(--c-white);
  border: var(--divider-light);
  border-radius: 4px;
  padding: 1.9rem 1.8rem;
}
.section--ink .numbered-card { background: var(--c-ink-2); border: 1px solid rgba(255,255,255,0.08); }
.numbered-card-num {
  font-family: var(--f-display);
  font-size: 15.5px;
  font-weight: 700;
  color: var(--c-accent);
  flex: none;
  padding-top: 3px;
}
.section--ink .numbered-card-num { color: var(--c-accent-soft); }
.numbered-card-title {
  display: block;
  font-family: var(--f-display);
  font-size: 17px;
  font-weight: 600;
  color: var(--c-black);
  margin-bottom: 0.5rem;
}
.section--ink .numbered-card-title { color: var(--c-white); }
.numbered-card p { font-size: 14px; line-height: 1.68; }

.arrow-rows { margin-top: 2.8rem; border-top: var(--divider-light); }
.section--ink .arrow-rows, .section--cta .arrow-rows { border-top: var(--divider-dark); }
.arrow-row {
  display: grid;
  grid-template-columns: minmax(0, 0.9fr) 34px minmax(0, 1.1fr);
  gap: 1.2rem;
  align-items: baseline;
  padding: 1.35rem 0;
  border-bottom: var(--divider-light);
}
.section--ink .arrow-row, .section--cta .arrow-row { border-bottom: var(--divider-dark); }
.arrow-row-problem {
  font-family: var(--f-display);
  font-size: 15.5px;
  font-weight: 600;
  color: var(--c-black);
}
.section--ink .arrow-row-problem, .section--cta .arrow-row-problem { color: var(--c-white); }
.arrow-row-arrow { color: var(--c-accent); font-weight: 700; text-align: center; }
.section--ink .arrow-row-arrow, .section--cta .arrow-row-arrow { color: var(--c-accent-soft); }
.arrow-row-answer { font-size: 14px; }

/* ─── 11. TABLES ─── */
.data-table { margin-top: 3rem; overflow-x: auto; }
.data-table table { min-width: 640px; }
.data-table th {
  font-size: var(--fs-label);
  font-weight: 700;
  letter-spacing: var(--ls-label);
  text-transform: uppercase;
  text-align: left;
  color: var(--c-accent);
  padding: 0 1.2rem 0.9rem 0;
  border-bottom: 2px solid rgba(11,14,20,0.18);
}
.section--ink .data-table th { color: var(--c-accent-soft); border-bottom-color: rgba(255,255,255,0.22); }
.data-table td {
  padding: 1.15rem 1.2rem 1.15rem 0;
  border-bottom: var(--divider-light);
  font-size: 14px;
  line-height: 1.6;
  vertical-align: top;
}
.section--ink .data-table td { border-bottom: var(--divider-dark); }
.data-table td.cell-strong {
  font-family: var(--f-display);
  font-weight: 600;
  color: var(--c-black);
  font-size: 14px;
  white-space: nowrap;
}
.section--ink .data-table td.cell-strong { color: var(--c-white); }
.callout {
  margin-top: 2.6rem;
  padding: 1.6rem 1.9rem;
  border-left: 3px solid var(--c-gold);
  background: rgba(201, 168, 76, 0.09);
  font-size: 15.5px;
  line-height: 1.7;
  border-radius: 0 4px 4px 0;
}
.section--ink .callout, .section--cta .callout { background: rgba(201, 168, 76, 0.1); color: var(--c-mist); }
.callout strong { color: var(--c-black); font-weight: 600; }
.section--ink .callout strong, .section--cta .callout strong { color: var(--c-white); }

/* ─── 13. TEAM ─── */
.team-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; margin-top: 3rem; align-items: start; }
.team-card {
  background: var(--c-white);
  border: var(--divider-light);
  border-radius: 4px;
  overflow: hidden;
  text-align: center;
  padding-bottom: 0.5rem;
  transition: box-shadow .3s ease, transform .3s ease, border-color .3s ease;
}
.section--white .team-card { background: var(--c-paper); }
.team-card:hover { box-shadow: 0 14px 34px rgba(13,17,23,0.13); border-color: var(--c-gold); transform: translateY(-3px); }
.team-photo { width: 35%; aspect-ratio: 2 / 3; margin: 1.7rem auto 0; border-radius: 4px; overflow: hidden; background: linear-gradient(150deg, #26333F, #141D27); position: relative; }
.team-photo img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(18%); transition: filter .3s ease; }
.team-card:hover .team-photo img { filter: grayscale(0%); }
.team-photo-initials {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  font-family: var(--f-display);
  font-size: 30px; font-weight: 700; color: rgba(255,255,255,0.35);
  letter-spacing: 0.05em;
}
.team-card-body { padding: 1.1rem 1.4rem 0.5rem; }
.team-name { font-family: var(--f-display); font-size: 17px; font-weight: 700; color: var(--c-black); }
.team-title { font-size: var(--fs-label); font-weight: 700; letter-spacing: var(--ls-label); text-transform: uppercase; color: var(--c-accent); margin-top: 0.3rem; }
.team-card-body p {
  font-size: 12.5px; line-height: 1.6; color: var(--c-slate);
  max-height: 0; opacity: 0; overflow: hidden; margin-top: 0; padding-top: 0;
  transition: max-height .45s ease, opacity .35s ease, margin-top .35s ease, padding-top .35s ease;
}
.team-card:hover .team-card-body p {
  max-height: 260px; opacity: 1; margin-top: 0.9rem; padding-top: 0.9rem;
  border-top: 1px solid rgba(201,168,76,0.45);
}
@media (hover: none) {
  .team-card-body p { max-height: 260px; opacity: 1; margin-top: 0.9rem; padding-top: 0.9rem; border-top: 1px solid rgba(201,168,76,0.45); }
}
.team-teaser-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 1.1rem; margin-top: 2.8rem; }
.team-teaser-member { text-align: left; }
.team-teaser-photo { aspect-ratio: 1/1; border-radius: 4px; overflow: hidden; background: linear-gradient(150deg, #26333F, #141D27); position: relative; }
.team-teaser-photo img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(18%); }
.team-teaser-name { font-family: var(--f-display); font-size: 14px; font-weight: 600; color: var(--c-black); margin-top: 0.7rem; line-height: 1.3; }
.team-teaser-title { font-size: 11.5px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--c-accent); margin-top: 0.15rem; font-weight: 600; }

/* pillars */
.pillars { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; margin-top: 3rem; }
.pillar { background: var(--c-white); border: var(--divider-light); border-radius: 4px; padding: 1.9rem 1.8rem; }
.pillar-title { font-family: var(--f-display); font-size: 17px; font-weight: 700; color: var(--c-black); margin-bottom: 0.6rem; }
.pillar p { font-size: 14px; line-height: 1.68; }

/* sector grid */
.sector-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; margin-top: 3rem; }
.sector-cell {
  display: flex; gap: 1rem; align-items: flex-start;
  background: var(--c-paper);
  border: var(--divider-light);
  border-radius: 4px;
  padding: 1.3rem 1.4rem;
}
.sector-num { font-family: var(--f-display); font-size: 12.5px; font-weight: 700; color: var(--c-gold); flex: none; }
.sector-name { display: block; font-family: var(--f-base); font-size: 15.5px; font-weight: 700; color: var(--c-black); }
.sector-tag { display: block; font-size: 10.5px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--c-accent); font-weight: 700; margin-top: 0.3rem; }
.sector-cell p { font-size: 12.5px; line-height: 1.55; margin-top: 0.6rem; color: var(--c-slate); }

/* ─── 13b. RESEARCH LIBRARY ─── */
.lib-filters { display: flex; flex-wrap: wrap; gap: 0.6rem; margin-top: 2.6rem; }
.lib-filter {
  font-family: var(--f-base);
  font-size: 12.5px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--c-slate);
  background: transparent;
  border: 1px solid rgba(13, 17, 23, 0.25);
  border-radius: 999px;
  padding: 8px 18px;
  cursor: pointer;
  transition: all 0.18s ease;
}
.lib-filter:hover { border-color: var(--c-gold); color: var(--c-black); }
.lib-filter.is-active {
  background: var(--c-ink);
  border-color: var(--c-ink);
  color: var(--c-white);
}
.lib-filter.is-active::before { content: ''; display: inline-block; width: 7px; height: 7px; border-radius: 50%; background: var(--c-gold); margin-right: 8px; }
.lib-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; margin-top: 2.4rem; }
.lib-card {
  background: var(--c-white);
  border: var(--divider-light);
  border-radius: 4px;
  padding: 1.7rem 1.6rem;
  display: flex;
  flex-direction: column;
  transition: transform 0.2s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.2s ease;
}
.section--white .lib-card { background: var(--c-paper); }
.lib-card:hover { transform: translateY(-3px); box-shadow: 0 10px 28px rgba(13, 17, 23, 0.08); }
.lib-card.is-hidden { display: none; }
.lib-tag {
  font-size: 10.5px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--c-accent);
}
.lib-title {
  font-family: var(--f-display);
  font-size: 17px;
  font-weight: 700;
  color: var(--c-black);
  line-height: 1.3;
  margin-top: 0.65rem;
}
.lib-card p { font-size: 14px; line-height: 1.65; margin-top: 0.65rem; flex: 1; }
.lib-meta {
  margin-top: 1.1rem;
  padding-top: 0.9rem;
  border-top: var(--divider-light);
  font-size: 11.5px;
  letter-spacing: 0.04em;
  color: rgba(79, 87, 102, 0.75);
}
.lib-count { font-size: 12.5px; margin-top: 1.4rem; color: rgba(79, 87, 102, 0.8); }

/* ─── ARTICLES ─── */
a.lib-card { text-decoration: none; color: inherit; cursor: pointer; }
.lib-meta-link { color: var(--c-accent); font-weight: 700; border-top-color: rgba(201,168,76,0.35); }
[id^="page-ai-"], [id^="page-rb-"], [id^="page-qc-"], [id^="page-sc-"], [id^="page-av-"], [id^="page-sm-"], [id^="page-re-"], [id^="page-sp-"], [id^="page-hl-"], [id^="page-nu-"], [id^="page-io-"], [id^="page-cl-"] { background: var(--c-paper); min-height: 100vh; }
.article-wrap { max-width: 760px; margin: 0 auto; padding: 3.4rem 1.5rem 4.5rem; }
.article-back { display: inline-block; font-size: 12.5px; letter-spacing: 0.04em; color: var(--c-accent); font-weight: 600; text-decoration: none; margin-bottom: 1.8rem; }
.article-back:hover { color: var(--c-accent-dark); }
.article-hero { position: relative; height: 150px; border-radius: 6px; margin-bottom: 2rem; background: linear-gradient(135deg, #1E2D3D 0%, #0D1117 100%); overflow: hidden; display: flex; align-items: flex-end; padding: 1.2rem 1.4rem; }
.article-index { position: absolute; top: -0.3em; right: 0.12em; font-family: var(--f-display); font-size: 168px; font-weight: 700; line-height: 1; color: rgba(201,168,76,0.14); }
.article-kicker { position: relative; font-size: 11.5px; letter-spacing: 0.16em; text-transform: uppercase; font-weight: 700; color: var(--c-accent-soft); }
.article-title { font-family: var(--f-display); font-size: clamp(30px, 4.6vw, 44px); line-height: 1.12; color: var(--c-black); font-weight: 700; margin-top: 0.4rem; }
.article-dek { font-size: 17px; line-height: 1.5; color: var(--c-slate); margin-top: 1rem; font-weight: 400; }
.article-meta { font-size: 12.5px; letter-spacing: 0.03em; text-transform: uppercase; color: rgba(79,87,102,0.75); margin-top: 1.3rem; padding-bottom: 1.4rem; border-bottom: var(--divider-light); }
.article-body { margin-top: 1.8rem; }
.article-body p { font-size: 17px; line-height: 1.78; color: #2c3542; margin-bottom: 1.15rem; text-align: justify; -webkit-hyphens: auto; hyphens: auto; }
.article-h3 { font-family: var(--f-display); font-size: 21px; font-weight: 700; color: var(--c-black); margin: 2rem 0 0.8rem; }
.article-pull { border-left: 3px solid var(--c-gold); margin: 1.8rem 0; padding: 0.2rem 0 0.2rem 1.4rem; font-family: var(--f-display); font-size: 21px; line-height: 1.4; font-style: italic; color: var(--c-ink); }
.cite a { color: var(--c-accent); text-decoration: none; font-weight: 600; font-size: 0.72em; vertical-align: super; }
.cite a:hover { text-decoration: underline; }
.article-oneline { margin-top: 2.4rem; background: var(--c-paper); border: var(--divider-light); border-left: 3px solid var(--c-gold); border-radius: 4px; padding: 1.2rem 1.4rem; font-size: 15.5px; line-height: 1.6; color: var(--c-ink); }
.article-oneline-label { display: block; font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--c-accent); font-weight: 700; margin-bottom: 0.5rem; }
.article-refs { margin-top: 2.6rem; padding-top: 1.6rem; border-top: var(--divider-light); }
.article-refs-title { font-size: 12.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--c-slate); font-weight: 700; }
.article-refs ol { margin: 1rem 0 0; padding-left: 1.3rem; }
.article-refs li { font-size: 12.5px; line-height: 1.6; color: var(--c-slate); margin-bottom: 0.7rem; }
.ref-pub { font-weight: 600; color: var(--c-black); }
.article-refs a { color: var(--c-accent); text-decoration: none; font-weight: 600; white-space: nowrap; }
.article-refs a:hover { text-decoration: underline; }
.article-refs-note { font-size: 12.5px; color: rgba(79,87,102,0.8); margin-top: 1.2rem; font-style: italic; }
.article-cta-link { display: inline-block; margin-top: 2rem; font-size: 12.5px; letter-spacing: 0.08em; text-transform: uppercase; font-weight: 700; color: var(--c-accent); text-decoration: none; }
.article-cta-link:hover { color: var(--c-accent-dark); }
@media (max-width: 640px) {
  .article-wrap { padding: 2.4rem 1.2rem 3.5rem; }
  .article-index { font-size: 110px; }
  .article-body p { font-size: 15.5px; }
  .article-dek { font-size: 17px; }
}


/* ─── 15. CONTACT ─── */
.contact-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; margin-top: 3rem; }
.contact-card { background: var(--c-ink-2); border: 1px solid rgba(255,255,255,0.08); border-radius: 4px; padding: 1.9rem 1.8rem; }
.contact-card-label { font-size: var(--fs-label); font-weight: 700; letter-spacing: var(--ls-label); text-transform: uppercase; color: var(--c-accent-soft); margin-bottom: 0.7rem; }
.contact-card a { color: var(--c-white); text-decoration: none; font-family: var(--f-display); font-size: 17px; font-weight: 600; }
.contact-card a:hover { color: var(--c-accent-soft); }
.contact-card p { color: var(--c-mist); font-size: 14px; line-height: 1.7; }

/* ─── 16. FOOTER ─── */
.site-footer { background: #121C26; color: var(--c-mist); padding: 4.5rem var(--section-h) 2.5rem; border-top: var(--divider-dark); }
.footer-top {
  max-width: var(--max-w); margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1.4fr) minmax(0, 0.8fr) minmax(0, 1fr);
  gap: 3rem;
}
.footer-tagline { font-size: 14px; line-height: 1.7; margin-top: 1.1rem; max-width: 340px; }
.footer-heading { font-family: var(--f-display); font-size: var(--fs-label); font-weight: 700; letter-spacing: var(--ls-label); text-transform: uppercase; color: var(--c-white); margin-bottom: 1.1rem; }
.footer-col ul li { margin-bottom: 0.55rem; }
.footer-col a { font-size: 14px; text-decoration: none; color: var(--c-mist); transition: color 0.18s ease; }
.footer-col a:hover { color: var(--c-white); }
.footer-contact-label { font-size: 11.5px; letter-spacing: 0.1em; text-transform: uppercase; color: rgba(154,166,191,0.6); margin: 0.9rem 0 0.15rem; }
.footer-contact-label:first-of-type { margin-top: 0; }
.footer-legal {
  max-width: var(--max-w); margin: 3rem auto 0;
  padding-top: 2rem;
  border-top: var(--divider-dark);
  font-size: 11.5px;
  line-height: 1.75;
  color: rgba(154,166,191,0.65);
}
.footer-legal p + p { margin-top: 0.8rem; }
.footer-bottom {
  max-width: var(--max-w); margin: 2rem auto 0;
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: 1rem;
  font-size: 12.5px; color: rgba(154,166,191,0.75);
}

/* ─── 17. PAGE ROUTER ─── */
.page { display: none; }
.page.is-active { display: block; }

/* ─── 18. RESPONSIVE ─── */
@media (max-width: 1024px) {
  :root { --section-h: 2.2rem; --section-v: 4.5rem; }
  .hero-split { grid-template-columns: 1fr; }
  .hero-visual { min-height: 300px; order: -1; }
  .hero-visual::after { background: linear-gradient(180deg, rgba(20,29,39,0.15) 0%, rgba(20,29,39,0.05) 55%, #141D27 100%); }
  .hero-split .hero-content { margin-left: 0; }
  .photo-band-caption { left: var(--section-h); right: var(--section-h); }
  .metric-band-grid, .stat-cards { grid-template-columns: repeat(2, 1fr); }
  .team-grid { grid-template-columns: repeat(2, 1fr); }
  .lib-grid, .sector-grid { grid-template-columns: repeat(2, 1fr); }
  .team-teaser-grid { grid-template-columns: repeat(3, 1fr); }
  .footer-top { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 720px) {
  .desktop-only { display: none; }
  .nav-toggle { display: block; }
  .nav-logo .logo-img { height: 20px; }
  .nav-links {
    position: fixed;
    top: var(--nav-h); left: 0; right: 0;
    background: var(--c-ink);
    border-bottom: var(--divider-dark);
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
    padding: 0.6rem var(--section-h) 1.4rem;
    display: none;
  }
  .nav-links.is-open { display: flex; }
  .nav-links li { width: 100%; }
  .nav-links a { display: block; padding: 0.85rem 0; font-size: 15.5px; }
  .nav-links a[aria-current="page"] { box-shadow: none; color: var(--c-accent-soft); }
  .nav-links .nav-cta { border: 0; padding: 0.85rem 0; }
  .numbered-cards, .pillars, .contact-grid, .lib-grid, .sector-grid { grid-template-columns: 1fr; }
  .metric-band-grid, .stat-cards { grid-template-columns: 1fr 1fr; }
  .team-grid { grid-template-columns: 1fr; }
  .team-teaser-grid { grid-template-columns: repeat(2, 1fr); }
  .arrow-row { grid-template-columns: 1fr; gap: 0.3rem; }
  .arrow-row-arrow { display: none; }
  .footer-top { grid-template-columns: 1fr; gap: 2.2rem; }
}

/* ─── 12. INDEX PAGES: CHARTS & COMPOSITION ───
   Data-mark palette. Single-series nominal bars carry one hue (site ink);
   gold marks the one bar the caption is about (emphasis form).
   The venue stack is an ordinal one-hue navy ramp, onshore → offshore:
   #1E2D3D / #4A6480 / #94A7BA — monotone lightness, ΔL ≥ 0.06, light end 2.27:1
   on --c-paper. Values are directly labelled and every chart ships a table view,
   so nothing is gated behind colour. */
:root {
  --mark:        #1E2D3D;   /* primary data mark on light surfaces */
  --mark-accent: #8C6D1F;   /* emphasis mark — the bar the caption names */
  --mark-track:  rgba(30, 45, 61, 0.09);
  --mark-v1:     #1E2D3D;   /* venue ramp: A-share (onshore) */
  --mark-v2:     #4A6480;   /* venue ramp: Hong Kong */
  --mark-v3:     #94A7BA;   /* venue ramp: US ADR */
}

.figure { margin-top: 3rem; }
.figure-title {
  font-family: var(--f-display);
  font-size: 15.5px;
  font-weight: 600;
  color: var(--c-black);
  margin-bottom: 0.3rem;
}
.section--ink .figure-title { color: var(--c-white); }
.figure-sub { font-size: 14px; line-height: 1.6; color: var(--c-slate); margin-bottom: 1.9rem; }
.section--ink .figure-sub { color: var(--c-mist); }
.figure-note { margin-top: 1.4rem; }

/* ── Horizontal bar chart (nominal, one hue) ── */
.wbars { display: grid; gap: 0.75rem; }
.wbar { display: grid; grid-template-columns: minmax(120px, 168px) minmax(0, 1fr) 52px; gap: 0.9rem; align-items: center; }
.wbar-label { font-size: 12.5px; line-height: 1.35; color: var(--c-slate); }
.section--ink .wbar-label { color: var(--c-mist); }
.wbar-track { background: var(--mark-track); height: 18px; border-radius: 0 2px 2px 0; }
.section--ink .wbar-track { background: rgba(255,255,255,0.09); }
.wbar-fill {
  height: 18px;
  background: var(--mark);
  border-radius: 0 4px 4px 0;
  transform-origin: left center;
  transform: scaleX(0);
  transition: transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
  width: 100%;
}
.section--ink .wbar-fill { background: var(--c-accent-soft); }
.is-visible .wbar-fill, .wbar.is-visible .wbar-fill { transform: scaleX(1); }
.wbar[data-emphasis] .wbar-fill { background: var(--mark-accent); }
.section--ink .wbar[data-emphasis] .wbar-fill { background: var(--c-gold); }
.wbar[data-zero] .wbar-label, .wbar[data-zero] .wbar-val { opacity: 0.5; }
.wbar[data-zero] .wbar-track { background: repeating-linear-gradient(90deg, rgba(30,45,61,0.13) 0 4px, transparent 4px 8px); }
.wbar-val { font-size: 12.5px; font-variant-numeric: tabular-nums; font-weight: 600; color: var(--c-black); text-align: right; }
.section--ink .wbar-val { color: var(--c-white); }

/* ── Part-to-whole stacked bar (ordinal ramp) ── */
.stackbar { display: flex; gap: 2px; height: 34px; }
.stackbar span {
  display: flex; align-items: center; justify-content: center;
  font-size: 12.5px; font-weight: 600; color: #FFFFFF;
  font-variant-numeric: tabular-nums;
  overflow: visible; white-space: nowrap;
}
.stackbar span:first-child { border-radius: 2px 0 0 2px; }
.stackbar span:last-child { border-radius: 0 4px 4px 0; }
.stackbar .sb-1 { background: var(--mark-v1); }
.stackbar .sb-2 { background: var(--mark-v2); }
.stackbar .sb-3 { background: var(--mark-v3); color: var(--c-black); }
.chart-legend { display: flex; flex-wrap: wrap; gap: 1.2rem 1.7rem; margin-top: 1.2rem; }
.chart-legend span { display: flex; align-items: center; gap: 0.5rem; font-size: 12.5px; color: var(--c-slate); }
.section--ink .chart-legend span { color: var(--c-mist); }
.chart-legend i { width: 11px; height: 11px; border-radius: 2px; flex: none; }

/* ── Weight ladder (rank-ordered columns) ── */
.ladder { display: flex; align-items: stretch; gap: 2px; height: 186px; padding-top: 1.9rem; }
.ladder-col {
  flex: 1 1 0; min-width: 0; height: 100%; position: relative;
  display: flex; align-items: flex-end;
}
.ladder-col b {
  display: block; width: 100%; max-width: 24px; margin: 0 auto;
  background: var(--mark); border-radius: 4px 4px 0 0;
  transform-origin: bottom center; transform: scaleY(0);
  transition: transform 0.85s cubic-bezier(0.22, 1, 0.36, 1);
}
.is-visible .ladder-col b { transform: scaleY(1); }
.ladder-col[data-emphasis] b { background: var(--mark-accent); }
.ladder-col em {
  position: absolute; left: 50%; transform: translateX(-50%);
  font-size: 11.5px; font-style: normal; font-weight: 600;
  color: var(--mark-accent); white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
/* keep the two end labels inside the plot area at every width */
.ladder-col:first-child em { left: 0; transform: none; }
.ladder-col:last-child em { left: auto; right: 0; transform: none; }
.ladder-axis {
  display: flex; justify-content: space-between;
  border-top: var(--divider-light); margin-top: 0.5rem; padding-top: 0.5rem;
  font-size: 11.5px; letter-spacing: 0.08em; text-transform: uppercase; color: rgba(69,80,106,0.7);
}

/* ── Table view ── */
.table-view { margin-top: 1.5rem; }
.table-view summary {
  cursor: pointer; font-size: 12.5px; font-weight: 700;
  letter-spacing: var(--ls-label); text-transform: uppercase;
  color: var(--c-accent); list-style: none;
}
.section--ink .table-view summary { color: var(--c-accent-soft); }
.table-view summary::-webkit-details-marker { display: none; }
.table-view summary::before { content: '+ '; }
.table-view[open] summary::before { content: '– '; }
.table-view .data-table { margin-top: 1.1rem; }
.table-view .data-table table { min-width: 0; width: 100%; }
.table-view .data-table td, .table-view .data-table th { padding-right: 0.9rem; }
.table-view .data-table td.num { text-align: right; font-variant-numeric: tabular-nums; }
.table-view .data-table th.num { text-align: right; }

/* ── Index cross-link cards ── */
.idx-links { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; margin-top: 3rem; }
.idx-link {
  display: block; padding: 1.7rem 1.6rem; text-decoration: none;
  background: var(--c-white); border: var(--divider-light);
  border-top: 2px solid var(--c-gold); border-radius: 0 0 4px 4px;
  transition: transform 0.35s ease, box-shadow 0.35s ease;
}
.section--paper .idx-link { background: var(--c-white); }
.section--ink .idx-link { background: var(--c-ink-2); border-color: rgba(255,255,255,0.1); border-top-color: var(--c-gold); }
.idx-link:hover { transform: translateY(-3px); box-shadow: 0 14px 34px rgba(13,17,23,0.1); }
.idx-link-name { font-family: var(--f-display); font-size: 17px; font-weight: 600; color: var(--c-black); display: block; margin-bottom: 0.3rem; }
.section--ink .idx-link-name { color: var(--c-white); }
.idx-link-role { font-size: 11.5px; font-weight: 700; letter-spacing: var(--ls-label); text-transform: uppercase; color: var(--c-accent); display: block; margin-bottom: 0.9rem; }
.section--ink .idx-link-role { color: var(--c-accent-soft); }
.idx-link p { font-size: 14px; line-height: 1.65; color: var(--c-slate); }
.section--ink .idx-link p { color: var(--c-mist); }
.idx-link-more { display: block; margin-top: 1rem; font-size: 12.5px; font-weight: 600; letter-spacing: 0.04em; color: var(--c-accent); }
.section--ink .idx-link-more { color: var(--c-accent-soft); }

/* ── Spec strip: the four numbers that define an index ── */
.spec-strip { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.25rem; margin-top: 2.6rem; }
.spec { border-left: 2px solid var(--c-gold); padding-left: 1.1rem; }
.spec b { display: block; font-family: var(--f-display); font-size: clamp(20px, 2.2vw, 27px); font-weight: 600; color: var(--c-black); line-height: 1.15; }
.section--ink .spec b, .section--cta .spec b { color: var(--c-white); }
.spec span { display: block; margin-top: 0.4rem; font-size: 12.5px; line-height: 1.5; color: var(--c-slate); }
.section--ink .spec span, .section--cta .spec span { color: var(--c-mist); }

@media (max-width: 900px) {
  .idx-links, .spec-strip { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 620px) {
  .idx-links { grid-template-columns: 1fr; }
  .spec-strip { grid-template-columns: 1fr 1fr; }
  .wbar { grid-template-columns: minmax(0, 1fr) 46px; grid-template-areas: 'label label' 'track val'; }
  .wbar-label { grid-area: label; }
  .wbar-track { grid-area: track; }
  .wbar-val { grid-area: val; }
  .ladder { height: 138px; }
  .stackbar span { font-size: 11.5px; }
  .stackbar .sb-3 { font-size: 0; }
}

/* links inside body copy — .article-cta-link is a block CTA and carries a 2rem
   top margin, which breaks the line box when used mid-sentence */
.inline-link {
  color: var(--c-accent); font-weight: 600; text-decoration: none;
  border-bottom: 1px solid rgba(140, 109, 31, 0.45);
}
.inline-link:hover { color: var(--c-accent-dark); border-bottom-color: currentColor; }
.section--ink .inline-link, .section--cta .inline-link {
  color: var(--c-accent-soft); border-bottom-color: rgba(229, 199, 107, 0.45);
}


/* ─── 13. NAV DROPDOWN (INDICES) ─── */
.nav-has-sub { position: relative; }
.nav-has-sub > a { display: inline-flex; align-items: center; gap: 6px; }
.nav-caret { flex: none; transition: transform 0.2s ease; opacity: 0.8; }
.nav-has-sub:hover > a .nav-caret,
.nav-has-sub:focus-within > a .nav-caret { transform: rotate(180deg); }
/* keeps the pointer inside the menu while crossing the gap below the bar */
.nav-has-sub::after { content: ''; position: absolute; left: 0; right: 0; top: 100%; height: 16px; }
.nav-sub {
  position: absolute;
  top: calc(100% + 14px);
  left: -1.1rem;
  min-width: 216px;
  padding: 0.5rem 0;
  background: rgba(20, 29, 39, 0.98);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: var(--divider-dark);
  border-top: 2px solid var(--c-gold);
  border-radius: 0 0 3px 3px;
  box-shadow: 0 18px 40px rgba(5, 8, 12, 0.45);
  opacity: 0;
  visibility: hidden;
  transform: translateY(-7px);
  transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
  z-index: 110;
}
.nav-has-sub:hover .nav-sub,
.nav-has-sub:focus-within .nav-sub { opacity: 1; visibility: visible; transform: translateY(0); }
.nav-sub a { display: block; padding: 0.6rem 1.1rem; font-size: 12.5px; }
.nav-sub a:hover { background: rgba(201, 168, 76, 0.1); color: var(--c-white); }
.nav-sub a[aria-current="page"] { box-shadow: none; color: var(--c-accent-soft); background: rgba(201, 168, 76, 0.12); }
/* parent stays lit while one of its pages is open */
.nav-has-sub:has(.nav-sub a[aria-current="page"]) > a { color: var(--c-white); }

@media (max-width: 720px) {
  /* the dropdown flattens into the stacked mobile menu */
  .nav-has-sub::after { display: none; }
  .nav-sub {
    position: static; opacity: 1; visibility: visible; transform: none;
    min-width: 0; padding: 0 0 0.5rem; margin: 0;
    background: none; border: 0; box-shadow: none; backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
  .nav-sub a { padding: 0.6rem 0 0.6rem 1.1rem; font-size: 14px; border-left: 1px solid rgba(255,255,255,0.14); }
  .nav-sub a:hover { background: none; }
  .nav-sub a[aria-current="page"] { background: none; border-left-color: var(--c-gold); }
  .nav-caret { display: none; }
}

/* ─── 14. INDEX LEVEL TERMINAL ───
   Dark, data-dense market-data panel embedded in the light page: instrument
   header, quote bar, derived statistics, range and overlay controls, right-hand
   price axis, drawdown sub-panel, crosshair and status bar. Series hues are
   validated on the #0B0E14 surface (lightness band, chroma floor, CVD
   separation, normal-vision floor and 3:1 contrast all pass). */
:root {
  --term-bg:     #0B0E14;
  --term-bg-2:   rgba(255, 255, 255, 0.028);
  --term-line:   rgba(255, 255, 255, 0.14);
  --term-grid:   rgba(255, 255, 255, 0.07);
  --term-text:   #E6EAF2;
  --term-dim:    rgba(230, 234, 242, 0.52);
  --term-faint:  rgba(230, 234, 242, 0.34);
  --term-up:     #2FA36B;
  --term-down:   #C7503F;
  --term-mono:   ui-monospace, 'SF Mono', SFMono-Regular, Menlo, Consolas, 'Liberation Mono', monospace;
}

.figure--perf[hidden], [data-perf][hidden] { display: none !important; }

.perf { margin-top: 0.4rem; }
.perf-term {
  position: relative;
  background: var(--term-bg);
  border: 1px solid var(--term-line);
  border-radius: 2px;
  overflow: hidden;
  font-family: var(--term-mono);
  font-variant-numeric: tabular-nums;
}

/* ── instrument header ── */
.perf-head {
  display: flex; align-items: center; gap: 0.75rem;
  padding: 0.55rem 0.9rem;
  border-bottom: 1px solid var(--term-line);
  background: var(--term-bg-2);
}
.perf-idline { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.35rem 1.5rem; min-width: 0; }
.perf-inst { display: flex; align-items: baseline; gap: 0.4rem; white-space: nowrap; }
.perf-inst b { font-size: 12.5px; font-weight: 700; letter-spacing: 0.07em; }
.perf-inst-kind { font-size: 9.5px; letter-spacing: 0.12em; color: var(--term-faint); }
.perf-inst-name { font-size: 10.5px; color: var(--term-dim); letter-spacing: 0.03em; }
.perf-tag {
  margin-left: auto; flex: none;
  padding: 2px 7px; border-radius: 2px;
  background: rgba(201, 168, 76, 0.16);
  border: 1px solid rgba(201, 168, 76, 0.5);
  color: var(--c-accent-soft);
  font-size: 9.5px; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase;
}

/* ── quote bar + statistics ── */
.perf-quotebar {
  display: flex; flex-wrap: wrap; align-items: flex-end; gap: 0.9rem 2rem;
  padding: 0.75rem 0.9rem 0.8rem;
  border-bottom: 1px solid var(--term-line);
}
.perf-quote { display: flex; align-items: baseline; gap: 0.65rem; }
.perf-px { font-size: 26px; font-weight: 600; color: var(--term-text); line-height: 1; }
.perf-delta { font-size: 12.5px; font-weight: 600; }
.perf-delta span { margin-left: 0.25rem; }
.perf-delta.is-up { color: var(--term-up); }
.perf-delta.is-down { color: var(--term-down); }
.perf-ccy { font-size: 10.5px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--term-faint); }
.perf-stats { display: flex; flex-wrap: wrap; gap: 0.5rem 1.6rem; margin-left: auto; }
.perf-stats span { display: flex; flex-direction: column; gap: 2px; }
.perf-stats em {
  font-style: normal; font-size: 9px; letter-spacing: 0.13em;
  text-transform: uppercase; color: var(--term-faint);
}
.perf-stats b { font-size: 12.5px; font-weight: 600; color: var(--term-text); }

/* ── range + overlay controls ── */
.perf-tools {
  display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1rem;
  padding: 0.5rem 0.9rem;
  border-bottom: 1px solid var(--term-line);
  background: var(--term-bg-2);
}
.perf-ranges, .perf-toggles { display: flex; gap: 3px; }
.perf-toggles { margin-left: auto; }
.perf-btn {
  padding: 3px 9px;
  background: transparent;
  border: 1px solid var(--term-line);
  border-radius: 2px;
  color: var(--term-dim);
  font-family: var(--term-mono); font-size: 10.5px; font-weight: 600;
  letter-spacing: 0.1em; text-transform: uppercase;
  cursor: pointer;
  transition: color 0.15s ease, border-color 0.15s ease, background 0.15s ease;
}
.perf-btn:hover { color: var(--term-text); border-color: rgba(255, 255, 255, 0.3); }
.perf-btn.is-on {
  color: #0B0E14; background: var(--c-gold);
  border-color: var(--c-gold);
}
.perf-btn:focus-visible { outline: 2px solid var(--c-accent-soft); outline-offset: 1px; }

/* ── plot ── */
.perf-plot { position: relative; }
.perf-svg { width: 100%; height: auto; display: block; }
.perf-grid { stroke: var(--term-grid); stroke-width: 1; vector-effect: non-scaling-stroke; }
.perf-grid--edge { stroke: var(--term-line); }
.perf-tick { fill: var(--term-dim); font-family: var(--term-mono); font-size: 10.5px; font-variant-numeric: tabular-nums; }
.perf-sublabel {
  fill: var(--term-faint); font-family: var(--term-mono); font-size: 9px;
  letter-spacing: 0.14em;
}
.perf-line { fill: none; stroke-width: 1.6; stroke-linejoin: round; stroke-linecap: round; vector-effect: non-scaling-stroke; }
.perf-line--peer { stroke-width: 1.3; opacity: 0.9; }
.perf-ma { fill: none; stroke-width: 1.1; vector-effect: non-scaling-stroke; }
.perf-area { opacity: 0.13; }
.perf-dd-area { opacity: 0.18; }
.perf-dd-line { fill: none; stroke-width: 1.2; vector-effect: non-scaling-stroke; }
.perf-flagbox { rx: 1; }
.perf-flagtxt { font-family: var(--term-mono); font-size: 10.5px; font-weight: 700; fill: var(--term-bg); font-variant-numeric: tabular-nums; }
.perf-crosshair { stroke: rgba(255, 255, 255, 0.34); stroke-width: 1; vector-effect: non-scaling-stroke; }
.perf-dot { stroke: var(--term-bg); stroke-width: 1.5; vector-effect: non-scaling-stroke; }
.perf-datebox { fill: #2A3242; }
.perf-datetxt { font-family: var(--term-mono); font-size: 10.5px; fill: var(--term-text); font-variant-numeric: tabular-nums; }
.perf-hit { cursor: crosshair; }

/* ── key ── */
.perf-key {
  display: flex; flex-wrap: wrap; gap: 0.4rem 1.5rem;
  padding: 0.55rem 0.9rem;
  border-top: 1px solid var(--term-line);
  font-size: 10.5px; color: var(--term-dim);
}
.perf-key span { display: flex; align-items: center; gap: 0.45rem; }
.perf-key i { width: 14px; height: 2px; flex: none; }
.perf-key-ma { border-top: 2px solid rgba(230, 234, 242, 0.55); height: 0 !important; }
.perf-key em { font-style: normal; color: var(--term-faint); font-size: 9.5px; letter-spacing: 0.08em; }

/* ── status bar ── */
.perf-status {
  display: flex; flex-wrap: wrap; gap: 0.3rem 1.2rem;
  padding: 0.45rem 0.9rem;
  border-top: 1px solid var(--term-line);
  background: var(--term-bg-2);
  font-size: 9.5px; letter-spacing: 0.09em; text-transform: uppercase;
  color: var(--term-faint);
}
.perf-status-warn { color: var(--c-accent-soft); }
.perf-status-time { margin-left: auto; }

/* ── hover readout ── */
.perf-tip {
  position: absolute; top: 10px; pointer-events: none; z-index: 3;
  min-width: 190px; padding: 0.5rem 0.6rem;
  background: rgba(11, 14, 20, 0.97);
  border: 1px solid rgba(201, 168, 76, 0.45);
  font-size: 11.5px; line-height: 1.55;
  color: var(--term-dim); font-variant-numeric: tabular-nums;
}
.perf-tip em { display: block; font-style: normal; font-weight: 700; color: var(--term-text); margin-bottom: 0.3rem; letter-spacing: 0.05em; }
.perf-tip span { display: flex; align-items: center; gap: 0.45rem; }
.perf-tip i { width: 10px; height: 2px; flex: none; }
.perf-tip-dd { background: var(--term-faint); }
.perf-tip b { margin-left: auto; color: var(--term-text); }
.perf-tip u { text-decoration: none; min-width: 46px; text-align: right; }
.perf-tip u.is-up { color: var(--term-up); }
.perf-tip u.is-down { color: var(--term-down); }

/* ── caption and note sit below the panel, small ── */
.perf-caption {
  margin-top: 0.85rem;
  font-size: var(--fs-caption); line-height: 1.6;
  color: rgba(69, 80, 106, 0.85);
}
.perf-caption .perf-flag {
  display: inline-block; margin-right: 0.45rem; padding: 1px 6px;
  background: rgba(140, 109, 31, 0.14); border: 1px solid rgba(140, 109, 31, 0.4);
  color: var(--c-accent);
  font-size: 9.5px; font-weight: 700; letter-spacing: 0.13em; text-transform: uppercase;
  border-radius: 2px; vertical-align: 1px;
}
.figure--perf .table-view, .perf ~ .table-view { margin-top: 1.1rem; }

@media (max-width: 700px) {
  .perf-quotebar { gap: 0.7rem 1rem; }
  .perf-stats { margin-left: 0; width: 100%; gap: 0.5rem 1.1rem; }
  .perf-px { font-size: 21px; }
  .perf-toggles { margin-left: 0; }
  .perf-status-time { margin-left: 0; }
  .perf-inst-name { display: none; }
  .perf-tick { font-size: 9.5px; }
  .perf-btn { padding: 3px 7px; font-size: 9.5px; }
}

/* ─── 15. INDEX TAPE ───
   Persistent strip under the nav. The marquee is the only thing moving: the
   levels change when a new one is published, they are not simulated ticks. */
.tape {
  position: relative;
  background: var(--term-bg);
  border-bottom: 1px solid var(--term-line);
  overflow: hidden;
  font-family: var(--term-mono);
  font-variant-numeric: tabular-nums;
  z-index: 90;
}
.tape[hidden] { display: none !important; }
.tape-track { display: flex; width: max-content; }
.tape-run { display: flex; align-items: center; flex: none; }
.tape:not(.is-static) .tape-track { animation: tape-scroll 46s linear infinite; }
.tape:hover .tape-track, .tape:focus-within .tape-track { animation-play-state: paused; }
@keyframes tape-scroll { to { transform: translateX(-50%); } }

.tape-item {
  display: flex; align-items: center; gap: 0.5rem;
  padding: 0 1.5rem;
  border-right: 1px solid var(--term-grid);
  white-space: nowrap;
  font-size: 11.5px;
  line-height: 32px;
}
.tape-item b { font-weight: 700; letter-spacing: 0.07em; }
.tape-spark { width: 46px; height: 14px; overflow: visible; }
.tape-spark path { fill: none; stroke-width: 1.2; vector-effect: non-scaling-stroke; stroke-linejoin: round; }
.tape-px { color: var(--term-text); font-weight: 600; }
.tape-chg { display: flex; align-items: center; gap: 0.25rem; font-weight: 600; }
.tape-chg i { font-style: normal; font-size: 8px; }
.tape-chg.is-up { color: var(--term-up); }
.tape-chg.is-down { color: var(--term-down); }
.tape-ytd { color: var(--term-faint); font-size: 10.5px; letter-spacing: 0.05em; }
.tape-meta {
  padding: 0 1.5rem; white-space: nowrap; line-height: 32px;
  font-size: 10.5px; letter-spacing: 0.11em; text-transform: uppercase;
  color: var(--term-faint); border-right: 1px solid var(--term-grid);
}
.tape-meta em { font-style: normal; color: var(--c-accent-soft); }

/* the tape rides with the nav on desktop; on phones it scrolls away with the page */
@media (min-width: 721px) { .tape { position: sticky; top: var(--nav-h); } }
@media (max-width: 720px) { .tape-item { padding: 0 1rem; font-size: 11.5px; } .tape-ytd { display: none; } }
@media (prefers-reduced-motion: reduce) {
  .tape-track { animation: none !important; }
  .tape { overflow-x: auto; }
}

/* pinned placeholder marker — sits outside .tape-track so it cannot scroll away */
.tape-flag {
  position: absolute; top: 0; right: 0; z-index: 2;
  display: flex; align-items: center; height: 100%;
  padding: 0 0.9rem 0 11rem;
  background: linear-gradient(90deg, rgba(11, 14, 20, 0) 0%, var(--term-bg) 55%);
  color: var(--c-accent-soft);
  font-size: 9.5px; font-weight: 700; letter-spacing: 0.15em; text-transform: uppercase;
  pointer-events: none;
}
@media (max-width: 720px) { .tape-flag { padding: 0 0.7rem 0 3.4rem; font-size: 9px; } }

/* ─── 16. PHONE PASS ───
   Fixes found by auditing every route at 320 / 390 / 430px:
   no horizontal overflow, no text under 11px, and tap targets that a thumb can
   actually hit. Desktop is untouched. */

/* stop iOS inflating text in landscape, and calm the tap flash */
html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  /* in-page anchors (citation jumps) must clear the sticky header */
  scroll-padding-top: calc(var(--nav-h) + 3rem);
}
a, button, summary { -webkit-tap-highlight-color: rgba(201, 168, 76, 0.18); }

@media (max-width: 720px) {
  /* ── tap targets ── */
  .nav-logo { min-height: 44px; align-items: center; }
  .site-footer .nav-logo { min-height: 40px; }

  .footer-col--nav a,
  .footer-col--contact a,
  .contact-card a {
    display: inline-block;
    padding: 0.45rem 0;
    min-height: 34px;
  }

  .article-back,
  .article-cta-link {
    display: inline-flex; align-items: center;
    min-height: 44px;
  }
  .table-view summary {
    display: flex; align-items: center;
    min-height: 44px;
  }

  /* citation markers and source links get a bigger hit area than their glyph,
     without changing how the text flows around them */
  .cite a, .article-refs a {
    position: relative;
    display: inline-block;
    padding: 0 2px;
  }
  .cite a::after, .article-refs a::after {
    content: ''; position: absolute;
    left: -6px; right: -6px; top: -13px; bottom: -13px;
  }

  /* terminal controls — 19px tall is not a thumb target */
  .perf-btn {
    display: inline-flex; align-items: center; justify-content: center;
    min-height: 38px; min-width: 46px; padding: 0 12px;
  }
  .perf-ranges, .perf-toggles { gap: 5px; }
  .perf-tools { gap: 0.55rem 0.8rem; padding: 0.6rem 0.7rem; }

  /* ── legibility floor: nothing under 11px on a phone ── */
  .tape-meta { font-size: 11.5px; }
  .tape-flag { font-size: 11.5px; letter-spacing: 0.1em; }
  .perf-inst-kind, .perf-tag, .perf-status, .perf-key, .perf-key em,
  .perf-stats em, .perf-ccy { font-size: 11.5px; }
  .perf-btn { font-size: 11.5px; }
  .perf-caption .perf-flag { font-size: 11.5px; letter-spacing: 0.1em; }
  /* SVG price-flag and axis labels stay small on purpose: they are chart
     annotation sized to the 16px flag box, not running text */
  .lib-tag, .sector-tag, .article-oneline-label { font-size: 11.5px; }
  .metric-label, .fine-print, .perf-caption { font-size: 12.5px; }

  /* the stacked menu can outgrow a short phone */
  .nav-links.is-open { max-height: calc(100vh - var(--nav-h)); overflow-y: auto; }
}

/* ── very narrow phones: buy back horizontal room ── */
@media (max-width: 400px) {
  :root { --section-h: 1.5rem; }
  .stat-cards, .metric-band-grid { gap: 1rem; }
  .stat-card { padding: 1.3rem 1.1rem; }
  .metric-band { padding: 2.2rem var(--section-h); }
  .team-grid, .idx-links, .numbered-cards, .pillars { gap: 1rem; }
  .article-wrap { padding-left: 1.1rem; padding-right: 1.1rem; }
}
@media (max-width: 340px) {
  .stat-cards, .metric-band-grid, .spec-strip { grid-template-columns: 1fr; }
}

/* ─── 17. THE STACK ───
   Three layers, read left to right, each one a rung the research climbs. The
   numbering is real sequence, not decoration: research feeds listed, listed and
   research together feed private. */
.prop-band { background: var(--c-white); padding: clamp(3rem, 7vh, 4.8rem) var(--section-h); border-bottom: var(--divider-light); }
.prop-band-inner { max-width: var(--max-w); margin: 0 auto; }
.prop-band-headline {
  font-family: var(--f-display); font-size: clamp(24px, 3vw, 32px); font-weight: 700;
  line-height: 1.2; color: var(--c-black); margin: 0 0 0.6rem; letter-spacing: -0.004em;
}
.prop-band-dek { font-size: 15.5px; line-height: 1.65; color: var(--c-slate); margin: 0 0 2.4rem; max-width: 62ch; }
.prop-band-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1.6rem, 3vw, 2.8rem); }
.prop {
  display: flex; flex-direction: column; align-items: flex-start;
  border-top: 2px solid var(--c-gold); padding-top: 1.2rem;
}
.prop-num {
  font-family: var(--f-base); font-size: 10.5px; font-weight: 700; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--c-accent); margin-bottom: 0.7rem;
}
.prop-title {
  font-family: var(--f-display); font-size: clamp(18px, 1.7vw, 19px); font-weight: 700;
  line-height: 1.3; color: var(--c-black); margin: 0 0 0.7rem; text-wrap: balance;
}
.prop p { font-size: 14px; line-height: 1.66; margin: 0 0 1.2rem; flex: 1; }
.prop-link {
  font-size: 11.5px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--c-accent); text-decoration: none;
}
.prop-link:hover { color: var(--c-black); }
@media (max-width: 900px) {
  .prop-band-grid { grid-template-columns: 1fr; gap: 1.8rem; }
  .prop p { margin-bottom: 0.9rem; }
}
@media (max-width: 720px) {
  /* legibility floor and thumb-sized targets, same rules as the phone pass */
  .prop-num { font-size: 11.5px; }
  .prop-link { display: inline-flex; align-items: center; min-height: 44px; }
}

.stat-cite { display: block; margin-top: 0.55rem; font-size: 11.5px; letter-spacing: 0.02em; }
.stat-src { color: var(--c-accent); text-decoration: none; border-bottom: 1px solid rgba(201,168,76,0.4); }
.stat-src:hover { color: var(--c-black); border-bottom-color: currentColor; }
@media (max-width: 720px) {
  .stat-cite { font-size: 12.5px; }
  .stat-src { display: inline-flex; align-items: center; min-height: 34px; padding: 0 1px; }
  /* a link inside a sentence gets a bigger hit area, not a bigger line box */
  .inline-link { position: relative; }
  .inline-link::after {
    content: ''; position: absolute; left: -4px; right: -4px; top: -14px; bottom: -14px;
  }
}

/* ─── 19. SKIP LINK & LIVE REGION ─── */
.skip-link {
  position: absolute; left: 8px; top: -60px; z-index: 400;
  background: var(--c-ink); color: var(--c-white);
  padding: 10px 18px; border-radius: 3px; text-decoration: none;
  font-size: 12.5px; font-weight: 600; letter-spacing: 0.04em;
  transition: top 0.18s ease;
}
.skip-link:focus { top: 8px; outline: 2px solid var(--c-gold); outline-offset: 2px; }
.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;
}

/* ─── 21. LIBRARY SEARCH & CARD DATES ─── */
.lib-search { position: relative; display: flex; align-items: center; margin-top: 1.8rem; max-width: 520px; }
.lib-search-icon { position: absolute; left: 14px; color: rgba(79, 87, 102, 0.6); pointer-events: none; }
.lib-search input {
  width: 100%; font-family: var(--f-base); font-size: 14px; color: var(--c-black);
  padding: 12px 40px 12px 40px; background: var(--c-white);
  border: 1px solid rgba(13, 17, 23, 0.18); border-radius: 3px;
  -webkit-appearance: none; appearance: none;
}
.lib-search input::-webkit-search-cancel-button { display: none; }
.lib-search input::placeholder { color: rgba(79, 87, 102, 0.65); }
.lib-search input:focus { outline: none; border-color: var(--c-gold); box-shadow: 0 0 0 3px rgba(201,168,76,0.16); }
.lib-search-clear {
  position: absolute; right: 8px; width: 28px; height: 28px; line-height: 1;
  font-size: 19px; color: var(--c-slate); background: none; border: 0; cursor: pointer; border-radius: 3px;
}
.lib-search-clear:hover { color: var(--c-black); background: rgba(13,17,23,0.05); }
.lib-meta-link { display: flex; align-items: baseline; justify-content: space-between; gap: 0.8rem; }
.lib-meta-link time { color: rgba(79, 87, 102, 0.8); font-weight: 400; letter-spacing: 0.02em; }
.lib-arrow { white-space: nowrap; }
mark.lib-hit { background: rgba(201, 168, 76, 0.28); color: inherit; padding: 0 1px; border-radius: 2px; }
@media (max-width: 560px) {
  .lib-meta-link { flex-direction: column; gap: 0.35rem; }
}

.noscript-note {
  background: var(--c-ink); color: var(--c-white); padding: 1.1rem var(--section-h);
  font-size: 14px; line-height: 1.6;
}
.noscript-note a { color: var(--c-accent-soft); }

/* ─── 20. INDEX PAGES: CHART ABOVE THE FOLD ───
   These are reference pages, not landing pages. The reader arrives knowing what
   the index is; the hero and the section header should not cost a whole screen. */
[data-perf] { padding-top: clamp(1.6rem, 3vh, 2.4rem) !important; }
[data-perf] .section-header { margin-bottom: 1.1rem; }
#page-indices .hero-standard,
#page-singularity-mag-15 .hero-standard,
#page-singularity-deep-tech-30 .hero-standard,
#page-singularity-tech-cb .hero-standard {
  padding-top: clamp(2.6rem, 6vh, 4rem);
  padding-bottom: clamp(2rem, 4vh, 3rem);
}

/* ─── 22. HOMEPAGE ROSTER ───
   Copy on the left, the whole team as a 3 x 3 block on the right. A nine-wide
   row read as a filmstrip and left the right half of the band empty; squared
   off beside the text it reads as a masthead, which is what a firm's roster is.
   Faces, names and titles only — the detail lives on the Team page. */
/* Two independent things decide where the roster lands, and they were fighting.
   The copy is capped at 52ch, so a 1fr first column ran 85px past the last word
   and pushed the faces right for no visible reason. Sizing that column to the
   cap fixes the cause. The second column then takes what is left and the roster
   centres inside it, so the air is shared either side of the faces rather than
   piling up on one edge. */
.tt-split {
  display: grid; grid-template-columns: minmax(0, 52ch) 1fr;
  gap: clamp(1.4rem, 2.6vw, 2.4rem); align-items: start;
}
.tt-copy { max-width: 52ch; }
.tt-copy .section-intro { margin-bottom: 0; }
.tt-cta { margin-top: 2rem; }
/* Centring the grid ITEM is not the same as centring the faces. The roster box
   sizes to its own max-content, which is 534px — wider than the 400px strip
   inside it — so justify-self alone centred the box and left the faces against
   its left edge, 67px off. The box fills the column instead and the strip is
   centred within it, which is the thing you actually see. */
.tt-roster { justify-self: stretch; display: flex; justify-content: center; }

.team-strip {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.4rem 1.6rem; margin-top: 0.35rem;
  width: min(400px, 100%);
}
.strip-person {
  display: flex; flex-direction: column; align-items: center; text-align: center;
  text-decoration: none; color: inherit; padding: 0.5rem 0.2rem;
  border-radius: 4px; transition: background 0.2s ease, transform 0.2s ease;
}
.strip-person:hover { background: rgba(201, 168, 76, 0.09); transform: translateY(-2px); }
.strip-photo {
  display: block; width: 100%; max-width: 92px; aspect-ratio: 1 / 1;
  border-radius: 50%; overflow: hidden; background: #1A242E;
  box-shadow: 0 0 0 1px rgba(13, 17, 23, 0.12);
}
.strip-photo-img {
  width: 100%; height: 100%; object-fit: cover; object-position: 50% 20%;
  filter: grayscale(22%); transition: filter 0.25s ease;
}
.strip-person:hover .strip-photo-img { filter: grayscale(0%); }
.strip-name {
  display: block; margin-top: 0.7rem; font-family: var(--f-display);
  font-size: 14px; font-weight: 700; line-height: 1.25; color: var(--c-black);
  /* a two-line name must not shove its neighbours' titles out of line */
  min-height: calc(2 * 1.25em);
}
.strip-title {
  display: block; margin-top: 0.2rem; font-size: 10.5px; font-weight: 700;
  letter-spacing: 0.08em; text-transform: uppercase; color: var(--c-accent);
  line-height: 1.35;
  /* some titles wrap to two lines; reserve both so every card bottoms out level */
  min-height: calc(2 * 1.35em);
}
@media (max-width: 980px) {
  /* stack: copy first, then the roster block, still 3 x 3 */
  .tt-split { grid-template-columns: 1fr; gap: 2.4rem; }
  /* stacked, there is no leftover space to centre in — the roster lines up with
     the copy above it like everything else on a phone */
  .tt-roster { justify-self: start; justify-content: flex-start; }
  .tt-copy { max-width: none; }
  .team-strip { width: min(420px, 100%); margin-left: 0; }
}
@media (max-width: 720px) {
  .strip-title { font-size: 11.5px; }
  .strip-name { font-size: 14px; }
  .strip-photo { max-width: 84px; }
  .team-strip { gap: 1.3rem 1.1rem; width: 100%; margin-left: 0; }
}

/* ─── 23. TEAM PAGE ───
   One block of nine. Cards stretch to a common height so the grid squares off,
   and the bios are always open — they are the content of this page, not a
   hover reward, and they have to survive printing. */
.team-grid--full { align-items: stretch; }
.team-grid--full .team-card { display: flex; flex-direction: column; }
.team-grid--full .team-card-body { display: flex; flex-direction: column; flex: 1; }
#page-team .team-card-body p {
  max-height: none; opacity: 1; margin-top: 0.9rem; padding-top: 0.9rem;
  border-top: 1px solid rgba(201, 168, 76, 0.45); flex: 1;
}
#page-team .team-photo img { filter: grayscale(0%); }
#page-team .section-headline { font-size: clamp(22px, 2.6vw, 28px); }
@media (max-width: 900px) { .team-photo { width: 44%; } }
@media (max-width: 560px) { .team-photo { width: 52%; } }
@media print {
  .team-card-body p {
    max-height: none !important; opacity: 1 !important;
    margin-top: 0.7rem !important; padding-top: 0.7rem !important;
  }
}

/* ─── 24. LIBRARY SECTOR PLATES ───
   One engraved mark per sector, top-right of the card. It repeats across the
   nine or ten cards in a sector on purpose: it is a category label, not an
   illustration, and it is what lets the grid be scanned by sector at a glance.
   A sector with no plate yet simply does without one. */
.lib-card { position: relative; }
.lib-card .lib-tag, .lib-card .lib-title { padding-right: 72px; }
.lib-plate {
  position: absolute; top: 1.5rem; right: 1.5rem;
  width: 56px; height: 56px; border-radius: 3px;
  background: #0D1117 50% 50% / cover no-repeat;
  box-shadow: 0 0 0 1px rgba(13, 17, 23, 0.14);
  opacity: 1; transition: transform 0.2s ease;
}
.lib-card:hover .lib-plate { transform: scale(1.05); }
@media (max-width: 720px) {
  .lib-plate { top: 1.3rem; right: 1.3rem; width: 50px; height: 50px; }
  .lib-card .lib-tag, .lib-card .lib-title { padding-right: 62px; }
}
@media print { .lib-plate { display: none !important; } }
.lib-plate[data-sector="ai"] { background-image: url(data:image/webp;base64,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); }
.lib-plate[data-sector="av"] { background-image: url(data:image/webp;base64,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); }
.lib-plate[data-sector="cloud"] { background-image: url(data:image/webp;base64,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); }
.lib-plate[data-sector="hardware"] { background-image: url(data:image/webp;base64,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); }
.lib-plate[data-sector="health"] { background-image: url(data:image/webp;base64,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); }
.lib-plate[data-sector="manufacturing"] { background-image: url(data:image/webp;base64,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); }
.lib-plate[data-sector="markets"] { background-image: url(data:image/webp;base64,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); }
.lib-plate[data-sector="nuclear"] { background-image: url(data:image/webp;base64,UklGRiQKAABXRUJQVlA4IBgKAAAwKwCdASp4AHgAPmEqkUYkIiGhKJh7kIAMCUAZ3JjvpOixMYAuyv/qPV5tu/Mb+tfq6+iLzgPR9/43smegp+0fWpf3v/eZU5uZ8U+cf0X5a+rhlrtK+nH57zZ76fifqBexu/r2eNlfQI9evnP+9+130cP7n0E+sH+g9Ez/gerP+M8QL6n/p/1m+AD+Tf1L/i/4f8oPj3/5/8j57vpD/u+4L/Mf6r/y/797Ufsv/Y32Of2SO0nBBxW2L7GvIZbpEsiC0LOF1VnkvpdhxGxY2GmhtT/KGsatO911mfGgdlC1h3guNDyHgF2jQMyFUogk+/9KY9DjSUdlJP/PcIpmKCdvyIb12JNn8LrE5q1v51BdjkPooHMsisohgY1drw5lCvDRahUPGOTPxBon7nSRYNNdVMEFZ7DviXANCrBjm5uQST1Zq/zXzUvFnLUFrW91L8DMKF7e8tqa3/xadyPNkwFberAA/vx2j53VYQxviU8n2IKmvBX+XP/JbFHdtWgzZBudTIA/gw6KjVp3/OsHd3RZb9laPjxh0gd7iaAoB9XSzjqeO3iRrI099o28kGL+NtR1DRGNbmss1ya9Id781j1S35HwtgFk7BL3abdjj+CG7m0YKRRvNzjPC9zUtCvCnM0gVP+MZ/bHEx61lp6nOk4JQCHvh/YAOvRQMqwuoK7O9IbwH3/ti/pxhw6ZbHf2X7IsBfmCXna3zzLML9H3fBdxlpdP4NzdHWQdLJ3q88WqktqIG2zz5uPtWd54M+p40Y46e2vk8vAP+B+Fyn0eaFXQ3UFRVeDKMMDGSfQaEYjwk4JthzBsUHO8QvWrCZjlLXiZiGujsX/viJn/k/Qu14LS2Ee8UTrzB23u19bs7vRO1o69IVipaT9Q/2z0oSThrv0fwV45iYkhnzfmIHaV4SBS/+alcJXyOZtlI4lXhx2IafAaKvzF4/iGLQkNoLXbotQxjkbNcIOGXMyuNLOtfjM0kKqe1oULOXw/ZU5jbXMJ5zrzIleN7/cdTEURoenatf3ylOfiiqc7c7vVlwvfmSI5/IDcPiVK9IkVcyVVF+hZp8OA6r+2RyL8VtN49+BPVOch7oPyl8uFR/lYD5JHGpEht5plCbPrmSeqBN5UTnyi6syZdZyb9lNZW/9ZAnWxiyvaaB8SlExKgYTvnJ9fcCTKGYq/foLSKiWpyobYnZvg97yAzhjY7m5lqkjADhl9cGETvSCSuFVB6YkyhQ4+MijemTmTlHLalHvoEAHdMVQAWoV/singydlkaP3NNC/H3+XHfcE6rhymCw5pzKW+PofO0+k46vTkQvub51pjAUQnLC9weckwx63OP/w1Pam/IrmR0fYR85pSVL+SrIgdsndHH2ub29+24PrF8kaq6igY6tfIWGjZ+0dU2NjzxlRlQ7ym1Q0q/Pr6B2h79A0ckgnum7ofWgJKUx69AnQvub34cLkjR6Zl4JKo3MvB5R8Xt+Wo6wcgtLMSGxZ7vWXAcAV4Vb02pu6WfIXjPf8xBcUUy93UxNvEf7JmdpPTdznh0xmj3BFDT46t8KoBIv/CBT0K0SXyMMsPj7leoNEregpfxs8x4/JDyMFbvzJndpl/6NTwXal5n6zo+leR7Bfuh+Fw5/kWUGoq+AkrFaJZmm1977HiQq48LjhFhpu1T8oM0weO/7fGbC+RjJv7P0SHevdmStFf8dYPgWBkWvKFDo93FTyeDFztAUiIXFa7hnBLdVOhaVpkjxaRSjB47oLDY06fmklfkN7fcWG9Xvgybt2E/SfXkwbyLRruA29SHApla4TC6S+9odxP9H5CJ/nBQhspLvJcp4+V4qn4gYxn5tIDHZKYw+v9rdjiRk4ioM2gGlXwGGAuVh+oS0xP7UpzBleo5rEjPCiQRKhbMQC5JMdYWX8D6ht2iaytJLcCBvht/BmUP1iIftt5nx7+z+iEV0TTnq+1O+jBI0GaAOv1FyW1YpF23NMejfnokjB74F2zun9CLlglEYi3I1WdnKGal7xZee3YnB4a9eTShOSu37BZXfTOu2d8Q2O0gw510FhinXr2bmLYBIq0Zdw62F7LqkelFKO/ikbz50Ipx//LIVeID+bu8CyXlIa1Zr3Pl3uaZsgaucsiQNTrkir0tkqtwDn7TtWxqhy0bOS40K615KStmbsizIO4FnizrZPD1lQMPY1Eopc5k7+aCCkAAxBp73J7+xkl+rxl12qMj7Tn8vGTVjAJJ/cwT6ObKjiVxOSh/AydRhcpj70RvkQFsmFDbH0D+XDfiuaKpTAPHZTdgRO8pKVmeliHCa3tk4xfXa4gObLBnl1v6qnkYgB6g/X6h0iPC/knRuSN8tVg5AvtO64n5C64ipCSFHjLycBCZzIB3BHsLARcHBsgz4/JPa7jcH/3YfMl7/wvodjt7dKZQJEimz8CYAooCPGfvbst0E6nVBib+Mt5uUXDbQcMJuAKXyG2+n4fhgTPgRff/7eDcEqry1Mk69WSSt50HmDW5QPoLOn6YprtOjllhVkJ6gs9hI0wfAGnKupSjP39i+ZF4GeDClr8QOjkfyKPb1tHZzr2DxP5UCktuC49uKHu8gCFhD5QAIwjxZZKxxFKOl1PsO7BYDptFeP9UMWJLex4kQ4PVYm+IML9ZzXb6dkeOOUnRQKo/tUDyLMFIM6h5xpJmaiOXJ1rrQ08zADx20G8yqa4l7VSX3lvuhzhZ3Tf6maJ7UkxOYsW1aEysucRHr0Uk7Jj15BLiHytboHm/Cg+WFcuopDvrW1iBLDQ+8b2rXs9wAZR/Gpt1+uxP739C7DDBf3eTk1om4xwvYMUP9jxA4A3+fpDATrzIdLQn+oXtOwW1eU+KV5ehmbl4yUz0vvVOAP50TOycYxdPwvOl+3UBO8DUEa1A4Q5Oensv1XIaMAFHjHFC0K0wPJD7YlctlpkfswXzZ5Wkvd2ra22KnruXH7NxqPgc9Wq5vxWGIWaxhon9Jk1kTVNntnl/yWwUkluWd4sNMrzkm4Y9BdEs5iDd/Xxez47AzvmZz9IdohIBQVd6fHgECFgYxYHT4jevdfcwvwiIyw6P55aHwE/k51r3qtQ/c0dUV3Eaqoab/fZPMB4A/qitPeYTGrC5H0/hPvTlqc3vbKnk4IKE85MDkJo+W5sgvscS9N1o5E19RSsGx2ngtWKfI0ll/x8nwwFivQWc5Bu+ee3O8nUps12aueap1Pc/+NIqePHQ9cGyW2OMbLEGq1lntxd/IlI4Ijn/g4zIuvQSvqCCI0KkEHp9n4qdCF6lvLxxOdUgnOo4jr97KYg7KOTklY7FyrkbxM3iEJBAsJcUu4hXf8bXfcpNSg9o9LgtCB+aGrskNHEpCoS8R4rjafzwFeXPCnHu7MFyNUNyvYSD1fsODr3NO6VEC0SWyfRgmqHgePVgREppsqc8on0Ai6pa+Ac9Et8ociHA5gqISst7Klin2yywgAA); }
.lib-plate[data-sector="quantum"] { background-image: url(data:image/webp;base64,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); }
.lib-plate[data-sector="renewable"] { background-image: url(data:image/webp;base64,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); }
.lib-plate[data-sector="robotics"] { background-image: url(data:image/webp;base64,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); }
.lib-plate[data-sector="semis"] { background-image: url(data:image/webp;base64,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); }
.lib-plate[data-sector="space"] { background-image: url(data:image/webp;base64,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); }

/* ─── 18. PRINT ───
   Everything animated in must be solid on paper, every collapsed table open,
   and all page chrome gone. Investors print methodology pages. */
@media print {
  html.js-anim .reveal,
  .reveal,
  [data-hero-anim].anim-ready {
    opacity: 1 !important; transform: none !important; transition: none !important;
  }
  .site-nav, .tape, .nav-toggle, .site-footer .footer-col--nav,
  .hero-ctas, .section--cta .btn, .lib-filters, .article-back { display: none !important; }
  details.table-view { display: block !important; }
  details.table-view > summary { display: none !important; }
  details.table-view[open], details.table-view:not([open]) > *:not(summary) { display: revert !important; }
  body { background: #fff !important; color: #000 !important; }
  .section, .hero-standard, .hero-split, .metric-band, .prop-band {
    padding-top: 1.2rem !important; padding-bottom: 1.2rem !important;
    background: #fff !important; color: #000 !important;
  }
  .hero-standard *, .hero-split *, .section--ink *, .section--cta *,
  .hero-sub, .section-intro, .metric-label, p, li, td, th { color: #000 !important; }
  .eyebrow, .article-kicker, .lib-tag, .prop-num { color: #6B5A17 !important; }
  .hero-visual, .photo-band { display: none !important; }
  .figure, .team-card, .lib-card, .prop, .metric { break-inside: avoid; page-break-inside: avoid; }
  h1, h2, h3, [role="heading"], .section-header, .eyebrow { break-after: avoid; page-break-after: avoid; }
  .section-header { margin-bottom: 0.6rem !important; }
  a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 9px; word-break: break-all; }
  a[href^="#"]::after { content: none; }
  .fine-print, .figure-note { font-size: 9px !important; }
  @page { margin: 16mm 14mm; }
}

/* ─── 25. BRIEF FURNITURE ───
   Figures strip, chart and source table for the research briefs. Every number
   here is one the brief already states and cites in its prose — this layer
   visualises the evidence, it does not add any. */
.bf-stats {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  gap: 1px; background: var(--c-paper); border: var(--divider-light);
  margin: 2.2rem 0 2.4rem;
}
.bf-stat { background: var(--c-white); padding: 1.05rem 1.15rem; }
.bf-stat-v {
  font-family: var(--f-display); font-size: 26px; font-weight: 700;
  line-height: 1.1; color: var(--c-black); font-variant-numeric: tabular-nums;
}
.bf-stat-l { font-size: 12.5px; line-height: 1.5; color: var(--c-slate); margin-top: 0.4rem; }
.bf-stat-d {
  font-size: 11.5px; line-height: 1.45; color: var(--c-accent);
  margin-top: 0.35rem; font-weight: 600;
}

.bf-fig { margin: 2.4rem 0; padding: 0; border-top: 2px solid var(--c-gold); }
.bf-fig-head { display: block; padding: 0.95rem 0 1.1rem; }
.bf-fig-title {
  display: block; font-family: var(--f-display); font-size: 17px;
  font-weight: 700; color: var(--c-black); line-height: 1.3;
}
.bf-fig-sub { display: block; font-size: 12.5px; line-height: 1.55; color: var(--c-slate); margin-top: 0.35rem; }
.bf-svg { width: 100%; height: auto; display: block; overflow: visible; }
.bf-bar rect { transition: opacity 0.15s ease; }
.bf-fig:hover .bf-bar:not(:hover) rect { opacity: 0.55; }
.bf-bar-name {
  font-family: var(--f-base); font-size: 12.5px; fill: #0D1117; font-weight: 500;
}
.bf-bar-val {
  font-family: var(--f-base); font-size: 12.5px; fill: #5A6270;
  font-weight: 600; font-variant-numeric: tabular-nums;
}
.bf-table { margin-top: 1rem; }
.bf-table summary {
  font-size: 11.5px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;
  color: var(--c-accent); cursor: pointer; list-style: none;
}
.bf-table summary::-webkit-details-marker { display: none; }
.bf-table summary::before { content: '+ '; }
.bf-table[open] summary::before { content: '– '; }
.bf-table table { width: 100%; margin-top: 0.7rem; font-size: 12.5px; border-collapse: collapse; }
.bf-table th, .bf-table td { text-align: left; padding: 7px 10px 7px 0; border-bottom: var(--divider-light); }
.bf-table thead th {
  font-size: 10.5px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--c-slate);
}
.bf-table td.num { text-align: right; font-variant-numeric: tabular-nums; }
.bf-derived { font-weight: 400; color: var(--c-slate); font-size: 11.5px; }
.bf-fig-src { font-size: 11.5px; color: var(--c-slate); margin: 0.85rem 0 0; }

.bf-srcbox { margin: 2.6rem 0 0; border: var(--divider-light); background: var(--c-paper); }
.bf-srcbox-head {
  font-size: 10.5px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--c-accent); padding: 0.85rem 1.1rem; border-bottom: var(--divider-light);
}
.bf-srcbox-scroll { overflow-x: auto; }
.bf-srctable { width: 100%; min-width: 460px; border-collapse: collapse; font-size: 12.5px; }
.bf-srctable th, .bf-srctable td {
  text-align: left; padding: 9px 1.1rem; border-bottom: var(--divider-light);
  vertical-align: top; line-height: 1.5;
}
.bf-srctable thead th {
  font-size: 10.5px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--c-slate);
}
.bf-srctable tbody tr:last-child td { border-bottom: 0; }
.bf-src-n { font-variant-numeric: tabular-nums; color: var(--c-accent); font-weight: 700; white-space: nowrap; }
.bf-src-d { white-space: nowrap; color: var(--c-slate); }
.bf-srctable a { color: var(--c-black); text-decoration: none; border-bottom: 1px solid rgba(201,168,76,0.5); }
.bf-srctable a:hover { border-bottom-color: currentColor; }

@media (max-width: 720px) {
  .bf-srcbox-head { font-size: 11.5px; }
  .bf-table summary { font-size: 12.5px; }
  .bf-table thead th { font-size: 11.5px; }
  .bf-srctable thead th { font-size: 11.5px; }
  /* a source link is a real destination, so give it a thumb-sized target */
  .bf-srctable a { display: inline-block; padding: 0.5rem 0; min-height: 34px; }
}
@media (max-width: 560px) {
  .bf-stats { grid-template-columns: 1fr 1fr; }
  .bf-stat-v { font-size: 22px; }
  .bf-bar-name, .bf-bar-val { font-size: 15.5px; }
  /* a four-column source table cannot survive 375px, so each reference becomes
     its own labelled block rather than something the reader has to scroll */
  .bf-srctable { min-width: 0; }
  .bf-srctable thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .bf-srctable tr { display: block; padding: 0.85rem 1.1rem; border-bottom: var(--divider-light); }
  .bf-srctable tbody tr:last-child { border-bottom: 0; }
  .bf-srctable td { display: block; padding: 0; border: 0; }
  .bf-src-n { display: inline-block !important; margin-right: 0.45rem; }
  .bf-srctable td:nth-child(2) { display: inline; }
  .bf-src-d { color: var(--c-slate); font-size: 12.5px; margin-top: 0.15rem; }
  .bf-srctable td:nth-child(4) { margin-top: 0.35rem; color: var(--c-slate); }
}
@media print {
  .bf-table[open] summary, .bf-table summary { display: none !important; }
  .bf-table table { display: table !important; }
  .bf-fig:hover .bf-bar:not(:hover) rect { opacity: 1; }
}

/* ─── 26. TYPE ───
   Source Serif 4 is an optical-size family: the display axis is set explicitly
   so headlines get the tighter, higher-contrast cut and running text does not.
   Tabular figures are on wherever numbers line up in a column. */
.display-headline, .section-headline, .prop-band-headline, .article-title {
  font-variation-settings: 'opsz' 44;
  letter-spacing: -0.011em;
}
.team-name, .prop-title, .bf-fig-title, .bf-stat-v, .lib-title {
  font-variation-settings: 'opsz' 20;
  letter-spacing: -0.004em;
}
.metric-num, .bf-stat-v, .data-table td, .bf-table td, .bf-srctable td,
.perf-stats, .tape-meta {
  font-variant-numeric: tabular-nums;
}

/* Running copy moves to the serif. Playfair could never carry body text, so the
   serif painted 541 characters on the homepage and the page read as a software
   landing page rather than a research house. Source Serif 4 is a text face: the
   briefs, the section intros and the hero paragraph now set in it, while the
   interface — nav, labels, buttons, tables, charts, metrics — stays sans. That
   split is what every research publication actually does. */
.article-body, .article-body p, .article-body li, .article-dek, .article-pull,
.article-lede, .hero-sub, .section-intro, .prop-text, .team-bio {
  font-family: var(--f-display);
}
.article-body, .article-body p, .article-body li {
  font-variation-settings: 'opsz' 11;
  line-height: 1.72;
}
.hero-sub, .section-intro, .article-dek { font-variation-settings: 'opsz' 16; }
/* the furniture inside a brief is interface, not prose, so it stays sans */
.bf-stats, .bf-stats *, .bf-fig, .bf-fig *, .bf-table, .bf-table *,
.bf-srcbox, .bf-srcbox *, .article-body .stat-cite, .article-refs, .article-refs * {
  font-family: var(--f-base);
}
.bf-fig-title, .bf-stat-v { font-family: var(--f-display); }

/* Justified text needs enough characters per line to hide the stretching. On a
   phone a brief runs about 38 characters, and every line that lands one word
   short opens rivers of white through the paragraph. Below 640px the copy sets
   ragged-right instead, which is what print does at this measure too. */
@media (max-width: 640px) {
  .article-body p, .article-body li { text-align: left; }
}

/* ─── 27. SECTION RHYTHM ───
   A page where every band opens identically reads as generated. These three
   drop the eyebrow and lead with the headline instead. */
#library-teaser .eyebrow,
#page-china .section--paper .section-header .eyebrow { display: none; }
#library-teaser .section-header { padding-top: 0.4rem; }

/* ─── 28. HOMEPAGE ON A PHONE ───
   Below 640px the band padding was still tuned for a laptop: 4.5rem top and
   bottom on eight bands is two and a half screens of nothing. These values are
   the ones that keep the sections reading as separate without the reader
   paying a screen of scroll for each divider. */
@media (max-width: 640px) {
  :root { --section-v: 3.4rem; }
  .prop-band { padding-top: 3.2rem; padding-bottom: 3.2rem; }
  .prop-band-grid { gap: 2rem; }
  .metric-band { padding-top: 2.2rem; padding-bottom: 2.2rem; }
  .metric-band-grid { gap: 1.4rem 1.2rem; }
  .section-header { margin-bottom: 0.2rem; }
  .stat-cards { gap: 0.8rem; }
  .stat-card { padding: 1.3rem 1.2rem; }
  /* the roster is the one block worth its height, but not this much of it */
  .team-strip { gap: 1.5rem 0.9rem !important; }

  /* A teaser card is an invitation to open the brief, not the brief. Three
     lines is enough to decide; the full dek is on the brief's own page. */
  #library-teaser .lib-card p {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  /* Three sample briefs stacked cost most of a screen each to say the same
     thing: there is a library, here is what a brief looks like. Side by side
     they cost one card's height, and the fourth of a card showing at the right
     edge is what tells the reader to swipe. The full list is one tap below. */
  #library-teaser .lib-grid {
    display: flex;
    gap: 0.9rem;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    /* bleed to the screen edge so the next card is visibly cut off, not boxed */
    margin-inline: calc(var(--section-h) * -1);
    padding-inline: var(--section-h);
    padding-bottom: 0.4rem;
  }
  #library-teaser .lib-grid::-webkit-scrollbar { display: none; }
  #library-teaser .lib-card {
    flex: 0 0 78%;
    scroll-snap-align: start;
  }
}

/* ─── STATIC PAGES ───
   The app reveals bars and columns with an observer. There is no script here,
   so they are drawn at full extent from the start. */
.wbar-fill { transform: scaleX(1); }
.ladder-col b { transform: scaleY(1); }
.reveal { opacity: 1; transform: none; }
