:root {
  color-scheme: dark;

  /* Core theme tokens (Dark) */
  --surface: #000000;
  --surface-2: #0f0f0f;
  --surface-3: #1a1a1a;
  --ink: #ffffff;
  --muted: #b3b3b3;
  --border: #3a3a3a;
  --accent: #ffffff;

  /* Control tokens (inverted) */
  --control-bg: var(--accent);
  --control-ink: #000000;
  --control-border: var(--accent);

  /* Typography */
  --font-mono: "JetBrains Mono", "SFMono-Regular", Menlo, Consolas, "Liberation Mono", monospace;
  --fs-base: 14px;
  --lh-base: 1.5;

  --h1-size: 32px;
  --h1-weight: 700;
  --h1-tracking: 0.04em;

  --h2-size: 18px;
  --h2-weight: 600;

  --label-size: 12px;
  --label-tracking: 0.08em;

  /* Geometry */
  --radius: 0px;
  --border-width: 1px;

  /* Spacing (4px grid) */
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-5: 20px;
  --space-6: 28px;

  /* Data palettes (fixed) */
  /* Sequential 9-step: dark blue -> cool blues -> warm yellow/orange -> dark red */
  --seq-1: #15223f;
  --seq-2: #1e3a6d;
  --seq-3: #275aa5;
  --seq-4: #2f85d3;
  --seq-5: #6bb6ff;
  --seq-6: #f3d35c;
  --seq-7: #f0a23b;
  --seq-8: #d45a33;
  --seq-9: #b5292e;

  /* Diverging 9-step (ColorBrewer RdBu-like), neutral middle */
  --div-1: #053061;
  --div-2: #2166ac;
  --div-3: #4393c3;
  --div-4: #92c5de;
  --div-5: #f7f7f7;
  --div-6: #f4a582;
  --div-7: #d6604d;
  --div-8: #b2182b;
  --div-9: #67001f;

  /* Visualization defaults */
  --viz-bg: var(--surface);
  --viz-link: rgba(255, 255, 255, 0.10);
  --viz-link-strong: rgba(255, 255, 255, 0.16);
  --viz-stroke: rgba(255, 255, 255, 0.22);
  --viz-label: var(--ink);
  --viz-node: #000000;
  --viz-node-fill: #000000;
  --viz-node-stroke: var(--viz-stroke);
  --viz-highlight: var(--seq-5);
}

body.theme-invert {
  color-scheme: light;

  /* Core theme tokens (Light, inverted) */
  --surface: #ffffff;
  --surface-2: #f4f4f4;
  --surface-3: #e9e9e9;
  --ink: #111111;
  --muted: #4a4a4a;
  --border: #d9d9d9;
  --accent: #000000;

  /* Control tokens (inverted) */
  --control-bg: var(--accent);
  --control-ink: #ffffff;
  --control-border: var(--accent);

  /* Visualization defaults (light) */
  --viz-link: rgba(17, 17, 17, 0.10);
  --viz-link-strong: rgba(17, 17, 17, 0.16);
  --viz-stroke: rgba(17, 17, 17, 0.22);
  --viz-highlight: var(--seq-4);
}
