/* ═══════════════════════════════════════════════════════════════════════
   §10  CONSOLE HERITAGE THEMES
   Xbox · PlayStation · Sega · Atari · Nintendo
   ═══════════════════════════════════════════════════════════════════════ */

/* ─────────────────────────────────────────────────────────────────────
   XBOX — ORIGINAL
   Radioactive green X on matte black. The Duke controller. JSRF vibes.
   ───────────────────────────────────────────────────────────────────── */
:root[data-vc-theme="xbox_og"] {
  --void: #060806; --abyss: #0a0c0a; --deep: #0e120e; --chamber: #121814;
  --altar: #182018; --surface: #1e281e;
  --text: rgba(225,245,220,.92); --static: rgba(208,232,202,.87);
  --bone: rgba(240,255,235,.96); --fog: rgba(130,190,118,.63);
  --dust: rgba(80,145,68,.48); --muted: rgba(52,108,42,.52);
  --gold: #52b000; --gold-bright: #6ed400; --gold-pale: rgba(195,255,175,.96);
  --gold-dim: rgba(82,176,0,.52); --gold-glow: rgba(82,176,0,.22);
  --blood: #107010; --blood-bright: #188a18; --blood-glow: rgba(16,112,16,.45);
  --border: rgba(82,176,0,.18); --border-bright: rgba(110,212,0,.40);
  --rim: rgba(68,155,0,.13); --line: rgba(52,125,0,.08);
  --green: #52b000; --violet: rgba(80,180,60,.80);
  --sidebar-shell: linear-gradient(180deg, rgba(6,8,6,.99), rgba(4,5,4,.99));
  --sidebar-border: rgba(68,155,0,.14);
  --sidebar-active-bg: rgba(82,176,0,.08);
  --sidebar-active-border: rgba(82,176,0,.26);
  --fx-trace-color: rgba(82,176,0,.25); --fx-icegrid-h: rgba(68,155,0,.07);
  --fx-icegrid-v: rgba(16,112,16,.05); --fx-icegrid-opacity: 0.13;
}

/* ── Xbox OG FX ── */
:root[data-vc-theme="xbox_og"] body::after {
  background-image:
    radial-gradient(ellipse 55% 45% at 50% 50%,
      rgba(82,176,0,var(--fx-bloom-intensity,.08)) 0%,
      transparent 65%),
    radial-gradient(ellipse 100% 100% at 50% 50%,
      transparent 50%, rgba(6,8,6,var(--fx-vignette-depth,.70)) 100%);
  background-size: cover;
  animation: vcBloomPulse 5s ease-in-out infinite;
}
:root[data-vc-theme="xbox_og"] body.vc-fx-icegrid-on .result-card::before,
:root[data-vc-theme="xbox_og"] body.vc-fx-icegrid-on .lib-card::before {
  background-image: linear-gradient(to right, rgba(82,176,0,.07) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(82,176,0,.06) 1px, transparent 1px);
  background-size: 20px 20px;
}
:root[data-vc-theme="xbox_og"] body.vc-fx-breach-on .vc-shell::before {
  content: "";
  position: fixed; inset: 0;
  background: radial-gradient(ellipse 60% 55% at 50% 50%,
    rgba(82,176,0,calc(var(--fx-bloom-intensity,.08)*1.5)) 0%, transparent 70%);
  pointer-events: none; z-index: 9994;
  animation: vcBloomPulse 2s ease-in-out infinite;
}
:root[data-vc-theme="xbox_og"] .vc-main::before {
  content: "XBOX · SYSTEM LINK ACTIVE";
  position: fixed; bottom: 8px; right: 14px;
  font-family: var(--font-vhs, monospace); font-size: 7px; letter-spacing: 3px;
  color: rgba(82,176,0,.30); pointer-events: none; z-index: 9999;
}
:root[data-vc-theme="xbox_og"] .vc-theme-active {
  border-color: rgba(82,176,0,.70) !important; background: rgba(82,176,0,.09) !important;
}


/* ─────────────────────────────────────────────────────────────────────
   XBOX 360
   White gloss shell, green ring of life. Blade UI. Achievement unlocked.
   ───────────────────────────────────────────────────────────────────── */
:root[data-vc-theme="xbox_360"] {
  --void: #f0f0ee; --abyss: #f4f4f2; --deep: #f8f8f6; --chamber: #fafafa;
  --altar: #fcfcfc; --surface: #ffffff;
  --text: rgba(18,24,18,.90); --static: rgba(32,40,32,.84);
  --bone: rgba(10,14,10,.95); --fog: rgba(60,80,60,.62);
  --dust: rgba(90,110,90,.50); --muted: rgba(120,140,120,.55);
  --gold: #52b000; --gold-bright: #6ed400; --gold-pale: rgba(10,14,10,.95);
  --gold-dim: rgba(82,176,0,.55); --gold-glow: rgba(82,176,0,.18);
  --blood: #207a20; --blood-bright: #2a9a2a; --blood-glow: rgba(32,122,32,.30);
  --border: rgba(32,120,32,.18); --border-bright: rgba(42,154,42,.38);
  --rim: rgba(28,105,28,.12); --line: rgba(20,85,20,.08);
  --green: #52b000; --violet: rgba(80,160,80,.78);
  --sidebar-shell: linear-gradient(180deg, rgba(236,236,234,.99), rgba(228,228,226,.99));
  --sidebar-border: rgba(28,105,28,.12);
  --sidebar-active-bg: rgba(82,176,0,.07);
  --sidebar-active-border: rgba(82,176,0,.28);
  --fx-trace-color: rgba(82,176,0,.28); --fx-icegrid-h: rgba(32,120,32,.06);
  --fx-icegrid-v: rgba(20,85,20,.04); --fx-icegrid-opacity: 0.09;
}

