/* Decomp / Recomp v3 palettes. No black grounds. Default "cobalt" comes from the emblem: cobalt disc, gold eye.
   Same token names as BV-DECOMP so every rule keeps working; --accent-ink = text on accent, --bg-glow = ground light. */
:root {
  --font-brand: "Corptic", "Nasalization", sans-serif;
  --font-title: "Corptic", "Nasalization", system-ui, sans-serif;
  --font-display: "Nasalization", system-ui, sans-serif;
  --font-ui: "Nasalization", system-ui, -apple-system, "Segoe UI", sans-serif;
  --font-mono: "Martian Mono", ui-monospace, "Cascadia Code", monospace;
  --text-xs: 11px; --text-sm: 12px; --text-md: 14px; --text-lg: 17px; --text-xl: 24px; --text-2xl: 32px; --text-3xl: 48px;
  --space-1: 4px; --space-2: 8px; --space-3: 12px; --space-4: 16px; --space-5: 24px; --space-6: 32px; --space-7: 48px;
  --radius: 0; --hairline: 1px; --grid-step: 24px; --cut: 14px;
}

:root, [data-theme="cobalt"] {
  --bg: #132245; --bg-glow: #1f3768; --bg-raised: #1a2c55; --bg-sunken: #0d1833; --bg-hover: #223868;
  --line: #283f6e; --line-strong: #3e5a8f;
  --text: #f3eee0; --text-dim: #b2bdd6; --text-faint: #7886a8;
  --accent: #e9b949; --accent-ink: #0d1833; --accent-2: #7fbfe0;
  --ok: #6ee7a8; --warn: #ffb454; --danger: #ff8080; --highlight: rgba(242, 193, 78, .3);
  --syn-keyword: #f0cc7a; --syn-type: #92cbe8; --syn-function: #92cbe8; --syn-variable: #ffb454; --syn-param: #d6b8ff;
  --syn-constant: #9ff0c3; --syn-global: #7fe0d6; --syn-comment: #d4c0ff; --syn-error: #ff8a8a; --syn-mnemonic: #b9e6ff; --syn-external: #ff9ee0;
  --series-1: #e9b949; --series-2: #7fbfe0; --series-3: #6ee7a8; --series-4: #ff9ec7; --series-5: #d4c0ff; --series-upstream: #9fb0d6;
  --tint: rgba(233, 185, 73, .12); --glow: rgba(233, 185, 73, .35); --grid: rgba(255, 255, 255, .05);
}

[data-theme="paper"] {
  --bg: #ece4d2; --bg-glow: #faf6ec; --bg-raised: #fbf7ee; --bg-sunken: #e0d7c1; --bg-hover: #f3ead6;
  --line: #d3c8ae; --line-strong: #a3967a;
  --text: #19213d; --text-dim: #4b5270; --text-faint: #857f6c;
  --accent: #1f4fd1; --accent-ink: #ffffff; --accent-2: #d9480f;
  --ok: #17703f; --warn: #8f5300; --danger: #bf2a2a; --highlight: rgba(31, 79, 209, .18);
  --syn-keyword: #7a33e0; --syn-type: #1f4fd1; --syn-function: #1f4fd1; --syn-variable: #8f5300; --syn-param: #6b3fa0;
  --syn-constant: #17703f; --syn-global: #0b6f78; --syn-comment: #6e45a8; --syn-error: #bf2a2a; --syn-mnemonic: #2a5bb8; --syn-external: #a02a7a;
  --series-1: #1f4fd1; --series-2: #d9480f; --series-3: #17703f; --series-4: #a02a7a; --series-5: #6b3fa0; --series-upstream: #857f6c;
  --tint: rgba(31, 79, 209, .09); --glow: rgba(31, 79, 209, .3); --grid: rgba(25, 33, 61, .08);
}

[data-theme="emotion-engine"] {
  --bg: #251a55; --bg-glow: #4430a0; --bg-raised: #30236a; --bg-sunken: #1b1342; --bg-hover: #3b2c7e;
  --line: #45378e; --line-strong: #6655b4;
  --text: #f0ecff; --text-dim: #c3b9ec; --text-faint: #8d82c3;
  --accent: #4de2ff; --accent-ink: #1b1342; --accent-2: #ff6ad5;
  --ok: #5ff0b5; --warn: #ffcc66; --danger: #ff7896; --highlight: rgba(77, 226, 255, .25);
  --syn-keyword: #ff9de6; --syn-type: #7febff; --syn-function: #7febff; --syn-variable: #ffcc66; --syn-param: #d2c2ff;
  --syn-constant: #8ff5c8; --syn-global: #6ee8d8; --syn-comment: #d2c2ff; --syn-error: #ff8aa5; --syn-mnemonic: #a8f0ff; --syn-external: #ff9de6;
  --series-1: #4de2ff; --series-2: #ff6ad5; --series-3: #5ff0b5; --series-4: #ffcc66; --series-5: #b49cff; --series-upstream: #a49ad0;
  --tint: rgba(77, 226, 255, .13); --glow: rgba(77, 226, 255, .45); --grid: rgba(255, 255, 255, .07);
}

