/*
 * Fatum theme palettes and decor. GENERATED - do not edit.
 *
 * Source of truth: Infrastructure/FatumThemeCatalogue.cs (the 8 authored values per
 * palette), Infrastructure/FatumThemeTokens.cs (the 18 derived ones: 15 colours and
 * 3 shadows, cast with the theme's shadow recipe) and Infrastructure/FatumThemeDecor.cs
 * (the --fatum-* decor tokens).
 * Regenerate with UPDATE_FATUM_THEMES=1 on FatumThemeCatalogueTests.
 *
 * themes.md section 3. Status colours are deliberately absent: they are the
 * site's own sets and no theme may redefine them (section 3.3).
 *
 * Four themes open on their DARK palette when the reader has not chosen a mode
 * (themes.md section 1). That default is the page's, not this sheet's: the play page
 * stamps html[data-dark-mode="true"] for them, so the site's own tokens follow the book.
 */

/* ── parchment ─────────────────────────────────────────────────── */

[data-fatum-theme="parchment"]:not([data-preview-mode]),
[data-fatum-theme="parchment"][data-preview-mode="light"],
[data-fatum-theme="parchment"][data-preview-mode="default"] {
  --color-surface-page: #f6f1e8;
  --color-surface-card: #ffffff;
  --color-line: #d3c4a9;
  --color-line-control: #887966;
  --color-ink-primary: #2a160c;
  --color-ink-secondary: #5a4d3e;
  --color-accent: #9c7d3a;
  --color-brand: #c9af6a;
  --color-surface-secondary: #ede7de;
  --color-surface-hover: #e6e0d6;
  --color-surface-muted: #e0d8cf;
  --color-line-strong: #b7a78f;
  --color-ink-muted: #615446;
  --color-ink-inverse: #ffffff;
  --color-accent-hover: #7d5b2b;
  --color-brand-light: #dccb9f;
  --color-accent-wash: rgba(201, 175, 106, 0.12);
  --color-action-primary: #7d5b2b;
  --color-action-primary-hover: #5f4326;
  --color-action-primary-foreground: #ffffff;
  --color-link: #7d5b2b;
  --color-link-hover: #2a160c;
  --color-focus: #9c7d3a;
  --shadow-sm: 0 1px 2px rgba(42, 22, 12, 0.08);
  --shadow-md: 0 2px 8px rgba(42, 22, 12, 0.12);
  --shadow-lg: 0 8px 24px rgba(42, 22, 12, 0.16);
  --fatum-mode: light;
  --fatum-rule-ink: var(--color-line);
  --fatum-rule-glow: none;
  --fatum-ornament-glow: none;
  --fatum-mark-glow: none;
  --fatum-room: initial;
}

html[data-dark-mode="true"] [data-fatum-theme="parchment"]:not([data-preview-mode]),
[data-fatum-theme="parchment"][data-preview-mode="dark"] {
  --color-surface-page: #17120e;
  --color-surface-card: #221b15;
  --color-line: #493b2d;
  --color-line-control: #8d7a63;
  --color-ink-primary: #f2e9dc;
  --color-ink-secondary: #c6b6a0;
  --color-accent: #d8b45e;
  --color-brand: #9c7d3a;
  --color-surface-secondary: #1e1914;
  --color-surface-hover: #231e19;
  --color-surface-muted: #29231e;
  --color-line-strong: #605244;
  --color-ink-muted: #bcad98;
  --color-ink-inverse: #17120e;
  --color-accent-hover: #d8b45e;
  --color-brand-light: #6e582e;
  --color-accent-wash: rgba(156, 125, 58, 0.12);
  --color-action-primary: #d8b45e;
  --color-action-primary-hover: #e9c56f;
  --color-action-primary-foreground: #17120e;
  --color-link: #d8b45e;
  --color-link-hover: #f2e9dc;
  --color-focus: #d8b45e;
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4);
  --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.55);
  --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.7);
  --fatum-mode: dark;
  --fatum-rule-ink: var(--color-line);
  --fatum-rule-glow: none;
  --fatum-ornament-glow: none;
  --fatum-mark-glow: none;
  --fatum-room: initial;
}

html[data-contrast="high"] [data-fatum-theme="parchment"]:not([data-preview-mode]),
[data-fatum-theme="parchment"][data-preview-mode="contrast"] {
  --color-surface-page: #fffdf8;
  --color-surface-card: #fffdf8;
  --color-line: #5a4a2e;
  --color-line-control: #4a3c24;
  --color-ink-primary: #000000;
  --color-ink-secondary: #3d3226;
  --color-accent: #4a3505;
  --color-brand: #8a6a1f;
  --color-surface-secondary: #f2f0eb;
  --color-surface-hover: #e8e6e1;
  --color-surface-muted: #dedcd8;
  --color-line-strong: #473a23;
  --color-ink-muted: #453b2f;
  --color-ink-inverse: #fffdf8;
  --color-accent-hover: #4a3505;
  --color-brand-light: #b29c6f;
  --color-accent-wash: rgba(138, 106, 31, 0.12);
  --color-action-primary: #4a3505;
  --color-action-primary-hover: #3c2800;
  --color-action-primary-foreground: #fffdf8;
  --color-link: #4a3505;
  --color-link-hover: #000000;
  --color-focus: #4a3505;
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.08);
  --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.12);
  --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.16);
  --fatum-mode: light;
  --fatum-rule-ink: var(--color-line);
  --fatum-rule-glow: none;
  --fatum-ornament-glow: none;
  --fatum-mark-glow: none;
  --fatum-room: initial;
}

html[data-dark-mode="true"][data-contrast="high"] [data-fatum-theme="parchment"]:not([data-preview-mode]),
[data-fatum-theme="parchment"][data-preview-mode="contrast-dark"] {
  --color-surface-page: #0a0806;
  --color-surface-card: #0a0806;
  --color-line: #c9b48c;
  --color-line-control: #d8c7a6;
  --color-ink-primary: #ffffff;
  --color-ink-secondary: #ded2be;
  --color-accent: #ffd76a;
  --color-brand: #e5b860;
  --color-surface-secondary: #110f0d;
  --color-surface-hover: #171512;
  --color-surface-muted: #1d1b18;
  --color-line-strong: #d1bf9d;
  --color-ink-muted: #d2c6b3;
  --color-ink-inverse: #0a0806;
  --color-accent-hover: #ffd76a;
  --color-brand-light: #8f733e;
  --color-accent-wash: rgba(229, 184, 96, 0.12);
  --color-action-primary: #ffd76a;
  --color-action-primary-hover: #ffef82;
  --color-action-primary-foreground: #0a0806;
  --color-link: #ffd76a;
  --color-link-hover: #ffffff;
  --color-focus: #ffd76a;
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4);
  --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.55);
  --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.7);
  --fatum-mode: dark;
  --fatum-rule-ink: var(--color-line);
  --fatum-rule-glow: none;
  --fatum-ornament-glow: none;
  --fatum-mark-glow: none;
  --fatum-room: initial;
}

/* ── dark-fantasy ─────────────────────────────────────────────────── */

[data-fatum-theme="dark-fantasy"]:not([data-preview-mode]),
[data-fatum-theme="dark-fantasy"][data-preview-mode="light"] {
  --color-surface-page: #f1eef0;
  --color-surface-card: #ffffff;
  --color-line: #d7ccd0;
  --color-line-control: #7e6f75;
  --color-ink-primary: #1c1418;
  --color-ink-secondary: #5e5158;
  --color-accent: #7a6234;
  --color-brand: #c8302a;
  --color-surface-secondary: #e7e4e6;
  --color-surface-hover: #e0dddf;
  --color-surface-muted: #d9d5d7;
  --color-line-strong: #b8adb1;
  --color-ink-muted: #65585f;
  --color-ink-inverse: #ffffff;
  --color-accent-hover: #755d2f;
  --color-brand-light: #e38175;
  --color-accent-wash: rgba(200, 48, 42, 0.12);
  --color-action-primary: #755d2f;
  --color-action-primary-hover: #674f21;
  --color-action-primary-foreground: #ffffff;
  --color-link: #755d2f;
  --color-link-hover: #1c1418;
  --color-focus: #7a6234;
  --shadow-sm: 0 1px 3px rgba(28, 20, 24, 0.18);
  --shadow-md: 0 10px 26px rgba(28, 20, 24, 0.22);
  --shadow-lg: 0 18px 44px rgba(28, 20, 24, 0.28);
  --fatum-mode: light;
  --fatum-rule-ink: var(--color-line-strong);
  --fatum-rule-glow: none;
  --fatum-ornament-glow: none;
  --fatum-mark-glow: none;
  --fatum-room: radial-gradient(ellipse 60% 55% at 50% 38%, #f1eef0 0%, #f1eef0 58%, #d9d5d7 100%);
}

html[data-dark-mode="true"] [data-fatum-theme="dark-fantasy"]:not([data-preview-mode]),
[data-fatum-theme="dark-fantasy"][data-preview-mode="dark"],
[data-fatum-theme="dark-fantasy"][data-preview-mode="default"] {
  --color-surface-page: #110f12;
  --color-surface-card: #1b181d;
  --color-line: #3b353f;
  --color-line-control: #8a8291;
  --color-ink-primary: #ece7ea;
  --color-ink-secondary: #b6adb4;
  --color-accent: #cfae63;
  --color-brand: #8a2f2a;
  --color-surface-secondary: #181619;
  --color-surface-hover: #1d1b1e;
  --color-surface-muted: #232023;
  --color-line-strong: #534d56;
  --color-ink-muted: #ada4ab;
  --color-ink-inverse: #110f12;
  --color-accent-hover: #cfae63;
  --color-brand-light: #612927;
  --color-accent-wash: rgba(138, 47, 42, 0.12);
  --color-action-primary: #cfae63;
  --color-action-primary-hover: #e0bf73;
  --color-action-primary-foreground: #110f12;
  --color-link: #cfae63;
  --color-link-hover: #ece7ea;
  --color-focus: #cfae63;
  --shadow-sm: 0 2px 5px rgba(0, 0, 0, 0.6);
  --shadow-md: 0 12px 30px rgba(0, 0, 0, 0.72);
  --shadow-lg: 0 20px 50px rgba(0, 0, 0, 0.85);
  --fatum-mode: dark;
  --fatum-rule-ink: var(--color-line-strong);
  --fatum-rule-glow: none;
  --fatum-ornament-glow: none;
  --fatum-mark-glow: none;
  --fatum-room: radial-gradient(ellipse 60% 55% at 50% 38%, #110f12 0%, #110f12 58%, #080708 100%);
}

html[data-contrast="high"] [data-fatum-theme="dark-fantasy"]:not([data-preview-mode]),
[data-fatum-theme="dark-fantasy"][data-preview-mode="contrast"] {
  --color-surface-page: #fdfbfc;
  --color-surface-card: #fdfbfc;
  --color-line: #5c4c54;
  --color-line-control: #4a3c43;
  --color-ink-primary: #000000;
  --color-ink-secondary: #3f333a;
  --color-accent: #3f3016;
  --color-brand: #8c1c18;
  --color-surface-secondary: #f0eeef;
  --color-surface-hover: #e6e4e5;
  --color-surface-muted: #dcdadb;
  --color-line-strong: #493b42;
  --color-ink-muted: #473c42;
  --color-ink-inverse: #fdfbfc;
  --color-accent-hover: #3f3016;
  --color-brand-light: #b96e65;
  --color-accent-wash: rgba(140, 28, 24, 0.12);
  --color-action-primary: #3f3016;
  --color-action-primary-hover: #322409;
  --color-action-primary-foreground: #fdfbfc;
  --color-link: #3f3016;
  --color-link-hover: #000000;
  --color-focus: #3f3016;
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.08);
  --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.12);
  --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.16);
  --fatum-mode: light;
  --fatum-rule-ink: var(--color-line-strong);
  --fatum-rule-glow: none;
  --fatum-ornament-glow: none;
  --fatum-mark-glow: none;
  --fatum-room: initial;
}

