/* ═══════════════════════════════════════════════════════════════
   Color Primitives — Neutral (Fine Scale 05–95)
   Tint: light-oriented (05 lightest → 95 darkest).
   Shade: dark-oriented (05 darkest → 95 lightest).
   Requires primitives-shared.css and parameters.css.
   ═══════════════════════════════════════════════════════════════ */

:root, theme-ui, [data-theme] {
  /* ── Neutral tints (05 lightest → 95 darkest) ── */
  --a-neutral-05-tint: oklch(calc(var(--a-color-l-max) - var(--_sf-05) * (var(--a-color-l-max) - var(--a-color-l-min))) calc(var(--a-neutral-c-min) + var(--_cf-05) * (var(--a-neutral-c-max) - var(--a-neutral-c-min))) var(--a-neutral-hue));
  --a-neutral-10-tint: oklch(calc(var(--a-color-l-max) - var(--_sf-10) * (var(--a-color-l-max) - var(--a-color-l-min))) calc(var(--a-neutral-c-min) + var(--_cf-10) * (var(--a-neutral-c-max) - var(--a-neutral-c-min))) var(--a-neutral-hue));
  --a-neutral-15-tint: oklch(calc(var(--a-color-l-max) - var(--_sf-15) * (var(--a-color-l-max) - var(--a-color-l-min))) calc(var(--a-neutral-c-min) + var(--_cf-15) * (var(--a-neutral-c-max) - var(--a-neutral-c-min))) var(--a-neutral-hue));
  --a-neutral-20-tint: oklch(calc(var(--a-color-l-max) - var(--_sf-20) * (var(--a-color-l-max) - var(--a-color-l-min))) calc(var(--a-neutral-c-min) + var(--_cf-20) * (var(--a-neutral-c-max) - var(--a-neutral-c-min))) var(--a-neutral-hue));
  --a-neutral-25-tint: oklch(calc(var(--a-color-l-max) - var(--_sf-25) * (var(--a-color-l-max) - var(--a-color-l-min))) calc(var(--a-neutral-c-min) + var(--_cf-25) * (var(--a-neutral-c-max) - var(--a-neutral-c-min))) var(--a-neutral-hue));
  --a-neutral-30-tint: oklch(calc(var(--a-color-l-max) - var(--_sf-30) * (var(--a-color-l-max) - var(--a-color-l-min))) calc(var(--a-neutral-c-min) + var(--_cf-30) * (var(--a-neutral-c-max) - var(--a-neutral-c-min))) var(--a-neutral-hue));
  --a-neutral-35-tint: oklch(calc(var(--a-color-l-max) - var(--_sf-35) * (var(--a-color-l-max) - var(--a-color-l-min))) calc(var(--a-neutral-c-min) + var(--_cf-35) * (var(--a-neutral-c-max) - var(--a-neutral-c-min))) var(--a-neutral-hue));
  --a-neutral-40-tint: oklch(calc(var(--a-color-l-max) - var(--_sf-40) * (var(--a-color-l-max) - var(--a-color-l-min))) calc(var(--a-neutral-c-min) + var(--_cf-40) * (var(--a-neutral-c-max) - var(--a-neutral-c-min))) var(--a-neutral-hue));
  --a-neutral-45-tint: oklch(calc(var(--a-color-l-max) - var(--_sf-45) * (var(--a-color-l-max) - var(--a-color-l-min))) calc(var(--a-neutral-c-min) + var(--_cf-45) * (var(--a-neutral-c-max) - var(--a-neutral-c-min))) var(--a-neutral-hue));
  --a-neutral-50-tint: oklch(calc(var(--a-color-l-max) - var(--_sf-50) * (var(--a-color-l-max) - var(--a-color-l-min))) calc(var(--a-neutral-c-min) + var(--_cf-50) * (var(--a-neutral-c-max) - var(--a-neutral-c-min))) var(--a-neutral-hue));
  --a-neutral-55-tint: oklch(calc(var(--a-color-l-max) - var(--_sf-55) * (var(--a-color-l-max) - var(--a-color-l-min))) calc(var(--a-neutral-c-min) + var(--_cf-55) * (var(--a-neutral-c-max) - var(--a-neutral-c-min))) var(--a-neutral-hue));
  --a-neutral-60-tint: oklch(calc(var(--a-color-l-max) - var(--_sf-60) * (var(--a-color-l-max) - var(--a-color-l-min))) calc(var(--a-neutral-c-min) + var(--_cf-60) * (var(--a-neutral-c-max) - var(--a-neutral-c-min))) var(--a-neutral-hue));
  --a-neutral-65-tint: oklch(calc(var(--a-color-l-max) - var(--_sf-65) * (var(--a-color-l-max) - var(--a-color-l-min))) calc(var(--a-neutral-c-min) + var(--_cf-65) * (var(--a-neutral-c-max) - var(--a-neutral-c-min))) var(--a-neutral-hue));
  --a-neutral-70-tint: oklch(calc(var(--a-color-l-max) - var(--_sf-70) * (var(--a-color-l-max) - var(--a-color-l-min))) calc(var(--a-neutral-c-min) + var(--_cf-70) * (var(--a-neutral-c-max) - var(--a-neutral-c-min))) var(--a-neutral-hue));
  --a-neutral-75-tint: oklch(calc(var(--a-color-l-max) - var(--_sf-75) * (var(--a-color-l-max) - var(--a-color-l-min))) calc(var(--a-neutral-c-min) + var(--_cf-75) * (var(--a-neutral-c-max) - var(--a-neutral-c-min))) var(--a-neutral-hue));
  --a-neutral-80-tint: oklch(calc(var(--a-color-l-max) - var(--_sf-80) * (var(--a-color-l-max) - var(--a-color-l-min))) calc(var(--a-neutral-c-min) + var(--_cf-80) * (var(--a-neutral-c-max) - var(--a-neutral-c-min))) var(--a-neutral-hue));
  --a-neutral-85-tint: oklch(calc(var(--a-color-l-max) - var(--_sf-85) * (var(--a-color-l-max) - var(--a-color-l-min))) calc(var(--a-neutral-c-min) + var(--_cf-85) * (var(--a-neutral-c-max) - var(--a-neutral-c-min))) var(--a-neutral-hue));
  --a-neutral-90-tint: oklch(calc(var(--a-color-l-max) - var(--_sf-90) * (var(--a-color-l-max) - var(--a-color-l-min))) calc(var(--a-neutral-c-min) + var(--_cf-90) * (var(--a-neutral-c-max) - var(--a-neutral-c-min))) var(--a-neutral-hue));
  --a-neutral-95-tint: oklch(calc(var(--a-color-l-max) - var(--_sf-95) * (var(--a-color-l-max) - var(--a-color-l-min))) calc(var(--a-neutral-c-min) + var(--_cf-95) * (var(--a-neutral-c-max) - var(--a-neutral-c-min))) var(--a-neutral-hue));

  /* ── Neutral shades (05 darkest → 95 lightest) ── */
  --a-neutral-05-shade: oklch(calc(var(--a-color-l-min) + var(--_sf-05) * (var(--a-color-l-max) - var(--a-color-l-min))) calc(var(--a-neutral-c-min) + var(--_cf-05) * (var(--a-neutral-c-max) - var(--a-neutral-c-min))) var(--a-neutral-hue));
  --a-neutral-10-shade: oklch(calc(var(--a-color-l-min) + var(--_sf-10) * (var(--a-color-l-max) - var(--a-color-l-min))) calc(var(--a-neutral-c-min) + var(--_cf-10) * (var(--a-neutral-c-max) - var(--a-neutral-c-min))) var(--a-neutral-hue));
  --a-neutral-15-shade: oklch(calc(var(--a-color-l-min) + var(--_sf-15) * (var(--a-color-l-max) - var(--a-color-l-min))) calc(var(--a-neutral-c-min) + var(--_cf-15) * (var(--a-neutral-c-max) - var(--a-neutral-c-min))) var(--a-neutral-hue));
  --a-neutral-20-shade: oklch(calc(var(--a-color-l-min) + var(--_sf-20) * (var(--a-color-l-max) - var(--a-color-l-min))) calc(var(--a-neutral-c-min) + var(--_cf-20) * (var(--a-neutral-c-max) - var(--a-neutral-c-min))) var(--a-neutral-hue));
  --a-neutral-25-shade: oklch(calc(var(--a-color-l-min) + var(--_sf-25) * (var(--a-color-l-max) - var(--a-color-l-min))) calc(var(--a-neutral-c-min) + var(--_cf-25) * (var(--a-neutral-c-max) - var(--a-neutral-c-min))) var(--a-neutral-hue));
  --a-neutral-30-shade: oklch(calc(var(--a-color-l-min) + var(--_sf-30) * (var(--a-color-l-max) - var(--a-color-l-min))) calc(var(--a-neutral-c-min) + var(--_cf-30) * (var(--a-neutral-c-max) - var(--a-neutral-c-min))) var(--a-neutral-hue));
  --a-neutral-35-shade: oklch(calc(var(--a-color-l-min) + var(--_sf-35) * (var(--a-color-l-max) - var(--a-color-l-min))) calc(var(--a-neutral-c-min) + var(--_cf-35) * (var(--a-neutral-c-max) - var(--a-neutral-c-min))) var(--a-neutral-hue));
  --a-neutral-40-shade: oklch(calc(var(--a-color-l-min) + var(--_sf-40) * (var(--a-color-l-max) - var(--a-color-l-min))) calc(var(--a-neutral-c-min) + var(--_cf-40) * (var(--a-neutral-c-max) - var(--a-neutral-c-min))) var(--a-neutral-hue));
  --a-neutral-45-shade: oklch(calc(var(--a-color-l-min) + var(--_sf-45) * (var(--a-color-l-max) - var(--a-color-l-min))) calc(var(--a-neutral-c-min) + var(--_cf-45) * (var(--a-neutral-c-max) - var(--a-neutral-c-min))) var(--a-neutral-hue));
  --a-neutral-50-shade: oklch(calc(var(--a-color-l-min) + var(--_sf-50) * (var(--a-color-l-max) - var(--a-color-l-min))) calc(var(--a-neutral-c-min) + var(--_cf-50) * (var(--a-neutral-c-max) - var(--a-neutral-c-min))) var(--a-neutral-hue));
  --a-neutral-55-shade: oklch(calc(var(--a-color-l-min) + var(--_sf-55) * (var(--a-color-l-max) - var(--a-color-l-min))) calc(var(--a-neutral-c-min) + var(--_cf-55) * (var(--a-neutral-c-max) - var(--a-neutral-c-min))) var(--a-neutral-hue));
  --a-neutral-60-shade: oklch(calc(var(--a-color-l-min) + var(--_sf-60) * (var(--a-color-l-max) - var(--a-color-l-min))) calc(var(--a-neutral-c-min) + var(--_cf-60) * (var(--a-neutral-c-max) - var(--a-neutral-c-min))) var(--a-neutral-hue));
  --a-neutral-65-shade: oklch(calc(var(--a-color-l-min) + var(--_sf-65) * (var(--a-color-l-max) - var(--a-color-l-min))) calc(var(--a-neutral-c-min) + var(--_cf-65) * (var(--a-neutral-c-max) - var(--a-neutral-c-min))) var(--a-neutral-hue));
  --a-neutral-70-shade: oklch(calc(var(--a-color-l-min) + var(--_sf-70) * (var(--a-color-l-max) - var(--a-color-l-min))) calc(var(--a-neutral-c-min) + var(--_cf-70) * (var(--a-neutral-c-max) - var(--a-neutral-c-min))) var(--a-neutral-hue));
  --a-neutral-75-shade: oklch(calc(var(--a-color-l-min) + var(--_sf-75) * (var(--a-color-l-max) - var(--a-color-l-min))) calc(var(--a-neutral-c-min) + var(--_cf-75) * (var(--a-neutral-c-max) - var(--a-neutral-c-min))) var(--a-neutral-hue));
  --a-neutral-80-shade: oklch(calc(var(--a-color-l-min) + var(--_sf-80) * (var(--a-color-l-max) - var(--a-color-l-min))) calc(var(--a-neutral-c-min) + var(--_cf-80) * (var(--a-neutral-c-max) - var(--a-neutral-c-min))) var(--a-neutral-hue));
  --a-neutral-85-shade: oklch(calc(var(--a-color-l-min) + var(--_sf-85) * (var(--a-color-l-max) - var(--a-color-l-min))) calc(var(--a-neutral-c-min) + var(--_cf-85) * (var(--a-neutral-c-max) - var(--a-neutral-c-min))) var(--a-neutral-hue));
  --a-neutral-90-shade: oklch(calc(var(--a-color-l-min) + var(--_sf-90) * (var(--a-color-l-max) - var(--a-color-l-min))) calc(var(--a-neutral-c-min) + var(--_cf-90) * (var(--a-neutral-c-max) - var(--a-neutral-c-min))) var(--a-neutral-hue));
  --a-neutral-95-shade: oklch(calc(var(--a-color-l-min) + var(--_sf-95) * (var(--a-color-l-max) - var(--a-color-l-min))) calc(var(--a-neutral-c-min) + var(--_cf-95) * (var(--a-neutral-c-max) - var(--a-neutral-c-min))) var(--a-neutral-hue));

  /* ── Coarse surface scale (0-7, linear increment) ──
     Small, equal perceptual jumps for surface stacking.
     Formula: tint = L-max - N × increment ; shade = L-min + N × increment. */
  --a-neutral-0-tint: oklch(calc(var(--a-color-l-max) - 0 * var(--a-color-surface-increment)) var(--a-neutral-c-min) var(--a-neutral-hue));
  --a-neutral-1-tint: oklch(calc(var(--a-color-l-max) - 1 * var(--a-color-surface-increment)) var(--a-neutral-c-min) var(--a-neutral-hue));
  --a-neutral-2-tint: oklch(calc(var(--a-color-l-max) - 2 * var(--a-color-surface-increment)) var(--a-neutral-c-min) var(--a-neutral-hue));
  --a-neutral-3-tint: oklch(calc(var(--a-color-l-max) - 3 * var(--a-color-surface-increment)) var(--a-neutral-c-min) var(--a-neutral-hue));
  --a-neutral-4-tint: oklch(calc(var(--a-color-l-max) - 4 * var(--a-color-surface-increment)) var(--a-neutral-c-min) var(--a-neutral-hue));
  --a-neutral-5-tint: oklch(calc(var(--a-color-l-max) - 5 * var(--a-color-surface-increment)) var(--a-neutral-c-min) var(--a-neutral-hue));
  --a-neutral-6-tint: oklch(calc(var(--a-color-l-max) - 6 * var(--a-color-surface-increment)) var(--a-neutral-c-min) var(--a-neutral-hue));

  --a-neutral-0-shade: oklch(calc(var(--a-color-l-min) + 0 * var(--a-color-surface-increment)) var(--a-neutral-c-min) var(--a-neutral-hue));
  --a-neutral-1-shade: oklch(calc(var(--a-color-l-min) + 1 * var(--a-color-surface-increment)) var(--a-neutral-c-min) var(--a-neutral-hue));
  --a-neutral-2-shade: oklch(calc(var(--a-color-l-min) + 2 * var(--a-color-surface-increment)) var(--a-neutral-c-min) var(--a-neutral-hue));
  --a-neutral-3-shade: oklch(calc(var(--a-color-l-min) + 3 * var(--a-color-surface-increment)) var(--a-neutral-c-min) var(--a-neutral-hue));
  --a-neutral-4-shade: oklch(calc(var(--a-color-l-min) + 4 * var(--a-color-surface-increment)) var(--a-neutral-c-min) var(--a-neutral-hue));
  --a-neutral-5-shade: oklch(calc(var(--a-color-l-min) + 5 * var(--a-color-surface-increment)) var(--a-neutral-c-min) var(--a-neutral-hue));
  --a-neutral-6-shade: oklch(calc(var(--a-color-l-min) + 6 * var(--a-color-surface-increment)) var(--a-neutral-c-min) var(--a-neutral-hue));

  /* ── Adaptive fine scale (light-dark) ── */
  --a-neutral-05: light-dark(var(--a-neutral-05-tint), var(--a-neutral-05-shade));
  --a-neutral-10: light-dark(var(--a-neutral-10-tint), var(--a-neutral-10-shade));
  --a-neutral-20: light-dark(var(--a-neutral-20-tint), var(--a-neutral-20-shade));
  --a-neutral-30: light-dark(var(--a-neutral-30-tint), var(--a-neutral-30-shade));
  --a-neutral-40: light-dark(var(--a-neutral-40-tint), var(--a-neutral-40-shade));
  --a-neutral-50: light-dark(var(--a-neutral-50-tint), var(--a-neutral-50-shade));
  --a-neutral-60: light-dark(var(--a-neutral-60-tint), var(--a-neutral-60-shade));
  --a-neutral-70: light-dark(var(--a-neutral-70-tint), var(--a-neutral-70-shade));
  --a-neutral-80: light-dark(var(--a-neutral-80-tint), var(--a-neutral-80-shade));
  --a-neutral-90: light-dark(var(--a-neutral-90-tint), var(--a-neutral-90-shade));
  --a-neutral-95: light-dark(var(--a-neutral-95-tint), var(--a-neutral-95-shade));

  /* ── Adaptive coarse scale (light-dark) ── */
  --a-neutral-0: light-dark(var(--a-neutral-0-tint), var(--a-neutral-0-shade));
  --a-neutral-1: light-dark(var(--a-neutral-1-tint), var(--a-neutral-1-shade));
  --a-neutral-2: light-dark(var(--a-neutral-2-tint), var(--a-neutral-2-shade));
  --a-neutral-3: light-dark(var(--a-neutral-3-tint), var(--a-neutral-3-shade));
  --a-neutral-4: light-dark(var(--a-neutral-4-tint), var(--a-neutral-4-shade));
  --a-neutral-5: light-dark(var(--a-neutral-5-tint), var(--a-neutral-5-shade));
  --a-neutral-6: light-dark(var(--a-neutral-6-tint), var(--a-neutral-6-shade));
}
