/* ============================================================
   SENTRA INTELLIGENCE — Marketing Site
   The intelligence layer for public markets.
   Near-monochrome. Silver is the only accent. No gradients for
   decoration, no green/red, no emoji. Type carries the weight.
   Tokens are copied verbatim from the Sentra design system.
   ============================================================ */

/* ---------------------------- TOKENS ---------------------------- */
:root {
  /* base scale (black -> white, the entire palette) */
  --black:#000; --ink-1000:#050505; --ink-900:#0A0A0A; --ink-850:#0D0D0D;
  --ink-800:#121212; --ink-700:#1A1A1A; --ink-600:#242424; --ink-500:#383838;
  --ink-400:#555; --silver-700:#707070; --silver-500:#909090; --silver-300:#B0B0B0;
  --silver-200:#C8C8C8; --silver-100:#E8E8E8; --white:#FFF;

  /* surfaces */
  --surface-page:var(--ink-1000); --surface-panel:var(--ink-850);
  --surface-raised:var(--ink-800); --surface-sunken:var(--ink-900);

  /* borders */
  --border-subtle:var(--ink-700); --border-default:var(--ink-600);
  --border-strong:var(--ink-500); --border-hairline:rgba(255,255,255,0.06);

  /* text */
  --text-primary:var(--white); --text-secondary:var(--silver-300);
  --text-muted:var(--silver-700); --text-accent:var(--silver-200);
  --text-highlight:var(--silver-100);

  /* accent + atmosphere */
  --accent:var(--silver-200); --accent-bright:var(--silver-100);
  --glow-silver:rgba(232,232,232,0.10); --glow-faint:rgba(255,255,255,0.04);
  --overlay-scrim:rgba(5,5,5,0.72); --tint-hover:rgba(255,255,255,0.03); --tint-press:rgba(255,255,255,0.06);

  /* type */
  --font-display:'Space Grotesk','Inter',system-ui,sans-serif;
  --font-body:'Inter',system-ui,-apple-system,sans-serif;
  --font-mono:'Space Grotesk',ui-monospace,'SF Mono',monospace;
  --text-display-xl:clamp(3.5rem,7vw,6.5rem);
  --text-display-l:clamp(2.75rem,5vw,4.75rem);
  --text-display-m:clamp(2rem,3.5vw,3.25rem);
  --text-title-xl:clamp(1.75rem,2.5vw,2.5rem);
  --text-title-l:1.75rem; --text-title-m:1.375rem; --text-title-s:1.125rem;
  --text-body-l:1.1875rem; --text-body-m:1.0625rem; --text-body-s:0.9375rem;
  --text-caption:0.8125rem; --text-micro:0.6875rem;

  /* spacing */
  --space-1:.25rem; --space-2:.5rem; --space-3:.75rem; --space-4:1rem; --space-5:1.5rem;
  --space-6:2rem; --space-7:2.5rem; --space-8:3rem; --space-9:4rem; --space-10:5rem;
  --space-12:6rem; --space-14:8rem;
  --pad-card:var(--space-7);
  --section-pad-y:clamp(6rem,12vw,12.5rem);
  --container-max:1200px; --container-wide:1320px; --container-text:680px;
  --gutter:clamp(1.25rem,5vw,4rem);

  /* radii */
  --radius-xs:2px; --radius-sm:4px; --radius-md:6px; --radius-lg:10px; --radius-pill:999px;

  /* elevation */
  --shadow-panel:0 1px 0 rgba(255,255,255,.02) inset, 0 24px 60px -32px rgba(0,0,0,.9);
  --shadow-glow:0 0 0 1px rgba(232,232,232,.08), 0 0 48px -12px rgba(232,232,232,.12);

  /* motion */
  --ease-out:cubic-bezier(.16,1,.3,1); --ease-in-out:cubic-bezier(.65,0,.35,1);
  --dur-fast:180ms; --dur-base:320ms; --dur-slow:640ms; --dur-ambient:1200ms;
}

/* ---------------------------- RESET ---------------------------- */
*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:90px; -webkit-text-size-adjust:100%; }
body {
  margin:0; background:var(--surface-page); color:var(--text-primary);
  font-family:var(--font-body); font-size:var(--text-body-m); line-height:1.65;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; overflow-x:hidden;
}
h1,h2,h3,p,ul { margin:0; }
ul { list-style:none; padding:0; }
img,svg { display:block; }
a { color:inherit; text-decoration:none; -webkit-tap-highlight-color:transparent; }
button { font-family:inherit; cursor:pointer; }
::selection { background:rgba(232,232,232,.18); color:var(--white); }

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

.skip-link {
  position:fixed; top:-100px; left:var(--gutter); z-index:1100;
  background:var(--silver-200); color:#050505; padding:12px 20px; border-radius:var(--radius-sm);
  font-size:var(--text-body-s); font-weight:600; transition:top var(--dur-base) var(--ease-out);
}
.skip-link:focus { top:14px; }

/* ---------------------------- PRIMITIVES ---------------------------- */
.container { max-width:var(--container-max); margin:0 auto; width:100%; }
.container--narrow { max-width:900px; text-align:center; }

.section {
  padding:var(--section-pad-y) var(--gutter);
  border-top:1px solid var(--border-hairline); position:relative;
}
.section--sunken { background:var(--surface-sunken); }

.eyebrow {
  font-family:var(--font-mono); font-size:var(--text-micro); font-weight:500;
  letter-spacing:.28em; text-transform:uppercase; color:var(--text-muted);
  display:inline-flex; align-items:center; gap:12px;
}
.eyebrow--index::before { content:attr(data-index); color:var(--text-accent); }
.eyebrow--index::after { content:"/"; color:var(--text-muted); opacity:.6; margin-left:-4px; }

.display {
  font-family:var(--font-display); font-weight:500; letter-spacing:-.03em;
  line-height:1.04; color:var(--text-primary); text-wrap:balance;
}
.lead {
  font-size:var(--text-body-l); line-height:1.65; color:var(--text-secondary);
  max-width:var(--container-text); text-wrap:pretty;
}

.section__intro { display:flex; flex-direction:column; gap:20px; margin-bottom:72px; max-width:680px; }
.section__intro .eyebrow { margin-bottom:4px; }
.section__title { font-size:var(--text-display-m); line-height:1.08; }
.section__lead { margin:0; }

/* ---------------------------- BUTTONS ---------------------------- */
.btn {
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  font-family:var(--font-body); font-weight:500; letter-spacing:.01em;
  border:1px solid transparent; border-radius:var(--radius-sm); white-space:nowrap;
  user-select:none; transition:background var(--dur-base) var(--ease-out),
    color var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out),
    box-shadow var(--dur-base) var(--ease-out), transform var(--dur-fast) var(--ease-out);
}
.btn--sm { padding:9px 16px; font-size:13px; }
.btn--md, .btn:not([class*="btn--lg"]):not([class*="btn--sm"]) { padding:13px 24px; font-size:15px; }
.btn--lg { padding:17px 32px; font-size:16px; }