/* ── Xbox 360 FX ── */
:root[data-vc-theme="xbox_360"] body::after {
  background-image:
    radial-gradient(ellipse 90% 50% at 50% 0%,
      rgba(255,255,255,var(--fx-bloom-intensity,.50)) 0%,
      transparent 65%);
  background-size: cover;
}
:root[data-vc-theme="xbox_360"] body.vc-fx-trace-on .vc-shell::after {
  content: "";
  position: fixed; left: 0; right: 0; height: 1.5px;
  background: linear-gradient(180deg,
    rgba(82,176,0,var(--fx-trace-brightness,.28)) 0%,
    rgba(82,176,0,calc(var(--fx-trace-brightness,.28)*0.25)) 100%);
  pointer-events: none; z-index: 9998;
  animation: vcScanCrawl 3s linear infinite;
}
:root[data-vc-theme="xbox_360"] body.vc-fx-breach-on .vc-modal-dialog {
  box-shadow: 0 0 0 2px rgba(82,176,0,.40), 0 0 30px rgba(82,176,0,.15) !important;
  animation: vcShieldPulse 3s ease-in-out infinite;
}
:root[data-vc-theme="xbox_360"] .vc-main::before {
  content: "ACHIEVEMENT UNLOCKED · 10G";
  position: fixed; bottom: 8px; right: 14px;
  font-family: var(--font-vhs, monospace); font-size: 7px; letter-spacing: 3px;
  color: rgba(82,176,0,.35); pointer-events: none; z-index: 9999;
}
:root[data-vc-theme="xbox_360"] .vc-theme-active {
  border-color: rgba(82,176,0,.65) !important; background: rgba(82,176,0,.07) !important;
}


/* ─────────────────────────────────────────────────────────────────────
   PLAYSTATION 1
   Grey plastic dawn. Startup drone. Memory card slots. You are here.
   ───────────────────────────────────────────────────────────────────── */
:root[data-vc-theme="ps1_gray"] {
  --void: #909090; --abyss: #a8a8a8; --deep: #b8b8b8; --chamber: #c8c8c8;
  --altar: #d4d4d4; --surface: #e0e0e0;
  --text: rgba(18,18,32,.92); --static: rgba(28,28,48,.86);
  --bone: rgba(10,10,20,.95); --fog: rgba(50,50,80,.65);
  --dust: rgba(80,80,115,.52); --muted: rgba(110,110,145,.55);
  --gold: #0050a0; --gold-bright: #0070cc; --gold-pale: rgba(10,10,20,.95);
  --gold-dim: rgba(0,80,160,.55); --gold-glow: rgba(0,80,160,.18);
  --blood: #a00020; --blood-bright: #cc0028; --blood-glow: rgba(160,0,32,.32);
  --border: rgba(0,60,130,.18); --border-bright: rgba(0,80,160,.38);
  --rim: rgba(0,50,110,.12); --line: rgba(0,40,90,.08);
  --green: #008040; --violet: rgba(80,0,180,.75);
  --sidebar-shell: linear-gradient(180deg, rgba(130,130,130,.99), rgba(120,120,120,.99));
  --sidebar-border: rgba(0,50,110,.12);
  --sidebar-active-bg: rgba(0,80,160,.07);
  --sidebar-active-border: rgba(0,80,160,.28);
  --fx-trace-color: rgba(0,80,160,.25); --fx-icegrid-h: rgba(0,60,130,.06);
  --fx-icegrid-v: rgba(160,0,32,.04); --fx-icegrid-opacity: 0.09;
}

:root[data-vc-theme="ps1_gray"] body::before {
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 300 300' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.80' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.04'/%3E%3C/svg%3E");
  background-size: 300px 300px;
}
:root[data-vc-theme="ps1_gray"] .vc-main::before {
  content: "○ △ □ × · MEMORY CARD SLOT 1";
  position: fixed; bottom: 8px; right: 14px;
  font-family: var(--font-vhs, monospace); font-size: 7px; letter-spacing: 3px;
  color: rgba(0,80,160,.40); pointer-events: none; z-index: 9999;
}
:root[data-vc-theme="ps1_gray"] .vc-theme-active {
  border-color: rgba(0,80,160,.60) !important; background: rgba(0,80,160,.08) !important;
}


/* ─────────────────────────────────────────────────────────────────────
   PLAYSTATION 2
   Gloss black monolith. Browser boot. Startup choir. Infinite library.
   ───────────────────────────────────────────────────────────────────── */
:root[data-vc-theme="ps2_black"] {
  --void: #060606; --abyss: #0c0c0e; --deep: #121216; --chamber: #18181e;
  --altar: #1e1e26; --surface: #24242e;
  --text: rgba(210,225,255,.92); --static: rgba(192,210,248,.87);
  --bone: rgba(235,242,255,.96); --fog: rgba(110,140,215,.63);
  --dust: rgba(65,95,175,.50); --muted: rgba(42,65,145,.52);
  --gold: #0060c8; --gold-bright: #1880e8; --gold-pale: rgba(195,215,255,.96);
  --gold-dim: rgba(0,96,200,.52); --gold-glow: rgba(0,96,200,.20);
  --blood: #8000c8; --blood-bright: #a018e8; --blood-glow: rgba(128,0,200,.35);
  --border: rgba(0,100,200,.18); --border-bright: rgba(0,128,220,.40);
  --rim: rgba(0,85,175,.13); --line: rgba(0,68,148,.08);
  --green: rgba(0,200,150,.80); --violet: rgba(160,0,240,.80);
  --sidebar-shell: linear-gradient(180deg, rgba(6,6,6,.99), rgba(4,4,4,.99));
  --sidebar-border: rgba(0,85,175,.14);
  --sidebar-active-bg: rgba(0,96,200,.08);
  --sidebar-active-border: rgba(0,96,200,.26);
  --fx-trace-color: rgba(0,96,200,.22); --fx-icegrid-h: rgba(0,100,200,.07);
  --fx-icegrid-v: rgba(128,0,200,.05); --fx-icegrid-opacity: 0.13;
}