html[data-dark-mode="true"][data-contrast="high"] [data-fatum-theme="dark-fantasy"]:not([data-preview-mode]),
[data-fatum-theme="dark-fantasy"][data-preview-mode="contrast-dark"] {
  --color-surface-page: #08070a;
  --color-surface-card: #08070a;
  --color-line: #c8bcc4;
  --color-line-control: #d6ccd2;
  --color-ink-primary: #ffffff;
  --color-ink-secondary: #ded4da;
  --color-accent: #f0cf84;
  --color-brand: #e0524c;
  --color-surface-secondary: #0f0e11;
  --color-surface-hover: #151417;
  --color-surface-muted: #1b1a1d;
  --color-line-strong: #d0c6cd;
  --color-ink-muted: #d2c8ce;
  --color-ink-inverse: #08070a;
  --color-accent-hover: #f0cf84;
  --color-brand-light: #8c3734;
  --color-accent-wash: rgba(224, 82, 76, 0.12);
  --color-action-primary: #f0cf84;
  --color-action-primary-hover: #ffe195;
  --color-action-primary-foreground: #08070a;
  --color-link: #f0cf84;
  --color-link-hover: #ffffff;
  --color-focus: #f0cf84;
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4);
  --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.55);
  --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.7);
  --fatum-mode: dark;
  --fatum-rule-ink: var(--color-line-strong);
  --fatum-rule-glow: none;
  --fatum-ornament-glow: none;
  --fatum-mark-glow: none;
  --fatum-room: initial;
}

/* ── case-file ─────────────────────────────────────────────────── */

[data-fatum-theme="case-file"]:not([data-preview-mode]),
[data-fatum-theme="case-file"][data-preview-mode="light"],
[data-fatum-theme="case-file"][data-preview-mode="default"] {
  --color-surface-page: #f2f4f7;
  --color-surface-card: #ffffff;
  --color-line: #d3dae3;
  --color-line-control: #6c7885;
  --color-ink-primary: #14181f;
  --color-ink-secondary: #4d5866;
  --color-accent: #1f5fa8;
  --color-brand: #7ea6d8;
  --color-surface-secondary: #e8eaed;
  --color-surface-hover: #e0e2e6;
  --color-surface-muted: #d9dbdf;
  --color-line-strong: #b3b9c2;
  --color-ink-muted: #545f6d;
  --color-ink-inverse: #ffffff;
  --color-accent-hover: #1f5fa8;
  --color-brand-light: #aac5e6;
  --color-accent-wash: rgba(126, 166, 216, 0.12);
  --color-action-primary: #1f5fa8;
  --color-action-primary-hover: #0b5098;
  --color-action-primary-foreground: #ffffff;
  --color-link: #1f5fa8;
  --color-link-hover: #14181f;
  --color-focus: #1f5fa8;
  --shadow-sm: 2px 2px 0 0 #b3b9c2;
  --shadow-md: 5px 5px 0 -1px #ffffff, 5px 5px 0 0 #b3b9c2, 10px 10px 0 -1px #ffffff, 10px 10px 0 0 #d3dae3;
  --shadow-lg: 6px 6px 0 -1px #ffffff, 6px 6px 0 0 #b3b9c2;
  --fatum-mode: light;
  --fatum-rule-ink: var(--color-line);
  --fatum-rule-glow: none;
  --fatum-ornament-glow: none;
  --fatum-mark-glow: none;
  --fatum-room: conic-gradient(from 90deg at 1px 1px, transparent 90deg, rgba(211, 218, 227, 0.6) 0deg) 0 0 / 24px 24px;
}

html[data-dark-mode="true"] [data-fatum-theme="case-file"]:not([data-preview-mode]),
[data-fatum-theme="case-file"][data-preview-mode="dark"] {
  --color-surface-page: #0f131a;
  --color-surface-card: #182029;
  --color-line: #33404f;
  --color-line-control: #7f8fa1;
  --color-ink-primary: #e6ecf3;
  --color-ink-secondary: #a8b6c6;
  --color-accent: #6fa8e6;
  --color-brand: #2a4a70;
  --color-surface-secondary: #161a21;
  --color-surface-hover: #1b1f26;
  --color-surface-muted: #20252c;
  --color-line-strong: #4b5766;
  --color-ink-muted: #9fadbc;
  --color-ink-inverse: #0f131a;
  --color-accent-hover: #6fa8e6;
  --color-brand-light: #243b56;
  --color-accent-wash: rgba(42, 74, 112, 0.12);
  --color-action-primary: #6fa8e6;
  --color-action-primary-hover: #7fb9f8;
  --color-action-primary-foreground: #0f131a;
  --color-link: #6fa8e6;
  --color-link-hover: #e6ecf3;
  --color-focus: #6fa8e6;
  --shadow-sm: 2px 2px 0 0 #4b5766;
  --shadow-md: 5px 5px 0 -1px #182029, 5px 5px 0 0 #4b5766, 10px 10px 0 -1px #182029, 10px 10px 0 0 #33404f;
  --shadow-lg: 6px 6px 0 -1px #182029, 6px 6px 0 0 #4b5766;
  --fatum-mode: dark;
  --fatum-rule-ink: var(--color-line);
  --fatum-rule-glow: none;
  --fatum-ornament-glow: none;
  --fatum-mark-glow: none;
  --fatum-room: conic-gradient(from 90deg at 1px 1px, transparent 90deg, rgba(51, 64, 79, 0.4) 0deg) 0 0 / 24px 24px;
}

html[data-contrast="high"] [data-fatum-theme="case-file"]:not([data-preview-mode]),
[data-fatum-theme="case-file"][data-preview-mode="contrast"] {
  --color-surface-page: #fafcff;
  --color-surface-card: #fafcff;
  --color-line: #3f4d5c;
  --color-line-control: #35424f;
  --color-ink-primary: #000000;
  --color-ink-secondary: #2e3944;
  --color-accent: #0a3a70;
  --color-brand: #1f5fa8;
  --color-surface-secondary: #edeff2;
  --color-surface-hover: #e3e5e8;
  --color-surface-muted: #d9dbde;
  --color-line-strong: #313c49;
  --color-ink-muted: #37414c;
  --color-ink-inverse: #fafcff;
  --color-accent-hover: #0a3a70;
  --color-brand-light: #6d95c8;
  --color-accent-wash: rgba(31, 95, 168, 0.12);
  --color-action-primary: #0a3a70;
  --color-action-primary-hover: #002c60;
  --color-action-primary-foreground: #fafcff;
  --color-link: #0a3a70;
  --color-link-hover: #000000;
  --color-focus: #0a3a70;
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.08);
  --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.12);
  --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.16);
  --fatum-mode: light;
  --fatum-rule-ink: var(--color-line);
  --fatum-rule-glow: none;
  --fatum-ornament-glow: none;
  --fatum-mark-glow: none;
  --fatum-room: initial;
}

html[data-dark-mode="true"][data-contrast="high"] [data-fatum-theme="case-file"]:not([data-preview-mode]),
[data-fatum-theme="case-file"][data-preview-mode="contrast-dark"] {
  --color-surface-page: #05080c;
  --color-surface-card: #05080c;
  --color-line: #b4c4d4;
  --color-line-control: #c6d4e0;
  --color-ink-primary: #ffffff;
  --color-ink-secondary: #d2dde6;
  --color-accent: #9ecbff;
  --color-brand: #6fa8e6;
  --color-surface-secondary: #0b0f13;
  --color-surface-hover: #111519;
  --color-surface-muted: #171b1f;
  --color-line-strong: #bfcdda;
  --color-ink-muted: #c6d1d9;
  --color-ink-inverse: #05080c;
  --color-accent-hover: #9ecbff;
  --color-brand-light: #466a91;
  --color-accent-wash: rgba(111, 168, 230, 0.12);
  --color-action-primary: #9ecbff;
  --color-action-primary-hover: #b0deff;
  --color-action-primary-foreground: #05080c;
  --color-link: #9ecbff;
  --color-link-hover: #ffffff;
  --color-focus: #9ecbff;
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4);
  --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.55);
  --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.7);
  --fatum-mode: dark;
  --fatum-rule-ink: var(--color-line);
  --fatum-rule-glow: none;
  --fatum-ornament-glow: none;
  --fatum-mark-glow: none;
  --fatum-room: initial;
}

/* ── neon ─────────────────────────────────────────────────── */

[data-fatum-theme="neon"]:not([data-preview-mode]),
[data-fatum-theme="neon"][data-preview-mode="light"] {
  --color-surface-page: #eef2f5;
  --color-surface-card: #ffffff;
  --color-line: #cfd8de;
  --color-line-control: #69757e;
  --color-ink-primary: #0d1117;
  --color-ink-secondary: #4a5560;
  --color-accent: #0f7d76;
  --color-brand: #b3308f;
  --color-surface-secondary: #e4e8eb;
  --color-surface-hover: #dce0e3;
  --color-surface-muted: #d4d8dc;
  --color-line-strong: #aeb6bc;
  --color-ink-muted: #515c67;
  --color-ink-inverse: #ffffff;
  --color-accent-hover: #006f68;
  --color-brand-light: #d37eb6;
  --color-accent-wash: rgba(179, 48, 143, 0.12);
  --color-action-primary: #006f68;
  --color-action-primary-hover: #005f58;
  --color-action-primary-foreground: #ffffff;
  --color-link: #006f68;
  --color-link-hover: #0d1117;
  --color-focus: #0f7d76;
  --shadow-sm: 0 1px 2px rgba(13, 17, 23, 0.08);
  --shadow-md: 0 2px 8px rgba(13, 17, 23, 0.12);
  --shadow-lg: 0 8px 24px rgba(13, 17, 23, 0.16);
  --fatum-mode: light;
  --fatum-rule-ink: var(--color-line);
  --fatum-rule-glow: none;
  --fatum-ornament-glow: none;
  --fatum-mark-glow: none;
  --fatum-room: repeating-linear-gradient(0deg, rgba(0, 0, 0, 0.03) 0px 1px, transparent 1px 3px);
}