.btn--primary { background:var(--silver-200); color:#050505; }
.btn--primary:hover { background:var(--silver-100); box-shadow:var(--shadow-glow); }
.btn--primary:active { transform:scale(.99); }

.btn--secondary { background:transparent; color:var(--text-primary); border-color:var(--border-default); }
.btn--secondary:hover { background:var(--tint-hover); border-color:var(--border-strong); }
.btn--secondary:active { transform:scale(.99); }

.btn__arrow { font-size:1.05em; line-height:1; opacity:.85; transition:transform var(--dur-base) var(--ease-out); }
.btn--secondary:hover .btn__arrow { transform:translateX(4px); }

/* ---------------------------- BADGES / CHIPS ---------------------------- */
.badge {
  display:inline-flex; align-items:center; gap:8px; font-family:var(--font-mono);
  font-size:var(--text-micro); font-weight:500; letter-spacing:.18em; text-transform:uppercase;
  padding:6px 12px; border-radius:var(--radius-pill); line-height:1;
  background:transparent; color:var(--text-secondary); border:1px solid var(--border-default);
}
.badge--solid { background:var(--silver-200); color:#050505; border-color:var(--silver-200); }
.badge__dot { width:5px; height:5px; border-radius:50%; background:var(--text-accent); flex:none; }
.badge--solid .badge__dot { background:#050505; }

.ticker {
  font-family:var(--font-mono); font-size:var(--text-caption); letter-spacing:.16em;
  color:var(--text-accent); border:1px solid var(--border-default);
  border-radius:var(--radius-xs); padding:4px 9px;
}

/* ---------------------------- PANEL ---------------------------- */
.panel {
  background:var(--surface-panel); border:1px solid var(--border-subtle);
  border-radius:var(--radius-md); box-shadow:var(--shadow-panel); padding:var(--pad-card);
}
.panel--glow { box-shadow:var(--shadow-glow); }
.panel__rule { height:1px; background:var(--border-subtle); }

/* ---------------------------- DIVIDER ---------------------------- */
.divider { display:flex; align-items:center; gap:16px; }
.divider__line { flex:1; height:1px; background:var(--border-subtle); }
.divider__label {
  font-family:var(--font-mono); font-size:var(--text-micro); letter-spacing:.22em;
  text-transform:uppercase; color:var(--text-muted); white-space:nowrap;
}

/* tick list shared across briefs/memo/membership */
.ticklist { display:flex; flex-direction:column; gap:14px; }
.ticklist li {
  display:flex; gap:12px; font-size:var(--text-body-m); line-height:1.55; color:var(--text-secondary);
}
.ticklist li::before {
  content:""; width:14px; height:1px; background:var(--border-strong);
  margin-top:12px; flex:none;
}

/* =====================================================================
   NAV
   ===================================================================== */
.scroll-progress {
  position:fixed; top:0; left:0; right:0; height:2px; z-index:1050; pointer-events:none;
}
.scroll-progress__bar {
  display:block; height:100%; width:0%;
  background:linear-gradient(90deg, var(--silver-500), var(--silver-100));
  box-shadow:0 0 12px -2px rgba(232,232,232,.4);
}

.nav {
  position:fixed; top:0; left:0; right:0; z-index:1000;
  background:transparent; border-bottom:1px solid transparent;
  transition:background var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out),
    backdrop-filter var(--dur-base) var(--ease-out);
}
.nav.is-scrolled {
  background:var(--overlay-scrim); border-bottom-color:var(--border-subtle);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
}
.nav__inner {
  max-width:var(--container-wide); margin:0 auto; padding:0 var(--gutter); height:72px;
  display:flex; align-items:center; justify-content:space-between;
}
.nav__brand { display:flex; align-items:center; }
.nav__wordmark { display:flex; align-items:baseline; gap:9px; }
.nav__name { font-family:var(--font-display); font-size:16px; font-weight:500; letter-spacing:.18em; text-transform:uppercase; color:var(--text-primary); }
.nav__sub { font-family:var(--font-mono); font-size:9px; letter-spacing:.3em; text-transform:uppercase; color:var(--text-muted); }

.nav__links { display:flex; gap:32px; }
.nav__link {
  font-size:14px; color:var(--text-secondary); letter-spacing:.01em; position:relative; padding:4px 0;
  transition:color var(--dur-fast) var(--ease-out);
}
.nav__link::after {
  content:""; position:absolute; left:0; bottom:-2px; height:1px; width:0;
  background:var(--silver-200); transition:width var(--dur-base) var(--ease-out);
}
.nav__link:hover { color:var(--text-primary); }
.nav__link.is-active { color:var(--text-primary); }
.nav__link.is-active::after { width:100%; }

.nav__actions { display:flex; align-items:center; gap:20px; }

.nav__toggle {
  display:none; width:40px; height:40px; background:transparent; border:1px solid var(--border-default);
  border-radius:var(--radius-sm); position:relative; align-items:center; justify-content:center;
  flex-direction:column; gap:5px; transition:border-color var(--dur-base) var(--ease-out);
}
.nav__toggle span { display:block; width:16px; height:1.5px; background:var(--text-primary); transition:transform var(--dur-base) var(--ease-out), opacity var(--dur-base) var(--ease-out); }
.nav__toggle[aria-expanded="true"] span:first-child { transform:translateY(3.25px) rotate(45deg); }
.nav__toggle[aria-expanded="true"] span:last-child { transform:translateY(-3.25px) rotate(-45deg); }

/* mobile menu overlay */
.mobile-menu {
  position:fixed; inset:0; z-index:990; background:var(--overlay-scrim);
  backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px);
  display:flex; flex-direction:column; justify-content:center; gap:8px;
  padding:96px var(--gutter) var(--gutter);
  opacity:0; transition:opacity var(--dur-base) var(--ease-out);
}
.mobile-menu.is-open { opacity:1; }
.mobile-menu__links { display:flex; flex-direction:column; }
.mobile-menu__link {
  display:flex; align-items:baseline; gap:18px; padding:18px 0;
  font-family:var(--font-display); font-size:clamp(1.75rem,9vw,2.5rem); font-weight:500;
  letter-spacing:-.02em; color:var(--text-primary); border-bottom:1px solid var(--border-subtle);
}
.mobile-menu__idx { font-family:var(--font-mono); font-size:var(--text-caption); letter-spacing:.16em; color:var(--text-muted); }
.mobile-menu__cta { margin-top:40px; width:100%; }

/* =====================================================================
   HERO
   ===================================================================== */
.vignette {
  background:
    radial-gradient(120% 80% at 50% 0%, rgba(232,232,232,.045) 0%, transparent 55%),
    var(--surface-page);
}
.hero {
  min-height:100vh; min-height:100svh; display:flex; flex-direction:column;
  align-items:center; justify-content:center; text-align:center;
  padding:120px var(--gutter) 96px; position:relative; overflow:hidden;
}
.hero__field {
  position:absolute; inset:0; opacity:.5; pointer-events:none;
  background-image:
    linear-gradient(var(--border-hairline) 1px, transparent 1px),
    linear-gradient(90deg, var(--border-hairline) 1px, transparent 1px);
  background-size:64px 64px;
  -webkit-mask-image:radial-gradient(120% 90% at 50% 30%, #000 0%, transparent 70%);
  mask-image:radial-gradient(120% 90% at 50% 30%, #000 0%, transparent 70%);
}
.hero__glow {
  position:absolute; left:50%; top:-10%; width:min(900px,90vw); height:600px;
  transform:translateX(-50%); pointer-events:none;
  background:radial-gradient(50% 50% at 50% 50%, rgba(232,232,232,.07) 0%, transparent 70%);
  animation:breathe 9s var(--ease-in-out) infinite;
}
.hero__scan {
  position:absolute; left:0; right:0; top:0; height:1px; pointer-events:none;
  background:linear-gradient(90deg, transparent, rgba(232,232,232,.5), transparent);
  opacity:0; animation:scan 2.8s var(--ease-out) .3s 1;
}
@keyframes breathe { 0%,100%{opacity:.45;} 50%{opacity:1;} }
@keyframes scan {
  0%{ transform:translateY(-5vh); opacity:0; }
  12%{ opacity:.7; }
  88%{ opacity:.7; }
  100%{ transform:translateY(96vh); opacity:0; }
}

.hero__content { position:relative; max-width:960px; display:flex; flex-direction:column; align-items:center; }
.hero__eyebrow { margin-bottom:28px; letter-spacing:.34em; }
.hero__headline { font-size:var(--text-display-xl); font-weight:500; letter-spacing:-.035em; line-height:1.02; }
.hero__lead { max-width:620px; margin-top:32px; line-height:1.6; }
.hero__actions { display:flex; gap:16px; margin-top:48px; flex-wrap:wrap; justify-content:center; }

.hero__scrollcue {
  position:absolute; bottom:32px; left:50%; transform:translateX(-50%);
  font-family:var(--font-mono); font-size:10px; letter-spacing:.3em; text-transform:uppercase;
  color:var(--text-muted); display:flex; flex-direction:column; align-items:center; gap:10px;
  transition:color var(--dur-base) var(--ease-out);
}
.hero__scrollcue:hover { color:var(--text-secondary); }
.hero__scrollline { width:1px; height:40px; background:linear-gradient(var(--silver-700), transparent); }

/* =====================================================================
   LIVE COVERAGE TICKER
   ===================================================================== */
.coverage {
  border-top:1px solid var(--border-subtle); border-bottom:1px solid var(--border-subtle);
  background:var(--surface-sunken); display:flex; align-items:center; gap:0;
  padding:0; overflow:hidden; height:64px;
}
.coverage__head {
  display:flex; align-items:center; gap:10px; padding:0 28px; height:100%;
  border-right:1px solid var(--border-subtle); flex:none; background:var(--surface-page);
}
.coverage__dot { width:6px; height:6px; border-radius:50%; background:var(--silver-200); animation:pulse 2.4s var(--ease-in-out) infinite; }
@keyframes pulse { 0%,100%{opacity:.3; box-shadow:0 0 0 0 rgba(200,200,200,0);} 50%{opacity:1; box-shadow:0 0 10px 1px rgba(200,200,200,.35);} }
.coverage__label {
  font-family:var(--font-mono); font-size:var(--text-micro); letter-spacing:.24em;
  text-transform:uppercase; color:var(--text-muted); white-space:nowrap;
}
.coverage__viewport { flex:1; overflow:hidden; -webkit-mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.coverage__track { display:flex; width:max-content; animation:ticker 48s linear infinite; }
.coverage:hover .coverage__track { animation-play-state:paused; }
.coverage__set { display:flex; align-items:center; flex:none; }
.coverage__set span { font-family:var(--font-mono); font-size:var(--text-caption); letter-spacing:.14em; text-transform:uppercase; color:var(--text-secondary); padding:0 22px; }
.coverage__set i { color:var(--text-accent); font-style:normal; opacity:.5; }
@keyframes ticker { from{transform:translateX(0);} to{transform:translateX(-50%);} }

/* =====================================================================
   01 · PROBLEM
   ===================================================================== */
.problem__grid {
  display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);
  gap:clamp(2rem,6vw,6rem); align-items:start; margin-top:40px;
}
.problem__headline { font-size:var(--text-display-l); line-height:1.06; }
.problem__copy { display:flex; flex-direction:column; gap:22px; padding-top:8px; }
.problem__body { font-size:var(--text-body-l); line-height:1.65; color:var(--text-secondary); }
.problem__statement { font-family:var(--font-display); font-size:var(--text-title-m); font-weight:500; letter-spacing:-.01em; line-height:1.3; color:var(--text-primary); }

.metrics {
  margin-top:clamp(4rem,9vw,7rem); display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:40px 24px; border-top:1px solid var(--border-subtle); padding-top:48px;
}
.metric { display:flex; flex-direction:column; gap:10px; }
.metric__value {
  font-family:var(--font-display); font-size:clamp(3rem,5vw,4.5rem); font-weight:500;
  letter-spacing:-.03em; line-height:1; color:var(--text-primary); font-variant-numeric:tabular-nums;
}
.metric__label { font-family:var(--font-mono); font-size:var(--text-caption); letter-spacing:.16em; text-transform:uppercase; color:var(--text-muted); }

/* =====================================================================
   02 · FRAMEWORK
   ===================================================================== */
.pillars { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:40px 48px; }
.pillar {
  display:flex; flex-direction:column; gap:18px; padding-top:24px;
  border-top:1px solid var(--border-subtle); transition:border-color var(--dur-base) var(--ease-out);
}
.pillar:hover { border-top-color:var(--border-strong); }
.pillar__icon { color:var(--text-accent); }
.pillar__icon svg { width:22px; height:22px; }
.pillar__head { display:flex; align-items:baseline; justify-content:space-between; gap:12px; }
.pillar__title { font-family:var(--font-display); font-size:var(--text-title-l); font-weight:500; letter-spacing:-.02em; color:var(--text-primary); }
.pillar__index { font-family:var(--font-mono); font-size:var(--text-caption); letter-spacing:.16em; color:var(--text-muted); transition:color var(--dur-base) var(--ease-out); }
.pillar:hover .pillar__index { color:var(--text-accent); }
.pillar__list { display:flex; flex-direction:column; gap:12px; }
.pillar__list li { display:flex; align-items:center; gap:12px; font-size:var(--text-body-m); color:var(--text-secondary); }
.pillar__list li::before { content:""; width:14px; height:1px; background:var(--border-strong); flex:none; }

/* =====================================================================
   03 · SIGNAL BRIEF
   ===================================================================== */
.signal { padding:0; overflow:hidden; }
.signal__head { display:flex; justify-content:space-between; align-items:flex-start; gap:32px; padding:var(--space-7) var(--space-7) var(--space-6); flex-wrap:wrap; }
.signal__id { display:flex; flex-direction:column; gap:14px; }
.signal__tags { display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.signal__company { font-family:var(--font-display); font-size:var(--text-title-xl); font-weight:500; letter-spacing:-.025em; color:var(--text-primary); line-height:1.1; }
.signal__ref { font-family:var(--font-mono); font-size:var(--text-micro); letter-spacing:.16em; text-transform:uppercase; color:var(--text-muted); }

.conviction { display:flex; flex-direction:column; gap:10px; min-width:190px; }
.conviction__top { display:flex; align-items:baseline; justify-content:space-between; gap:12px; }
.conviction__label { font-family:var(--font-mono); font-size:var(--text-micro); letter-spacing:.2em; text-transform:uppercase; color:var(--text-muted); }
.conviction__score { font-family:var(--font-display); font-size:1.5rem; font-weight:500; letter-spacing:-.02em; color:var(--text-highlight); line-height:1; }
.conviction__max { font-size:.75rem; color:var(--text-muted); }
.conviction__bar { height:2px; background:var(--border-default); border-radius:2px; overflow:hidden; }
.conviction__fill { display:block; height:100%; width:0%; background:var(--silver-100); transition:width var(--dur-ambient) var(--ease-out); }

.signal__body { display:flex; flex-direction:column; gap:var(--space-7); padding:var(--space-7); }

.brief-block { display:flex; flex-direction:column; gap:14px; }
.brief-block__label { display:flex; align-items:center; gap:16px; }
.brief-block__label > span:first-child { font-family:var(--font-mono); font-size:var(--text-micro); letter-spacing:.22em; text-transform:uppercase; color:var(--text-muted); white-space:nowrap; }
.brief-block__rule { flex:1; height:1px; background:var(--border-subtle); }
.brief-block__prose { font-size:var(--text-body-l); line-height:1.6; color:var(--text-secondary); max-width:60ch; }
.brief-block__prose--wide { max-width:72ch; line-height:1.65; }
.brief-cols { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-7); }

/* =====================================================================
   04 · PHILOSOPHY
   ===================================================================== */
.philosophy { text-align:center; }
.philosophy .eyebrow { margin-bottom:40px; }
.philosophy__headline { font-size:var(--text-display-l); line-height:1.04; }
.philosophy__lines { margin-top:56px; display:flex; flex-direction:column; gap:14px; align-items:center; }
.philosophy__lines p { font-size:var(--text-title-m); font-weight:400; line-height:1.3; color:var(--text-secondary); }
.philosophy__final { color:var(--text-primary) !important; }
.philosophy__closer { font-size:var(--text-body-l); line-height:1.6; color:var(--text-muted); margin:48px auto 0; max-width:560px; }

/* =====================================================================
   05 · INTELLIGENCE REPORT (MEMO)
   ===================================================================== */
.memo { padding:0; overflow:hidden; }
.memo__masthead { display:flex; justify-content:space-between; align-items:flex-start; gap:24px; padding:var(--space-8) var(--space-8) var(--space-7); border-bottom:1px solid var(--border-subtle); flex-wrap:wrap; }
.memo__id { display:flex; flex-direction:column; gap:14px; }
.memo__badges { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.memo__company { font-family:var(--font-display); font-size:var(--text-title-xl); font-weight:500; letter-spacing:-.025em; color:var(--text-primary); }
.memo__exch { color:var(--text-muted); font-size:.7em; }
.memo__stats { display:flex; gap:40px; }
.memo__stat { display:flex; flex-direction:column; gap:6px; }
.memo__stat-label { font-family:var(--font-mono); font-size:var(--text-micro); letter-spacing:.18em; text-transform:uppercase; color:var(--text-muted); }
.memo__stat-value { font-family:var(--font-display); font-size:2rem; font-weight:500; letter-spacing:-.02em; color:var(--text-highlight); line-height:1; }
.memo__body { display:flex; flex-direction:column; gap:var(--space-8); padding:var(--space-8); }
.memo__cases { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-8); }
.case__kind { font-family:var(--font-mono); font-size:var(--text-micro); letter-spacing:.22em; text-transform:uppercase; color:var(--text-accent); }

/* =====================================================================
   06 · MEMBERSHIP
   ===================================================================== */
.membership__grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(2.5rem,7vw,6rem); align-items:center; }
.membership__pitch { display:flex; flex-direction:column; gap:28px; }
.membership__pitch .section__title { line-height:1.06; }
.membership__lines { display:flex; flex-direction:column; gap:8px; }
.membership__lines p { font-size:var(--text-body-l); line-height:1.4; color:var(--text-secondary); }
.membership__micro { font-size:var(--text-body-m); line-height:1.6; color:var(--text-muted); max-width:40ch; }
.membership__card-wrap { display:flex; justify-content:center; }

.membership-card { max-width:480px; width:100%; padding:var(--space-9); display:flex; flex-direction:column; gap:var(--space-6); }
.membership-card__desc { font-size:var(--text-body-l); line-height:1.55; color:var(--text-secondary); }
.membership-card__price { display:flex; align-items:baseline; gap:6px; }
.membership-card__amount { font-family:var(--font-display); font-size:clamp(3rem,5vw,4rem); font-weight:500; letter-spacing:-.03em; color:var(--text-primary); line-height:1; }
.membership-card__period { font-size:var(--text-body-m); color:var(--text-muted); }
.membership-card__rule { height:1px; background:var(--border-subtle); }
.membership-card__features { display:flex; flex-direction:column; gap:14px; }
.membership-card__features li { display:flex; align-items:center; gap:14px; font-size:var(--text-body-m); color:var(--text-secondary); }
.membership-card__features li::before { content:""; width:16px; height:1px; background:var(--silver-200); flex:none; }
.membership-card__cta { width:100%; margin-top:var(--space-2); }
.membership-card__footnote { font-size:var(--text-body-s); color:var(--text-muted); text-align:center; line-height:1.5; }

/* founding-access disclosure form */
.founding { display:flex; flex-direction:column; gap:16px; padding-top:var(--space-2); }
.founding__field { display:flex; flex-direction:column; gap:10px; }
.founding__label { font-family:var(--font-mono); font-size:var(--text-micro); letter-spacing:.18em; text-transform:uppercase; color:var(--text-muted); }
.founding input {
  width:100%; background:var(--surface-sunken); color:var(--text-primary); font-family:var(--font-body);
  font-size:var(--text-body-m); padding:13px 16px; border:1px solid var(--border-default);
  border-radius:var(--radius-sm); outline:none; transition:border-color var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) var(--ease-out);
}
.founding input:focus { border-color:var(--border-strong); box-shadow:0 0 0 1px var(--border-strong); }
.founding__submit { width:100%; }
.founding__status { font-size:var(--text-body-s); color:var(--text-highlight); text-align:center; line-height:1.5; min-height:1px; }
.founding__status span { display:block; color:var(--text-muted); font-size:var(--text-caption); margin-top:4px; }

/* =====================================================================
   FINAL CTA
   ===================================================================== */
.final-cta { text-align:center; border-top:1px solid var(--border-subtle); }
.final-cta__headline { font-size:var(--text-display-l); letter-spacing:-.035em; line-height:1.04; }
.final-cta__sub { margin:28px auto 0; max-width:520px; }
.final-cta__action { margin-top:48px; display:flex; justify-content:center; }

/* =====================================================================
   FOOTER
   ===================================================================== */
.footer { border-top:1px solid var(--border-subtle); padding:var(--space-12) var(--gutter) var(--space-9); }
.footer__grid { display:grid; grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr)); gap:clamp(2rem,5vw,4rem); }
.footer__brand { display:flex; flex-direction:column; gap:20px; max-width:300px; }
.footer__mark-row { display:flex; align-items:center; gap:12px; }
.footer__mark-row img { border-radius:6px; }
.footer__name { font-family:var(--font-display); font-size:15px; font-weight:500; letter-spacing:.14em; text-transform:uppercase; color:var(--text-primary); }
.footer__tagline { font-size:var(--text-body-s); line-height:1.6; color:var(--text-muted); }
.footer__col { display:flex; flex-direction:column; gap:16px; }
.footer__col-title { font-family:var(--font-mono); font-size:var(--text-micro); letter-spacing:.2em; text-transform:uppercase; color:var(--text-muted); }
.footer__col a { font-size:var(--text-body-s); color:var(--text-secondary); transition:color var(--dur-fast) var(--ease-out); width:fit-content; }
.footer__col a:hover { color:var(--text-primary); }
.footer__base { margin-top:var(--space-9); padding-top:var(--space-6); border-top:1px solid var(--border-hairline); display:flex; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.footer__copy { font-family:var(--font-mono); font-size:var(--text-caption); letter-spacing:.06em; color:var(--text-muted); }
.footer__legal { font-size:var(--text-caption); color:var(--text-muted); max-width:520px; text-align:right; }

/* back to top */
.back-to-top {
  position:fixed; right:clamp(1rem,4vw,2.5rem); bottom:clamp(1rem,4vw,2.5rem); z-index:900;
  width:46px; height:46px; display:flex; align-items:center; justify-content:center;
  background:var(--overlay-scrim); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  border:1px solid var(--border-default); border-radius:var(--radius-sm); color:var(--text-secondary);
  opacity:0; transform:translateY(8px); transition:opacity var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out), border-color var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out);
}
.back-to-top.is-shown { opacity:1; transform:translateY(0); }
.back-to-top:hover { color:var(--text-primary); border-color:var(--border-strong); }
.back-to-top svg { width:18px; height:18px; }

