/* Site theme tokens and selectable light/dark presets. */

/* Text accents have a separate contrast role from filled brand surfaces. */
:root,
body {
    --primary-text: color-mix(in oklab, var(--primary) 85%, var(--foreground));
    --rating-text: var(--primary);
}

body:is(.darkmode, .dark) {
    --primary-text: color-mix(in oklab, var(--primary) 35%, var(--foreground));
}

html[data-starless-theme="cattpuctin"] body:not(.darkmode, .dark) {
    --primary-text: color-mix(in oklab, var(--primary) 30%, var(--foreground));
}

:root,
.kol-account-theme__preview[data-starless-theme-preview="old-king-of-novels"] {
    /* Shared baseline and the preserved Old King of Novel palette. */
    /* shadcn tokens */
    --background: #f5f5f5;
    --foreground: #171717;
    --card: #ffffff;
    --card-foreground: #171717;
    --popover: #ffffff;
    --popover-foreground: #171717;
    --primary: #6d0015;
    --primary-foreground: #ffffff;
    --secondary: #eeeeee;
    --secondary-foreground: #171717;
    --muted: #f7f7f7;
    --muted-foreground: #777777;
    --accent: #f0f0f0;
    --accent-foreground: #171717;
    --destructive: #dc2626;
    --destructive-foreground: #ffffff;
    --border: #dddddd;
    --input: #dddddd;
    --ring: #6d0015;
    --radius: 0.375rem;

    /* Intentional domain-specific exception: gold rating color. */
    --rating: #f5c542;
    --rating-foreground: #171717;
    --badge-purple: #6d38c8;
    --badge-purple-foreground: #ffffff;
    --link: #366ad3;
    --link-foreground: #ffffff;

    --starless-primary: var(--primary);
    --starless-primary-dark: #500010;
    --starless-on-primary: var(--primary-foreground);
    --starless-background: var(--background);
    --starless-surface: var(--card);
    --starless-surface-muted: var(--secondary);
    --starless-surface-raised: var(--muted);
    --starless-text: var(--foreground);
    --starless-muted: var(--muted-foreground);
    --starless-border: var(--border);
    --starless-success: #1b5e20;
    --starless-danger: var(--destructive);
    --starless-warning: var(--rating);
    --starless-silver: #8e98a6;
    --starless-bronze: #c57448;
    --starless-info: var(--link);
    --starless-special: var(--badge-purple);

    /* Standard shadcn extended tokens used by the child theme. */
    --chart-2: #28a745;
    --sidebar: #333;
    --sidebar-primary: #292f56;
    --sidebar-accent: #0000004a;

    --radius-sm: calc(var(--radius) - 4px);
    --radius-md: calc(var(--radius) - 2px);
    --radius-lg: var(--radius);
    --radius-xl: calc(var(--radius) + 4px);
    --shadow-sm:
        0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 1px 2px -1px hsl(0 0% 0% / 0.1);
    --shadow-md:
        0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 2px 4px -1px hsl(0 0% 0% / 0.1);
    --shadow-lg:
        0 1px 3px 0px hsl(0 0% 0% / 0.1), 0 4px 6px -1px hsl(0 0% 0% / 0.1);

    /* novel card panels */
    --novel-panel-border: none;
    --border-radius: 4px;
    --font-size-small: 12px;
    --gap-small: 2px;
    --gap-medium: 15px;
    --gap-large: 17px;
    --padding-small: 5px;
    --padding-medium: 1px 22px;
    --padding-large: 8px 15px;
}

