/* ============================================================================
   Design Tokens — single source of truth.
   Copied into each project's css/tokens.css. Override --accent-* per project.
   ========================================================================== */
:root {
  /* ---- Neutral scale (slate) ---- */
  --c-0: #ffffff;
  --c-50: #f8fafc;
  --c-100: #f1f5f9;
  --c-200: #e2e8f0;
  --c-300: #cbd5e1;
  --c-400: #94a3b8;
  --c-500: #64748b;
  --c-600: #475569;
  --c-700: #334155;
  --c-800: #1e293b;
  --c-900: #0f172a;
  --c-950: #020617;

  /* ---- Accent (override per project) ---- */
  --accent-500: #e8590c;
  --accent-600: #d24c06;
  --accent-700: #b54108;
  --accent-contrast: #ffffff;

  /* ---- Semantic ---- */
  --bg: var(--c-0);
  --bg-subtle: var(--c-50);
  --bg-muted: var(--c-100);
  --text: var(--c-900);
  --text-muted: var(--c-600);
  --text-faint: var(--c-500);
  --border: var(--c-200);
  --success: #16a34a;
  --danger: #dc2626;

  /* ---- Typography (fluid via clamp) ---- */
  --font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --font-display: "Manrope", var(--font-sans);
  --fs-300: clamp(0.8rem, 0.77rem + 0.15vw, 0.875rem);
  --fs-400: clamp(0.95rem, 0.9rem + 0.25vw, 1.05rem);
  --fs-500: clamp(1.1rem, 1rem + 0.5vw, 1.35rem);
  --fs-600: clamp(1.35rem, 1.1rem + 1.1vw, 1.9rem);
  --fs-700: clamp(1.8rem, 1.4rem + 2vw, 2.8rem);
  --fs-800: clamp(2.3rem, 1.7rem + 3vw, 4rem);
  --lh-tight: 1.12;
  --lh-snug: 1.3;
  --lh-normal: 1.6;
  --fw-regular: 400;
  --fw-medium: 500;
  --fw-semibold: 600;
  --fw-bold: 700;
  --fw-extrabold: 800;

  /* ---- Spacing scale (8px base) ---- */
  --sp-1: 0.25rem;
  --sp-2: 0.5rem;
  --sp-3: 0.75rem;
  --sp-4: 1rem;
  --sp-5: 1.5rem;
  --sp-6: 2rem;
  --sp-7: 3rem;
  --sp-8: 4rem;
  --sp-9: 6rem;
  --sp-10: 8rem;

  /* ---- Layout ---- */
  --container: 1180px;
  --container-narrow: 760px;
  --gutter: clamp(1rem, 0.5rem + 3vw, 2.5rem);

  /* ---- Radius ---- */
  --r-sm: 6px;
  --r-md: 12px;
  --r-lg: 20px;
  --r-xl: 28px;
  --r-full: 999px;

  /* ---- Shadows ---- */
  --sh-sm: 0 1px 2px rgba(15, 23, 42, 0.06), 0 1px 3px rgba(15, 23, 42, 0.1);
  --sh-md: 0 4px 12px rgba(15, 23, 42, 0.08), 0 2px 4px rgba(15, 23, 42, 0.06);
  --sh-lg: 0 12px 32px rgba(15, 23, 42, 0.12), 0 4px 8px rgba(15, 23, 42, 0.06);
  --sh-accent: 0 8px 24px color-mix(in srgb, var(--accent-500) 35%, transparent);

  /* ---- Motion ---- */
  --ease: cubic-bezier(0.4, 0, 0.2, 1);
  --ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --dur-fast: 140ms;
  --dur: 240ms;
  --dur-slow: 420ms;

  /* ---- Z ---- */
  --z-header: 100;
  --z-modal: 1000;
}

@media (prefers-color-scheme: dark) {
  :root[data-theme="auto"] {
    --bg: var(--c-950);
    --bg-subtle: var(--c-900);
    --bg-muted: var(--c-800);
    --text: var(--c-50);
    --text-muted: var(--c-300);
    --text-faint: var(--c-400);
    --border: var(--c-800);
  }
}