:root[data-vc-theme="ps2_black"] body::after {
  background-image:
    radial-gradient(ellipse 70% 55% at 50% 30%,
      rgba(0,96,200,var(--fx-bloom-intensity,.06)) 0%,
      transparent 70%),
    radial-gradient(ellipse 100% 100% at 50% 50%,
      transparent 48%, rgba(6,6,6,var(--fx-vignette-depth,.72)) 100%);
  background-size: cover;
  animation: vcBloomPulse 6s ease-in-out infinite;
}
:root[data-vc-theme="ps2_black"] body.vc-fx-breach-on .vc-modal-dialog {
  animation: vcShieldPulse 4s ease-in-out infinite;
  box-shadow: 0 0 0 1px rgba(0,96,200,.20), 0 0 50px rgba(0,96,200,.10),
              0 0 0 3px rgba(128,0,200,.08) !important;
}
:root[data-vc-theme="ps2_black"] .vc-main::before {
  content: "PS2 · BROWSER v1.10 · DISC READ OK";
  position: fixed; bottom: 8px; right: 14px;
  font-family: var(--font-vhs, monospace); font-size: 7px; letter-spacing: 3px;
  color: rgba(0,96,200,.30); pointer-events: none; z-index: 9999;
}
:root[data-vc-theme="ps2_black"] .vc-theme-active {
  border-color: rgba(0,96,200,.65) !important; background: rgba(0,96,200,.08) !important;
}


/* ─────────────────────────────────────────────────────────────────────
   PLAYSTATION 3 — XMB
   Chrome wave interface, deep navy, XMB crossbar. It only does everything.
   ───────────────────────────────────────────────────────────────────── */
:root[data-vc-theme="ps3_xmb"] {
  --void: #04080f; --abyss: #070e1c; --deep: #0c1828; --chamber: #121e34;
  --altar: #182640; --surface: #1e2e4e;
  --text: rgba(215,230,255,.92); --static: rgba(195,215,250,.87);
  --bone: rgba(235,244,255,.96); --fog: rgba(115,155,230,.63);
  --dust: rgba(70,110,195,.50); --muted: rgba(45,75,165,.52);
  --gold: #0090e0; --gold-bright: #18aeff; --gold-pale: rgba(195,228,255,.96);
  --gold-dim: rgba(0,144,224,.52); --gold-glow: rgba(0,144,224,.20);
  --blood: #0050b0; --blood-bright: #0068d8; --blood-glow: rgba(0,80,176,.40);
  --border: rgba(0,130,210,.18); --border-bright: rgba(0,160,240,.40);
  --rim: rgba(0,110,185,.13); --line: rgba(0,88,155,.08);
  --green: rgba(0,200,180,.78); --violet: rgba(100,80,240,.78);
  --sidebar-shell: linear-gradient(180deg, rgba(4,8,15,.99), rgba(3,6,11,.99));
  --sidebar-border: rgba(0,110,185,.14);
  --sidebar-active-bg: rgba(0,144,224,.08);
  --sidebar-active-border: rgba(0,144,224,.26);
  --fx-trace-color: rgba(0,144,224,.25); --fx-icegrid-h: rgba(0,130,210,.07);
  --fx-icegrid-v: rgba(0,80,176,.05); --fx-icegrid-opacity: 0.12;
}

:root[data-vc-theme="ps3_xmb"] body::after {
  background-image:
    radial-gradient(ellipse 100% 60% at 20% 50%,
      rgba(0,144,224,var(--fx-bloom-intensity,.05)) 0%,
      transparent 70%),
    radial-gradient(ellipse 100% 60% at 80% 50%,
      rgba(0,80,176,var(--fx-bloom-intensity,.04)) 0%,
      transparent 70%),
    radial-gradient(ellipse 100% 100% at 50% 50%,
      transparent 45%, rgba(4,8,15,var(--fx-vignette-depth,.70)) 100%);
  background-size: cover;
  animation: vcBloomPulse 8s ease-in-out infinite;
}
/* XMB wave — decorative diagonal sweep */
:root[data-vc-theme="ps3_xmb"] .vc-shell::before {
  content: "";
  position: fixed; inset: 0;
  background: linear-gradient(
    -35deg,
    transparent 0%,
    rgba(0,144,224,calc(var(--fx-atmos-opacity,.10)*0.3)) 40%,
    transparent 60%,
    rgba(0,80,176,calc(var(--fx-atmos-opacity,.10)*0.2)) 100%
  );
  pointer-events: none; z-index: 9994;
  animation: vcOldGodsLight 12s ease-in-out infinite alternate;
}
:root[data-vc-theme="ps3_xmb"] .vc-main::before {
  content: "PLAYSTATION®3 · XMB";
  position: fixed; bottom: 8px; right: 14px;
  font-family: var(--font-vhs, monospace); font-size: 7px; letter-spacing: 3px;
  color: rgba(0,144,224,.28); pointer-events: none; z-index: 9999;
}
:root[data-vc-theme="ps3_xmb"] .vc-theme-active {
  border-color: rgba(0,144,224,.65) !important; background: rgba(0,144,224,.08) !important;
}


/* ─────────────────────────────────────────────────────────────────────
   PLAYSTATION 4
   Matte slate. Electric blue. Share button. The era of screenshots.
   ───────────────────────────────────────────────────────────────────── */