.darkmode,
html[data-starless-theme="old-king-of-novels"] .dark,
html[data-starless-theme="old-king-of-novels"] [data-theme="dark"],
html[data-starless-theme="old-king-of-novels"].dark,
html[data-starless-theme="old-king-of-novels"][data-theme="dark"],
body.darkmode .kol-account-theme__preview[data-starless-theme-preview="old-king-of-novels"],
body.dark .kol-account-theme__preview[data-starless-theme-preview="old-king-of-novels"],
body[data-theme="dark"] .kol-account-theme__preview[data-starless-theme-preview="old-king-of-novels"],
html.dark .kol-account-theme__preview[data-starless-theme-preview="old-king-of-novels"],
html[data-theme="dark"] .kol-account-theme__preview[data-starless-theme-preview="old-king-of-novels"] {
    --background: #16151d;
    --foreground: #ffffff;
    --card: #222222;
    --card-foreground: #ffffff;
    --popover: #222222;
    --popover-foreground: #ffffff;
    --primary: #6d0015;
    --primary-foreground: #ffffff;
    --secondary: #1a1a1a;
    --secondary-foreground: #ffffff;
    --muted: #262626;
    --muted-foreground: #999999;
    --accent: #2c2c2c;
    --accent-foreground: #ffffff;
    --destructive: #dc2626;
    --destructive-foreground: #ffffff;
    --border: #383838;
    --input: #383838;
    --ring: #8f001c;
    --rating: #f5c542;
    --rating-foreground: #171717;
    --badge-purple: #6d38c8;
    --badge-purple-foreground: #ffffff;
    --link: #4b7fe5;
    --link-foreground: #ffffff;
    --starless-success: #a5d6a7;
}

/* Explicit link colors override the plugin's fallback tokens. */
html:root {
    --link: #366ad3;
    --link-foreground: #ffffff;
}

html body.darkmode {
    --link: #4b7fe5;
    --link-foreground: #ffffff;
}

html[data-starless-theme="old-king-of-novels"] body:is(.dark, [data-theme="dark"]),
html[data-starless-theme="old-king-of-novels"]:is(.dark, [data-theme="dark"]) {
    --link: #4b7fe5;
    --link-foreground: #ffffff;
}

/* Starless Edits preset: kept scoped so default remains the fallback theme. */
html[data-starless-theme="cattpuctin"],
.kol-account-theme__preview[data-starless-theme-preview="cattpuctin"] {
    --background: oklch(0.9578 0.0058 264.5321);
    --foreground: oklch(0.4355 0.0430 279.3250);
    --card: oklch(1.0000 0 0);
    --card-foreground: oklch(0.4355 0.0430 279.3250);
    --popover: oklch(0.8575 0.0145 268.4756);
    --popover-foreground: oklch(0.4355 0.0430 279.3250);
    --primary: oklch(0.5547 0.2503 297.0156);
    --link: oklch(0.5547 0.2503 297.0156);
    --link-foreground: oklch(1.0000 0 0);
    --primary-foreground: oklch(1.0000 0 0);
    --secondary: oklch(0.8575 0.0145 268.4756);
    --secondary-foreground: oklch(0.4355 0.0430 279.3250);
    --muted: oklch(0.9060 0.0117 264.5071);
    --muted-foreground: oklch(0.5471 0.0343 279.0837);
    --accent: oklch(0.6820 0.1448 235.3822);
    --accent-foreground: oklch(1.0000 0 0);
    --destructive: oklch(0.5505 0.2155 19.8095);
    --destructive-foreground: oklch(1.0000 0 0);
    --border: oklch(0.8083 0.0174 271.1982);
    --input: oklch(0.8575 0.0145 268.4756);
    --ring: oklch(0.5547 0.2503 297.0156);
    --chart-1: oklch(0.5547 0.2503 297.0156);
    --chart-2: oklch(0.6820 0.1448 235.3822);
    --chart-3: oklch(0.6250 0.1772 140.4448);
    --chart-4: oklch(0.6920 0.2041 42.4293);
    --chart-5: oklch(0.7141 0.1045 33.0967);
    --sidebar: oklch(0.9335 0.0087 264.5206);
    --sidebar-foreground: oklch(0.4355 0.0430 279.3250);
    --sidebar-primary: oklch(0.5547 0.2503 297.0156);
    --sidebar-primary-foreground: oklch(1.0000 0 0);
    --sidebar-accent: oklch(0.6820 0.1448 235.3822);
    --sidebar-accent-foreground: oklch(1.0000 0 0);
    --sidebar-border: oklch(0.8083 0.0174 271.1982);
    --sidebar-ring: oklch(0.5547 0.2503 297.0156);
    --font-sans: var(--kol-font-ui), sans-serif;
    --font-serif: Georgia, serif;
    --font-mono: Fira Code, monospace;
    --radius: 0.35rem;
    --shadow-x: 0px;
    --shadow-y: 4px;
    --shadow-blur: 6px;
    --shadow-spread: 0px;
    --shadow-opacity: 0.12;
    --shadow-color: hsl(240 30% 25%);
    --shadow-2xs: 0px 4px 6px 0px hsl(240 30% 25% / 0.06);
    --shadow-xs: 0px 4px 6px 0px hsl(240 30% 25% / 0.06);
    --shadow-sm: 0px 4px 6px 0px hsl(240 30% 25% / 0.12), 0px 1px 2px -1px hsl(240 30% 25% / 0.12);
    --shadow: 0px 4px 6px 0px hsl(240 30% 25% / 0.12), 0px 1px 2px -1px hsl(240 30% 25% / 0.12);
    --shadow-md: 0px 4px 6px 0px hsl(240 30% 25% / 0.12), 0px 2px 4px -1px hsl(240 30% 25% / 0.12);
    --shadow-lg: 0px 4px 6px 0px hsl(240 30% 25% / 0.12), 0px 4px 6px -1px hsl(240 30% 25% / 0.12);
    --shadow-xl: 0px 4px 6px 0px hsl(240 30% 25% / 0.12), 0px 8px 10px -1px hsl(240 30% 25% / 0.12);
    --shadow-2xl: 0px 4px 6px 0px hsl(240 30% 25% / 0.30);
    --tracking-normal: 0em;
    --spacing: 0.25rem;
}

