/* =============================================================================
   HR Agent — landing redesign · v3 "The Logo-Lockup Hero" (FINAL)
   The hero IS the logo: traced vector wordmark, ball home behind "hr",
   scrubbed deconstruction/reassembly. Prestige through restraint governs.
   Tokens are canon; section-bg palette law: black / floral-white / corn-silk /
   grey-olive only (void-* gradients are the ratified black-family rendering).
   ========================================================================== */

:root {
  --cinnabar: #E63B2E;
  --cinnabar-hi: #F0705F;
  --cinnabar-lo: #8E1F15;
  --grey-olive: #7D7E75;
  --black: #070707;
  --floral-white: #FFF8F0;
  --corn-silk: #F1ECCE;
  --void-center: #2A221E;
  --void-edge: #120E0B;

  --ff-display: "Mulish", Georgia, serif;
  --ff-ui: "Prompt", system-ui, sans-serif;
  --ff-body: "Noto Sans", system-ui, sans-serif;

  --ease-soft: cubic-bezier(0.22, 1, 0.36, 1);
  --ease-inout: cubic-bezier(0.65, 0.05, 0.36, 1);
  --ease-ripple: cubic-bezier(0.22, 0.61, 0.36, 1);

  --page-x: clamp(1.5rem, 6vw, 8rem);
  --maxw: 1240px;

  /* lockup illumination registers */
  --hr-lit: 0.88;
  --hr-ghost: 0.13;
  --agent-ghost: 0.13;

  /* film grain tile (base64 PNG injected at build) */
  --grain-url: url("data:image/png;base64,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");
}

