/* ============================================================
   BlockArrow Capital — design system v2
   Tokens, layout primitives, and component styles for the full
   18-page static site. Single source of truth; cacheable.
   ============================================================ */

/* ------------------------------------------------------------
   @font-face — self-hosted (2026-05-12)
   Replaces the previous Google Fonts <link> on every page.
   Wins: removes the third-party DNS hop + connect, eliminates
   googleapis.com / gstatic.com from the CSP allowlist, lets us
   serve fonts with our own immutable cache header, and removes
   one source of layout shift on slow networks. font-display:swap
   keeps first paint on system fonts; the actual swap is invisible
   because Space Grotesk's metrics are close to system-ui at the
   default size.
   ------------------------------------------------------------ */

@font-face {
  font-family: "Space Grotesk";
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url("https://cdn.prod.website-files.com/63c75e43effd1af81e23e5e9/6ad626f338c2f4faa65c0205_ba-oct19-space-grotesk-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Space Grotesk";
  font-style: normal;
  font-weight: 300 700;
  font-display: swap;
  src: url("https://cdn.prod.website-files.com/63c75e43effd1af81e23e5e9/6ad626f3cf839b9ead16745a_ba-oct19-space-grotesk-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Space Mono";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("https://cdn.prod.website-files.com/63c75e43effd1af81e23e5e9/6ad626f4e1b510edcd1ba282_ba-oct19-space-mono-400-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Space Mono";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("https://cdn.prod.website-files.com/63c75e43effd1af81e23e5e9/6ad626f4ce64d658e2668b66_ba-oct19-space-mono-400-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Space Mono";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("https://cdn.prod.website-files.com/63c75e43effd1af81e23e5e9/6ad626f421caf0c95782b77d_ba-oct19-space-mono-700-latin.woff2") format("woff2");
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: "Space Mono";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("https://cdn.prod.website-files.com/63c75e43effd1af81e23e5e9/6ad626f4e1b510edcd1ba296_ba-oct19-space-mono-700-latin-ext.woff2") format("woff2");
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

:root {
  /* Accent — warm institutional amber */
  --accent: #E8932F;
  --accent-hover: #f5a442;
  --accent-bright: #E8C58A;
  --accent-soft: rgba(232, 147, 47, 0.22);
  --accent-glow: rgba(232, 147, 47, 0.12);

  /* Keyboard-focus halos for form controls. The form inputs deliberately set
     outline:none (they style the border instead), which also out-specifies the
     global :focus-visible outline — so without these the only focus cue on the
     contact form and the first-touch audience gate is a 1px border tint, and a
     focused aria-invalid field was nearly identical to its unfocused error
     state. A box-shadow ring is layout-neutral (no reflow) and renders outside
     the border. Alphas chosen so the ring clears the WCAG 1.4.11 non-text
     contrast floor (>=3:1) against --bg #09090c: amber ~3.1:1, red higher. */
  --focus-ring: 0 0 0 3px rgba(232, 147, 47, 0.55);
  --focus-ring-invalid: 0 0 0 3px rgba(248, 113, 113, 0.50);

  /* Ink */
  --bg: #09090c;
  --bg-2: #0b0b0f;
  --bg-3: #0c0c10;
  --ink-2: #0d0d12;          /* slightly lifted alt background for ink2 sections */
  --surface: rgba(255, 255, 255, 0.02);
  --surface-2: rgba(255, 255, 255, 0.04);

  --glass: rgba(255, 255, 255, 0.03);
  --glass-border: rgba(255, 255, 255, 0.06);

  /* Type */
  --text: #fcfbf8;
  --text-2: #b6b2ac;
  --text-3: #8e8b86;
  --text-dim: #807c75;   /* WCAG AA: 4.79:1 on --bg (was #66625d / 3.29:1, failed AA for 11px footer-legal + contact-form note) */
  --text-faint: #666057; /* 3.20:1 on --bg (was #44423e / 1.98:1, near-invisible ticker separators) */

  /* Lines */
  --border: rgba(255, 255, 255, 0.06);
  --border-strong: rgba(255, 255, 255, 0.12);
  --line: rgba(255, 255, 255, 0.06);    /* alias used by inline styles in HTML */

  /* Status */
  --up: #4ADE80;
  --down: #F87171;

  /* Fonts */
  --sans: "Space Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
  --mono: "Space Mono", ui-monospace, SFMono-Regular, Menlo, monospace;

  --ease: cubic-bezier(.2, .7, .2, 1);

  --nav-height: 68px;
  --topbar-height: 36px;
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
html { scroll-behavior: smooth; scroll-padding-top: 140px; }

body {
  background: var(--bg);
  color: var(--text);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
  min-height: 100vh;
}

a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; }
img, svg { display: block; max-width: 100%; }
::selection { background: var(--accent); color: var(--bg); }

.container {
  width: 100%;
  max-width: 1360px;
  margin: 0 auto;
  padding: 0 clamp(20px, 4vw, 64px);
}

/* ============================================================
   TOPBAR — slim ribbon, status + IR shortcuts
   ============================================================ */
.topbar {
  position: relative;
  z-index: 90;
  background: #06060a;
  border-bottom: 1px solid var(--border);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-3);
  min-height: var(--topbar-height);
  display: flex;
  align-items: center;
}
.topbar__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding-top: 10px;
  padding-bottom: 10px;
  flex-wrap: wrap;
}
.topbar__left { display: flex; align-items: center; gap: 10px; min-width: 0; }
.topbar__new {
  color: var(--text-2);
  transition: color .2s var(--ease);
}
.topbar__new:hover { color: var(--text); }
.topbar__arrow {
  display: inline-block;
  transition: transform .2s var(--ease);
}
.topbar__new:hover .topbar__arrow { transform: translateX(2px); }
.topbar__dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: var(--up);
  box-shadow: 0 0 8px rgba(74, 222, 128, 0.55);
  animation: pulse 2.6s ease-in-out infinite;
}
@keyframes pulse {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0.45; }
}
.topbar__right { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.topbar__right a {
  color: var(--text-2);
  transition: color .2s var(--ease);
}
.topbar__right a:hover { color: var(--text); }

@media (max-width: 700px) {
  .topbar { font-size: 10px; letter-spacing: 0.08em; }
  .topbar__inner { gap: 8px; }
}

/* ============================================================
   NAV — primary, sticky-feel via topbar
   ============================================================ */
.nav {
  position: sticky;
  top: 0;
  z-index: 70;
  background: rgba(9, 9, 12, 0.86);
  backdrop-filter: blur(20px) saturate(160%);
  -webkit-backdrop-filter: blur(20px) saturate(160%);
  border-bottom: 1px solid var(--border);
}
.nav__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  min-height: var(--nav-height);
  padding-top: 14px;
  padding-bottom: 14px;
}

.brand {
  display: flex;
  align-items: center;
  gap: 10px;
  flex: 0 0 auto;
  color: var(--text);
}
.brand__mark {
  width: 34px;
  height: 27px;
  color: #ffffff;
  flex: 0 0 auto;
  display: inline-flex;
}
.brand__mark svg { width: 100%; height: 100%; }
.brand__word {
  font-family: var(--sans);
  font-size: 17px;
  font-weight: 500;
  letter-spacing: -0.015em;
  color: var(--text);
}
.brand__sub {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--text-3);
  padding-left: 8px;
  margin-left: 2px;
  border-left: 1px solid var(--border-strong);
}

.nav__links { display: flex; align-items: center; gap: 2px; }
.nav__link {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-3);
  padding: 10px 14px;
  border-radius: 6px;
  transition: color .18s var(--ease), background .18s var(--ease);
}
.nav__link:hover,
.nav__link.is-current {
  color: var(--text);
  background: rgba(255, 255, 255, 0.03);
}

.nav__cta { display: flex; align-items: center; gap: 10px; flex: 0 0 auto; }

/* ---------- Indexed site menu ---------- */
.nav__toggle {
  display: inline-flex;
  background: transparent;
  border: 1px solid var(--border);
  color: var(--text);
  width: auto;
  height: 44px;
  padding: 0 12px 0 14px;
  border-radius: 4px;
  align-items: center;
  justify-content: center;
  gap: 10px;
  cursor: pointer;
  flex: 0 0 auto;
  transition: background .18s var(--ease), border-color .18s var(--ease);
}
.nav__toggle:hover, .nav__toggle:focus-visible {
  background: rgba(255, 255, 255, 0.04);
  border-color: var(--border-strong);
}
.nav__toggle-label {
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.nav__toggle svg { width: 17px; height: 17px; display: block; }
.nav__toggle .nav__toggle-close { display: none; }
.nav__toggle[aria-expanded="true"] .nav__toggle-open { display: none; }
.nav__toggle[aria-expanded="true"] .nav__toggle-close { display: block; }
@media (min-width: 981px) {
  .nav__toggle { display: none; }
}

.nav__overlay {
  position: fixed;
  inset: var(--nav-height) 0 0;
  background: rgba(5, 5, 8, 0.32);
  z-index: 65;
  opacity: 0;
  visibility: hidden;
  transition: opacity .18s var(--ease), visibility .18s var(--ease);
}
.nav__overlay[data-open="true"] {
  opacity: 1;
  visibility: visible;
}
.nav__overlay-inner {
  position: absolute;
  top: 12px;
  left: 50%;
  transform: translateX(-50%);
  width: min(390px, calc(100vw - 32px));
  max-height: calc(100svh - var(--nav-height) - 24px);
  overflow-y: auto;
  display: flex;
  flex-direction: column;
  background: #0b0b0f;
  border: 1px solid var(--border-strong);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.24);
}
.nav__overlay-menu { display: flex; flex-direction: column; }
.nav__overlay a.nav__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: 54px;
  padding: 0 18px;
  border-radius: 0;
  border-bottom: 1px solid var(--border);
  font-family: var(--sans);
  font-size: 16px;
  font-weight: 450;
  letter-spacing: 0;
  text-transform: none;
  color: var(--text-2);
}
.nav__overlay a.nav__link::after {
  content: attr(data-menu-index);
  font-family: var(--mono);
  font-weight: 400;
  font-size: 10px;
  color: var(--text-3);
  letter-spacing: 0.12em;
}
.nav__overlay a.nav__link:hover::after,
.nav__overlay a.nav__link.is-current::after { color: var(--accent); }
.nav__overlay-cta {
  display: grid;
  grid-template-columns: 1fr;
  gap: 8px;
  padding: 14px;
  border-top: 1px solid var(--border);
}
.nav__overlay-cta .btn { justify-content: center; padding: 11px 12px; font-size: 12px; }
.nav__overlay-meta {
  padding: 14px 18px;
  border-top: 1px solid var(--border);
  font-family: var(--mono);
  font-size: 9.5px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-3);
  display: flex;
  justify-content: space-between;
  gap: 18px;
}
.nav__overlay-meta a { color: var(--text-2); }
body[data-nav-open="true"] { overflow: hidden; }

