:root {
  --bg: #0e0f13;
  --bg-2: #16181f;
  --t1: #edeef3;
  --t2: #8a8fa8;
  --t3: #454a62;
  --accent: #7c83f5;
  --accent-glow: rgba(124,131,245,0.22);
  --accent-dim: rgba(124,131,245,0.09);
  --accent-soft: #a8aeff;
  --orange: #f59e0b;
  --border: rgba(124,131,245,0.14);
  --input-bg: #12131a;
  --pattern: rgba(124,131,245,0.16);
  --font: 'Inter',system-ui,sans-serif;
  --r: 12px;
  --r-sm: 8px;
  --ease: cubic-bezier(.4,0,.2,1)
}
body.theme-light {
  --bg: #f1f2f6;
  --bg-2: #ffffff;
  --t1: #1a1b26;
  --t2: #555870;
  --t3: #9da4bc;
  --border: rgba(124,131,245,0.22);
  --input-bg: #e8e9f0;
  --pattern: rgba(60,70,140,0.18)
}
body.theme-midnight {
  --bg: #07080f;
  --bg-2: #0f1020;
  --t1: #e2e5f0;
  --t2: #7c8099;
  --t3: #3a3e58;
  --border: rgba(99,102,241,0.15);
  --input-bg: #0a0c18;
  --pattern: rgba(99,102,241,0.20)
}
body.theme-ocean {
  --bg: #0a1626;
  --bg-2: #102236;
  --t1: #e2ecf5;
  --t2: #7896b3;
  --t3: #3a5670;
  --accent: #38bdf8;
  --accent-glow: rgba(56,189,248,0.22);
  --accent-dim: rgba(56,189,248,0.09);
  --accent-soft: #7dd3fc;
  --border: rgba(56,189,248,0.18);
  --input-bg: #091420;
  --pattern: rgba(56,189,248,0.22)
}
body.theme-forest {
  --bg: #0d1410;
  --bg-2: #15201a;
  --t1: #e2efe6;
  --t2: #7e9587;
  --t3: #3a4f43;
  --accent: #4ade80;
  --accent-glow: rgba(74,222,128,0.22);
  --accent-dim: rgba(74,222,128,0.09);
  --accent-soft: #86efac;
  --border: rgba(74,222,128,0.18);
  --input-bg: #0a110d;
  --pattern: rgba(74,222,128,0.22)
}
body.theme-mocha {
  --bg: #1a120c;
  --bg-2: #241a13;
  --t1: #f0e6dc;
  --t2: #a08b78;
  --t3: #5e4a3a;
  --accent: #f59e0b;
  --accent-glow: rgba(245,158,11,0.22);
  --accent-dim: rgba(245,158,11,0.09);
  --accent-soft: #fbbf24;
  --border: rgba(245,158,11,0.18);
  --input-bg: #150e08;
  --pattern: rgba(245,158,11,0.22)
}
body.theme-rose {
  --bg: #15080e;
  --bg-2: #1e0d16;
  --t1: #f5e8ee;
  --t2: #a88090;
  --t3: #5a3848;
  --accent: #f472b6;
  --accent-glow: rgba(244,114,182,0.22);
  --accent-dim: rgba(244,114,182,0.09);
  --accent-soft: #f9a8d4;
  --border: rgba(244,114,182,0.18);
  --input-bg: #10060a;
  --pattern: rgba(244,114,182,0.22)
}
body.theme-sunset {
  --bg: #1a0f08;
  --bg-2: #241710;
  --t1: #fbe8d7;
  --t2: #b58869;
  --t3: #6e4a31;
  --accent: #fb7185;
  --accent-glow: rgba(251,113,133,0.22);
  --accent-dim: rgba(251,113,133,0.09);
  --accent-soft: #fda4af;
  --border: rgba(251,113,133,0.18);
  --input-bg: #150b06;
  --pattern: rgba(251,113,133,0.22)
}
body.theme-cyberpunk {
  --bg: #0d0014;
  --bg-2: #16001f;
  --t1: #fef2ff;
  --t2: #c084fc;
  --t3: #6b21a8;
  --accent: #fde047;
  --accent-glow: rgba(253,224,71,0.28);
  --accent-dim: rgba(253,224,71,0.1);
  --accent-soft: #facc15;
  --border: rgba(217,70,239,0.32);
  --input-bg: #0a000f;
  --pattern: rgba(217,70,239,0.30)
}
body.theme-lavender {
  --bg: #f4f1fa;
  --bg-2: #ffffff;
  --t1: #2a1f3e;
  --t2: #6b5e80;
  --t3: #a698bc;
  --accent: #8b5cf6;
  --accent-glow: rgba(139,92,246,0.22);
  --accent-dim: rgba(139,92,246,0.10);
  --accent-soft: #a78bfa;
  --border: rgba(139,92,246,0.25);
  --input-bg: #ece6f5;
  --pattern: rgba(109,72,206,0.22)
}
body.theme-mint {
  --bg: #0a1612;
  --bg-2: #12201b;
  --t1: #e0f5ed;
  --t2: #7eb89e;
  --t3: #3a5e4c;
  --accent: #10b981;
  --accent-glow: rgba(16,185,129,0.22);
  --accent-dim: rgba(16,185,129,0.09);
  --accent-soft: #34d399;
  --border: rgba(16,185,129,0.20);
  --input-bg: #08120f;
  --pattern: rgba(16,185,129,0.24)
}
body.theme-charcoal {
  --bg: #101012;
  --bg-2: #1a1a1d;
  --t1: #e8e8eb;
  --t2: #9a9aa3;
  --t3: #4a4a52;
  --accent: #a3a3a3;
  --accent-glow: rgba(163,163,163,0.20);
  --accent-dim: rgba(163,163,163,0.08);
  --accent-soft: #d4d4d4;
  --border: rgba(163,163,163,0.18);
  --input-bg: #0b0b0d;
  --pattern: rgba(163,163,163,0.22)
}
body.theme-crimson {
  --bg: #150607;
  --bg-2: #1e0a0c;
  --t1: #f5e0e2;
  --t2: #a8767a;
  --t3: #5a2a2e;
  --accent: #ef4444;
  --accent-glow: rgba(239,68,68,0.22);
  --accent-dim: rgba(239,68,68,0.09);
  --accent-soft: #fca5a5;
  --border: rgba(239,68,68,0.20);
  --input-bg: #100405;
  --pattern: rgba(239,68,68,0.24)
}
body.theme-sky {
  --bg: #eff7ff;
  --bg-2: #ffffff;
  --t1: #0c2138;
  --t2: #516d8c;
  --t3: #9bb3cf;
  --accent: #0ea5e9;
  --accent-glow: rgba(14,165,233,0.22);
  --accent-dim: rgba(14,165,233,0.10);
  --accent-soft: #38bdf8;
  --border: rgba(14,165,233,0.25);
  --input-bg: #e3eef9;
  --pattern: rgba(14,108,180,0.22)
}
body.theme-amber {
  --bg: #15110a;
  --bg-2: #1e1810;
  --t1: #faf0e0;
  --t2: #b89870;
  --t3: #5e4a30;
  --accent: #facc15;
  --accent-glow: rgba(250,204,21,0.22);
  --accent-dim: rgba(250,204,21,0.09);
  --accent-soft: #fde047;
  --border: rgba(250,204,21,0.20);
  --input-bg: #100c06;
  --pattern: rgba(250,204,21,0.24)
}
body.bg-grid {
  background-image: linear-gradient(var(--pattern) 1px,transparent 1px),linear-gradient(90deg,var(--pattern) 1px,transparent 1px);
  background-size: 36px 36px;
  background-attachment: fixed
}
body.bg-dots {
  background-image: radial-gradient(circle,var(--pattern) 1.6px,transparent 1.6px);
  background-size: 22px 22px;
  background-attachment: fixed
}
body.bg-waves {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='50' viewBox='0 0 200 50'%3E%3Cpath d='M0 25 Q50 0 100 25 T200 25' stroke='%237c83f5' stroke-opacity='0.55' fill='none' stroke-width='1.5'/%3E%3Cpath d='M0 35 Q50 10 100 35 T200 35' stroke='%237c83f5' stroke-opacity='0.35' fill='none' stroke-width='1'/%3E%3C/svg%3E");
  background-size: 200px 50px;
  background-repeat: repeat;
  background-attachment: fixed
}
body.bg-stars {
  background-image: radial-gradient(circle, var(--pattern) 0.9px, transparent 1px),radial-gradient(circle, var(--pattern) 0.6px, transparent 0.8px),radial-gradient(circle, var(--pattern) 0.4px, transparent 0.6px);
  background-size: 90px 90px,45px 45px,27px 27px;
  background-position: 0 0,22px 14px,11px 7px;
  background-attachment: fixed
}