html[data-dark-mode="true"] [data-fatum-theme="neon"]:not([data-preview-mode]),
[data-fatum-theme="neon"][data-preview-mode="dark"],
[data-fatum-theme="neon"][data-preview-mode="default"] {
  --color-surface-page: #080a10;
  --color-surface-card: #12161f;
  --color-line: #2b3444;
  --color-line-control: #7d8b9c;
  --color-ink-primary: #e8f4f8;
  --color-ink-secondary: #9fb4c2;
  --color-accent: #2ee6d6;
  --color-brand: #ff4fd8;
  --color-surface-secondary: #0f1117;
  --color-surface-hover: #14171d;
  --color-surface-muted: #191c23;
  --color-line-strong: #444d5c;
  --color-ink-muted: #96aab8;
  --color-ink-inverse: #080a10;
  --color-accent-hover: #2ee6d6;
  --color-brand-light: #a53f91;
  --color-accent-wash: rgba(255, 79, 216, 0.12);
  --color-action-primary: #2ee6d6;
  --color-action-primary-hover: #4bf8e7;
  --color-action-primary-foreground: #080a10;
  --color-link: #2ee6d6;
  --color-link-hover: #e8f4f8;
  --color-focus: #2ee6d6;
  --shadow-sm: 0 0 8px rgba(46, 230, 214, 0.28);
  --shadow-md: 0 0 0 1px rgba(46, 230, 214, 0.25), 0 0 30px rgba(46, 230, 214, 0.18);
  --shadow-lg: 0 0 0 1px rgba(46, 230, 214, 0.3), 0 0 44px rgba(46, 230, 214, 0.22);
  --fatum-mode: dark;
  --fatum-rule-ink: rgba(46, 230, 214, 0.55);
  --fatum-rule-glow: 0 0 6px rgba(46, 230, 214, 0.55);
  --fatum-ornament-glow: drop-shadow(0 0 6px rgba(255, 79, 216, 0.55));
  --fatum-mark-glow: 0 0 6px rgba(255, 79, 216, 0.55);
  --fatum-room: repeating-linear-gradient(0deg, rgba(255, 255, 255, 0.035) 0px 1px, transparent 1px 3px), radial-gradient(ellipse 70% 45% at 50% 0%, rgba(46, 230, 214, 0.09), transparent 70%);
}

html[data-contrast="high"] [data-fatum-theme="neon"]:not([data-preview-mode]),
[data-fatum-theme="neon"][data-preview-mode="contrast"] {
  --color-surface-page: #f7fdfd;
  --color-surface-card: #f7fdfd;
  --color-line: #3a4c4c;
  --color-line-control: #2f4040;
  --color-ink-primary: #000000;
  --color-ink-secondary: #263636;
  --color-accent: #00504b;
  --color-brand: #8f0f6d;
  --color-surface-secondary: #eaf0f0;
  --color-surface-hover: #e0e6e6;
  --color-surface-muted: #d7dcdc;
  --color-line-strong: #2d3b3b;
  --color-ink-muted: #2f3f3f;
  --color-ink-inverse: #f7fdfd;
  --color-accent-hover: #00504b;
  --color-brand-light: #b96d9e;
  --color-accent-wash: rgba(143, 15, 109, 0.12);
  --color-action-primary: #00504b;
  --color-action-primary-hover: #00413c;
  --color-action-primary-foreground: #f7fdfd;
  --color-link: #00504b;
  --color-link-hover: #000000;
  --color-focus: #00504b;
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.08);
  --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.12);
  --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.16);
  --fatum-mode: light;
  --fatum-rule-ink: var(--color-line);
  --fatum-rule-glow: none;
  --fatum-ornament-glow: none;
  --fatum-mark-glow: none;
  --fatum-room: initial;
}

html[data-dark-mode="true"][data-contrast="high"] [data-fatum-theme="neon"]:not([data-preview-mode]),
[data-fatum-theme="neon"][data-preview-mode="contrast-dark"] {
  --color-surface-page: #02060a;
  --color-surface-card: #02060a;
  --color-line: #9fd6d2;
  --color-line-control: #b6e2df;
  --color-ink-primary: #ffffff;
  --color-ink-secondary: #cfeae8;
  --color-accent: #66ffef;
  --color-brand: #ff7ae2;
  --color-surface-secondary: #060d11;
  --color-surface-hover: #0b1217;
  --color-surface-muted: #11181d;
  --color-line-strong: #aedcd9;
  --color-ink-muted: #c3dddb;
  --color-ink-inverse: #02060a;
  --color-accent-hover: #66ffef;
  --color-brand-light: #9a4e8d;
  --color-accent-wash: rgba(255, 122, 226, 0.12);
  --color-action-primary: #66ffef;
  --color-action-primary-hover: #51eede;
  --color-action-primary-foreground: #02060a;
  --color-link: #66ffef;
  --color-link-hover: #ffffff;
  --color-focus: #66ffef;
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4);
  --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.55);
  --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.7);
  --fatum-mode: dark;
  --fatum-rule-ink: var(--color-line);
  --fatum-rule-glow: none;
  --fatum-ornament-glow: none;
  --fatum-mark-glow: none;
  --fatum-room: initial;
}

/* ── dread ─────────────────────────────────────────────────── */

[data-fatum-theme="dread"]:not([data-preview-mode]),
[data-fatum-theme="dread"][data-preview-mode="light"] {
  --color-surface-page: #ecefe9;
  --color-surface-card: #ffffff;
  --color-line: #ccd2c6;
  --color-line-control: #6d7568;
  --color-ink-primary: #171a16;
  --color-ink-secondary: #3b4438;
  --color-accent: #3f5a5a;
  --color-brand: #8fa382;
  --color-surface-secondary: #e2e5df;
  --color-surface-hover: #dbded8;
  --color-surface-muted: #d4d7d1;
  --color-line-strong: #adb3a8;
  --color-ink-muted: #434c40;
  --color-ink-inverse: #ffffff;
  --color-accent-hover: #3f5a5a;
  --color-brand-light: #b5c2ac;
  --color-accent-wash: rgba(143, 163, 130, 0.12);
  --color-action-primary: #3f5a5a;
  --color-action-primary-hover: #324c4c;
  --color-action-primary-foreground: #ffffff;
  --color-link: #3f5a5a;
  --color-link-hover: #171a16;
  --color-focus: #3f5a5a;
  --shadow-sm: 0 1px 4px rgba(23, 26, 22, 0.12);
  --shadow-md: 0 18px 50px rgba(23, 26, 22, 0.16);
  --shadow-lg: 0 26px 70px rgba(23, 26, 22, 0.2);
  --fatum-mode: light;
  --fatum-rule-ink: var(--color-line-strong);
  --fatum-rule-glow: none;
  --fatum-ornament-glow: none;
  --fatum-mark-glow: none;
  --fatum-room: radial-gradient(ellipse 85% 70% at 50% 45%, #ecefe9 0%, #ecefe9 58%, #d4d7d1 100%);
}

html[data-dark-mode="true"] [data-fatum-theme="dread"]:not([data-preview-mode]),
[data-fatum-theme="dread"][data-preview-mode="dark"],
[data-fatum-theme="dread"][data-preview-mode="default"] {
  --color-surface-page: #0d0f0d;
  --color-surface-card: #161a17;
  --color-line: #2f352f;
  --color-line-control: #7f887c;
  --color-ink-primary: #e4e8e2;
  --color-ink-secondary: #a3aba1;
  --color-accent: #9fbdbd;
  --color-brand: #5a6b52;
  --color-surface-secondary: #141614;
  --color-surface-hover: #191b19;
  --color-surface-muted: #1e201e;
  --color-line-strong: #474d47;
  --color-ink-muted: #9aa299;
  --color-ink-inverse: #0d0f0d;
  --color-accent-hover: #9fbdbd;
  --color-brand-light: #414d3c;
  --color-accent-wash: rgba(90, 107, 82, 0.12);
  --color-action-primary: #9fbdbd;
  --color-action-primary-hover: #afcece;
  --color-action-primary-foreground: #0d0f0d;
  --color-link: #9fbdbd;
  --color-link-hover: #e4e8e2;
  --color-focus: #9fbdbd;
  --shadow-sm: 0 2px 8px rgba(0, 0, 0, 0.55);
  --shadow-md: 0 22px 64px rgba(0, 0, 0, 0.8);
  --shadow-lg: 0 30px 90px rgba(0, 0, 0, 0.9);
  --fatum-mode: dark;
  --fatum-rule-ink: var(--color-line-strong);
  --fatum-rule-glow: none;
  --fatum-ornament-glow: none;
  --fatum-mark-glow: none;
  --fatum-room: radial-gradient(ellipse 85% 70% at 50% 45%, #0d0f0d 0%, #0d0f0d 55%, #050505 100%);
}

html[data-contrast="high"] [data-fatum-theme="dread"]:not([data-preview-mode]),
[data-fatum-theme="dread"][data-preview-mode="contrast"] {
  --color-surface-page: #fbfdfa;
  --color-surface-card: #fbfdfa;
  --color-line: #465046;
  --color-line-control: #3a433a;
  --color-ink-primary: #000000;
  --color-ink-secondary: #333a33;
  --color-accent: #14403f;
  --color-brand: #4a5c42;
  --color-surface-secondary: #eef0ed;
  --color-surface-hover: #e4e6e3;
  --color-surface-muted: #dadcd9;
  --color-line-strong: #373f37;
  --color-ink-muted: #3c423c;
  --color-ink-inverse: #fbfdfa;
  --color-accent-hover: #14403f;
  --color-brand-light: #84917e;
  --color-accent-wash: rgba(74, 92, 66, 0.12);
  --color-action-primary: #14403f;
  --color-action-primary-hover: #043332;
  --color-action-primary-foreground: #fbfdfa;
  --color-link: #14403f;
  --color-link-hover: #000000;
  --color-focus: #14403f;
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.08);
  --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.12);
  --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.16);
  --fatum-mode: light;
  --fatum-rule-ink: var(--color-line-strong);
  --fatum-rule-glow: none;
  --fatum-ornament-glow: none;
  --fatum-mark-glow: none;
  --fatum-room: initial;
}

