/* ============================================================
   SIGNAL — DESIGN TOKENS
   Template 4 · Rehab CEOs · "A clinic you can measure."
   Recovery-telemetry instrument: neutral graphite + lab white,
   one magenta signal accent, tick-strip apparatus, zero print DNA.
   Per-client rebrand: change --accent-h/s/l; everything derives.
   Token NAMES are frozen (interior pages consume them); only the
   VALUES express the new identity.
   ============================================================ */

:root {
  /* ---- accent: client red (sampled from the real logo icon, #E81820) ---- */
  --accent-h: 358;
  --accent-s: 82%;
  --accent-l: 50%;
  --accent: hsl(var(--accent-h) var(--accent-s) var(--accent-l));
  --accent-deep: hsl(var(--accent-h) 82% 34%);
  --accent-hot: hsl(var(--accent-h) 92% 55%);
  --accent-lift: hsl(var(--accent-h) 96% 70%);   /* accent on dark surfaces */
  --accent-wash: hsl(var(--accent-h) 55% 94%);
  --accent-wash-2: hsl(var(--accent-h) 52% 88%);
  --accent-on: #ffffff;

  /* ---- signal gradient (measurement fills) ---- */
  --heat: linear-gradient(100deg, hsl(var(--accent-h) 82% 38%), hsl(var(--accent-h) 92% 55%));
  --heat-v: linear-gradient(175deg, hsl(var(--accent-h) 82% 38%), hsl(var(--accent-h) 92% 55%));

  /* ---- surfaces: neutral lab ladder (names frozen, values neutral) ---- */
  --paper: #f5f5f6;
  --paper-2: #eaeaed;
  --card: #ffffff;
  --espresso: #121215;             /* graphite console, not brown */
  --espresso-2: #19191d;
  --espresso-3: #222227;

  /* ---- ink (neutral graphite) ---- */
  --ink: #17171a;
  --ink-soft: #4d4d56;
  --ink-faint: hsl(240 4% 42%);
  --paper-on-espresso: #f2f2f4;
  --paper-on-espresso-dim: hsl(240 5% 69%);

  /* ---- rules ---- */
  --rule: hsl(240 6% 86%);
  --rule-strong: hsl(240 5% 66%);
  --rule-dark: hsl(240 4% 26%);

  /* ---- type: engineered, zero editorial ---- */
  --font-display: "Chakra Petch", "Figtree", sans-serif;     /* squared technical display */
  --font-quote: "Figtree", "Helvetica Neue", sans-serif;     /* patient voice (italic sans) */
  --font-body: "Figtree", "Helvetica Neue", sans-serif;
  --font-mono: "Martian Mono", "SFMono-Regular", Menlo, monospace; /* telemetry labels */

  --fs-display: clamp(2.5rem, 1.15rem + 5.4vw, 5.5rem);
  --fs-h2: clamp(1.9rem, 1.15rem + 2.9vw, 3.4rem);
  --fs-h3: clamp(1.25rem, 1.1rem + 0.8vw, 1.6rem);
  --fs-h4: clamp(1.05rem, 0.98rem + 0.35vw, 1.2rem);
  --fs-body: 1.0625rem;
  --fs-small: 0.9375rem;
  --fs-mono: 0.75rem;
  --fs-mono-xs: 0.65rem;
  --fs-quote: clamp(1.4rem, 1.05rem + 1.7vw, 2.3rem);

  /* ---- space ---- */
  --sp-section: clamp(4.5rem, 3rem + 6vw, 8.75rem);
  --sp-head: clamp(2.25rem, 1.5rem + 2.5vw, 4rem);
  --sp-gap: clamp(1.25rem, 1rem + 1vw, 2rem);
  --sp-row: clamp(1rem, .85rem + .6vw, 1.5rem);

  /* ---- geometry ---- */
  --radius: 4px;
  --frame: 1px solid var(--rule);
  --frame-strong: 1px solid var(--rule-strong);
  --frame-ink: 1px solid var(--ink);
  --shadow-print: 0 1px 2px hsl(240 6% 10% / 0.06);           /* flat, near-invisible */
  --shadow-print-dark: 0 1px 2px hsl(0 0% 0% / 0.3);
  --shear: clamp(1.5rem, 3.5vw, 3.25rem);

  /* ---- apparatus (tick strips, grids) ---- */
  --tick-strip: repeating-linear-gradient(90deg,
      currentColor 0, currentColor 1px, transparent 1px, transparent 9px);
  --dot-grid-dark: radial-gradient(hsl(240 5% 100% / 0.07) 1px, transparent 1px);
  --dot-grid-light: radial-gradient(hsl(240 6% 10% / 0.10) 1px, transparent 1px);

  /* ---- motion: press for entrances, out for the hand ---- */
  --ease-press: cubic-bezier(0.7, 0, 0.2, 1);     /* entrances, panel swaps */
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);      /* everything pointer-driven */
  --ease-exit: cubic-bezier(0.4, 0, 1, 1);        /* collapses, exits */
  --dur-ui: 220ms;
  --dur-swap: 400ms;
  --dur-rise: 650ms;
  --dur-frame: 900ms;
  --dur-rule: 800ms;
  --stagger: 80ms;

  /* ---- layout / z ---- */
  --container: 1240px;
  --gutter: clamp(1.25rem, 4vw, 3rem);
  --nav-h: 72px;
  --z-bar: 190;
  --z-overlay: 199;
  --z-masthead: 210;
  --z-skip: 300;
}