/* ------------------------------------------------------------------ reset */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body {
  margin: 0;
  background: var(--floral-white);
  color: var(--black);
  font-family: var(--ff-body);
  font-size: clamp(1rem, 0.55vw + 0.9rem, 1.15rem);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
}
img { display: block; max-width: 100%; height: auto; }
ul, ol { margin: 0; padding: 0; list-style: none; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, p { margin: 0; }
em { font-style: italic; }
button { font: inherit; color: inherit; background: none; border: 0; padding: 0; cursor: pointer; }

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

.skip-link {
  position: fixed;
  top: 0.75rem; left: 0.75rem;
  z-index: 200;
  background: var(--black);
  color: var(--floral-white);
  font-family: var(--ff-ui);
  font-size: 0.85rem;
  letter-spacing: 0.06em;
  padding: 0.6rem 1rem;
  border-radius: 3px;
  transform: translateY(-300%);
}
.skip-link:focus { transform: translateY(0); }

/* ------------------------------------------------------- the traveling dot */
.travel-dot {
  position: fixed;
  top: 0; left: 0;
  width: 14px; height: 14px;
  border-radius: 50%;
  /* S326-F1: the headline period's own gradient, not flat cinnabar. The dot now
     rests at the sphere's exact centre AND exact diameter, so a flat disc would
     sit on top of the gradient sphere and cancel it at the one moment the dot is
     supposed to BECOME the period. Matching the gradient makes the handoff
     invisible. Verbatim from .hero__headline .period. */
  background: radial-gradient(circle at 34% 30%,
    var(--cinnabar-hi) 0%, var(--cinnabar) 48%, var(--cinnabar-lo) 100%);
  z-index: 60;
  pointer-events: none;
  opacity: 0;
  will-change: transform, opacity;
  transform: translate3d(-50px, -50px, 0);
}
.no-js .travel-dot { display: none; }

/* -------------------------------------------------- corner frame marks */
.frame { position: fixed; inset: 0; z-index: 45; pointer-events: none; }
.frame__mark {
  position: absolute;
  font-family: var(--ff-ui);
  font-weight: 500;
  font-size: 10px;
  letter-spacing: 0.34em;
  text-transform: lowercase;
  color: #fff;
  mix-blend-mode: difference;
  opacity: 0.55;
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
}
.frame__mark--bl { left: clamp(1.1rem, 2.5vw, 2rem); bottom: clamp(1rem, 2.5vh, 1.75rem); font-variant-numeric: tabular-nums; letter-spacing: 0.2em; }
.frame__mark--br {
  right: clamp(1.1rem, 2.5vw, 2rem);
  bottom: clamp(1rem, 2.5vh, 1.75rem);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
}
.frame__mark-dot { width: 5px; height: 5px; border-radius: 50%; background: #fff; opacity: 0.9; }
.frame__progress {
  display: inline-block;
  width: 1px; height: 26px;
  background: rgba(255,255,255,0.25);
  position: relative;
  overflow: hidden;
}
.frame__progress-bar {
  position: absolute;
  inset: 0;
  background: #fff;
  transform: scaleY(0);
  transform-origin: top;
  will-change: transform;
}

/* ================================================================= TOP BAR */
.nav {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 80;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: clamp(1rem, 2.2vw, 1.6rem) var(--page-x);
  transition: transform 0.45s var(--ease-soft), background 0.35s var(--ease-soft),
              padding 0.35s var(--ease-soft), border-color 0.35s var(--ease-soft);
  border-bottom: 0.5px solid transparent;
  color: var(--floral-white); /* transparent over the void hero */
}
.nav--hidden { transform: translateY(-102%); }
.nav--solid {
  background: rgba(255, 248, 240, 0.92);
  backdrop-filter: saturate(140%) blur(10px);
  -webkit-backdrop-filter: saturate(140%) blur(10px);
  border-bottom-color: rgba(125, 126, 117, 0.45);
  padding-top: clamp(0.65rem, 1.3vw, 0.9rem);
  padding-bottom: clamp(0.65rem, 1.3vw, 0.9rem);
  color: var(--black);
}
.nav--solid.nav--dark {
  background: rgba(18, 14, 11, 0.9);
  border-bottom-color: rgba(255, 248, 240, 0.16);
  color: var(--floral-white);
}
.nav__connect {
  font-family: var(--ff-ui);
  font-weight: 600;
  font-size: 0.78rem;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  position: relative;
  padding-bottom: 4px;
  border-bottom: 2px solid var(--cinnabar);
  display: inline-block;
  will-change: transform;
}

/* hamburger — three thin lines, currentColor, generous hit area */
.nav__burger {
  display: inline-flex;
  flex-direction: column;
  justify-content: center;
  gap: 6px;
  width: 44px; height: 44px;
  padding: 10px;
  margin: -6px;
  will-change: transform;
}
.nav__burger-line {
  display: block;
  width: 26px; height: 2px;
  background: currentColor;
  transition: transform 0.35s var(--ease-soft), opacity 0.25s var(--ease-soft);
  transform-origin: center;
}
.menu-open .nav__burger-line:nth-child(1) { transform: translateY(8px) rotate(45deg); }
.menu-open .nav__burger-line:nth-child(2) { opacity: 0; }
.menu-open .nav__burger-line:nth-child(3) { transform: translateY(-8px) rotate(-45deg); }
.menu-open .nav { color: var(--floral-white); background: transparent; border-bottom-color: transparent; }

/* ======================================================= FULL-SCREEN MENU */
/* R12: the header yields while the menu is open — Close owns the top-right
   corner alone (Connect + Close were stacking; Founder catch 2026-07-06). */
.nav { transition: opacity 0.25s var(--ease-soft), visibility 0.25s; }
body.menu-open .nav { opacity: 0; visibility: hidden; pointer-events: none; }
.menu { position: fixed; inset: 0; z-index: 70; }
.menu__panel {
  position: absolute;
  inset: 0;
  background: radial-gradient(120% 100% at 50% 0%, var(--void-center) 0%, var(--void-edge) 80%);
  color: var(--floral-white);
  clip-path: circle(0% at 4rem 3rem);
  transition: clip-path 0.45s var(--ease-inout);
  overflow-y: auto;
  padding: clamp(5.5rem, 12vh, 8rem) var(--page-x) clamp(3rem, 8vh, 5rem);
}
.menu.is-open .menu__panel { clip-path: circle(150% at 4rem 3rem); }
@media (prefers-reduced-motion: reduce) { .menu__panel { transition: none; } }
.menu__close {
  position: absolute;
  top: clamp(1.2rem, 3vh, 2rem);
  right: var(--page-x);
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  font-family: var(--ff-ui);
  font-weight: 600;
  font-size: 0.78rem;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: var(--floral-white);
  padding: 0.5rem;
}
.menu__close-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--cinnabar); }
.menu__cols {
  display: grid;
  grid-template-columns: 1fr; /* R12: single column — the aside retired for the footer band */
  max-width: var(--maxw);
  margin: 0 auto;
}
/* R12: the footer reprised inside the menu (below the list) */
.menu__footer {
  max-width: var(--maxw);
  margin: clamp(2.5rem, 7vh, 4.5rem) auto 0;
  padding-top: clamp(1.75rem, 4vh, 2.75rem);
  border-top: 1px solid rgba(125, 126, 117, 0.25);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: clamp(0.9rem, 2.2vh, 1.4rem);
}
.menu__footer-logo { width: clamp(120px, 15vw, 170px); height: auto; }
.menu__footer-slogan {
  font-family: var(--ff-display);
  font-style: italic;
  font-weight: 700;
  font-size: clamp(1.05rem, 2vw, 1.45rem);
  color: var(--floral-white);
}
.menu__footer-contact,
.menu__footer-social {
  display: flex;
  gap: 1.75rem;
  flex-wrap: wrap;
  justify-content: center;
  font-family: var(--ff-ui);
  font-size: 0.95rem;
}
.menu__footer-contact a:hover,
.menu__footer-social a:hover { color: var(--cinnabar); }
.menu__footer-social {
  font-size: 0.78rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--grey-olive);
}
.menu__footer-micro {
  font-family: var(--ff-ui);
  font-size: 10px;
  letter-spacing: 0.42em;
  text-transform: lowercase;
  color: var(--grey-olive);
  opacity: 0.45;
}
.menu__nav ol { display: grid; gap: clamp(0.6rem, 1.8vh, 1.4rem); }
.menu__link {
  display: flex;
  align-items: baseline;
  gap: 1.1rem;
  font-family: var(--ff-display);
  font-style: italic;
  font-weight: 800;
  font-size: clamp(2rem, 5.2vw, 4.25rem);
  line-height: 1.05;
  letter-spacing: -0.015em;
  color: var(--floral-white);
  transition: color 0.3s var(--ease-soft);
  width: max-content;
  max-width: 100%;
}
.menu__link:hover { color: var(--cinnabar); }
.menu__idx {
  font-family: var(--ff-ui);
  font-style: normal;
  font-weight: 500;
  font-size: 0.8rem;
  letter-spacing: 0.24em;
  color: var(--cinnabar);
}
.menu__sub {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem 1.5rem;
  margin: 0.5rem 0 0.4rem 3.1rem;
}
.menu__sub a {
  font-family: var(--ff-ui);
  font-weight: 500;
  font-size: clamp(0.85rem, 1.1vw, 1rem);
  letter-spacing: 0.06em;
  color: var(--grey-olive);
  transition: color 0.3s var(--ease-soft);
}
.menu__sub a:hover { color: var(--floral-white); }
/* R12: .menu__aside / __contact / __social / __slogan retired — the footer
   band (.menu__footer, above) carries contact + social now. */
.menu[hidden] { display: none; }
body.menu-open { overflow: hidden; }

/* ================================================= THE HOLES RAIL (R11)
   Seven ring-holes; the traveling ball docks into the active one.
   ~12px rings, 1.5px grey-olive stroke @45%, 26px center spacing, left 28px. */
.rail {
  position: fixed;
  left: 28px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 46;
  display: none;
  flex-direction: column;
  gap: 14px;              /* 12px hole + 14px = 26px center-to-center */
}
@media (min-width: 900px) and (pointer: fine) { .rail { display: flex; } }
.rail__stop { position: relative; display: flex; align-items: center; }
.rail__hole {
  display: block;
  width: 12px; height: 12px;
  border-radius: 50%;
  border: 1.5px solid rgba(125, 126, 117, 0.45);
  transition: border-color 0.3s var(--ease-soft);
  position: relative;
}
.rail__stop:hover .rail__hole,
.rail__stop.is-active .rail__hole { border-color: rgba(125, 126, 117, 0.85); }
/* hero state: "you are here" — small cinnabar center-dot in hole 01 while
   the ball is still home in the lockup */
