:root[data-theme="light"] {--void: #f8fafc;--panel: #ffffff;--panel-2: #eef2f6;--ink: #182431;--muted: #465565;--mint: #006c59;--blue: #315a9b;--coral: #9b382b;--line: #c8d1dc;--line-strong: #c8d1dc;color-scheme: light;--ia-0: #174ea6;--ia-1: #663399;--ia-2: #006c68;--ia-3: #982735;--ia-4: #9b4800;--ia-5: #805700;--ia-6: #a12666;--ia-7: #3c4094;--ia-8: #226837;--ia-9: #59651d;--ia-10: #922080;--ia-11: #00677f;--ia-12: #4d5969;--ia-13: #772c69;--ia-14: #205a6d;--ia-15: #79557e;--ia-16: #07633d;--ia-17: #855027;--ia-18: #715132;--ia-19: #375d7b;--ia-20: #794262;--ia-21: #a02e23;--ia-22: #795800;--ia-23: #19634e;--ia-24: #933c27;--ia-25: #2849a3;--ia-26: #7b5323;}
:root[data-theme="dark"] {--void: #070a10;--panel: #0d131d;--panel-2: #111a27;--ink: #f2f5f7;--muted: #b1bfcd;--mint: #7cf7d4;--blue: #8aa7ff;--coral: #ff846f;--line: #526074;--line-strong: #526074;color-scheme: dark;--ia-0: #91b8ff;--ia-1: #c9a2ff;--ia-2: #6be0d5;--ia-3: #ff929d;--ia-4: #ffb36b;--ia-5: #e2c06c;--ia-6: #ff94c9;--ia-7: #a9b1ff;--ia-8: #91dca4;--ia-9: #c3d17a;--ia-10: #e99ddd;--ia-11: #83ddef;--ia-12: #b6c4d5;--ia-13: #dca0cd;--ia-14: #86c8df;--ia-15: #d6addd;--ia-16: #77d5ac;--ia-17: #dfb48f;--ia-18: #ceb99f;--ia-19: #99bfdc;--ia-20: #d6a1bf;--ia-21: #ff9c8f;--ia-22: #ead28c;--ia-23: #97dac5;--ia-24: #eeb09b;--ia-25: #9bb3fa;--ia-26: #d9bf95;}
.dialogue .speaker.ia-0 {color: var(--ia-0);}
.dialogue .speaker.ia-1 {color: var(--ia-1);}
.dialogue .speaker.ia-2 {color: var(--ia-2);}
.dialogue .speaker.ia-3 {color: var(--ia-3);}
.dialogue .speaker.ia-4 {color: var(--ia-4);}
.dialogue .speaker.ia-5 {color: var(--ia-5);}
.dialogue .speaker.ia-6 {color: var(--ia-6);}
.dialogue .speaker.ia-7 {color: var(--ia-7);}
.dialogue .speaker.ia-8 {color: var(--ia-8);}
.dialogue .speaker.ia-9 {color: var(--ia-9);}
.dialogue .speaker.ia-10 {color: var(--ia-10);}
.dialogue .speaker.ia-11 {color: var(--ia-11);}
.dialogue .speaker.ia-12 {color: var(--ia-12);}
.dialogue .speaker.ia-13 {color: var(--ia-13);}
.dialogue .speaker.ia-14 {color: var(--ia-14);}
.dialogue .speaker.ia-15 {color: var(--ia-15);}
.dialogue .speaker.ia-16 {color: var(--ia-16);}
.dialogue .speaker.ia-17 {color: var(--ia-17);}
.dialogue .speaker.ia-18 {color: var(--ia-18);}
.dialogue .speaker.ia-19 {color: var(--ia-19);}
.dialogue .speaker.ia-20 {color: var(--ia-20);}
.dialogue .speaker.ia-21 {color: var(--ia-21);}
.dialogue .speaker.ia-22 {color: var(--ia-22);}
.dialogue .speaker.ia-23 {color: var(--ia-23);}
.dialogue .speaker.ia-24 {color: var(--ia-24);}
.dialogue .speaker.ia-25 {color: var(--ia-25);}
.dialogue .speaker.ia-26 {color: var(--ia-26);}

body { background: var(--void); }
.site-header, .brand-mark, .site-nav, .portal-card, .character-card,
.document-sheet, .document-aside, .character-stub { background: var(--panel); }
.episode-card { background: var(--panel-2); }
.reader-page { background: var(--panel); color: var(--ink); }
.dialogue strong { color: inherit; }
.dialogue h2 { color: var(--ink); border-color: var(--line); }
.reader-note { color: var(--muted); }
.simulation { margin: 1.2rem 0; padding: 1rem; border-left: 2px solid var(--line);
  font-family: ui-monospace, monospace; font-size: .95em; }
.simulation p { white-space: pre-line; }
.theme-toggle { min-height: 44px; padding: .6rem .8rem; border: 1px solid var(--line-strong);
  border-radius: .7rem; background: var(--panel); color: var(--ink); font: inherit; cursor: pointer; }
.theme-toggle:focus-visible { outline: 2px solid var(--mint); outline-offset: 4px; }
@media (max-width: 650px) {
  .site-header { flex-wrap: wrap; gap: .4rem; padding: .4rem 0; }
  .theme-toggle { margin-left: auto; }
}