html[data-starless-theme="cattpuctin"] body.darkmode,
html[data-starless-theme="cattpuctin"] body.dark,
body.darkmode .kol-account-theme__preview[data-starless-theme-preview="cattpuctin"],
body.dark .kol-account-theme__preview[data-starless-theme-preview="cattpuctin"] {
    --background: oklch(0.2155 0.0254 284.0647);
    --foreground: oklch(0.8787 0.0426 272.2767);
    --card: oklch(0.2429 0.0304 283.9110);
    --card-foreground: oklch(0.8787 0.0426 272.2767);
    --popover: oklch(0.4037 0.0320 280.1520);
    --popover-foreground: oklch(0.8787 0.0426 272.2767);
    --primary: oklch(0.7871 0.1187 304.7693);
    --link: oklch(0.7871 0.1187 304.7693);
    --link-foreground: oklch(0.2429 0.0304 283.9110);
    --primary-foreground: oklch(0.2429 0.0304 283.9110);
    --secondary: oklch(0.4765 0.0340 278.6430);
    --secondary-foreground: oklch(0.8787 0.0426 272.2767);
    --muted: oklch(0.2973 0.0294 276.2144);
    --muted-foreground: oklch(0.7510 0.0396 273.9320);
    --accent: oklch(0.8467 0.0833 210.2545);
    --accent-foreground: oklch(0.2429 0.0304 283.9110);
    --destructive: oklch(0.7556 0.1297 2.7642);
    --destructive-foreground: oklch(0.2429 0.0304 283.9110);
    --border: oklch(0.3240 0.0319 281.9784);
    --input: oklch(0.3240 0.0319 281.9784);
    --ring: oklch(0.7871 0.1187 304.7693);
    --chart-1: oklch(0.7871 0.1187 304.7693);
    --chart-2: oklch(0.8467 0.0833 210.2545);
    --chart-3: oklch(0.8577 0.1092 142.7153);
    --chart-4: oklch(0.8237 0.1015 52.6294);
    --chart-5: oklch(0.9226 0.0238 30.4919);
    --sidebar: oklch(0.1828 0.0204 284.2039);
    --sidebar-foreground: oklch(0.8787 0.0426 272.2767);
    --sidebar-primary: oklch(0.7871 0.1187 304.7693);
    --sidebar-primary-foreground: oklch(0.2429 0.0304 283.9110);
    --sidebar-accent: oklch(0.8467 0.0833 210.2545);
    --sidebar-accent-foreground: oklch(0.2429 0.0304 283.9110);
    --sidebar-border: oklch(0.4037 0.0320 280.1520);
    --sidebar-ring: oklch(0.7871 0.1187 304.7693);
    --font-sans: var(--kol-font-ui), sans-serif;
    --font-serif: Georgia, serif;
    --font-mono: Fira Code, monospace;
    --radius: 0.35rem;
    --shadow-x: 0px;
    --shadow-y: 4px;
    --shadow-blur: 6px;
    --shadow-spread: 0px;
    --shadow-opacity: 0.12;
    --shadow-color: hsl(240 30% 25%);
    --shadow-2xs: 0px 4px 6px 0px hsl(240 30% 25% / 0.06);
    --shadow-xs: 0px 4px 6px 0px hsl(240 30% 25% / 0.06);
    --shadow-sm: 0px 4px 6px 0px hsl(240 30% 25% / 0.12), 0px 1px 2px -1px hsl(240 30% 25% / 0.12);
    --shadow: 0px 4px 6px 0px hsl(240 30% 25% / 0.12), 0px 1px 2px -1px hsl(240 30% 25% / 0.12);
    --shadow-md: 0px 4px 6px 0px hsl(240 30% 25% / 0.12), 0px 2px 4px -1px hsl(240 30% 25% / 0.12);
    --shadow-lg: 0px 4px 6px 0px hsl(240 30% 25% / 0.12), 0px 4px 6px -1px hsl(240 30% 25% / 0.12);
    --shadow-xl: 0px 4px 6px 0px hsl(240 30% 25% / 0.12), 0px 8px 10px -1px hsl(240 30% 25% / 0.12);
    --shadow-2xl: 0px 4px 6px 0px hsl(240 30% 25% / 0.30);
}