.rail__stop.is-here .rail__hole::after {
  content: "";
  position: absolute;
  left: 50%; top: 50%;
  width: 4px; height: 4px;
  margin: -2px 0 0 -2px;
  border-radius: 50%;
  background: var(--cinnabar);
}
.rail__label {
  position: absolute;
  left: 26px;
  top: 50%;
  transform: translateY(-50%) translateX(-6px);
  white-space: nowrap;
  font-family: var(--ff-ui);
  font-weight: 500;
  font-size: 10px;
  letter-spacing: 0.28em;
  text-transform: uppercase;
  color: #fff;
  mix-blend-mode: difference;
  opacity: 0;
  transition: opacity 0.3s var(--ease-soft), transform 0.3s var(--ease-soft);
  pointer-events: none;
}
.rail__stop:hover .rail__label,
.rail__stop:focus-visible .rail__label { opacity: 0.9; transform: translateY(-50%) translateX(0); }

/* ------------------------------------------- WATERMARK FIELD + CURSOR SHEEN
   Staggered mixed-alignment rows (JS-injected, approved preview treatment);
   the CSS tile on ::before is the no-JS fallback. Dark sections only. */
.wmk {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  z-index: 0;
}
.wmk__layer {
  position: absolute;
  inset: -30%;
  transform: rotate(-12deg);
  font-family: var(--ff-ui);
  line-height: 3.1;
  color: var(--floral-white);
  white-space: nowrap;
  text-align: center;
}
.wmk__layer > div { will-change: transform; }
/* no-JS fallback tile (hidden once JS injects rows) */
.no-js .wmk__layer::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='440' height='96'%3E%3Cg fill='%23FFF8F0' font-family='Prompt, system-ui, sans-serif' font-size='13' letter-spacing='4'%3E%3Ctext x='10' y='30'%3Eour agents . your solution%3C/text%3E%3Ctext x='-210' y='78'%3Eour agents . your solution%3C/text%3E%3Ctext x='230' y='78'%3Eour agents . your solution%3C/text%3E%3C/g%3E%3C/svg%3E");
  background-size: 440px 96px;
}
.wmk__base { opacity: 0.06; }   /* R1: turned up from 0.038 */
.wmk__sheen {
  opacity: 0.16;                /* R1: turned up from 0.115 */
  -webkit-mask-image: radial-gradient(circle 280px at var(--mx, -500px) var(--my, -500px), #000 0%, transparent 70%);
          mask-image: radial-gradient(circle 280px at var(--mx, -500px) var(--my, -500px), #000 0%, transparent 70%);
}
/* touch: no cursor — slow ambient sheen drifting (~14s) via mask position vars */
@media (pointer: coarse) {
  .wmk__sheen { animation: sheen-drift 14s var(--ease-inout) infinite alternate; }
}
@keyframes sheen-drift {
  from { --mx: 10%; --my: 15%; -webkit-mask-position: 0 0; }
  to   { --mx: 90%; --my: 85%; -webkit-mask-position: 0 0; }
}
@supports not (background: paint(x)) {
  /* var()-in-keyframes fallback: static center sheen on coarse pointers */
  @media (pointer: coarse) {
    .wmk__sheen { animation: none; --mx: 50%; --my: 40%; }
  }
}
@media (prefers-reduced-motion: reduce) {
  .wmk__sheen { display: none; animation: none; }
}

/* ------------------------------------------------------------- FILM GRAIN */
.grain {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  opacity: 0.04;
  background-image: var(--grain-url);
  background-size: 96px 96px;
}

/* ========================================== S1 HERO — THE LOGO LOCKUP */
.hero {
  position: relative;
  min-height: 100svh;
  background: radial-gradient(ellipse 95% 80% at 38% 46%, var(--void-center) 0%, var(--void-edge) 74%);
  overflow: hidden;
  isolation: isolate;
  /* single source for lockup geometry (SVG scales linearly from these).
     R1: composition scaled ~6% down + center nudged right 2vw so the holes
     rail never overlaps the ball or ripples at 1280-1680. */
  --wmw: min(82.7vw, 1410px);
  --wm-top: 37%;   /* lifted so the R1 headline keeps clear air at 1280-1680 */
  --wm-nudge: 2vw;
  /* derived from the traced SVG (viewBox 1912x446; hr bbox 0..383 x 0..319):
     ball d = max(hrW, hrH*0.78) * 1.42 = 543.9su = 0.28447 * wordmark width;
     ball center: x = 50% - 0.39984*W (hr center), y = wm-top - 0.016531*W  */
  --ball-d: calc(var(--wmw) * 0.28447);
}
.hero__stage {
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
}
.lyr { position: absolute; inset: 0; will-change: transform; }

/* the wordmark — traced vector lockup, centered slightly above middle */
.hero__wordmark {
  position: absolute;
  left: calc(50% + var(--wm-nudge));
  top: var(--wm-top);
  transform: translate(-50%, -50%);
  width: var(--wmw);
  will-change: transform;
}
.hero__wordmark svg { display: block; width: 100%; height: auto; }
#wm-hr { fill: var(--floral-white); opacity: var(--hr-lit); will-change: opacity; }
#wm-agent { fill: var(--floral-white); opacity: var(--agent-ghost); }

/* THE BALL — snugly contains the "hr" group; pure-CSS geometry (no-JS safe) */
.hero__ball-anchor {
  position: absolute;
  width: var(--ball-d);
  height: var(--ball-d);
  left: calc(50% + var(--wm-nudge) - var(--wmw) * 0.39984 - var(--ball-d) / 2);
  top: calc(var(--wm-top) - var(--wmw) * 0.016531 - var(--ball-d) / 2);
  will-change: transform;
}
/* R3: float is driven by JS (gsap.ticker) with amplitude decaying to zero as
   the ball departs — the CSS keyframe float composited onto the condensing
   ball was a root cause of the arrival jitter. No CSS float animation. */
.hero__ball-float { position: absolute; inset: 0; will-change: transform; }
.hero__ball {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: radial-gradient(circle at 33% 28%, var(--cinnabar-hi) 6%, var(--cinnabar) 45%, #7E1B12 100%);
  will-change: transform, opacity;
}
.hero__halo {
  position: absolute;
  inset: -20%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(230, 59, 46, 0.26) 0%, rgba(230, 59, 46, 0) 62%);
  will-change: transform, opacity;
}
@keyframes halo-breathe {
  0%, 100% { transform: scale(1); opacity: 0.85; }
  50%      { transform: scale(1.1); opacity: 1; }
}
@media (prefers-reduced-motion: no-preference) {
  .hero__halo { animation: halo-breathe 8s var(--ease-inout) infinite; }
}

/* radiating ripples — continuous, from the ball center (approved preview) */
.ripple {
  position: absolute;
  left: 50%; top: 50%;
  width: 100%; height: 100%;
  border-radius: 50%;
  border: 1.5px solid rgba(230, 59, 46, 0.5);
  pointer-events: none;
  transform: translate(-50%, -50%) scale(1);
  opacity: 0;
  will-change: transform, opacity;
}
@media (prefers-reduced-motion: no-preference) {
  .ripple { animation: ripple 7s var(--ease-ripple) infinite; }
  .ripple--2 { animation-delay: 1.75s; }
  .ripple--3 { animation-delay: 3.5s; border-color: rgba(125, 126, 117, 0.45); }
  .ripple--4 { animation-delay: 5.25s; }
}
.ripple--shock { animation: none !important; opacity: 0; border-width: 2px; }
@keyframes ripple {
  0%   { transform: translate(-50%, -50%) scale(1); opacity: 0; }
  8%   { opacity: 0.65; }
  100% { transform: translate(-50%, -50%) scale(3.1); opacity: 0; }
}

/* hero copy — lower-left, R1 register: a deliberate caption to the monument.
   Larger, aligned to the 48px content edge, ~140px of air above the ticker. */
.hero__copy {
  position: absolute;
  z-index: 5;
  left: 48px;
  bottom: 177px;          /* ticker band is ~37px tall -> ~140px clear air */
  /* S327: the pivot beat is the longest line by design (it balances the colour
     story), so the box widens to let it set on ONE line. Capped short of the
     scroll cue's left edge, which sits at the --page-x rail. */
  max-width: min(1180px, calc(100vw - 48px - 150px));
  /* --dot-d is em-relative to the pivot beat. Held at the S326 ratio: the
     sphere's ratified relationship is to its LINE, not to a pixel count — the
     ball is scaled to the measured glyph at runtime (main.js: "21.11px at 1440
     and 8.06px at 390"), so the period is proportional by design. */
  --dot-d: 0.30em;
}
.hero__headline {
  font-family: var(--ff-display);
  font-size: inherit;
  line-height: 1;
  letter-spacing: 0;
  color: var(--floral-white);
}
/* S326 — the slogan in beats. Upright for the fact, italic for the voice:
   the /read/ card-title device ("The Counteroffer", "Drinking from a Fire
   Hose"). Hierarchy is carried by scale, style and tone; the words are the
   Founder-locked words, untouched.
   S327 — the device now carries TWO fact beats and the pivot. */
.hero__headline .hc-beat {
  display: block;
  font-family: var(--ff-display);
  font-weight: 800;
  letter-spacing: -0.018em;
}
/* the fact steps — upright. The record, not the register. Corn-silk at the same
   value the /follow/-derived staircase uses, so the steps read as one
   family in different registers. Size now comes from .hc-step--n. */
.hero__headline .hc-beat--fact {
  font-style: normal;
  line-height: 1.15;
  color: var(--corn-silk);
  color: color-mix(in srgb, var(--corn-silk) 62%, transparent);
}
/* the pivot step — italic, floral-white. The bottom of the staircase and its
   widest, largest tread. */
.hero__headline .hc-beat--voice {
  position: relative;
  font-style: italic;
  line-height: 1.04;
  color: var(--floral-white);
}

/* S327 THE PROGRESSIVE STAIRCASE (Founder ruling — supersedes the two-level and
   the flat three-row stacks). Three lines, each ONE complete sentence, never a
   mid-sentence break. Each tread is longer AND larger than the one above it, so
   the natural length progression of the copy is amplified by a deliberate type
   scale rather than left to chance:

     step 1  "…HR expertise."              shortest sentence, smallest tread
     step 2  "…consulting and outsourcing." longer sentence, larger tread
     step 3  the priority line              longest AND noticeably largest

   The step ratios are a measured design decision, reported with the build; the
   sizes are cut so that at 1440 no line wraps in the 1180px copy box, for BOTH
   the numeral and the (longer) spelled-out copy form. */
.hero__headline .hc-step--1 { font-size: clamp(0.85rem, 2.22vw, 2.00rem); }
.hero__headline .hc-step--2 { font-size: clamp(1.02rem, 2.85vw, 2.56rem); }
.hero__headline .hc-step--3 { font-size: clamp(1.30rem, 3.89vw, 3.50rem); }
/* the risers between treads — even, and smaller than any tread's own leading,
   so the three read as one flight of stairs rather than three separate blocks */
.hero__headline .hc-step--1,
.hero__headline .hc-step--2 { margin-bottom: clamp(0.18rem, 0.5vw, 0.45rem); }
/* S327 THE COLOUR STORY — the lead word wears the site's own numeral register:
   .stat__num's physics verbatim (Prompt 800, cinnabar, tabular figures, -0.03em)
   at slogan scale. Not decoration — it is the ledger voice "The record." already
   speaks, brought to the hero. */
.hero__headline .hc-num {
  font-family: var(--ff-ui);
  font-weight: 800;
  font-style: normal;
  font-size: 0.94em;      /* optical match: Prompt's x-height runs large next to Mulish */
  color: var(--cinnabar);
  letter-spacing: -0.03em;
  font-variant-numeric: tabular-nums;
  margin-right: 0.12em;
}
/* B-FINAL — CINNABAR MARKS THE CLIENT'S SIGNIFICANCE, NEVER OUR CREDENTIALS.
   The pop is reserved for the line about them, so "Thirty" and "Fifteen" give it
   up entirely: each takes the same colour AND the same face as the rest of its
   own sentence, and the two credential treads read as uniform receding lines
   with no per-word emphasis anywhere in them.
   (The face is reset alongside the colour deliberately — a Prompt lead word in
   the line's own colour would still be emphasis, just by weight instead of hue.
   To make this colour-only, delete the four inherit/reset lines below.)
   Cinnabar now lands exactly twice in the hero, both on tread 3: the word "One",
   and the terminal sphere the traveling ball docks into. */
.hero__headline .hc-beat--fact .hc-num {
  font-family: inherit;
  font-size: 1em;
  color: inherit;
  letter-spacing: inherit;
  font-variant-numeric: normal;
  margin-right: 0;
}
.hero__headline .hc-arrive { position: relative; }
/* the terminal period as a sphere — .hero__ball's gradient verbatim, so the
   glyph the ball docks into already looks like the ball, plus .hero__halo's
   cinnabar bloom at caption scale. The halo is drawn as stacked box-shadows
   rather than an ::after, because the sphere clips its own overflow (see the
   note below) and an ::after would be clipped with it. */
.hero__headline .period {
  display: inline-block;
  width: var(--dot-d);
  height: var(--dot-d);
  border-radius: 50%;
  margin-left: 0.06em;
  vertical-align: baseline;
  color: transparent;
  /* overflow:hidden is load-bearing, not cosmetic. The span still contains
     the "." text node, which renders at the inherited display size; with
     visible overflow the box takes THAT glyph's baseline as its own and gets
     lifted ~0.78em above the real baseline. Clipping forces the box to use
     its bottom margin edge as the baseline, which is where a period's ink
     actually sits. */
  overflow: hidden;
  background: radial-gradient(circle at 34% 30%,
    var(--cinnabar-hi) 0%, var(--cinnabar) 48%, var(--cinnabar-lo) 100%);
  box-shadow:
    inset 0 -0.012em 0.03em rgba(10, 9, 8, 0.20),
    0 0 0 0.10em rgba(230, 59, 46, 0.22),
    0 0 0.55em 0.16em rgba(230, 59, 46, 0.28);
}
.dot-anchor { display: inline-block; width: 0; height: 0; vertical-align: baseline; }

.scroll-cue {
  position: absolute;
  right: var(--page-x);
  bottom: clamp(6.5rem, 14vh, 9.5rem);
  display: flex;
  align-items: center;
  gap: 12px;
  z-index: 5;
}
/* R12: wordless cue — the cinnabar dot descends a hairline track (dot DNA). */
.scroll-cue .cue-track {
  position: relative;
  display: block;
  width: 1px;
  height: 46px;
  background: rgba(255, 248, 240, 0.22);
}
.scroll-cue .cue-dot {
  position: absolute;
  left: 50%;
  top: 0;
  width: 7px;
  height: 7px;
  margin-left: -3.5px;
  border-radius: 50%;
  background: var(--cinnabar);
  opacity: 0;
}
@media (prefers-reduced-motion: no-preference) {
  .scroll-cue .cue-dot { animation: cue-fall 2.4s var(--ease-inout) infinite; }
}
@keyframes cue-fall {
  0%   { transform: translateY(0);    opacity: 0; }
  18%  { opacity: 1; }
  78%  { opacity: 1; }
  100% { transform: translateY(39px); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .scroll-cue .cue-dot { opacity: 0.9; top: auto; bottom: 0; }
}

/* ticker band across the very bottom of the hero */
.ticker {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  padding: 12px 0;
  border-top: 1px solid rgba(125, 126, 117, 0.25);
  overflow: hidden;
  white-space: nowrap;
  z-index: 5;
}
.ticker__track {
  display: inline-block;
  font-family: var(--ff-ui);
  font-size: 11px;
  letter-spacing: 0.3em;
  color: rgba(125, 126, 117, 0.42);
  will-change: transform;
}
@keyframes drift { 0% { transform: translateX(0); } 100% { transform: translateX(-25%); } }
@media (prefers-reduced-motion: no-preference) {
  .no-js .ticker__track { animation: drift 26s linear infinite; }
}

/* ================================================================ S2 STAKES */
.stakes {
  background: linear-gradient(180deg, var(--floral-white) 0%, var(--corn-silk) 100%);
  padding: clamp(7rem, 18vh, 14rem) var(--page-x);
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 70svh;
}
/* V4.1: cinnabar kicker atop the stakes page — same register as .proof__kicker */
.stakes__kicker {
  font-family: var(--ff-ui);
  font-weight: 600;
  font-size: clamp(0.72rem, 1vw, 0.85rem);
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--cinnabar);
  margin-bottom: clamp(1.75rem, 4vw, 3rem);
  align-self: center;
  white-space: nowrap; /* R12: one line, per Founder 2026-07-06 (18ch stack retired) */
  max-width: 100%;
  text-align: center;
}
.stakes__line {
  font-family: var(--ff-display);
  font-weight: 700;
  font-size: clamp(1.9rem, 5vw, 4.25rem);
  line-height: 1.18;
  letter-spacing: -0.01em;
  max-width: 18ch;
  text-align: left;
  color: var(--black);
}
.stakes__grp { display: inline; margin-right: 0.35em; }
.stakes__grp--heart {
  font-family: var(--ff-display);
  font-style: italic;
  font-weight: 800;
  color: var(--cinnabar);
}
/* R4: the hero's former subline balances the stakes screen */
.stakes__para {
  font-family: var(--ff-body);
  color: var(--grey-olive);
  font-size: clamp(0.95rem, 1.1vw, 1.1rem);
  line-height: 1.65;
  max-width: 520px;
  margin-top: clamp(2rem, 4vw, 3rem);
}
.stakes { flex-direction: column; justify-content: center; align-items: center; }
.stakes__para { align-self: center; width: min(520px, 100%); }

/* ======================================================== WORD-MOMENTS */
.wm {
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  padding: clamp(3rem, 9vh, 7rem) 0;
  pointer-events: none;
}
.wm--cream { background: var(--corn-silk); }
.wm__word {
  font-family: var(--ff-display);
  font-style: italic;
  font-weight: 800;
  font-size: clamp(6rem, 14vw, 15rem);
  line-height: 0.9;
  letter-spacing: -0.02em;
  white-space: nowrap;
  margin-left: -0.06em;
  will-change: transform, opacity, filter;
  position: relative;
  z-index: 2;
}
.wm--cream .wm__word { color: rgba(125, 126, 117, 0.15); margin: 0; }
.js .wm__word { opacity: 0; }

/* R5/R6/S325: section title moments — watermark register, clearly legible */
.pillars__title,
.proof__title,
.stakes__title {
  position: relative;
  z-index: 2;
  overflow: hidden;
  pointer-events: none;
  padding-top: clamp(2.5rem, 6vh, 4.5rem);
}
.pillars__title .wm__word { color: rgba(255, 248, 240, 0.16); }
.proof__title .wm__word { color: rgba(125, 126, 117, 0.15); }
/* S325: the stakes page is the same light ground as .proof (floral-white ->
   corn-silk), so it carries the identical dark-ink ghost. The section is a
   centred flex column, so the title box must stretch to hold the same
   left-anchored position "The record." has inside .proof. */
.stakes__title { align-self: stretch; width: 100%; }
.stakes__title .wm__word { color: rgba(125, 126, 117, 0.15); }
/* S325 phone guard: "The practice." is 13 characters against "The record."'s 11,
   and the family clamp's 6rem FLOOR (which governs below ~686px) pushed the
   terminal period off-screen under the parent's overflow:hidden — verified at
   390px. The 14vw preferred term and the 15rem ceiling are the family's values
   VERBATIM; only the floor is lowered, so the period survives down to 320px
   while the type keeps the watermark register. Same intent as the read/follow
   pages' own "headline guard so the display type never forces scroll".
   S325-R2: floor 2.9rem -> 2.85rem. Capitalising the T (Founder walk note)
   widened the string from 5.7412em to 5.9732em, which at 320px overran the
   clip box by 2.38px and would have cut the terminal period — the one thing
   this guard exists to protect. The floor now governs only below ~326px, so
   nothing at 360px and up moves; measured un-clipped 320 -> 1920px. */
.stakes__title .wm__word { font-size: clamp(2.85rem, 14vw, 15rem); }

/* ============================================================== S3 PILLARS */
.pillars {
  position: relative;
  background: radial-gradient(120% 80% at 50% 20%, var(--void-center) 0%, var(--void-edge) 78%);
  color: var(--floral-white);
  isolation: isolate;
}
.pillars__track {
  position: absolute;
  top: 0; bottom: 0;
  left: clamp(3rem, 6vw, 5.5rem);
  width: 1px;
  background: linear-gradient(180deg, transparent, rgba(255,248,240,0.14) 12%, rgba(255,248,240,0.14) 88%, transparent);
  z-index: 2;
}
.chapter {
  position: relative;
  min-height: 100svh;
  display: flex;
  align-items: center;
  padding: clamp(5rem, 12vh, 9rem) var(--page-x) clamp(5rem, 12vh, 9rem) clamp(5rem, 12vw, 11rem);
  overflow: hidden;
  z-index: 2;
}
.chapter__numeral {
  position: absolute;
  right: clamp(-1rem, -1vw, 2rem);
  top: 50%;
  transform: translateY(-50%);
  font-family: var(--ff-ui);
  font-weight: 800;
  font-size: 22vw;
  line-height: 1;
  color: var(--cinnabar);
  opacity: 0.12;
  z-index: 0;
  pointer-events: none;
  letter-spacing: -0.04em;
}
.chapter__body { position: relative; z-index: 1; max-width: 52ch; }
.chapter__name {
  font-family: var(--ff-display);
  font-style: italic;
  font-weight: 800;
  font-size: clamp(3rem, 8vw, 6.5rem);
  line-height: 0.95;
  letter-spacing: -0.02em;
  color: var(--floral-white);
}
.chapter__kicker {
  display: block;
  font-family: var(--ff-ui);
  font-style: normal;
  font-weight: 600;
  font-size: clamp(0.72rem, 1vw, 0.85rem);
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--cinnabar);
  margin-bottom: 1.1rem;
}
.chapter__thesis {
  font-family: var(--ff-body);
  font-size: clamp(1.15rem, 1.8vw, 1.6rem);
  color: var(--corn-silk);
  margin-top: 1.5rem;
  max-width: 34ch;
}
.chapter__services {
  margin-top: clamp(2rem, 4vw, 3rem);
  display: grid;
  gap: 1.15rem;
}
.chapter__services li {
  position: relative;
  padding-left: 1.5rem;
}
.chapter__services li::before {
  content: "";
  position: absolute;
  left: 0; top: 0.72em;
  width: 8px; height: 1px;
  background: var(--cinnabar);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.5s var(--ease-soft);
}
.chapter__services b {
  display: block;
  font-family: var(--ff-ui);
  font-weight: 500;
  font-size: clamp(1rem, 1.3vw, 1.2rem);
  letter-spacing: 0.01em;
  color: var(--grey-olive);
  transition: color 0.6s var(--ease-soft);
}
.chapter__services span {
  display: block;
  font-family: var(--ff-body);
  font-size: clamp(0.85rem, 1vw, 0.95rem);
  color: var(--grey-olive);
  opacity: 0.75;
  margin-top: 0.15rem;
  max-width: 52ch;
}
.chapter.is-in .chapter__services b { color: var(--floral-white); }
.chapter.is-in .chapter__services li::before { transform: scaleX(1); }

/* cinnabar wipe between chapters */
.wipe { position: relative; height: 0; }
.wipe__panel {
  position: fixed;
  inset: 0;
  z-index: 40;
  background: var(--cinnabar);
  transform: scaleX(0);
  transform-origin: left center;
  pointer-events: none;
  will-change: transform;
}

/* ================================================================ S4 PROOF */
.proof {
  background: var(--floral-white);
  padding: clamp(7rem, 16vh, 12rem) var(--page-x);
}
.proof__kicker {
  font-family: var(--ff-ui);
  font-weight: 600;
  font-size: clamp(0.72rem, 1vw, 0.85rem);
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--cinnabar);
  text-align: center;
  margin-bottom: clamp(3rem, 6vw, 5rem);
}
.proof__grid {
  max-width: var(--maxw);
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(2.5rem, 5vw, 5rem);
  align-items: start;
}
.stat { position: relative; text-align: center; }
.stat__num {
  display: block;
  font-family: var(--ff-ui);
  font-weight: 800;
  font-size: clamp(4.5rem, 12vw, 9.5rem);
  line-height: 0.9;
  color: var(--cinnabar);
  letter-spacing: -0.03em;
  font-variant-numeric: tabular-nums;
}
.stat__num--ratio { letter-spacing: -0.02em; }
.stat--zero { position: relative; }
.zero-anchor { position: absolute; top: 0.42em; left: 50%; width: 0; height: 0; }
.stat__cap {
  display: block;
  font-family: var(--ff-body);
  color: var(--grey-olive);
  font-size: clamp(0.95rem, 1.1vw, 1.1rem);
  margin-top: 1.25rem;
  max-width: 24ch;
  margin-inline: auto;
}
.proof__editorial {
  font-family: var(--ff-display);
  font-style: italic;
  font-weight: 700;
  font-size: clamp(1.35rem, 2.6vw, 2.25rem);
  color: var(--black);
  text-align: center;
  max-width: 34ch;
  margin: clamp(4rem, 8vw, 6.5rem) auto 0;
  line-height: 1.25;
}

