.theme-abyss {
    color-scheme: dark;
    --text-color: #ffffff;
    --background-color: #000000;
    --surface-color: #18181a;
    --control-color: #2c2c30;
    --accent-color: #059fff;
    --accent-text-color: #ffffff;
}

.theme-graphite {
    color-scheme: dark;
    --text-color: #ffffff;
    --background-color: #1f1f1f;
    --surface-color: #292929;
    --control-color: #383838;
    --accent-color: #354f63;
    --accent-text-color: #ffffff;
}

.theme-ghost {
    color-scheme: light;
    --text-color: #242424;
    --background-color: #ffffff;
    --surface-color: #ececec;
    --control-color: #d6d6d6;
    --accent-color: #242424;
    --accent-text-color: #ffffff;
}

.theme-blizzard {
    color-scheme: light;
    --text-color: #242424;
    --background-color: #cde7f5;
    --surface-color: #b3d5e9;
    --control-color: #95bcd3;
    --accent-color: #71b2d3;
    --accent-text-color: #242424;
    --error-color: #b42222;
}

.theme-sage {
    color-scheme: light;
    --text-color: #242424;
    --background-color: #bacbb0;
    --surface-color: #a1b794;
    --control-color: #8aa27c;
    --accent-color: #5c8a5b;
    --accent-text-color: #242424;
    --error-color: #b42222;
}

.theme-dune {
    color-scheme: light;
    --text-color: #242424;
    --background-color: #cbc3af;
    --surface-color: #b7ac93;
    --control-color: #a3977c;
    --accent-color: #917856;
    --accent-text-color: #242424;
    --error-color: #b42222;
}

.theme-rose {
    color-scheme: light;
    --text-color: #242424;
    --background-color: #F4DBD8;
    --surface-color: #e0c4c0;
    --control-color: #c7a8a5;
    --accent-color: #ae817c;
    --accent-text-color: #242424;
    --error-color: #b42222;
}

.theme-lavender {
    color-scheme: light;
    --text-color: #242424;
    --background-color: #c3c0e5;
    --surface-color: #b0acd7;
    --control-color: #a19bd1;
    --accent-color: #7e78be;
    --accent-text-color: #242424;
    --error-color: #b42222;
}

/* Seasonal */

.theme-festive {
    color-scheme: light;
    --text-color: #41382d;
    --background-color: #f1e2cc;
    --surface-color: #dbc8ab;
    --control-color: #b9a68a;
    --accent-color: #c72c3a;
    --accent-text-color: #4b0000;
    --error-color: #940000;
}

body.theme-festive::after {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image: url(./assets/foliage.png);
    background-size: 100px;
    background-repeat: repeat-x;
}

.theme-winter {
    color-scheme: light;
    --text-color: #414141;
    --background-color: #f1faff;
    --surface-color: #ceeafc;
    --control-color: #aed8f0;
    --accent-color: #5ec9ff;
    --accent-text-color: #414141;
}

body.theme-winter::after,
body.theme-winter>dialog::after {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url(./assets/snow.png);
    background-size: 100px;
    background-repeat: repeat-x;
    pointer-events: none;
}

/* Special */

.theme-outcast {
    color-scheme: dark;
    --text-color: #ffffff;
    --background-color: #000000;
    --surface-color: #111111;
    --control-color: #111111;
    --accent-color: #ffffff;
    --accent-text-color: #000000;
    --error-color: #b31225;
    --attention-color: #b31225;
}

.theme-outcast :is(input, textarea, button, dialog) {
    border: 2px solid #202020;
}

.theme-outcast dialog {
    background: repeating-linear-gradient(90deg, #050505 0 25px, #1f1f1f 0, #0f0f0f 50px);
    box-shadow: 0 0 20px #050505 inset;
}

.theme-outcast hr {
    border-color: var(--text-color);
}