/* ─────────────────────────────────────────────────────────────────────────
 * design-systems/mistral-ai/tokens.css
 *
 * Structured token bindings for "Design System Inspired by Mistral AI".
 * Sun-drenched French engineering: golden amber universe, billboard typography,
 * sharp architectural geometry, warm golden shadows.
 *
 * Key brand decisions encoded here:
 *   - Warm Ivory (#fffaeb) as the lightest canvas — never pure white
 *   - Mistral Orange (#fa520f) — vivid brand signal, declarative
 *   - Weight 400 throughout — even at 82px; size alone carries authority
 *   - Near-zero border-radius — sharp, architectural European geometry
 *   - Golden amber shadows (rgba(127,99,21,...)) instead of gray
 *   - Ultra-tight line-heights (1.0 at display) — billboard-like text blocks
 * ─────────────────────────────────────────────────────────────────── */

:root {
  /* ─── Surface ─────────────────────────────────────────────────────
   * Warm void: empty space feels warm because backgrounds are tinted.
   * Ivory → Cream → never pure white. */
  --bg: #fffaeb;             /* Warm Ivory — the foundation canvas, barely warm */
  --surface: #fff0c2;        /* Cream — primary warm surface, secondary button bg */
  --surface-warm: var(--surface); /* alias — surface already is the warm tier */

  /* ─── Foreground ──────────────────────────────────────────────────
   * Mistral Black is a near-black warmer than #000. Even neutrals
   * carry warmth — no cool grays anywhere. */
  --fg: #1f1f1f;             /* Mistral Black — primary text */
  --fg-2: var(--fg);         /* alias — single text weight throughout */
  --muted: #3d3d3d;          /* Warm dark gray — secondary text */
  --meta: var(--muted);      /* alias — same warm gray for metadata */

  /* ─── Border ──────────────────────────────────────────────────────
   * Containers are primarily defined by background color, not borders.
   * When borders appear, they're warm-tinted. */
  --border: #f0e8c8;         /* Warm parchment border */
  --border-soft: var(--border); /* alias — no inner separator distinction */

  /* ─── Accent ──────────────────────────────────────────────────────
   * Mistral Orange — burns through the page like a signal fire.
   * Used exclusively for primary CTAs and highest-signal brand moments. */
  --accent: #fa520f;
  --accent-on: #ffffff;
  --accent-hover: #fb6424;   /* Mistral Flame — slightly warmer lighter variant */
  --accent-active: color-mix(in oklab, var(--accent), black 12%);

  /* ─── Semantic ────────────────────────────────────────────────────
   * Standard semantic colors — they must remain distinguishable from the
   * warm amber palette. No warm-tinted semantic overrides needed. */
  --success: #17a34a;
  --warn: #eab308;
  --danger: #dc2626;

  /* ─── Typography ──────────────────────────────────────────────────
   * Arial (custom font uses Arial as fallback) at a single weight (400).
   * Single weight, maximum impact — size alone carries hierarchy.
   * No bold anywhere — the billboard scale speaks for itself. */
  --font-display: Arial, ui-sans-serif, system-ui, sans-serif;
  --font-body: Arial, ui-sans-serif, system-ui, sans-serif;
  --font-mono: ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace;

  /* Type scale — DESIGN.md §3. 82px display, 56px section, 48px sub.
   * Ultra-tight at scale (lh 0.95-1.0) — ascenders nearly touch descenders. */
  --text-xs: 12px;
  --text-sm: 14px;           /* Caption / Link */
  --text-base: 16px;         /* Body / Button */
  --text-lg: 24px;           /* Feature Title */
  --text-xl: 32px;           /* Card / Sub-heading */
  --text-2xl: 48px;          /* Sub-heading Large */
  --text-3xl: 56px;          /* Section Heading */
  --text-4xl: 82px;          /* Display Hero — billboard scale */

  --leading-body: 1.5;
  --leading-tight: 1.0;      /* Ultra-tight — text blocks feel like billboards */
  --tracking-display: -0.025em; /* ≈ -2.05px at 82px — monolithic block */

  /* ─── Spacing ─────────────────────────────────────────────────────
   * 8px base unit. Section vertical spacing 80–100px. */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-8: 32px;
  --space-12: 48px;

  --section-y-desktop: 80px;
  --section-y-tablet: 48px;
  --section-y-phone: 32px;

  /* ─── Radius ──────────────────────────────────────────────────────
   * Near-zero: the dominant radius. Sharp, architectural corners on
   * everything. The sharpness contrasts with the softness of the colors,
   * creating tension between warm color and hard geometry. */
  --radius-sm: 2px;          /* Near-zero — all standard elements */
  --radius-md: 2px;          /* Same — no rounding variation */
  --radius-lg: 4px;          /* Slight variation for larger containers */
  --radius-pill: 9999px;     /* Pill reserved for chips/badges only */

  /* ─── Elevation ───────────────────────────────────────────────────
   * Golden hour shadows — amber-tinted, warm, multi-layered.
   * Primary layer of the cascade (subsequent layers in components). */
  --elev-flat: none;
  --elev-ring: 0 0 0 1px var(--border);
  --elev-raised: -8px 16px 39px rgba(127, 99, 21, 0.12); /* Golden float */

  /* ─── Focus ring ──────────────────────────────────────────────────
   * Orange-tinted focus ring consistent with the warm brand. */
  --focus-ring: 0 0 0 3px color-mix(in oklab, var(--accent), transparent 70%);

  /* ─── Motion ──────────────────────────────────────────────────────
   * Standard durations — Mistral's boldness is in type and color,
   * not in animation. */
  --motion-fast: 150ms;
  --motion-base: 200ms;
  --ease-standard: cubic-bezier(0.2, 0, 0, 1);

  /* ─── Layout ──────────────────────────────────────────────────────
   * 1280px container — wide-format layouts for dramatic imagery. */
  --container-max: 1280px;
  --container-gutter-desktop: 24px;
  --container-gutter-tablet: 16px;
  --container-gutter-phone: 12px;
}