html[data-dark-mode="true"][data-contrast="high"] [data-fatum-theme="dread"]:not([data-preview-mode]),
[data-fatum-theme="dread"][data-preview-mode="contrast-dark"] {
  --color-surface-page: #050806;
  --color-surface-card: #050806;
  --color-line: #b6c4b6;
  --color-line-control: #c8d4c8;
  --color-ink-primary: #ffffff;
  --color-ink-secondary: #d6e0d6;
  --color-accent: #a8dedb;
  --color-brand: #8fa382;
  --color-surface-secondary: #0b0f0d;
  --color-surface-hover: #111512;
  --color-surface-muted: #171b18;
  --color-line-strong: #c1cdc1;
  --color-ink-muted: #cad3ca;
  --color-ink-inverse: #050806;
  --color-accent-hover: #a8dedb;
  --color-brand-light: #596752;
  --color-accent-wash: rgba(143, 163, 130, 0.12);
  --color-action-primary: #a8dedb;
  --color-action-primary-hover: #b9efec;
  --color-action-primary-foreground: #050806;
  --color-link: #a8dedb;
  --color-link-hover: #ffffff;
  --color-focus: #a8dedb;
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4);
  --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.55);
  --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.7);
  --fatum-mode: dark;
  --fatum-rule-ink: var(--color-line-strong);
  --fatum-rule-glow: none;
  --fatum-ornament-glow: none;
  --fatum-mark-glow: none;
  --fatum-room: initial;
}

/* ── modern-horror ─────────────────────────────────────────────────── */

[data-fatum-theme="modern-horror"]:not([data-preview-mode]),
[data-fatum-theme="modern-horror"][data-preview-mode="light"] {
  --color-surface-page: #eceef0;
  --color-surface-card: #ffffff;
  --color-line: #d2d6da;
  --color-line-control: #6b7278;
  --color-ink-primary: #101315;
  --color-ink-secondary: #4c5359;
  --color-accent: #40606e;
  --color-brand: #8c1c13;
  --color-surface-secondary: #e2e4e6;
  --color-surface-hover: #dadcde;
  --color-surface-muted: #d3d5d7;
  --color-line-strong: #b1b5b9;
  --color-ink-muted: #535a60;
  --color-ink-inverse: #ffffff;
  --color-accent-hover: #40606e;
  --color-brand-light: #ba7064;
  --color-accent-wash: rgba(140, 28, 19, 0.12);
  --color-action-primary: #40606e;
  --color-action-primary-hover: #325260;
  --color-action-primary-foreground: #ffffff;
  --color-link: #40606e;
  --color-link-hover: #101315;
  --color-focus: #40606e;
  --shadow-sm: 0 0 rgba(0, 0, 0, 0);
  --shadow-md: 0 0 rgba(0, 0, 0, 0);
  --shadow-lg: 0 0 rgba(0, 0, 0, 0);
  --fatum-mode: light;
  --fatum-rule-ink: var(--color-line);
  --fatum-rule-glow: none;
  --fatum-ornament-glow: none;
  --fatum-mark-glow: none;
  --fatum-room: linear-gradient(180deg, #eceef0 0%, #eceef0 35%, #d3d5d7 100%);
}

html[data-dark-mode="true"] [data-fatum-theme="modern-horror"]:not([data-preview-mode]),
[data-fatum-theme="modern-horror"][data-preview-mode="dark"],
[data-fatum-theme="modern-horror"][data-preview-mode="default"] {
  --color-surface-page: #0b0d0e;
  --color-surface-card: #14181b;
  --color-line: #2c3237;
  --color-line-control: #7c868d;
  --color-ink-primary: #e9edee;
  --color-ink-secondary: #a5aeb3;
  --color-accent: #8fc4d8;
  --color-brand: #b4231a;
  --color-surface-secondary: #121415;
  --color-surface-hover: #17191a;
  --color-surface-muted: #1c1f20;
  --color-line-strong: #454b4f;
  --color-ink-muted: #9ca5aa;
  --color-ink-inverse: #0b0d0e;
  --color-accent-hover: #8fc4d8;
  --color-brand-light: #792720;
  --color-accent-wash: rgba(180, 35, 26, 0.12);
  --color-action-primary: #8fc4d8;
  --color-action-primary-hover: #9fd5e9;
  --color-action-primary-foreground: #0b0d0e;
  --color-link: #8fc4d8;
  --color-link-hover: #e9edee;
  --color-focus: #8fc4d8;
  --shadow-sm: 0 0 rgba(0, 0, 0, 0);
  --shadow-md: 0 0 rgba(0, 0, 0, 0);
  --shadow-lg: 0 0 rgba(0, 0, 0, 0);
  --fatum-mode: dark;
  --fatum-rule-ink: var(--color-line);
  --fatum-rule-glow: none;
  --fatum-ornament-glow: none;
  --fatum-mark-glow: none;
  --fatum-room: linear-gradient(180deg, #0b0d0e 0%, #0b0d0e 30%, #060707 100%);
}

html[data-contrast="high"] [data-fatum-theme="modern-horror"]:not([data-preview-mode]),
[data-fatum-theme="modern-horror"][data-preview-mode="contrast"] {
  --color-surface-page: #fafcfd;
  --color-surface-card: #fafcfd;
  --color-line: #414b50;
  --color-line-control: #363f44;
  --color-ink-primary: #000000;
  --color-ink-secondary: #2f373b;
  --color-accent: #12414f;
  --color-brand: #8c1c13;
  --color-surface-secondary: #edeff0;
  --color-surface-hover: #e3e5e6;
  --color-surface-muted: #d9dbdc;
  --color-line-strong: #323b3f;
  --color-ink-muted: #383f43;
  --color-ink-inverse: #fafcfd;
  --color-accent-hover: #12414f;
  --color-brand-light: #b86f64;
  --color-accent-wash: rgba(140, 28, 19, 0.12);
  --color-action-primary: #12414f;
  --color-action-primary-hover: #013441;
  --color-action-primary-foreground: #fafcfd;
  --color-link: #12414f;
  --color-link-hover: #000000;
  --color-focus: #12414f;
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.08);
  --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.12);
  --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.16);
  --fatum-mode: light;
  --fatum-rule-ink: var(--color-line);
  --fatum-rule-glow: none;
  --fatum-ornament-glow: none;
  --fatum-mark-glow: none;
  --fatum-room: initial;
}

html[data-dark-mode="true"][data-contrast="high"] [data-fatum-theme="modern-horror"]:not([data-preview-mode]),
[data-fatum-theme="modern-horror"][data-preview-mode="contrast-dark"] {
  --color-surface-page: #040607;
  --color-surface-card: #040607;
  --color-line: #b2c0c6;
  --color-line-control: #c4d0d6;
  --color-ink-primary: #ffffff;
  --color-ink-secondary: #d4dee2;
  --color-accent: #a5d8ec;
  --color-brand: #e0362c;
  --color-surface-secondary: #0a0d0e;
  --color-surface-hover: #0f1214;
  --color-surface-muted: #15181a;
  --color-line-strong: #bdc9ce;
  --color-ink-muted: #c8d1d5;
  --color-ink-inverse: #040607;
  --color-accent-hover: #a5d8ec;
  --color-brand-light: #8a2921;
  --color-accent-wash: rgba(224, 54, 44, 0.12);
  --color-action-primary: #a5d8ec;
  --color-action-primary-hover: #b6e9fd;
  --color-action-primary-foreground: #040607;
  --color-link: #a5d8ec;
  --color-link-hover: #ffffff;
  --color-focus: #a5d8ec;
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4);
  --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.55);
  --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.7);
  --fatum-mode: dark;
  --fatum-rule-ink: var(--color-line);
  --fatum-rule-glow: none;
  --fatum-ornament-glow: none;
  --fatum-mark-glow: none;
  --fatum-room: initial;
}

/* ── plain-reader ─────────────────────────────────────────────────── */

[data-fatum-theme="plain-reader"]:not([data-preview-mode]),
[data-fatum-theme="plain-reader"][data-preview-mode="light"],
[data-fatum-theme="plain-reader"][data-preview-mode="default"] {
  --color-surface-page: #f4f4f4;
  --color-surface-card: #ffffff;
  --color-line: #d4d4d4;
  --color-line-control: #767676;
  --color-ink-primary: #111111;
  --color-ink-secondary: #4a4a4a;
  --color-accent: #1a4fb0;
  --color-brand: #6b6b6b;
  --color-surface-secondary: #eaeaea;
  --color-surface-hover: #e2e2e2;
  --color-surface-muted: #dadada;
  --color-line-strong: #b3b3b3;
  --color-ink-muted: #525252;
  --color-ink-inverse: #ffffff;
  --color-accent-hover: #1a4fb0;
  --color-brand-light: #9c9c9c;
  --color-accent-wash: rgba(107, 107, 107, 0.12);
  --color-action-primary: #1a4fb0;
  --color-action-primary-hover: #0940a0;
  --color-action-primary-foreground: #ffffff;
  --color-link: #1a4fb0;
  --color-link-hover: #111111;
  --color-focus: #1a4fb0;
  --shadow-sm: 0 1px 2px rgba(17, 17, 17, 0.08);
  --shadow-md: 0 2px 8px rgba(17, 17, 17, 0.12);
  --shadow-lg: 0 8px 24px rgba(17, 17, 17, 0.16);
  --fatum-mode: light;
  --fatum-rule-ink: var(--color-line);
  --fatum-rule-glow: none;
  --fatum-ornament-glow: none;
  --fatum-mark-glow: none;
  --fatum-room: initial;
}

html[data-dark-mode="true"] [data-fatum-theme="plain-reader"]:not([data-preview-mode]),
[data-fatum-theme="plain-reader"][data-preview-mode="dark"] {
  --color-surface-page: #0d0d0d;
  --color-surface-card: #161616;
  --color-line: #3a3a3a;
  --color-line-control: #8c8c8c;
  --color-ink-primary: #f5f5f5;
  --color-ink-secondary: #c2c2c2;
  --color-accent: #7fb2ff;
  --color-brand: #9a9a9a;
  --color-surface-secondary: #141414;
  --color-surface-hover: #1a1a1a;
  --color-surface-muted: #1f1f1f;
  --color-line-strong: #535353;
  --color-ink-muted: #b8b8b8;
  --color-ink-inverse: #0d0d0d;
  --color-accent-hover: #7fb2ff;
  --color-brand-light: #686868;
  --color-accent-wash: rgba(154, 154, 154, 0.12);
  --color-action-primary: #7fb2ff;
  --color-action-primary-hover: #91c5ff;
  --color-action-primary-foreground: #0d0d0d;
  --color-link: #7fb2ff;
  --color-link-hover: #f5f5f5;
  --color-focus: #7fb2ff;
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4);
  --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.55);
  --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.7);
  --fatum-mode: dark;
  --fatum-rule-ink: var(--color-line);
  --fatum-rule-glow: none;
  --fatum-ornament-glow: none;
  --fatum-mark-glow: none;
  --fatum-room: initial;
}