@media (max-width: 980px) {
  .nav__links { display: none; }
}
@media (max-width: 540px) {
  .brand__sub { display: none; }
  .nav__cta { display: none; }
  .nav__overlay-inner { left: 12px; width: calc(100vw - 24px); transform: none; }
}
@media (prefers-reduced-motion: reduce) {
  .nav__overlay { transition: none; }
}

/* ============================================================
   BUTTONS
   ============================================================ */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  padding: 14px 22px;
  font-family: var(--sans);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: -0.005em;
  border-radius: 8px;
  border: 1px solid transparent;
  transition: all 0.22s var(--ease);
  cursor: pointer;
  white-space: nowrap;
  line-height: 1;
}
.btn--primary {
  background: var(--accent);
  color: #0b0b0f;
  border-color: var(--accent);
}
.btn--primary:hover {
  background: var(--accent-hover);
  border-color: var(--accent-hover);
  transform: translateY(-1px);
  box-shadow: 0 10px 30px rgba(232, 147, 47, 0.18);
}
.btn--ghost {
  background: transparent;
  color: var(--text);
  border-color: var(--border-strong);
}
.btn--ghost:hover {
  border-color: rgba(255, 255, 255, 0.28);
  background: var(--glass);
}
.btn--small { padding: 9px 14px; font-size: 12px; border-radius: 6px; }
.btn__arrow {
  display: inline-block;
  transition: transform 0.2s var(--ease);
}
.btn:hover .btn__arrow { transform: translateX(3px); }
.btn .arrow { width: 15px; height: 15px; transition: transform 0.2s var(--ease); }
.btn:hover .arrow { transform: translateX(3px); }

.linklike {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--accent);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  padding: 4px 0;
  border-bottom: 1px solid transparent;
  transition: border-color .2s var(--ease), color .2s var(--ease);
}
.linklike:hover { border-bottom-color: var(--accent); color: var(--accent-hover); }

.backlink {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--text-3);
  margin-bottom: 24px;
  transition: color .2s var(--ease);
}
.backlink:hover { color: var(--text); }

.badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--accent);
  background: rgba(232, 147, 47, 0.08);
  border: 1px solid rgba(232, 147, 47, 0.22);
  border-radius: 999px;
}

/* ============================================================
   TYPOGRAPHY UTILITIES
   ============================================================ */
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--text-3);
}
.eyebrow::before {
  /* BA_OS v3: no decorative dot — eyebrows are plain mono captions. */
  content: none;
}
.kicker {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--text-3);
  display: block;
}
.display {
  font-family: var(--sans);
  font-size: clamp(36px, 4.8vw, 56px);
  font-weight: 500;
  line-height: 1.02;
  letter-spacing: -0.035em;
  color: var(--text);
  margin: 18px 0 22px;
}
.display .accent { color: var(--accent); }
.h2 {
  font-family: var(--sans);
  font-size: clamp(28px, 3.8vw, 44px);
  font-weight: 500;
  line-height: 1.1;
  letter-spacing: -0.025em;
  color: var(--text);
  margin: 0;
}
.h2 .accent { color: var(--accent); }
.h3 {
  font-family: var(--sans);
  font-size: clamp(20px, 2.4vw, 26px);
  font-weight: 500;
  line-height: 1.18;
  letter-spacing: -0.02em;
  color: var(--text);
  margin: 0;
}
.h3 .accent { color: var(--accent); }
.lede {
  font-size: clamp(16px, 1.3vw, 19px);
  line-height: 1.55;
  color: var(--text-2);
  max-width: 62ch;
  margin: 0;
  font-weight: 400;
}
.accent { color: var(--accent); }

/* ============================================================
   PAGE HERO (inner page banners)
   ============================================================ */
.pagehero {
  position: relative;
  padding: clamp(72px, 9vw, 112px) 0 clamp(52px, 6vw, 76px);
  border-bottom: 1px solid var(--border);
  overflow: hidden;
}
.pagehero::after {
  content: "";
  position: absolute;
  inset: -1px 0 auto 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(232,147,47,0.35), transparent);
  opacity: 0.6;
}
.pagehero__inner { max-width: 980px; position: relative; z-index: 1; }
.pagehero__meta {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--text-3);
  margin-top: 14px;
}
.pagehero__cta {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 36px;
}

/* ============================================================
   HOME HERO
   ============================================================ */
.hero {
  position: relative;
  padding: clamp(96px, 12vw, 168px) 0 clamp(70px, 9vw, 120px);
  overflow: hidden;
  border-bottom: 1px solid var(--border);
}
.hero-watermark {
  position: absolute;
  top: 50%;
  right: -8%;
  transform: translateY(-50%);
  width: clamp(420px, 56vw, 820px);
  aspect-ratio: 92 / 72;
  opacity: 0.05;
  color: #ffffff;
  z-index: 0;
  pointer-events: none;
}
.hero-watermark svg { width: 100%; height: 100%; }
.hero-inner {
  position: relative;
  z-index: 2;
  max-width: 980px;
}
.hero-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--text-3);
  margin-bottom: 2rem;
}
.hero-eyebrow::before {
  content: "";
  width: 8px; height: 8px;
  background: var(--accent);
  border-radius: 50%;
  box-shadow: 0 0 12px rgba(232, 147, 47, 0.6);
  animation: blink 2.6s ease-in-out infinite;
}
@keyframes blink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.35; }
}
.hero h1 {
  font-size: clamp(2.6rem, 5.6vw, 5.4rem);
  font-weight: 500;
  line-height: 1.02;
  letter-spacing: -0.035em;
  color: var(--text);
  margin: 0 0 1.6rem;
  max-width: 18ch;
}
.hero h1 .accent { color: var(--accent); }
.hero-lede {
  font-size: clamp(1.05rem, 1.25vw, 1.2rem);
  line-height: 1.55;
  color: var(--text-2);
  max-width: 58ch;
  margin: 0 0 2.4rem;
  font-weight: 400;
}
.hero-cta, .hero__cta {
  display: flex;
  gap: 0.7rem;
  flex-wrap: wrap;
}

/* Stat strip — home page */
.statbar {
  margin-top: clamp(64px, 9vw, 110px);
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  position: relative;
  z-index: 2;
  gap: 0;
}
.statbar__cell {
  padding: 22px 0 0;
  border-top: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.statbar__cell + .statbar__cell { padding-left: clamp(16px, 2.4vw, 36px); }
.statbar__label {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--text-3);
}
.statbar__num {
  font-family: var(--sans);
  font-size: clamp(1.9rem, 2.4vw, 2.4rem);
  line-height: 1;
  letter-spacing: -0.04em;
  font-weight: 500;
  color: var(--text);
}
@media (max-width: 880px) {
  .statbar { grid-template-columns: 1fr 1fr; }
  .statbar__cell + .statbar__cell { padding-left: 16px; }
  .statbar__cell:nth-child(3),
  .statbar__cell:nth-child(4) { padding-top: 22px; }
}
@media (max-width: 480px) {
  .statbar { grid-template-columns: 1fr; }
  .statbar__cell + .statbar__cell { padding-left: 0; padding-top: 22px; }
}

/* ============================================================
   SECTION — generic
   ============================================================ */
.section {
  position: relative;
  padding: clamp(60px, 8vw, 112px) 0;
}
.section--tight { padding: clamp(48px, 6vw, 80px) 0; }
.section--ink2 {
  background: var(--ink-2);
  border-top: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
}
.section--ops { background: var(--bg-3); border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); }
.section--contact { border-top: 1px solid var(--border); }

/* ============================================================
   STRATEGIES — tear-sheet cards
   ============================================================ */
.strat__cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 28px;
}
@media (max-width: 900px) {
  .strat__cards { grid-template-columns: 1fr; }
}

.fund {
  position: relative;
  padding: 36px 32px;
  border: 1px solid var(--border);
  background: var(--surface);
  border-radius: 4px;
  transition: border-color .25s var(--ease), background .25s var(--ease), transform .25s var(--ease);
}
.fund:hover {
  border-color: var(--border-strong);
  background: var(--surface-2);
  transform: translateY(-2px);
}
.fund__tag {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--accent);
  background: rgba(232, 147, 47, 0.08);
  border: 1px solid rgba(232, 147, 47, 0.22);
  padding: 6px 10px;
  border-radius: 999px;
  margin-bottom: 1.3rem;
  display: inline-block;
}
.fund__name {
  font-family: var(--sans);
  font-size: clamp(22px, 2.4vw, 30px);
  font-weight: 500;
  letter-spacing: -0.025em;
  line-height: 1.12;
  color: var(--text);
  margin: 0 0 12px;
}
.fund__kicker {
  font-size: 15px;
  color: var(--text-2);
  margin: 0 0 1.4rem;
  font-weight: 400;
}
.fund__pitch {
  font-size: 15px;
  line-height: 1.65;
  color: var(--text-2);
  margin: 0 0 2rem;
  max-width: 52ch;
}

/* Tear-sheet data table */
.fund__terms {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  border-top: 1px solid var(--border);
  margin-bottom: 1.6rem;
}
.fund__terms--wide {
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
}
.fund__term {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: baseline;
  gap: 1rem;
  padding: 14px 16px;
  border-bottom: 1px solid var(--border);
  background: var(--surface);
}
.fund__term-label {
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--text-3);
}
.fund__term-value {
  font-family: var(--sans);
  font-size: 15px;
  font-weight: 500;
  letter-spacing: -0.01em;
  color: var(--text);
  text-align: right;
}

@media (max-width: 900px) {
  .fund__terms--wide { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .fund__terms,
  .fund__terms--wide { grid-template-columns: 1fr; }
  .fund__term-value { text-align: left; }
}

.fund__criteria-label {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--text-3);
  margin: 0 0 0.9rem;
}
.fund__criteria {
  list-style: none;
  padding: 0;
  margin: 0;
  border-bottom: 1px solid var(--border);
}
.fund__criteria li {
  position: relative;
  padding: 14px 0 14px 22px;
  font-size: 15px;
  line-height: 1.55;
  color: var(--text-2);
  border-bottom: 1px solid var(--border);
}
.fund__criteria li:last-child { border-bottom: 0; }
.fund__criteria li::before {
  content: "—";
  position: absolute;
  left: 0; top: 14px;
  color: var(--accent);
  font-family: var(--mono);
}

/* ============================================================
   COMPARE — Fund I vs BOF table
   ============================================================ */
.compare__head { margin-bottom: 40px; max-width: 720px; }
.compare__head .h2 { margin-top: 16px; }