:root[data-vc-theme="ps4_blue"] {
  --void: #0a0c12; --abyss: #0f1220; --deep: #14182c; --chamber: #1a1e38;
  --altar: #202545; --surface: #272d52;
  --text: rgba(215,228,255,.92); --static: rgba(198,214,252,.87);
  --bone: rgba(238,244,255,.96); --fog: rgba(108,145,228,.63);
  --dust: rgba(62,100,195,.50); --muted: rgba(40,68,165,.52);
  --gold: #0070cc; --gold-bright: #1888e8; --gold-pale: rgba(195,220,255,.96);
  --gold-dim: rgba(0,112,204,.52); --gold-glow: rgba(0,112,204,.20);
  --blood: #003888; --blood-bright: #0050b0; --blood-glow: rgba(0,56,136,.45);
  --border: rgba(0,100,195,.18); --border-bright: rgba(0,130,220,.40);
  --rim: rgba(0,85,168,.13); --line: rgba(0,68,138,.08);
  --green: rgba(0,210,175,.78); --violet: rgba(120,80,240,.78);
  --sidebar-shell: linear-gradient(180deg, rgba(10,12,18,.99), rgba(7,9,14,.99));
  --sidebar-border: rgba(0,85,168,.14);
  --sidebar-active-bg: rgba(0,112,204,.08);
  --sidebar-active-border: rgba(0,112,204,.26);
  --fx-trace-color: rgba(0,112,204,.25); --fx-icegrid-h: rgba(0,100,195,.07);
  --fx-icegrid-v: rgba(0,56,136,.05); --fx-icegrid-opacity: 0.11;
}

:root[data-vc-theme="ps4_blue"] body::after {
  background-image:
    radial-gradient(ellipse 60% 50% at 50% 60%,
      rgba(0,112,204,var(--fx-bloom-intensity,.07)) 0%,
      transparent 70%),
    radial-gradient(ellipse 100% 100% at 50% 50%,
      transparent 50%, rgba(10,12,18,var(--fx-vignette-depth,.68)) 100%);
  background-size: cover;
  animation: vcBloomPulse 6s ease-in-out infinite;
}
:root[data-vc-theme="ps4_blue"] body.vc-fx-trace-on .vc-shell::after {
  content: "";
  position: fixed; left: 0; right: 0; height: 1.5px;
  background: linear-gradient(180deg,
    rgba(0,112,204,var(--fx-trace-brightness,.25)) 0%,
    rgba(0,112,204,calc(var(--fx-trace-brightness,.25)*0.24)) 100%);
  pointer-events: none; z-index: 9998;
  animation: vcScanCrawl 4s linear infinite;
}
:root[data-vc-theme="ps4_blue"] .vc-main::before {
  content: "PLAYSTATION®4 · SHARE";
  position: fixed; bottom: 8px; right: 14px;
  font-family: var(--font-vhs, monospace); font-size: 7px; letter-spacing: 3px;
  color: rgba(0,112,204,.28); pointer-events: none; z-index: 9999;
}
:root[data-vc-theme="ps4_blue"] .vc-theme-active {
  border-color: rgba(0,112,204,.65) !important; background: rgba(0,112,204,.08) !important;
}


/* ─────────────────────────────────────────────────────────────────────
   PLAYSTATION 5
   Ceramic white. Haptic feedback. Activity Cards. Next generation.
   ───────────────────────────────────────────────────────────────────── */
:root[data-vc-theme="ps5_white"] {
  --void: #f8f8fa; --abyss: #f2f4f8; --deep: #eaecf4; --chamber: #e2e6f0;
  --altar: #d8dcea; --surface: #cdd3e4;
  --text: rgba(12,14,28,.90); --static: rgba(20,24,42,.84);
  --bone: rgba(6,8,18,.96); --fog: rgba(40,55,105,.62);
  --dust: rgba(65,82,145,.50); --muted: rgba(90,108,175,.55);
  --gold: #0050ff; --gold-bright: #1868ff; --gold-pale: rgba(8,10,22,.95);
  --gold-dim: rgba(0,80,255,.52); --gold-glow: rgba(0,80,255,.16);
  --blood: #080a14; --blood-bright: #101422; --blood-glow: rgba(8,10,20,.40);
  --border: rgba(0,60,200,.14); --border-bright: rgba(0,80,230,.32);
  --rim: rgba(0,50,175,.10); --line: rgba(0,40,148,.07);
  --green: rgba(0,200,160,.80); --violet: rgba(80,60,200,.75);
  --sidebar-shell: linear-gradient(180deg, rgba(240,242,248,.99), rgba(232,236,244,.99));
  --sidebar-border: rgba(0,50,175,.11);
  --sidebar-active-bg: rgba(0,80,255,.06);
  --sidebar-active-border: rgba(0,80,255,.26);
  --fx-trace-color: rgba(0,80,255,.20); --fx-icegrid-h: rgba(0,60,200,.05);
  --fx-icegrid-v: rgba(8,10,20,.04); --fx-icegrid-opacity: 0.08;
}

:root[data-vc-theme="ps5_white"] body::after {
  background-image:
    radial-gradient(ellipse 80% 50% at 50% 0%,
      rgba(255,255,255,var(--fx-bloom-intensity,.55)) 0%,
      transparent 65%),
    radial-gradient(ellipse 60% 50% at 50% 100%,
      rgba(0,80,255,calc(var(--fx-bloom-intensity,.55)*0.07)) 0%,
      transparent 70%);
  background-size: cover;
}
:root[data-vc-theme="ps5_white"] body.vc-fx-trace-on .vc-shell::after {
  content: "";
  position: fixed; left: 0; right: 0; height: 1px;
  background: linear-gradient(180deg,
    rgba(0,80,255,var(--fx-trace-brightness,.20)) 0%,
    rgba(0,80,255,calc(var(--fx-trace-brightness,.20)*0.2)) 100%);
  pointer-events: none; z-index: 9998;
  animation: vcScanCrawl 5s linear infinite;
}
:root[data-vc-theme="ps5_white"] body.vc-fx-breach-on .vc-modal-dialog {
  animation: vcShieldPulse 4s ease-in-out infinite;
  box-shadow: 0 0 0 1px rgba(0,80,255,.22), 0 0 30px rgba(0,80,255,.08) !important;
}
:root[data-vc-theme="ps5_white"] .vc-main::before {
  content: "PLAYSTATION®5 · ACTIVITY";
  position: fixed; bottom: 8px; right: 14px;
  font-family: var(--font-vhs, monospace); font-size: 7px; letter-spacing: 3px;
  color: rgba(0,80,255,.30); pointer-events: none; z-index: 9999;
}
:root[data-vc-theme="ps5_white"] .vc-theme-active {
  border-color: rgba(0,80,255,.60) !important; background: rgba(0,80,255,.06) !important;
}