/* =====================================================================
   REVEAL MOTION
   ===================================================================== */
.reveal { opacity:0; transform:translateY(18px); filter:blur(6px); transition:opacity var(--dur-slow) var(--ease-out), transform var(--dur-slow) var(--ease-out), filter var(--dur-slow) var(--ease-out); transition-delay:calc(var(--d, 0) * 1ms); will-change:opacity, transform; }
.reveal.is-visible { opacity:1; transform:none; filter:blur(0); }

/* =====================================================================
   DATA-RICH CARD COMPONENTS (signal ledger + memo)
   ===================================================================== */
.signal__exch { font-family:var(--font-mono); font-size:.58em; letter-spacing:.04em; color:var(--text-muted); font-weight:400; }
.memo__ref { font-family:var(--font-mono); font-size:var(--text-micro); letter-spacing:.16em; text-transform:uppercase; color:var(--text-muted); margin-top:2px; }

/* stat strip (key figures rail) */
.stat-strip { display:grid; grid-template-columns:repeat(var(--cols,5), minmax(0,1fr)); border:1px solid var(--border-subtle); border-radius:var(--radius-sm); background:var(--surface-sunken); overflow:hidden; }
.stat-strip--quiet { background:transparent; }
.stat-strip__item { display:flex; flex-direction:column; gap:8px; padding:var(--space-5); border-left:1px solid var(--border-subtle); }
.stat-strip__item:first-child { border-left:0; }
.stat-strip__label { font-family:var(--font-mono); font-size:var(--text-micro); letter-spacing:.16em; text-transform:uppercase; color:var(--text-muted); white-space:nowrap; }
.stat-strip__value { font-family:var(--font-display); font-size:var(--text-title-s); font-weight:500; letter-spacing:-.01em; line-height:1; color:var(--text-highlight); font-variant-numeric:tabular-nums; }
.stat-strip--quiet .stat-strip__value { color:var(--text-secondary); font-weight:400; }
.stat-strip__unit { font-size:.6em; color:var(--text-muted); margin-left:3px; letter-spacing:0; }