/* Cosmic Night: the supplied OKLCH light palette. */
html[data-starless-theme="cosmic-night"],
.kol-account-theme__preview[data-starless-theme-preview="cosmic-night"] {
    --background: oklch(0.9730 0.0133 286.1503);
    --foreground: oklch(0.3015 0.0572 282.4176);
    --card: oklch(1.0000 0 0);
    --card-foreground: oklch(0.3015 0.0572 282.4176);
    --popover: oklch(1.0000 0 0);
    --popover-foreground: oklch(0.3015 0.0572 282.4176);
    --primary: oklch(0.5417 0.1790 288.0332);
    --primary-foreground: oklch(1.0000 0 0);
    --secondary: oklch(0.9174 0.0435 292.6901);
    --secondary-foreground: oklch(0.4143 0.1039 288.1742);
    --muted: oklch(0.9580 0.0133 286.1454);
    --muted-foreground: oklch(0.5426 0.0465 284.7435);
    --accent: oklch(0.9221 0.0373 262.1410);
    --accent-foreground: oklch(0.3015 0.0572 282.4176);
    --destructive: oklch(0.6861 0.2061 14.9941);
    --destructive-foreground: oklch(1.0000 0 0);
    --border: oklch(0.9115 0.0216 285.9625);
    --input: oklch(0.9115 0.0216 285.9625);
    --ring: oklch(0.5417 0.1790 288.0332);
    --chart-1: oklch(0.5417 0.1790 288.0332);
    --chart-2: oklch(0.7042 0.1602 288.9880);
    --chart-3: oklch(0.5679 0.2113 276.7065);
    --chart-4: oklch(0.6356 0.1922 281.8054);
    --chart-5: oklch(0.4509 0.1758 279.3838);
    --sidebar: oklch(0.9580 0.0133 286.1454);
    --sidebar-foreground: oklch(0.3015 0.0572 282.4176);
    --sidebar-primary: oklch(0.5417 0.1790 288.0332);
    --sidebar-primary-foreground: oklch(1.0000 0 0);
    --sidebar-accent: oklch(0.9221 0.0373 262.1410);
    --sidebar-accent-foreground: oklch(0.3015 0.0572 282.4176);
    --sidebar-border: oklch(0.9115 0.0216 285.9625);
    --sidebar-ring: oklch(0.5417 0.1790 288.0332);
    --font-sans: var(--kol-font-ui), sans-serif;
    --font-serif: Georgia, serif;
    --font-mono: JetBrains Mono, monospace;
    --radius: 0.5rem;
    --shadow-x: 0px;
    --shadow-y: 4px;
    --shadow-blur: 10px;
    --shadow-spread: 0px;
    --shadow-opacity: 0.12;
    --shadow-color: hsl(240 30% 25%);
    --shadow-2xs: 0px 4px 10px 0px hsl(240 30% 25% / 0.06);
    --shadow-xs: 0px 4px 10px 0px hsl(240 30% 25% / 0.06);
    --shadow-sm: 0px 4px 10px 0px hsl(240 30% 25% / 0.12), 0px 1px 2px -1px hsl(240 30% 25% / 0.12);
    --shadow: 0px 4px 10px 0px hsl(240 30% 25% / 0.12), 0px 1px 2px -1px hsl(240 30% 25% / 0.12);
    --shadow-md: 0px 4px 10px 0px hsl(240 30% 25% / 0.12), 0px 2px 4px -1px hsl(240 30% 25% / 0.12);
    --shadow-lg: 0px 4px 10px 0px hsl(240 30% 25% / 0.12), 0px 4px 6px -1px hsl(240 30% 25% / 0.12);
    --shadow-xl: 0px 4px 10px 0px hsl(240 30% 25% / 0.12), 0px 8px 10px -1px hsl(240 30% 25% / 0.12);
    --shadow-2xl: 0px 4px 10px 0px hsl(240 30% 25% / 0.30);
    --tracking-normal: 0em;
    --spacing: 0.25rem;

    /* Compatibility aliases used by the existing child and plugin styles. */
    --link: var(--primary);
    --link-foreground: var(--primary-foreground);
    --rating: var(--primary);
    --rating-foreground: var(--primary-foreground);
    --radius-sm: calc(var(--radius) - 4px);
    --radius-md: calc(var(--radius) - 2px);
    --radius-lg: var(--radius);
    --radius-xl: calc(var(--radius) + 4px);
}

