:root {
    /* Semantic tones are independent from brand and personal themes. */
    --tone-light-love:#bd3e66; --tone-light-love-bg:#fceef3; --tone-dark-love:#efa9c4; --tone-dark-love-bg:#412838;
    --tone-light-medal-bronze-bg:#f9f0eb; --tone-light-medal-bronze:#c8a18b;
    --tone-dark-medal-bronze-bg:#382e29; --tone-dark-medal-bronze:#987a68;
    --tone-light-secondary:#58657a; --tone-light-secondary-bg:#eef1f6; --tone-light-secondary-border:#c8d0dc; --tone-light-secondary-hover:#465268; --tone-light-secondary-ink:#ffffff;
    --tone-light-info:#2f6695; --tone-light-info-bg:#edf5fc; --tone-light-info-border:#b8d0e7; --tone-light-info-hover:#24537b; --tone-light-info-ink:#ffffff;
    --tone-light-success:#237861; --tone-light-success-bg:#edf7f3; --tone-light-success-border:#b5d5c9; --tone-light-success-hover:#1a614e; --tone-light-success-ink:#ffffff;
    --tone-light-warning:#8f620e; --tone-light-warning-bg:#fff7e6; --tone-light-warning-border:#e3cd99; --tone-light-warning-hover:#73500c; --tone-light-warning-ink:#ffffff;
    --tone-light-error:#b13d55; --tone-light-error-bg:#fff1f4; --tone-light-error-border:#e6b9c3; --tone-light-error-hover:#923047; --tone-light-error-ink:#ffffff;
    --tone-dark-secondary:#bac5d7; --tone-dark-secondary-bg:#293141; --tone-dark-secondary-border:#536078; --tone-dark-secondary-hover:#d0d8e5; --tone-dark-secondary-ink:#202839;
    --tone-dark-info:#a6c9ed; --tone-dark-info-bg:#223345; --tone-dark-info-border:#496781; --tone-dark-info-hover:#c3ddf5; --tone-dark-info-ink:#192a3b;
    --tone-dark-success:#9dd5c1; --tone-dark-success-bg:#20372f; --tone-dark-success-border:#486e5d; --tone-dark-success-hover:#b9e5d4; --tone-dark-success-ink:#193228;
    --tone-dark-warning:#edca86; --tone-dark-warning-bg:#3b3121; --tone-dark-warning-border:#7a643a; --tone-dark-warning-hover:#f7dcaa; --tone-dark-warning-ink:#352b1a;
    --tone-dark-error:#f2a8b9; --tone-dark-error-bg:#402932; --tone-dark-error-border:#865364; --tone-dark-error-hover:#f7c2ce; --tone-dark-error-ink:#371d28;
    --secondary:var(--tone-light-secondary); --secondary-bg:var(--tone-light-secondary-bg); --secondary-border:var(--tone-light-secondary-border); --secondary-hover:var(--tone-light-secondary-hover); --secondary-ink:var(--tone-light-secondary-ink);
    --info:var(--tone-light-info); --info-bg:var(--tone-light-info-bg); --info-border:var(--tone-light-info-border); --info-hover:var(--tone-light-info-hover); --info-ink:var(--tone-light-info-ink);
    --success:var(--tone-light-success); --success-bg:var(--tone-light-success-bg); --success-border:var(--tone-light-success-border); --success-hover:var(--tone-light-success-hover); --success-ink:var(--tone-light-success-ink);
    --warning:var(--tone-light-warning); --warning-bg:var(--tone-light-warning-bg); --warning-border:var(--tone-light-warning-border); --warning-hover:var(--tone-light-warning-hover); --warning-ink:var(--tone-light-warning-ink);
    --error:var(--tone-light-error); --error-bg:var(--tone-light-error-bg); --error-border:var(--tone-light-error-border); --error-hover:var(--tone-light-error-hover); --error-ink:var(--tone-light-error-ink);

    color-scheme: light;
    background: var(--paper);
    color: var(--ink);
    --atelier-background: var(--surface);
    --avatar-background: #51495e;
    --gold: #946c22;
    --medal-gold-bg:var(--warning-bg); --medal-gold:var(--warning-border);
    --medal-silver-bg:var(--secondary-bg); --medal-silver:var(--secondary-border);
    --medal-bronze-bg:var(--tone-light-medal-bronze-bg); --medal-bronze:var(--tone-light-medal-bronze);
    --paper: #f7f7fa;
    --surface: #ffffff;
    --surface-soft: #f3f4f7;
    --brand-soft: #f2edfa;
    --surface-white: #fff;
    --ink: #252236;
    --muted: #656477;
    --primary: #7044b4;
    --primary-hover: #593193;
    --primary-ink: #FFFFFF;
    --primary-hover-ink: #FFFFFF;
    --primary-text: #6033aa;
    --peach: var(--surface-soft);
    --sage: var(--brand-soft);
    /* Compatibility with existing module and button names. */
    --green: var(--primary-text);
    --green-ink: #FFFFFF;
    --love:var(--tone-light-love);
    --love-bg:var(--tone-light-love-bg);
    --line: #dedfe7;
    --line-strong: #81778e;
    --reader-ink: var(--ink);
    --reader-muted: var(--muted);
    --reader-line: var(--line);
    --track: #e7e2ef;
    --shadow-color: #24222c;
    --shadow: color-mix(in srgb, var(--shadow-color) 8%, var(--clear));
    --shadow-strong: color-mix(in srgb, var(--shadow-color) 20%, var(--clear));
    --scrim: color-mix(in srgb, var(--shadow-color) 45%, var(--clear));
    --image-scrim: #000;
    --clear: transparent;
    --wood: #60452d;
    --wood-edge: #9d693d;
    --spine-ink: #271d19;
    --spine-light: #f7eed4;
    --font-reader: 'Times New Roman', Times, serif;
    --font-body: 'Avenir Next', 'Segoe UI', Arial, sans-serif;
    --font-display: Georgia, 'Times New Roman', serif;
    --font-ui: var(--font-body);
    --text-inverse: #fff;
    --overlay-ink: #ffffff;
    --overlay-background: #23232de6;
    --overlay-soft: #ffffff1f;
    --overlay-line: #ffffff59;
    --overlay-muted: #ffffffcc;
    --text-caption: .875rem;
    --text-small: .875rem;
    --text-base: 1rem;
    --text-lede: 1rem;
    --text-card: 1.25rem;
    --text-section: 1.5rem;
    --text-title: clamp(1.75rem,2.4vw,2.25rem);
    --leading-body: 1.5;
    --leading-heading: 1.2;
    --space-1: .25rem;
    --space-2: .5rem;
    --space-3: .75rem;
    --space-4: 1rem;
    --space-5: 1.5rem;
    --space-6: 2rem;
    --space-7: 3rem;
    --radius-small: 6px;
    --radius: 12px;
    --radius-pill: 999px;
    --header-height: 86px;
}