/* ============================================================= S5 ASK HR
   V4.1: BLACK/void register — the sub-brand lockup is designed for dark. */
.ask {
  position: relative;
  background: radial-gradient(115% 90% at 50% 42%, var(--void-center) 0%, var(--void-edge) 76%);
  color: var(--floral-white);
  padding: clamp(8rem, 20vh, 15rem) var(--page-x);
  overflow: hidden;
  isolation: isolate;
  text-align: center;
}
.ask__rings {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  z-index: 0;
  pointer-events: none;
}
.signal {
  position: absolute;
  width: 60px; height: 60px;
  border-radius: 50%;
  border: 1.5px solid var(--cinnabar);
  opacity: 0;
  will-change: transform, opacity;
}
@keyframes emit {
  0%   { transform: scale(0.4); opacity: 0.5; }
  80%  { opacity: 0.06; }
  100% { transform: scale(8); opacity: 0; }
}
@media (prefers-reduced-motion: no-preference) {
  .ask.is-live .signal { animation: emit 4.5s var(--ease-soft) infinite; }
  .ask.is-live .signal:nth-child(2) { animation-delay: 1.5s; }
  .ask.is-live .signal:nth-child(3) { animation-delay: 3s; }
}
/* the orbit ring, retired from the hero, plays small around the pulse */
.ask__orbit { position: absolute; width: 340px; height: 340px; opacity: 0.5; }
.ask__orbit svg { width: 100%; height: 100%; overflow: visible; }
@keyframes orbit-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: no-preference) {
  .ask.is-live .ask__orbit svg { animation: orbit-spin 40s linear infinite; transform-origin: 50% 50%; }
}
.ask__orbit-text {
  font-family: var(--ff-ui);
  font-weight: 500;
  font-size: 6.5px;
  letter-spacing: 0.32em;
  text-transform: lowercase;
  fill: var(--cinnabar);
  opacity: 0.55;
}
.ask__inner { position: relative; z-index: 2; max-width: 46ch; margin: 0 auto; }
.ask__label {
  display: inline-block;
  font-family: var(--ff-ui);
  font-weight: 600;
  font-size: 0.75rem;
  letter-spacing: 0.3em;
  text-transform: uppercase;
  color: var(--cinnabar);
  margin-bottom: 1.75rem;
}
.ask__head { line-height: 0; margin: 0; }
/* R7: the sub-brand lockup is the section's visual anchor */
.ask__logo {
  display: block;
  width: min(520px, 70vw);
  height: auto;
  margin: 0 auto;
}
.ask__body {
  font-family: var(--ff-body);
  font-size: clamp(1.05rem, 1.4vw, 1.25rem);
  color: var(--floral-white);   /* V4.1: on the black Ask register */
  margin-top: 1.75rem;
  line-height: 1.6;
}
.ask__note {
  font-family: var(--ff-body);
  font-size: clamp(0.95rem, 1.1vw, 1.05rem);
  color: var(--grey-olive);
  margin-top: 1.25rem;
}
.ask__cta {
  display: inline-block;
  font-family: var(--ff-ui);
  font-weight: 600;
  font-size: 1rem;
  letter-spacing: 0.05em;
  color: var(--cinnabar);
  margin-top: 2rem;
  position: relative;
}
.ask__cta span { display: inline-block; transition: transform 0.4s var(--ease-soft); }
.ask__cta:hover span { transform: translateX(6px); }

