/* Galaxyy Light — colour scales.
   Neutral + semantic scales are taken verbatim from the source base tokens.
   primary / accent are the Galaxyy Light brand layer, derived in OKLCH from the
   brand references with hue held constant (see readme.md → Visual foundations). */
:root {
  /* Neutral — text, surfaces, borders. Hue 250 (cool grey). */
  --color-neutral-50: oklch(98.5% 0.002 250);
  --color-neutral-100: oklch(96.5% 0.003 250);
  --color-neutral-200: oklch(92% 0.004 250);
  --color-neutral-300: oklch(85% 0.006 250);
  --color-neutral-400: oklch(70% 0.008 250);
  --color-neutral-500: oklch(55% 0.010 250);
  --color-neutral-600: oklch(45% 0.010 250);
  --color-neutral-700: oklch(35% 0.010 250);
  --color-neutral-800: oklch(25% 0.008 250);
  --color-neutral-900: oklch(17% 0.006 250);
  --color-neutral-950: oklch(11% 0.004 250);

  /* Primary — Ocre Galaxyy. Brand reference #B08544 sits at palier 500.
     600+ is pulled darker than a linear ramp so white-on-primary clears AA. */
  --color-primary-50: oklch(97.5% 0.014 82);
  --color-primary-100: oklch(94% 0.030 82);
  --color-primary-200: oklch(88% 0.052 80);
  --color-primary-300: oklch(80% 0.070 79);
  --color-primary-400: oklch(70% 0.080 77);
  --color-primary-500: oklch(62.5% 0.085 78);
  --color-primary-600: oklch(48% 0.072 73);
  --color-primary-700: oklch(40% 0.062 71);
  --color-primary-800: oklch(32% 0.048 70);
  --color-primary-900: oklch(25% 0.036 70);
  --color-primary-950: oklch(17% 0.024 70);

  /* Secondary — deliberately left on the neutral ramp (source convention:
     a brand overrides primary + accent only, secondary stays quiet). */
  --color-secondary-50: var(--color-neutral-50);
  --color-secondary-100: var(--color-neutral-100);
  --color-secondary-200: var(--color-neutral-200);
  --color-secondary-300: var(--color-neutral-300);
  --color-secondary-400: var(--color-neutral-400);
  --color-secondary-500: var(--color-neutral-500);
  --color-secondary-600: var(--color-neutral-600);
  --color-secondary-700: var(--color-neutral-700);
  --color-secondary-800: var(--color-neutral-800);
  --color-secondary-900: var(--color-neutral-900);
  --color-secondary-950: var(--color-neutral-950);

  /* Accent — Bleu poudre. Cool counterweight to the ocre, used sparingly. */
  --color-accent-50: oklch(97.5% 0.008 235);
  --color-accent-100: oklch(94% 0.016 235);
  --color-accent-200: oklch(88% 0.028 235);
  --color-accent-300: oklch(80% 0.038 235);
  --color-accent-400: oklch(73% 0.044 235);
  --color-accent-500: oklch(67% 0.045 235);
  --color-accent-600: oklch(55% 0.048 238);
  --color-accent-700: oklch(45% 0.045 240);
  --color-accent-800: oklch(35% 0.036 242);
  --color-accent-900: oklch(26% 0.026 242);
  --color-accent-950: oklch(18% 0.018 242);

  /* Semantic states — fixed, brand-independent (source values, unchanged). */
  --color-success-50: oklch(97% 0.04 155);
  --color-success-500: oklch(70% 0.15 155);
  --color-success-600: oklch(60% 0.16 155);
  --color-success-700: oklch(50% 0.15 155);

  --color-warning-50: oklch(97% 0.05 85);
  --color-warning-500: oklch(78% 0.16 85);
  --color-warning-600: oklch(68% 0.17 85);
  --color-warning-700: oklch(55% 0.15 85);

  --color-danger-50: oklch(97% 0.03 25);
  --color-danger-500: oklch(63% 0.22 25);
  --color-danger-600: oklch(55% 0.22 25);
  --color-danger-700: oklch(47% 0.20 25);

  --color-info-50: oklch(97% 0.02 240);
  --color-info-500: oklch(65% 0.15 240);
  --color-info-600: oklch(56% 0.16 240);
  --color-info-700: oklch(47% 0.15 240);

  --color-white: #ffffff;
  --color-black: oklch(0% 0 0);
}