:root[data-color-theme="dark"] {
    --shadow-color:#000000;
    --medal-bronze-bg:var(--tone-dark-medal-bronze-bg); --medal-bronze:var(--tone-dark-medal-bronze);
    --secondary:var(--tone-dark-secondary); --secondary-bg:var(--tone-dark-secondary-bg); --secondary-border:var(--tone-dark-secondary-border); --secondary-hover:var(--tone-dark-secondary-hover); --secondary-ink:var(--tone-dark-secondary-ink);
    --info:var(--tone-dark-info); --info-bg:var(--tone-dark-info-bg); --info-border:var(--tone-dark-info-border); --info-hover:var(--tone-dark-info-hover); --info-ink:var(--tone-dark-info-ink);
    --success:var(--tone-dark-success); --success-bg:var(--tone-dark-success-bg); --success-border:var(--tone-dark-success-border); --success-hover:var(--tone-dark-success-hover); --success-ink:var(--tone-dark-success-ink);
    --warning:var(--tone-dark-warning); --warning-bg:var(--tone-dark-warning-bg); --warning-border:var(--tone-dark-warning-border); --warning-hover:var(--tone-dark-warning-hover); --warning-ink:var(--tone-dark-warning-ink);
    --error:var(--tone-dark-error); --error-bg:var(--tone-dark-error-bg); --error-border:var(--tone-dark-error-border); --error-hover:var(--tone-dark-error-hover); --error-ink:var(--tone-dark-error-ink);

    color-scheme: dark;
    --paper: #17141d;
    --surface: #211d2b;
    --surface-soft: #292735;
    --brand-soft: #342845;
    --surface-white: #211d2b;
    --ink: #f1edf8;
    --muted: #b2a9c2;
    --primary: #bb9af7;
    --primary-hover: #cbb0fa;
    --primary-ink: #20142f;
    --primary-hover-ink: #20142f;
    --primary-text: #cbb0fa;
    --peach: var(--surface-soft);
    --sage: var(--brand-soft);
    --green: var(--primary-text);
    --green-ink: #20142f;
    --line: #3d354a;
    --line-strong: #81738f;
    --love:var(--tone-dark-love);
    --love-bg:var(--tone-dark-love-bg);
    --track: #4b405c;
    --gold: #f0cf90;
}

.palette-cream {
    --module-surface: var(--surface);
}

.palette-sage {
    --module-surface: var(--sage);
}

.palette-peach {
    --module-surface: var(--peach);
}

.palette-terracotta {
    --module-surface: var(--error-bg);
}

@media(max-width:760px) {
    :root {
        --header-height: 116px;
        --text-base: 1rem;
    }
}