/* ============================================================== S6 CONNECT */
.connect {
  position: relative;
  background: var(--black);
  color: var(--floral-white);
  padding: clamp(8rem, 18vh, 13rem) var(--page-x);
  overflow: hidden;
  isolation: isolate;
}
.connect .wmk { z-index: 0; }
.connect__inner { position: relative; z-index: 2; max-width: var(--maxw); margin: 0 auto; }
.connect__head {
  font-family: var(--ff-display);
  font-style: italic;
  font-weight: 800;
  font-size: clamp(2.5rem, 6vw, 5.25rem);
  line-height: 0.98;
  color: var(--cinnabar);
  letter-spacing: -0.02em;
  max-width: 18ch;
}
.connect__sub {
  font-family: var(--ff-body);
  color: var(--grey-olive);
  font-size: clamp(1rem, 1.25vw, 1.2rem);
  margin-top: 1.5rem;
  max-width: 52ch;
}
.paths {
  margin-top: clamp(3rem, 7vw, 5.5rem);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(1.25rem, 2.5vw, 2rem);
}
/* R8: whole-card click-through CTAs — Follow · Read · Talk */
.path {
  position: relative;
  display: block;
  border: 1px solid var(--grey-olive);
  border-radius: 4px;
  padding: clamp(1.75rem, 3vw, 2.5rem);
  padding-right: clamp(3rem, 4vw, 4rem);   /* room for the arrow */
  transition: border-color 0.45s var(--ease-soft), transform 0.45s var(--ease-soft);
  background: transparent;
  will-change: transform;
}
.path:hover { border-color: var(--cinnabar); transform: translateY(-6px); }
.path__head {
  font-family: var(--ff-display);
  font-style: italic;
  font-weight: 800;
  font-size: clamp(1.8rem, 2.6vw, 2.5rem);
  line-height: 1;
  color: var(--cinnabar);
  margin-bottom: 0.9rem;
}
.path__desc {
  font-family: var(--ff-body);
  font-size: 0.95rem;
  color: var(--grey-olive);
  line-height: 1.55;
}
.path__arrow {
  position: absolute;
  right: clamp(1.25rem, 2vw, 1.75rem);
  bottom: clamp(1.25rem, 2vw, 1.75rem);
  font-family: var(--ff-ui);
  font-size: 1.3rem;
  color: var(--floral-white);
  transition: transform 0.4s var(--ease-soft), color 0.4s var(--ease-soft);
}
.path:hover .path__arrow { transform: translateX(6px); color: var(--cinnabar); }
/* the dock mark: where the ball rests / docks on hover */
.path__dock {
  position: absolute;
  top: clamp(1.35rem, 2.2vw, 1.9rem);
  right: clamp(1.35rem, 2.2vw, 1.9rem);
  width: 10px; height: 10px;
  border-radius: 50%;
  border: 1.5px solid rgba(125, 126, 117, 0.45);
}
.book-dot-anchor {
  display: inline-block;
  width: 10px; height: 10px;
  border-radius: 50%;
  background: var(--cinnabar);
  flex: none;
}
.js .connect.dot-parked .book-dot-anchor { opacity: 0; }

