/* New Era Forge design tokens. The ONLY place colours, type scale and spacing are defined.
   Light is the default; dark comes from the OS preference or an explicit data-theme. */

:root {
  /* ---- Brand palette (raw values; prefer the semantic tokens below) ---- */
  --nef-ink: #1b1f24;        /* charcoal: text on light, surface on dark */
  --nef-paper: #f8f6f2;      /* warm off-white: the page in light */
  --nef-steel: #5b6470;      /* muted text on light (5.6:1 on paper) */
  --nef-steel-light: #a7b0ba;/* muted text on dark (7.6:1 on coal) */
  --nef-coal: #15181c;       /* the page in dark */
  --nef-slate: #22272e;      /* raised surface in dark */
  --nef-ember: #b8400a;      /* accent on light (5.9:1 on paper) */
  --nef-ember-bright: #f4a261;/* accent on dark (9.3:1 on coal) */
  --nef-dawn: #0f6e66;       /* secondary on light (5.8:1 on paper) */
  --nef-dawn-bright: #6ee7d8;/* secondary on dark */
  --nef-line-light: #d8d3cb;
  --nef-line-dark: #343b45;

  /* ---- Semantic colour ---- */
  --color-bg: var(--nef-paper);
  --color-surface: #ffffff;
  --color-text: var(--nef-ink);
  --color-muted: var(--nef-steel);
  --color-accent: var(--nef-ember);
  --color-accent-contrast: #ffffff;
  --color-secondary: var(--nef-dawn);
  --color-line: var(--nef-line-light);
  --color-focus: #1d4ed8;    /* visible against both ember and paper */
  --color-link: var(--nef-ember);
  --color-badge-live-bg: #dcfce7;   --color-badge-live-fg: #14532d;
  --color-badge-preview-bg: #fef3c7;--color-badge-preview-fg: #78350f;
  --color-badge-link-bg: #e0f2fe;   --color-badge-link-fg: #0c4a6e;
  --color-badge-soon-bg: #e5e7eb;   --color-badge-soon-fg: #1f2937;
  --color-todo-bg: #fff7ed;         --color-todo-fg: #7c2d12;         --color-todo-line: #fb923c;

  /* ---- Type ---- */
  --font-sans: system-ui, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;
  --font-mono: ui-monospace, "Cascadia Mono", "Segoe UI Mono", Consolas, "Liberation Mono", monospace;
  /* Fluid modular scale, ratio ~1.2 at small screens to ~1.25 at large. */
  --text-xs: clamp(0.78rem, 0.76rem + 0.1vw, 0.84rem);
  --text-sm: clamp(0.88rem, 0.85rem + 0.15vw, 0.95rem);
  --text-base: clamp(1rem, 0.96rem + 0.2vw, 1.125rem);
  --text-md: clamp(1.2rem, 1.1rem + 0.4vw, 1.4rem);
  --text-lg: clamp(1.44rem, 1.25rem + 0.8vw, 1.8rem);
  --text-xl: clamp(1.9rem, 1.5rem + 1.6vw, 2.6rem);
  --text-2xl: clamp(2.3rem, 1.7rem + 2.6vw, 3.4rem);
  --leading-tight: 1.15;
  --leading-normal: 1.6;
  --measure: 68ch;

  /* ---- Spacing (4px base) ---- */
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 0.75rem;
  --space-4: 1rem;
  --space-5: 1.5rem;
  --space-6: 2rem;
  --space-7: 3rem;
  --space-8: 4.5rem;
  --gutter: clamp(1rem, 4vw, 2rem);
  --wrap: 72rem;

  /* ---- Shape & motion ---- */
  --radius-sm: 4px;
  --radius: 10px;
  --shadow: 0 1px 2px rgb(0 0 0 / 0.06), 0 4px 16px rgb(0 0 0 / 0.06);
  --ease: 160ms ease-out;
}

/* Dark: OS preference unless the user chose light explicitly. */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) {
    --color-bg: var(--nef-coal);
    --color-surface: var(--nef-slate);
    --color-text: #eceae6;
    --color-muted: var(--nef-steel-light);
    --color-accent: var(--nef-ember-bright);
    --color-accent-contrast: var(--nef-coal);
    --color-secondary: var(--nef-dawn-bright);
    --color-line: var(--nef-line-dark);
    --color-focus: #93c5fd;
    --color-link: var(--nef-ember-bright);
    --color-badge-live-bg: #14532d;   --color-badge-live-fg: #dcfce7;
    --color-badge-preview-bg: #78350f;--color-badge-preview-fg: #fef3c7;
    --color-badge-link-bg: #0c4a6e;   --color-badge-link-fg: #e0f2fe;
    --color-badge-soon-bg: #374151;   --color-badge-soon-fg: #f3f4f6;
    --color-todo-bg: #431407;         --color-todo-fg: #fed7aa;         --color-todo-line: #f97316;
    --shadow: 0 1px 2px rgb(0 0 0 / 0.4), 0 4px 16px rgb(0 0 0 / 0.35);
  }
}
/* Dark: explicit choice overrides the OS. */
:root[data-theme="dark"] {
  --color-bg: var(--nef-coal);
  --color-surface: var(--nef-slate);
  --color-text: #eceae6;
  --color-muted: var(--nef-steel-light);
  --color-accent: var(--nef-ember-bright);
  --color-accent-contrast: var(--nef-coal);
  --color-secondary: var(--nef-dawn-bright);
  --color-line: var(--nef-line-dark);
  --color-focus: #93c5fd;
  --color-link: var(--nef-ember-bright);
  --color-badge-live-bg: #14532d;   --color-badge-live-fg: #dcfce7;
  --color-badge-preview-bg: #78350f;--color-badge-preview-fg: #fef3c7;
  --color-badge-link-bg: #0c4a6e;   --color-badge-link-fg: #e0f2fe;
  --color-badge-soon-bg: #374151;   --color-badge-soon-fg: #f3f4f6;
  --color-todo-bg: #431407;         --color-todo-fg: #fed7aa;         --color-todo-line: #f97316;
  --shadow: 0 1px 2px rgb(0 0 0 / 0.4), 0 4px 16px rgb(0 0 0 / 0.35);
}

@media (prefers-reduced-motion: reduce) {
  :root { --ease: 0s; }
}