.compare__grid {
  display: grid;
  grid-template-columns: 1.1fr 1fr 1fr;
  border: 1px solid var(--border);
  border-radius: 4px;
  background: var(--surface);
  overflow: hidden;
}
.compare__row {
  display: contents;
}
.compare__cell {
  padding: 16px 20px;
  font-size: 14px;
  color: var(--text-2);
  border-bottom: 1px solid var(--border);
  border-right: 1px solid var(--border);
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.compare__cell:nth-child(3n) { border-right: 0; }
.compare__row:last-child .compare__cell { border-bottom: 0; }

.compare__head-row .compare__cell {
  background: rgba(255, 255, 255, 0.02);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-3);
  padding: 14px 20px;
}
.compare__attr {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-3);
  background: rgba(255, 255, 255, 0.015);
}
.compare__val--bold { color: var(--text); font-weight: 500; font-size: 15px; }
.compare__chip {
  display: inline-block;
  padding: 5px 10px;
  background: rgba(232, 147, 47, 0.08);
  color: var(--accent);
  border: 1px solid rgba(232, 147, 47, 0.22);
  border-radius: 999px;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
}
.compare__bar {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  width: 100%;
}
.compare__bar-track {
  flex: 1;
  height: 6px;
  background: rgba(255, 255, 255, 0.05);
  border-radius: 999px;
  overflow: hidden;
  min-width: 80px;
}
.compare__bar-fill {
  display: block;
  height: 100%;
  background: var(--accent);
  border-radius: 999px;
}
.compare__bar-fill--alt { background: var(--accent-bright); opacity: 0.85; }

@media (max-width: 780px) {
  .compare__grid { grid-template-columns: 1fr; }
  .compare__cell { border-right: 0; }
  .compare__head-row { display: none; }
  .compare__attr {
    background: rgba(255, 255, 255, 0.03);
    border-bottom: 0;
  }
  .compare__cell[data-label]::before {
    content: attr(data-label);
    display: block;
    margin-bottom: 6px;
    font-family: var(--mono);
    font-size: 10px;
    line-height: 1.2;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--text-3);
  }
}

/* ============================================================
   OPERATIONS — 3-cell row
   ============================================================ */
.ops__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border: 1px solid var(--border);
  border-radius: 4px;
  background: var(--surface);
}
@media (max-width: 880px) {
  .ops__grid { grid-template-columns: 1fr; }
}

.ops__cell {
  padding: 28px 28px 32px;
  border-right: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.ops__cell:last-child { border-right: 0; }
@media (max-width: 880px) {
  .ops__cell { border-right: 0; border-bottom: 1px solid var(--border); }
  .ops__cell:last-child { border-bottom: 0; }
}

.ops__num {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--accent);
}
.ops__title {
  font-family: var(--sans);
  font-size: 19px;
  font-weight: 500;
  letter-spacing: -0.02em;
  line-height: 1.2;
  color: var(--text);
  margin: 0;
}
.ops__body {
  font-size: 15px;
  line-height: 1.65;
  color: var(--text-2);
  margin: 0;
}

/* Partners block */
.partners {
  margin-top: 48px;
  padding-top: 32px;
  border-top: 1px solid var(--border);
}
.partners__label {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--text-3);
  margin-bottom: 16px;
}
.partners__row {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  border: 1px solid var(--border);
  border-radius: 4px;
  overflow: hidden;
}
.partner {
  position: relative;
  padding: 22px 20px;
  border-right: 1px solid var(--border);
  font-family: var(--sans);
  font-size: 16px;
  font-weight: 500;
  letter-spacing: -0.01em;
  color: var(--text);
  display: flex;
  flex-direction: column;
  gap: 6px;
  background: var(--surface);
  overflow: hidden;
  transition: background .25s var(--ease);
}
.partner::before {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 2px;
  background: var(--accent);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .35s var(--ease);
  pointer-events: none;
}
.partner:hover {
  background: var(--surface-2);
}
.partner:hover::before {
  transform: scaleX(1);
}
.partner:hover .partner__sub { color: var(--accent); }
.partner:last-child { border-right: 0; }
.partner__sub {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--text-3);
  font-weight: 400;
  transition: color .25s var(--ease);
}
@media (max-width: 880px) {
  .partners__row { grid-template-columns: 1fr 1fr; }
  .partner:nth-child(2n) { border-right: 0; }
  .partner:nth-child(1), .partner:nth-child(2) { border-bottom: 1px solid var(--border); }
}
@media (max-width: 520px) {
  .partners__row { grid-template-columns: 1fr; }
  .partner { border-right: 0; border-bottom: 1px solid var(--border); }
  .partner:last-child { border-bottom: 0; }
}

/* ============================================================
   DDQ — diligence quick-look
   ============================================================ */
.ddq {
  display: grid;
  gap: 0;
  border: 1px solid var(--border);
  border-radius: 4px;
  background: var(--surface);
}
.ddq__item,
.ddq__row {
  padding: 22px 24px;
  border-bottom: 1px solid var(--border);
}
.ddq__item:last-child,
.ddq__row:last-child { border-bottom: 0; }
.ddq__q {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent);
  margin: 0 0 10px;
}
.ddq__a {
  font-size: 15px;
  line-height: 1.65;
  color: var(--text-2);
  margin: 0;
  max-width: 80ch;
}
.ddq__termlink {
  display: inline-block;
  margin-top: 8px;
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-3);
  border-bottom: 1px dotted var(--border-strong);
  padding-bottom: 1px;
  transition: color .18s var(--ease), border-color .18s var(--ease);
}
.ddq__termlink + .ddq__termlink { margin-left: 14px; }
.ddq__termlink:hover,
.ddq__termlink:focus-visible {
  color: var(--accent);
  border-bottom-color: var(--accent);
}
.ddq__inline {
  color: var(--text-1);
  border-bottom: 1px dotted var(--border-strong);
  padding-bottom: 1px;
  transition: color .18s var(--ease), border-color .18s var(--ease);
}
.ddq__inline:hover,
.ddq__inline:focus-visible {
  color: var(--accent);
  border-bottom-color: var(--accent);
}

/* ============================================================
   GLOSSARY — operations page reference list
   ============================================================ */
.glossary {
  display: grid;
  gap: 0;
  border: 1px solid var(--border);
  border-radius: 4px;
  background: var(--surface);
  margin: 0;
}
.glossary__item {
  padding: 22px 24px;
  border-bottom: 1px solid var(--border);
  scroll-margin-top: 96px;
  position: relative;
  transition: background .2s var(--ease);
}
.glossary__item::before {
  content: "";
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 2px;
  background: var(--accent);
  transform: scaleY(0);
  transform-origin: top;
  transition: transform .25s var(--ease);
}
.glossary__item:last-child { border-bottom: 0; }
.glossary__item:hover { background: var(--surface-2); }
.glossary__item:hover::before { transform: scaleY(1); }
.glossary__item:target {
  background: var(--surface-2);
  animation: ba-target-flash 1.4s var(--ease);
}
.glossary__item:target::before { transform: scaleY(1); }
.glossary__item:target .glossary__term { color: var(--accent-hover); }
.glossary__term {
  display: block;
  font-family: var(--sans);
  font-size: 16.5px;
  font-weight: 600;
  letter-spacing: -0.005em;
  color: var(--text);
  margin: 0 0 8px;
}
.glossary__def {
  font-size: 14.5px;
  line-height: 1.7;
  color: var(--text-2);
  margin: 0;
  max-width: 84ch;
}
.glossary__def strong { color: var(--text); font-weight: 500; }

/* Page-hero "on this page" quicknav (mirrors topbar feel) */
.pagehero__quicknav {
  margin-top: 22px;
  display: inline-flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--text-3);
}
.pagehero__quicknav a {
  color: var(--text-2);
  border-bottom: 1px dotted var(--border-strong);
  padding-bottom: 1px;
  transition: color .18s var(--ease), border-color .18s var(--ease);
}
.pagehero__quicknav a:hover,
.pagehero__quicknav a:focus-visible {
  color: var(--accent);
  border-bottom-color: var(--accent);
}

/* ============================================================
   STRATEGY MIX — segmented bar
   ============================================================ */
.mix {
  display: flex;
  width: 100%;
  height: 10px;
  border-radius: 999px;
  overflow: hidden;
  background: rgba(255,255,255,0.04);
  border: 1px solid var(--border);
}
.mix__seg {
  height: 100%;
  transition: opacity .2s var(--ease);
}
.mix__seg--neutral { background: var(--accent); }
.mix__seg--mixed   { background: var(--accent-bright); opacity: 0.85; }
.mix__seg--long    { background: var(--up); opacity: 0.85; }
.mix__legend {
  display: flex;
  flex-wrap: wrap;
  gap: 18px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-2);
}
.mix__legend > span { display: inline-flex; align-items: center; gap: 8px; }
.mix__dot {
  width: 10px; height: 10px;
  border-radius: 50%;
  display: inline-block;
}

/* ============================================================
   PROCESS RAIL — Fund I "how a position earns its seat"
   ============================================================ */
.process__head { margin-bottom: 48px; max-width: 720px; }
.process__head .h2 { margin-top: 16px; }
.process__rail {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  border: 1px solid var(--border);
  border-radius: 4px;
  background: var(--surface);
  overflow: hidden;
}
@media (max-width: 980px) { .process__rail { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .process__rail { grid-template-columns: 1fr; } }

.process__step {
  padding: 24px 24px 28px;
  border-right: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  gap: 12px;
  position: relative;
}
.process__step:last-child { border-right: 0; }
@media (max-width: 980px) {
  .process__step:nth-child(2n) { border-right: 0; }
  .process__step:nth-child(1), .process__step:nth-child(2) { border-bottom: 1px solid var(--border); }
}
@media (max-width: 600px) {
  .process__step { border-right: 0; border-bottom: 1px solid var(--border); }
  .process__step:last-child { border-bottom: 0; }
}

.process__num {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--accent);
}
.process__title {
  font-family: var(--sans);
  font-size: 19px;
  font-weight: 500;
  letter-spacing: -0.02em;
  color: var(--text);
  margin: 0;
}
.process__body {
  font-size: 14px;
  line-height: 1.6;
  color: var(--text-2);
  margin: 0;
}
.process__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 6px;
}
.process__tag {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--text-3);
  padding: 4px 8px;
  border: 1px solid var(--border);
  border-radius: 999px;
}

/* ============================================================
   INSIGHTS — filter bar + card grid
   ============================================================ */