/* ledger + holders tables */
.ledger-wrap { width:100%; overflow-x:auto; }
.ledger, .holders { width:100%; border-collapse:collapse; font-variant-numeric:tabular-nums; }
.ledger__th, .holders thead th { text-align:left; padding:0 var(--space-4) var(--space-3); font-family:var(--font-mono); font-size:var(--text-micro); font-weight:500; letter-spacing:.16em; text-transform:uppercase; color:var(--text-muted); border-bottom:1px solid var(--border-subtle); white-space:nowrap; }
.ledger__th--num, .holders__num { text-align:right; }
.ledger__cell { padding:var(--space-3) var(--space-4); font-size:var(--text-body-s); color:var(--text-secondary); border-bottom:1px solid var(--border-hairline); white-space:nowrap; }
.ledger tbody tr:last-child .ledger__cell { border-bottom:0; }
.ledger__cell--num { text-align:right; color:var(--text-primary); }
.ledger__cell--mono { font-family:var(--font-mono); letter-spacing:.04em; color:var(--text-muted); }
.ledger__cell--muted { color:var(--text-muted); }
.ledger__total .ledger__cell { border-top:1px solid var(--border-default); border-bottom:0; padding-top:var(--space-4); font-family:var(--font-mono); font-size:var(--text-caption); letter-spacing:.04em; color:var(--text-highlight); }
.ledger__total .ledger__cell:first-child { letter-spacing:.16em; text-transform:uppercase; color:var(--text-muted); }
.holders td { padding:11px var(--space-4); font-size:var(--text-body-s); color:var(--text-secondary); border-bottom:1px solid var(--border-hairline); }
.holders tbody tr:last-child td { border-bottom:0; }
.holders td:first-child { color:var(--text-primary); }
.holders__num { text-align:right; white-space:nowrap; font-variant-numeric:tabular-nums; }
.holders__pos { font-family:var(--font-mono); font-size:var(--text-micro); letter-spacing:.12em; text-transform:uppercase; color:var(--text-muted); }
.holders__note { margin-top:14px; font-size:var(--text-caption); line-height:1.55; color:var(--text-muted); max-width:64ch; }

