/* VIDEOCCULT — Shared Theme Core (colors)
   ═══════════════════════════════════════════════════════════════════════
   Single source of truth for the 8 base themes' color/FX token overrides,
   loaded by BOTH the main site (css/main.css) and Games
   (games/videoccult-games.css). Extracted 2026-08-22 from two
   independently-drifting copies -- see js/theme-core.js for the matching
   catalog/apply-engine consolidation and the rationale.

   Games' own per-theme picker-card component CSS (.vc-theme-card etc.) and
   the main site's own .card/.settings-section/.nav-logo/.sidebar-item
   per-theme polish are intentionally NOT here -- those reach into each
   app's own distinct DOM/component vocabulary and stay local to each app's
   own stylesheet. This file only carries token VALUES (custom properties),
   which both apps already consume under the identical names.

   Games layers its own achievement-gated expansion themes on top via
   vcRegisterTheme's cssVars injection (see games/videoccult-games.js) --
   those stay in games/videoccult-games.css, not here.
   ═══════════════════════════════════════════════════════════════════════ */
@layer themes {

/* ── 4.0  Videoccult (default) — no overrides needed ── */
:root[data-vc-theme="videoccult"] { }


/* ── 4.1  Netrunner — clean cyan HUD, data-glass, trace lines ── */
:root[data-vc-theme="netrunner"] {
  --void:          #05070c;
  --abyss:         #080b14;
  --chamber:       #0b1120;
  --deep:          #080b14;
  --altar:         #0b1120;
  --surface:       #101a2c;

  --text:          rgba(236,248,255,.92);
  --static:        rgba(236,248,255,.90);
  --fog:           rgba(184,210,235,.55);
  --dust:          rgba(184,210,235,.38);

  /* Gold slot → cyan */
  --gold:          #00f0ff;
  --gold-pale:     rgba(220,252,255,.92);
  --gold-dim:      rgba(0,240,255,.55);
  --gold-glow:     rgba(0,240,255,.20);

  /* Blood slot → hot red alert */
  --blood:         #ff2a3d;
  --blood-bright:  #ff5a67;

  --border:        rgba(0,240,255,.16);
  --border-bright: rgba(0,240,255,.40);
  --rim:           rgba(0,240,255,.18);
  --line:          rgba(0,240,255,.10);

  /* Named Netrunner palette */
  --nr-cyan:    #00f0ff;
  --nr-blue:    #2c7bff;
  --nr-violet:  #7b2cff;
  --nr-red:     #ff2a3d;

  /* FX colours */
  --fx-trace-color:     rgba(0,240,255,.22);
  --fx-icegrid-h:       rgba(0,240,255,.07);
  --fx-icegrid-v:       rgba(0,240,255,.05);
  --fx-icegrid-opacity: 0.14;
}


/* ── 4.2  Blackwall — arterial red, corrupted void, daemon static ── */
:root[data-vc-theme="blackwall"] {
  --void:          #07040a;
  --abyss:         #0e0508;
  --chamber:       #160a0c;
  --deep:          #0e0508;
  --altar:         #160a0c;
  --surface:       #200b0e;
  --bg:            #07040a;
  --bg2:           #0e0508;
  --panel:         #160a0c;
  --panel2:        #1c0c0f;

  --text:          rgba(255,228,228,.92);
  --static:        rgba(255,220,220,.88);
  --fog:           rgba(255,160,160,.50);
  --dust:          rgba(255,130,130,.32);

  /* Gold slot → hot arterial red */
  --gold:          #ff1f35;
  --gold-pale:     rgba(255,200,200,.94);
  --gold-dim:      rgba(255,31,53,.55);
  --gold-glow:     rgba(255,31,53,.28);

  /* Blood slot → corrupted violet */
  --blood:         #9b30ff;
  --blood-bright:  #c466ff;

  --border:        rgba(255,31,53,.20);
  --border-bright: rgba(255,31,53,.55);
  --rim:           rgba(255,31,53,.22);
  --line:          rgba(255,31,53,.14);

  /* Named Blackwall palette */
  --bw-red:    #ff1f35;
  --bw-violet: #9b30ff;
  --bw-cyan:   #00f0ff;

  /* Convenience aliases */
  --accent:     var(--bw-red);
  --accent-dim: rgba(255,31,53,.18);

  /* FX colours */
  --fx-trace-color:     rgba(255,31,53,.24);
  --fx-icegrid-h:       rgba(255,31,53,.08);
  --fx-icegrid-v:       rgba(155,48,255,.06);
  --fx-icegrid-opacity: 0.12;
}


/* ── 4.3  Witch — velvet violets, moonlit spellcraft ── */
:root[data-vc-theme="witch"] {
  --void:          #0c0714;
  --abyss:         #100918;
  --chamber:       #1b1029;
  --deep:          #140b1f;
  --altar:         #1b1029;
  --surface:       #241535;

  --text:          #efe6f8;
  --bone:          #f2eaf9;

  --gold:          #b78cff;
  --gold-pale:     #f3eaff;
  --gold-dim:      rgba(183,140,255,.55);
  --gold-glow:     rgba(183,140,255,.20);

  --blood:         #5b246f;
  --blood-bright:  #8e44ad;

  --rim:           rgba(183,140,255,.28);
  --border:        rgba(172,134,255,.16);
  --border-bright: rgba(172,134,255,.40);

  --fx-trace-color:     rgba(172,134,255,.20);
  --fx-icegrid-h:       rgba(172,134,255,.06);
  --fx-icegrid-v:       rgba(127,74,182,.05);
  --fx-icegrid-opacity: 0.12;
}


/* ── 4.4  Lovecraft — briny ink, sea-glass sigils, eldritch archive ── */
:root[data-vc-theme="lovecraft"] {
  --void:          #071014;
  --abyss:         #0b1a20;
  --chamber:       #0f2228;
  --deep:          #0b1a20;
  --altar:         #0f2228;
  --surface:       #142e38;

  --text:          #d6e6de;
  --static:        #d6e6de;
  --bone:          #dbe8e2;

  --gold:          #8fb6a5;
  --gold-pale:     #d5efe5;
  --gold-dim:      rgba(143,182,165,.55);
  --gold-glow:     rgba(143,182,165,.20);

  --blood:         #153a38;
  --blood-bright:  #2c6b68;

  --rim:           rgba(143,182,165,.28);
  --border:        rgba(90,138,136,.20);
  --border-bright: rgba(90,138,136,.40);

  --fx-trace-color:     rgba(90,138,136,.22);
  --fx-icegrid-h:       rgba(90,138,136,.07);
  --fx-icegrid-v:       rgba(32,54,59,.05);
  --fx-icegrid-opacity: 0.13;
}


/* ── 4.5  Dark Academia — candlelit vellum, oak desks, annotations ── */
:root[data-vc-theme="dark_academia"] {
  --void:          #120d0a;
  --abyss:         #1a1410;
  --chamber:       #231b15;
  --deep:          #1a1410;
  --altar:         #231b15;
  --surface:       #2e2219;

  --text:          #efe3cf;
  --bone:          #f3e8d6;

  --gold:          #b98b55;
  --gold-pale:     #f0ddbf;
  --gold-dim:      rgba(185,139,85,.55);
  --gold-glow:     rgba(185,139,85,.20);

  --blood:         #5a2e21;
  --blood-bright:  #85412f;

  --rim:           rgba(185,139,85,.26);
  --border:        rgba(188,148,96,.20);
  --border-bright: rgba(188,148,96,.44);

  --nav-shell:         linear-gradient(180deg, rgba(27,22,18,.96), rgba(22,18,15,.95));
  --nav-border:        rgba(201,164,112,.18);
  --sidebar-shell:     linear-gradient(180deg, rgba(24,20,16,.98), rgba(18,15,12,.98));
  --sidebar-border:    rgba(201,164,112,.14);
  --nav-active-bg:     rgba(201,164,112,.08);
  --nav-active-border: rgba(201,164,112,.20);
  --sidebar-active-bg:     rgba(201,164,112,.08);
  --sidebar-active-border: rgba(201,164,112,.20);

  --fx-trace-color:     rgba(188,148,96,.18);
  --fx-icegrid-h:       rgba(188,148,96,.05);
  --fx-icegrid-v:       rgba(141,90,67,.04);
  --fx-icegrid-opacity: 0.11;
}


/* ── 4.6  Light Academia — sunlit papers, linen margins, scholastic calm ── */
:root[data-vc-theme="light_academia"] {
  --void:          #ede6da;
  --abyss:         #e8dfcf;
  --chamber:       #f4eee2;
  --deep:          #e8dfcf;
  --altar:         #f4eee2;
  --surface:       #f9f5ee;
  --bg:            #ede6da;
  --bg2:           #e8dfcf;
  --panel:         #f4eee2;
  --panel2:        #f9f5ee;

  /* static/fog/dust/gold below are dark-on-light fixes (contrast-audit
     values from the main site's copy of this theme -- --static on --void
     measured 1.86:1 / WCAG AA fail before this fix). --gold-pale is
     deliberately left UNSET here (falls back to the base dark-theme
     value): flipping it light was tried and reverted -- it's used as text
     on ~85 badges/buttons that have their own fixed-dark background (e.g.
     .btn-ritual), so a light --gold-pale made THOSE illegible even though
     it fixed the one light-card surface it was targeting. Same reasoning
     applies to --gold-dim/--gold-glow (also left unset). */
  --text:          #2b2218;
  --static:        #2b2218;
  --bone:          #33291e;
  --fog:           #6b5a44;
  --dust:          #5c4c3a;

  --gold:          #7a5830;

  --blood:         #8a4c3c;
  --blood-bright:  #a55c49;

  --rim:           rgba(142,106,61,.25);
  --border:        rgba(156,126,87,.20);
  --border-bright: rgba(156,126,87,.44);

  --nav-shell:         linear-gradient(180deg, rgba(243,239,228,.96), rgba(236,231,217,.94));
  --nav-border:        rgba(145,115,84,.20);
  --sidebar-shell:     linear-gradient(180deg, rgba(241,236,224,.98), rgba(232,226,212,.98));
  --sidebar-border:    rgba(145,115,84,.16);
  --nav-active-bg:     rgba(145,115,84,.08);
  --nav-active-border: rgba(145,115,84,.20);
  --sidebar-active-bg:     rgba(145,115,84,.08);
  --sidebar-active-border: rgba(145,115,84,.20);
}

/* Light Academia nav text overrides -- main-site .nav-logo/.sidebar-item
   chrome only; Games has entirely different nav/sidebar DOM and never
   matches these selectors, so keeping them here (rather than duplicating
   between two files) is harmless either way. Left alongside their theme's
   token block since they're part of the same visual concern. */
:root[data-vc-theme="light_academia"] .nav-logo                       { color: #6c5032 !important; text-shadow: none !important; }
:root[data-vc-theme="light_academia"] .nav-logo .sigil                { color: #9f6a47 !important; }
:root[data-vc-theme="light_academia"] .nav-links a,
:root[data-vc-theme="light_academia"] .nav-right span,
:root[data-vc-theme="light_academia"] .sidebar-item,
:root[data-vc-theme="light_academia"] .sidebar-section-label          { color: rgba(56,44,32,.78) !important; }
:root[data-vc-theme="light_academia"] .nav-links a:hover,
:root[data-vc-theme="light_academia"] .nav-links a.active,
:root[data-vc-theme="light_academia"] .sidebar-item:hover,
:root[data-vc-theme="light_academia"] .sidebar-item.active            { color: #5a4126 !important; }
:root[data-vc-theme="light_academia"] .sidebar-group-icon {
  background:   rgba(255,250,242,.75) !important;
  border-color: rgba(145,115,84,.20) !important;
  color:        #6c5032 !important;
}


/* ── 4.7  Hedgerow Witch — moss paths, dried herbs, soft hedge-magic ── */
:root[data-vc-theme="hedgerow"] {
  --void:          #f2eee5;
  --abyss:         #ebe5d8;
  --chamber:       #f6f2ea;
  --deep:          #ebe5d8;
  --altar:         #f6f2ea;
  --surface:       #faf8f3;
  --bg:            #f2eee5;
  --bg2:           #ebe5d8;
  --panel:         #f6f2ea;
  --panel2:        #faf8f3;

  /* Same dark-on-light contrast fix as light_academia above (--static on
     --void measured 1.99:1) -- --gold-pale/--gold-dim/--gold-glow
     deliberately left unset for the same reason (see light_academia). */
  --text:          #2e342d;
  --static:        #2e342d;
  --bone:          #3a4038;
  --fog:           #5a5e4e;
  --dust:          #4d5142;

  --gold:          #54604c;

  --blood:         #a07a84;
  --blood-bright:  #b28c96;

  --rim:           rgba(126,143,116,.22);
  --border:        rgba(144,166,127,.20);
  --border-bright: rgba(144,166,127,.44);

  --nav-shell:         radial-gradient(90% 180% at 10% 0%, rgba(120,153,112,.10), transparent 60%), linear-gradient(180deg, rgba(21,27,21,.96), rgba(15,20,16,.95));
  --nav-border:        rgba(164,186,146,.18);
  --sidebar-shell:     radial-gradient(120% 140% at 10% 0%, rgba(120,153,112,.08), transparent 60%), linear-gradient(180deg, rgba(17,23,18,.98), rgba(12,16,13,.98));
  --sidebar-border:    rgba(164,186,146,.14);
  --nav-active-bg:     rgba(164,186,146,.07);
  --nav-active-border: rgba(164,186,146,.18);
  --sidebar-active-bg:     rgba(164,186,146,.07);
  --sidebar-active-border: rgba(164,186,146,.18);

  --settings-shell-bg:     radial-gradient(120% 120% at 12% 8%, rgba(138,167,120,.07), transparent 55%), linear-gradient(180deg, rgba(17,22,16,.94), rgba(11,15,13,.94));
  --settings-shell-border: rgba(164,186,146,.20);

  --fx-trace-color:     rgba(144,166,127,.20);
  --fx-icegrid-h:       rgba(144,166,127,.06);
  --fx-icegrid-v:       rgba(120,153,112,.04);
  --fx-icegrid-opacity: 0.12;
}

:root[data-vc-theme="light_academia"] body,
:root[data-vc-theme="hedgerow"]       body { color: var(--text); }

} /* @layer themes */