html[data-contrast="high"] [data-fatum-theme="plain-reader"]:not([data-preview-mode]),
[data-fatum-theme="plain-reader"][data-preview-mode="contrast"] {
  --color-surface-page: #ffffff;
  --color-surface-card: #ffffff;
  --color-line: #3d3d3d;
  --color-line-control: #333333;
  --color-ink-primary: #000000;
  --color-ink-secondary: #2b2b2b;
  --color-accent: #0d3a8a;
  --color-brand: #4a4a4a;
  --color-surface-secondary: #f2f2f2;
  --color-surface-hover: #e8e8e8;
  --color-surface-muted: #dedede;
  --color-line-strong: #2f2f2f;
  --color-ink-muted: #343434;
  --color-ink-inverse: #ffffff;
  --color-accent-hover: #0d3a8a;
  --color-brand-light: #858585;
  --color-accent-wash: rgba(74, 74, 74, 0.12);
  --color-action-primary: #0d3a8a;
  --color-action-primary-hover: #002b7a;
  --color-action-primary-foreground: #ffffff;
  --color-link: #0d3a8a;
  --color-link-hover: #000000;
  --color-focus: #0d3a8a;
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.08);
  --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.12);
  --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.16);
  --fatum-mode: light;
  --fatum-rule-ink: var(--color-line);
  --fatum-rule-glow: none;
  --fatum-ornament-glow: none;
  --fatum-mark-glow: none;
  --fatum-room: initial;
}

html[data-dark-mode="true"][data-contrast="high"] [data-fatum-theme="plain-reader"]:not([data-preview-mode]),
[data-fatum-theme="plain-reader"][data-preview-mode="contrast-dark"] {
  --color-surface-page: #000000;
  --color-surface-card: #000000;
  --color-line: #bdbdbd;
  --color-line-control: #cccccc;
  --color-ink-primary: #ffffff;
  --color-ink-secondary: #dcdcdc;
  --color-accent: #a8c8ff;
  --color-brand: #9a9a9a;
  --color-surface-secondary: #000000;
  --color-surface-hover: #010101;
  --color-surface-muted: #030303;
  --color-line-strong: #c7c7c7;
  --color-ink-muted: #cdcdcd;
  --color-ink-inverse: #000000;
  --color-accent-hover: #a8c8ff;
  --color-brand-light: #545454;
  --color-accent-wash: rgba(154, 154, 154, 0.12);
  --color-action-primary: #a8c8ff;
  --color-action-primary-hover: #badbff;
  --color-action-primary-foreground: #000000;
  --color-link: #a8c8ff;
  --color-link-hover: #ffffff;
  --color-focus: #a8c8ff;
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4);
  --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.55);
  --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.7);
  --fatum-mode: dark;
  --fatum-rule-ink: var(--color-line);
  --fatum-rule-glow: none;
  --fatum-ornament-glow: none;
  --fatum-mark-glow: none;
  --fatum-room: initial;
}

/* ── hearth ─────────────────────────────────────────────────── */

[data-fatum-theme="hearth"]:not([data-preview-mode]),
[data-fatum-theme="hearth"][data-preview-mode="light"],
[data-fatum-theme="hearth"][data-preview-mode="default"] {
  --color-surface-page: #fff6ec;
  --color-surface-card: #ffffff;
  --color-line: #efd9c0;
  --color-line-control: #8a7159;
  --color-ink-primary: #2b1c10;
  --color-ink-secondary: #6b533c;
  --color-accent: #b0326b;
  --color-brand: #f0a868;
  --color-surface-secondary: #f6ece2;
  --color-surface-hover: #eee5da;
  --color-surface-muted: #e7ddd3;
  --color-line-strong: #cfb9a2;
  --color-ink-muted: #725a44;
  --color-ink-inverse: #ffffff;
  --color-accent-hover: #b0326b;
  --color-brand-light: #f7c79f;
  --color-accent-wash: rgba(240, 168, 104, 0.12);
  --color-action-primary: #b0326b;
  --color-action-primary-hover: #9f205d;
  --color-action-primary-foreground: #ffffff;
  --color-link: #b0326b;
  --color-link-hover: #2b1c10;
  --color-focus: #b0326b;
  --shadow-sm: 0 1px 3px rgba(181, 84, 31, 0.16);
  --shadow-md: 0 8px 22px rgba(181, 84, 31, 0.14);
  --shadow-lg: 0 14px 36px rgba(181, 84, 31, 0.18);
  --fatum-mode: light;
  --fatum-rule-ink: var(--color-line-strong);
  --fatum-rule-glow: none;
  --fatum-ornament-glow: none;
  --fatum-mark-glow: none;
  --fatum-room: radial-gradient(ellipse 70% 50% at 50% 0%, rgba(240, 168, 104, 0.22), transparent 70%);
}

html[data-dark-mode="true"] [data-fatum-theme="hearth"]:not([data-preview-mode]),
[data-fatum-theme="hearth"][data-preview-mode="dark"] {
  --color-surface-page: #1b1410;
  --color-surface-card: #261d16;
  --color-line: #4b3a2c;
  --color-line-control: #947d66;
  --color-ink-primary: #fbeee2;
  --color-ink-secondary: #cbb49f;
  --color-accent: #ef94b8;
  --color-brand: #b5541f;
  --color-surface-secondary: #221b17;
  --color-surface-hover: #28201c;
  --color-surface-muted: #2d2621;
  --color-line-strong: #635244;
  --color-ink-muted: #c1ab97;
  --color-ink-inverse: #1b1410;
  --color-accent-hover: #ef94b8;
  --color-brand-light: #804120;
  --color-accent-wash: rgba(181, 84, 31, 0.12);
  --color-action-primary: #ef94b8;
  --color-action-primary-hover: #ffa5c9;
  --color-action-primary-foreground: #1b1410;
  --color-link: #ef94b8;
  --color-link-hover: #fbeee2;
  --color-focus: #ef94b8;
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4);
  --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.55);
  --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.7);
  --fatum-mode: dark;
  --fatum-rule-ink: var(--color-line-strong);
  --fatum-rule-glow: none;
  --fatum-ornament-glow: none;
  --fatum-mark-glow: none;
  --fatum-room: radial-gradient(ellipse 70% 50% at 50% 0%, rgba(181, 84, 31, 0.18), transparent 70%);
}

html[data-contrast="high"] [data-fatum-theme="hearth"]:not([data-preview-mode]),
[data-fatum-theme="hearth"][data-preview-mode="contrast"] {
  --color-surface-page: #fffcf7;
  --color-surface-card: #fffcf7;
  --color-line: #5c4a38;
  --color-line-control: #4c3c2c;
  --color-ink-primary: #000000;
  --color-ink-secondary: #3f3126;
  --color-accent: #7a1340;
  --color-brand: #a8431a;
  --color-surface-secondary: #f2efea;
  --color-surface-hover: #e8e5e0;
  --color-surface-muted: #dedbd7;
  --color-line-strong: #493a2b;
  --color-ink-muted: #473a2f;
  --color-ink-inverse: #fffcf7;
  --color-accent-hover: #7a1340;
  --color-brand-light: #cb856a;
  --color-accent-wash: rgba(168, 67, 26, 0.12);
  --color-action-primary: #7a1340;
  --color-action-primary-hover: #690032;
  --color-action-primary-foreground: #fffcf7;
  --color-link: #7a1340;
  --color-link-hover: #000000;
  --color-focus: #7a1340;
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.08);
  --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.12);
  --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.16);
  --fatum-mode: light;
  --fatum-rule-ink: var(--color-line-strong);
  --fatum-rule-glow: none;
  --fatum-ornament-glow: none;
  --fatum-mark-glow: none;
  --fatum-room: initial;
}

html[data-dark-mode="true"][data-contrast="high"] [data-fatum-theme="hearth"]:not([data-preview-mode]),
[data-fatum-theme="hearth"][data-preview-mode="contrast-dark"] {
  --color-surface-page: #0b0806;
  --color-surface-card: #0b0806;
  --color-line: #cbb49f;
  --color-line-control: #d8c6b4;
  --color-ink-primary: #ffffff;
  --color-ink-secondary: #e2d5c8;
  --color-accent: #ffb3cd;
  --color-brand: #f0a868;
  --color-surface-secondary: #120f0d;
  --color-surface-hover: #181512;
  --color-surface-muted: #1e1b18;
  --color-line-strong: #d3bfad;
  --color-ink-muted: #d6c9bd;
  --color-ink-inverse: #0b0806;
  --color-accent-hover: #ffb3cd;
  --color-brand-light: #966a43;
  --color-accent-wash: rgba(240, 168, 104, 0.12);
  --color-action-primary: #ffb3cd;
  --color-action-primary-hover: #ffcbe6;
  --color-action-primary-foreground: #0b0806;
  --color-link: #ffb3cd;
  --color-link-hover: #ffffff;
  --color-focus: #ffb3cd;
  --shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.4);
  --shadow-md: 0 2px 8px rgba(0, 0, 0, 0.55);
  --shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.7);
  --fatum-mode: dark;
  --fatum-rule-ink: var(--color-line-strong);
  --fatum-rule-glow: none;
  --fatum-ornament-glow: none;
  --fatum-mark-glow: none;
  --fatum-room: initial;
}

/* ── Typography (section 4) ────────────────────────────────────────── */
/*
 * Three family slots per theme, plus the nine roles reading them. A theme changes face,
 * weight, case, tracking, figures and leading per role; it never changes a SIZE, because
 * size is layout (section 4.1). The faces themselves are declared in fatum-fonts.css.
 *
 * These blocks carry no mode: a theme's faces are the same in light, dark and high
 * contrast. Section 4.5: "The reader's contrast mode does not change families."
 */