/* valuation key/value table */
.kv-table { width:100%; border-collapse:collapse; font-variant-numeric:tabular-nums; }
.kv-table th, .kv-table td { padding:11px var(--space-4); border-top:1px solid var(--border-hairline); text-align:left; vertical-align:baseline; }
.kv-table tr:first-child th, .kv-table tr:first-child td { border-top:0; }
.kv-table th { font-weight:400; font-size:var(--text-body-s); color:var(--text-secondary); }
.kv-table__num { color:var(--text-primary); font-size:var(--text-body-m); text-align:right; width:1%; white-space:nowrap; }
.kv-table__ctx { color:var(--text-muted); font-size:var(--text-caption); text-align:right; white-space:nowrap; }
.kv-table__row--accent th, .kv-table__row--accent td { border-top:1px solid var(--border-default); }
.kv-table__row--accent th, .kv-table__row--accent .kv-table__num { color:var(--text-highlight); }

/* factline (activist position / segment mix) */
.factline { display:flex; flex-direction:column; margin:0; }
.factline__row { display:grid; grid-template-columns:minmax(118px,176px) 1fr; gap:var(--space-5); padding:11px 0; border-top:1px solid var(--border-hairline); }
.factline__row:first-child { border-top:0; }
.factline dt { font-family:var(--font-mono); font-size:var(--text-micro); letter-spacing:.16em; text-transform:uppercase; color:var(--text-muted); }
.factline dd { margin:0; font-size:var(--text-body-m); color:var(--text-secondary); font-variant-numeric:tabular-nums; }
.factline--seg { margin-top:var(--space-5); }
.factline__tag { font-family:var(--font-mono); font-size:9px; letter-spacing:.12em; text-transform:uppercase; color:var(--silver-500); border:1px solid var(--border-subtle); border-radius:var(--radius-xs); padding:2px 6px; margin-left:8px; vertical-align:middle; }

/* dated timeline (catalysts / risks / watch) */
.timeline { display:flex; flex-direction:column; margin:0; padding:0; list-style:none; }
.timeline__item { display:grid; grid-template-columns:minmax(90px,124px) 1fr; gap:var(--space-5); padding:11px 0; border-top:1px solid var(--border-hairline); align-items:baseline; }
.timeline__item:first-child { border-top:0; }
.timeline__when { font-family:var(--font-mono); font-size:var(--text-micro); letter-spacing:.12em; text-transform:uppercase; color:var(--text-accent); font-variant-numeric:tabular-nums; }
.timeline__what { font-size:var(--text-body-s); color:var(--text-secondary); line-height:1.5; }
.timeline--cols { display:grid; grid-template-columns:1fr 1fr; gap:0 var(--space-8); }
.timeline--cols .timeline__item:nth-child(2) { border-top:0; }

/* scorelist (conviction breakdown — both cards) */
.scorelist { display:flex; flex-direction:column; gap:var(--space-4); margin:0; padding:0; list-style:none; }
.scorelist__row { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(110px,2fr) auto; align-items:center; gap:var(--space-5); }
.scorelist__name { font-size:var(--text-body-s); color:var(--text-secondary); }
.scorelist__track { height:2px; background:var(--border-default); border-radius:var(--radius-pill); overflow:hidden; }
.scorelist__fill { display:block; height:100%; width:var(--w,0%); background:var(--silver-100); border-radius:var(--radius-pill); }
.scorelist__val { font-family:var(--font-mono); font-size:var(--text-caption); color:var(--text-highlight); font-variant-numeric:tabular-nums; min-width:2.5ch; text-align:right; }
.score-note { margin-top:var(--space-4); font-size:var(--text-caption); line-height:1.55; color:var(--text-muted); max-width:70ch; }

/* memo key-stats grid (6 cells) */
.memo__statgrid { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:var(--space-6) var(--space-7); padding:var(--space-7) var(--space-8); border-bottom:1px solid var(--border-subtle); }
.memo__stat-value--sm { font-size:1.5rem; color:var(--text-primary); }
.memo__stat--lead .memo__stat-value { color:var(--text-highlight); }

/* co-equal bull/bear centre hairline */
.memo__cases { position:relative; }
.memo__cases::before { content:""; position:absolute; top:0; bottom:0; left:50%; width:1px; background:var(--border-subtle); transform:translateX(-50%); }

/* shared card footer */
.card-foot { display:flex; justify-content:space-between; align-items:center; gap:var(--space-5); padding-top:var(--space-5); margin-top:var(--space-2); border-top:1px solid var(--border-subtle); flex-wrap:wrap; }
.card-foot__src, .card-foot__illus { font-family:var(--font-mono); font-size:var(--text-micro); letter-spacing:.14em; text-transform:uppercase; color:var(--text-muted); }
.card-foot__illus { color:var(--silver-500); display:inline-flex; align-items:center; gap:8px; }
.card-foot__illus::before { content:""; width:5px; height:5px; border:1px solid var(--silver-500); border-radius:50%; }
.card-foot--col { flex-direction:column; align-items:flex-start; gap:12px; }
.card-foot--col .card-foot__src { text-transform:none; letter-spacing:.01em; font-family:var(--font-body); font-size:var(--text-caption); line-height:1.55; color:var(--text-muted); }
.card-foot__srclabel { font-family:var(--font-mono); font-size:var(--text-micro); letter-spacing:.2em; text-transform:uppercase; color:var(--text-accent); margin-right:10px; }
.card-foot__disc { font-size:var(--text-micro); line-height:1.6; color:var(--text-muted); max-width:80ch; margin:0; }