html[data-starless-theme="cosmic-night"] body.darkmode,
html[data-starless-theme="cosmic-night"] body.dark,
html[data-starless-theme="cosmic-night"].dark body,
body.darkmode .kol-account-theme__preview[data-starless-theme-preview="cosmic-night"],
body.dark .kol-account-theme__preview[data-starless-theme-preview="cosmic-night"] {
    --background: oklch(0.1743 0.0227 283.7998);
    --foreground: oklch(0.9185 0.0257 285.8834);
    --card: oklch(0.2284 0.0384 282.9324);
    --card-foreground: oklch(0.9185 0.0257 285.8834);
    --popover: oklch(0.2284 0.0384 282.9324);
    --popover-foreground: oklch(0.9185 0.0257 285.8834);
    --primary: oklch(0.7162 0.1597 290.3962);
    --primary-foreground: oklch(0.1743 0.0227 283.7998);
    --secondary: oklch(0.3139 0.0736 283.4591);
    --secondary-foreground: oklch(0.8367 0.0849 285.9111);
    --muted: oklch(0.2710 0.0621 281.4377);
    --muted-foreground: oklch(0.7166 0.0462 285.1741);
    --accent: oklch(0.3354 0.0828 280.9705);
    --accent-foreground: oklch(0.9185 0.0257 285.8834);
    --destructive: oklch(0.6861 0.2061 14.9941);
    --destructive-foreground: oklch(1.0000 0 0);
    --border: oklch(0.3261 0.0597 282.5832);
    --input: oklch(0.3261 0.0597 282.5832);
    --ring: oklch(0.7162 0.1597 290.3962);
    --chart-1: oklch(0.7162 0.1597 290.3962);
    --chart-2: oklch(0.6382 0.1047 274.9117);
    --chart-3: oklch(0.7482 0.1235 244.7492);
    --chart-4: oklch(0.7124 0.0977 186.6761);
    --chart-5: oklch(0.7546 0.1831 346.8124);
    --sidebar: oklch(0.2284 0.0384 282.9324);
    --sidebar-foreground: oklch(0.9185 0.0257 285.8834);
    --sidebar-primary: oklch(0.7162 0.1597 290.3962);
    --sidebar-primary-foreground: oklch(0.1743 0.0227 283.7998);
    --sidebar-accent: oklch(0.3354 0.0828 280.9705);
    --sidebar-accent-foreground: oklch(0.9185 0.0257 285.8834);
    --sidebar-border: oklch(0.3261 0.0597 282.5832);
    --sidebar-ring: oklch(0.7162 0.1597 290.3962);
    --font-sans: var(--kol-font-ui), sans-serif;
    --font-serif: Georgia, serif;
    --font-mono: JetBrains Mono, monospace;
    --radius: 0.5rem;
    --shadow-x: 0px;
    --shadow-y: 4px;
    --shadow-blur: 10px;
    --shadow-spread: 0px;
    --shadow-opacity: 0.12;
    --shadow-color: hsl(240 30% 25%);
    --shadow-2xs: 0px 4px 10px 0px hsl(240 30% 25% / 0.06);
    --shadow-xs: 0px 4px 10px 0px hsl(240 30% 25% / 0.06);
    --shadow-sm: 0px 4px 10px 0px hsl(240 30% 25% / 0.12), 0px 1px 2px -1px hsl(240 30% 25% / 0.12);
    --shadow: 0px 4px 10px 0px hsl(240 30% 25% / 0.12), 0px 1px 2px -1px hsl(240 30% 25% / 0.12);
    --shadow-md: 0px 4px 10px 0px hsl(240 30% 25% / 0.12), 0px 2px 4px -1px hsl(240 30% 25% / 0.12);
    --shadow-lg: 0px 4px 10px 0px hsl(240 30% 25% / 0.12), 0px 4px 6px -1px hsl(240 30% 25% / 0.12);
    --shadow-xl: 0px 4px 10px 0px hsl(240 30% 25% / 0.12), 0px 8px 10px -1px hsl(240 30% 25% / 0.12);
    --shadow-2xl: 0px 4px 10px 0px hsl(240 30% 25% / 0.30);

    --link: var(--primary);
    --link-foreground: var(--primary-foreground);
    --rating: var(--primary);
    --rating-foreground: var(--primary-foreground);
    --radius-sm: calc(var(--radius) - 4px);
    --radius-md: calc(var(--radius) - 2px);
    --radius-lg: var(--radius);
    --radius-xl: calc(var(--radius) + 4px);
}

