/* ============================================================
   themes.css — colour tokens: 5 palettes x 2 schemes (spec 4.2-4.3)
   Selector form has no element prefix so a swatch can scope a
   palette with attributes on itself. Contrast gate:
   tests/contrast.test.mjs. Light blocks: --accent-ink is the palette
   --fg (not --bg), since --bg on a light --accent-vivid cannot reach 4.5:1.
   ============================================================ */

[data-palette="terminal"][data-theme="dark"] {
  --bg:            #0a0a0a;
  --bg-hero:       #0d0d0d;
  --bg-alt:        #131312;
  --bg-card:       #0e0e0d;
  --bg-inset:      #111110;
  --fg:            #f0eee6;
  --fg-dim:        #a3a19a;
  --fg-mute:       #6d6c67;
  --fg-faint:      #4a4945;
  --accent:        #c3ff37;
  --accent-dim:    #8fbb28;
  --accent-glow:   rgba(195, 255, 55, .18);
  --accent-vivid:  #c3ff37;
  --accent-ink:    #0a0a0a;
  --fg-tint:       rgba(240, 238, 230, .028);
  --line:          rgba(240, 238, 230, .09);
  --line-mid:      rgba(240, 238, 230, .14);
  --line-strong:   rgba(240, 238, 230, .24);
  --glyph:         #c3ff37;
  --glyph-alpha-max: .55;
  --glyph-dim:     .08;
  --focus:         #c3ff37;
  --scrim-ink:     #060606;
  --vignette-ink:  #000000;
  --shadow-ink:    #000000;
  --warn:          #ff8a5c;
  --glitch-a:      #ff3c5a;
  --glitch-b:      #3cdcff;
}

[data-palette="terminal"][data-theme="light"] {
  --bg:            #f4f3ee;
  --bg-hero:       #f1f0eb;
  --bg-alt:        #ebeae5;
  --bg-card:       #f0efea;
  --bg-inset:      #edede8;
  --fg:            #141412;
  --fg-dim:        #4f4e48;
  --fg-mute:       #7d7c76;
  --fg-faint:      #b4b3ad;
  --accent:        #3f6b00;
  --accent-dim:    #4e7509;
  --accent-glow:   rgba(0, 0, 0, .08);
  --accent-vivid:  #c3ff37;
  --accent-ink:    #141412;
  --fg-tint:       rgba(20, 20, 18, .04);
  --line:          rgba(20, 20, 18, .10);
  --line-mid:      rgba(20, 20, 18, .16);
  --line-strong:   rgba(20, 20, 18, .30);
  --glyph:         #141412;
  --glyph-alpha-max: .38;
  --glyph-dim:     .08;
  --focus:         #3f6b00;
  --scrim-ink:     #f4f3ee;
  --vignette-ink:  #f1f0eb;
  --shadow-ink:    #000000;
  --warn:          #a8330a;
  --glitch-a:      #ff3c5a;
  --glitch-b:      #3cdcff;
}

[data-palette="phosphor"][data-theme="dark"] {
  --bg:            #0b0906;
  --bg-hero:       #0e0c09;
  --bg-alt:        #14120e;
  --bg-card:       #0f0d0a;
  --bg-inset:      #12100c;
  --fg:            #f3e9d2;
  --fg-dim:        #a8a08c;
  --fg-mute:       #6f6a5d;
  --fg-faint:      #4b4840;
  --accent:        #ffb000;
  --accent-dim:    #bf8300;
  --accent-glow:   rgba(255, 176, 0, .18);
  --accent-vivid:  #ffb000;
  --accent-ink:    #0b0906;
  --fg-tint:       rgba(243, 233, 210, .028);
  --line:          rgba(243, 233, 210, .09);
  --line-mid:      rgba(243, 233, 210, .14);
  --line-strong:   rgba(243, 233, 210, .24);
  --glyph:         #ffb000;
  --glyph-alpha-max: .55;
  --glyph-dim:     .08;
  --focus:         #ffb000;
  --scrim-ink:     #0b0906;
  --vignette-ink:  #000000;
  --shadow-ink:    #000000;
  --warn:          #ff8a5c;
  --glitch-a:      #ff3c5a;
  --glitch-b:      #3cdcff;
}

[data-palette="phosphor"][data-theme="light"] {
  --bg:            #f7f1e3;
  --bg-hero:       #f4eee0;
  --bg-alt:        #eee8da;
  --bg-card:       #f3eddf;
  --bg-inset:      #f0eadc;
  --fg:            #1a1308;
  --fg-dim:        #574b36;
  --fg-mute:       #827a68;
  --fg-faint:      #b9b2a0;
  --accent:        #8a5a00;
  --accent-dim:    #8b6000;
  --accent-glow:   rgba(0, 0, 0, .08);
  --accent-vivid:  #ffb000;
  --accent-ink:    #1a1308;
  --fg-tint:       rgba(26, 19, 8, .04);
  --line:          rgba(26, 19, 8, .10);
  --line-mid:      rgba(26, 19, 8, .16);
  --line-strong:   rgba(26, 19, 8, .30);
  --glyph:         #1a1308;
  --glyph-alpha-max: .38;
  --glyph-dim:     .08;
  --focus:         #8a5a00;
  --scrim-ink:     #f7f1e3;
  --vignette-ink:  #f4eee0;
  --shadow-ink:    #000000;
  --warn:          #a8330a;
  --glitch-a:      #ff3c5a;
  --glitch-b:      #3cdcff;
}

