 /* =========================================================================
           MODERN UI ARCHITECTURE & DESIGN SYSTEM
        ========================================================================= */
        :root {
            --bg-gradient: radial-gradient(circle at center, #1a1a2e 0%, #0a0a12 100%);
            --glass-bg: rgba(255, 255, 255, 0.03);
            --glass-border: rgba(255, 255, 255, 0.08);
            --glass-blur: blur(16px);
            
            --accent-primary: #fed800d7;
            --accent-secondary: #a17617;
            --accent-glow: rgba(144, 175, 32, 0.4);
            
            --text-main: #ffffff;
            --text-muted: rgba(255, 255, 255, 0.6);
            --font-stack: 'Inter', system-ui, -apple-system, sans-serif;
        }

        * {
            box-sizing: border-box;
            margin: 0;
            padding: 0;
        }

        body {
            font-family: var(--font-stack);
            background: #3d3c3c;
            min-height: 100vh;
            display: flex;
            align-items: center;
            justify-content: center;
            overflow: hidden;
            color: var(--text-main);
        }

        /* Ambient background lighting behind elements */
        body::before {
            content: '';
            position: absolute;
            width: 500px;
            height: 500px;
            background: radial-gradient(circle, rgba(79, 172, 254, 0.15) 0%, transparent 70%);
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            z-index: 0;
            pointer-events: none;
        }

        /* ThreeJS Canvas Background Layer */
        #visualization-canvas {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            z-index: 1;
            pointer-events: none;
        }

        /* Glassmorphic Cyberpunk Interface Deck */
        .player-deck {
            position: relative;
            z-index: 10;
            width: 100%;
            max-width: 400px;
            padding: 2.5rem;
            background: var(--glass-bg);
            border: 1px solid var(--glass-border);
            border-radius: 28px;
            backdrop-filter: var(--glass-blur);
            -webkit-backdrop-filter: var(--glass-blur);
            box-shadow: 0 24px 60px rgba(0, 0, 0, 0.5),
                        inset 0 1px 0 rgba(255, 255, 255, 0.1);
            text-align: center;
            transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275), box-shadow 0.3s ease;
        }

        .player-deck:hover {
            transform: translateY(-4px);
            box-shadow: 0 32px 80px rgba(0, 0, 0, 0.6),
                        0 0 40px rgba(0, 242, 254, 0.05);
        }

        /* Status Pill Badge */
        .status-badge {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            padding: 6px 16px;
            background: rgba(255, 255, 255, 0.05);
            border: 1px solid var(--glass-border);
            border-radius: 100px;
            font-size: 0.75rem;
            font-weight: 600;
            text-transform: uppercase;
            letter-spacing: 1.5px;
            color: var(--text-muted);
            margin-bottom: 2rem;
            transition: all 0.3s ease;
        }

        .status-badge.online {
            color: var(--accent-primary);
            background: rgba(0, 242, 254, 0.06);
            border-color: rgba(0, 242, 254, 0.2);
            box-shadow: 0 0 12px rgba(0, 242, 254, 0.1);
        }

        .status-badge.online .dot {
            background: var(--accent-primary);
            box-shadow: 0 0 8px var(--accent-primary);
        }

        .status-badge .dot {
            width: 6px;
            height: 6px;
            border-radius: 50%;
            background: var(--text-muted);
            transition: all 0.3s ease;
        }

        /* Cover Art Container with Ambient Reactive Shadow */
        .show-cover {
            position: relative;
            width: 180px;
            height: 180px;
            margin: 0 auto 2rem;
            border-radius: 20px;
            z-index: 2;
        }

        .show-cover img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            border-radius: 20px;
            border: 1px solid var(--glass-border);
            box-shadow: 0 16px 32px rgba(0, 0, 0, 0.4);
            position: relative;
            z-index: 3;
        }

        /* Pulse wave overlay behind the cover image when stream is playing */
        .pulsing-overlay {
            position: absolute;
            top: -4px;
            left: -4px;
            right: -4px;
            bottom: -4px;
            border-radius: 24px;
            background: linear-gradient(45deg, var(--accent-primary), var(--accent-secondary));
            z-index: 1;
            opacity: 0.4;
            filter: blur(8px);
            animation: pulseGlow 2.5s infinite ease-in-out;
        }

        @keyframes pulseGlow {
            0% { transform: scale(0.96); opacity: 0.3; }
            50% { transform: scale(1.04); opacity: 0.6; filter: blur(14px); }
            100% { transform: scale(0.96); opacity: 0.3; }
        }

        /* Typography Hierarchy */
        .meta-info {
            margin-bottom: 2rem;
        }

        #showTitle {
            font-size: 1.6rem;
            font-weight: 700;
            letter-spacing: -0.5px;
            margin-bottom: 0.4rem;
            background: linear-gradient(to right, #fff, rgba(255, 255, 255, 0.8));
            background-clip: text;
            -webkit-text-fill-color: transparent;
        }

        #showHost {
            display: none;
            font-size: 0.9rem;
            font-weight: 400;
            color: var(--text-muted);
            letter-spacing: 0.2px;
        }

        /* Controls: Modern Glossy Neomorphic Button Grid */
        .control-row {
            display: flex;
            align-items: center;
            justify-content: center;
            margin-bottom: 2rem;
        }

        #playPauseBtn {
            width: 55px;
            height: 55px;
            border-radius: 50%;
            border: none;
            background: linear-gradient(135deg, var(--accent-secondary) 0%, var(--accent-primary) 100%);
            color: #0a0a12;
            font-size: 1.5rem;
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
            box-shadow: 0 8px 24px var(--accent-glow);
            transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
        }

        #playPauseBtn:hover {
            transform: scale(1.08);
            box-shadow: 0 12px 28px var(--accent-glow), 0 0 20px rgba(0, 242, 254, 0.4);
        }

        #playPauseBtn:active {
            transform: scale(0.95);
        }

        /* Functional UI Elements & Toggles */
        .toggle-container {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding-top: 1.2rem;
            border-top: 1px solid rgba(255, 255, 255, 0.06);
        }

        .toggle-container span {
            font-size: 0.85rem;
            color: var(--text-muted);
            font-weight: 500;
        }

        /* Switch Styling */
        .switch {
            position: relative;
            display: inline-block;
            width: 44px;
            height: 24px;
        }

        .switch input {
            opacity: 0;
            width: 0;
            height: 0;
        }

        .slider {
            position: absolute;
            cursor: pointer;
            top: 0; left: 0; right: 0; bottom: 0;
            background-color: rgba(255, 255, 255, 0.1);
            transition: .3s cubic-bezier(0.4, 0, 0.2, 1);
            border-radius: 34px;
            border: 1px solid var(--glass-border);
        }

        .slider::before {
            position: absolute;
            content: "";
            height: 16px;
            width: 16px;
            left: 3px;
            bottom: 3px;
            background-color: white;
            transition: .3s cubic-bezier(0.4, 0, 0.2, 1);
            border-radius: 50%;
        }

        input:checked + .slider {
            background-color: rgba(51, 254, 0, 0.877);
            border-color: rgba(254, 237, 0, 0.76);
        }

        input:checked + .slider::before {
            transform: translateX(20px);
            background-color:white;
            box-shadow: 0 0 8px rgba(245, 135, 9, 0.76);
        }

           /* --- LEFT SIDEBAR NAV DOCK --- */