/* New King of Novels: supplied light and dark palettes. */
html:is(:not([data-starless-theme]), [data-starless-theme="default"], [data-starless-theme="new-king-of-novels"]),
.kol-account-theme__preview[data-starless-theme-preview="default"] {
    --background: oklch(1.0000 0 0);
    --foreground: oklch(0.2674 0.0090 248.1657);
    --card: oklch(1.0000 0 0);
    --card-foreground: oklch(0.2674 0.0090 248.1657);
    --popover: oklch(1.0000 0 0);
    --popover-foreground: oklch(0.2674 0.0090 248.1657);
    --primary: oklch(0.5778 0.2282 26.5713);
    --primary-foreground: oklch(1.0000 0 0);
    --secondary: oklch(0.9691 0.0017 247.8397);
    --secondary-foreground: oklch(0.3182 0.0115 248.1899);
    --muted: oklch(0.9768 0.0013 247.8346);
    --muted-foreground: oklch(0.5052 0.0205 248.2336);
    --accent: oklch(0.9577 0.0187 12.8348);
    --accent-foreground: oklch(0.4101 0.1589 25.8706);
    --destructive: oklch(0.6356 0.2082 25.3782);
    --destructive-foreground: oklch(1.0000 0 0);
    --border: oklch(0.9222 0.0044 247.8716);
    --input: oklch(0.9222 0.0044 247.8716);
    --ring: oklch(0.5778 0.2282 26.5713);
    --chart-1: oklch(0.5778 0.2282 26.5713);
    --chart-2: oklch(0.3182 0.0115 248.1899);
    --chart-3: oklch(0.7176 0.1902 149.6000);
    --chart-4: oklch(0.8562 0.1696 90.9651);
    --chart-5: oklch(0.7159 0.1804 49.4714);
    --sidebar: oklch(0.9846 0.0009 247.8294);
    --sidebar-foreground: oklch(0.3182 0.0115 248.1899);
    --sidebar-primary: oklch(0.5778 0.2282 26.5713);
    --sidebar-primary-foreground: oklch(1.0000 0 0);
    --sidebar-accent: oklch(0.9367 0.0283 13.0620);
    --sidebar-accent-foreground: oklch(0.4101 0.1589 25.8706);
    --sidebar-border: oklch(0.9379 0.0035 247.8606);
    --sidebar-ring: oklch(0.5778 0.2282 26.5713);
    --font-sans: var(--kol-font-ui), sans-serif;
    --font-serif: Georgia, serif;
    --font-mono: JetBrains Mono, Menlo, monospace;
    --radius: 0.5rem;
    --tracking-normal: -0.01em;
    --spacing: 0.25rem;
    --shadow-x: 0px;
    --shadow-y: 1px;
    --shadow-blur: 4px;
    --shadow-spread: 0px;
    --shadow-opacity: 0.05;
    --shadow-color: 0 0 0;
    --shadow-2xs: 0px 1px 4px 0px hsl(0 0 0 / 0.03);
    --shadow-xs: 0px 1px 4px 0px hsl(0 0 0 / 0.03);
    --shadow-sm: 0px 1px 4px 0px hsl(0 0 0 / 0.05), 0px 1px 2px -1px hsl(0 0 0 / 0.05);
    --shadow: 0px 1px 4px 0px hsl(0 0 0 / 0.05), 0px 1px 2px -1px hsl(0 0 0 / 0.05);
    --shadow-md: 0px 1px 4px 0px hsl(0 0 0 / 0.05), 0px 2px 4px -1px hsl(0 0 0 / 0.05);
    --shadow-lg: 0px 1px 4px 0px hsl(0 0 0 / 0.05), 0px 4px 6px -1px hsl(0 0 0 / 0.05);
    --shadow-xl: 0px 1px 4px 0px hsl(0 0 0 / 0.05), 0px 8px 10px -1px hsl(0 0 0 / 0.05);
    --shadow-2xl: 0px 1px 4px 0px hsl(0 0 0 / 0.13);
    --link: var(--primary);
    --link-foreground: var(--primary-foreground);
    --rating: var(--primary);
    --rating-foreground: var(--primary-foreground);
    --badge-purple: var(--accent);
    --badge-purple-foreground: var(--accent-foreground);
    --starless-primary: var(--primary);
    --starless-primary-dark: var(--accent-foreground);
    --starless-on-primary: var(--primary-foreground);
    --starless-background: var(--background);
    --starless-surface: var(--card);
    --starless-surface-muted: var(--secondary);
    --starless-surface-raised: var(--muted);
    --starless-text: var(--foreground);
    --starless-muted: var(--muted-foreground);
    --starless-border: var(--border);
    --starless-success: var(--chart-3);
    --starless-danger: var(--destructive);
    --starless-warning: var(--chart-4);
    --starless-silver: var(--muted-foreground);
    --starless-bronze: var(--chart-5);
    --starless-info: var(--primary);
    --starless-special: var(--accent-foreground);
    --radius-sm: calc(var(--radius) - 4px);
    --radius-md: calc(var(--radius) - 2px);
    --radius-lg: var(--radius);
    --radius-xl: calc(var(--radius) + 4px);
}