[data-fatum-theme="parchment"] {
  --font-display: 'Cinzel', Georgia, serif;
  --font-text: 'EB Garamond', Georgia, serif;
  --font-ui: 'Inter', system-ui, sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, monospace;
}
[data-fatum-theme="parchment"] .fatum-role-crest {
  font-family: var(--font-display);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: calc(0.06em + var(--reader-tracking, 0rem));
}
[data-fatum-theme="parchment"] .fatum-role-title {
  font-family: var(--font-display);
  font-weight: 700;
}
[data-fatum-theme="parchment"] .fatum-role-label {
  font-family: var(--font-ui);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: calc(0.07em + var(--reader-tracking, 0rem));
}
[data-fatum-theme="parchment"] .fatum-role-prose {
  font-family: var(--font-text);
  font-variant-numeric: oldstyle-nums;
}
[data-fatum-theme="parchment"] .fatum-role-hint {
  font-family: var(--font-text);
}
[data-fatum-theme="parchment"] .fatum-role-control {
  font-family: var(--font-ui);
  font-weight: 600;
}
[data-fatum-theme="parchment"] .fatum-role-stat {
  font-family: var(--font-ui);
  font-weight: 700;
  font-variant-numeric: lining-nums tabular-nums;
}
[data-fatum-theme="parchment"] .fatum-role-mono {
  font-family: var(--font-mono);
}
[data-fatum-theme="parchment"] .fatum-ref {
  font-family: var(--font-ui);
  font-weight: 600;
  font-size: 0.92em;
}

[data-fatum-theme="dark-fantasy"] {
  --font-display: 'Cinzel', Georgia, serif;
  --font-text: 'EB Garamond', Georgia, serif;
  --font-ui: 'Inter', system-ui, sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, monospace;
}
[data-fatum-theme="dark-fantasy"] .fatum-role-crest {
  font-family: var(--font-display);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: calc(0.06em + var(--reader-tracking, 0rem));
}
[data-fatum-theme="dark-fantasy"] .fatum-role-title {
  font-family: var(--font-display);
  font-weight: 700;
}
[data-fatum-theme="dark-fantasy"] .fatum-role-label {
  font-family: var(--font-ui);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: calc(0.07em + var(--reader-tracking, 0rem));
}
[data-fatum-theme="dark-fantasy"] .fatum-role-prose {
  font-family: var(--font-text);
  font-variant-numeric: oldstyle-nums;
}
[data-fatum-theme="dark-fantasy"] .fatum-role-hint {
  font-family: var(--font-text);
}
[data-fatum-theme="dark-fantasy"] .fatum-role-control {
  font-family: var(--font-ui);
  font-weight: 600;
}
[data-fatum-theme="dark-fantasy"] .fatum-role-stat {
  font-family: var(--font-ui);
  font-weight: 700;
  font-variant-numeric: lining-nums tabular-nums;
}
[data-fatum-theme="dark-fantasy"] .fatum-role-mono {
  font-family: var(--font-mono);
}
[data-fatum-theme="dark-fantasy"] .fatum-ref {
  font-family: var(--font-ui);
  font-weight: 600;
  font-size: 0.92em;
}

[data-fatum-theme="case-file"] {
  --font-display: 'Inter', system-ui, sans-serif;
  --font-text: 'Inter', system-ui, sans-serif;
  --font-ui: 'Inter', system-ui, sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, monospace;
}
[data-fatum-theme="case-file"] .fatum-role-crest {
  font-family: var(--font-display);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: calc(-0.02em + var(--reader-tracking, 0rem));
}
[data-fatum-theme="case-file"] .fatum-role-title {
  font-family: var(--font-display);
  font-weight: 800;
}
[data-fatum-theme="case-file"] .fatum-role-label {
  font-family: var(--font-ui);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: calc(0.07em + var(--reader-tracking, 0rem));
}
[data-fatum-theme="case-file"] .fatum-role-prose {
  font-family: var(--font-text);
}
[data-fatum-theme="case-file"] .fatum-role-hint {
  font-family: var(--font-text);
}
[data-fatum-theme="case-file"] .fatum-role-control {
  font-family: var(--font-ui);
  font-weight: 600;
}
[data-fatum-theme="case-file"] .fatum-role-stat {
  font-family: var(--font-ui);
  font-weight: 700;
  font-variant-numeric: lining-nums tabular-nums;
}
[data-fatum-theme="case-file"] .fatum-role-mono {
  font-family: var(--font-mono);
}
[data-fatum-theme="case-file"] .fatum-ref {
  font-family: var(--font-ui);
  font-weight: 600;
  font-size: 0.92em;
}

[data-fatum-theme="neon"] {
  --font-display: 'JetBrains Mono', ui-monospace, monospace;
  --font-text: 'Inter', system-ui, sans-serif;
  --font-ui: 'Inter', system-ui, sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, monospace;
}
[data-fatum-theme="neon"] .fatum-role-crest {
  font-family: var(--font-display);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: calc(0.04em + var(--reader-tracking, 0rem));
}
[data-fatum-theme="neon"] .fatum-role-title {
  font-family: var(--font-display);
  font-weight: 700;
}
[data-fatum-theme="neon"] .fatum-role-label {
  font-family: var(--font-mono);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: calc(0.07em + var(--reader-tracking, 0rem));
}
[data-fatum-theme="neon"] .fatum-role-prose {
  font-family: var(--font-text);
  font-variant-numeric: lining-nums tabular-nums;
}
[data-fatum-theme="neon"] .fatum-role-hint {
  font-family: var(--font-text);
}
[data-fatum-theme="neon"] .fatum-role-control {
  font-family: var(--font-ui);
  font-weight: 600;
}
[data-fatum-theme="neon"] .fatum-role-stat {
  font-family: var(--font-mono);
  font-weight: 700;
  font-variant-numeric: lining-nums tabular-nums;
}
[data-fatum-theme="neon"] .fatum-role-mono {
  font-family: var(--font-mono);
}
[data-fatum-theme="neon"] .fatum-ref {
  font-family: var(--font-ui);
  font-weight: 600;
  font-size: 0.92em;
}

[data-fatum-theme="dread"] {
  --font-display: 'EB Garamond', Georgia, serif;
  --font-text: 'EB Garamond', Georgia, serif;
  --font-ui: 'Inter', system-ui, sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, monospace;
}
[data-fatum-theme="dread"] .fatum-role-crest {
  font-family: var(--font-display);
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: calc(0.06em + var(--reader-tracking, 0rem));
}
[data-fatum-theme="dread"] .fatum-role-title {
  font-family: var(--font-display);
  font-weight: 600;
}
[data-fatum-theme="dread"] .fatum-role-label {
  font-family: var(--font-ui);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: calc(0.07em + var(--reader-tracking, 0rem));
}
[data-fatum-theme="dread"] .fatum-role-prose {
  font-family: var(--font-text);
  font-variant-numeric: oldstyle-nums;
}
[data-fatum-theme="dread"] .fatum-role-hint {
  font-family: var(--font-text);
}
[data-fatum-theme="dread"] .fatum-role-control {
  font-family: var(--font-ui);
  font-weight: 600;
}
[data-fatum-theme="dread"] .fatum-role-stat {
  font-family: var(--font-ui);
  font-weight: 700;
  font-variant-numeric: lining-nums tabular-nums;
}
[data-fatum-theme="dread"] .fatum-role-mono {
  font-family: var(--font-mono);
}
[data-fatum-theme="dread"] .fatum-ref {
  font-family: var(--font-ui);
  font-weight: 600;
  font-size: 0.92em;
}

[data-fatum-theme="modern-horror"] {
  --font-display: 'Inter', system-ui, sans-serif;
  --font-text: 'Inter', system-ui, sans-serif;
  --font-ui: 'Inter', system-ui, sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, monospace;
}
[data-fatum-theme="modern-horror"] .fatum-role-crest {
  font-family: var(--font-display);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: calc(0.10em + var(--reader-tracking, 0rem));
}
[data-fatum-theme="modern-horror"] .fatum-role-title {
  font-family: var(--font-display);
  font-weight: 500;
  letter-spacing: calc(-0.01em + var(--reader-tracking, 0rem));
}
[data-fatum-theme="modern-horror"] .fatum-role-label {
  font-family: var(--font-mono);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: calc(0.07em + var(--reader-tracking, 0rem));
}
[data-fatum-theme="modern-horror"] .fatum-role-prose {
  font-family: var(--font-text);
  line-height: max(1.66, var(--reader-leading, 0));
}
[data-fatum-theme="modern-horror"] .fatum-role-hint {
  font-family: var(--font-mono);
}
[data-fatum-theme="modern-horror"] .fatum-role-control {
  font-family: var(--font-ui);
  font-weight: 600;
}
[data-fatum-theme="modern-horror"] .fatum-role-stat {
  font-family: var(--font-mono);
  font-weight: 700;
  font-variant-numeric: lining-nums tabular-nums;
}
[data-fatum-theme="modern-horror"] .fatum-role-mono {
  font-family: var(--font-mono);
}
[data-fatum-theme="modern-horror"] .fatum-ref {
  font-family: var(--font-ui);
  font-weight: 600;
  font-size: 0.92em;
}

[data-fatum-theme="plain-reader"] {
  --font-display: 'Atkinson Hyperlegible', system-ui, sans-serif;
  --font-text: 'Atkinson Hyperlegible', system-ui, sans-serif;
  --font-ui: 'Atkinson Hyperlegible', system-ui, sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, monospace;
}
[data-fatum-theme="plain-reader"] .fatum-role-crest {
  font-family: var(--font-display);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: calc(0.06em + var(--reader-tracking, 0rem));
}
[data-fatum-theme="plain-reader"] .fatum-role-title {
  font-family: var(--font-display);
  font-weight: 700;
}
[data-fatum-theme="plain-reader"] .fatum-role-label {
  font-family: var(--font-ui);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: calc(0.07em + var(--reader-tracking, 0rem));
}
[data-fatum-theme="plain-reader"] .fatum-role-prose {
  font-family: var(--font-text);
}
[data-fatum-theme="plain-reader"] .fatum-role-hint {
  font-family: var(--font-text);
}
[data-fatum-theme="plain-reader"] .fatum-role-control {
  font-family: var(--font-ui);
  font-weight: 600;
}
[data-fatum-theme="plain-reader"] .fatum-role-stat {
  font-family: var(--font-ui);
  font-weight: 700;
  font-variant-numeric: lining-nums tabular-nums;
}
[data-fatum-theme="plain-reader"] .fatum-role-mono {
  font-family: var(--font-mono);
}
[data-fatum-theme="plain-reader"] .fatum-ref {
  font-weight: 600;
  font-size: 0.92em;
}

