/* Theme Overrides */
.theme-minimal {
    --bg: #f8fafc;
    --panel: rgba(255, 255, 255, 0.8);
    --text: #1e293b;
    --glass-border: rgba(0, 0, 0, 0.05);
    --glass-blur: blur(20px);
}

.theme-retro {
    --bg: #2d033b;
    --accent: #ff00de;
    --panel: rgba(81, 10, 115, 0.4);
    --glass-border: rgba(255, 0, 222, 0.3);
    background-image: linear-gradient(rgba(255, 0, 222, 0.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 0, 222, 0.05) 1px, transparent 1px);
    background-size: 50px 50px;
}

.theme-matrix .ambient-bg {
    display: none;
}

.theme-retro .ambient-bg {
    display: none;
}

.theme-cyberpunk {
    --bg: #000;
    --accent: #f8e100;
    --text: #f8e100;
    --panel: rgba(0, 0, 0, 0.9);
    --glass-border: #f8e100;
    --glass-blur: none;
    background-image: radial-gradient(circle at 100% 100%, #000 0%, #111 100%);
}

.theme-cyberpunk .ambient-bg {
    display: none;
}

.theme-cyberpunk .player-card {
    border: 4px solid #f8e100;
    border-radius: 4px;
    box-shadow: 0 0 30px rgba(248, 225, 0, 0.3);
}

.theme-matrix {
    --bg: #000;
    --panel: rgba(0, 20, 0, 0.9);
    --accent: #00ff41;
    --text: #00ff41;
    --glass-border: #00ff41;
    --glass-blur: blur(5px);
    font-family: 'Courier New', Courier, monospace !important;
}

.theme-matrix * {
    text-shadow: 0 0 5px #00ff41;
}

.theme-aurora {
    --bg: #000;
    --accent: #00ffcc;
    --panel: rgba(0, 255, 204, 0.1);
    --glass-border: rgba(0, 255, 204, 0.2);
    --glass-blur: blur(60px);
    background: linear-gradient(217deg, rgba(255, 0, 0, .1), rgba(255, 0, 0, 0) 70.71%), linear-gradient(127deg, rgba(0, 255, 0, .1), rgba(0, 255, 0, 0) 70.71%), linear-gradient(336deg, rgba(0, 0, 255, .1), rgba(0, 0, 255, 0) 70.71%);
    background-attachment: fixed;
}

.theme-nebula {
    --bg: #0b0014;
    --panel: rgba(20, 0, 40, 0.6);
    --accent: #bc13fe;
    --text: #fff;
    --glass-border: rgba(188, 19, 254, 0.3);
    --glass-blur: blur(40px);
    background: radial-gradient(circle at 20% 30%, #2e003e 0%, #0b0014 100%);
}

.theme-sunset {
    --bg: #ff5e62;
    --panel: rgba(255, 140, 0, 0.2);
    --accent: #ff9966;
    --text: #fff;
    --glass-border: rgba(255, 255, 255, 0.3);
    --glass-blur: blur(30px);
    background: linear-gradient(135deg, #ff9966 0%, #ff5e62 100%);
}

.theme-ocean {
    --bg: #001f3f;
    --panel: rgba(0, 116, 217, 0.2);
    --accent: #7fdbff;
    --text: #fff;
    --glass-border: rgba(127, 219, 255, 0.3);
    --glass-blur: blur(40px);
    background: linear-gradient(180deg, #001f3f 0%, #000 100%);
}

.theme-brutal {
    --bg: #e0e0e0;
    --panel: #fff;
    --accent: #000;
    --text: #000;
    --glass-border: #000;
    --glass-blur: none;
}

.theme-brutal .player-card {
    border: 6px solid #000;
    border-radius: 0;
    box-shadow: 20px 20px 0 #000;
}

.theme-kids {
    --bg: #ff75c3;
    --panel: rgba(255, 255, 255, 0.9);
    --accent: #ff75c3;
    --text: #444;
    --glass-border: #ff75c3;
    --glass-blur: none;
    background: linear-gradient(45deg, #ff75c3, #ffa647, #70ff70, #00cdac);
    background-size: 400% 400%;
    animation: gradientBG 15s ease infinite;
}

.theme-kids .player-card {
    border-radius: 60px 20px 60px 20px;
    border: 8px solid #ff75c3;
    box-shadow: 10px 10px 0 rgba(0, 0, 0, 0.1);
}

.theme-urban {
    --bg: #111;
    --panel: rgba(0, 0, 0, 0.85);
    --accent: #ff0055;
    --text: #fff;
    --glass-border: #ff0055;
    --glass-blur: blur(10px);
    background-image: url('https://www.transparenttextures.com/patterns/black-linen.png'), linear-gradient(to bottom, #111, #333);
}

.theme-urban .player-card {
    border: 5px solid #ff0055;
    box-shadow: 15px 15px 0 rgba(255, 0, 85, 0.2);
    transform: rotate(-1deg);
}

.theme-rock {
    --bg: #1a1a1a;
    --panel: rgba(20, 20, 20, 0.9);
    --accent: #8b0000;
    --text: #ddd;
    --glass-border: #444;
    --glass-blur: blur(5px);
    background-image: url('https://www.transparenttextures.com/patterns/dark-leather.png');
}

.theme-rock .player-card {
    border: 2px solid #444;
    box-shadow: 0 0 30px rgba(0, 0, 0, 1);
}

.theme-metal {
    --bg: #000;
    --panel: rgba(17, 17, 17, 0.95);
    --accent: #ff0000;
    --text: #fff;
    --glass-border: #666;
    --glass-blur: none;
    background: repeating-linear-gradient(45deg, #000, #111 100px);
}

.theme-metal .player-card {
    border: 3px solid #666;
    border-radius: 12px;
    box-shadow: inset 0 0 50px rgba(255, 0, 0, 0.2), 0 0 40px rgba(0, 0, 0, 1);
}

.theme-classicVibe {
    --bg: #f5f5dc;
    --panel: rgba(255, 255, 255, 0.9);
    --accent: #b8860b;
    --text: #2f4f4f;
    --glass-border: #b8860b;
    --glass-blur: blur(10px);
    background-image: radial-gradient(circle at center, #fff 0%, #f5f5dc 100%);
}

.theme-classicVibe .player-card {
    border: 1px solid #b8860b;
    box-shadow: 0 0 40px rgba(184, 134, 11, 0.2);
}

.theme-trip {
    --bg: #000;
    --panel: rgba(255, 255, 255, 0.15);
    --accent: #fff;
    --text: #fff;
    --glass-border: rgba(255, 255, 255, 0.3);
    --glass-blur: blur(25px);
    background: conic-gradient(from 180deg at 50% 50%, #ff0000, #ff7f00, #ffff00, #00ff00, #0000ff, #4b0082, #8b00ff, #ff0000);
    background-size: 200% 200%;
    animation: gradientBG 5s linear infinite, trippy-rotate 10s ease-in-out infinite;
}

.theme-trip .ambient-bg {
    display: none;
}

.theme-trip .player-card {
    background: rgba(0, 0, 0, 0.2);
    border: 2px solid var(--glass-border);
    animation: trippy-warp 8s ease-in-out infinite;
    backdrop-filter: hue-rotate(90deg) blur(25px);
}

.theme-acid {
    --bg: #000;
    --panel: rgba(0, 255, 0, 0.1);
    --accent: #0f0;
    --text: #0f0;
    --glass-border: rgba(0, 255, 0, 0.4);
    --glass-blur: blur(15px);
    background: radial-gradient(circle at center, #1a0033, #000);
    animation: trippy-hue 10s linear infinite;
}

.theme-acid .ambient-bg {
    display: none;
}

.theme-acid::before {
    content: '';
    position: fixed;
    inset: -100%;
    background: repeating-conic-gradient(#00ff00 0% 1%, transparent 1% 2%);
    opacity: 0.15;
    animation: trippy-rotate 15s linear infinite;
    pointer-events: none;
    z-index: -1;
}

.theme-acid .player-card {
    background: rgba(0, 0, 0, 0.8);
    border: 2px solid #0f0;
    box-shadow: 0 0 50px rgba(0, 255, 0, 0.2), inset 0 0 20px rgba(0, 255, 0, 0.1);
    animation: trippy-warp 5s infinite alternate-reverse;
}

.theme-acid .visualizer-bar {
    filter: drop-shadow(0 0 5px #0f0);
}

.theme-horror {
    --bg: #050000;
    --panel: rgba(20, 0, 0, 0.8);
    --accent: #f00;
    --text: #f00;
    --glass-border: rgba(255, 0, 0, 0.3);
    --glass-blur: blur(10px);
    background: radial-gradient(circle at center, #2e0000, #000);
}

.theme-horror .ambient-bg {
    display: none;
}

.theme-horror .player-card {
    background: rgba(0, 0, 0, 0.9);
    border: 1px solid #600;
    box-shadow: 0 0 40px rgba(255, 0, 0, 0.1);
    animation: vhsRolling 4s infinite;
}

.theme-horror .radio-title {
    text-shadow: 0 0 10px #f00;
    animation: jitter 0.5s infinite;
}

.theme-dreamscape {
    --bg: #0f0c29;
    --panel: rgba(255, 255, 255, 0.05);
    --accent: #00d2ff;
    --text: #fff;
    --glass-border: rgba(255, 255, 255, 0.1);
    --glass-blur: blur(30px);
    background: linear-gradient(135deg, #0f0c29, #302b63, #24243e, #00d2ff, #3a7bd5);
    background-size: 400% 400%;
    animation: parallax-bg 15s ease infinite;
}

.theme-dreamscape .ambient-bg { display: none; }

.theme-dreamscape::before {
    content: '';
    position: fixed;
    top: -50%; left: -50%; width: 200%; height: 200%;
    background: radial-gradient(circle at center, rgba(0, 210, 255, 0.1) 0%, transparent 50%);
    animation: floating-shapes 20s linear infinite;
    pointer-events: none;
    z-index: -1;
}

.theme-glitch-world {
    --bg: #000;
    --panel: rgba(255, 255, 255, 0.1);
    --accent: #f0f;
    --text: #0ff;
    --glass-border: rgba(255, 0, 255, 0.5);
    --glass-blur: blur(5px);
    background: #000;
    animation: glitch-color 0.8s steps(2) infinite;
}

.theme-glitch-world .ambient-bg { display: none; }

.theme-glitch-world::after {
    content: 'SYSTEM OVERLOAD // GLITCH';
    position: fixed;
    top: 50%; left: 50%; transform: translate(-50%, -50%);
    font-family: 'Space Mono', monospace;
    font-size: 15vw;
    font-weight: 900;
    color: rgba(255, 255, 255, 0.05);
    white-space: nowrap;
    pointer-events: none;
    z-index: -1;
}

.theme-glitch-world .player-card {
    animation: jitter 0.3s infinite;
    border: 5px solid var(--accent);
}

.theme-urban-night {
    --bg: #0a0a0a;
    --panel: rgba(0, 0, 0, 0.9);
    --accent: #ff0055;
    --text: #00ffcc;
    --glass-border: #ff0055;
    --glass-blur: blur(10px);
    background: #000;
}
.theme-urban-night .ambient-bg { display: none; }
.theme-urban-night::before {
    content: 'CITY / BEATS / STREET';
    position: fixed;
    top: 5%; left: -5%;
    font-size: 15vw;
    font-weight: 900;
    color: rgba(255, 255, 255, 0.03);
    transform: rotate(-5deg);
    pointer-events: none;
    z-index: -1;
}

.theme-satellite {
    --bg: #000510;
    --panel: rgba(10, 20, 40, 0.9);
    --accent: #4488ff;
    --text: #eef;
    --glass-border: rgba(68, 136, 255, 0.5);
    --glass-blur: blur(20px);
    background: radial-gradient(circle at center, #001a33, #000);
}
.theme-satellite .ambient-bg { display: none; }
.theme-satellite::after {
    content: '';
    position: fixed;
    top: 50%; left: 50%; width: 100px; height: 100px;
    border: 2px solid var(--accent);
    border-radius: 50%;
    animation: signal-pulse 3s infinite;
    pointer-events: none;
    z-index: -1;
}

.theme-orchestra {
    --bg: #1a0a00;
    --panel: rgba(30, 15, 5, 0.95);
    --accent: #d4af37;
    --text: #f5f5dc;
    --glass-border: #d4af37;
    --glass-blur: blur(15px);
    background: linear-gradient(to bottom, #1a0a00, #3d1a00, #1a0a00);
}
.theme-orchestra .ambient-bg { display: none; }
.theme-orchestra .radio-title {
    font-family: 'Playfair Display', serif;
    letter-spacing: 2px;
    text-transform: uppercase;
}

.theme-zion {
    --bg: #0a0a0a;
    --panel: rgba(0, 0, 0, 0.8);
    --accent: #ffcc00;
    --text: #fff;
    --glass-border: #009933;
    --glass-blur: blur(10px);
    background: linear-gradient(135deg, #009933 0%, #ffcc00 50%, #cc0000 100%);
}
.theme-zion .ambient-bg { display: none; }
.theme-zion .player-card {
    border-top: 5px solid #009933;
    border-bottom: 5px solid #cc0000;
}

.theme-techno {
    --bg: #000;
    --panel: rgba(0, 0, 0, 0.95);
    --accent: #fff;
    --text: #fff;
    --glass-border: #fff;
    --glass-blur: blur(5px);
    background: #000;
}
.theme-techno .ambient-bg { display: none; }
.theme-techno::before {
    content: '';
    position: fixed;
    inset: 0;
    background: radial-gradient(circle at center, #fff, transparent);
    animation: strobe 0.1s infinite alternate;
    pointer-events: none;
    z-index: -1;
}

.theme-fashion {
    --bg: #fff;
    --panel: rgba(255, 255, 255, 0.85);
    --accent: #000;
    --text: #000;
    --glass-border: #000;
    --glass-blur: blur(20px);
    background: #fff;
    color: #000;
}
.theme-fashion .ambient-bg { display: none; }
.theme-fashion .radio-title {
    font-family: 'Playfair Display', serif;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 12px;
}

.theme-vip {
    --bg: #050505;
    --panel: rgba(20, 20, 20, 0.6);
    --accent: #ffd700;
    --text: #fff;
    --glass-border: rgba(255, 215, 0, 0.4);
    --glass-blur: blur(45px);
    background: radial-gradient(circle at top right, #1a1a1a, #000);
}
.theme-vip .ambient-bg { display: none; }
.theme-vip .player-card {
    border: 1px solid rgba(255, 215, 0, 0.2);
    box-shadow: 0 0 50px rgba(0,0,0,1), 0 0 20px rgba(255, 215, 0, 0.05);
}

.theme-ship {
    --bg: #0a0e14;
    --panel: rgba(25, 35, 45, 0.9);
    --accent: #00d4ff;
    --text: #fff;
    --glass-border: #3a4a5a;
    --glass-blur: blur(15px);
    background: radial-gradient(circle at center, #1a2a3a 0%, #0a0e14 100%);
}

.theme-ship .player-card {
    border: 4px solid #3a4a5a;
    box-shadow: inset 0 0 20px rgba(0, 212, 255, 0.2);
}

.theme-glitch .player-card {
    animation: glitchSoft 5s infinite;
}

.theme-glitch-hard .player-card {
    animation: glitchSkew 4s infinite;
    position: relative;
}

.theme-glitch-hard .player-card::after,
.theme-glitch-hard .player-card::before {
    content: " ";
    position: absolute;
    top: 0; left: 0;
    width: 100%; height: 100%;
    background: inherit;
    z-index: -1;
    opacity: 0.8;
    border-radius: inherit;
}

.theme-glitch-hard .player-card::after {
    left: 4px;
    background: rgba(255, 0, 85, 0.4);
    animation: glitchAnim 2s infinite linear alternate-reverse;
    clip-path: polygon(0 0, 100% 0, 100% 45%, 0 45%);
}

.theme-glitch-hard .player-card::before {
    left: -4px;
    background: rgba(0, 255, 255, 0.4);
    animation: glitchAnim2 3s infinite linear alternate-reverse;
    clip-path: polygon(0 55%, 100% 55%, 100% 100%, 0 100%);
}

.theme-glitch-vhs {
    --bg: #111;
    --panel: rgba(20, 20, 20, 0.8);
    --accent: #00ffcc;
    --text: #fff;
    --glass-border: #333;
    --glass-blur: blur(2px);
    background: #000;
    overflow: hidden;
}

.theme-glitch-vhs::after {
    content: "";
    position: fixed;
    top: 0; left: 0;
    width: 100%; height: 100%;
    background: url('https://www.transparenttextures.com/patterns/pinstriped-suit.png');
    opacity: 0.1;
    z-index: 100;
    pointer-events: none;
}

.theme-glitch-vhs .player-card {
    animation: vhsRolling 10s linear infinite;
    border: 2px solid #333;
    box-shadow: 0 0 10px rgba(0, 255, 204, 0.5);
}

.theme-glitch-vhs .radio-title {
    filter: blur(0.5px);
    text-shadow: 2px 0 #ff00ff, -2px 0 #00ffff;
    animation: jitter 0.5s infinite;
}

.scanlines::before {
    content: " ";
    display: block;
    position: fixed;
    inset: 0;
    background: linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.1) 50%);
    z-index: 200;
    background-size: 100% 4px;
    pointer-events: none;
    opacity: 0.3;
}