html:is(:not([data-starless-theme]), [data-starless-theme="default"], [data-starless-theme="new-king-of-novels"]) body.darkmode,
html:is(:not([data-starless-theme]), [data-starless-theme="default"], [data-starless-theme="new-king-of-novels"]) body.dark,
html:is(:not([data-starless-theme]), [data-starless-theme="default"], [data-starless-theme="new-king-of-novels"]).dark,
html:is(:not([data-starless-theme]), [data-starless-theme="default"], [data-starless-theme="new-king-of-novels"]).dark body,
body.darkmode .kol-account-theme__preview[data-starless-theme-preview="default"],
body.dark .kol-account-theme__preview[data-starless-theme-preview="default"] {
    --background: oklch(0.1450 0.0028 247.4358);
    --foreground: oklch(0.9848 0 0);
    --card: oklch(0.1803 0.0047 248.0863);
    --card-foreground: oklch(0.9848 0 0);
    --popover: oklch(0.1803 0.0047 248.0863);
    --popover-foreground: oklch(0.9848 0 0);
    --primary: oklch(0.5778 0.2282 26.5713);
    --primary-foreground: oklch(1.0000 0 0);
    --secondary: oklch(0.2674 0.0090 248.1657);
    --secondary-foreground: oklch(0.9848 0 0);
    --muted: oklch(0.2357 0.0075 248.1444);
    --muted-foreground: oklch(0.7200 0.0165 248.0568);
    --accent: oklch(0.2566 0.0939 23.8695);
    --accent-foreground: oklch(0.7958 0.1022 15.2778);
    --destructive: oklch(0.3901 0.1297 25.5736);
    --destructive-foreground: oklch(0.9848 0 0);
    --border: oklch(0.2777 0.0095 248.1714);
    --input: oklch(0.2777 0.0095 248.1714);
    --ring: oklch(0.5778 0.2282 26.5713);
    --chart-1: oklch(0.5778 0.2282 26.5713);
    --chart-2: oklch(0.8428 0.0090 247.9335);
    --chart-3: oklch(0.7176 0.1902 149.6000);
    --chart-4: oklch(0.8562 0.1696 90.9651);
    --chart-5: oklch(0.7159 0.1804 49.4714);
    --sidebar: oklch(0.1917 0.0052 248.1014);
    --sidebar-foreground: oklch(0.9222 0.0044 247.8716);
    --sidebar-primary: oklch(0.5778 0.2282 26.5713);
    --sidebar-primary-foreground: oklch(1.0000 0 0);
    --sidebar-accent: oklch(0.2566 0.0939 23.8695);
    --sidebar-accent-foreground: oklch(0.8446 0.0747 14.3349);
    --sidebar-border: oklch(0.2569 0.0085 248.1593);
    --sidebar-ring: oklch(0.5778 0.2282 26.5713);
    --font-sans: var(--kol-font-ui), sans-serif;
    --font-serif: Georgia, serif;
    --font-mono: JetBrains Mono, Menlo, monospace;
    --radius: 0.5rem;
    --tracking-normal: -0.01em;
    --spacing: 0.25rem;
    --shadow-x: 0px;
    --shadow-y: 2px;
    --shadow-blur: 8px;
    --shadow-spread: 0px;
    --shadow-opacity: 0.4;
    --shadow-color: 0 0 0;
    --shadow-2xs: 0px 2px 8px 0px hsl(0 0 0 / 0.20);
    --shadow-xs: 0px 2px 8px 0px hsl(0 0 0 / 0.20);
    --shadow-sm: 0px 2px 8px 0px hsl(0 0 0 / 0.40), 0px 1px 2px -1px hsl(0 0 0 / 0.40);
    --shadow: 0px 2px 8px 0px hsl(0 0 0 / 0.40), 0px 1px 2px -1px hsl(0 0 0 / 0.40);
    --shadow-md: 0px 2px 8px 0px hsl(0 0 0 / 0.40), 0px 2px 4px -1px hsl(0 0 0 / 0.40);
    --shadow-lg: 0px 2px 8px 0px hsl(0 0 0 / 0.40), 0px 4px 6px -1px hsl(0 0 0 / 0.40);
    --shadow-xl: 0px 2px 8px 0px hsl(0 0 0 / 0.40), 0px 8px 10px -1px hsl(0 0 0 / 0.40);
    --shadow-2xl: 0px 2px 8px 0px hsl(0 0 0 / 1.00);
    --link: var(--primary);
    --link-foreground: var(--primary-foreground);
    --rating: var(--primary);
    --rating-foreground: var(--primary-foreground);
    --badge-purple: var(--accent);
    --badge-purple-foreground: var(--accent-foreground);
    --starless-primary: var(--primary);
    --starless-primary-dark: var(--accent-foreground);
    --starless-on-primary: var(--primary-foreground);
    --starless-background: var(--background);
    --starless-surface: var(--card);
    --starless-surface-muted: var(--secondary);
    --starless-surface-raised: var(--muted);
    --starless-text: var(--foreground);
    --starless-muted: var(--muted-foreground);
    --starless-border: var(--border);
    --starless-success: var(--chart-3);
    --starless-danger: var(--destructive);
    --starless-warning: var(--chart-4);
    --starless-silver: var(--muted-foreground);
    --starless-bronze: var(--chart-5);
    --starless-info: var(--primary);
    --starless-special: var(--accent-foreground);
    --radius-sm: calc(var(--radius) - 4px);
    --radius-md: calc(var(--radius) - 2px);
    --radius-lg: var(--radius);
    --radius-xl: calc(var(--radius) + 4px);
}

/* Semantic colors are owned directly by this theme and its palette selectors. */
:root {
    --kol-border-color: var(--border);
    --kol-radius: var(--radius, 0.625rem);
}
html body.darkmode,
html body.dark {
    --kol-border-color: var(--border);
    --kol-radius: var(--radius, 0.625rem);
}