/* data-card responsive */
@media (max-width:760px) {
  .stat-strip { grid-template-columns:repeat(2,1fr); }
  .stat-strip__item { border-left:0; border-top:1px solid var(--border-subtle); }
  .stat-strip__item:nth-child(odd) { border-left:0; }
  .stat-strip__item:nth-child(-n+2) { border-top:0; }
  .timeline--cols { grid-template-columns:1fr; }
  .timeline--cols .timeline__item:nth-child(2) { border-top:1px solid var(--border-hairline); }
  .scorelist__row { grid-template-columns:1fr auto; }
  .scorelist__track { grid-column:1 / -1; order:3; }
  .factline__row, .timeline__item { grid-template-columns:1fr; gap:4px; }
  .memo__statgrid { padding:var(--space-6); gap:var(--space-5) var(--space-6); }
  .memo__cases::before { display:none; }
  .card-foot { flex-direction:column; align-items:flex-start; gap:var(--space-3); }
}

/* =====================================================================
   RESPONSIVE
   ===================================================================== */
@media (max-width:980px) {
  .problem__grid, .membership__grid { grid-template-columns:1fr; }
  .membership__card-wrap { justify-content:flex-start; }
  .footer__grid { grid-template-columns:1fr 1fr; }
  .footer__brand { grid-column:1 / -1; max-width:none; }
}
@media (max-width:760px) {
  .nav__links, .nav__cta { display:none; }
  .nav__toggle { display:flex; }
  .brief-cols, .memo__cases { grid-template-columns:1fr; gap:var(--space-7); }
  .memo__masthead { gap:24px; }
  .memo__stats { gap:32px; }
  .signal__head { gap:24px; }
  .conviction { min-width:0; width:100%; }
  .footer__base { flex-direction:column; }
  .footer__legal { text-align:left; }
}
@media (max-width:480px) {
  .footer__grid { grid-template-columns:1fr; }
  .hero__actions .btn { width:100%; }
  .coverage__head { padding:0 18px; }
}

/* =====================================================================
   INTERIOR / LEGAL PAGES
   ===================================================================== */
.nav--solid { background:var(--overlay-scrim); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); border-bottom:1px solid var(--border-subtle); }
.nav--solid .nav__toggle { display:none; }

.legal { padding:140px var(--gutter) var(--space-12); }
.legal__inner { max-width:800px; margin:0 auto; }
.legal__eyebrow { margin-bottom:22px; }
.legal__title { font-family:var(--font-display); font-size:var(--text-display-m); font-weight:500; letter-spacing:-.03em; line-height:1.04; color:var(--text-primary); margin:0; }
.legal__updated { font-family:var(--font-mono); font-size:var(--text-micro); letter-spacing:.18em; text-transform:uppercase; color:var(--text-muted); margin:18px 0 0; }
.legal__intro { font-size:var(--text-body-l); line-height:1.7; color:var(--text-secondary); margin:var(--space-6) 0 0; max-width:none; }
.legal__toc { margin-top:var(--space-7); padding:var(--space-6) var(--space-7); border:1px solid var(--border-subtle); border-radius:var(--radius-md); background:var(--surface-panel); }
.legal__toc-title { font-family:var(--font-mono); font-size:var(--text-micro); letter-spacing:.2em; text-transform:uppercase; color:var(--text-muted); }
.legal__toc ol { margin:16px 0 0; padding:0; list-style:none; columns:2; column-gap:var(--space-8); }
.legal__toc li { padding:5px 0; break-inside:avoid; }
.legal__toc a { font-size:var(--text-body-s); color:var(--text-secondary); transition:color var(--dur-fast) var(--ease-out); }
.legal__toc a:hover { color:var(--text-primary); }
.legal-section { margin-top:var(--space-9); padding-top:var(--space-7); border-top:1px solid var(--border-subtle); scroll-margin-top:96px; }
.legal-section__num { font-family:var(--font-mono); font-size:var(--text-caption); letter-spacing:.18em; color:var(--text-accent); }
.legal-section h2 { font-family:var(--font-display); font-size:var(--text-title-l); font-weight:500; letter-spacing:-.02em; color:var(--text-primary); margin:12px 0 var(--space-5); }
.legal-section h3 { font-family:var(--font-display); font-size:var(--text-title-s); font-weight:500; color:var(--text-primary); margin:var(--space-6) 0 var(--space-3); }
.legal-section p { color:var(--text-secondary); line-height:1.75; margin:0 0 var(--space-4); }
.legal-section ul { margin:0 0 var(--space-4); padding:0; display:flex; flex-direction:column; gap:11px; list-style:none; }
.legal-section li { display:flex; gap:13px; color:var(--text-secondary); line-height:1.65; }
.legal-section li::before { content:""; width:14px; height:1px; background:var(--border-strong); margin-top:13px; flex:none; }
.legal-section a { color:var(--text-accent); transition:color var(--dur-fast) var(--ease-out); }
.legal-section a:hover { color:var(--text-highlight); text-decoration:underline; }
.legal-section strong { color:var(--text-primary); font-weight:600; }
.legal-section em { font-style:italic; }
@media (max-width:760px) {
  .legal__toc ol { columns:1; }
  .nav--solid .nav__cta { display:inline-flex; }
}

/* =====================================================================
   REDUCED MOTION
   ===================================================================== */
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
  .reveal { opacity:1 !important; transform:none !important; filter:none !important; }
  .coverage__track { animation:none; }
  .hero__glow, .hero__scan, .coverage__dot { animation:none; }
  .conviction__fill { transition:none; }
}

/* =====================================================================
   MOBILE OPTIMIZATION PASS  (mobile-only — desktop untouched)
   Every rule below lives inside a max-width media query; no base or
   min-width rule is modified. Appended last so it wins over earlier
   responsive blocks. iOS-first: safe-areas, dvh, 44px targets, 16px
   inputs, zero horizontal overflow.
   ===================================================================== */