[data-palette="ice"][data-theme="dark"] {
  --bg:            #070b0e;
  --bg-hero:       #0a0e11;
  --bg-alt:        #101417;
  --bg-card:       #0b0f12;
  --bg-inset:      #0e1215;
  --fg:            #e8f3f6;
  --fg-dim:        #9aaeb4;
  --fg-mute:       #617178;
  --fg-faint:      #40494d;
  --accent:        #5ee7ff;
  --accent-dim:    #3fb0c4;
  --accent-glow:   rgba(94, 231, 255, .18);
  --accent-vivid:  #5ee7ff;
  --accent-ink:    #070b0e;
  --fg-tint:       rgba(232, 243, 246, .028);
  --line:          rgba(232, 243, 246, .09);
  --line-mid:      rgba(232, 243, 246, .14);
  --line-strong:   rgba(232, 243, 246, .24);
  --glyph:         #5ee7ff;
  --glyph-alpha-max: .55;
  --glyph-dim:     .08;
  --focus:         #5ee7ff;
  --scrim-ink:     #070b0e;
  --vignette-ink:  #000000;
  --shadow-ink:    #000000;
  --warn:          #ff8a5c;
  --glitch-a:      #ff3c5a;
  --glitch-b:      #3cdcff;
}

[data-palette="ice"][data-theme="light"] {
  --bg:            #eef5f8;
  --bg-hero:       #ebf2f5;
  --bg-alt:        #e5ecef;
  --bg-card:       #eaf1f4;
  --bg-inset:      #e7eef1;
  --fg:            #0b1a20;
  --fg-dim:        #41545b;
  --fg-mute:       #76868c;
  --fg-faint:      #adbabf;
  --accent:        #006b85;
  --accent-dim:    #16748b;
  --accent-glow:   rgba(0, 0, 0, .08);
  --accent-vivid:  #5ee7ff;
  --accent-ink:    #0b1a20;
  --fg-tint:       rgba(11, 26, 32, .04);
  --line:          rgba(11, 26, 32, .10);
  --line-mid:      rgba(11, 26, 32, .16);
  --line-strong:   rgba(11, 26, 32, .30);
  --glyph:         #0b1a20;
  --glyph-alpha-max: .38;
  --glyph-dim:     .08;
  --focus:         #006b85;
  --scrim-ink:     #eef5f8;
  --vignette-ink:  #ebf2f5;
  --shadow-ink:    #000000;
  --warn:          #a8330a;
  --glitch-a:      #ff3c5a;
  --glitch-b:      #3cdcff;
}

[data-palette="signal"][data-theme="dark"] {
  --bg:            #0c070b;
  --bg-hero:       #0f0a0e;
  --bg-alt:        #151014;
  --bg-card:       #100b0f;
  --bg-inset:      #130e12;
  --fg:            #f6e9f2;
  --fg-dim:        #ae9fa9;
  --fg-mute:       #74676f;
  --fg-faint:      #4d4349;
  --accent:        #ff4fd8;
  --accent-dim:    #c74cab;
  --accent-glow:   rgba(255, 79, 216, .18);
  --accent-vivid:  #ff4fd8;
  --accent-ink:    #0c070b;
  --fg-tint:       rgba(246, 233, 242, .028);
  --line:          rgba(246, 233, 242, .09);
  --line-mid:      rgba(246, 233, 242, .14);
  --line-strong:   rgba(246, 233, 242, .24);
  --glyph:         #ff4fd8;
  --glyph-alpha-max: .55;
  --glyph-dim:     .08;
  --focus:         #ff4fd8;
  --scrim-ink:     #0c070b;
  --vignette-ink:  #000000;
  --shadow-ink:    #000000;
  --warn:          #ff8a5c;
  --glitch-a:      #ff3c5a;
  --glitch-b:      #3cdcff;
}

[data-palette="signal"][data-theme="light"] {
  --bg:            #f8eef5;
  --bg-hero:       #f5ebf2;
  --bg-alt:        #efe5ec;
  --bg-card:       #f4eaf1;
  --bg-inset:      #f1e7ee;
  --fg:            #1f0a18;
  --fg-dim:        #5c4553;
  --fg-mute:       #87727f;
  --fg-faint:      #bbaab5;
  --accent:        #a8007a;
  --accent-dim:    #b62d8f;
  --accent-glow:   rgba(0, 0, 0, .08);
  --accent-vivid:  #ff4fd8;
  --accent-ink:    #1f0a18;
  --fg-tint:       rgba(31, 10, 24, .04);
  --line:          rgba(31, 10, 24, .10);
  --line-mid:      rgba(31, 10, 24, .16);
  --line-strong:   rgba(31, 10, 24, .30);
  --glyph:         #1f0a18;
  --glyph-alpha-max: .38;
  --glyph-dim:     .08;
  --focus:         #a8007a;
  --scrim-ink:     #f8eef5;
  --vignette-ink:  #f5ebf2;
  --shadow-ink:    #000000;
  --warn:          #a8330a;
  --glitch-a:      #ff3c5a;
  --glitch-b:      #3cdcff;
}

