/* 5PACE design tokens v1.1 — names are stable. Import before app CSS. */
:root {
  /* Core palette: Frozen lake (dominant) */
  --color-slate: #6D8196;      /* lines, borders, secondary/large text */
  --color-ice: #ADD8E6;        /* accent on navy */
  --color-snow: #FFFAFA;       /* light surface; text on navy */
  --color-navy: #000080;       /* THE dark brand surface */
  /* Extras (3 total) */
  --color-navy-deep: #00005A;  /* same hue as navy, ~70% lightness: depth, raised/inset panels, footer */
  --color-neutral: #14163A;    /* navy-tinted near-black: body text on snow */
  --color-alert: #FF6B3D;      /* deviations/alerts only, sparingly */
  /* Legacy names kept stable — aliased to core/extras (no separate values) */
  --color-ink: var(--color-navy);
  --color-ink-2: var(--color-navy-deep);
  --color-ink-3: var(--color-navy-deep);
  --color-graphite: var(--color-neutral);
  --color-mist: var(--color-snow);
  --color-frost: var(--color-snow);
  --color-glow: var(--color-ice);
  --color-signal: var(--color-alert);
  --color-success: var(--color-ice);
  --color-white: var(--color-snow);

  /* Semantic — light (default) */
  --bg: var(--color-snow);
  --bg-alt: var(--color-snow);
  --surface: var(--color-snow);
  --surface-raised: var(--color-snow);
  --text: var(--color-neutral);
  --text-muted: rgba(20,22,58,.78);
  --text-subtle: var(--color-slate);
  --accent: var(--color-navy);
  --accent-contrast: var(--color-snow);
  --accent-soft: rgba(173,216,230,.38);
  --border: rgba(109,129,150,.32);
  --border-strong: var(--color-slate);
  --line-art: var(--color-navy);
  --focus-ring: 0 0 0 3px var(--color-snow), 0 0 0 5px var(--color-navy);
  --danger: var(--color-alert);

  /* Families */
  --font-display: "Space Grotesk", "Inter", system-ui, sans-serif;
  --font-body: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-mono: "JetBrains Mono", "IBM Plex Mono", ui-monospace, monospace;
  /* Fluid type scale (min @360px → max @1440px) */
  --text-xs: clamp(0.75rem, 0.73rem + 0.09vw, 0.8125rem);
  --text-sm: clamp(0.875rem, 0.85rem + 0.1vw, 0.9375rem);
  --text-base: clamp(1rem, 0.97rem + 0.14vw, 1.0625rem);
  --text-lg: clamp(1.125rem, 1.07rem + 0.28vw, 1.3125rem);
  --text-xl: clamp(1.375rem, 1.26rem + 0.56vw, 1.75rem);
  --text-2xl: clamp(1.75rem, 1.52rem + 1.11vw, 2.5rem);
  --text-3xl: clamp(2.25rem, 1.83rem + 1.85vw, 3.5rem);
  --text-4xl: clamp(2.75rem, 2.08rem + 2.96vw, 4.75rem);
  --text-5xl: clamp(3.25rem, 2.25rem + 4.44vw, 6.25rem);
  --leading-tight: 0.98;
  --leading-snug: 1.15;
  --leading-normal: 1.55;
  --leading-relaxed: 1.7;
  --tracking-display: -0.04em;
  --tracking-tight: -0.02em;
  --tracking-eyebrow: 0.16em;
  --weight-regular: 400; --weight-medium: 500; --weight-semibold: 600; --weight-bold: 700;

  /* Spacing (4px base) */
  --space-0: 0; --space-1: 4px; --space-2: 8px; --space-3: 12px; --space-4: 16px;
  --space-5: 24px; --space-6: 32px; --space-7: 48px; --space-8: 64px; --space-9: 96px; --space-10: 128px;
  --section-y: clamp(64px, 8vw, 128px);

  /* Radii */
  --radius-none: 0; --radius-xs: 2px; --radius-sm: 6px; --radius-md: 12px; --radius-lg: 20px; --radius-xl: 28px; --radius-pill: 999px;
  /* Borders */
  --border-hairline: 1px; --border-thick: 2px;
  /* Shadows / glow */
  --shadow-sm: 0 1px 2px rgba(0,0,90,.06), 0 2px 8px rgba(0,0,90,.05);
  --shadow-md: 0 8px 24px rgba(0,0,128,.08);
  --shadow-lg: 0 24px 64px rgba(0,0,128,.12);
  --glow-ice: 0 0 0 1px rgba(173,216,230,.35), 0 0 24px rgba(173,216,230,.30);
  --glow-strong: 0 0 0 1px rgba(173,216,230,.6), 0 0 40px rgba(173,216,230,.50);

  /* Motion */
  --duration-instant: 80ms; --duration-fast: 160ms; --duration-base: 240ms; --duration-slow: 480ms; --duration-scene: 2400ms;
  --ease-standard: cubic-bezier(.2,0,0,1);
  --ease-enter: cubic-bezier(0,0,.2,1);
  --ease-exit: cubic-bezier(.4,0,1,1);
  --ease-linear: linear;

  /* Layout */
  --bp-sm: 640px; --bp-md: 768px; --bp-lg: 1024px; --bp-xl: 1280px; --bp-2xl: 1440px;
  --container-max: 1280px;
  --container-pad: clamp(20px, 4vw, 48px);
  --grid-columns: 12;
  --grid-gutter: clamp(16px, 2vw, 24px);
  --header-height: 64px;

  /* Z-index */
  --z-base: 0; --z-raised: 10; --z-dropdown: 100; --z-sticky: 200; --z-header: 300; --z-overlay: 400; --z-modal: 500; --z-toast: 600;
}

/* Semantic — dark. Apply via [data-theme="dark"] or .theme-dark */
[data-theme="dark"], .theme-dark {
  --bg: var(--color-navy);
  --bg-alt: var(--color-navy-deep);
  --surface: var(--color-navy-deep);
  --surface-raised: var(--color-navy-deep);
  --text: var(--color-snow);
  --text-muted: rgba(255,250,250,.75);
  --text-subtle: var(--color-slate);
  --accent: var(--color-ice);
  --accent-contrast: var(--color-navy);
  --accent-soft: rgba(173,216,230,.16);
  --border: rgba(173,216,230,.22);
  --border-strong: var(--color-slate);
  --line-art: rgba(255,250,250,.9);
  --focus-ring: 0 0 0 2px var(--color-navy), 0 0 0 4px var(--color-ice);
  --danger: var(--color-alert);
}
@media (prefers-reduced-motion: reduce) {
  :root { --duration-fast: 0ms; --duration-base: 0ms; --duration-slow: 0ms; --duration-scene: 0ms; }
}