[data-theme="phosphor"] {
  --bg: #0f3627; --bg-glow: #1f6a4c; --bg-raised: #164535; --bg-sunken: #0b2a1e; --bg-hover: #1c5442;
  --line: #23624b; --line-strong: #39836a;
  --text: #e8fff0; --text-dim: #aedcc2; --text-faint: #72aa8e;
  --accent: #7dff9e; --accent-ink: #0b2a1e; --accent-2: #e6ff6a;
  --ok: #c7ff6b; --warn: #ffd166; --danger: #ff8a7a; --highlight: rgba(125, 255, 158, .25);
  --syn-keyword: #e6ff6a; --syn-type: #9dffb8; --syn-function: #9dffb8; --syn-variable: #ffd166; --syn-param: #c9f0ff;
  --syn-constant: #c7ff6b; --syn-global: #7ff0e0; --syn-comment: #bfe8d0; --syn-error: #ff9a8a; --syn-mnemonic: #b8ffcc; --syn-external: #ffb8e6;
  --series-1: #7dff9e; --series-2: #e6ff6a; --series-3: #7ff0e0; --series-4: #ffd166; --series-5: #c9f0ff; --series-upstream: #8fbca6;
  --tint: rgba(125, 255, 158, .12); --glow: rgba(125, 255, 158, .4); --grid: rgba(255, 255, 255, .06);
}

[data-theme="amber"] {
  --bg: #3c2114; --bg-glow: #74401f; --bg-raised: #4b2b1b; --bg-sunken: #2e180e; --bg-hover: #5a3423;
  --line: #6b3e28; --line-strong: #925b3a;
  --text: #fff1de; --text-dim: #e6c6a2; --text-faint: #ad8763;
  --accent: #ffb000; --accent-ink: #2e180e; --accent-2: #ff6b35;
  --ok: #cde66b; --warn: #ff9a5a; --danger: #ff7b7b; --highlight: rgba(255, 176, 0, .28);
  --syn-keyword: #ffcf70; --syn-type: #ffd9a0; --syn-function: #ffd9a0; --syn-variable: #ff9a5a; --syn-param: #f5c3ff;
  --syn-constant: #cde66b; --syn-global: #9fe3d0; --syn-comment: #f0c9a8; --syn-error: #ff8f8f; --syn-mnemonic: #ffe2b8; --syn-external: #ffb3d9;
  --series-1: #ffb000; --series-2: #ff6b35; --series-3: #cde66b; --series-4: #9fe3d0; --series-5: #f5c3ff; --series-upstream: #c49b78;
  --tint: rgba(255, 176, 0, .13); --glow: rgba(255, 176, 0, .45); --grid: rgba(255, 255, 255, .06);
}

[data-theme="crimson"] {
  --bg: #4a1428; --bg-glow: #8a2647; --bg-raised: #5b1a32; --bg-sunken: #3a0f1f; --bg-hover: #6a213b;
  --line: #7a2c46; --line-strong: #a24766;
  --text: #fff0f3; --text-dim: #f0c0cd; --text-faint: #b98194;
  --accent: #ffd34e; --accent-ink: #3a0f1f; --accent-2: #ff8fb1;
  --ok: #7ee7b0; --warn: #ffb35c; --danger: #ff9a9a; --highlight: rgba(255, 211, 78, .28);
  --syn-keyword: #ffd34e; --syn-type: #ffc2d4; --syn-function: #ffc2d4; --syn-variable: #ffb35c; --syn-param: #e0c8ff;
  --syn-constant: #9ef0c4; --syn-global: #8fe6dc; --syn-comment: #f0c8ff; --syn-error: #ffa3a3; --syn-mnemonic: #ffd6e2; --syn-external: #ffb3d9;
  --series-1: #ffd34e; --series-2: #ff8fb1; --series-3: #7ee7b0; --series-4: #8fe6dc; --series-5: #e0c8ff; --series-upstream: #c995a6;
  --tint: rgba(255, 211, 78, .13); --glow: rgba(255, 211, 78, .45); --grid: rgba(255, 255, 255, .06);
}

body { margin: 0; background: var(--bg); }

@font-face{font-family:"Astron Valley";src:url("assets/astron.otf");font-display:swap}
@font-face{font-family:"Corptic";src:url("assets/corptic.otf") format("opentype");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Nasalization";src:url("assets/nasalization.otf");font-display:swap}
@font-face{font-family:"Martian Mono";src:url("assets/martian.woff2");font-display:swap}