[data-fatum-theme="hearth"] {
  --font-display: 'Nunito', system-ui, sans-serif;
  --font-text: 'Nunito', system-ui, sans-serif;
  --font-ui: 'Nunito', system-ui, sans-serif;
  --font-mono: 'JetBrains Mono', ui-monospace, monospace;
}
[data-fatum-theme="hearth"] .fatum-role-crest {
  font-family: var(--font-display);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: calc(0.06em + var(--reader-tracking, 0rem));
}
[data-fatum-theme="hearth"] .fatum-role-title {
  font-family: var(--font-display);
  font-weight: 800;
}
[data-fatum-theme="hearth"] .fatum-role-label {
  font-family: var(--font-ui);
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: calc(0.07em + var(--reader-tracking, 0rem));
}
[data-fatum-theme="hearth"] .fatum-role-prose {
  font-family: var(--font-text);
}
[data-fatum-theme="hearth"] .fatum-role-hint {
  font-family: var(--font-text);
}
[data-fatum-theme="hearth"] .fatum-role-control {
  font-family: var(--font-ui);
  font-weight: 600;
}
[data-fatum-theme="hearth"] .fatum-role-stat {
  font-family: var(--font-ui);
  font-weight: 700;
  font-variant-numeric: lining-nums tabular-nums;
}
[data-fatum-theme="hearth"] .fatum-role-mono {
  font-family: var(--font-mono);
}
[data-fatum-theme="hearth"] .fatum-ref {
  font-family: var(--font-ui);
  font-weight: 600;
  font-size: 0.92em;
}

/* ── Decor (themes.md section 4A) ──────────────────────────────────── */
/*
 * The mode-independent half of each theme's decor: the ornament drawing, the decorative
 * rule, the chapter mark, the die, the drop cap and its lead-in line, the numbering of the
 * choice lines and the five corner radii. Custom properties ONLY: this sheet is unlayered
 * and the play sheet is `@layer components`, so a declaration written here on a play class
 * would beat the play sheet whatever the specificity. Styles/_fatum-play.css reads every one
 * of them with today's value as its fallback, and a token written `initial` hands the play
 * sheet that fallback. The mode-dependent half (--fatum-mode, the rule's ink, the glows and
 * the room) is written in the palette blocks above, where the three --shadow-* tokens also
 * follow the theme's shadow recipe (the low-vision blocks keep the soft one). The room is
 * gradient layers laid over the page in the ordinary blocks; the low-vision blocks and the
 * plain room write `initial`, so the play sheet lays no layer there.
 */

[data-fatum-theme="parchment"] {
  --fatum-ornament: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2064%2020%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.3%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20fill%3D%22%23000%22%20stroke%3D%22none%22%20d%3D%22M32%204%2037%2010%2032%2016%2027%2010Z%22%2F%3E%3Cpath%20d%3D%22M26%2010C21%2010%2019%205%2014%206%2010%207%2010%2012%2013.5%2012.5%2016%2012.8%2016.5%2010%2014.8%209.4%22%2F%3E%3Cpath%20fill%3D%22%23000%22%20stroke%3D%22none%22%20d%3D%22M22%2010.4C21%2013.4%2018.2%2014.6%2016.4%2014.1%2017.4%2012.3%2019.4%2010.8%2022%2010.4Z%22%2F%3E%3Cg%20transform%3D%22matrix%28-1%200%200%201%2064%200%29%22%3E%3Cpath%20d%3D%22M26%2010C21%2010%2019%205%2014%206%2010%207%2010%2012%2013.5%2012.5%2016%2012.8%2016.5%2010%2014.8%209.4%22%2F%3E%3Cpath%20fill%3D%22%23000%22%20stroke%3D%22none%22%20d%3D%22M22%2010.4C21%2013.4%2018.2%2014.6%2016.4%2014.1%2017.4%2012.3%2019.4%2010.8%2022%2010.4Z%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  --fatum-ornament-present: 1;
  --fatum-rule-style: solid;
  --fatum-rule-weight: 1px;
  --fatum-rule-fade: none;
  --fatum-mark-fill: var(--color-brand);
  --fatum-mark-length: 3rem;
  --fatum-mark-thickness: 2px;
  --fatum-mark-fade: none;
  --fatum-die-body: #f4ecdc;
  --fatum-die-label: #241c14;
  --fatum-die-edge: #c9af6a;
  --fatum-die-material: plastic;
  --fatum-die-face: 'Inter';
  --fatum-dropcap-float: left;
  --fatum-dropcap-lines: 2;
  --fatum-dropcap-size: 3.1em;
  --fatum-dropcap-face: var(--font-display);
  --fatum-dropcap-ink: var(--color-link);
  --fatum-dropcap-inset: initial;
  --fatum-dropcap-gap: initial;
  --fatum-dropcap-frame: 0px;
  --fatum-leadin-case: none;
  --fatum-leadin-size: 1em;
  --fatum-leadin-weight: initial;
  --fatum-leadin-tracking: 0em;
  --fatum-numbering: decimal;
  --fatum-numbering-face: initial;
  --fatum-ordinal-ring: none;
  --fatum-radius-control: 0.375rem;
  --fatum-radius-bookend: 0.375rem;
  --fatum-radius-surface: 0.25rem;
  --fatum-radius-sheet: 0.625rem;
  --fatum-radius-stamp: 999px;
}

[data-fatum-theme="dark-fantasy"] {
  --fatum-ornament: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2064%2020%22%3E%3Cpath%20id%3D%22arm%22%20d%3D%22M31%2010%2028.4%202.4Q32%203.8%2035.6%202.4L33%2010Z%22%2F%3E%3Cuse%20href%3D%22%23arm%22%20transform%3D%22rotate%2890%2032%2010%29%22%2F%3E%3Cuse%20href%3D%22%23arm%22%20transform%3D%22rotate%28180%2032%2010%29%22%2F%3E%3Cuse%20href%3D%22%23arm%22%20transform%3D%22rotate%28270%2032%2010%29%22%2F%3E%3Ccircle%20cx%3D%2232%22%20cy%3D%2210%22%20r%3D%221.8%22%2F%3E%3Cpath%20d%3D%22M23%2010%2013%208.9%206%2010%2013%2011.1ZM41%2010%2051%208.9%2058%2010%2051%2011.1Z%22%2F%3E%3C%2Fsvg%3E");
  --fatum-ornament-present: 1;
  --fatum-rule-style: double;
  --fatum-rule-weight: 3px;
  --fatum-rule-fade: none;
  --fatum-mark-fill: linear-gradient(var(--color-brand), var(--color-brand)) top / 100% 1.5px no-repeat, linear-gradient(var(--color-brand), var(--color-brand)) bottom / 100% 1.5px no-repeat;
  --fatum-mark-length: 3.5rem;
  --fatum-mark-thickness: 5px;
  --fatum-mark-fade: none;
  --fatum-die-body: #1f1a1e;
  --fatum-die-label: #d9b560;
  --fatum-die-edge: #8a6d33;
  --fatum-die-material: metal;
  --fatum-die-face: 'Cinzel';
  --fatum-dropcap-float: left;
  --fatum-dropcap-lines: 2;
  --fatum-dropcap-size: 3.1em;
  --fatum-dropcap-face: var(--font-display);
  --fatum-dropcap-ink: var(--color-link);
  --fatum-dropcap-inset: 0.125rem 0.3125rem 0.0625rem;
  --fatum-dropcap-gap: 0.3125rem 0.625rem 0.25rem 0.3125rem;
  --fatum-dropcap-frame: 1px;
  --fatum-leadin-case: none;
  --fatum-leadin-size: 1em;
  --fatum-leadin-weight: initial;
  --fatum-leadin-tracking: 0em;
  --fatum-numbering: upper-roman;
  --fatum-numbering-face: var(--font-display);
  --fatum-ordinal-ring: none;
  --fatum-radius-control: 0.125rem;
  --fatum-radius-bookend: 0.125rem;
  --fatum-radius-surface: 0px;
  --fatum-radius-sheet: 0px;
  --fatum-radius-stamp: 0.125rem;
}

[data-fatum-theme="case-file"] {
  --fatum-ornament: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2064%2020%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.15%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cg%20transform%3D%22translate%282%200%29%20scale%281.25%29%20rotate%28-7%2024%208%29%22%3E%3Cpath%20d%3D%22M34%2012H8A4%204%200%200%201%208%204H40A3%203%200%200%201%2040%2010H12A2%202%200%200%201%2012%206H32%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  --fatum-ornament-present: 1;
  --fatum-rule-style: solid;
  --fatum-rule-weight: 1px;
  --fatum-rule-fade: none;
  --fatum-mark-fill: var(--color-brand);
  --fatum-mark-length: 2rem;
  --fatum-mark-thickness: 6px;
  --fatum-mark-fade: none;
  --fatum-die-body: #fbfcfe;
  --fatum-die-label: #0a3a70;
  --fatum-die-edge: #9fb3c8;
  --fatum-die-material: plastic;
  --fatum-die-face: 'Inter';
  --fatum-dropcap-float: none;
  --fatum-dropcap-lines: normal;
  --fatum-dropcap-size: 1em;
  --fatum-dropcap-face: var(--font-text);
  --fatum-dropcap-ink: currentColor;
  --fatum-dropcap-inset: 0px;
  --fatum-dropcap-gap: 0px;
  --fatum-dropcap-frame: 0px;
  --fatum-leadin-case: uppercase;
  --fatum-leadin-size: 0.82em;
  --fatum-leadin-weight: 700;
  --fatum-leadin-tracking: 0.08em;
  --fatum-numbering: upper-alpha;
  --fatum-numbering-face: initial;
  --fatum-ordinal-ring: none;
  --fatum-radius-control: 0.125rem;
  --fatum-radius-bookend: 0.125rem;
  --fatum-radius-surface: 0px;
  --fatum-radius-sheet: 0px;
  --fatum-radius-stamp: 0.125rem;
}