/* ─────────────────────────────────────────────────────────────────────
   SEGA GENESIS
   Blast Processing. Jet black, blast red, 16-bit raw power. SEEEEGA.
   ───────────────────────────────────────────────────────────────────── */
:root[data-vc-theme="sega_genesis"] {
  --void: #060606; --abyss: #0c0c0c; --deep: #121212; --chamber: #181818;
  --altar: #202020; --surface: #2a2a2a;
  --text: rgba(240,235,230,.92); --static: rgba(228,222,216,.87);
  --bone: rgba(252,248,244,.96); --fog: rgba(192,185,178,.63);
  --dust: rgba(145,138,130,.50); --muted: rgba(105,98,92,.52);
  --gold: #d01010; --gold-bright: #f01818; --gold-pale: rgba(255,205,205,.96);
  --gold-dim: rgba(208,16,16,.52); --gold-glow: rgba(208,16,16,.22);
  --blood: #404040; --blood-bright: #555555; --blood-glow: rgba(64,64,64,.55);
  --border: rgba(200,16,16,.18); --border-bright: rgba(240,24,24,.40);
  --rim: rgba(175,12,12,.13); --line: rgba(145,8,8,.08);
  --green: #808080; --violet: rgba(180,60,60,.78);
  --sidebar-shell: linear-gradient(180deg, rgba(6,6,6,.99), rgba(4,4,4,.99));
  --sidebar-border: rgba(175,12,12,.14);
  --sidebar-active-bg: rgba(208,16,16,.08);
  --sidebar-active-border: rgba(208,16,16,.26);
  --fx-trace-color: rgba(208,16,16,.25); --fx-icegrid-h: rgba(200,16,16,.07);
  --fx-icegrid-v: rgba(64,64,64,.05); --fx-icegrid-opacity: 0.12;
}

:root[data-vc-theme="sega_genesis"] body::before {
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.80' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.08'/%3E%3C/svg%3E");
  background-size: 256px 256px;
}
:root[data-vc-theme="sega_genesis"] body::after {
  background-image:
    radial-gradient(ellipse 100% 100% at 50% 50%,
      transparent 45%, rgba(6,6,6,var(--fx-vignette-depth,.72)) 100%);
  background-size: cover;
}
:root[data-vc-theme="sega_genesis"] body.vc-fx-glitch-on .vc-main {
  animation: vcTrackingTear 5s ease-in-out infinite;
}
:root[data-vc-theme="sega_genesis"] .vc-main::before {
  content: "SEGA · BLAST PROCESSING · 16-BIT";
  position: fixed; bottom: 8px; right: 14px;
  font-family: var(--font-vhs, monospace); font-size: 7px; letter-spacing: 3px;
  color: rgba(208,16,16,.32); pointer-events: none; z-index: 9999;
}
:root[data-vc-theme="sega_genesis"] .vc-theme-active {
  border-color: rgba(208,16,16,.68) !important; background: rgba(208,16,16,.08) !important;
}


/* ─────────────────────────────────────────────────────────────────────
   ATARI 2600
   Wood veneer and black plastic. Joystick calluses. CRT phosphor warmth.
   ───────────────────────────────────────────────────────────────────── */
:root[data-vc-theme="atari_2600"] {
  --void: #1a1008; --abyss: #221508; --deep: #2c1e0e; --chamber: #362818;
  --altar: #423220; --surface: #503d28;
  --text: rgba(248,238,215,.93); --static: rgba(235,224,200,.88);
  --bone: rgba(255,248,228,.96); --fog: rgba(200,178,138,.65);
  --dust: rgba(155,130,88,.50); --muted: rgba(115,92,55,.52);
  --gold: #e8a028; --gold-bright: #f8b840; --gold-pale: rgba(255,238,190,.96);
  --gold-dim: rgba(232,160,40,.52); --gold-glow: rgba(232,160,40,.22);
  --blood: #c06010; --blood-bright: #e07818; --blood-glow: rgba(192,96,16,.40);
  --border: rgba(210,160,80,.18); --border-bright: rgba(235,185,105,.40);
  --rim: rgba(188,140,65,.13); --line: rgba(160,118,48,.08);
  --green: rgba(80,160,80,.80); --violet: rgba(120,80,180,.78);
  --sidebar-shell: linear-gradient(180deg, rgba(26,16,8,.99), rgba(18,10,4,.99));
  --sidebar-border: rgba(188,140,65,.14);
  --sidebar-active-bg: rgba(232,160,40,.08);
  --sidebar-active-border: rgba(232,160,40,.26);
  --fx-trace-color: rgba(232,160,40,.25); --fx-icegrid-h: rgba(210,160,80,.07);
  --fx-icegrid-v: rgba(192,96,16,.05); --fx-icegrid-opacity: 0.11;
}