@media (max-width:760px) {
  /* --- global tokens: tighten rhythm & gutters for phones --- */
  :root { --section-pad-y:clamp(4rem,11vw,6rem); --gutter:clamp(1.125rem,4.5vw,1.5rem); --pad-card:var(--space-5); }

  /* --- iOS platform foundation --- */
  html { -webkit-text-size-adjust:100%; text-size-adjust:100%; scroll-padding-top:calc(72px + env(safe-area-inset-top)); }
  html, body { overflow-x:hidden; max-width:100%; }
  input, textarea, select { font-size:16px; }
  a, button, input, label, summary, [role="button"], .btn { -webkit-tap-highlight-color:rgba(0,0,0,0); }
  .skip-link { left:max(var(--gutter), env(safe-area-inset-left)); }
  .section { padding-left:max(var(--gutter), env(safe-area-inset-left)); padding-right:max(var(--gutter), env(safe-area-inset-right)); }
  .back-to-top { right:max(1rem, env(safe-area-inset-right)); bottom:max(1rem, calc(0.75rem + env(safe-area-inset-bottom))); }

  /* --- nav + mobile menu --- */
  .nav__inner { padding-top:env(safe-area-inset-top); height:calc(72px + env(safe-area-inset-top)); padding-left:max(var(--gutter), env(safe-area-inset-left)); padding-right:max(var(--gutter), env(safe-area-inset-right)); }
  .nav__toggle { width:44px; height:44px; touch-action:manipulation; }
  .nav--solid .nav__cta { min-height:44px; }
  .mobile-menu { justify-content:flex-start; overflow-y:auto; -webkit-overflow-scrolling:touch;
    padding-top:max(96px, calc(72px + env(safe-area-inset-top)));
    padding-bottom:max(var(--gutter), calc(var(--gutter) + env(safe-area-inset-bottom)));
    padding-left:max(var(--gutter), env(safe-area-inset-left)); padding-right:max(var(--gutter), env(safe-area-inset-right)); }
  .mobile-menu__link { min-height:44px; }

  /* --- hero --- */
  .hero { min-height:100svh; min-height:100dvh; padding:104px var(--gutter) 88px; }
  .hero__headline { font-size:clamp(2.5rem,9.5vw,3.5rem); letter-spacing:-.02em; line-height:1.05; overflow-wrap:anywhere; hyphens:auto; }
  .hero__lead { font-size:var(--text-body-m); margin-top:24px; max-width:42ch; }
  .hero__eyebrow { letter-spacing:.26em; margin-bottom:22px; }
  .hero__actions { flex-direction:column; align-items:stretch; gap:12px; margin-top:36px; }
  .hero__actions .btn { width:100%; }
  .hero__scrollcue { bottom:calc(20px + env(safe-area-inset-bottom)); }
  .hero__scrollline { height:32px; }

  /* --- coverage ticker: stack head above the marquee --- */
  .coverage { flex-direction:column; align-items:stretch; height:auto; }
  .coverage__head { width:100%; height:auto; padding:13px 20px; border-right:none; border-bottom:1px solid var(--border-subtle); }
  .coverage__viewport { width:100%; }
  .coverage__track { padding:12px 0; }

  /* --- problem + live metrics --- */
  .problem__grid { margin-top:28px; gap:clamp(1.75rem,6vw,2.75rem); }
  .problem__headline { font-size:clamp(2.25rem,8.5vw,3.25rem); line-height:1.1; letter-spacing:-.02em; }
  .problem__copy { padding-top:0; gap:18px; }
  .problem__statement { font-size:var(--text-title-s); line-height:1.32; }
  .metrics { grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px 20px; margin-top:clamp(3rem,11vw,4rem); padding-top:36px; }
  .metric__value { font-size:clamp(2.75rem,11vw,3.5rem); letter-spacing:-.025em; }
  .metric__label { text-wrap:balance; line-height:1.4; }

  /* --- framework pillars --- */
  .pillars { grid-template-columns:1fr; gap:0; }
  .pillar { padding-top:28px; padding-bottom:4px; }
  .section__intro { margin-bottom:44px; gap:16px; }
  .pillar__index { flex:none; white-space:nowrap; }
  .pillar__head { gap:14px; }

  /* --- signal + memo cards: cut padding, fit dense data --- */
  .signal__head { padding:var(--space-6) var(--space-6) var(--space-5); gap:var(--space-5); }
  .signal__body { padding:var(--space-6); gap:var(--space-6); }
  .memo__masthead { padding:var(--space-6) var(--space-5) var(--space-5); gap:var(--space-4); }
  .memo__statgrid { grid-template-columns:repeat(2,minmax(0,1fr)); padding:var(--space-6) var(--space-5); gap:var(--space-5) var(--space-6); }
  .memo__body { padding:var(--space-6) var(--space-5); gap:var(--space-7); }
  .memo__stat-value { font-size:1.75rem; }
  .memo__stat-value--sm { font-size:1.375rem; }
  .signal__company, .memo__company { font-size:var(--text-title-l); line-height:1.15; }
  .conviction__score { font-size:1.375rem; }
  .stat-strip__item { padding:var(--space-4); }
  .stat-strip__label { white-space:normal; }
  .stat-strip__value { font-size:var(--text-body-l); }
  .scorelist__row { gap:var(--space-2) var(--space-4); }
  .scorelist__name { font-size:var(--text-caption); }
  /* dense tables (ledger + holders share .ledger-wrap): clear scroll affordance, never page-level overflow */
  .ledger-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; overscroll-behavior-x:contain;
    -webkit-mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 24px),transparent 100%);
    mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 24px),transparent 100%); }
  .ledger, .holders { min-width:480px; }
  .ledger-wrap::-webkit-scrollbar { height:4px; }
  .ledger-wrap::-webkit-scrollbar-thumb { background:var(--border-strong); border-radius:var(--radius-pill); }
  .ledger-wrap::-webkit-scrollbar-track { background:transparent; }
  /* valuation kv-table: drop the context cell to a full-width line below */
  .kv-table tr { display:grid; grid-template-columns:1fr auto; gap:0 var(--space-4); padding:var(--space-3) 0; border-top:1px solid var(--border-hairline); align-items:baseline; }
  .kv-table tr:first-child { border-top:0; }
  .kv-table th, .kv-table td { padding:0; border-top:0; }
  .kv-table th { grid-column:1; }
  .kv-table__num { grid-column:2; text-align:right; width:auto; }
  .kv-table__ctx { grid-column:1 / -1; text-align:left; white-space:normal; margin-top:2px; }
  .kv-table__row--accent { border-top:1px solid var(--border-default); padding-top:var(--space-3); }
  /* stacked bull/bear get a separating hairline (centre rule is hidden) */
  .memo__cases { gap:0; }
  .memo__cases > .brief-block + .brief-block { margin-top:var(--space-7); padding-top:var(--space-7); border-top:1px solid var(--border-subtle); }
  .brief-cols { gap:var(--space-6); }
  .timeline__item, .factline__row { padding:var(--space-3) 0; }
  .card-foot--col { gap:var(--space-4); }
  .card-foot__disc { font-size:var(--text-caption); line-height:1.65; max-width:none; }
  .card-foot__src { line-height:1.6; }

  /* --- philosophy + final CTA --- */
  .philosophy__headline, .final-cta__headline { font-size:clamp(2.4rem,9vw,3.25rem); line-height:1.08; letter-spacing:-.02em; overflow-wrap:break-word; }
  .philosophy .eyebrow { margin-bottom:28px; }
  .philosophy__lines { margin-top:40px; gap:18px; max-width:30ch; margin-left:auto; margin-right:auto; }
  .philosophy__lines p { font-size:1.25rem; line-height:1.35; }
  .philosophy__closer { margin-top:36px; max-width:34ch; }
  .final-cta__sub { margin-top:24px; max-width:34ch; }
  .final-cta__action { margin-top:36px; }
  .final-cta__action .btn { width:100%; }

  /* --- membership + founding form --- */
  .membership-card { padding:var(--space-6); gap:var(--space-5); max-width:none; }
  .membership__pitch { gap:20px; }
  .membership__lines { gap:6px; }
  .membership-card__price { flex-wrap:wrap; }
  .membership-card__features { gap:16px; }
  .membership-card__features li { align-items:flex-start; }
  .membership-card__features li::before { margin-top:11px; }
  .membership-card__cta, .founding__submit { width:100%; min-height:48px; }
  .founding input { font-size:16px; padding:15px 16px; min-height:48px; }
  .founding { gap:14px; }

  /* --- footer --- */
  .footer { padding-top:var(--space-9); padding-bottom:calc(var(--space-7) + env(safe-area-inset-bottom,0px));
    padding-left:max(var(--gutter), env(safe-area-inset-left)); padding-right:max(var(--gutter), env(safe-area-inset-right)); }
  .footer__grid { grid-template-columns:1fr 1fr; gap:var(--space-8) var(--space-6); }
  .footer__brand { grid-column:1 / -1; max-width:none; }
  .footer__col { gap:var(--space-1); }
  .footer__col a { display:flex; align-items:center; min-height:44px; font-size:var(--text-body-m); }
  .footer__base { margin-top:var(--space-7); gap:var(--space-3); }

  /* --- legal pages --- */
  .legal { padding-top:calc(72px + var(--space-7)); padding-bottom:var(--space-10);
    padding-left:max(var(--gutter), env(safe-area-inset-left)); padding-right:max(var(--gutter), env(safe-area-inset-right)); }
  .legal__inner { max-width:none; }
  .legal__title { line-height:1.08; letter-spacing:-.02em; }
  .legal__intro { font-size:var(--text-body-m); line-height:1.7; margin-top:var(--space-5); }
  .legal__toc { padding:var(--space-5); margin-top:var(--space-6); }
  .legal__toc ol { columns:1; margin-top:var(--space-3); }
  .legal__toc li { padding:0; border-top:1px solid var(--border-hairline); break-inside:avoid; }
  .legal__toc li:first-child { border-top:0; }
  .legal__toc a { display:flex; align-items:center; min-height:44px; padding:6px 0; line-height:1.4; }
  .legal-section { scroll-margin-top:84px; margin-top:var(--space-8); padding-top:var(--space-6); }
  .legal-section h2 { font-size:var(--text-title-m); margin:10px 0 var(--space-4); line-height:1.2; }
  .legal-section h3 { margin:var(--space-5) 0 var(--space-3); }
  .legal-section p { line-height:1.7; }
  .legal-section a, .legal__intro a, .legal__toc a { overflow-wrap:anywhere; word-break:break-word; }
}