.insights__filterbar {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  padding-bottom: 22px;
  margin-bottom: 24px;
  border-bottom: 1px solid var(--border);
}
.insights__pill {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: transparent;
  border: 1px solid var(--border);
  color: var(--text-2);
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  padding: 8px 14px;
  border-radius: 999px;
  cursor: pointer;
  transition: background .18s var(--ease), border-color .18s var(--ease), color .18s var(--ease);
}
.insights__pill:hover, .insights__pill:focus-visible {
  background: rgba(255, 255, 255, 0.04);
  border-color: var(--border-strong);
  color: var(--text);
}
.insights__pill.is-active {
  background: var(--accent);
  border-color: var(--accent);
  color: #0A0B0F;
}
.insights__pill-count {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.12em;
  opacity: 0.7;
}
.insights__pill.is-active .insights__pill-count { color: rgba(10, 11, 15, 0.7); opacity: 1; }
.insights__pill--rss {
  margin-left: auto;
  color: var(--text-3);
  text-decoration: none;
}
.insights__pill--rss:hover { color: var(--accent); border-color: var(--accent); }
.insights__pill--rss svg { display: block; }
.insights__empty {
  margin: 0 0 18px;
  padding: 16px 18px;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.04em;
  color: var(--text-3);
  border: 1px dashed var(--border);
  border-radius: 10px;
}
.card[hidden] { display: none !important; }
@media (max-width: 540px) {
  .insights__pill { padding: 8px 12px; font-size: 10px; }
  .insights__pill--rss { margin-left: 0; }
}

.insights__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
@media (max-width: 1000px) { .insights__grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 660px)  { .insights__grid { grid-template-columns: 1fr; } }

.card {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 28px 26px 30px;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 6px;
  color: var(--text);
  transition: border-color .25s var(--ease), background .25s var(--ease), transform .25s var(--ease);
}
.card:hover {
  border-color: var(--border-strong);
  background: var(--surface-2);
  transform: translateY(-2px);
}
.card__meta {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--text-3);
}
.card__meta span:first-child { color: var(--accent); }
.card__title {
  font-family: var(--sans);
  font-size: 19px;
  font-weight: 500;
  line-height: 1.25;
  letter-spacing: -0.018em;
  color: var(--text);
  margin: 0;
}
.card__excerpt {
  font-size: 14px;
  line-height: 1.6;
  color: var(--text-2);
  margin: 0;
  flex: 1;
}
.card__cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--accent);
  margin-top: 4px;
}
.card__cta::after { content: "→"; transition: transform .2s var(--ease); }
.card:hover .card__cta::after { transform: translateX(3px); }

/* ============================================================
   ARTICLE — insight detail page
   ============================================================ */
.article {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 280px;
  gap: 56px;
}
@media (max-width: 980px) {
  .article { grid-template-columns: 1fr; }
}

.prose {
  font-size: 17px;
  line-height: 1.7;
  color: var(--text);
  max-width: 70ch;
}
.prose h2 {
  font-family: var(--sans);
  font-size: clamp(20px, 2vw, 26px);
  font-weight: 500;
  letter-spacing: -0.02em;
  color: var(--text);
  margin: 40px 0 14px;
  line-height: 1.2;
}
.prose h3 {
  font-family: var(--sans);
  font-size: 18px;
  font-weight: 500;
  color: var(--text);
  margin: 28px 0 10px;
}
.prose p { margin: 0 0 18px; color: var(--text-2); }
.prose p strong { color: var(--text); font-weight: 600; }
.prose a {
  color: var(--accent);
  border-bottom: 1px solid rgba(232, 147, 47, 0.4);
  padding-bottom: 1px;
  transition: color .2s var(--ease), border-color .2s var(--ease);
}
.prose a:hover { color: var(--accent-hover); border-bottom-color: var(--accent-hover); }
.prose ul, .prose ol {
  margin: 0 0 22px;
  padding-left: 1.4em;
  color: var(--text-2);
}
.prose li { margin-bottom: 8px; }
.prose blockquote {
  margin: 28px 0;
  padding: 18px 22px;
  border-left: 2px solid var(--accent);
  background: rgba(232,147,47,0.04);
  font-size: 18px;
  line-height: 1.5;
  font-style: italic;
  color: var(--text);
}
.prose blockquote p { color: var(--text); margin: 0; }
.prose hr {
  border: 0;
  height: 1px;
  background: var(--border);
  margin: 36px 0;
}

.aside { display: flex; flex-direction: column; gap: 16px; }
.aside__card {
  padding: 18px 20px;
  border: 1px solid var(--border);
  background: var(--surface);
  border-radius: 4px;
}
.aside__label {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--text-3);
  margin-bottom: 8px;
}
.aside__card p {
  font-size: 14px;
  line-height: 1.55;
  color: var(--text-2);
  margin: 0;
}
.aside__card ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 8px;
}
.aside__card ul a {
  color: var(--text);
  font-size: 14px;
  border-bottom: 1px solid var(--border);
  padding-bottom: 6px;
  display: block;
  transition: color .2s var(--ease);
}
.aside__card ul a:hover { color: var(--accent); }

/* Gated content block */
.gate {
  padding: 28px 28px 30px;
  border: 1px solid var(--border-strong);
  background: rgba(232,147,47,0.04);
  border-radius: 6px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  max-width: 720px;
}
.gate__label {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 4px;
}
.gate__form {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 6px;
}
.gate__form input {
  flex: 1;
  min-width: 220px;
  padding: 12px 14px;
  background: rgba(0,0,0,0.3);
  border: 1px solid var(--border-strong);
  border-radius: 6px;
  color: var(--text);
  font-family: var(--sans);
  font-size: 14px;
}
.gate__form input:focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: var(--focus-ring);
}

/* ============================================================
   TEAM
   ============================================================ */
.team__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  border: 1px solid var(--border);
  border-radius: 4px;
  background: var(--surface);
  overflow: hidden;
}
@media (max-width: 980px) { .team__grid { grid-template-columns: 1fr; } }

.member {
  padding: 0 0 28px;
  border-right: 1px solid var(--border);
  border-bottom: 0;
  display: grid;
  grid-template-columns: 1fr;
  grid-template-areas:
    "photo"
    "header"
    "bio";
  gap: 18px;
  background: rgba(255,255,255,0.015);
}
.member:nth-child(3n) { border-right: 0; }
@media (max-width: 980px) {
  .member { border-right: 0; border-bottom: 1px solid var(--border); }
  .member:last-child { border-bottom: 0; }
}

.member__photo {
  grid-area: photo;
  margin: 0;
  aspect-ratio: 4 / 3;
  background: #06060a;
  overflow: hidden;
  border-bottom: 1px solid var(--border);
}
.member__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 18%;
}
.member > div:nth-of-type(1) { grid-area: header; align-self: center; padding: 0 24px; }
.member__name {
  font-family: var(--sans);
  font-size: 20px;
  font-weight: 500;
  letter-spacing: -0.02em;
  color: var(--text);
  margin: 0;
}
.member__role {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--text-3);
  margin-top: 4px;
}
.member__bio {
  grid-area: bio;
  font-size: 14px;
  line-height: 1.6;
  color: var(--text-2);
  margin: 0;
  padding: 0 24px;
}

.team-responsibilities {
  grid-template-columns: repeat(3, 1fr);
}
@media (max-width: 860px) { .team-responsibilities { grid-template-columns: 1fr; } }

/* ============================================================
   CONTACT
   ============================================================ */
.contact__grid {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: clamp(40px, 6vw, 80px);
  align-items: start;
}
@media (max-width: 900px) { .contact__grid { grid-template-columns: 1fr; } }

.contact__head { max-width: 360px; }
.contact__direct {
  display: grid;
  gap: 22px;
}
.contact__direct > div {
  display: grid;
  gap: 6px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--border);
}
.contact__direct > div:last-child { border-bottom: 0; }
.contact__direct strong {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--text-3);
  font-weight: 400;
}
.contact__direct a {
  color: var(--text);
  font-size: 16px;
  border-bottom: 1px solid rgba(232,147,47,0.5);
  padding-bottom: 2px;
  align-self: start;
  justify-self: start;
  transition: color .2s var(--ease);
}
.contact__direct a:hover { color: var(--accent); }

/* Contact form */
.contact-form {
  display: grid;
  gap: 16px;
}
.field { display: grid; gap: 8px; }
.field--row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}
@media (max-width: 560px) { .field--row { grid-template-columns: 1fr; } }
.field label {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--text-3);
}
.field input,
.field select,
.field textarea {
  padding: 12px 14px;
  background: rgba(0,0,0,0.3);
  border: 1px solid var(--border-strong);
  border-radius: 6px;
  color: var(--text);
  font-family: var(--sans);
  font-size: 15px;
  transition: border-color .2s var(--ease), background .2s var(--ease), box-shadow .2s var(--ease);
}
.field input:focus,
.field select:focus,
.field textarea:focus {
  outline: none;
  border-color: var(--accent);
  background: rgba(0,0,0,0.45);
  box-shadow: var(--focus-ring);
}
.field textarea { resize: vertical; min-height: 96px; }

/* Per-field validation error: JS-injected as the last child of .field and
   wired to its input via aria-describedby. Empty by default (display:none),
   so it adds no DOM weight or print artifact until a real error is set.
   Color uses --down (#F87171 ≈ 7.2:1 on --bg) — comfortably above WCAG AA. */
.field__error {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.04em;
  line-height: 1.5;
  color: var(--down);
  margin: 0;
}
.field__error:empty { display: none; }
.field input[aria-invalid="true"],
.field select[aria-invalid="true"],
.field textarea[aria-invalid="true"] {
  border-color: var(--down);
  background: rgba(248, 113, 113, 0.06);
}
.field input[aria-invalid="true"]:focus,
.field select[aria-invalid="true"]:focus,
.field textarea[aria-invalid="true"]:focus {
  border-color: var(--down);
  background: rgba(248, 113, 113, 0.10);
  box-shadow: var(--focus-ring-invalid);
}

.contact-form__note {
  font-family: var(--mono);
  font-size: 11px;
  line-height: 1.6;
  color: var(--text-dim);
  letter-spacing: 0.04em;
}
.contact-form__note a {
  color: var(--text-2);
  border-bottom: 1px dotted var(--border-strong);
  padding-bottom: 1px;
  transition: color .18s var(--ease), border-color .18s var(--ease);
}
.contact-form__note a:hover { color: var(--accent); border-bottom-color: var(--accent); }