/* R16 (Founder mobile catch): on touch there is no traveling ball, so the red
   dot never transferred — the box highlighted but the dot stayed on Talk.
   Touch now moves the dot with the selection: first tap sets the hover state
   (dot fills on the selected card, Talk's resting dot yields), second tap
   follows the link. CSS-only; desktop keeps the live traveling ball. */
@media (pointer: coarse) {
  .path__dock { transition: background-color 0.25s var(--ease-soft), border-color 0.25s var(--ease-soft); }
  .path--cta:hover .path__dock,
  .path--cta:focus-visible .path__dock {
    background: var(--cinnabar);
    border-color: var(--cinnabar);
  }
  .paths:has(.path--cta:not(.path--talk):hover) .path--talk .book-dot-anchor {
    background: transparent;
  }
}

/* ================================================ S7 FOOTER — BLACK FINISHER */
.footer {
  position: relative;
  background: var(--black);
  color: var(--floral-white);
  padding: clamp(5rem, 10vh, 8rem) var(--page-x) clamp(3rem, 6vh, 4rem);
  isolation: isolate;
}
.footer__inner {
  position: relative;
  z-index: 2;
  max-width: var(--maxw);
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 1.5rem;
}
.footer__logo { width: clamp(160px, 22vw, 240px); height: auto; }
.footer__slogan {
  font-family: var(--ff-display);
  font-style: italic;
  font-weight: 700;
  font-size: clamp(1.25rem, 2.5vw, 1.9rem);
  color: var(--floral-white);
}
.footer__contact,
.footer__social {
  display: flex;
  gap: 1.75rem;
  flex-wrap: wrap;
  justify-content: center;
  font-family: var(--ff-ui);
  font-size: 0.95rem;
  letter-spacing: 0.02em;
}
.footer__contact a:hover,
.footer__social a:hover { color: var(--cinnabar); }
.footer__social {
  font-size: 0.78rem;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--grey-olive);
}
.footer__sitemap {
  display: flex;
  gap: 1.25rem 1.75rem;
  flex-wrap: wrap;
  justify-content: center;
  font-family: var(--ff-ui);
  font-size: 0.85rem;
  letter-spacing: 0.04em;
  color: var(--grey-olive);
  margin-top: 0.5rem;
}
.footer__sitemap a:hover { color: var(--cinnabar); }
.footer__legal {
  font-family: var(--ff-ui);
  font-size: 0.8rem;
  letter-spacing: 0.08em;
  color: var(--grey-olive);
  margin-top: 0.5rem;
}
.footer__made {
  font-family: var(--ff-ui);
  font-size: 0.8rem;
  letter-spacing: 0.08em;
  color: var(--grey-olive);
}
.footer__micro {
  font-family: var(--ff-ui);
  font-size: 10px;
  letter-spacing: 0.42em;
  text-transform: lowercase;
  color: var(--grey-olive);
  opacity: 0.45;
  margin-top: 1rem;
}

