html {
  /* 核心变量映射与默认值 (Spring 风格作为兜底) */
  --color-primary: var(--theme-spring-primary, #10b981);
  --color-primary-rgb: var(--theme-spring-primary-rgb, 16 185 129);
  --color-primary-hover: var(--theme-spring-primary-hover, #059669);
  --color-primary-hover-rgb: var(--theme-spring-primary-hover-rgb, 5 150 105);
  --color-secondary: var(--theme-spring-secondary, #0d9488);
  --color-secondary-rgb: var(--theme-spring-secondary-rgb, 13 148 136);
  --color-accent: var(--theme-spring-accent, #6ee7b7);
  --color-accent-rgb: var(--theme-spring-accent-rgb, 110 231 183);
  --color-accent-strong: var(--theme-spring-accent-strong, #34d399);
  --color-accent-strong-rgb: var(--theme-spring-accent-strong-rgb, 52 211 153);
  --color-success-soft: var(--theme-spring-success-soft, #86efac);
  --color-success-soft-rgb: var(--theme-spring-success-soft-rgb, 134 239 172);
  --color-bg-from: var(--theme-spring-bg-from, #047857);
  --color-bg-from-rgb: var(--theme-spring-bg-from-rgb, 4 120 87);
  --color-bg-via: var(--theme-spring-bg-via, #059669);
  --color-bg-via-rgb: var(--theme-spring-bg-via-rgb, 5 150 105);
  --color-bg-to: var(--theme-spring-bg-to, #0d9488);
  --color-bg-to-rgb: var(--theme-spring-bg-to-rgb, 13 148 136);
  --color-header-from: var(--theme-spring-header-from, #064e3b);
  --color-header-from-rgb: var(--theme-spring-header-from-rgb, 6 78 59);
  --color-header-to: var(--theme-spring-header-to, #047857);
  --color-header-to-rgb: var(--theme-spring-header-to-rgb, 4 120 87);
  --color-text: var(--theme-spring-text, #ffffff);
  --color-text-rgb: var(--theme-spring-text-rgb, 255 255 255);
  --color-text-muted: var(--theme-spring-text-muted, rgba(255, 255, 255, 0.7));
  --color-neutral-white: var(--theme-spring-neutral-white, #ffffff);
  --color-neutral-white-rgb: var(--theme-spring-neutral-white-rgb, 255 255 255);
  --color-neutral-black: var(--theme-spring-neutral-black, #000000);
  --color-neutral-black-rgb: var(--theme-spring-neutral-black-rgb, 0 0 0);
  --color-neutral-111: var(--theme-spring-neutral-111, #111111);
  --color-neutral-111-rgb: var(--theme-spring-neutral-111-rgb, 17 17 17);
  --color-neutral-1e: var(--theme-spring-neutral-1e, #1e1e1e);
  --color-neutral-1e-rgb: var(--theme-spring-neutral-1e-rgb, 30 30 30);
  --color-neutral-1f: var(--theme-spring-neutral-1f, #1f1f1f);
  --color-neutral-1f-rgb: var(--theme-spring-neutral-1f-rgb, 31 31 31);
  --color-neutral-0f: var(--theme-spring-neutral-0f, #0f0f0f);
  --color-neutral-0f-rgb: var(--theme-spring-neutral-0f-rgb, 15 15 15);
  --color-neutral-e5: var(--theme-spring-neutral-e5, #e5e5e5);
  --color-neutral-e5-rgb: var(--theme-spring-neutral-e5-rgb, 229 229 229);
  --color-neutral-d1: var(--theme-spring-neutral-d1, #d1d1d1);
  --color-neutral-d1-rgb: var(--theme-spring-neutral-d1-rgb, 209 209 209);
  --color-neutral-cb: var(--theme-spring-neutral-cb, #cbcbcb);
  --color-neutral-cb-rgb: var(--theme-spring-neutral-cb-rgb, 203 203 203);
  --color-neutral-f0: var(--theme-spring-neutral-f0, #f0f0f0);
  --color-neutral-f0-rgb: var(--theme-spring-neutral-f0-rgb, 240 240 240);
  --color-neutral-e0: var(--theme-spring-neutral-e0, #e0e0e0);
  --color-neutral-e0-rgb: var(--theme-spring-neutral-e0-rgb, 224 224 224);
  --color-info: var(--theme-spring-info, #3b82f6);
  --color-info-rgb: var(--theme-spring-info-rgb, 59 130 246);
  --color-info-hover: var(--theme-spring-info-hover, #2563eb);
  --color-info-hover-rgb: var(--theme-spring-info-hover-rgb, 37 99 235);
  --color-info-text: var(--theme-spring-info-text, #ffffff);
  --color-info-text-rgb: var(--theme-spring-info-text-rgb, 255 255 255);
  --color-info-soft: var(--theme-spring-info-soft, #dbeafe);
  --color-info-soft-rgb: var(--theme-spring-info-soft-rgb, 219 234 254);
  --color-warning: var(--theme-spring-warning, #f59e0b);
  --color-warning-rgb: var(--theme-spring-warning-rgb, 245 158 11);
  --color-warning-text: var(--theme-spring-warning-text, #ffffff);
  --color-warning-text-rgb: var(--theme-spring-warning-text-rgb, 255 255 255);
  --color-warning-soft: var(--theme-spring-warning-soft, #fef3c7);
  --color-warning-soft-rgb: var(--theme-spring-warning-soft-rgb, 254 243 199);
  --color-danger: var(--theme-spring-danger, #ef4444);
  --color-danger-rgb: var(--theme-spring-danger-rgb, 239 68 68);
  --color-danger-text: var(--theme-spring-danger-text, #ffffff);
  --color-danger-text-rgb: var(--theme-spring-danger-text-rgb, 255 255 255);
  --color-danger-soft: var(--theme-spring-danger-soft, #fee2e2);
  --color-danger-soft-rgb: var(--theme-spring-danger-soft-rgb, 254 226 226);
  --color-purple: var(--theme-spring-purple, #8b5cf6);
  --color-purple-rgb: var(--theme-spring-purple-rgb, 139 92 246);
  --color-purple-text: var(--theme-spring-purple-text, #ffffff);
  --color-purple-text-rgb: var(--theme-spring-purple-text-rgb, 255 255 255);
  --color-brand-qq-blue: var(--theme-spring-brand-qq-blue, #12b7f5);
  --color-brand-qq-blue-rgb: var(--theme-spring-brand-qq-blue-rgb, 18 183 245);
  --color-brand-qq-green: var(--theme-spring-brand-qq-green, #2ecc71);
  --color-brand-qq-green-rgb: var(--theme-spring-brand-qq-green-rgb, 46 204 113);
  --color-avatar-from: var(--theme-spring-avatar-from, #10b981);
  --color-avatar-from-rgb: var(--theme-spring-avatar-from-rgb, 16 185 129);
  --color-avatar-to: var(--theme-spring-avatar-to, #059669);
  --color-avatar-to-rgb: var(--theme-spring-avatar-to-rgb, 5 150 105);
  --color-minecraft-border: var(--theme-spring-minecraft-border, #373737);
  --color-minecraft-border-rgb: var(--theme-spring-minecraft-border-rgb, 55 55 55);
}

html[data-theme="dark"] {
  --color-primary: var(--theme-dark-primary, #10b981);
  --color-primary-rgb: var(--theme-dark-primary-rgb, 16 185 129);
  --color-primary-hover: var(--theme-dark-primary-hover, #059669);
  --color-primary-hover-rgb: var(--theme-dark-primary-hover-rgb, 5 150 105);
  --color-secondary: var(--theme-dark-secondary, #0d9488);
  --color-secondary-rgb: var(--theme-dark-secondary-rgb, 13 148 136);
  --color-accent: var(--theme-dark-accent, #6ee7b7);
  --color-accent-rgb: var(--theme-dark-accent-rgb, 110 231 183);
  --color-accent-strong: var(--theme-dark-accent-strong, #34d399);
  --color-accent-strong-rgb: var(--theme-dark-accent-strong-rgb, 52 211 153);
  --color-success-soft: var(--theme-dark-success-soft, #86efac);
  --color-success-soft-rgb: var(--theme-dark-success-soft-rgb, 134 239 172);
  --color-bg-from: var(--theme-dark-bg-from, #0f002b);
  --color-bg-from-rgb: var(--theme-dark-bg-from-rgb, 15 0 43);
  --color-bg-via: var(--theme-dark-bg-via, #16002b);
  --color-bg-via-rgb: var(--theme-dark-bg-via-rgb, 22 0 43);
  --color-bg-to: var(--theme-dark-bg-to, #240046);
  --color-bg-to-rgb: var(--theme-dark-bg-to-rgb, 36 0 70);
  --color-header-from: var(--theme-dark-header-from, #10002b);
  --color-header-from-rgb: var(--theme-dark-header-from-rgb, 16 0 43);
  --color-header-to: var(--theme-dark-header-to, #16002b);
  --color-header-to-rgb: var(--theme-dark-header-to-rgb, 22 0 43);
  --color-text: var(--theme-dark-text, #ffffff);
  --color-text-rgb: var(--theme-dark-text-rgb, 255 255 255);
  --color-text-muted: var(--theme-dark-text-muted, rgba(255, 255, 255, 0.7));
  --color-neutral-white: var(--theme-dark-neutral-white, #ffffff);
  --color-neutral-white-rgb: var(--theme-dark-neutral-white-rgb, 255 255 255);
  --color-neutral-black: var(--theme-dark-neutral-black, #000000);
  --color-neutral-black-rgb: var(--theme-dark-neutral-black-rgb, 0 0 0);
  --color-neutral-111: var(--theme-dark-neutral-111, #111111);
  --color-neutral-111-rgb: var(--theme-dark-neutral-111-rgb, 17 17 17);
  --color-neutral-1e: var(--theme-dark-neutral-1e, #1e1e1e);
  --color-neutral-1e-rgb: var(--theme-dark-neutral-1e-rgb, 30 30 30);
  --color-neutral-1f: var(--theme-dark-neutral-1f, #1f1f1f);
  --color-neutral-1f-rgb: var(--theme-dark-neutral-1f-rgb, 31 31 31);
  --color-neutral-0f: var(--theme-dark-neutral-0f, #0f0f0f);
  --color-neutral-0f-rgb: var(--theme-dark-neutral-0f-rgb, 15 15 15);
  --color-neutral-e5: var(--theme-dark-neutral-e5, #e5e5e5);
  --color-neutral-e5-rgb: var(--theme-dark-neutral-e5-rgb, 229 229 229);
  --color-neutral-d1: var(--theme-dark-neutral-d1, #d1d1d1);
  --color-neutral-d1-rgb: var(--theme-dark-neutral-d1-rgb, 209 209 209);
  --color-neutral-cb: var(--theme-dark-neutral-cb, #cbcbcb);
  --color-neutral-cb-rgb: var(--theme-dark-neutral-cb-rgb, 203 203 203);
  --color-neutral-f0: var(--theme-dark-neutral-f0, #f0f0f0);
  --color-neutral-f0-rgb: var(--theme-dark-neutral-f0-rgb, 240 240 240);
  --color-neutral-e0: var(--theme-dark-neutral-e0, #e0e0e0);
  --color-neutral-e0-rgb: var(--theme-dark-neutral-e0-rgb, 224 224 224);
  --color-info: var(--theme-dark-info, #3b82f6);
  --color-info-rgb: var(--theme-dark-info-rgb, 59 130 246);
  --color-info-hover: var(--theme-dark-info-hover, #2563eb);
  --color-info-hover-rgb: var(--theme-dark-info-hover-rgb, 37 99 235);
  --color-info-text: var(--theme-dark-info-text, #ffffff);
  --color-info-text-rgb: var(--theme-dark-info-text-rgb, 255 255 255);
  --color-info-soft: var(--theme-dark-info-soft, #dbeafe);
  --color-info-soft-rgb: var(--theme-dark-info-soft-rgb, 219 234 254);
  --color-warning: var(--theme-dark-warning, #f59e0b);
  --color-warning-rgb: var(--theme-dark-warning-rgb, 245 158 11);
  --color-warning-text: var(--theme-dark-warning-text, #ffffff);
  --color-warning-text-rgb: var(--theme-dark-warning-text-rgb, 255 255 255);
  --color-warning-soft: var(--theme-dark-warning-soft, #fef3c7);
  --color-warning-soft-rgb: var(--theme-dark-warning-soft-rgb, 254 243 199);
  --color-danger: var(--theme-dark-danger, #ef4444);
  --color-danger-rgb: var(--theme-dark-danger-rgb, 239 68 68);
  --color-danger-text: var(--theme-dark-danger-text, #ffffff);
  --color-danger-text-rgb: var(--theme-dark-danger-text-rgb, 255 255 255);
  --color-danger-soft: var(--theme-dark-danger-soft, #fee2e2);
  --color-danger-soft-rgb: var(--theme-dark-danger-soft-rgb, 254 226 226);
  --color-purple: var(--theme-dark-purple, #8b5cf6);
  --color-purple-rgb: var(--theme-dark-purple-rgb, 139 92 246);
  --color-purple-text: var(--theme-dark-purple-text, #ffffff);
  --color-purple-text-rgb: var(--theme-dark-purple-text-rgb, 255 255 255);
  --color-brand-qq-blue: var(--theme-dark-brand-qq-blue, #12b7f5);
  --color-brand-qq-blue-rgb: var(--theme-dark-brand-qq-blue-rgb, 18 183 245);
  --color-brand-qq-green: var(--theme-dark-brand-qq-green, #2ecc71);
  --color-brand-qq-green-rgb: var(--theme-dark-brand-qq-green-rgb, 46 204 113);
  --color-avatar-from: var(--theme-dark-avatar-from, #10b981);
  --color-avatar-from-rgb: var(--theme-dark-avatar-from-rgb, 16 185 129);
  --color-avatar-to: var(--theme-dark-avatar-to, #059669);
  --color-avatar-to-rgb: var(--theme-dark-avatar-to-rgb, 5 150 105);
  --color-minecraft-border: var(--theme-dark-minecraft-border, #373737);
  --color-minecraft-border-rgb: var(--theme-dark-minecraft-border-rgb, 55 55 55);
}

html[data-theme="highcontrast"] {
  --color-primary: var(--theme-highcontrast-primary, #10b981);
  --color-primary-rgb: var(--theme-highcontrast-primary-rgb, 16 185 129);
  --color-primary-hover: var(--theme-highcontrast-primary-hover, #059669);
  --color-primary-hover-rgb: var(--theme-highcontrast-primary-hover-rgb, 5 150 105);
  --color-secondary: var(--theme-highcontrast-secondary, #0d9488);
  --color-secondary-rgb: var(--theme-highcontrast-secondary-rgb, 13 148 136);
  --color-accent: var(--theme-highcontrast-accent, #6ee7b7);
  --color-accent-rgb: var(--theme-highcontrast-accent-rgb, 110 231 183);
  --color-accent-strong: var(--theme-highcontrast-accent-strong, #34d399);
  --color-accent-strong-rgb: var(--theme-highcontrast-accent-strong-rgb, 52 211 153);
  --color-success-soft: var(--theme-highcontrast-success-soft, #86efac);
  --color-success-soft-rgb: var(--theme-highcontrast-success-soft-rgb, 134 239 172);
  --color-bg-from: var(--theme-highcontrast-bg-from, #047857);
  --color-bg-from-rgb: var(--theme-highcontrast-bg-from-rgb, 4 120 87);
  --color-bg-via: var(--theme-highcontrast-bg-via, #059669);
  --color-bg-via-rgb: var(--theme-highcontrast-bg-via-rgb, 5 150 105);
  --color-bg-to: var(--theme-highcontrast-bg-to, #0d9488);
  --color-bg-to-rgb: var(--theme-highcontrast-bg-to-rgb, 13 148 136);
  --color-header-from: var(--theme-highcontrast-header-from, #064e3b);
  --color-header-from-rgb: var(--theme-highcontrast-header-from-rgb, 6 78 59);
  --color-header-to: var(--theme-highcontrast-header-to, #047857);
  --color-header-to-rgb: var(--theme-highcontrast-header-to-rgb, 4 120 87);
  --color-text: var(--theme-highcontrast-text, #ffffff);
  --color-text-rgb: var(--theme-highcontrast-text-rgb, 255 255 255);
  --color-text-muted: var(--theme-highcontrast-text-muted, rgba(255, 255, 255, 0.7));
  --color-neutral-white: var(--theme-highcontrast-neutral-white, #ffffff);
  --color-neutral-white-rgb: var(--theme-highcontrast-neutral-white-rgb, 255 255 255);
  --color-neutral-black: var(--theme-highcontrast-neutral-black, #000000);
  --color-neutral-black-rgb: var(--theme-highcontrast-neutral-black-rgb, 0 0 0);
  --color-neutral-111: var(--theme-highcontrast-neutral-111, #111111);
  --color-neutral-111-rgb: var(--theme-highcontrast-neutral-111-rgb, 17 17 17);
  --color-neutral-1e: var(--theme-highcontrast-neutral-1e, #1e1e1e);
  --color-neutral-1e-rgb: var(--theme-highcontrast-neutral-1e-rgb, 30 30 30);
  --color-neutral-1f: var(--theme-highcontrast-neutral-1f, #1f1f1f);
  --color-neutral-1f-rgb: var(--theme-highcontrast-neutral-1f-rgb, 31 31 31);
  --color-neutral-0f: var(--theme-highcontrast-neutral-0f, #0f0f0f);
  --color-neutral-0f-rgb: var(--theme-highcontrast-neutral-0f-rgb, 15 15 15);
  --color-neutral-e5: var(--theme-highcontrast-neutral-e5, #e5e5e5);
  --color-neutral-e5-rgb: var(--theme-highcontrast-neutral-e5-rgb, 229 229 229);
  --color-neutral-d1: var(--theme-highcontrast-neutral-d1, #d1d1d1);
  --color-neutral-d1-rgb: var(--theme-highcontrast-neutral-d1-rgb, 209 209 209);
  --color-neutral-cb: var(--theme-highcontrast-neutral-cb, #cbcbcb);
  --color-neutral-cb-rgb: var(--theme-highcontrast-neutral-cb-rgb, 203 203 203);
  --color-neutral-f0: var(--theme-highcontrast-neutral-f0, #f0f0f0);
  --color-neutral-f0-rgb: var(--theme-highcontrast-neutral-f0-rgb, 240 240 240);
  --color-neutral-e0: var(--theme-highcontrast-neutral-e0, #e0e0e0);
  --color-neutral-e0-rgb: var(--theme-highcontrast-neutral-e0-rgb, 224 224 224);
  --color-info: var(--theme-highcontrast-info, #3b82f6);
  --color-info-rgb: var(--theme-highcontrast-info-rgb, 59 130 246);
  --color-info-hover: var(--theme-highcontrast-info-hover, #2563eb);
  --color-info-hover-rgb: var(--theme-highcontrast-info-hover-rgb, 37 99 235);
  --color-info-text: var(--theme-highcontrast-info-text, #ffffff);
  --color-info-text-rgb: var(--theme-highcontrast-info-text-rgb, 255 255 255);
  --color-info-soft: var(--theme-highcontrast-info-soft, #dbeafe);
  --color-info-soft-rgb: var(--theme-highcontrast-info-soft-rgb, 219 234 254);
  --color-warning: var(--theme-highcontrast-warning, #f59e0b);
  --color-warning-rgb: var(--theme-highcontrast-warning-rgb, 245 158 11);
  --color-warning-text: var(--theme-highcontrast-warning-text, #ffffff);
  --color-warning-text-rgb: var(--theme-highcontrast-warning-text-rgb, 255 255 255);
  --color-warning-soft: var(--theme-highcontrast-warning-soft, #fef3c7);
  --color-warning-soft-rgb: var(--theme-highcontrast-warning-soft-rgb, 254 243 199);
  --color-danger: var(--theme-highcontrast-danger, #ef4444);
  --color-danger-rgb: var(--theme-highcontrast-danger-rgb, 239 68 68);
  --color-danger-text: var(--theme-highcontrast-danger-text, #ffffff);
  --color-danger-text-rgb: var(--theme-highcontrast-danger-text-rgb, 255 255 255);
  --color-danger-soft: var(--theme-highcontrast-danger-soft, #fee2e2);
  --color-danger-soft-rgb: var(--theme-highcontrast-danger-soft-rgb, 254 226 226);
  --color-purple: var(--theme-highcontrast-purple, #8b5cf6);
  --color-purple-rgb: var(--theme-highcontrast-purple-rgb, 139 92 246);
  --color-purple-text: var(--theme-highcontrast-purple-text, #ffffff);
  --color-purple-text-rgb: var(--theme-highcontrast-purple-text-rgb, 255 255 255);
  --color-brand-qq-blue: var(--theme-highcontrast-brand-qq-blue, #12b7f5);
  --color-brand-qq-blue-rgb: var(--theme-highcontrast-brand-qq-blue-rgb, 18 183 245);
  --color-brand-qq-green: var(--theme-highcontrast-brand-qq-green, #2ecc71);
  --color-brand-qq-green-rgb: var(--theme-highcontrast-brand-qq-green-rgb, 46 204 113);
  --color-avatar-from: var(--theme-highcontrast-avatar-from, #10b981);
  --color-avatar-from-rgb: var(--theme-highcontrast-avatar-from-rgb, 16 185 129);
  --color-avatar-to: var(--theme-highcontrast-avatar-to, #059669);
  --color-avatar-to-rgb: var(--theme-highcontrast-avatar-to-rgb, 5 150 105);
  --color-minecraft-border: var(--theme-highcontrast-minecraft-border, #373737);
  --color-minecraft-border-rgb: var(--theme-highcontrast-minecraft-border-rgb, 55 55 55);
}

html[data-theme="custom"] {
  --color-primary: var(--theme-custom-primary, #10b981);
  --color-primary-rgb: var(--theme-custom-primary-rgb, 16 185 129);
  --color-primary-hover: var(--theme-custom-primary-hover, #059669);
  --color-primary-hover-rgb: var(--theme-custom-primary-hover-rgb, 5 150 105);
  --color-secondary: var(--theme-custom-secondary, #0d9488);
  --color-secondary-rgb: var(--theme-custom-secondary-rgb, 13 148 136);
  --color-accent: var(--theme-custom-accent, #6ee7b7);
  --color-accent-rgb: var(--theme-custom-accent-rgb, 110 231 183);
  --color-accent-strong: var(--theme-custom-accent-strong, #34d399);
  --color-accent-strong-rgb: var(--theme-custom-accent-strong-rgb, 52 211 153);
  --color-success-soft: var(--theme-custom-success-soft, #86efac);
  --color-success-soft-rgb: var(--theme-custom-success-soft-rgb, 134 239 172);
  --color-bg-from: var(--theme-custom-bg-from, #047857);
  --color-bg-from-rgb: var(--theme-custom-bg-from-rgb, 4 120 87);
  --color-bg-via: var(--theme-custom-bg-via, #059669);
  --color-bg-via-rgb: var(--theme-custom-bg-via-rgb, 5 150 105);
  --color-bg-to: var(--theme-custom-bg-to, #0d9488);
  --color-bg-to-rgb: var(--theme-custom-bg-to-rgb, 13 148 136);
  --color-header-from: var(--theme-custom-header-from, #064e3b);
  --color-header-from-rgb: var(--theme-custom-header-from-rgb, 6 78 59);
  --color-header-to: var(--theme-custom-header-to, #047857);
  --color-header-to-rgb: var(--theme-custom-header-to-rgb, 4 120 87);
  --color-text: var(--theme-custom-text, #ffffff);
  --color-text-rgb: var(--theme-custom-text-rgb, 255 255 255);
  --color-text-muted: var(--theme-custom-text-muted, rgba(255, 255, 255, 0.7));
  --color-neutral-white: var(--theme-custom-neutral-white, #ffffff);
  --color-neutral-white-rgb: var(--theme-custom-neutral-white-rgb, 255 255 255);
  --color-neutral-black: var(--theme-custom-neutral-black, #000000);
  --color-neutral-black-rgb: var(--theme-custom-neutral-black-rgb, 0 0 0);
  --color-neutral-111: var(--theme-custom-neutral-111, #111111);
  --color-neutral-111-rgb: var(--theme-custom-neutral-111-rgb, 17 17 17);
  --color-neutral-1e: var(--theme-custom-neutral-1e, #1e1e1e);
  --color-neutral-1e-rgb: var(--theme-custom-neutral-1e-rgb, 30 30 30);
  --color-neutral-1f: var(--theme-custom-neutral-1f, #1f1f1f);
  --color-neutral-1f-rgb: var(--theme-custom-neutral-1f-rgb, 31 31 31);
  --color-neutral-0f: var(--theme-custom-neutral-0f, #0f0f0f);
  --color-neutral-0f-rgb: var(--theme-custom-neutral-0f-rgb, 15 15 15);
  --color-neutral-e5: var(--theme-custom-neutral-e5, #e5e5e5);
  --color-neutral-e5-rgb: var(--theme-custom-neutral-e5-rgb, 229 229 229);
  --color-neutral-d1: var(--theme-custom-neutral-d1, #d1d1d1);
  --color-neutral-d1-rgb: var(--theme-custom-neutral-d1-rgb, 209 209 209);
  --color-neutral-cb: var(--theme-custom-neutral-cb, #cbcbcb);
  --color-neutral-cb-rgb: var(--theme-custom-neutral-cb-rgb, 203 203 203);
  --color-neutral-f0: var(--theme-custom-neutral-f0, #f0f0f0);
  --color-neutral-f0-rgb: var(--theme-custom-neutral-f0-rgb, 240 240 240);
  --color-neutral-e0: var(--theme-custom-neutral-e0, #e0e0e0);
  --color-neutral-e0-rgb: var(--theme-custom-neutral-e0-rgb, 224 224 224);
  --color-info: var(--theme-custom-info, #3b82f6);
  --color-info-rgb: var(--theme-custom-info-rgb, 59 130 246);
  --color-info-hover: var(--theme-custom-info-hover, #2563eb);
  --color-info-hover-rgb: var(--theme-custom-info-hover-rgb, 37 99 235);
  --color-info-text: var(--theme-custom-info-text, #ffffff);
  --color-info-text-rgb: var(--theme-custom-info-text-rgb, 255 255 255);
  --color-info-soft: var(--theme-custom-info-soft, #dbeafe);
  --color-info-soft-rgb: var(--theme-custom-info-soft-rgb, 219 234 254);
  --color-warning: var(--theme-custom-warning, #f59e0b);
  --color-warning-rgb: var(--theme-custom-warning-rgb, 245 158 11);
  --color-warning-text: var(--theme-custom-warning-text, #ffffff);
  --color-warning-text-rgb: var(--theme-custom-warning-text-rgb, 255 255 255);
  --color-warning-soft: var(--theme-custom-warning-soft, #fef3c7);
  --color-warning-soft-rgb: var(--theme-custom-warning-soft-rgb, 254 243 199);
  --color-danger: var(--theme-custom-danger, #ef4444);
  --color-danger-rgb: var(--theme-custom-danger-rgb, 239 68 68);
  --color-danger-text: var(--theme-custom-danger-text, #ffffff);
  --color-danger-text-rgb: var(--theme-custom-danger-text-rgb, 255 255 255);
  --color-danger-soft: var(--theme-custom-danger-soft, #fee2e2);
  --color-danger-soft-rgb: var(--theme-custom-danger-soft-rgb, 254 226 226);
  --color-purple: var(--theme-custom-purple, #8b5cf6);
  --color-purple-rgb: var(--theme-custom-purple-rgb, 139 92 246);
  --color-purple-text: var(--theme-custom-purple-text, #ffffff);
  --color-purple-text-rgb: var(--theme-custom-purple-text-rgb, 255 255 255);
  --color-brand-qq-blue: var(--theme-custom-brand-qq-blue, #12b7f5);
  --color-brand-qq-blue-rgb: var(--theme-custom-brand-qq-blue-rgb, 18 183 245);
  --color-brand-qq-green: var(--theme-custom-brand-qq-green, #2ecc71);
  --color-brand-qq-green-rgb: var(--theme-custom-brand-qq-green-rgb, 46 204 113);
  --color-avatar-from: var(--theme-custom-avatar-from, #10b981);
  --color-avatar-from-rgb: var(--theme-custom-avatar-from-rgb, 16 185 129);
  --color-avatar-to: var(--theme-custom-avatar-to, #059669);
  --color-avatar-to-rgb: var(--theme-custom-avatar-to-rgb, 5 150 105);
  --color-minecraft-border: var(--theme-custom-minecraft-border, #373737);
  --color-minecraft-border-rgb: var(--theme-custom-minecraft-border-rgb, 55 55 55);
}

html[data-theme="galaxy"] {
  --color-primary: var(--theme-galaxy-primary, #9d4edd);
  --color-primary-rgb: var(--theme-galaxy-primary-rgb, 157 78 221);
  --color-primary-hover: var(--theme-galaxy-primary-hover, #7b2cbf);
  --color-primary-hover-rgb: var(--theme-galaxy-primary-hover-rgb, 123 44 191);
  --color-secondary: var(--theme-galaxy-secondary, #5a189a);
  --color-secondary-rgb: var(--theme-galaxy-secondary-rgb, 90 24 154);
  --color-accent: var(--theme-galaxy-accent, #c77dff);
  --color-accent-rgb: var(--theme-galaxy-accent-rgb, 199 125 255);
  --color-accent-strong: var(--theme-galaxy-accent-strong, #e0aaff);
  --color-accent-strong-rgb: var(--theme-galaxy-accent-strong-rgb, 224 170 255);
  --color-success-soft: var(--theme-galaxy-success-soft, #b79ced);
  --color-success-soft-rgb: var(--theme-galaxy-success-soft-rgb, 183 156 237);
  --color-bg-from: var(--theme-galaxy-bg-from, #10002b);
  --color-bg-from-rgb: var(--theme-galaxy-bg-from-rgb, 16 0 43);
  --color-bg-via: var(--theme-galaxy-bg-via, #16002b);
  --color-bg-via-rgb: var(--theme-galaxy-bg-via-rgb, 22 0 43);
  --color-bg-to: var(--theme-galaxy-bg-to, #240046);
  --color-bg-to-rgb: var(--theme-galaxy-bg-to-rgb, 36 0 70);
  --color-header-from: var(--theme-galaxy-header-from, #10002b);
  --color-header-from-rgb: var(--theme-galaxy-header-from-rgb, 16 0 43);
  --color-header-to: var(--theme-galaxy-header-to, #16002b);
  --color-header-to-rgb: var(--theme-galaxy-header-to-rgb, 22 0 43);
  --color-text: var(--theme-galaxy-text, #ffffff);
  --color-text-rgb: var(--theme-galaxy-text-rgb, 255 255 255);
  --color-text-muted: var(--theme-galaxy-text-muted, rgba(255, 255, 255, 0.7));
  --color-neutral-white: var(--theme-galaxy-neutral-white, #ffffff);
  --color-neutral-white-rgb: var(--theme-galaxy-neutral-white-rgb, 255 255 255);
  --color-neutral-black: var(--theme-galaxy-neutral-black, #000000);
  --color-neutral-black-rgb: var(--theme-galaxy-neutral-black-rgb, 0 0 0);
  --color-neutral-111: var(--theme-galaxy-neutral-111, #111111);
  --color-neutral-111-rgb: var(--theme-galaxy-neutral-111-rgb, 17 17 17);
  --color-neutral-1e: var(--theme-galaxy-neutral-1e, #1e1e1e);
  --color-neutral-1e-rgb: var(--theme-galaxy-neutral-1e-rgb, 30 30 30);
  --color-neutral-1f: var(--theme-galaxy-neutral-1f, #1f1f1f);
  --color-neutral-1f-rgb: var(--theme-galaxy-neutral-1f-rgb, 31 31 31);
  --color-neutral-0f: var(--theme-galaxy-neutral-0f, #0f0f0f);
  --color-neutral-0f-rgb: var(--theme-galaxy-neutral-0f-rgb, 15 15 15);
  --color-neutral-e5: var(--theme-galaxy-neutral-e5, #e5e5e5);
  --color-neutral-e5-rgb: var(--theme-galaxy-neutral-e5-rgb, 229 229 229);
  --color-neutral-d1: var(--theme-galaxy-neutral-d1, #d1d1d1);
  --color-neutral-d1-rgb: var(--theme-galaxy-neutral-d1-rgb, 209 209 209);
  --color-neutral-cb: var(--theme-galaxy-neutral-cb, #cbcbcb);
  --color-neutral-cb-rgb: var(--theme-galaxy-neutral-cb-rgb, 203 203 203);
  --color-neutral-f0: var(--theme-galaxy-neutral-f0, #f0f0f0);
  --color-neutral-f0-rgb: var(--theme-galaxy-neutral-f0-rgb, 240 240 240);
  --color-neutral-e0: var(--theme-galaxy-neutral-e0, #e0e0e0);
  --color-neutral-e0-rgb: var(--theme-galaxy-neutral-e0-rgb, 224 224 224);
  --color-info: var(--theme-galaxy-info, #3b82f6);
  --color-info-rgb: var(--theme-galaxy-info-rgb, 59 130 246);
  --color-info-hover: var(--theme-galaxy-info-hover, #2563eb);
  --color-info-hover-rgb: var(--theme-galaxy-info-hover-rgb, 37 99 235);
  --color-info-text: var(--theme-galaxy-info-text, #ffffff);
  --color-info-text-rgb: var(--theme-galaxy-info-text-rgb, 255 255 255);
  --color-info-soft: var(--theme-galaxy-info-soft, #dbeafe);
  --color-info-soft-rgb: var(--theme-galaxy-info-soft-rgb, 219 234 254);
  --color-warning: var(--theme-galaxy-warning, #f59e0b);
  --color-warning-rgb: var(--theme-galaxy-warning-rgb, 245 158 11);
  --color-warning-text: var(--theme-galaxy-warning-text, #ffffff);
  --color-warning-text-rgb: var(--theme-galaxy-warning-text-rgb, 255 255 255);
  --color-warning-soft: var(--theme-galaxy-warning-soft, #fef3c7);
  --color-warning-soft-rgb: var(--theme-galaxy-warning-soft-rgb, 254 243 199);
  --color-danger: var(--theme-galaxy-danger, #ef4444);
  --color-danger-rgb: var(--theme-galaxy-danger-rgb, 239 68 68);
  --color-danger-text: var(--theme-galaxy-danger-text, #ffffff);
  --color-danger-text-rgb: var(--theme-galaxy-danger-text-rgb, 255 255 255);
  --color-danger-soft: var(--theme-galaxy-danger-soft, #fee2e2);
  --color-danger-soft-rgb: var(--theme-galaxy-danger-soft-rgb, 254 226 226);
  --color-purple: var(--theme-galaxy-purple, #8b5cf6);
  --color-purple-rgb: var(--theme-galaxy-purple-rgb, 139 92 246);
  --color-purple-text: var(--theme-galaxy-purple-text, #ffffff);
  --color-purple-text-rgb: var(--theme-galaxy-purple-text-rgb, 255 255 255);
  --color-brand-qq-blue: var(--theme-galaxy-brand-qq-blue, #12b7f5);
  --color-brand-qq-blue-rgb: var(--theme-galaxy-brand-qq-blue-rgb, 18 183 245);
  --color-brand-qq-green: var(--theme-galaxy-brand-qq-green, #2ecc71);
  --color-brand-qq-green-rgb: var(--theme-galaxy-brand-qq-green-rgb, 46 204 113);
  --color-avatar-from: var(--theme-galaxy-avatar-from, #10b981);
  --color-avatar-from-rgb: var(--theme-galaxy-avatar-from-rgb, 16 185 129);
  --color-avatar-to: var(--theme-galaxy-avatar-to, #059669);
  --color-avatar-to-rgb: var(--theme-galaxy-avatar-to-rgb, 5 150 105);
  --color-minecraft-border: var(--theme-galaxy-minecraft-border, #373737);
  --color-minecraft-border-rgb: var(--theme-galaxy-minecraft-border-rgb, 55 55 55);
}

html[data-theme="spring"] {
  --color-primary: var(--theme-spring-primary, #10b981);
  --color-primary-rgb: var(--theme-spring-primary-rgb, 16 185 129);
  --color-primary-hover: var(--theme-spring-primary-hover, #059669);
  --color-primary-hover-rgb: var(--theme-spring-primary-hover-rgb, 5 150 105);
  --color-secondary: var(--theme-spring-secondary, #0d9488);
  --color-secondary-rgb: var(--theme-spring-secondary-rgb, 13 148 136);
  --color-accent: var(--theme-spring-accent, #6ee7b7);
  --color-accent-rgb: var(--theme-spring-accent-rgb, 110 231 183);
  --color-accent-strong: var(--theme-spring-accent-strong, #34d399);
  --color-accent-strong-rgb: var(--theme-spring-accent-strong-rgb, 52 211 153);
  --color-success-soft: var(--theme-spring-success-soft, #86efac);
  --color-success-soft-rgb: var(--theme-spring-success-soft-rgb, 134 239 172);
  --color-bg-from: var(--theme-spring-bg-from, #047857);
  --color-bg-from-rgb: var(--theme-spring-bg-from-rgb, 4 120 87);
  --color-bg-via: var(--theme-spring-bg-via, #059669);
  --color-bg-via-rgb: var(--theme-spring-bg-via-rgb, 5 150 105);
  --color-bg-to: var(--theme-spring-bg-to, #0d9488);
  --color-bg-to-rgb: var(--theme-spring-bg-to-rgb, 13 148 136);
  --color-header-from: var(--theme-spring-header-from, #064e3b);
  --color-header-from-rgb: var(--theme-spring-header-from-rgb, 6 78 59);
  --color-header-to: var(--theme-spring-header-to, #047857);
  --color-header-to-rgb: var(--theme-spring-header-to-rgb, 4 120 87);
  --color-text: var(--theme-spring-text, #ffffff);
  --color-text-rgb: var(--theme-spring-text-rgb, 255 255 255);
  --color-text-muted: var(--theme-spring-text-muted, rgba(255, 255, 255, 0.7));
  --color-neutral-white: var(--theme-spring-neutral-white, #ffffff);
  --color-neutral-white-rgb: var(--theme-spring-neutral-white-rgb, 255 255 255);
  --color-neutral-black: var(--theme-spring-neutral-black, #000000);
  --color-neutral-black-rgb: var(--theme-spring-neutral-black-rgb, 0 0 0);
  --color-neutral-111: var(--theme-spring-neutral-111, #111111);
  --color-neutral-111-rgb: var(--theme-spring-neutral-111-rgb, 17 17 17);
  --color-neutral-1e: var(--theme-spring-neutral-1e, #1e1e1e);
  --color-neutral-1e-rgb: var(--theme-spring-neutral-1e-rgb, 30 30 30);
  --color-neutral-1f: var(--theme-spring-neutral-1f, #1f1f1f);
  --color-neutral-1f-rgb: var(--theme-spring-neutral-1f-rgb, 31 31 31);
  --color-neutral-0f: var(--theme-spring-neutral-0f, #0f0f0f);
  --color-neutral-0f-rgb: var(--theme-spring-neutral-0f-rgb, 15 15 15);
  --color-neutral-e5: var(--theme-spring-neutral-e5, #e5e5e5);
  --color-neutral-e5-rgb: var(--theme-spring-neutral-e5-rgb, 229 229 229);
  --color-neutral-d1: var(--theme-spring-neutral-d1, #d1d1d1);
  --color-neutral-d1-rgb: var(--theme-spring-neutral-d1-rgb, 209 209 209);
  --color-neutral-cb: var(--theme-spring-neutral-cb, #cbcbcb);
  --color-neutral-cb-rgb: var(--theme-spring-neutral-cb-rgb, 203 203 203);
  --color-neutral-f0: var(--theme-spring-neutral-f0, #f0f0f0);
  --color-neutral-f0-rgb: var(--theme-spring-neutral-f0-rgb, 240 240 240);
  --color-neutral-e0: var(--theme-spring-neutral-e0, #e0e0e0);
  --color-neutral-e0-rgb: var(--theme-spring-neutral-e0-rgb, 224 224 224);
  --color-info: var(--theme-spring-info, #3b82f6);
  --color-info-rgb: var(--theme-spring-info-rgb, 59 130 246);
  --color-info-hover: var(--theme-spring-info-hover, #2563eb);
  --color-info-hover-rgb: var(--theme-spring-info-hover-rgb, 37 99 235);
  --color-info-text: var(--theme-spring-info-text, #ffffff);
  --color-info-text-rgb: var(--theme-spring-info-text-rgb, 255 255 255);
  --color-info-soft: var(--theme-spring-info-soft, #dbeafe);
  --color-info-soft-rgb: var(--theme-spring-info-soft-rgb, 219 234 254);
  --color-warning: var(--theme-spring-warning, #f59e0b);
  --color-warning-rgb: var(--theme-spring-warning-rgb, 245 158 11);
  --color-warning-text: var(--theme-spring-warning-text, #ffffff);
  --color-warning-text-rgb: var(--theme-spring-warning-text-rgb, 255 255 255);
  --color-warning-soft: var(--theme-spring-warning-soft, #fef3c7);
  --color-warning-soft-rgb: var(--theme-spring-warning-soft-rgb, 254 243 199);
  --color-danger: var(--theme-spring-danger, #ef4444);
  --color-danger-rgb: var(--theme-spring-danger-rgb, 239 68 68);
  --color-danger-text: var(--theme-spring-danger-text, #ffffff);
  --color-danger-text-rgb: var(--theme-spring-danger-text-rgb, 255 255 255);
  --color-danger-soft: var(--theme-spring-danger-soft, #fee2e2);
  --color-danger-soft-rgb: var(--theme-spring-danger-soft-rgb, 254 226 226);
  --color-purple: var(--theme-spring-purple, #8b5cf6);
  --color-purple-rgb: var(--theme-spring-purple-rgb, 139 92 246);
  --color-purple-text: var(--theme-spring-purple-text, #ffffff);
  --color-purple-text-rgb: var(--theme-spring-purple-text-rgb, 255 255 255);
  --color-brand-qq-blue: var(--theme-spring-brand-qq-blue, #12b7f5);
  --color-brand-qq-blue-rgb: var(--theme-spring-brand-qq-blue-rgb, 18 183 245);
  --color-brand-qq-green: var(--theme-spring-brand-qq-green, #2ecc71);
  --color-brand-qq-green-rgb: var(--theme-spring-brand-qq-green-rgb, 46 204 113);
  --color-avatar-from: var(--theme-spring-avatar-from, #10b981);
  --color-avatar-from-rgb: var(--theme-spring-avatar-from-rgb, 16 185 129);
  --color-avatar-to: var(--theme-spring-avatar-to, #059669);
  --color-avatar-to-rgb: var(--theme-spring-avatar-to-rgb, 5 150 105);
  --color-minecraft-border: var(--theme-spring-minecraft-border, #373737);
  --color-minecraft-border-rgb: var(--theme-spring-minecraft-border-rgb, 55 55 55);
}

html[data-theme="newyear"] {
  --color-primary: var(--theme-newyear-primary);
  --color-primary-rgb: var(--theme-newyear-primary-rgb);
  --color-primary-hover: var(--theme-newyear-primary-hover);
  --color-primary-hover-rgb: var(--theme-newyear-primary-hover-rgb);
  --color-secondary: var(--theme-newyear-secondary);
  --color-secondary-rgb: var(--theme-newyear-secondary-rgb);
  --color-accent: var(--theme-newyear-accent);
  --color-accent-rgb: var(--theme-newyear-accent-rgb);
  --color-accent-strong: var(--theme-newyear-accent-strong);
  --color-accent-strong-rgb: var(--theme-newyear-accent-strong-rgb);
  --color-success-soft: var(--theme-newyear-success-soft);
  --color-success-soft-rgb: var(--theme-newyear-success-soft-rgb);
  --color-bg-from: var(--theme-newyear-bg-from);
  --color-bg-from-rgb: var(--theme-newyear-bg-from-rgb);
  --color-bg-via: var(--theme-newyear-bg-via);
  --color-bg-via-rgb: var(--theme-newyear-bg-via-rgb);
  --color-bg-to: var(--theme-newyear-bg-to);
  --color-bg-to-rgb: var(--theme-newyear-bg-to-rgb);
  --color-header-from: var(--theme-newyear-header-from);
  --color-header-from-rgb: var(--theme-newyear-header-from-rgb);
  --color-header-to: var(--theme-newyear-header-to);
  --color-header-to-rgb: var(--theme-newyear-header-to-rgb);
  --color-text: var(--theme-newyear-text);
  --color-text-rgb: var(--theme-newyear-text-rgb);
  --color-text-muted: var(--theme-newyear-text-muted);
  --color-neutral-white: var(--theme-newyear-neutral-white);
  --color-neutral-white-rgb: var(--theme-newyear-neutral-white-rgb);
  --color-neutral-black: var(--theme-newyear-neutral-black);
  --color-neutral-black-rgb: var(--theme-newyear-neutral-black-rgb);
  --color-neutral-111: var(--theme-newyear-neutral-111);
  --color-neutral-111-rgb: var(--theme-newyear-neutral-111-rgb);
  --color-neutral-1e: var(--theme-newyear-neutral-1e);
  --color-neutral-1e-rgb: var(--theme-newyear-neutral-1e-rgb);
  --color-neutral-1f: var(--theme-newyear-neutral-1f);
  --color-neutral-1f-rgb: var(--theme-newyear-neutral-1f-rgb);
  --color-neutral-0f: var(--theme-newyear-neutral-0f);
  --color-neutral-0f-rgb: var(--theme-newyear-neutral-0f-rgb);
  --color-neutral-e5: var(--theme-newyear-neutral-e5);
  --color-neutral-e5-rgb: var(--theme-newyear-neutral-e5-rgb);
  --color-neutral-d1: var(--theme-newyear-neutral-d1);
  --color-neutral-d1-rgb: var(--theme-newyear-neutral-d1-rgb);
  --color-neutral-cb: var(--theme-newyear-neutral-cb);
  --color-neutral-cb-rgb: var(--theme-newyear-neutral-cb-rgb);
  --color-neutral-f0: var(--theme-newyear-neutral-f0);
  --color-neutral-f0-rgb: var(--theme-newyear-neutral-f0-rgb);
  --color-neutral-e0: var(--theme-newyear-neutral-e0);
  --color-neutral-e0-rgb: var(--theme-newyear-neutral-e0-rgb);
  --color-info: var(--theme-newyear-info);
  --color-info-rgb: var(--theme-newyear-info-rgb);
  --color-info-hover: var(--theme-newyear-info-hover);
  --color-info-hover-rgb: var(--theme-newyear-info-hover-rgb);
  --color-info-text: var(--theme-newyear-info-text);
  --color-info-text-rgb: var(--theme-newyear-info-text-rgb);
  --color-info-soft: var(--theme-newyear-info-soft);
  --color-info-soft-rgb: var(--theme-newyear-info-soft-rgb);
  --color-warning: var(--theme-newyear-warning);
  --color-warning-rgb: var(--theme-newyear-warning-rgb);
  --color-warning-text: var(--theme-newyear-warning-text);
  --color-warning-text-rgb: var(--theme-newyear-warning-text-rgb);
  --color-warning-soft: var(--theme-newyear-warning-soft);
  --color-warning-soft-rgb: var(--theme-newyear-warning-soft-rgb);
  --color-danger: var(--theme-newyear-danger);
  --color-danger-rgb: var(--theme-newyear-danger-rgb);
  --color-danger-text: var(--theme-newyear-danger-text);
  --color-danger-text-rgb: var(--theme-newyear-danger-text-rgb);
  --color-danger-soft: var(--theme-newyear-danger-soft);
  --color-danger-soft-rgb: var(--theme-newyear-danger-soft-rgb);
  --color-purple: var(--theme-newyear-purple);
  --color-purple-rgb: var(--theme-newyear-purple-rgb);
  --color-purple-text: var(--theme-newyear-purple-text);
  --color-purple-text-rgb: var(--theme-newyear-purple-text-rgb);
  --color-brand-qq-blue: var(--theme-newyear-brand-qq-blue);
  --color-brand-qq-blue-rgb: var(--theme-newyear-brand-qq-blue-rgb);
  --color-brand-qq-green: var(--theme-newyear-brand-qq-green);
  --color-brand-qq-green-rgb: var(--theme-newyear-brand-qq-green-rgb);
  --color-avatar-from: var(--theme-newyear-avatar-from);
  --color-avatar-from-rgb: var(--theme-newyear-avatar-from-rgb);
  --color-avatar-to: var(--theme-newyear-avatar-to);
  --color-avatar-to-rgb: var(--theme-newyear-avatar-to-rgb);
  --color-minecraft-border: var(--theme-newyear-minecraft-border);
  --color-minecraft-border-rgb: var(--theme-newyear-minecraft-border-rgb);
}

html[data-theme="summer"] {
  --color-primary: var(--theme-summer-primary);
  --color-primary-rgb: var(--theme-summer-primary-rgb);
  --color-primary-hover: var(--theme-summer-primary-hover);
  --color-primary-hover-rgb: var(--theme-summer-primary-hover-rgb);
  --color-secondary: var(--theme-summer-secondary);
  --color-secondary-rgb: var(--theme-summer-secondary-rgb);
  --color-accent: var(--theme-summer-accent);
  --color-accent-rgb: var(--theme-summer-accent-rgb);
  --color-accent-strong: var(--theme-summer-accent-strong);
  --color-accent-strong-rgb: var(--theme-summer-accent-strong-rgb);
  --color-success-soft: var(--theme-summer-success-soft);
  --color-success-soft-rgb: var(--theme-summer-success-soft-rgb);
  --color-bg-from: var(--theme-summer-bg-from);
  --color-bg-from-rgb: var(--theme-summer-bg-from-rgb);
  --color-bg-via: var(--theme-summer-bg-via);
  --color-bg-via-rgb: var(--theme-summer-bg-via-rgb);
  --color-bg-to: var(--theme-summer-bg-to);
  --color-bg-to-rgb: var(--theme-summer-bg-to-rgb);
  --color-header-from: var(--theme-summer-header-from);
  --color-header-from-rgb: var(--theme-summer-header-from-rgb);
  --color-header-to: var(--theme-summer-header-to);
  --color-header-to-rgb: var(--theme-summer-header-to-rgb);
  --color-text: var(--theme-summer-text);
  --color-text-rgb: var(--theme-summer-text-rgb);
  --color-text-muted: var(--theme-summer-text-muted);
  --color-neutral-white: var(--theme-summer-neutral-white);
  --color-neutral-white-rgb: var(--theme-summer-neutral-white-rgb);
  --color-neutral-black: var(--theme-summer-neutral-black);
  --color-neutral-black-rgb: var(--theme-summer-neutral-black-rgb);
  --color-neutral-111: var(--theme-summer-neutral-111);
  --color-neutral-111-rgb: var(--theme-summer-neutral-111-rgb);
  --color-neutral-1e: var(--theme-summer-neutral-1e);
  --color-neutral-1e-rgb: var(--theme-summer-neutral-1e-rgb);
  --color-neutral-1f: var(--theme-summer-neutral-1f);
  --color-neutral-1f-rgb: var(--theme-summer-neutral-1f-rgb);
  --color-neutral-0f: var(--theme-summer-neutral-0f);
  --color-neutral-0f-rgb: var(--theme-summer-neutral-0f-rgb);
  --color-neutral-e5: var(--theme-summer-neutral-e5);
  --color-neutral-e5-rgb: var(--theme-summer-neutral-e5-rgb);
  --color-neutral-d1: var(--theme-summer-neutral-d1);
  --color-neutral-d1-rgb: var(--theme-summer-neutral-d1-rgb);
  --color-neutral-cb: var(--theme-summer-neutral-cb);
  --color-neutral-cb-rgb: var(--theme-summer-neutral-cb-rgb);
  --color-neutral-f0: var(--theme-summer-neutral-f0);
  --color-neutral-f0-rgb: var(--theme-summer-neutral-f0-rgb);
  --color-neutral-e0: var(--theme-summer-neutral-e0);
  --color-neutral-e0-rgb: var(--theme-summer-neutral-e0-rgb);
  --color-info: var(--theme-summer-info);
  --color-info-rgb: var(--theme-summer-info-rgb);
  --color-info-hover: var(--theme-summer-info-hover);
  --color-info-hover-rgb: var(--theme-summer-info-hover-rgb);
  --color-info-text: var(--theme-summer-info-text);
  --color-info-text-rgb: var(--theme-summer-info-text-rgb);
  --color-info-soft: var(--theme-summer-info-soft);
  --color-info-soft-rgb: var(--theme-summer-info-soft-rgb);
  --color-warning: var(--theme-summer-warning);
  --color-warning-rgb: var(--theme-summer-warning-rgb);
  --color-warning-text: var(--theme-summer-warning-text);
  --color-warning-text-rgb: var(--theme-summer-warning-text-rgb);
  --color-warning-soft: var(--theme-summer-warning-soft);
  --color-warning-soft-rgb: var(--theme-summer-warning-soft-rgb);
  --color-danger: var(--theme-summer-danger);
  --color-danger-rgb: var(--theme-summer-danger-rgb);
  --color-danger-text: var(--theme-summer-danger-text);
  --color-danger-text-rgb: var(--theme-summer-danger-text-rgb);
  --color-danger-soft: var(--theme-summer-danger-soft);
  --color-danger-soft-rgb: var(--theme-summer-danger-soft-rgb);
  --color-purple: var(--theme-summer-purple);
  --color-purple-rgb: var(--theme-summer-purple-rgb);
  --color-purple-text: var(--theme-summer-purple-text);
  --color-purple-text-rgb: var(--theme-summer-purple-text-rgb);
  --color-brand-qq-blue: var(--theme-summer-brand-qq-blue);
  --color-brand-qq-blue-rgb: var(--theme-summer-brand-qq-blue-rgb);
  --color-brand-qq-green: var(--theme-summer-brand-qq-green);
  --color-brand-qq-green-rgb: var(--theme-summer-brand-qq-green-rgb);
  --color-avatar-from: var(--theme-summer-avatar-from);
  --color-avatar-from-rgb: var(--theme-summer-avatar-from-rgb);
  --color-avatar-to: var(--theme-summer-avatar-to);
  --color-avatar-to-rgb: var(--theme-summer-avatar-to-rgb);
  --color-minecraft-border: var(--theme-summer-minecraft-border);
  --color-minecraft-border-rgb: var(--theme-summer-minecraft-border-rgb);
}

html[data-theme="autumn"] {
  --color-primary: var(--theme-autumn-primary);
  --color-primary-rgb: var(--theme-autumn-primary-rgb);
  --color-primary-hover: var(--theme-autumn-primary-hover);
  --color-primary-hover-rgb: var(--theme-autumn-primary-hover-rgb);
  --color-secondary: var(--theme-autumn-secondary);
  --color-secondary-rgb: var(--theme-autumn-secondary-rgb);
  --color-accent: var(--theme-autumn-accent);
  --color-accent-rgb: var(--theme-autumn-accent-rgb);
  --color-accent-strong: var(--theme-autumn-accent-strong);
  --color-accent-strong-rgb: var(--theme-autumn-accent-strong-rgb);
  --color-success-soft: var(--theme-autumn-success-soft);
  --color-success-soft-rgb: var(--theme-autumn-success-soft-rgb);
  --color-bg-from: var(--theme-autumn-bg-from);
  --color-bg-from-rgb: var(--theme-autumn-bg-from-rgb);
  --color-bg-via: var(--theme-autumn-bg-via);
  --color-bg-via-rgb: var(--theme-autumn-bg-via-rgb);
  --color-bg-to: var(--theme-autumn-bg-to);
  --color-bg-to-rgb: var(--theme-autumn-bg-to-rgb);
  --color-header-from: var(--theme-autumn-header-from);
  --color-header-from-rgb: var(--theme-autumn-header-from-rgb);
  --color-header-to: var(--theme-autumn-header-to);
  --color-header-to-rgb: var(--theme-autumn-header-to-rgb);
  --color-text: var(--theme-autumn-text);
  --color-text-rgb: var(--theme-autumn-text-rgb);
  --color-text-muted: var(--theme-autumn-text-muted);
  --color-neutral-white: var(--theme-autumn-neutral-white);
  --color-neutral-white-rgb: var(--theme-autumn-neutral-white-rgb);
  --color-neutral-black: var(--theme-autumn-neutral-black);
  --color-neutral-black-rgb: var(--theme-autumn-neutral-black-rgb);
  --color-neutral-111: var(--theme-autumn-neutral-111);
  --color-neutral-111-rgb: var(--theme-autumn-neutral-111-rgb);
  --color-neutral-1e: var(--theme-autumn-neutral-1e);
  --color-neutral-1e-rgb: var(--theme-autumn-neutral-1e-rgb);
  --color-neutral-1f: var(--theme-autumn-neutral-1f);
  --color-neutral-1f-rgb: var(--theme-autumn-neutral-1f-rgb);
  --color-neutral-0f: var(--theme-autumn-neutral-0f);
  --color-neutral-0f-rgb: var(--theme-autumn-neutral-0f-rgb);
  --color-neutral-e5: var(--theme-autumn-neutral-e5);
  --color-neutral-e5-rgb: var(--theme-autumn-neutral-e5-rgb);
  --color-neutral-d1: var(--theme-autumn-neutral-d1);
  --color-neutral-d1-rgb: var(--theme-autumn-neutral-d1-rgb);
  --color-neutral-cb: var(--theme-autumn-neutral-cb);
  --color-neutral-cb-rgb: var(--theme-autumn-neutral-cb-rgb);
  --color-neutral-f0: var(--theme-autumn-neutral-f0);
  --color-neutral-f0-rgb: var(--theme-autumn-neutral-f0-rgb);
  --color-neutral-e0: var(--theme-autumn-neutral-e0);
  --color-neutral-e0-rgb: var(--theme-autumn-neutral-e0-rgb);
  --color-info: var(--theme-autumn-info);
  --color-info-rgb: var(--theme-autumn-info-rgb);
  --color-info-hover: var(--theme-autumn-info-hover);
  --color-info-hover-rgb: var(--theme-autumn-info-hover-rgb);
  --color-info-text: var(--theme-autumn-info-text);
  --color-info-text-rgb: var(--theme-autumn-info-text-rgb);
  --color-info-soft: var(--theme-autumn-info-soft);
  --color-info-soft-rgb: var(--theme-autumn-info-soft-rgb);
  --color-warning: var(--theme-autumn-warning);
  --color-warning-rgb: var(--theme-autumn-warning-rgb);
  --color-warning-text: var(--theme-autumn-warning-text);
  --color-warning-text-rgb: var(--theme-autumn-warning-text-rgb);
  --color-warning-soft: var(--theme-autumn-warning-soft);
  --color-warning-soft-rgb: var(--theme-autumn-warning-soft-rgb);
  --color-danger: var(--theme-autumn-danger);
  --color-danger-rgb: var(--theme-autumn-danger-rgb);
  --color-danger-text: var(--theme-autumn-danger-text);
  --color-danger-text-rgb: var(--theme-autumn-danger-text-rgb);
  --color-danger-soft: var(--theme-autumn-danger-soft);
  --color-danger-soft-rgb: var(--theme-autumn-danger-soft-rgb);
  --color-purple: var(--theme-autumn-purple);
  --color-purple-rgb: var(--theme-autumn-purple-rgb);
  --color-purple-text: var(--theme-autumn-purple-text);
  --color-purple-text-rgb: var(--theme-autumn-purple-text-rgb);
  --color-brand-qq-blue: var(--theme-autumn-brand-qq-blue);
  --color-brand-qq-blue-rgb: var(--theme-autumn-brand-qq-blue-rgb);
  --color-brand-qq-green: var(--theme-autumn-brand-qq-green);
  --color-brand-qq-green-rgb: var(--theme-autumn-brand-qq-green-rgb);
  --color-avatar-from: var(--theme-autumn-avatar-from);
  --color-avatar-from-rgb: var(--theme-autumn-avatar-from-rgb);
  --color-avatar-to: var(--theme-autumn-avatar-to);
  --color-avatar-to-rgb: var(--theme-autumn-avatar-to-rgb);
  --color-minecraft-border: var(--theme-autumn-minecraft-border);
  --color-minecraft-border-rgb: var(--theme-autumn-minecraft-border-rgb);
}

html[data-theme="snow"] {
  --color-primary: var(--theme-snow-primary);
  --color-primary-rgb: var(--theme-snow-primary-rgb);
  --color-primary-hover: var(--theme-snow-primary-hover);
  --color-primary-hover-rgb: var(--theme-snow-primary-hover-rgb);
  --color-secondary: var(--theme-snow-secondary);
  --color-secondary-rgb: var(--theme-snow-secondary-rgb);
  --color-accent: var(--theme-snow-accent);
  --color-accent-rgb: var(--theme-snow-accent-rgb);
  --color-accent-strong: var(--theme-snow-accent-strong);
  --color-accent-strong-rgb: var(--theme-snow-accent-strong-rgb);
  --color-success-soft: var(--theme-snow-success-soft);
  --color-success-soft-rgb: var(--theme-snow-success-soft-rgb);
  --color-bg-from: var(--theme-snow-bg-from);
  --color-bg-from-rgb: var(--theme-snow-bg-from-rgb);
  --color-bg-via: var(--theme-snow-bg-via);
  --color-bg-via-rgb: var(--theme-snow-bg-via-rgb);
  --color-bg-to: var(--theme-snow-bg-to);
  --color-bg-to-rgb: var(--theme-snow-bg-to-rgb);
  --color-header-from: var(--theme-snow-header-from);
  --color-header-from-rgb: var(--theme-snow-header-from-rgb);
  --color-header-to: var(--theme-snow-header-to);
  --color-header-to-rgb: var(--theme-snow-header-to-rgb);
  --color-text: var(--theme-snow-text);
  --color-text-rgb: var(--theme-snow-text-rgb);
  --color-text-muted: var(--theme-snow-text-muted);
  --color-neutral-white: var(--theme-snow-neutral-white);
  --color-neutral-white-rgb: var(--theme-snow-neutral-white-rgb);
  --color-neutral-black: var(--theme-snow-neutral-black);
  --color-neutral-black-rgb: var(--theme-snow-neutral-black-rgb);
  --color-neutral-111: var(--theme-snow-neutral-111);
  --color-neutral-111-rgb: var(--theme-snow-neutral-111-rgb);
  --color-neutral-1e: var(--theme-snow-neutral-1e);
  --color-neutral-1e-rgb: var(--theme-snow-neutral-1e-rgb);
  --color-neutral-1f: var(--theme-snow-neutral-1f);
  --color-neutral-1f-rgb: var(--theme-snow-neutral-1f-rgb);
  --color-neutral-0f: var(--theme-snow-neutral-0f);
  --color-neutral-0f-rgb: var(--theme-snow-neutral-0f-rgb);
  --color-neutral-e5: var(--theme-snow-neutral-e5);
  --color-neutral-e5-rgb: var(--theme-snow-neutral-e5-rgb);
  --color-neutral-d1: var(--theme-snow-neutral-d1);
  --color-neutral-d1-rgb: var(--theme-snow-neutral-d1-rgb);
  --color-neutral-cb: var(--theme-snow-neutral-cb);
  --color-neutral-cb-rgb: var(--theme-snow-neutral-cb-rgb);
  --color-neutral-f0: var(--theme-snow-neutral-f0);
  --color-neutral-f0-rgb: var(--theme-snow-neutral-f0-rgb);
  --color-neutral-e0: var(--theme-snow-neutral-e0);
  --color-neutral-e0-rgb: var(--theme-snow-neutral-e0-rgb);
  --color-info: var(--theme-snow-info);
  --color-info-rgb: var(--theme-snow-info-rgb);
  --color-info-hover: var(--theme-snow-info-hover);
  --color-info-hover-rgb: var(--theme-snow-info-hover-rgb);
  --color-info-text: var(--theme-snow-info-text);
  --color-info-text-rgb: var(--theme-snow-info-text-rgb);
  --color-info-soft: var(--theme-snow-info-soft);
  --color-info-soft-rgb: var(--theme-snow-info-soft-rgb);
  --color-warning: var(--theme-snow-warning);
  --color-warning-rgb: var(--theme-snow-warning-rgb);
  --color-warning-text: var(--theme-snow-warning-text);
  --color-warning-text-rgb: var(--theme-snow-warning-text-rgb);
  --color-warning-soft: var(--theme-snow-warning-soft);
  --color-warning-soft-rgb: var(--theme-snow-warning-soft-rgb);
  --color-danger: var(--theme-snow-danger);
  --color-danger-rgb: var(--theme-snow-danger-rgb);
  --color-danger-text: var(--theme-snow-danger-text);
  --color-danger-text-rgb: var(--theme-snow-danger-text-rgb);
  --color-danger-soft: var(--theme-snow-danger-soft);
  --color-danger-soft-rgb: var(--theme-snow-danger-soft-rgb);
  --color-purple: var(--theme-snow-purple);
  --color-purple-rgb: var(--theme-snow-purple-rgb);
  --color-purple-text: var(--theme-snow-purple-text);
  --color-purple-text-rgb: var(--theme-snow-purple-text-rgb);
  --color-brand-qq-blue: var(--theme-snow-brand-qq-blue);
  --color-brand-qq-blue-rgb: var(--theme-snow-brand-qq-blue-rgb);
  --color-brand-qq-green: var(--theme-snow-brand-qq-green);
  --color-brand-qq-green-rgb: var(--theme-snow-brand-qq-green-rgb);
  --color-avatar-from: var(--theme-snow-avatar-from);
  --color-avatar-from-rgb: var(--theme-snow-avatar-from-rgb);
  --color-avatar-to: var(--theme-snow-avatar-to);
  --color-avatar-to-rgb: var(--theme-snow-avatar-to-rgb);
  --color-minecraft-border: var(--theme-snow-minecraft-border);
  --color-minecraft-border-rgb: var(--theme-snow-minecraft-border-rgb);
}

body {
  background: linear-gradient(135deg, var(--color-bg-from) 0%, var(--color-bg-via) 50%, var(--color-bg-to) 100%);
  color: var(--color-text);
}

html.theme-transition,
html.theme-transition * {
  transition-property: background-color, border-color, color, box-shadow, fill, stroke, opacity;
  transition-duration: 240ms;
  transition-timing-function: ease;
}
