/* LUMEN tokens. Sovereign Canadian deeptech register.
   Deep ink, paper white, dawn accent. Five Plex weights. */

:root {
  /* Color: ink + paper + sovereign dawn */
  --ink-900: #0a0d12;       /* deepest, body type, document register */
  --ink-800: #14181f;       /* surfaces in dark mode, dense data wells */
  --ink-700: #232a35;
  --ink-600: #3a4250;
  --ink-500: #5b6473;       /* secondary type */
  --ink-400: #8a93a3;
  --ink-300: #b6bdc8;       /* hairlines on paper */
  --ink-200: #d8dde4;
  --ink-100: #ebeef2;       /* subtle wells */
  --ink-050: #f4f6f8;
  --paper:   #fbfbf7;       /* paper white, slight warmth, document feel */
  --paper-pure: #ffffff;

  /* Sovereign dawn accent. Restrained warm hint, never a flat brand color.
     Used only at meaningful moments: hero horizon, synthesis signature,
     moat schematic, attending countersign. */
  --dawn-700: #6b3a14;
  --dawn-600: #8a4a18;
  --dawn-500: #b66526;
  --dawn-400: #d68748;      /* canonical accent */
  --dawn-300: #e3a878;
  --dawn-200: #efcaa6;
  --dawn-100: #f7e4cf;

  /* Cool clinical slate, secondary state for data-dense surfaces */
  --slate-700: #2b3744;
  --slate-500: #4d5e72;
  --slate-300: #9aa8b8;
  --slate-100: #e3e8ee;

  /* Semantic clinical states (sparing, never primary) */
  --critical: #a8321e;       /* deep, never bright red */
  --caution:  #9c6a16;
  --good:     #2f6b4a;       /* deep clinical green */

  /* Type. IBM Plex family, self-hosted. */
  --font-sans:   "IBM Plex Sans", "IBM Plex Sans Arabic", system-ui, -apple-system, sans-serif;
  --font-arabic: "IBM Plex Sans Arabic", "IBM Plex Sans", system-ui, sans-serif;
  --font-serif:  "IBM Plex Serif", Georgia, serif;
  --font-mono:   "IBM Plex Mono", ui-monospace, "SF Mono", monospace;

  /* Type scale. Editorial weight, restrained. */
  --t-display: clamp(48px, 7.2vw, 112px);
  --t-h1:      clamp(40px, 5.4vw, 84px);
  --t-h2:      clamp(32px, 3.6vw, 56px);
  --t-h3:      clamp(22px, 2.0vw, 32px);
  --t-lead:    clamp(18px, 1.4vw, 22px);
  --t-body:    16.5px;
  --t-small:   14px;
  --t-mono:    13px;
  --t-eyebrow: 12px;

  /* Tracking */
  --track-tight:   -0.022em;
  --track-snug:    -0.012em;
  --track-normal:  0;
  --track-eyebrow: 0.16em;
  --track-mono:    0.04em;

  /* Spatial: embassy-grade spacing. */
  --u: 8px;
  --gutter: clamp(24px, 4vw, 56px);
  --section-y: clamp(96px, 12vw, 184px);
  --max-w: 1360px;
  --measure: 64ch;

  /* Hairlines */
  --hair: 1px solid var(--ink-200);
  --hair-strong: 1px solid var(--ink-300);
  --hair-ink: 1px solid var(--ink-900);

  /* Motion */
  --ease-out: cubic-bezier(.22,.61,.36,1);
  --ease-in-out: cubic-bezier(.65,.05,.36,1);
  --t-fast: 180ms;
  --t-med: 360ms;
  --t-slow: 720ms;

  /* Density */
  --density: 1;
}

[data-density="compact"]  { --density: 0.82; --section-y: clamp(72px, 9vw, 128px); }
[data-density="generous"] { --density: 1.18; --section-y: clamp(120px, 15vw, 232px); }

[dir="rtl"] {
  --font-sans: "IBM Plex Sans Arabic", "IBM Plex Sans", system-ui, sans-serif;
}

@media (prefers-reduced-motion: reduce) {
  :root { --t-fast: 0ms; --t-med: 0ms; --t-slow: 0ms; }
  *, *::before, *::after { animation-duration: 0.001ms !important; transition-duration: 0.001ms !important; }
}