[data-palette="mono"][data-theme="dark"] {
  --bg:            #000000;
  --bg-hero:       #030303;
  --bg-alt:        #090909;
  --bg-card:       #040404;
  --bg-inset:      #070707;
  --fg:            #ffffff;
  --fg-dim:        #a8a8a8;
  --fg-mute:       #6b6b6b;
  --fg-faint:      #464646;
  --accent:        #ffffff;
  --accent-dim:    #a3a3a3;
  --accent-glow:   rgba(255, 255, 255, .14);
  --accent-vivid:  #ffffff;
  --accent-ink:    #000000;
  --fg-tint:       rgba(255, 255, 255, .028);
  --line:          rgba(255, 255, 255, .09);
  --line-mid:      rgba(255, 255, 255, .14);
  --line-strong:   rgba(255, 255, 255, .24);
  --glyph:         #ffffff;
  --glyph-alpha-max: .55;
  --glyph-dim:     .08;
  --focus:         #ffffff;
  --scrim-ink:     #000000;
  --vignette-ink:  #000000;
  --shadow-ink:    #000000;
  --warn:          #ff8a5c;
  --glitch-a:      #ff3c5a;
  --glitch-b:      #3cdcff;
}

[data-palette="mono"][data-theme="light"] {
  --bg:            #ffffff;
  --bg-hero:       #fcfcfc;
  --bg-alt:        #f6f6f6;
  --bg-card:       #fbfbfb;
  --bg-inset:      #f8f8f8;
  --fg:            #000000;
  --fg-dim:        #4d4d4d;
  --fg-mute:       #7a7a7a;
  --fg-faint:      #b3b3b3;
  --accent:        #000000;
  --accent-dim:    #444444;
  --accent-glow:   rgba(0, 0, 0, .08);
  --accent-vivid:  #000000;
  --accent-ink:    #ffffff;
  --fg-tint:       rgba(0, 0, 0, .04);
  --line:          rgba(0, 0, 0, .10);
  --line-mid:      rgba(0, 0, 0, .16);
  --line-strong:   rgba(0, 0, 0, .30);
  --glyph:         #000000;
  --glyph-alpha-max: .38;
  --glyph-dim:     .08;
  --focus:         #000000;
  --scrim-ink:     #ffffff;
  --vignette-ink:  #fcfcfc;
  --shadow-ink:    #000000;
  --warn:          #a8330a;
  --glitch-a:      #ff3c5a;
  --glitch-b:      #3cdcff;
}

/* no-attribute fallback: identical to terminal/dark */
:root {
  --bg:            #0a0a0a;
  --bg-hero:       #0d0d0d;
  --bg-alt:        #131312;
  --bg-card:       #0e0e0d;
  --bg-inset:      #111110;
  --fg:            #f0eee6;
  --fg-dim:        #a3a19a;
  --fg-mute:       #6d6c67;
  --fg-faint:      #4a4945;
  --accent:        #c3ff37;
  --accent-dim:    #8fbb28;
  --accent-glow:   rgba(195, 255, 55, .18);
  --accent-vivid:  #c3ff37;
  --accent-ink:    #0a0a0a;
  --fg-tint:       rgba(240, 238, 230, .028);
  --line:          rgba(240, 238, 230, .09);
  --line-mid:      rgba(240, 238, 230, .14);
  --line-strong:   rgba(240, 238, 230, .24);
  --glyph:         #c3ff37;
  --glyph-alpha-max: .55;
  --glyph-dim:     .08;
  --focus:         #c3ff37;
  --scrim-ink:     #060606;
  --vignette-ink:  #000000;
  --shadow-ink:    #000000;
  --warn:          #ff8a5c;
  --glitch-a:      #ff3c5a;
  --glitch-b:      #3cdcff;
}

/* grain inverts on paper: dark specks, lower opacity */
[data-theme="light"] .grain { filter: invert(1); opacity: .025; }

/* Sponsor panel (Intentric, #intentric): the guest's own colours, deliberately NOT themed.
   Identical in every palette and scheme; pairs are contrast-tested in tests/contrast.test.mjs. */
:root {
  --brand-bg:     #0b0a09;
  --brand-card:   #131110;
  --brand-fg:     #f4f1ea;
  --brand-dim:    #b4afa5;
  --brand-accent: #ff5a1f;
  --brand-ink:    #0b0a09;
  --brand-line:   rgba(244, 241, 234, .14);
  --brand-glow:   rgba(255, 90, 31, .12);
}