/* ======================================================= JS-ENHANCED STATES */
.js .reveal-line { opacity: 0; }
.js .stakes__grp { opacity: 0; }
.js .stakes__para { opacity: 0; }
.js .chapter__body { opacity: 0; }
.js .ask__logo { opacity: 0; }
/* entrance: ball starts above + hr dim only when JS will run the drop */
.js .hero__ball { opacity: 0; }
.js #wm-hr { opacity: var(--hr-ghost); }

/* reduced-motion: force everything visible/static & kill animation */
@media (prefers-reduced-motion: reduce) {
  .js .reveal-line,
  .js .stakes__grp,
  .js .stakes__para,
  .js .chapter__body,
  .js .ask__logo,
  .js .wm__word { opacity: 1 !important; transform: none !important; filter: none !important; }
  .js .hero__ball { opacity: 1 !important; transform: none !important; }
  .js #wm-hr { opacity: var(--hr-lit) !important; }
  .hero__halo, .hero__ball-float, .ripple, .ticker__track,
  .signal, .ask__orbit svg { animation: none !important; }
  .travel-dot { display: none !important; }
  .nav, .nav__burger-line, .path, .rail__hole, .rail__label { transition: none !important; }
}

/* ================================================================ RESPONSIVE */
@media (max-width: 900px) {
  .proof__grid { grid-template-columns: 1fr; gap: 3.5rem; }
  .paths { grid-template-columns: 1fr; }
  .menu__cols { grid-template-columns: 1fr; align-items: start; min-height: 0; gap: 3rem; }
  .menu__link { font-size: clamp(1.9rem, 9vw, 2.6rem); }
  .chapter {
    min-height: auto;
    padding: clamp(5rem, 14vh, 8rem) var(--page-x) clamp(5rem, 14vh, 8rem) clamp(3.5rem, 10vw, 6rem);
  }
  /* R16 (Founder mobile catch): the centered 34vw numeral sat ON the service
     list at phone widths — re-seated to the kicker/title corner, sized to
     graze nothing. */
  .chapter__numeral {
    font-size: 20vw;
    top: 4.25rem;
    right: 0.75rem;
    transform: none;
    opacity: 0.12;
  }
  .stakes__line { font-size: clamp(1.75rem, 7vw, 2.75rem); }
  .pillars__track { left: 1.25rem; }
  .hero { --wmw: 94vw; --wm-top: 40%; --wm-nudge: 0px; } /* no rail on mobile */
  .hero__copy { left: var(--page-x); bottom: clamp(5.5rem, 12vh, 7rem); max-width: none; right: var(--page-x); }
  .scroll-cue { display: none; }
  .wm__word { font-size: clamp(4rem, 16vw, 8rem); }
}
@media (max-width: 560px) {
  .footer__contact, .footer__social { gap: 1.1rem; }
  .nav { padding-left: 1.25rem; padding-right: 1.25rem; }
  .frame__mark--bl { left: 1rem; }
  .frame__mark--br { right: 1rem; }
}