:root[data-vc-theme="atari_2600"] body::before {
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.55 0.70' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.075'/%3E%3C/svg%3E");
  background-size: 400px 400px;
}
:root[data-vc-theme="atari_2600"] body::after {
  background-image:
    radial-gradient(ellipse 70% 55% at 50% 40%,
      rgba(232,160,40,var(--fx-bloom-intensity,.06)) 0%,
      transparent 70%),
    radial-gradient(ellipse 100% 100% at 50% 50%,
      transparent 48%, rgba(26,16,8,var(--fx-vignette-depth,.68)) 100%);
  background-size: cover;
  animation: vcBloomPulse 5s ease-in-out infinite;
}
:root[data-vc-theme="atari_2600"] body.vc-fx-trace-on .vc-shell::after {
  content: "";
  position: fixed; left: 0; right: 0; height: 2px;
  background: linear-gradient(180deg,
    rgba(232,160,40,var(--fx-trace-brightness,.28)) 0%,
    rgba(232,160,40,calc(var(--fx-trace-brightness,.28)*0.21)) 100%);
  pointer-events: none; z-index: 9998;
  animation: vcScanCrawl 4s linear infinite;
}
:root[data-vc-theme="atari_2600"] .vc-main::before {
  content: "ATARI · GAME PROGRAM™ · JOYSTICK PORT 1";
  position: fixed; bottom: 8px; right: 14px;
  font-family: var(--font-vhs, monospace); font-size: 7px; letter-spacing: 3px;
  color: rgba(232,160,40,.30); pointer-events: none; z-index: 9999;
}
:root[data-vc-theme="atari_2600"] .vc-theme-active {
  border-color: rgba(232,160,40,.65) !important; background: rgba(232,160,40,.08) !important;
}


/* ─────────────────────────────────────────────────────────────────────
   SUPER NINTENDO
   Lavender grey plastic. Mode 7 dreams. Button rainbow. Super!
   ───────────────────────────────────────────────────────────────────── */
:root[data-vc-theme="nintendo_snes"] {
  --void: #cccad8; --abyss: #d4d2e0; --deep: #dcdae8; --chamber: #e4e2ee;
  --altar: #eceaf4; --surface: #f2f0f8;
  --text: rgba(28,18,48,.90); --static: rgba(40,28,65,.84);
  --bone: rgba(16,10,30,.96); --fog: rgba(70,50,110,.62);
  --dust: rgba(100,75,148,.50); --muted: rgba(130,100,178,.55);
  --gold: #7040b0; --gold-bright: #9058d8; --gold-pale: rgba(14,8,28,.95);
  --gold-dim: rgba(112,64,176,.52); --gold-glow: rgba(112,64,176,.18);
  --blood: #d02828; --blood-bright: #e83030; --blood-glow: rgba(208,40,40,.30);
  --border: rgba(100,60,160,.18); --border-bright: rgba(130,80,200,.38);
  --rim: rgba(85,50,138,.12); --line: rgba(68,38,115,.08);
  --green: rgba(0,168,80,.80); --violet: rgba(80,60,200,.78);
  --sidebar-shell: linear-gradient(180deg, rgba(195,192,208,.99), rgba(185,182,200,.99));
  --sidebar-border: rgba(85,50,138,.12);
  --sidebar-active-bg: rgba(112,64,176,.08);
  --sidebar-active-border: rgba(112,64,176,.26);
  --fx-trace-color: rgba(112,64,176,.25); --fx-icegrid-h: rgba(100,60,160,.06);
  --fx-icegrid-v: rgba(208,40,40,.04); --fx-icegrid-opacity: 0.09;
}

:root[data-vc-theme="nintendo_snes"] body::after {
  background-image:
    radial-gradient(ellipse 90% 50% at 50% 0%,
      rgba(255,255,255,var(--fx-bloom-intensity,.35)) 0%,
      transparent 65%),
    radial-gradient(ellipse 60% 50% at 50% 100%,
      rgba(112,64,176,calc(var(--fx-bloom-intensity,.35)*0.08)) 0%,
      transparent 70%);
  background-size: cover;
}
:root[data-vc-theme="nintendo_snes"] .vc-main::before {
  content: "SUPER NINTENDO · MODE 7 · © NINTENDO";
  position: fixed; bottom: 8px; right: 14px;
  font-family: var(--font-vhs, monospace); font-size: 7px; letter-spacing: 3px;
  color: rgba(112,64,176,.35); pointer-events: none; z-index: 9999;
}
:root[data-vc-theme="nintendo_snes"] .vc-theme-active {
  border-color: rgba(112,64,176,.60) !important; background: rgba(112,64,176,.07) !important;
}


/* ─────────────────────────────────────────────────────────────────────
   NINTENDO 64
   64-bit power, cartridge rumble, expansion pak hum. Ultra 64.
   ───────────────────────────────────────────────────────────────────── */
:root[data-vc-theme="nintendo_n64"] {
  --void: #0a0a14; --abyss: #101020; --deep: #181828; --chamber: #201838;
  --altar: #281e46; --surface: #302456;
  --text: rgba(225,220,255,.92); --static: rgba(210,205,248,.87);
  --bone: rgba(242,238,255,.96); --fog: rgba(155,140,225,.65);
  --dust: rgba(110,90,185,.50); --muted: rgba(78,60,155,.52);
  --gold: #e82020; --gold-bright: #ff2828; --gold-pale: rgba(255,205,205,.96);
  --gold-dim: rgba(232,32,32,.52); --gold-glow: rgba(232,32,32,.20);
  --blood: #1a1ae0; --blood-bright: #2828ff; --blood-glow: rgba(26,26,224,.38);
  --border: rgba(220,30,30,.18); --border-bright: rgba(255,40,40,.38);
  --rim: rgba(195,25,25,.13); --line: rgba(165,18,18,.08);
  --green: rgba(0,200,80,.78); --violet: rgba(160,50,230,.80);
  --sidebar-shell: linear-gradient(180deg, rgba(10,10,20,.99), rgba(7,7,15,.99));
  --sidebar-border: rgba(195,25,25,.14);
  --sidebar-active-bg: rgba(232,32,32,.08);
  --sidebar-active-border: rgba(232,32,32,.25);
  --fx-trace-color: rgba(232,32,32,.22); --fx-icegrid-h: rgba(220,30,30,.07);
  --fx-icegrid-v: rgba(26,26,224,.05); --fx-icegrid-opacity: 0.12;
}