/* Rebind semantic aliases at personal theme boundaries, including a light theme
   inside a dark site. Inherited aliases otherwise retain the parent palette. */
:is(.desktop-enabled,.desktop-appearance-theme):is([data-desktop-theme=paper],[data-desktop-theme=forest]),
:is(.profile-page,.profile-scenery,.habillage-miniature):is(.profile-theme-rose,.profile-theme-forest,.profile-theme-lavender,.profile-theme-ocean,.profile-theme-sunset,.profile-theme-amber) {
    --surface-white:var(--surface); --sage:var(--surface-soft); --peach:var(--surface-soft);
    --green:var(--primary-text); --green-ink:var(--primary-ink);
    --reader-ink:var(--ink); --reader-muted:var(--muted); --reader-line:var(--line);
    --love:var(--tone-light-love); --love-bg:var(--tone-light-love-bg);
    --gold:var(--warning); --track:var(--line); --brand-soft:var(--surface-soft);
    --medal-gold-bg:var(--warning-bg); --medal-gold:var(--warning-border);
    --medal-silver-bg:var(--secondary-bg); --medal-silver:var(--secondary-border);
    --medal-bronze-bg:var(--tone-light-medal-bronze-bg); --medal-bronze:var(--tone-light-medal-bronze);
    --secondary:var(--tone-light-secondary); --secondary-bg:var(--tone-light-secondary-bg); --secondary-border:var(--tone-light-secondary-border); --secondary-hover:var(--tone-light-secondary-hover); --secondary-ink:var(--tone-light-secondary-ink);
    --info:var(--tone-light-info); --info-bg:var(--tone-light-info-bg); --info-border:var(--tone-light-info-border); --info-hover:var(--tone-light-info-hover); --info-ink:var(--tone-light-info-ink);
    --success:var(--tone-light-success); --success-bg:var(--tone-light-success-bg); --success-border:var(--tone-light-success-border); --success-hover:var(--tone-light-success-hover); --success-ink:var(--tone-light-success-ink);
    --warning:var(--tone-light-warning); --warning-bg:var(--tone-light-warning-bg); --warning-border:var(--tone-light-warning-border); --warning-hover:var(--tone-light-warning-hover); --warning-ink:var(--tone-light-warning-ink);
    --error:var(--tone-light-error); --error-bg:var(--tone-light-error-bg); --error-border:var(--tone-light-error-border); --error-hover:var(--tone-light-error-hover); --error-ink:var(--tone-light-error-ink);
}
:is(.desktop-enabled,.desktop-appearance-theme)[data-desktop-theme=night],
:is(.profile-page,.profile-scenery,.habillage-miniature):is(.profile-theme-midnight,.profile-theme-gothic) {
    --surface-white:var(--surface); --sage:var(--surface-soft); --peach:var(--surface-soft);
    --green:var(--primary-text); --green-ink:var(--primary-ink);
    --reader-ink:var(--ink); --reader-muted:var(--muted); --reader-line:var(--line);
    --love:var(--tone-dark-love); --love-bg:var(--tone-dark-love-bg);
    --gold:var(--warning); --track:var(--line); --brand-soft:var(--surface-soft);
    --medal-gold-bg:var(--warning-bg); --medal-gold:var(--warning-border);
    --medal-silver-bg:var(--secondary-bg); --medal-silver:var(--secondary-border);
    --medal-bronze-bg:var(--tone-dark-medal-bronze-bg); --medal-bronze:var(--tone-dark-medal-bronze);
    --secondary:var(--tone-dark-secondary); --secondary-bg:var(--tone-dark-secondary-bg); --secondary-border:var(--tone-dark-secondary-border); --secondary-hover:var(--tone-dark-secondary-hover); --secondary-ink:var(--tone-dark-secondary-ink);
    --info:var(--tone-dark-info); --info-bg:var(--tone-dark-info-bg); --info-border:var(--tone-dark-info-border); --info-hover:var(--tone-dark-info-hover); --info-ink:var(--tone-dark-info-ink);
    --success:var(--tone-dark-success); --success-bg:var(--tone-dark-success-bg); --success-border:var(--tone-dark-success-border); --success-hover:var(--tone-dark-success-hover); --success-ink:var(--tone-dark-success-ink);
    --warning:var(--tone-dark-warning); --warning-bg:var(--tone-dark-warning-bg); --warning-border:var(--tone-dark-warning-border); --warning-hover:var(--tone-dark-warning-hover); --warning-ink:var(--tone-dark-warning-ink);
    --error:var(--tone-dark-error); --error-bg:var(--tone-dark-error-bg); --error-border:var(--tone-dark-error-border); --error-hover:var(--tone-dark-error-hover); --error-ink:var(--tone-dark-error-ink);
}
