/* Primitive tokens — raw values, project-agnostic. Shared by every project. */
:root {
  /* Neutral palette (light field) */
  --ds-ink: #121317;
  --ds-ink-raised: #1C1D23;
  --ds-paper: #F4F2EC;
  --ds-white: #FFFFFF;
  --ds-hairline: #DCD9CF;
  --ds-muted-ink: #6E6C66;
  --ds-hover-ink: rgba(18,19,23,0.05);
  /* Neutral palette (dark field) */
  --ds-on-ink: #F4F2EC;
  --ds-ink-muted: #8A8891;
  --ds-ink-lead: #C9C7CF;
  --ds-ink-hairline: rgba(255,255,255,0.14);
  /* Functional */
  --ds-error: #C8462F;
  --ds-success: #2E7D46;
  /* Type */
  --ds-font-display: 'Canela', Georgia, serif;
  --ds-font-serif-text: 'Canela Text', Georgia, serif;
  --ds-font-sans: 'GT America', system-ui, sans-serif;
  --ds-font-mono: 'GT America Mono', ui-monospace, monospace;
  --ds-font-compressed: 'GT America Compressed', 'GT America', sans-serif;
  /* Type scale */
  --ds-text-xs: 0.75rem; --ds-text-sm: 0.875rem; --ds-text-base: 1rem;
  --ds-text-lg: 1.25rem; --ds-text-xl: 1.75rem; --ds-text-2xl: 2.5rem;
  --ds-text-3xl: 3.5rem; --ds-text-display: 5rem;
  /* Radius */
  --ds-radius-sm: 8px; --ds-radius-md: 10px; --ds-radius-lg: 16px; --ds-radius-pill: 999px;
  /* Spacing (4px base) */
  --ds-space-1: 4px; --ds-space-2: 8px; --ds-space-3: 12px; --ds-space-4: 16px;
  --ds-space-5: 24px; --ds-space-6: 32px; --ds-space-8: 48px; --ds-space-10: 64px;
  /* Elevation / motion */
  --ds-shadow-pop: 0 12px 40px rgba(18,19,23,0.16);
  --ds-shadow-sm: 0 2px 8px rgba(0,0,0,0.3);
  --ds-dur: 140ms;
  --ds-ease: cubic-bezier(.2,.6,.2,1);
}

/* Semantic tokens — what components reference. Neutrals map to primitives here;
   accent + logo are set by the active theme file. */
:root {
  --ds-bg: var(--ds-paper);
  --ds-surface: var(--ds-white);
  --ds-surface-raised: var(--ds-white);
  --ds-text: var(--ds-ink);
  --ds-text-muted: var(--ds-muted-ink);
  --ds-border: var(--ds-hairline);
  --ds-hover: var(--ds-hover-ink);
  --ds-danger: var(--ds-error);
  --ds-on-danger: var(--ds-white);
  --ds-success-fg: var(--ds-success);
  --ds-scrim: rgba(18,19,23,0.4);
  /* accent + focus + logo are theme-provided; fallbacks keep the base usable un-themed */
  --ds-accent: #000000;
  --ds-accent-press: #000000;
  --ds-accent-tint: rgba(0,0,0,0.12);
  --ds-on-accent: #FFFFFF;
  /* accent-solid: used only by solid fills (e.g. primary buttons); falls back to --ds-accent
     so un-themed usage and themes that don't override it still work. */
  --ds-accent-solid: var(--ds-accent);
  --ds-accent-solid-press: var(--ds-accent-press);
  --ds-on-accent-solid: var(--ds-on-accent);
  --ds-focus-ring: 0 0 0 3px var(--ds-accent-tint);
  --ds-logo: none;
  /* code block: theme-aware so it doesn't go dark-on-dark under [data-theme="dark"] */
  --ds-code-bg: var(--ds-ink);
  --ds-code-fg: var(--ds-on-ink);
}