.left-icons {
  position: absolute;
  left: 16px;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  flex-direction: column;
  gap: 20px;
  align-items: center;
  background: rgba(255, 255, 255, 0.03);
  padding: 12px 8px;
  border-radius: 30px;
  border: 1px solid rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(8px);
  z-index: 10;
}

/* Individual Sidebar Links */
.nav-icon-link {
  color: rgba(255, 255, 255, 0.6);
  text-decoration: none;
  font-size: 18px;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  transition: all 0.3s ease;
}

/* Hover State for Sidebar Links */
.nav-icon-link:hover {
  color: #30e204;
  background: rgba(48, 226, 4, 0.1);
  transform: scale(1.1);
}

/* Hidden Text Tooltip that pops out on Hover */
.nav-icon-link .tooltip-text {
  visibility: hidden;
  position: absolute;
  left: 50px;
  background: #121318;
  color: #ffffff;
  font-size: 11px;
  font-weight: 600;
  white-space: nowrap;
  padding: 6px 12px;
  border-radius: 6px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  opacity: 0;
  transition: opacity 0.2s ease, transform 0.2s ease;
  transform: translateX(-5px);
}

.nav-icon-link:hover .tooltip-text {
  visibility: visible;
  opacity: 1;
  transform: translateX(0);
}




/* Nudge the play icon slightly right to look perfectly centered inside the circle */
 #playPauseBtn .fa-play {
  margin-left: 3px; 
}

/* Play Button Hover Effect */
 #playPauseBtn:hover {
  transform: scale(1.08);
  color:white;
  background: #39f505;
  box-shadow: 0 0 25px rgba(48, 226, 4, 0.6), 0 12px 24px rgba(48, 226, 4, 0.4);
}

/* Click / Active Effect */
 #playPauseBtn:active {
  transform: scale(0.95);
  box-shadow: 0 0 10px rgba(48, 226, 4, 0.6);
}

        /* Decorative Placeholder Element to prevent selection errors */
        #darkModeToggle { display: none; }