/* OCD Rebuild — Design tokens. v2 (2026-06-06).
   Rewrite directive (Bolun session 2026-06-06):
   - Strip ALL cream tones sitewide (was --band-2 #FBF6EF / --sand #F4ECE0 / --warm-line #EADFD0)
   - Strip dark surfaces from sections (--ink now reserved for TEXT only, never bg)
   - White + cool off-white only. Cyan accent retained from brand.
   - Drop Sora display + Hanken Grotesk body pair → Inter single-family (denser, less editorial)
   - Bump base font size + tighten section padding (cleaning-company density, not magazine)
*/
:root{
  /* surfaces — LIGHT ONLY. Dark surfaces removed sitewide per 2026-06-06 rebuild brief. */
  --paper:#FFFFFF;        /* primary surface */
  --band:#F3FAFB;         /* cool cyan-tinted off-white (sampled from OCD logo bg) */
  --band-2:#F3FAFB;       /* alias — old code referencing --band-2 now resolves to clean off-white */
  --sand:#F3FAFB;         /* alias — kill the cream */
  --warm-line:#E4E8E8;    /* alias — kill the warm cream-line, neutral grey only */
  --surface:#FFFFFF;      /* alias — any code referencing dark "surface" now resolves to paper */

  /* text on light — single ink ramp */
  --ink:#0A1413;          /* primary text — reads as near-black on white */
  --text:#0A1413;
  --muted:#566260;        /* secondary text, captions */
  --gray:#9AA3A3;         /* tertiary, disabled, deemphasized */
  --line:#E4E8E8;         /* dividers, borders */

  /* brand — cyan from logo (light-mode tuned) */
  --cyan:#00E5E8;         /* CTA + offer chip ONLY (1 moment per screen) */
  --cyan-soft:#7BDDDF;    /* hover, body accent */
  --cyan-deep:#04898F;    /* accent on white, links, eyebrows, WCAG AA on white */
  --cyan-tint:#E0F7F8;    /* card tint, hover bg, soft surface accent */

  /* status (semantic) */
  --ok:#0A8838;           /* yes / included */
  --warn:#B5363D;         /* no / excluded */
  --star:#D89233;         /* star ratings (rust-gold reads on white better than yellow) */

  /* type — single family. Inter at 4 weights covers every role. */
  --font-display:'Inter',system-ui,-apple-system,sans-serif;
  --font-body:'Inter',system-ui,-apple-system,sans-serif;
  --font-mono:'IBM Plex Mono',ui-monospace,monospace;

  /* type ramp — bumped from v1 for cleaning-company density */
  --fs-xs:.82rem;
  --fs-sm:.92rem;
  --fs-base:1.06rem;        /* was 1rem — bump body for less editorial whitespace */
  --fs-md:1.18rem;
  --fs-lg:1.42rem;
  --fs-xl:1.8rem;
  --fs-2xl:2.4rem;
  --fs-display:clamp(2.6rem,5.4vw,4.4rem);   /* was clamp(2.2rem,4.8vw,3.7rem) — bump ceiling for confident hero */

  /* radius */
  --r-sm:4px;
  --r:6px;
  --r-lg:10px;
  --r-xl:14px;
  --r-pill:999px;

  /* spacing — tighter than v1 (cleaning-company density, not editorial whitespace) */
  --section:clamp(2.2rem,4.5vw,4rem);    /* was clamp(3rem,6vw,5.5rem) — cut ~30% */
  --gap:clamp(.85rem,2vw,1.4rem);
  --wrap:1200px;

  /* shadow — soft, no neon */
  --shadow-sm:0 2px 8px -3px rgba(10,20,19,.08);
  --shadow:0 12px 32px -16px rgba(10,20,19,.18);
  --shadow-lg:0 20px 45px -22px rgba(10,20,19,.30);
  --shadow-cyan:0 12px 28px -14px rgba(4,137,143,.22);

  /* motion */
  --ease-out:cubic-bezier(.22,1,.36,1);
  --ease-snap:cubic-bezier(.34,1.56,.64,1);
  --ease-reveal:cubic-bezier(.16,1,.3,1);
  --t-hover:160ms;
  --t-state:220ms;
  --t-reveal:400ms;
  /* legacy aliases */
  --ease:var(--ease-reveal);
  --t:var(--t-state) var(--ease-out);

  /* legacy aliases — keep so any v1 component code doesn't error.
     These all resolve to LIGHT values now. Dark surfaces are dead. */
  --ink-soft:#FFFFFF;
  --ink-deeper:#FFFFFF;
  --line-dark:var(--line);
  --glow:var(--cyan-soft);
}

/* wrap scales for ultra-wide displays */
@media (min-width:1800px){:root{--wrap:1400px}}
@media (min-width:2400px){:root{--wrap:1600px}}
@media (min-width:3000px){:root{--wrap:1800px}}