/* Submit-status pill: visible only when state is set */
.contact-form__status {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.06em;
  line-height: 1.5;
  padding: 0;
  color: var(--text-2);
  min-height: 0;
}
.contact-form__status:empty { display: none; }
.contact-form__status.is-busy {
  padding: 10px 12px;
  border-left: 2px solid var(--accent);
  background: rgba(232, 147, 47, 0.06);
  color: var(--text);
}
.contact-form__status.is-success {
  padding: 10px 12px;
  border-left: 2px solid #4ade80;
  background: rgba(74, 222, 128, 0.08);
  color: #c8f7d8;
}
.contact-form__status.is-error {
  padding: 10px 12px;
  border-left: 2px solid #f87171;
  background: rgba(248, 113, 113, 0.07);
  color: #ffd6d6;
}

/* Submit button busy state */
.contact-form button[type="submit"][aria-busy="true"] {
  opacity: 0.6;
  cursor: progress;
}

/* Honeypot: visually hidden but kept in tab order off-screen */
.contact-form__honeypot {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
  opacity: 0;
}

/* CTA band used on portal */
.cta-band__inner {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: clamp(40px, 6vw, 72px);
  align-items: center;
}
@media (max-width: 900px) { .cta-band__inner { grid-template-columns: 1fr; } }

/* ============================================================
   FOOTER
   ============================================================ */
footer {
  background: #06060a;
  border-top: 1px solid var(--border);
  padding: 34px 0 28px;
  margin-top: 0;
}
.footer__top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: wrap;
  gap: 18px 28px;
  margin-bottom: 24px;
}
@media (max-width: 720px) { .footer__top { align-items: flex-start; flex-direction: column; } }

.footer__brand p {
  display: none;
}
.footer__col h5 {
  display: none;
}
.footer__col ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px 18px;
}
.footer__col a {
  font-size: 14px;
  color: var(--text-2);
  transition: color .2s var(--ease);
}
.footer__col a:hover { color: var(--text); }

/* Touch devices: enlarge the footer link tap targets to the ~44px touch
   guideline (WCAG 2.5.5). Footer links are 14px inline anchors with a 10px
   gap, so on a phone the targets are only ~22px tall — under the 24px WCAG
   2.5.8 AA floor and well under 44px. Scoped to `pointer: coarse` so the
   desktop/mouse footer is unchanged pixel-for-pixel; the print theme hides
   these columns entirely, so it is unaffected too. `display:block` makes the
   whole column-width row tappable; `padding:12px 0` over a ~21.7px line box
   yields a ~45.7px target, and `gap:0` keeps the column rhythm sensible. */
@media (pointer: coarse) {
  .footer__col ul { gap: 0; }
  .footer__col a { display: block; padding: 12px 0; }
}

.footer__legal {
  font-family: var(--mono);
  font-size: 12px;
  line-height: 1.65;
  color: var(--text-dim);
  margin: 0 0 18px;
  padding-top: 20px;
  border-top: 1px solid var(--border);
  max-width: 96ch;
}
.footer__bottom {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--text-dim);
}

/* ============================================================
   REVEAL ON SCROLL
   ============================================================ */
/* Visible by default so no content is ever hidden when JavaScript is
   unavailable — no-JS browsers, locked-down compliance/IT environments
   (common in the institutional-allocator audience), JS load failures, and
   non-rendering crawlers / link-preview bots. The hidden→reveal scroll
   motion is layered on only when scripting is available, gated purely in
   CSS via the `scripting` media feature. This needs no inline script (the
   site CSP is `script-src 'self'`, which blocks inline JS) and produces no
   flash of content. Browsers that don't support the `scripting` feature
   skip the block entirely and show content immediately. */
.reveal { opacity: 1; transform: none; }
@media (scripting: enabled) {
  .reveal {
    opacity: 0;
    transform: translateY(14px);
    transition: opacity .65s var(--ease), transform .65s var(--ease);
  }
  .reveal.is-in { opacity: 1; transform: translateY(0); }
}

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

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; }
  .reveal { opacity: 1; transform: none; }
}

/* Skip link for accessibility */
.skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 1000;
  padding: 10px 14px;
  background: var(--accent);
  color: #0b0b0f;
  font-family: var(--mono);
  font-size: 12px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  border-radius: 4px;
}
.skip-link:focus { left: 12px; top: 12px; }

/* ============================================================
   HOVER POLISH — extend partner-row treatment to ops / fund / ddq
   Subtle raised surface + accent slide-in. Same vocabulary site-wide.
   ============================================================ */
.ops__cell {
  position: relative;
  background: transparent;
  overflow: hidden;
  transition: background .25s var(--ease);
}
.ops__cell::before {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 2px;
  background: var(--accent);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .35s var(--ease);
  pointer-events: none;
}
.ops__cell:hover { background: var(--surface-2); }
.ops__cell:hover::before { transform: scaleX(1); }
.ops__cell:hover .ops__num { color: var(--accent-hover); }

.fund {
  overflow: hidden;
}
.fund::before {
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 2px;
  background: var(--accent);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .4s var(--ease);
  pointer-events: none;
  z-index: 2;
}
.fund:hover::before { transform: scaleX(1); }

.ddq__item,
.ddq__row {
  position: relative;
  transition: background .2s var(--ease);
}
.ddq__item::before,
.ddq__row::before {
  content: "";
  position: absolute;
  left: 0; top: 0; bottom: 0;
  width: 2px;
  background: var(--accent);
  transform: scaleY(0);
  transform-origin: top center;
  transition: transform .3s var(--ease);
  pointer-events: none;
}
.ddq__item:hover,
.ddq__row:hover { background: var(--surface-2); }
.ddq__item:hover::before,
.ddq__row:hover::before { transform: scaleY(1); }

/* Section anchor focus — when keyboard nav jumps to a DDQ section,
   briefly highlight the heading so the user knows where they landed. */
@keyframes ba-target-flash {
  0%   { box-shadow: 0 0 0 0 rgba(232,147,47, 0.0); }
  20%  { box-shadow: 0 0 0 6px rgba(232,147,47, 0.22); }
  100% { box-shadow: 0 0 0 0 rgba(232,147,47, 0.0); }
}
section[id]:target > .container > .reveal,
section[id]:target > .container > div.reveal {
  animation: ba-target-flash 1.4s var(--ease) 1;
  border-radius: 4px;
}
section[id]:target > .container > .reveal .eyebrow {
  color: var(--accent-hover);
}

/* ============================================================
   AUDIENCE GATE — accredited / qualified-institutional confirm
   First-visit, cookie-remembered (180 days). Soft gate: visitor
   can dismiss without leaving the page. Built by site.js.
   ============================================================ */
.audience-gate {
  position: fixed;
  inset: 0;
  z-index: 2000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: clamp(16px, 4vw, 48px);
  background: rgba(6, 6, 9, 0.78);
  backdrop-filter: blur(10px) saturate(120%);
  -webkit-backdrop-filter: blur(10px) saturate(120%);
  opacity: 0;
  transition: opacity .35s var(--ease);
}
.audience-gate[data-open="true"] {
  display: flex;
  opacity: 1;
}
.audience-gate__card {
  width: 100%;
  max-width: 560px;
  background: linear-gradient(180deg, rgba(255,255,255,0.04), rgba(255,255,255,0.015)) , var(--bg-2);
  border: 1px solid var(--border-strong);
  border-radius: 8px;
  padding: clamp(24px, 3.5vw, 36px);
  position: relative;
  box-shadow:
    0 32px 80px rgba(0, 0, 0, 0.55),
    0 0 0 1px rgba(232, 147, 47, 0.05) inset;
  transform: translateY(8px);
  transition: transform .35s var(--ease);
}
.audience-gate[data-open="true"] .audience-gate__card { transform: translateY(0); }
.audience-gate__mark {
  width: 38px;
  height: 38px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(232,147,47, 0.28);
  background: rgba(232, 147, 47, 0.08);
  border-radius: 4px;
  color: var(--accent);
  margin-bottom: 18px;
}
.audience-gate__mark svg { width: 22px; height: 22px; }
.audience-gate__eyebrow {
  font-family: var(--mono);
  font-size: 10px;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 10px;
}
.audience-gate__title {
  font-family: var(--sans);
  font-size: clamp(22px, 2.6vw, 28px);
  letter-spacing: -0.025em;
  font-weight: 500;
  color: var(--text);
  line-height: 1.15;
  margin: 0 0 14px;
}
.audience-gate__body {
  font-size: 14.5px;
  line-height: 1.6;
  color: var(--text-2);
  margin: 0 0 22px;
}
.audience-gate__body strong { color: var(--text); font-weight: 500; }
.audience-gate__body a { color: var(--accent); border-bottom: 1px solid rgba(232,147,47, 0.5); }
.audience-gate__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
}
.audience-gate__actions .btn { padding: 12px 18px; }
.audience-gate__meta {
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px dashed var(--border);
  font-family: var(--mono);
  font-size: 10.5px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--text-3);
}
.audience-gate__meta a { color: var(--text-2); border-bottom: 1px dotted var(--border-strong); }
.audience-gate__meta a:hover { color: var(--accent); border-bottom-color: var(--accent); }

/* When the gate is open, prevent background scroll. */
body[data-gate-open="true"] { overflow: hidden; }

@media (max-width: 520px) {
  .audience-gate__actions { flex-direction: column; align-items: stretch; }
  .audience-gate__actions .btn { width: 100%; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) {
  .audience-gate { transition: none; }
  .audience-gate__card { transform: none; transition: none; }
  section[id]:target > .container > .reveal,
  section[id]:target > .container > div.reveal { animation: none; }
}

/* ============================================================
   HOME · "Why allocators work with us" trust capsule
   Single-source-of-truth responsive rules for the four-cell
   trust grid added to index.html. Keeps the page from carrying
   inline media queries.
   ============================================================ */
.trust__grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1px;
  background: var(--border);
  border: 1px solid var(--border);
}
.trust__grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.trust__grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.trust__cell {
  background: var(--bg-2);
  padding: clamp(20px, 2vw, 28px);
  transition: background .25s var(--ease);
}
.trust__cell:hover { background: var(--bg-3); }
.trust__cell-num {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 10px;
}
.trust__cell-headline {
  font-family: var(--sans);
  font-size: clamp(28px, 2.8vw, 38px);
  letter-spacing: -0.02em;
  line-height: 1.05;
  color: var(--text);
  margin-bottom: 8px;
}
.trust__cell-body {
  color: var(--text-2);
  font-size: 14px;
  line-height: 1.55;
  margin: 0;
  max-width: 68ch;
}
@media (max-width: 1000px) {
  .trust__grid,
  .trust__grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .trust__grid,
  .trust__grid--2,
  .trust__grid--3 { grid-template-columns: minmax(0, 1fr); }
}

/* ============================================================
   FAQ — visible disclosure list (home page).
   Uses native <details>/<summary> for accessibility + no-JS.
   Mirrors the FAQPage JSON-LD already on the home page so the
   schema and the rendered DOM stay in lockstep.
   ============================================================ */
