/* ============================================================
   tokens.css - Nimbus ∆P single source of design tokens
   Phase 1 (coherence foundation), 2026-06-03.
   Light commerce foundation. Restrained dark "expression"
   tokens are introduced in Phase 2.
   Legacy aliases at the bottom keep existing selectors working
   so this file can be adopted without rewriting every rule.
   ============================================================ */
:root {
  /* ---- Ink & text ---- */
  --ink: #111827;          /* primary headings, dark UI surfaces */
  --ink-strong: #000000;   /* pressed / maximum contrast        */
  --body: #4B5563;         /* body copy (Nimbus text)           */
  --muted: #6B7280;        /* secondary text                    */
  --faint: #9CA3AF;        /* metadata, placeholders            */

  /* ---- Brand accent (bronze) ---- */
  --bronze: #B5886A;
  --bronze-dim: #8A6B53;
  --bronze-soft: rgba(181, 136, 106, 0.12);
  --bronze-strong: rgba(181, 136, 106, 0.25);

  /* ---- Surfaces (collapsed from ~13 off-whites to 3) ---- */
  --bg: #FAFAFA;           /* page background          */
  --surface: #FFFFFF;      /* cards, panels            */
  --surface-alt: #F4F1EC;  /* warm alt sections, fills */

  /* ---- Lines & elevation ---- */
  --line: rgba(0, 0, 0, 0.08);
  --line-strong: rgba(0, 0, 0, 0.14);
  --shadow-1: 0 1px 3px rgba(0, 0, 0, 0.06), 0 2px 6px rgba(0, 0, 0, 0.04);
  --shadow-2: 0 4px 12px rgba(0, 0, 0, 0.10), 0 2px 4px rgba(0, 0, 0, 0.06);
  --shadow-3: 0 12px 32px rgba(0, 0, 0, 0.12), 0 4px 8px rgba(0, 0, 0, 0.08);

  /* ---- Geometry ---- */
  --r-sm: 8px;             /* buttons, inputs, badges      */
  --r-md: 12px;            /* cards                        */
  --r-lg: 16px;            /* feature panels, hero media   */
  --r-pill: 9999px;

  /* ---- Spacing - 8px grid ---- */
  --space-xs: 4px;
  --space-sm: 8px;
  --space-md: 16px;
  --space-lg: 24px;
  --space-xl: 32px;
  --space-2xl: 48px;
  --space-3xl: 64px;
  --space-4xl: 96px;
  --section-gap: clamp(72px, 10vh, 140px);

  /* ---- Content widths (modular) ---- */
  --w-page: 1280px;        /* main container   */
  --w-prose: 920px;        /* reading column   */
  --w-narrow: 640px;       /* intros, forms    */

  /* ---- Motion - hydraulic damping (no bounce) ---- */
  --ease-out-heavy: cubic-bezier(0.16, 1, 0.3, 1);
  --ease-out-smooth: cubic-bezier(0.33, 1, 0.68, 1);
  --dur-fast: 150ms;
  --dur-default: 250ms;
  --dur-hover: 400ms;
  --dur-reveal: 800ms;

  /* ---- Type ---- */
  --font: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;

  /* ---- Dark "expression" accents (restrained hybrid - deep charcoal, NOT black) ---- */
  --expr-bg: #181B22;       /* expression band background */
  --expr-surface: #20242D;  /* elevated data card        */
  --expr-border: rgba(181, 136, 106, 0.20);  /* bronze-tinted */
  --expr-text: #ECEAE6;     /* warm off-white            */
  --expr-text-dim: #A6A39D; /* secondary on dark         */
  --expr-glow: radial-gradient(60% 120% at 50% 0%, rgba(181, 136, 106, 0.10), transparent 70%);

  /* ============================================================
     Legacy aliases - map old token names onto the canonical set
     so existing selectors keep working during the refactor.
     ============================================================ */
  --blue: var(--ink);
  --blue-hover: var(--ink-strong);
  --blue-light: var(--surface-alt);
  --bd: var(--line);
  --sh: var(--shadow-1);

  --locator-ink: var(--ink);
  --locator-body: var(--body);
  --locator-muted: var(--muted);
  --locator-faint: var(--faint);
  --locator-line: var(--line);
  --locator-surface: var(--surface);
  --locator-soft: var(--surface-alt);
  --locator-bronze: var(--bronze);
  --locator-bronze-soft: var(--bronze-soft);
  --locator-shadow: 0 1px 3px rgba(0, 0, 0, 0.06), 0 16px 40px rgba(0, 0, 0, 0.07);
}