:root[data-vc-theme="nintendo_n64"] body::after {
  background-image:
    radial-gradient(ellipse 100% 100% at 50% 50%,
      transparent 42%, rgba(10,10,20,var(--fx-vignette-depth,.72)) 100%);
  background-size: cover;
}
:root[data-vc-theme="nintendo_n64"] body.vc-fx-icegrid-on .result-card::before,
:root[data-vc-theme="nintendo_n64"] body.vc-fx-icegrid-on .lib-card::before {
  background-image:
    linear-gradient(to right, rgba(232,32,32,.07) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(26,26,224,.05) 1px, transparent 1px);
  background-size: 22px 22px;
}
:root[data-vc-theme="nintendo_n64"] .vc-main::before {
  content: "NINTENDO 64 · EXPANSION PAK DETECTED";
  position: fixed; bottom: 8px; right: 14px;
  font-family: var(--font-vhs, monospace); font-size: 7px; letter-spacing: 3px;
  color: rgba(232,32,32,.28); pointer-events: none; z-index: 9999;
}
:root[data-vc-theme="nintendo_n64"] .vc-theme-active {
  border-color: rgba(232,32,32,.62) !important; background: rgba(232,32,32,.08) !important;
}


/* ─────────────────────────────────────────────────────────────────────
   NINTENDO GAMECUBE
   Indigo purple. Lunchbox form. Startup jingle. The purple lunch pail.
   ───────────────────────────────────────────────────────────────────── */
:root[data-vc-theme="nintendo_gc"] {
  --void: #1a0838; --abyss: #220e48; --deep: #2c1460; --chamber: #361a78;
  --altar: #402090; --surface: #4c28aa;
  --text: rgba(230,218,255,.92); --static: rgba(215,200,252,.87);
  --bone: rgba(245,238,255,.96); --fog: rgba(175,140,248,.65);
  --dust: rgba(135,95,225,.50); --muted: rgba(100,65,195,.52);
  --gold: #7040e0; --gold-bright: #9060ff; --gold-pale: rgba(215,195,255,.96);
  --gold-dim: rgba(112,64,224,.52); --gold-glow: rgba(112,64,224,.22);
  --blood: #e060a0; --blood-bright: #ff78b8; --blood-glow: rgba(224,96,160,.35);
  --border: rgba(140,80,240,.18); --border-bright: rgba(168,100,255,.40);
  --rim: rgba(120,65,215,.13); --line: rgba(98,50,185,.08);
  --green: rgba(80,220,160,.78); --violet: rgba(240,100,180,.80);
  --sidebar-shell: linear-gradient(180deg, rgba(26,8,56,.99), rgba(18,5,40,.99));
  --sidebar-border: rgba(120,65,215,.14);
  --sidebar-active-bg: rgba(112,64,224,.08);
  --sidebar-active-border: rgba(112,64,224,.26);
  --fx-trace-color: rgba(112,64,224,.25); --fx-icegrid-h: rgba(140,80,240,.07);
  --fx-icegrid-v: rgba(224,96,160,.05); --fx-icegrid-opacity: 0.12;
}

:root[data-vc-theme="nintendo_gc"] body::after {
  background-image:
    radial-gradient(ellipse 65% 55% at 50% 30%,
      rgba(112,64,224,var(--fx-bloom-intensity,.08)) 0%,
      transparent 70%),
    radial-gradient(ellipse 100% 100% at 50% 50%,
      transparent 42%, rgba(26,8,56,var(--fx-vignette-depth,.72)) 100%);
  background-size: cover;
  animation: vcBloomPulse 6s ease-in-out infinite;
}
:root[data-vc-theme="nintendo_gc"] body.vc-fx-trace-on .vc-shell::after {
  content: "";
  position: fixed; left: 0; right: 0; height: 1.5px;
  background: linear-gradient(180deg,
    rgba(112,64,224,var(--fx-trace-brightness,.28)) 0%,
    rgba(112,64,224,calc(var(--fx-trace-brightness,.28)*0.21)) 100%);
  pointer-events: none; z-index: 9998;
  animation: vcScanCrawl 4s linear infinite;
}
:root[data-vc-theme="nintendo_gc"] .vc-main::before {
  content: "NINTENDO GAMECUBE · SLOT A";
  position: fixed; bottom: 8px; right: 14px;
  font-family: var(--font-vhs, monospace); font-size: 7px; letter-spacing: 3px;
  color: rgba(112,64,224,.30); pointer-events: none; z-index: 9999;
}
:root[data-vc-theme="nintendo_gc"] .vc-theme-active {
  border-color: rgba(112,64,224,.65) !important; background: rgba(112,64,224,.08) !important;
}


/* ─────────────────────────────────────────────────────────────────────
   NINTENDO WII
   White minimalism. Wii Sports stadium. Everyone played.
   ───────────────────────────────────────────────────────────────────── */
:root[data-vc-theme="nintendo_wii"] {
  --void: #f0f0f0; --abyss: #f4f4f4; --deep: #f8f8f8; --chamber: #fafafa;
  --altar: #fcfcfc; --surface: #ffffff;
  --text: rgba(30,30,30,.90); --static: rgba(45,45,45,.84);
  --bone: rgba(15,15,15,.96); --fog: rgba(80,80,80,.63);
  --dust: rgba(110,110,110,.50); --muted: rgba(140,140,140,.55);
  --gold: #c0c0c0; --gold-bright: #d8d8d8; --gold-pale: rgba(15,15,15,.95);
  --gold-dim: rgba(192,192,192,.55); --gold-glow: rgba(192,192,192,.18);
  --blood: #484848; --blood-bright: #606060; --blood-glow: rgba(72,72,72,.35);
  --border: rgba(80,80,80,.16); --border-bright: rgba(100,100,100,.35);
  --rim: rgba(65,65,65,.11); --line: rgba(50,50,50,.07);
  --green: rgba(0,160,80,.78); --violet: rgba(100,100,200,.75);
  --sidebar-shell: linear-gradient(180deg, rgba(232,232,232,.99), rgba(224,224,224,.99));
  --sidebar-border: rgba(65,65,65,.11);
  --sidebar-active-bg: rgba(192,192,192,.10);
  --sidebar-active-border: rgba(80,80,80,.30);
  --fx-trace-color: rgba(80,80,80,.20); --fx-icegrid-h: rgba(80,80,80,.05);
  --fx-icegrid-v: rgba(72,72,72,.04); --fx-icegrid-opacity: 0.07;
}