.faq {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1px;
  background: var(--border);
  border: 1px solid var(--border);
}
.faq__item {
  background: var(--bg-2);
  transition: background .25s var(--ease);
}
.faq__item[open] { background: var(--bg-3); }
.faq__q {
  list-style: none;
  cursor: pointer;
  display: grid;
  grid-template-columns: 28px 1fr 28px;
  align-items: baseline;
  gap: 14px;
  padding: clamp(18px, 2vw, 24px) clamp(20px, 2.2vw, 28px);
  font-family: var(--sans);
  font-size: clamp(16px, 1.4vw, 18px);
  letter-spacing: -0.01em;
  line-height: 1.4;
  color: var(--text);
  position: relative;
  transition: color .2s var(--ease);
}
.faq__q::-webkit-details-marker { display: none; }
.faq__q::marker { content: ""; }
.faq__q-num {
  font-family: var(--mono);
  font-size: 11px;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--accent);
  align-self: center;
}
.faq__q-icon {
  font-family: var(--mono);
  font-size: 18px;
  color: var(--text-2);
  text-align: right;
  align-self: center;
  transition: transform .25s var(--ease), color .2s var(--ease);
  user-select: none;
}
.faq__item[open] .faq__q-icon { transform: rotate(45deg); color: var(--accent); }
.faq__item:hover .faq__q { color: var(--text); }
.faq__item:hover .faq__q-icon { color: var(--accent); }
.faq__a {
  padding: 4px clamp(20px, 2.2vw, 28px) clamp(20px, 2vw, 28px) calc(28px + 14px + clamp(20px, 2.2vw, 28px));
  color: var(--text-2);
  font-size: 14.5px;
  line-height: 1.65;
  max-width: 78ch;
}
.faq__a p { margin: 0 0 10px; }
.faq__a p:last-child { margin-bottom: 0; }
.faq__a a { color: var(--text); border-bottom: 1px solid var(--border-strong, rgba(232,147,47,0.4)); }
.faq__a a:hover { color: var(--accent); }
@media (max-width: 560px) {
  .faq__q { grid-template-columns: 20px 1fr 20px; gap: 10px; }
  .faq__a { padding-left: clamp(20px, 2.2vw, 28px); }
}

/* ============================================================
   PRINT STYLES — institutional document mode (2026-05-15 Late)

   Institutional LP workflows routinely involve printing a page
   for an IC packet, exporting to PDF before circulating under
   NDA, or saving a quarterly letter for an investment committee
   pre-read. Without this block, hitting print delivered the
   live dark theme with the topbar, sticky nav, audience
   gate, and partners marquee all chewing into page space and
   wasting ink. This block strips the screen chrome, inverts the
   palette to black on white, opens every <details>, shows URLs
   after external links, and avoids page-break-inside on every
   grid cell, fund card, FAQ item, and DDQ block — so the result
   prints as a clean institutional document.

   Print rules order:
     1.  @page sizing + universal palette reset
     2.  Chrome hidden (topbar, audience gate, mobile nav,
         CTA buttons, .reveal motion, partners marquee, scroll-to-
         top, ::before/::after decorative blocks)
     3.  Typography normalized (sans body, generous leading,
         orphans/widows safeguards)
     4.  Links: external URLs printed after the text; internal
         links stay clean
     5.  Component-by-component pagination guards (no page break
         inside trust__cell / ops__cell / fund / faq__item / .card
         / .ddq__item / .glossary__entry)
     6.  Disclaimer footer styled to land at the foot of the
         document
   ============================================================ */
