/* ============================================================
   GENERATED by build.mjs from tokens/tokens.json — DO NOT EDIT.
   Edit tokens/tokens.json, then run:  node build.mjs
   screamingface design tokens · honest-AGI initiative
   Color system: SFDS v2 — programmatic, contract-gated (see tokens/color-gen.mjs)
   ============================================================ */

:root, [data-theme="light"] {
  color-scheme: light;

  /* ---- primitive 12-step scales (light) ---- */
  /* neutral */
  --neutral-1: #fcfdff;
  --neutral-2: #f4f6f9;
  --neutral-3: #eceef0;
  --neutral-4: #e2e4e6;
  --neutral-5: #d8dadc;
  --neutral-6: #cdcfd2;
  --neutral-7: #c2c4c6;
  --neutral-8: #b4b6b8;
  --neutral-9: #626365;
  --neutral-10: #56585a;
  --neutral-11: #616265;
  --neutral-12: #3b3c3e;

  /* gold */
  --gold-1: #fffdfa;
  --gold-2: #faf5f0;
  --gold-3: #f4ece4;
  --gold-4: #ece2d8;
  --gold-5: #e4d7cb;
  --gold-6: #dcccbd;
  --gold-7: #d3c0ac;
  --gold-8: #cab198;
  --gold-9: #d58922;
  --gold-10: #c47e1b;
  --gold-11: #b26f00;
  --gold-12: #563400;

  /* blue */
  --blue-1: #fcfdff;
  --blue-2: #f2f6fe;
  --blue-3: #e7eefa;
  --blue-4: #dbe5f3;
  --blue-5: #cfdbed;
  --blue-6: #c1d0e7;
  --blue-7: #b2c5e1;
  --blue-8: #9fb8db;
  --blue-9: #4b91f0;
  --blue-10: #4185de;
  --blue-11: #2c62a5;
  --blue-12: #0f3b6e;

  /* green */
  --green-1: #fafffb;
  --green-2: #f0f9f2;
  --green-3: #e5f1e7;
  --green-4: #d9e9dc;
  --green-5: #cce0cf;
  --green-6: #bed7c1;
  --green-7: #aecdb2;
  --green-8: #9bc29f;
  --green-9: #17aa46;
  --green-10: #159c3d;
  --green-11: #14722a;
  --green-12: #004611;

  /* persimmon */
  --persimmon-1: #fffcfc;
  --persimmon-2: #fdf4f1;
  --persimmon-3: #f9eae5;
  --persimmon-4: #f2dfda;
  --persimmon-5: #ecd4cd;
  --persimmon-6: #e5c8bf;
  --persimmon-7: #debaaf;
  --persimmon-8: #d7aa9b;
  --persimmon-9: #f1622d;
  --persimmon-10: #df5a25;
  --persimmon-11: #9c4828;
  --persimmon-12: #66270c;

  /* red */
  --red-1: #fffcfc;
  --red-2: #fff3f2;
  --red-3: #fbe9e7;
  --red-4: #f5dedc;
  --red-5: #efd2cf;
  --red-6: #e9c5c2;
  --red-7: #e3b7b3;
  --red-8: #dda6a0;
  --red-9: #ff0325;
  --red-10: #ea001c;
  --red-11: #a63d35;
  --red-12: #6c1c17;

  /* rose */
  --rose-1: #fffcfd;
  --rose-2: #fef3f7;
  --rose-3: #fae8ef;
  --rose-4: #f3dde5;
  --rose-5: #eed1db;
  --rose-6: #e7c4d0;
  --rose-7: #e1b6c5;
  --rose-8: #dba4b7;
  --rose-9: #f73094;
  --rose-10: #e52886;
  --rose-11: #a33866;
  --rose-12: #6b173d;

  /* violet */
  --violet-1: #fefcff;
  --violet-2: #f8f4fe;
  --violet-3: #f1eafb;
  --violet-4: #e8dff4;
  --violet-5: #dfd4ef;
  --violet-6: #d6c8e9;
  --violet-7: #cbbbe4;
  --violet-8: #bfaadf;
  --violet-9: #982df4;
  --violet-10: #8a25e1;
  --violet-11: #7848b2;
  --violet-12: #4c2678;

  /* cyan */
  --cyan-1: #fafeff;
  --cyan-2: #f1f8f8;
  --cyan-3: #e5f0f1;
  --cyan-4: #d9e7e9;
  --cyan-5: #ccdee0;
  --cyan-6: #bed4d6;
  --cyan-7: #aec9cc;
  --cyan-8: #9abec1;
  --cyan-9: #00a1ab;
  --cyan-10: #00949c;
  --cyan-11: #066c72;
  --cyan-12: #004347;

  /* ---- semantic theme: app (default) — light ---- */
  --accent-bg-subtle: #f2f6fe;
  --accent-component: #e7eefa;
  --accent-component-hover: #dbe5f3;
  --accent-component-active: #cfdbed;
  --accent-border-subtle: #c1d0e7;
  --accent-border: #b2c5e1;
  --accent-border-strong: #9fb8db;
  --accent-focus-ring: #9fb8db;
  --accent-solid: #4b91f0;
  --accent-solid-hover: #4185de;
  --accent-text-low: #2c62a5;
  --accent-text-high: #0f3b6e;
  --accent-contrast-text: #ffffff;
  --accent-text: #0f3b6e;
  --brand-bg-subtle: #faf5f0;
  --brand-component: #f4ece4;
  --brand-component-hover: #ece2d8;
  --brand-component-active: #e4d7cb;
  --brand-border-subtle: #dcccbd;
  --brand-border: #d3c0ac;
  --brand-border-strong: #cab198;
  --brand-focus-ring: #cab198;
  --brand-solid: #d58922;
  --brand-solid-hover: #c47e1b;
  --brand-text-low: #b26f00;
  --brand-text-high: #563400;
  --brand-contrast-text: #ffffff;
  --brand-text: #563400;
  --gain-bg-subtle: #faf5f0;
  --gain-component: #f4ece4;
  --gain-component-hover: #ece2d8;
  --gain-component-active: #e4d7cb;
  --gain-border-subtle: #dcccbd;
  --gain-border: #d3c0ac;
  --gain-border-strong: #cab198;
  --gain-focus-ring: #cab198;
  --gain-solid: #d58922;
  --gain-solid-hover: #c47e1b;
  --gain-text-low: #b26f00;
  --gain-text-high: #563400;
  --gain-contrast-text: #ffffff;
  --gain-text: #563400;
  --success-bg-subtle: #f0f9f2;
  --success-component: #e5f1e7;
  --success-component-hover: #d9e9dc;
  --success-component-active: #cce0cf;
  --success-border-subtle: #bed7c1;
  --success-border: #aecdb2;
  --success-border-strong: #9bc29f;
  --success-focus-ring: #9bc29f;
  --success-solid: #17aa46;
  --success-solid-hover: #159c3d;
  --success-text-low: #14722a;
  --success-text-high: #004611;
  --success-contrast-text: #ffffff;
  --success-text: #004611;
  --warning-bg-subtle: #fdf4f1;
  --warning-component: #f9eae5;
  --warning-component-hover: #f2dfda;
  --warning-component-active: #ecd4cd;
  --warning-border-subtle: #e5c8bf;
  --warning-border: #debaaf;
  --warning-border-strong: #d7aa9b;
  --warning-focus-ring: #d7aa9b;
  --warning-solid: #f1622d;
  --warning-solid-hover: #df5a25;
  --warning-text-low: #9c4828;
  --warning-text-high: #66270c;
  --warning-contrast-text: #ffffff;
  --warning-text: #66270c;
  --danger-bg-subtle: #fff3f2;
  --danger-component: #fbe9e7;
  --danger-component-hover: #f5dedc;
  --danger-component-active: #efd2cf;
  --danger-border-subtle: #e9c5c2;
  --danger-border: #e3b7b3;
  --danger-border-strong: #dda6a0;
  --danger-focus-ring: #dda6a0;
  --danger-solid: #ff0325;
  --danger-solid-hover: #ea001c;
  --danger-text-low: #a63d35;
  --danger-text-high: #6c1c17;
  --danger-contrast-text: #ffffff;
  --danger-text: #6c1c17;
  --info-bg-subtle: #f2f6fe;
  --info-component: #e7eefa;
  --info-component-hover: #dbe5f3;
  --info-component-active: #cfdbed;
  --info-border-subtle: #c1d0e7;
  --info-border: #b2c5e1;
  --info-border-strong: #9fb8db;
  --info-focus-ring: #9fb8db;
  --info-solid: #4b91f0;
  --info-solid-hover: #4185de;
  --info-text-low: #2c62a5;
  --info-text-high: #0f3b6e;
  --info-contrast-text: #ffffff;
  --info-text: #0f3b6e;
  --focus: #9fb8db;
  --bg: #fcfdff;
  --surface: #f4f6f9;
  --surface-2: #eceef0;
  --border: #c2c4c6;
  --border-2: #b4b6b8;
  --text-2: #616265;
  --text: #3b3c3e;

  /* ---- data-viz: series = the family solids (aliases; mode-free) ---- */
  --data-blue: var(--blue-9);
  --data-blue-tint: color-mix(in srgb, var(--blue-9) 55%, var(--bg));
  --data-red: var(--red-9);
  --data-red-tint: color-mix(in srgb, var(--red-9) 55%, var(--bg));
  --data-cyan: var(--cyan-9);
  --data-cyan-tint: color-mix(in srgb, var(--cyan-9) 55%, var(--bg));
  --data-gold: var(--gold-9);
  --data-gold-tint: color-mix(in srgb, var(--gold-9) 55%, var(--bg));
  --data-rose: var(--rose-9);
  --data-rose-tint: color-mix(in srgb, var(--rose-9) 55%, var(--bg));
  --data-violet: var(--violet-9);
  --data-violet-tint: color-mix(in srgb, var(--violet-9) 55%, var(--bg));
  --data-green: var(--green-9);
  --data-green-tint: color-mix(in srgb, var(--green-9) 55%, var(--bg));
  --data-persimmon: var(--persimmon-9);
  --data-persimmon-tint: color-mix(in srgb, var(--persimmon-9) 55%, var(--bg));
  --data-magenta: var(--rose-9);
  --data-azure-300: var(--data-blue-tint);
  --data-azure-400: var(--blue-9);
  --data-azure-500: var(--blue-9);
  --data-azure-600: color-mix(in srgb, var(--blue-9) 72%, var(--ink));
  --data-azure-700: color-mix(in srgb, var(--blue-9) 50%, var(--ink));
  --data-vermillion-300: var(--data-red-tint);
  --data-vermillion-400: var(--red-9);
  --data-vermillion-500: var(--red-9);
  --data-vermillion-600: color-mix(in srgb, var(--red-9) 72%, var(--ink));
  --data-vermillion-700: color-mix(in srgb, var(--red-9) 50%, var(--ink));
  --data-teal-300: var(--data-cyan-tint);
  --data-teal-400: var(--cyan-9);
  --data-teal-500: var(--cyan-9);
  --data-teal-600: color-mix(in srgb, var(--cyan-9) 72%, var(--ink));
  --data-teal-700: color-mix(in srgb, var(--cyan-9) 50%, var(--ink));
  --data-orange-300: var(--data-persimmon-tint);
  --data-orange-400: var(--persimmon-9);
  --data-orange-500: var(--persimmon-9);
  --data-orange-600: color-mix(in srgb, var(--persimmon-9) 72%, var(--ink));
  --data-orange-700: color-mix(in srgb, var(--persimmon-9) 50%, var(--ink));
  --data-magenta-300: var(--data-rose-tint);
  --data-magenta-400: var(--rose-9);
  --data-magenta-500: var(--rose-9);
  --data-magenta-600: color-mix(in srgb, var(--rose-9) 72%, var(--ink));
  --data-magenta-700: color-mix(in srgb, var(--rose-9) 50%, var(--ink));
  --data-blue-300: var(--data-blue-tint);
  --data-blue-400: var(--blue-9);
  --data-blue-500: var(--blue-9);
  --data-blue-600: color-mix(in srgb, var(--blue-9) 72%, var(--ink));
  --data-blue-700: color-mix(in srgb, var(--blue-9) 50%, var(--ink));
  --data-red-300: var(--data-red-tint);
  --data-red-400: var(--red-9);
  --data-red-500: var(--red-9);
  --data-red-600: color-mix(in srgb, var(--red-9) 72%, var(--ink));
  --data-red-700: color-mix(in srgb, var(--red-9) 50%, var(--ink));
  --data-green-300: var(--data-green-tint);
  --data-green-400: var(--green-9);
  --data-green-500: var(--green-9);
  --data-green-600: color-mix(in srgb, var(--green-9) 72%, var(--ink));
  --data-green-700: color-mix(in srgb, var(--green-9) 50%, var(--ink));
  --data-rose-300: var(--data-rose-tint);
  --data-rose-400: var(--rose-9);
  --data-rose-500: var(--rose-9);
  --data-rose-600: color-mix(in srgb, var(--rose-9) 72%, var(--ink));
  --data-rose-700: color-mix(in srgb, var(--rose-9) 50%, var(--ink));
  --data-violet-300: var(--data-violet-tint);
  --data-violet-400: var(--violet-9);
  --data-violet-500: var(--violet-9);
  --data-violet-600: color-mix(in srgb, var(--violet-9) 72%, var(--ink));
  --data-violet-700: color-mix(in srgb, var(--violet-9) 50%, var(--ink));
  --data-seq-0: #e4f0ff;
  --data-seq-1: #accbf4;
  --data-seq-2: #7ea6de;
  --data-seq-3: #5181c7;
  --data-seq-4: #245baf;
  --data-seq-5: #00378c;
  --data-seq-6: #001c54;
  --data-div-0: #002f6d;
  --data-div-1: #1c56a8;
  --data-div-2: #5d84bf;
  --data-div-3: #9ab1d3;
  --data-div-4: #d9dee6;
  --data-div-5: #c4aa91;
  --data-div-6: #a47a4e;
  --data-div-7: #7f4c00;
  --data-div-8: #4a2a00;

  /* ---- alpha overlays (light, app-theme accent) ---- */
  --alpha-neutral-5: rgba(0,0,0,0.05);
  --alpha-neutral-10: rgba(0,0,0,0.10);
  --alpha-neutral-20: rgba(0,0,0,0.20);
  --alpha-neutral-40: rgba(0,0,0,0.40);
  --alpha-neutral-60: rgba(0,0,0,0.60);
  --alpha-accent-5: rgba(75,145,240,0.05);
  --alpha-accent-10: rgba(75,145,240,0.10);
  --alpha-accent-20: rgba(75,145,240,0.20);
  --alpha-accent-40: rgba(75,145,240,0.40);
  --alpha-accent-60: rgba(75,145,240,0.60);

  /* ---- the one sanctioned SFDS gradient (fusion-grad) ---- */
  --fusion-grad: linear-gradient(100deg,#d8860e 0%,#d98b27 3%,#da9037 6%,#dc9544 10%,#dd9a50 13%,#de9f5b 16%,#dfa465 19%,#e0a970 23%,#e2b280 26%,#e5bb90 29%,#e7c3a0 32%,#e9ccaf 35%,#ebd4be 39%,#edddcd 42%,#f2e3df 45%,#eeebf3 48%,#e7edf5 52%,#dde6f4 55%,#d2dff2 58%,#c8d9f2 61%,#bfd4f2 65%,#b5cef2 68%,#abc8f2 71%,#a2c2f2 74%,#97bcf3 77%,#8db6f3 81%,#83b0f3 84%,#79aaf3 87%,#6fa4f3 90%,#649ef3 94%,#5a98f3 97%,#4f91f2 100%);
  --fusion-grad-flow: linear-gradient(90deg,#d8860e 0.0%,#d98b27 1.6%,#da9037 3.2%,#dc9544 4.8%,#dd9a50 6.5%,#de9f5b 8.1%,#dfa465 9.7%,#e0a970 11.3%,#e2b280 12.9%,#e5bb90 14.5%,#e7c3a0 16.1%,#e9ccaf 17.7%,#ebd4be 19.4%,#edddcd 21.0%,#f2e3df 22.6%,#eeebf3 24.2%,#e7edf5 25.8%,#dde6f4 27.4%,#d2dff2 29.0%,#c8d9f2 30.6%,#bfd4f2 32.3%,#b5cef2 33.9%,#abc8f2 35.5%,#a2c2f2 37.1%,#97bcf3 38.7%,#8db6f3 40.3%,#83b0f3 41.9%,#79aaf3 43.5%,#6fa4f3 45.2%,#649ef3 46.8%,#5a98f3 48.4%,#4f91f2 50.0%,#4f91f2 50.0%,#5a98f3 51.6%,#649ef3 53.2%,#6fa4f3 54.8%,#79aaf3 56.5%,#83b0f3 58.1%,#8db6f3 59.7%,#97bcf3 61.3%,#a2c2f2 62.9%,#abc8f2 64.5%,#b5cef2 66.1%,#bfd4f2 67.7%,#c8d9f2 69.4%,#d2dff2 71.0%,#dde6f4 72.6%,#e7edf5 74.2%,#eeebf3 75.8%,#f2e3df 77.4%,#edddcd 79.0%,#ebd4be 80.6%,#e9ccaf 82.3%,#e7c3a0 83.9%,#e5bb90 85.5%,#e2b280 87.1%,#e0a970 88.7%,#dfa465 90.3%,#de9f5b 91.9%,#dd9a50 93.5%,#dc9544 95.2%,#da9037 96.8%,#d98b27 98.4%,#d8860e 100.0%);
  --fusion-grad-y: linear-gradient(180deg,#4f91f2 0.0%,#5a98f3 3.2%,#649ef3 6.5%,#6fa4f3 9.7%,#79aaf3 12.9%,#83b0f3 16.1%,#8db6f3 19.4%,#97bcf3 22.6%,#a2c2f2 25.8%,#abc8f2 29.0%,#b5cef2 32.3%,#bfd4f2 35.5%,#c8d9f2 38.7%,#d2dff2 41.9%,#dde6f4 45.2%,#e7edf5 48.4%,#eeebf3 51.6%,#f2e3df 54.8%,#edddcd 58.1%,#ebd4be 61.3%,#e9ccaf 64.5%,#e7c3a0 67.7%,#e5bb90 71.0%,#e2b280 74.2%,#e0a970 77.4%,#dfa465 80.6%,#de9f5b 83.9%,#dd9a50 87.1%,#dc9544 90.3%,#da9037 93.5%,#d98b27 96.8%,#d8860e 100.0%);
  --fusion-grad-y-flow: linear-gradient(180deg,#4f91f2 0.0%,#5a98f3 1.6%,#649ef3 3.2%,#6fa4f3 4.8%,#79aaf3 6.5%,#83b0f3 8.1%,#8db6f3 9.7%,#97bcf3 11.3%,#a2c2f2 12.9%,#abc8f2 14.5%,#b5cef2 16.1%,#bfd4f2 17.7%,#c8d9f2 19.4%,#d2dff2 21.0%,#dde6f4 22.6%,#e7edf5 24.2%,#eeebf3 25.8%,#f2e3df 27.4%,#edddcd 29.0%,#ebd4be 30.6%,#e9ccaf 32.3%,#e7c3a0 33.9%,#e5bb90 35.5%,#e2b280 37.1%,#e0a970 38.7%,#dfa465 40.3%,#de9f5b 41.9%,#dd9a50 43.5%,#dc9544 45.2%,#da9037 46.8%,#d98b27 48.4%,#d8860e 50.0%,#d8860e 50.0%,#d98b27 51.6%,#da9037 53.2%,#dc9544 54.8%,#dd9a50 56.5%,#de9f5b 58.1%,#dfa465 59.7%,#e0a970 61.3%,#e2b280 62.9%,#e5bb90 64.5%,#e7c3a0 66.1%,#e9ccaf 67.7%,#ebd4be 69.4%,#edddcd 71.0%,#f2e3df 72.6%,#eeebf3 74.2%,#e7edf5 75.8%,#dde6f4 77.4%,#d2dff2 79.0%,#c8d9f2 80.6%,#bfd4f2 82.3%,#b5cef2 83.9%,#abc8f2 85.5%,#a2c2f2 87.1%,#97bcf3 88.7%,#8db6f3 90.3%,#83b0f3 91.9%,#79aaf3 93.5%,#6fa4f3 95.2%,#649ef3 96.8%,#5a98f3 98.4%,#4f91f2 100.0%);

  /* ---- the win fill (bright gold, pre-unification solid — fills/marks only) ---- */
  --gain-fill: #ec9f3f;
  --gain-fill-hover: #db9439;

  /* --- back-compat bridge (v1 -> v2 semantic names; see build.mjs) --- */
  --ink: var(--text);
  --ink-2: var(--text-2);
  --ink-3: var(--neutral-8);
  --line: var(--neutral-6);
  --line-2: var(--border-2);
  --gain: var(--gain-fill);
  --gain-2: var(--gain-fill-hover);
  --gain-text-display: var(--gain-fill-hover);
  --gain-bg: var(--gain-bg-subtle);
  --blind: var(--danger-text-high);
  --blind-bg: var(--danger-bg-subtle);
  --mark: var(--brand-solid);
  --cat-blue: var(--blue-9);
  --cat-green: var(--green-9);
  --cat-amber: var(--persimmon-9);
  --cat-rust: var(--red-9);
  --cat-teal: var(--cyan-9);
  --cat-rose: var(--rose-9);
  /* palette-merge legacy aliases (2026-08-07): retired family names resolve through */
  --amber-1: var(--persimmon-1);
  --amber-2: var(--persimmon-2);
  --amber-3: var(--persimmon-3);
  --amber-4: var(--persimmon-4);
  --amber-5: var(--persimmon-5);
  --amber-6: var(--persimmon-6);
  --amber-7: var(--persimmon-7);
  --amber-8: var(--persimmon-8);
  --amber-9: var(--persimmon-9);
  --amber-10: var(--persimmon-10);
  --amber-11: var(--persimmon-11);
  --amber-12: var(--persimmon-12);
  --orange-1: var(--persimmon-1);
  --orange-2: var(--persimmon-2);
  --orange-3: var(--persimmon-3);
  --orange-4: var(--persimmon-4);
  --orange-5: var(--persimmon-5);
  --orange-6: var(--persimmon-6);
  --orange-7: var(--persimmon-7);
  --orange-8: var(--persimmon-8);
  --orange-9: var(--persimmon-9);
  --orange-10: var(--persimmon-10);
  --orange-11: var(--persimmon-11);
  --orange-12: var(--persimmon-12);

  /* ---- non-color scalars ---- */
  /* font */
  --f-display: "Parastoo", "Iowan Old Style", Georgia, "Times New Roman", serif;
  --f-sans: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --f-mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --f-wordmark: "IBM Plex Sans", system-ui, sans-serif;

  /* size */
  --col: 760px;
  --col-wide: 1000px;
  --rail-h: 44px;

  /* text */
  --text-hero: clamp(44px, 6vw, 76px);
  --text-display: 38px;
  --text-title: 24px;
  --text-metric: 30px;
  --text-lead: 20px;
  --text-body: 16px;
  --text-sm: 13px;
  --text-micro: 12px;
  --text-label: 11px;

  /* weight */
  --weight-regular: 400;
  --weight-medium: 500;
  --weight-display: 500;
  --weight-semibold: 600;

  /* tracking */
  --tracking-tight: -0.01em;
  --tracking-normal: 0;
  --tracking-label: 0.1em;

  /* leading */
  --leading-hero: 0.98;
  --leading-tight: 1.16;
  --leading-snug: 1.38;
  --leading-body: 1.6;

  /* space */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 24px;
  --space-7: 32px;
  --space-8: 40px;
  --space-9: 52px;
  --space-10: 64px;
  --space-11: 80px;
  --space-12: 96px;

  /* radius */
  --radius-none: 0;
  --radius-window: 10px;

  /* shadow */
  --shadow-window: 0 2px 6px rgba(20,28,52,.05), 0 16px 40px rgba(20,28,52,.11);
  --shadow-window-dark: 0 4px 14px rgba(0,0,0,.25), 0 18px 50px rgba(0,0,0,.35);

  /* border */
  --border-hairline: 1px;
  --border-strong: 2px;

  /* terminal */
  --terminal-bg: var(--surface);
  --terminal-chrome: var(--surface-2);
  --terminal-line: var(--border);
  --terminal-ink: var(--ink-2);
  --terminal-strong: var(--ink);
  --terminal-dim: var(--ink-2);
  --terminal-deco: var(--ink-3);
  --terminal-accent: var(--gain-text-low);
  --terminal-track: var(--surface-2);
}

[data-theme="dark"] {
  color-scheme: dark;

  /* ---- primitive 12-step scales (dark) ---- */
  /* neutral */
  --neutral-1: #05070b;
  --neutral-2: #0c0f13;
  --neutral-3: #15181c;
  --neutral-4: #1e2226;
  --neutral-5: #292c31;
  --neutral-6: #35383d;
  --neutral-7: #44484d;
  --neutral-8: #585c61;
  --neutral-9: #5f6469;
  --neutral-10: #6b6f75;
  --neutral-11: #c8ccd2;
  --neutral-12: #e0e5eb;

  /* gold */
  --gold-1: #080706;
  --gold-2: #110e0c;
  --gold-3: #1c1712;
  --gold-4: #26201b;
  --gold-5: #332a22;
  --gold-6: #40362c;
  --gold-7: #524538;
  --gold-8: #6a5845;
  --gold-9: #cb8d44;
  --gold-10: #d59b57;
  --gold-11: #ffbf76;
  --gold-12: #ffdebb;

  /* blue */
  --blue-1: #060709;
  --blue-2: #0d0f13;
  --blue-3: #14181f;
  --blue-4: #1c222a;
  --blue-5: #252c38;
  --blue-6: #2f3947;
  --blue-7: #3c485b;
  --blue-8: #4b5d76;
  --blue-9: #6099e7;
  --blue-10: #6fa6f0;
  --blue-11: #aacfff;
  --blue-12: #d2e6ff;

  /* green */
  --green-1: #060806;
  --green-2: #0c100d;
  --green-3: #131a14;
  --green-4: #1b241d;
  --green-5: #233025;
  --green-6: #2c3d2f;
  --green-7: #394e3c;
  --green-8: #47644b;
  --green-9: #4aae5e;
  --green-10: #5eba6c;
  --green-11: #97db9d;
  --green-12: #baf2bd;

  /* persimmon */
  --persimmon-1: #090706;
  --persimmon-2: #130e0c;
  --persimmon-3: #1e1613;
  --persimmon-4: #2a1f1c;
  --persimmon-5: #372824;
  --persimmon-6: #46332d;
  --persimmon-7: #59413a;
  --persimmon-8: #735248;
  --persimmon-9: #e36f48;
  --persimmon-10: #ed7f58;
  --persimmon-11: #ffbca5;
  --persimmon-12: #ffddd0;

  /* red */
  --red-1: #090606;
  --red-2: #130d0d;
  --red-3: #1f1514;
  --red-4: #2b1e1d;
  --red-5: #392725;
  --red-6: #48312f;
  --red-7: #5c3f3c;
  --red-8: #774f4c;
  --red-9: #ed413f;
  --red-10: #f8564e;
  --red-11: #ffbab2;
  --red-12: #ffddd7;

  /* rose */
  --rose-1: #090607;
  --rose-2: #130d0f;
  --rose-3: #1e1518;
  --rose-4: #2a1d22;
  --rose-5: #38262d;
  --rose-6: #473039;
  --rose-7: #5b3e49;
  --rose-8: #764e5c;
  --rose-9: #e74e93;
  --rose-10: #f2619e;
  --rose-11: #ffb7cf;
  --rose-12: #ffdbe5;

  /* violet */
  --violet-1: #080709;
  --violet-2: #100e13;
  --violet-3: #1a161f;
  --violet-4: #241f2b;
  --violet-5: #302839;
  --violet-6: #3c3348;
  --violet-7: #4d415d;
  --violet-8: #625379;
  --violet-9: #9247de;
  --violet-10: #9b59e8;
  --violet-11: #d8c1ff;
  --violet-12: #eadfff;

  /* cyan */
  --cyan-1: #060808;
  --cyan-2: #0c1010;
  --cyan-3: #13191a;
  --cyan-4: #1b2324;
  --cyan-5: #232e30;
  --cyan-6: #2c3b3d;
  --cyan-7: #384c4e;
  --cyan-8: #476163;
  --cyan-9: #00a9b3;
  --cyan-10: #21b6c0;
  --cyan-11: #95d6db;
  --cyan-12: #b8eef1;

  /* ---- semantic theme: app (default) — dark ---- */
  --accent-bg-subtle: #0d0f13;
  --accent-component: #14181f;
  --accent-component-hover: #1c222a;
  --accent-component-active: #252c38;
  --accent-border-subtle: #2f3947;
  --accent-border: #3c485b;
  --accent-border-strong: #4b5d76;
  --accent-focus-ring: #4b5d76;
  --accent-solid: #6099e7;
  --accent-solid-hover: #6fa6f0;
  --accent-text-low: #aacfff;
  --accent-text-high: #d2e6ff;
  --accent-contrast-text: #ffffff;
  --accent-text: #d2e6ff;
  --brand-bg-subtle: #110e0c;
  --brand-component: #1c1712;
  --brand-component-hover: #26201b;
  --brand-component-active: #332a22;
  --brand-border-subtle: #40362c;
  --brand-border: #524538;
  --brand-border-strong: #6a5845;
  --brand-focus-ring: #6a5845;
  --brand-solid: #cb8d44;
  --brand-solid-hover: #d59b57;
  --brand-text-low: #ffbf76;
  --brand-text-high: #ffdebb;
  --brand-contrast-text: #ffffff;
  --brand-text: #ffdebb;
  --gain-bg-subtle: #110e0c;
  --gain-component: #1c1712;
  --gain-component-hover: #26201b;
  --gain-component-active: #332a22;
  --gain-border-subtle: #40362c;
  --gain-border: #524538;
  --gain-border-strong: #6a5845;
  --gain-focus-ring: #6a5845;
  --gain-solid: #cb8d44;
  --gain-solid-hover: #d59b57;
  --gain-text-low: #ffbf76;
  --gain-text-high: #ffdebb;
  --gain-contrast-text: #ffffff;
  --gain-text: #ffdebb;
  --success-bg-subtle: #0c100d;
  --success-component: #131a14;
  --success-component-hover: #1b241d;
  --success-component-active: #233025;
  --success-border-subtle: #2c3d2f;
  --success-border: #394e3c;
  --success-border-strong: #47644b;
  --success-focus-ring: #47644b;
  --success-solid: #4aae5e;
  --success-solid-hover: #5eba6c;
  --success-text-low: #97db9d;
  --success-text-high: #baf2bd;
  --success-contrast-text: #ffffff;
  --success-text: #baf2bd;
  --warning-bg-subtle: #130e0c;
  --warning-component: #1e1613;
  --warning-component-hover: #2a1f1c;
  --warning-component-active: #372824;
  --warning-border-subtle: #46332d;
  --warning-border: #59413a;
  --warning-border-strong: #735248;
  --warning-focus-ring: #735248;
  --warning-solid: #e36f48;
  --warning-solid-hover: #ed7f58;
  --warning-text-low: #ffbca5;
  --warning-text-high: #ffddd0;
  --warning-contrast-text: #ffffff;
  --warning-text: #ffddd0;
  --danger-bg-subtle: #130d0d;
  --danger-component: #1f1514;
  --danger-component-hover: #2b1e1d;
  --danger-component-active: #392725;
  --danger-border-subtle: #48312f;
  --danger-border: #5c3f3c;
  --danger-border-strong: #774f4c;
  --danger-focus-ring: #774f4c;
  --danger-solid: #ed413f;
  --danger-solid-hover: #f8564e;
  --danger-text-low: #ffbab2;
  --danger-text-high: #ffddd7;
  --danger-contrast-text: #ffffff;
  --danger-text: #ffddd7;
  --info-bg-subtle: #0d0f13;
  --info-component: #14181f;
  --info-component-hover: #1c222a;
  --info-component-active: #252c38;
  --info-border-subtle: #2f3947;
  --info-border: #3c485b;
  --info-border-strong: #4b5d76;
  --info-focus-ring: #4b5d76;
  --info-solid: #6099e7;
  --info-solid-hover: #6fa6f0;
  --info-text-low: #aacfff;
  --info-text-high: #d2e6ff;
  --info-contrast-text: #ffffff;
  --info-text: #d2e6ff;
  --focus: #4b5d76;
  --bg: #05070b;
  --surface: #0c0f13;
  --surface-2: #15181c;
  --border: #44484d;
  --border-2: #585c61;
  --text-2: #c8ccd2;
  --text: #e0e5eb;

  --gain-fill: #e2a35b;
  --gain-fill-hover: #edb16d;

  /* --- back-compat bridge (v1 -> v2 semantic names; see build.mjs) --- */
  --ink: var(--text);
  --ink-2: var(--text-2);
  --ink-3: var(--neutral-8);
  --line: var(--neutral-6);
  --line-2: var(--border-2);
  --gain: var(--gain-fill);
  --gain-2: var(--gain-fill-hover);
  --gain-text-display: var(--gain-fill-hover);
  --gain-bg: var(--gain-bg-subtle);
  --blind: var(--danger-text-high);
  --blind-bg: var(--danger-bg-subtle);
  --mark: var(--brand-solid);
  --cat-blue: var(--blue-9);
  --cat-green: var(--green-9);
  --cat-amber: var(--persimmon-9);
  --cat-rust: var(--red-9);
  --cat-teal: var(--cyan-9);
  --cat-rose: var(--rose-9);
  /* palette-merge legacy aliases (2026-08-07): retired family names resolve through */
  --amber-1: var(--persimmon-1);
  --amber-2: var(--persimmon-2);
  --amber-3: var(--persimmon-3);
  --amber-4: var(--persimmon-4);
  --amber-5: var(--persimmon-5);
  --amber-6: var(--persimmon-6);
  --amber-7: var(--persimmon-7);
  --amber-8: var(--persimmon-8);
  --amber-9: var(--persimmon-9);
  --amber-10: var(--persimmon-10);
  --amber-11: var(--persimmon-11);
  --amber-12: var(--persimmon-12);
  --orange-1: var(--persimmon-1);
  --orange-2: var(--persimmon-2);
  --orange-3: var(--persimmon-3);
  --orange-4: var(--persimmon-4);
  --orange-5: var(--persimmon-5);
  --orange-6: var(--persimmon-6);
  --orange-7: var(--persimmon-7);
  --orange-8: var(--persimmon-8);
  --orange-9: var(--persimmon-9);
  --orange-10: var(--persimmon-10);
  --orange-11: var(--persimmon-11);
  --orange-12: var(--persimmon-12);
  --gain-text-display: var(--gain-text-low);  /* dark: text-low IS the bright gold */

  /* ---- alpha overlays (dark, app-theme accent) ---- */
  --alpha-neutral-5: rgba(255,255,255,0.05);
  --alpha-neutral-10: rgba(255,255,255,0.10);
  --alpha-neutral-20: rgba(255,255,255,0.20);
  --alpha-neutral-40: rgba(255,255,255,0.40);
  --alpha-neutral-60: rgba(255,255,255,0.60);
  --alpha-accent-5: rgba(96,153,231,0.05);
  --alpha-accent-10: rgba(96,153,231,0.10);
  --alpha-accent-20: rgba(96,153,231,0.20);
  --alpha-accent-40: rgba(96,153,231,0.40);
  --alpha-accent-60: rgba(96,153,231,0.60);
}

/* ---- marketing brand: overrides ONLY the accent-family aliases ---- */
[data-brand="marketing"] {
  --accent-bg-subtle: #faf5f0;
  --accent-component: #f4ece4;
  --accent-component-hover: #ece2d8;
  --accent-component-active: #e4d7cb;
  --accent-border-subtle: #dcccbd;
  --accent-border: #d3c0ac;
  --accent-border-strong: #cab198;
  --accent-focus-ring: #cab198;
  --accent-solid: #d58922;
  --accent-solid-hover: #c47e1b;
  --accent-text-low: #b26f00;
  --accent-text-high: #563400;
  --accent-contrast-text: #ffffff;
  --accent-text: #563400;
  --focus: #cab198;
  --alpha-accent-5: rgba(213,137,34,0.05);
  --alpha-accent-10: rgba(213,137,34,0.10);
  --alpha-accent-20: rgba(213,137,34,0.20);
  --alpha-accent-40: rgba(213,137,34,0.40);
  --alpha-accent-60: rgba(213,137,34,0.60);
}

/* both shapes: data-brand on the themed root itself, AND on a nested surface
   (a marketing section inside a dark product page) — vars inherit from the scope.
   The :not() guard: an island that RE-ASSERTS light on itself (a light specimen card
   inside a dark page — the guide's semantic panels) opts out of the dark override;
   without it, this selector's specificity beat the card's own [data-theme="light"]
   and painted dark accent roles onto a light ground (found 2026-08-07: the faint
   Secondary). */
[data-theme="dark"][data-brand="marketing"],
[data-theme="dark"] [data-brand="marketing"]:not([data-theme="light"]) {
  --accent-bg-subtle: #110e0c;
  --accent-component: #1c1712;
  --accent-component-hover: #26201b;
  --accent-component-active: #332a22;
  --accent-border-subtle: #40362c;
  --accent-border: #524538;
  --accent-border-strong: #6a5845;
  --accent-focus-ring: #6a5845;
  --accent-solid: #cb8d44;
  --accent-solid-hover: #d59b57;
  --accent-text-low: #ffbf76;
  --accent-text-high: #ffdebb;
  --accent-contrast-text: #ffffff;
  --accent-text: #ffdebb;
  --focus: #6a5845;
  --alpha-accent-5: rgba(203,141,68,0.05);
  --alpha-accent-10: rgba(203,141,68,0.10);
  --alpha-accent-20: rgba(203,141,68,0.20);
  --alpha-accent-40: rgba(203,141,68,0.40);
  --alpha-accent-60: rgba(203,141,68,0.60);
}

/* ---- app brand: the COUNTER-island. A marketing-register page (the brand guide)
   can host product specimens that must stay blue — data-brand="app" re-asserts the
   product accent inside a marketing scope. Same two shapes as marketing. ---- */
[data-brand="app"] {
  --accent-bg-subtle: #f2f6fe;
  --accent-component: #e7eefa;
  --accent-component-hover: #dbe5f3;
  --accent-component-active: #cfdbed;
  --accent-border-subtle: #c1d0e7;
  --accent-border: #b2c5e1;
  --accent-border-strong: #9fb8db;
  --accent-focus-ring: #9fb8db;
  --accent-solid: #4b91f0;
  --accent-solid-hover: #4185de;
  --accent-text-low: #2c62a5;
  --accent-text-high: #0f3b6e;
  --accent-contrast-text: #ffffff;
  --accent-text: #0f3b6e;
  --focus: #9fb8db;
  --alpha-accent-5: rgba(75,145,240,0.05);
  --alpha-accent-10: rgba(75,145,240,0.10);
  --alpha-accent-20: rgba(75,145,240,0.20);
  --alpha-accent-40: rgba(75,145,240,0.40);
  --alpha-accent-60: rgba(75,145,240,0.60);
}

[data-theme="dark"][data-brand="app"],
[data-theme="dark"] [data-brand="app"]:not([data-theme="light"]) {
  --accent-bg-subtle: #0d0f13;
  --accent-component: #14181f;
  --accent-component-hover: #1c222a;
  --accent-component-active: #252c38;
  --accent-border-subtle: #2f3947;
  --accent-border: #3c485b;
  --accent-border-strong: #4b5d76;
  --accent-focus-ring: #4b5d76;
  --accent-solid: #6099e7;
  --accent-solid-hover: #6fa6f0;
  --accent-text-low: #aacfff;
  --accent-text-high: #d2e6ff;
  --accent-contrast-text: #ffffff;
  --accent-text: #d2e6ff;
  --focus: #4b5d76;
  --alpha-accent-5: rgba(96,153,231,0.05);
  --alpha-accent-10: rgba(96,153,231,0.10);
  --alpha-accent-20: rgba(96,153,231,0.20);
  --alpha-accent-40: rgba(96,153,231,0.40);
  --alpha-accent-60: rgba(96,153,231,0.60);
}
