/**
 * LEVEL 1 - PRIMITIVES. Raw scales only. No component may consume these directly;
 * they exist so the semantic layer (tokens/semantic.css) has something to point at.
 */
:root {
  /* --- neutral: teal-black through teal-white, 13 steps --- */
  --neutral-0: #020a0d;
  --neutral-1: #030d11;
  --neutral-2: #061a20;
  --neutral-3: #0a2630;
  --neutral-4: #0f333e;
  --neutral-5: #16424f;
  --neutral-6: #1e5462;
  --neutral-7: #2b6d7c;
  --neutral-8: #468a99;
  --neutral-9: #6aa8b5;
  --neutral-10: #97c8d2;
  --neutral-11: #c7e5ec;
  --neutral-12: #f0fbfd;

  /* --- brand (cyan signal), 12 steps --- */
  --brand-1: #04191f;
  --brand-2: #072933;
  --brand-3: #093c49;
  --brand-4: #0d5060;
  --brand-5: #12657a;
  --brand-6: #1c7d8e;
  --brand-7: #2fb8cc;
  --brand-8: #45d2e4;
  --brand-9: #5fe3f5;
  --brand-10: #8ff6ff;
  --brand-11: #b9faff;
  --brand-12: #d6feff;

  /* --- status ramps: 1 = darkest fill, 7 = lightest text --- */
  --success-1: #04180e;
  --success-2: #07301c;
  --success-3: #0f5c33;
  --success-4: #1f8a52;
  --success-5: #3ed67f;
  --success-6: #7ef2a6;
  --success-7: #c9ffd9;

  --warning-1: #1d1405;
  --warning-2: #33240a;
  --warning-3: #5c4212;
  --warning-4: #8a6a1f;
  --warning-5: #e8b45a;
  --warning-6: #ffd489;
  --warning-7: #ffe7bd;

  --danger-1: #1c0708;
  --danger-2: #370d10;
  --danger-3: #661a1e;
  --danger-4: #99282c;
  --danger-5: #f4635f;
  --danger-6: #ff9d9d;
  --danger-7: #ffd2d2;

  --info-1: #061323;
  --info-2: #0b2140;
  --info-3: #133a6b;
  --info-4: #1d5599;
  --info-5: #4d9bf0;
  --info-6: #9cc8ff;
  --info-7: #d3e6ff;

  /* --- legacy primitive names: the reference palette was authored under these --- */
  --void-0: var(--neutral-1);
  --void-1: var(--neutral-2);
  --void-2: var(--neutral-3);
  --void-3: var(--neutral-4);
  --cyan-1: var(--brand-12);
  --cyan-2: var(--brand-10);
  --cyan-3: var(--brand-9);
  --cyan-4: var(--brand-7);
  --cyan-5: var(--brand-6);
  --cyan-6: var(--brand-4);
  --green-1: var(--success-7);
  --green-2: var(--success-6);
  --green-3: var(--success-5);
  --green-4: var(--success-4);
  --amber-2: var(--warning-6);
  --amber-3: var(--warning-5);
  --red-2: var(--danger-6);
  --red-3: var(--danger-5);

  /* --- alpha ramps: glass fills and hairlines --- */
  --brand-a04: rgba(95, 227, 245, 0.04);
  --brand-a08: rgba(95, 227, 245, 0.08);
  --brand-a16: rgba(95, 227, 245, 0.16);
  --brand-a32: rgba(95, 227, 245, 0.32);
  --brand-a56: rgba(95, 227, 245, 0.56);
  --neutral-a56: rgba(6, 26, 32, 0.56);
  --neutral-a80: rgba(6, 26, 32, 0.8);
  --neutral-a92: rgba(2, 10, 13, 0.92);
  --cyan-a08: var(--brand-a08);
  --cyan-a16: var(--brand-a16);
  --cyan-a32: var(--brand-a32);
  --cyan-a56: var(--brand-a56);
  --void-a56: var(--neutral-a56);
  --void-a80: var(--neutral-a80);

  /* --- data-viz: 12 series, ordered for adjacency contrast --- */
  --data-viz-1: #5fe3f5;
  --data-viz-2: #3ed67f;
  --data-viz-3: #e8b45a;
  --data-viz-4: #f4635f;
  --data-viz-5: #4d9bf0;
  --data-viz-6: #8ff6ff;
  --data-viz-7: #1f8a52;
  --data-viz-8: #ffd489;
  --data-viz-9: #2fb8cc;
  --data-viz-10: #b9558f;
  --data-viz-11: #7ef2a6;
  --data-viz-12: #1c7d8e;

  /* --- avatar fills: deep, so light initials sit on top --- */
  --avatar-bg-1: #0d5060;
  --avatar-bg-2: #0f5c33;
  --avatar-bg-3: #5c4212;
  --avatar-bg-4: #661a1e;
  --avatar-bg-5: #133a6b;
  --avatar-bg-6: #1e5462;
  --avatar-bg-7: #07301c;
  --avatar-bg-8: #4b1d4a;

  /* --- code syntax --- */
  --syntax-keyword: #8ff6ff;
  --syntax-string: #7ef2a6;
  --syntax-number: #ffd489;
  --syntax-comment: #2b6d7c;
  --syntax-function: #45d2e4;
  --syntax-operator: #97c8d2;
  --syntax-punctuation: #468a99;
  --syntax-variable: #d6feff;
  --syntax-invalid: #f4635f;

  /* --- diffs --- */
  --diff-added-bg: rgba(62, 214, 127, 0.12);
  --diff-added-fg: #7ef2a6;
  --diff-added-gutter: #1f8a52;
  --diff-removed-bg: rgba(244, 99, 95, 0.12);
  --diff-removed-fg: #ff9d9d;
  --diff-removed-gutter: #99282c;
  --diff-context-fg: #6aa8b5;
  --diff-hunk-bg: rgba(95, 227, 245, 0.08);
}