:root[data-vc-theme="nintendo_wii"] body::after {
  background-image:
    radial-gradient(ellipse 90% 50% at 50% 0%,
      rgba(255,255,255,var(--fx-bloom-intensity,.50)) 0%,
      transparent 60%);
  background-size: cover;
}
:root[data-vc-theme="nintendo_wii"] body.vc-fx-trace-on .vc-shell::after {
  content: "";
  position: fixed; left: 0; right: 0; height: 1px;
  background: linear-gradient(180deg,
    rgba(80,80,80,var(--fx-trace-brightness,.20)) 0%,
    rgba(80,80,80,calc(var(--fx-trace-brightness,.20)*0.2)) 100%);
  pointer-events: none; z-index: 9998;
  animation: vcScanCrawl 5s linear infinite;
}
:root[data-vc-theme="nintendo_wii"] .vc-main::before {
  content: "WII · SENSOR BAR DETECTED · STRAP ATTACHED";
  position: fixed; bottom: 8px; right: 14px;
  font-family: var(--font-vhs, monospace); font-size: 7px; letter-spacing: 3px;
  color: rgba(80,80,80,.28); pointer-events: none; z-index: 9999;
}
:root[data-vc-theme="nintendo_wii"] .vc-theme-active {
  border-color: rgba(80,80,80,.45) !important; background: rgba(80,80,80,.07) !important;
}


/* ─────────────────────────────────────────────────────────────────────
   NINTENDO SWITCH
   Joy-Con red and blue. Dock click. Play anywhere.
   ───────────────────────────────────────────────────────────────────── */
:root[data-vc-theme="nintendo_switch"] {
  --void: #161616; --abyss: #1c1c1c; --deep: #222222; --chamber: #2a2a2a;
  --altar: #323232; --surface: #3c3c3c;
  --text: rgba(240,240,240,.92); --static: rgba(228,228,228,.87);
  --bone: rgba(252,252,252,.96); --fog: rgba(180,180,180,.63);
  --dust: rgba(135,135,135,.50); --muted: rgba(100,100,100,.52);
  --gold: #e82020; --gold-bright: #ff2828; --gold-pale: rgba(255,205,205,.96);
  --gold-dim: rgba(232,32,32,.52); --gold-glow: rgba(232,32,32,.22);
  --blood: #2060e8; --blood-bright: #3878ff; --blood-glow: rgba(32,96,232,.38);
  --border: rgba(220,30,30,.18); --border-bright: rgba(255,40,40,.38);
  --rim: rgba(195,25,25,.13); --line: rgba(165,18,18,.08);
  --green: rgba(0,190,100,.80); --violet: rgba(100,80,220,.80);
  --sidebar-shell: linear-gradient(180deg, rgba(22,22,22,.99), rgba(16,16,16,.99));
  --sidebar-border: rgba(195,25,25,.14);
  --sidebar-active-bg: rgba(232,32,32,.08);
  --sidebar-active-border: rgba(232,32,32,.26);
  --fx-trace-color: rgba(232,32,32,.25); --fx-icegrid-h: rgba(220,30,30,.07);
  --fx-icegrid-v: rgba(32,96,232,.05); --fx-icegrid-opacity: 0.11;
}

/* Dual Joy-Con side strips */
:root[data-vc-theme="nintendo_switch"] .vc-main::before {
  content: "";
  position: fixed; top: 0; bottom: 0; left: 0; width: 4px;
  background: rgba(232,32,32,calc(var(--fx-atmos-opacity,.10)*1.2));
  pointer-events: none; z-index: 9995;
}
:root[data-vc-theme="nintendo_switch"] .vc-main::after {
  content: "";
  position: fixed; top: 0; bottom: 0; right: 0; width: 4px;
  background: rgba(32,96,232,calc(var(--fx-atmos-opacity,.10)*1.2));
  pointer-events: none; z-index: 9995;
}
:root[data-vc-theme="nintendo_switch"] .vc-shell::before {
  content: "";
  position: fixed; inset: 0;
  background: radial-gradient(ellipse 100% 100% at 50% 50%,
    transparent 45%, rgba(22,22,22,var(--fx-vignette-depth,.65)) 100%);
  pointer-events: none; z-index: 9994;
}
:root[data-vc-theme="nintendo_switch"] body.vc-fx-trace-on .vc-shell::after {
  content: "";
  position: fixed; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg,
    rgba(232,32,32,var(--fx-trace-brightness,.25)) 0%,
    rgba(32,96,232,var(--fx-trace-brightness,.25)) 100%);
  pointer-events: none; z-index: 9998;
  animation: vcScanCrawl 3.5s linear infinite;
}
:root[data-vc-theme="nintendo_switch"] body.vc-fx-breach-on .vc-modal-dialog {
  animation: vcShieldPulse 3s ease-in-out infinite;
  box-shadow: 0 0 0 1px rgba(232,32,32,.25), 0 0 0 2px rgba(32,96,232,.15),
              0 0 30px rgba(232,32,32,.08) !important;
}
:root[data-vc-theme="nintendo_switch"] .vc-theme-active {
  border-color: rgba(232,32,32,.65) !important; background: rgba(232,32,32,.08) !important;
}