@media (max-width:480px) {
  /* metrics → single column so the big tabular numbers breathe */
  .metrics { grid-template-columns:1fr; gap:28px; padding-top:32px; }
  .metric { gap:8px; }
  .metric__value { font-size:3.25rem; }
  .problem__headline { font-size:clamp(2rem,9vw,2.75rem); }
  .hero__headline { font-size:clamp(2.25rem,10vw,2.9rem); }
  .philosophy__headline, .final-cta__headline { font-size:clamp(2.25rem,10vw,2.9rem); letter-spacing:-.018em; }
  /* stat-strips → 1-col spec-sheet rows (label left, value right) */
  .stat-strip { grid-template-columns:1fr; }
  .stat-strip__item:nth-child(n) { border-left:0; border-top:1px solid var(--border-subtle); flex-direction:row; align-items:baseline; justify-content:space-between; gap:var(--space-4); padding:var(--space-4) var(--space-5); }
  .stat-strip__item:first-child { border-top:0; }
  .stat-strip__label { white-space:nowrap; }
  .stat-strip__value { font-size:var(--text-title-s); }
  /* card padding step-down */
  .signal__head, .signal__body, .memo__masthead, .memo__statgrid, .memo__body { padding-left:var(--space-5); padding-right:var(--space-5); }
  /* membership */
  .membership-card { padding:var(--space-5); }
  .membership-card__amount { font-size:2.75rem; }
  .membership-card__desc { font-size:var(--text-body-m); }
  /* footer single column + larger targets */
  .footer__grid { grid-template-columns:1fr; gap:var(--space-7); }
  .footer__col { gap:var(--space-2); }
  .footer__col a { min-height:46px; }
  /* coverage tightening */
  .coverage__head { padding:12px 18px; }
  .coverage__label { letter-spacing:.18em; }
  .coverage__set span { padding:0 16px; }
  /* framework breathing room */
  .pillar { padding-top:32px; }
  .pillars { gap:8px; }
  .pillar__list { gap:11px; }
  /* legal */
  .legal { padding-top:calc(72px + var(--space-6)); padding-bottom:var(--space-9); }
  .legal-section { scroll-margin-top:80px; }
}

@media (max-width:380px) {
  /* smallest phones (~320–360px) — final guards against clip/overflow */
  :root { --gutter:1rem; --pad-card:var(--space-4); }
  .hero { padding:96px var(--gutter) 80px; }
  .hero__headline { font-size:clamp(2.25rem,9vw,2.75rem); }
  .hero__eyebrow { font-size:var(--text-micro); letter-spacing:.22em; }
  .hero__lead { margin-top:20px; }
  .metric__value { font-size:2.75rem; }
  .problem__headline { font-size:1.875rem; line-height:1.12; }
  .problem__statement { font-size:var(--text-body-l); }
  .metrics { gap:24px; }
  .pillar__title { font-size:1.5rem; letter-spacing:-.02em; }
  .pillar__head { gap:12px; }
  .pillar { padding-top:30px; }
  .signal__head, .signal__body, .memo__masthead, .memo__body { padding-left:var(--space-4); padding-right:var(--space-4); }
  .memo__statgrid { grid-template-columns:1fr; padding:var(--space-5) var(--space-4); }
  .memo__statgrid .memo__stat { flex-direction:row; align-items:baseline; justify-content:space-between; gap:var(--space-4); }
  .memo__stat-value { font-size:1.5rem; }
  .memo__stat-value--sm { font-size:1.25rem; }
  .signal__company, .memo__company { font-size:var(--text-title-m); }
  .badge, .ticker { font-size:9px; }
  .signal__tags, .memo__badges { gap:var(--space-2); }
  .ledger, .holders { min-width:440px; }
  .philosophy__headline, .final-cta__headline { font-size:clamp(2.05rem,11vw,2.5rem); line-height:1.12; }
  .philosophy__lines p { font-size:1.1875rem; }
  .philosophy__lines { gap:16px; }
  .coverage__head { padding:11px 16px; }
  .coverage__label { font-size:10px; letter-spacing:.14em; }
  .coverage__set span { padding:0 14px; letter-spacing:.12em; }
  .membership-card { padding:var(--space-5) var(--space-4); }
  .membership-card__amount { font-size:2.5rem; }
  .nav__wordmark { gap:7px; min-width:0; }
  .nav__sub { font-size:8px; letter-spacing:.26em; }
  .legal { padding-left:var(--space-5); padding-right:var(--space-5); }
  .legal__title { font-size:1.875rem; }
  .legal__toc { padding:var(--space-4) var(--space-5); }
}

/* =====================================================================
   MOBILE PROGRESSIVE DISCLOSURE (signal + memo cards) + coverage label
   Desktop: .card-collapse is display:contents (zero layout effect) and the
   toggle is hidden — the cards render fully, exactly as before. Mobile only:
   collapse the deep detail behind an "Expand Full Briefing" toggle.
   ===================================================================== */
.card-collapse { display:contents; }   /* desktop: wrapper transparent — no layout change */
.card-toggle { display:none; }         /* desktop: no toggle */

@media (max-width:760px) {
  .card-collapse { display:none; }
  .card-collapse.is-open { display:flex; flex-direction:column; gap:var(--space-6); }
  .card-toggle {
    display:flex; align-items:center; justify-content:center; gap:10px;
    width:100%; min-height:48px; margin-top:var(--space-2);
    padding:14px 20px; background:transparent;
    border:1px solid var(--border-default); border-radius:var(--radius-sm);
    font-family:var(--font-mono); font-size:var(--text-micro); letter-spacing:.18em;
    text-transform:uppercase; color:var(--text-secondary);
    -webkit-tap-highlight-color:rgba(0,0,0,0); touch-action:manipulation;
    transition:border-color var(--dur-base) var(--ease-out), color var(--dur-base) var(--ease-out);
  }
  .card-toggle:active { background:var(--tint-press); border-color:var(--border-strong); }
  .card-toggle__icon { font-size:1.05em; line-height:1; transition:transform var(--dur-base) var(--ease-out); }
  .card-toggle[aria-expanded="true"] .card-toggle__icon { transform:rotate(180deg); }
  .card-toggle[aria-expanded="true"] { color:var(--text-primary); }

  /* drop the "Continuous Coverage" head on mobile — reclaim the row, keep the marquee */
  .coverage__head { display:none; }
  .coverage__track { padding:14px 0; }
}

/* =====================================================================
   MOBILE: desktop card screenshots (signal + memo) instead of reflow.
   Desktop renders the live interactive cards; mobile shows a crisp 2×
   screenshot of the desktop card — more professional, far shorter.
   ===================================================================== */
.card-shot { display:none; }   /* desktop: never show the screenshot */
@media (max-width:760px) {
  #signal .signal, #report .memo { display:none; }   /* hide the reflowed live cards on mobile */
  .card-shot { display:block; width:100%; height:auto; border-radius:var(--radius-md); }
}

/* =====================================================================
   MOBILE: Framework as a 2-col grid of boxes (not one long column)
   ===================================================================== */
@media (max-width:760px) {
  .pillars { grid-template-columns:1fr 1fr; gap:12px; }
  .pillar { border:1px solid var(--border-subtle); border-radius:var(--radius-md); padding:18px 16px; gap:12px; background:var(--surface-panel); }
  .pillar__icon svg { width:20px; height:20px; }
  .pillar__title { font-size:var(--text-title-s); }
  .pillar__head { gap:10px; }
  .pillar__list { gap:8px; }
  .pillar__list li { font-size:var(--text-body-s); }
  .pillar__list li::before { width:10px; }
}
@media (max-width:380px) {
  .pillars { gap:10px; }
  .pillar { padding:15px 13px; }
}