@media print {
  /* ---------- Page setup ---------- */
  @page {
    size: A4;
    margin: 18mm 14mm 22mm 14mm;
  }
  @page :first {
    margin-top: 14mm;
  }

  /* ---------- Universal reset to a print-friendly palette ---------- */
  :root {
    --bg: #ffffff;
    --bg-2: #ffffff;
    --bg-3: #ffffff;
    --ink-2: #ffffff;
    --surface: transparent;
    --surface-2: transparent;
    --glass: transparent;
    --glass-border: rgba(0, 0, 0, 0.18);
    --text: #0b0b0f;
    --text-2: #1f1f24;
    --text-3: #2c2c33;
    --text-dim: #4a4a52;
    --text-faint: #6c6c72;
    --border: rgba(0, 0, 0, 0.22);
    --border-strong: rgba(0, 0, 0, 0.32);
    --line: rgba(0, 0, 0, 0.22);
    --accent: #8a4f12;       /* darker amber for print contrast */
    --accent-hover: #8a4f12;
    --accent-bright: #5a3b1e;
    --accent-soft: rgba(138, 79, 18, 0.10);
    --accent-glow: transparent;
    --up: #0b6b32;
    --down: #8a1414;
  }

  html, body {
    background: #ffffff !important;
    color: #0b0b0f !important;
    color-scheme: light;
  }
  body {
    font-family: var(--sans);
    font-size: 10.5pt;
    line-height: 1.55;
    -webkit-print-color-adjust: economy;
    print-color-adjust: economy;
  }

  /* Strip every decorative gradient / shadow / blur so nothing
     burns ink at the page edge. */
  *, *::before, *::after {
    background-image: none !important;
    box-shadow: none !important;
    text-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    filter: none !important;
    animation: none !important;
    transition: none !important;
  }

  /* ---------- Hide screen-only chrome ---------- */
  .topbar,
  .nav__overlay,
  .nav__toggle,
  .nav__cta,
  .skip-link,
  .audience-gate,
  .audience-gate__backdrop,
  .partners,
  .reveal:not(.is-in),       /* prevent reveal-hidden state from suppressing print */
  .btn,
  .btn--primary,
  .btn--ghost,
  .btn--small,
  [aria-hidden="true"].topbar__dot,
  .pagehero__cta,
  .scroll-top,
  .toast,
  .cookie-banner,
  noscript {
    display: none !important;
  }

  /* The reveal motion class sets opacity:0 by default; force visible. */
  .reveal {
    opacity: 1 !important;
    transform: none !important;
  }

  /* ---------- Nav: reduce to a static brand line on page 1 ---------- */
  .nav {
    position: static !important;
    background: transparent !important;
    border-bottom: 1px solid var(--border) !important;
    padding: 0 0 6mm 0 !important;
    margin: 0 0 8mm 0 !important;
  }
  .nav__inner {
    display: flex !important;
    align-items: baseline !important;
    justify-content: space-between !important;
    padding: 0 !important;
    height: auto !important;
    min-height: 0 !important;
  }
  .nav__links {
    display: none !important;
  }
  .brand {
    color: #0b0b0f !important;
    text-decoration: none !important;
    font-weight: 700 !important;
  }
  .brand__mark svg { width: 22pt !important; height: auto !important; color: #0b0b0f !important; }
  .brand__word { color: #0b0b0f !important; font-size: 14pt !important; letter-spacing: -0.01em !important; }
  .brand__sub { color: var(--text-dim) !important; font-size: 9pt !important; margin-left: 4pt !important; }

  /* ---------- Page hero ---------- */
  .pagehero {
    padding: 0 0 6mm 0 !important;
    background: transparent !important;
    border-bottom: 1px solid var(--border) !important;
    margin: 0 0 8mm 0 !important;
  }
  .pagehero::after, .pagehero::before { display: none !important; }
  .pagehero h1, .pagehero .h1 {
    color: #0b0b0f !important;
    font-size: 22pt !important;
    line-height: 1.18 !important;
    margin: 4mm 0 3mm 0 !important;
  }
  .pagehero__meta, .eyebrow, .kicker {
    color: var(--text-dim) !important;
    font-size: 8.5pt !important;
    letter-spacing: 0.14em !important;
  }
  .pagehero__quicknav {
    display: none !important;       /* the quicknav row is only useful in a live page */
  }

  /* ---------- Sections ---------- */
  .section, section {
    padding: 4mm 0 !important;
    background: transparent !important;
    page-break-inside: auto;
  }
  .section--ink2, .section--tight, .section--contact {
    background: transparent !important;
  }
  .container {
    max-width: 100% !important;
    padding: 0 !important;
    width: 100% !important;
  }

  /* ---------- Typography ---------- */
  h1, h2, h3, h4, h5, .h1, .h2, .h3 {
    color: #0b0b0f !important;
    page-break-after: avoid;
    break-after: avoid;
    page-break-inside: avoid;
    break-inside: avoid;
    orphans: 3;
    widows: 3;
  }
  h1, .h1 { font-size: 20pt !important; line-height: 1.18 !important; margin: 6mm 0 3mm !important; }
  h2, .h2 { font-size: 15pt !important; line-height: 1.22 !important; margin: 6mm 0 3mm !important; }
  h3, .h3 { font-size: 12pt !important; line-height: 1.28 !important; margin: 5mm 0 2mm !important; }
  h4, h5  { font-size: 10.5pt !important; line-height: 1.3 !important; margin: 4mm 0 2mm !important; }
  p, li, blockquote {
    orphans: 3;
    widows: 3;
    color: #0b0b0f !important;
  }
  p { margin: 0 0 3mm 0 !important; }
  .lede { font-size: 11.5pt !important; color: var(--text-2) !important; }
  .accent { color: var(--accent) !important; font-weight: 600 !important; }
  blockquote {
    border-left: 2pt solid var(--accent) !important;
    padding: 0 0 0 4mm !important;
    margin: 4mm 0 !important;
    font-style: italic;
  }

  /* ---------- Links ---------- */
  a {
    color: #0b0b0f !important;
    text-decoration: underline !important;
    text-underline-offset: 2px;
    word-break: break-word;
  }
  /* Show URL only for external links; internal cross-refs would
     just clutter a printed page where every other line is a link. */
  a[href^="http"]:not([href*="blockarrow.xyz"])::after {
    content: " (" attr(href) ")";
    font-family: var(--mono);
    font-size: 8pt;
    color: var(--text-dim);
    word-break: break-all;
  }
  a[href^="mailto:"]::after,
  a[href^="tel:"]::after {
    content: " (" attr(href) ")";
    font-family: var(--mono);
    font-size: 8pt;
    color: var(--text-dim);
  }

  /* ---------- Grids (trust / ops / strategies) print as stacked blocks ---------- */
  .trust__grid, .ops__grid, .strat__cards, .insights__grid, .partners__row {
    display: block !important;
    grid-template-columns: none !important;
  }
  .trust__cell, .ops__cell, .fund, .card,
  .ddq__item, .ddq__row, .glossary__entry, .faq__item, .insight__card, .member, .partner {
    page-break-inside: avoid;
    break-inside: avoid;
    background: transparent !important;
    border: 1pt solid var(--border) !important;
    padding: 4mm !important;
    margin: 0 0 4mm 0 !important;
    color: #0b0b0f !important;
  }
  .trust__cell-num, .ops__num, .fund__tag {
    color: var(--accent) !important;
    font-family: var(--mono);
    font-size: 8.5pt !important;
    letter-spacing: 0.14em !important;
  }
  .trust__cell-headline, .ops__title, .fund__name {
    color: #0b0b0f !important;
    font-size: 12pt !important;
    line-height: 1.25 !important;
    margin: 1mm 0 2mm 0 !important;
  }
  .trust__cell-body, .ops__body, .fund__pitch, .card__excerpt {
    color: var(--text-2) !important;
    font-size: 10pt !important;
  }
  .fund__terms {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 3mm !important;
    margin: 3mm 0 !important;
    border-top: 1px solid var(--border) !important;
    border-bottom: 1px solid var(--border) !important;
    padding: 3mm 0 !important;
  }
  .fund__term-label { font-size: 7.5pt !important; color: var(--text-dim) !important; letter-spacing: 0.14em !important; }
  .fund__term-value { font-size: 10pt !important; color: #0b0b0f !important; font-weight: 600 !important; }

  /* ---------- FAQ / disclosures details: open all on print ---------- */
  details, details.faq__item {
    page-break-inside: avoid;
    break-inside: avoid;
  }
  details > summary,
  .faq__q {
    list-style: none !important;
    cursor: default !important;
    color: #0b0b0f !important;
    font-weight: 600 !important;
    padding: 0 !important;
    background: transparent !important;
    page-break-after: avoid;
    break-after: avoid;
  }
  .faq__q-icon { display: none !important; }
  .faq__q-num { color: var(--accent) !important; }
  details[open], details {
    /* Force-open closed details so the reader can see every answer. */
  }
  details > *:not(summary) {
    display: block !important;
  }
  details::before {
    /* Open marker for visual cue only */
    content: "";
  }
  .faq__a {
    padding: 1mm 0 3mm 0 !important;
    color: var(--text-2) !important;
    font-size: 10pt !important;
    max-width: 100% !important;
  }

  /* ---------- DDQ items ---------- */
  .ddq__inline, .ddq__termlink {
    color: var(--accent) !important;
    text-decoration: underline !important;
  }
  .ddq__answer, .ddq__body { font-size: 10pt !important; }

  /* ---------- Insights cards / list ---------- */
  .card { display: block !important; }
  .card__meta {
    color: var(--text-dim) !important;
    font-size: 8.5pt !important;
    letter-spacing: 0.10em !important;
    margin-bottom: 1.5mm !important;
  }
  .card__title { font-size: 12pt !important; line-height: 1.25 !important; }
  .card__cta { color: var(--accent) !important; font-weight: 600 !important; font-size: 9pt !important; }

  /* ---------- Tear sheets / tables ---------- */
  table {
    width: 100% !important;
    border-collapse: collapse !important;
    page-break-inside: auto;
  }
  thead { display: table-header-group; }
  tr, td, th {
    page-break-inside: avoid;
    break-inside: avoid;
    border: 1pt solid var(--border) !important;
    padding: 2mm 3mm !important;
    color: #0b0b0f !important;
    font-size: 9.5pt !important;
  }
  th {
    background: rgba(0, 0, 0, 0.04) !important;
    text-align: left;
    font-weight: 600;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  /* ---------- Images ---------- */
  img, svg {
    max-width: 100% !important;
    height: auto !important;
    page-break-inside: avoid;
    break-inside: avoid;
  }

  /* ---------- Footer disclaimer ---------- */
  footer {
    margin-top: 10mm !important;
    border-top: 1pt solid var(--border) !important;
    padding-top: 5mm !important;
    page-break-inside: avoid;
    break-inside: avoid;
    background: transparent !important;
  }
  .footer__top, .footer__col, .footer__brand p {
    /* The four footer link columns are noise on print — keep
       only the disclaimer + the firm bottom line. */
    display: none !important;
  }
  .footer__legal {
    color: var(--text-2) !important;
    border-top: 0 !important;
    padding-top: 0 !important;
    font-family: var(--mono) !important;
    font-size: 8.5pt !important;
    line-height: 1.55 !important;
    max-width: 100% !important;
    margin: 0 0 4mm 0 !important;
  }
  .footer__bottom {
    color: var(--text-dim) !important;
    font-family: var(--mono) !important;
    font-size: 8.5pt !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase;
    border-top: 1pt solid var(--border) !important;
    padding-top: 3mm !important;
  }

  /* ---------- Audience gate must never overlay a printed page ---------- */
  .audience-gate, .audience-gate__backdrop, .audience-gate__card {
    display: none !important;
    visibility: hidden !important;
  }

  /* ---------- Page-break helpers ---------- */
  .section + .section { page-break-before: auto; }
  h2, .h2 { page-break-before: auto; }       /* let the engine pick — explicit break is too aggressive on a single-page print */

  /* ---------- Mark "no-print" / "print-only" if pages add them later ---------- */
  .no-print { display: none !important; }
  .print-only { display: block !important; }
}

/* ============================================================
   PREMIUM / DISCREET TREATMENTS (FAQ + Process rework, 2026-05)
   Restrained typography, no boxy accordions, no monospaced
   chrome, no orange hairlines. Allocator-facing, not SaaS.
   ============================================================ */

/* Quiet page hero: drop the orange gradient line, calmer rhythm */
.pagehero--quiet::after { display: none !important; }
.pagehero--quiet { border-bottom: 1px solid var(--border); }

/* Understated sans overline (replaces the mono eyebrow on these pages) */
.overline {
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--text-3);
}

/* Restrained heading — lighter and smaller than the big .display */
.heading-quiet {
  font-family: var(--sans);
  font-size: clamp(30px, 3.8vw, 50px);
  font-weight: 400;
  line-height: 1.08;
  letter-spacing: -0.03em;
  color: var(--text);
  margin: 20px 0 22px;
}
.heading-quiet .accent { color: var(--accent); }

.lede-quiet {
  font-size: clamp(16px, 1.25vw, 18px);
  line-height: 1.6;
  color: var(--text-2);
  max-width: 56ch;
  margin: 0;
  font-weight: 400;
}

/* ---------- Editorial Q&A (premium FAQ) ---------- */
.qa { max-width: 800px; }
.qa__item { border-top: 1px solid var(--border); }
.qa__item:last-child { border-bottom: 1px solid var(--border); }
.qa__q {
  list-style: none;
  cursor: pointer;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: clamp(24px, 4vw, 48px);
  padding: clamp(26px, 3vw, 34px) 0;
  font-family: var(--sans);
  font-size: clamp(18px, 1.5vw, 22px);
  font-weight: 400;
  letter-spacing: -0.02em;
  line-height: 1.38;
  color: var(--text);
  transition: color .2s var(--ease);
}
.qa__q::-webkit-details-marker { display: none; }
.qa__q::marker { content: ""; }
.qa__q-text { flex: 1 1 auto; }
.qa__q-mark { position: relative; flex: 0 0 auto; width: 15px; height: 15px; margin-top: clamp(6px, 0.6vw, 9px); }
.qa__q-mark::before, .qa__q-mark::after {
  content: ""; position: absolute; background: var(--text-3);
  transition: background .3s var(--ease), transform .3s var(--ease);
}
.qa__q-mark::before { top: 7px; left: 0; width: 15px; height: 1px; }
.qa__q-mark::after  { left: 7px; top: 0; width: 1px; height: 15px; }
.qa__item[open] .qa__q-mark::after { transform: scaleY(0); }
.qa__item[open] .qa__q-mark::before { background: var(--accent); }
.qa__q:hover { color: var(--accent-hover); }
.qa__q:hover .qa__q-mark::before, .qa__q:hover .qa__q-mark::after { background: var(--accent); }
.qa__a {
  padding: 0 clamp(0px, 5vw, 56px) clamp(28px, 3vw, 36px) 0;
  max-width: 62ch;
  color: var(--text-2);
  font-size: 16px;
  line-height: 1.75;
}
.qa__a p { margin: 0 0 12px; }
.qa__a p:last-child { margin: 0; }
.qa__a a { color: var(--text); border-bottom: 1px solid var(--accent); padding-bottom: 1px; transition: color .2s var(--ease); }
.qa__a a:hover { color: var(--accent); }
@media (max-width: 600px) { .qa__a { padding-right: 0; } }

/* ---------- Abstract approach (premium Process) ---------- */
.approach { display: grid; max-width: 900px; }
.approach__item {
  display: grid;
  grid-template-columns: 72px 1fr;
  gap: clamp(20px, 4vw, 56px);
  padding: clamp(30px, 3.6vw, 46px) 0;
  border-top: 1px solid var(--border);
}
.approach__item:last-child { border-bottom: 1px solid var(--border); }
.approach__num {
  font-family: var(--sans);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0.06em;
  color: var(--accent);
  padding-top: 7px;
}
.approach__body h2 {
  font-family: var(--sans);
  font-size: clamp(20px, 2vw, 27px);
  font-weight: 400;
  letter-spacing: -0.025em;
  color: var(--text);
  margin: 0 0 12px;
}
.approach__body p {
  margin: 0;
  color: var(--text-2);
  font-size: 16px;
  line-height: 1.72;
  max-width: 58ch;
}
@media (max-width: 600px) {
  .approach__item { grid-template-columns: 1fr; gap: 10px; }
  .approach__num { padding-top: 0; }
}

/* ============================================================
   BA_OS — homepage hero + strategy cards (unified system)
   Promo topbar retired site-wide; the sticky nav is the only chrome.
   ============================================================ */
.topbar { display: none !important; }

/* Home hero — full-viewport instrument with Three.js system */
.os-hero {
  position: relative;
  min-height: 78vh;
  display: flex;
  align-items: center;
  padding: 48px 0 56px;
  overflow: hidden;
  border-bottom: 1px solid var(--border);
  background:
    radial-gradient(50% 70% at 78% 44%, rgba(232,147,47,0.10), transparent 64%),
    radial-gradient(90% 120% at 50% 0%, rgba(255,255,255,0.022), transparent 60%);
}
@media (max-width: 980px) { .os-hero { min-height: auto; padding: 40px 0 48px; } }
.os-hero::after {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background-image:
    linear-gradient(rgba(255,255,255,0.025) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.025) 1px, transparent 1px);
  background-size: 56px 56px;
  -webkit-mask-image: radial-gradient(ellipse 75% 70% at 72% 45%, #000, transparent 78%);
  mask-image: radial-gradient(ellipse 75% 70% at 72% 45%, #000, transparent 78%);
}
.os-hero__canvas {
  position: absolute; top: 0; left: 0; z-index: 0;
  width: 100%; height: 100%;
  display: block;
}

/* Binary rain background was retired 2026-06-22 — replaced by binary-digit
   textures on the cube faces (the block IS data). No background rain. */
.os-hero__inner {
  position: relative; z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  gap: 40px; align-items: center; width: 100%;
}
@media (max-width: 980px) {
  .os-hero__inner { grid-template-columns: 1fr; gap: 24px; }
  .os-hero__canvas { display: block; left: 0; width: 100%; }
}
.os-hero__text { max-width: 620px; }
.os-hero__cta { display: flex; gap: 12px; flex-wrap: wrap; margin: 28px 0 6px; }
.os-hero__altcta {
  font-family: var(--mono); font-size: 11px; letter-spacing: 0.16em;
  text-transform: uppercase; color: var(--text-3); margin-top: 14px;
}
.os-hero__altcta a { color: var(--text-2); border-bottom: 1px dotted var(--accent); padding-bottom: 2px; }
.os-hero__altcta a:hover { color: var(--accent); }
.os-stat {
  display: flex; align-items: center; flex-wrap: wrap;
  margin-top: 24px; padding-top: 18px; border-top: 1px solid var(--border);
  font-family: var(--mono); font-size: 11px; letter-spacing: 0.15em;
  text-transform: uppercase; color: var(--text-3);
}
.os-stat .n { color: var(--text); font-weight: 700; font-size: 13px; letter-spacing: 0.08em; }
.os-stat .u { color: var(--text-2); margin-left: 6px; }
.os-stat .sep { color: var(--text-faint); margin: 0 14px; }
.os-hero__rhs { position: relative; height: 470px; min-height: 390px; }
@media (max-width: 980px) {
  .os-hero__rhs {
    display: block;
    height: clamp(300px, 58vw, 460px);
    min-height: 280px;
    margin-top: 6px;
  }
}
/* Section header used on the home page */
.os-head { display: grid; grid-template-columns: minmax(150px,0.5fr) minmax(0,1fr); gap: 48px; align-items: start; margin-bottom: clamp(36px,4.5vw,56px); }
@media (max-width: 820px) { .os-head { grid-template-columns: 1fr; gap: 16px; } }
.os-head__seq { font-family: var(--mono); font-size: 10.5px; letter-spacing: 0.22em; text-transform: uppercase; color: var(--text-3); padding-top: 8px; }
.os-head__seq .n { color: var(--accent); margin-right: 10px; }

/* Strategy cards (link to fund pages) */
.os-strat { display: grid; grid-template-columns: 1fr 1fr; gap: 0; border: 1px solid var(--border); border-radius: 4px; overflow: hidden; background: var(--surface); }
@media (max-width: 820px) { .os-strat { grid-template-columns: 1fr; } }
.os-card { display: flex; flex-direction: column; gap: 20px; padding: clamp(26px,3vw,38px); border-right: 1px solid var(--border); transition: background .22s var(--ease); }
.os-card:last-child { border-right: 0; }
@media (max-width: 820px) { .os-card { border-right: 0; border-bottom: 1px solid var(--border); } .os-card:last-child { border-bottom: 0; } }
.os-card { position: relative; }
.os-card::before { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 1px; background: var(--accent); transform: scaleX(0); transform-origin: left; transition: transform .3s var(--ease); }
.os-card:hover::before { transform: scaleX(1); }
.os-card:hover { background: rgba(232,147,47,0.035); }
.os-card:hover .os-card__viz { border-color: var(--accent-soft); }
.os-card__top { display: flex; align-items: baseline; justify-content: space-between; font-family: var(--mono); font-size: 10.5px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--text-3); }
.os-card__top .id { color: var(--accent); }
.os-card__viz { aspect-ratio: 16/9; border: 1px solid var(--border); border-radius: 3px; overflow: hidden; background: radial-gradient(120% 120% at 18% 50%, rgba(255,255,255,0.02), transparent 60%); }
.os-card__viz svg { width: 100%; height: 100%; display: block; }
.os-card__name { font-family: var(--sans); font-size: clamp(20px,1.9vw,25px); font-weight: 500; letter-spacing: -0.025em; color: var(--text); margin: 0; }
.os-card__kicker { font-family: var(--sans); font-size: 14.5px; line-height: 1.55; color: var(--text-2); margin: -8px 0 0; }
.os-spec { border-top: 1px solid var(--border); }
.os-spec__row { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding: 10px 0; border-bottom: 1px solid var(--border); font-family: var(--mono); }
.os-spec__row:last-child { border-bottom: 0; }
.os-spec__k { color: var(--text-3); text-transform: uppercase; letter-spacing: 0.15em; font-size: 12px; }
.os-spec__v { color: var(--text); text-transform: uppercase; letter-spacing: 0.08em; font-size: 14px; }

.ddq-access {
  display: grid;
  grid-template-columns: minmax(0,1fr) minmax(0,1.4fr);
  gap: clamp(32px,6vw,88px);
  align-items: start;
}
@media (max-width: 720px) {
  .ddq-access { grid-template-columns: 1fr; gap: 28px; }
}
.os-card__more { margin-top: auto; font-family: var(--mono); font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase; color: var(--accent); display: inline-flex; align-items: center; gap: 7px; }
.os-card:hover .os-card__more .arrow { transform: translateX(3px); }
.os-card__more .arrow { width: 13px; height: 13px; transition: transform .2s var(--ease); }

/* ============================================================
   BA_OS v3 — inner-page unification (2026-07-03)
   Structure-preserving retheme: brings every inner page onto the
   homepage's editorial register without touching page markup.
   Quiet by design — atmosphere, type tension, rhythm. No motion.
   ============================================================ */

/* Page heroes inherit the homepage hero's atmosphere: faint
   blueprint grid + a single restrained amber radial, up-right. */
.pagehero {
  padding: clamp(72px, 9vw, 112px) 0 clamp(52px, 6vw, 76px);
  background:
    radial-gradient(55% 75% at 82% 18%, rgba(232,147,47,0.065), transparent 62%),
    radial-gradient(90% 120% at 50% 0%, rgba(255,255,255,0.02), transparent 60%);
}
.pagehero::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background-image:
    linear-gradient(rgba(255,255,255,0.02) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,0.02) 1px, transparent 1px);
  background-size: 56px 56px;
  -webkit-mask-image: radial-gradient(ellipse 80% 85% at 72% 15%, #000, transparent 76%);
  mask-image: radial-gradient(ellipse 80% 85% at 72% 15%, #000, transparent 76%);
}
.pagehero--quiet { background: none; }
.pagehero--quiet::before { display: none; }

/* Type tension — tighter tracking at display sizes, calmer ledes. */
.display { letter-spacing: -0.042em; }
.h2 { letter-spacing: -0.032em; }
.lede { line-height: 1.6; max-width: 58ch; }

/* Page-hero meta line reads as an instrument caption, not a footnote. */
.pagehero__meta { max-width: 72ch; line-height: 1.7; }

/* Quicknav: align with the rail's mono voice. */
.pagehero__quicknav { letter-spacing: 0.2em; }

/* ============================================================
   BA_OS v4 — whole-page experience (2026-07-06)
   One system: the hero's signal continues through the page.
   ============================================================ */

/* Reveal choreography — children assemble in sequence, not as a slab. */
@media (prefers-reduced-motion: no-preference) {
  .reveal > * {
    transition: opacity .7s var(--ease), transform .7s var(--ease);
  }
  .reveal:not(.is-in) > * { opacity: 0; transform: translateY(16px); }
  .reveal.is-in > * { opacity: 1; transform: none; }
  .reveal.is-in > *:nth-child(2) { transition-delay: .09s; }
  .reveal.is-in > *:nth-child(3) { transition-delay: .18s; }
  .reveal.is-in > *:nth-child(4) { transition-delay: .27s; }
  .reveal.is-in > *:nth-child(n+5) { transition-delay: .36s; }
}

/* Inner pages inherit the numeral system — pure CSS, every page at once.
   Homepage & team use .ba-head (already numbered); inner sections use .h2. */
main { counter-reset: basec; }
main .section .h2::before {
  counter-increment: basec;
  content: counter(basec, decimal-leading-zero);
  display: block;
  font-family: var(--sans);
  font-weight: 500;
  font-size: clamp(1.4rem, 1.1rem + 1.4vw, 2rem);
  line-height: 1;
  letter-spacing: -0.02em;
  color: var(--text);
  font-variant-numeric: tabular-nums;
  margin-bottom: 14px;
  padding-top: 18px;
  border-top: 1px solid var(--border-strong);
  max-width: 64px;
}

/* Direct-line contact table — shared (home already defines a scoped copy). */
.ba-contact { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--border); }
.ba-contact__row {
  display: grid; grid-template-columns: minmax(180px, 240px) minmax(0, 1fr);
  align-items: baseline; gap: 2rem; padding: 1.5rem 0;
  border-bottom: 1px solid var(--border);
}
@media (max-width: 620px) { .ba-contact__row { grid-template-columns: 1fr; gap: 0.5rem; } }
.ba-contact dt {
  font-family: var(--mono); font-size: 11px; letter-spacing: 0.20em;
  text-transform: uppercase; color: var(--text-3); margin: 0;
}
.ba-contact dd {
  margin: 0; font-family: var(--sans); font-size: clamp(1.3rem, 1.1rem + 1vw, 1.75rem);
  font-weight: 500; letter-spacing: -0.02em; color: var(--text);
}
.ba-contact a {
  color: inherit; text-decoration: none;
  border-bottom: 1px solid var(--accent-soft); padding-bottom: 1px;
  transition: border-color .2s var(--ease), color .2s var(--ease);
}
.ba-contact a:hover { color: var(--accent); border-bottom-color: var(--accent); }

/* Header utilities remain subordinate to the indexed menu. */
.nav__social {
  font-family: var(--mono); font-size: 11px; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--text-3); text-decoration: none;
  padding: 6px 4px; transition: color .2s var(--ease);
}
.nav__social:hover, .nav__social:focus-visible { color: var(--accent); }
.nav__cta { display: flex; align-items: center; gap: 14px; }
@media (max-width: 860px) { .nav__social { display: none; } }
@media (max-width: 560px) { .nav__cta .btn--ghost { display: none; } }
@media (max-width: 980px) {
  .nav__cta .btn--primary { display: inline-flex; }
}
@media (max-width: 560px) {
  .nav__cta { display: none; }
}
@media (max-width: 560px) and (scripting: none) {
  .nav__cta { display: flex; }
  .nav__cta .btn--primary { display: inline-flex; }
}

/* Homepage ruled handoffs keep their vertical pause despite `.container`'s
   unlayered padding shorthand outranking the page's layered rules. */
.ba-rule.container { padding-block: 36px 24px; }