[data-fatum-theme="neon"] {
  --fatum-ornament: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2064%2020%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.4%22%3E%3Cg%20transform%3D%22translate%280%200.86%29%20scale%281.142857%29%22%3E%3Cpath%20stroke-linecap%3D%22square%22%20d%3D%22M4%208H7M49%208H52%22%2F%3E%3Cpath%20stroke-linecap%3D%22square%22%20stroke-linejoin%3D%22miter%22%20d%3D%22M16%203%2010.5%208%2016%2013M40%203%2045.5%208%2040%2013%22%2F%3E%3Cpath%20stroke-linejoin%3D%22miter%22%20stroke-width%3D%221.2%22%20d%3D%22M28%203.5%2032.5%208%2028%2012.5%2023.5%208Z%22%2F%3E%3Ccircle%20fill%3D%22%23000%22%20stroke%3D%22none%22%20cx%3D%2228%22%20cy%3D%228%22%20r%3D%221.4%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  --fatum-ornament-present: 1;
  --fatum-rule-style: solid;
  --fatum-rule-weight: 1px;
  --fatum-rule-fade: none;
  --fatum-mark-fill: var(--color-brand);
  --fatum-mark-length: 3rem;
  --fatum-mark-thickness: 2px;
  --fatum-mark-fade: none;
  --fatum-die-body: #123040;
  --fatum-die-label: #2ee6d6;
  --fatum-die-edge: #ff4fd8;
  --fatum-die-material: glass;
  --fatum-die-face: 'JetBrains Mono';
  --fatum-dropcap-float: none;
  --fatum-dropcap-lines: normal;
  --fatum-dropcap-size: 1em;
  --fatum-dropcap-face: var(--font-text);
  --fatum-dropcap-ink: currentColor;
  --fatum-dropcap-inset: 0px;
  --fatum-dropcap-gap: 0px;
  --fatum-dropcap-frame: 0px;
  --fatum-leadin-case: none;
  --fatum-leadin-size: 1em;
  --fatum-leadin-weight: initial;
  --fatum-leadin-tracking: 0em;
  --fatum-numbering: decimal-leading-zero;
  --fatum-numbering-face: initial;
  --fatum-ordinal-ring: none;
  --fatum-radius-control: 0.125rem;
  --fatum-radius-bookend: 0.125rem;
  --fatum-radius-surface: 0px;
  --fatum-radius-sheet: 0px;
  --fatum-radius-stamp: 0.125rem;
}

[data-fatum-theme="dread"] {
  --fatum-ornament: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2064%2020%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.25%22%20stroke-linecap%3D%22round%22%3E%3Cpath%20transform%3D%22translate%2832%205.2%29%20rotate%284%29%22%20d%3D%22M0-3.6V3.6M-3.1-1.8%203.1%201.8M-3.1%201.8%203.1-1.8%22%2F%3E%3Cpath%20transform%3D%22translate%2826.2%2014.2%29%20rotate%28-9%29%22%20d%3D%22M0-3.6V3.6M-3.1-1.8%203.1%201.8M-3.1%201.8%203.1-1.8%22%2F%3E%3Cpath%20transform%3D%22translate%2837.8%2014.2%29%20rotate%2812%29%22%20d%3D%22M0-3.6V3.6M-3.1-1.8%203.1%201.8M-3.1%201.8%203.1-1.8%22%2F%3E%3C%2Fsvg%3E");
  --fatum-ornament-present: 1;
  --fatum-rule-style: dotted;
  --fatum-rule-weight: 2px;
  --fatum-rule-fade: linear-gradient(to right, transparent, black 35%, black 65%, transparent);
  --fatum-mark-fill: radial-gradient(circle closest-side, var(--color-brand) 90%, transparent) left center / 5px 2px repeat-x;
  --fatum-mark-length: 5.5rem;
  --fatum-mark-thickness: 2px;
  --fatum-mark-fade: linear-gradient(to right, black 30%, transparent);
  --fatum-die-body: #d9cfb0;
  --fatum-die-label: #26261e;
  --fatum-die-edge: #8a856c;
  --fatum-die-material: plastic;
  --fatum-die-face: 'EB Garamond';
  --fatum-dropcap-float: left;
  --fatum-dropcap-lines: 2;
  --fatum-dropcap-size: 3.1em;
  --fatum-dropcap-face: var(--font-display);
  --fatum-dropcap-ink: var(--color-link);
  --fatum-dropcap-inset: initial;
  --fatum-dropcap-gap: initial;
  --fatum-dropcap-frame: 0px;
  --fatum-leadin-case: none;
  --fatum-leadin-size: 1em;
  --fatum-leadin-weight: initial;
  --fatum-leadin-tracking: 0em;
  --fatum-numbering: lower-roman;
  --fatum-numbering-face: var(--font-display);
  --fatum-ordinal-ring: none;
  --fatum-radius-control: 0.375rem;
  --fatum-radius-bookend: 0.375rem;
  --fatum-radius-surface: 0.25rem;
  --fatum-radius-sheet: 0.625rem;
  --fatum-radius-stamp: 999px;
}

[data-fatum-theme="modern-horror"] {
  --fatum-ornament: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2064%2020%22%20fill%3D%22none%22%20stroke%3D%22%23000%22%20stroke-width%3D%221.5%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20transform%3D%22translate%280%201.11%29%20scale%280.8889%29%22%20d%3D%22M0%2010H25L27%206.5%2029%2010H31L33.5%202%2037%2018%2039.5%2010H42L44%208%2046%2010H72%22%2F%3E%3C%2Fsvg%3E");
  --fatum-ornament-present: 1;
  --fatum-rule-style: solid;
  --fatum-rule-weight: 1px;
  --fatum-rule-fade: none;
  --fatum-mark-fill: linear-gradient(var(--color-brand), var(--color-brand)) left center / 2.5rem 3px no-repeat, linear-gradient(var(--color-line-strong), var(--color-line-strong)) left center / 100% 1px no-repeat;
  --fatum-mark-length: 100%;
  --fatum-mark-thickness: 3px;
  --fatum-mark-fade: none;
  --fatum-die-body: #c8cdd1;
  --fatum-die-label: #a3180f;
  --fatum-die-edge: #6b7278;
  --fatum-die-material: plastic;
  --fatum-die-face: 'Inter';
  --fatum-dropcap-float: none;
  --fatum-dropcap-lines: normal;
  --fatum-dropcap-size: 1em;
  --fatum-dropcap-face: var(--font-text);
  --fatum-dropcap-ink: currentColor;
  --fatum-dropcap-inset: 0px;
  --fatum-dropcap-gap: 0px;
  --fatum-dropcap-frame: 0px;
  --fatum-leadin-case: none;
  --fatum-leadin-size: 1em;
  --fatum-leadin-weight: initial;
  --fatum-leadin-tracking: 0em;
  --fatum-numbering: decimal;
  --fatum-numbering-face: initial;
  --fatum-ordinal-ring: none;
  --fatum-radius-control: 0.125rem;
  --fatum-radius-bookend: 0.125rem;
  --fatum-radius-surface: 0px;
  --fatum-radius-sheet: 0px;
  --fatum-radius-stamp: 0.125rem;
}

[data-fatum-theme="plain-reader"] {
  --fatum-ornament: none;
  --fatum-ornament-present: 0;
  --fatum-rule-style: solid;
  --fatum-rule-weight: 1px;
  --fatum-rule-fade: none;
  --fatum-mark-fill: var(--color-brand);
  --fatum-mark-length: 3rem;
  --fatum-mark-thickness: 2px;
  --fatum-mark-fade: none;
  --fatum-die-body: #ffffff;
  --fatum-die-label: #111111;
  --fatum-die-edge: #767676;
  --fatum-die-material: plastic;
  --fatum-die-face: 'Atkinson Hyperlegible';
  --fatum-dropcap-float: none;
  --fatum-dropcap-lines: normal;
  --fatum-dropcap-size: 1em;
  --fatum-dropcap-face: var(--font-text);
  --fatum-dropcap-ink: currentColor;
  --fatum-dropcap-inset: 0px;
  --fatum-dropcap-gap: 0px;
  --fatum-dropcap-frame: 0px;
  --fatum-leadin-case: none;
  --fatum-leadin-size: 1em;
  --fatum-leadin-weight: initial;
  --fatum-leadin-tracking: 0em;
  --fatum-numbering: decimal;
  --fatum-numbering-face: initial;
  --fatum-ordinal-ring: none;
  --fatum-radius-control: 0.375rem;
  --fatum-radius-bookend: 0.375rem;
  --fatum-radius-surface: 0.25rem;
  --fatum-radius-sheet: 0.625rem;
  --fatum-radius-stamp: 999px;
}

[data-fatum-theme="hearth"] {
  --fatum-ornament: url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2064%2020%22%3E%3Cg%20transform%3D%22translate%284%200%29%22%3E%3Cpath%20opacity%3D%22.75%22%20d%3D%22M20.5%2010.6Q15%206.2%209%209.2%2015%2013.8%2020.5%2010.6ZM35.5%2010.6Q41%206.2%2047%209.2%2041%2013.8%2035.5%2010.6Z%22%2F%3E%3Cellipse%20id%3D%22petal%22%20cx%3D%2228%22%20cy%3D%226.3%22%20rx%3D%222.3%22%20ry%3D%223.3%22%2F%3E%3Cuse%20href%3D%22%23petal%22%20transform%3D%22rotate%2872%2028%2010%29%22%2F%3E%3Cuse%20href%3D%22%23petal%22%20transform%3D%22rotate%28144%2028%2010%29%22%2F%3E%3Cuse%20href%3D%22%23petal%22%20transform%3D%22rotate%28216%2028%2010%29%22%2F%3E%3Cuse%20href%3D%22%23petal%22%20transform%3D%22rotate%28288%2028%2010%29%22%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E");
  --fatum-ornament-present: 1;
  --fatum-rule-style: dashed;
  --fatum-rule-weight: 2px;
  --fatum-rule-fade: none;
  --fatum-mark-fill: repeating-linear-gradient(to right, var(--color-brand) 0 4px, transparent 4px 7px);
  --fatum-mark-length: 3.75rem;
  --fatum-mark-thickness: 2px;
  --fatum-mark-fade: none;
  --fatum-die-body: #dcb07a;
  --fatum-die-label: #3a2414;
  --fatum-die-edge: #9c6b3a;
  --fatum-die-material: wood;
  --fatum-die-face: 'Nunito';
  --fatum-dropcap-float: left;
  --fatum-dropcap-lines: 2;
  --fatum-dropcap-size: 3.1em;
  --fatum-dropcap-face: var(--font-display);
  --fatum-dropcap-ink: var(--color-link);
  --fatum-dropcap-inset: initial;
  --fatum-dropcap-gap: initial;
  --fatum-dropcap-frame: 0px;
  --fatum-leadin-case: none;
  --fatum-leadin-size: 1em;
  --fatum-leadin-weight: initial;
  --fatum-leadin-tracking: 0em;
  --fatum-numbering: decimal;
  --fatum-numbering-face: initial;
  --fatum-ordinal-ring: inset 0 0 0 1px var(--color-brand);
  --fatum-radius-control: 0.875rem;
  --fatum-radius-bookend: 999px;
  --fatum-radius-surface: 0.875rem;
  --fatum-radius-sheet: 1.375rem;
  --fatum-radius-stamp: 999px;
}

/* The OS wins outright: inside forced-colors the theme stops painting rather than
   fighting the system palette (themes.md section 8). */
@media (forced-colors: active) {
  [data-fatum-theme] { forced-color-adjust: auto; }
}
