/* Trends Page Specific Animations */
@keyframes shine {
    100% { transform: translateX(100%); }
}

/* Vibe Selector HUD - Mobile Positioning */
@media (max-width: 640px) {
    .vibe-nav-container {
        position: sticky;
        top: 0;
        z-index: 1000;
        width: 100%;
    }

    .vibe-hud-wrap {
        position: relative;
        left: auto;
        top: auto;
        bottom: auto;
        width: 100%;
        transform: none;
        padding: 10px 16px;
        background: rgba(255, 255, 255, 0.9);
        backdrop-filter: blur(12px);
        -webkit-backdrop-filter: blur(12px);
        border-bottom: 1px solid rgba(0, 0, 0, 0.05);
        box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.02);
    }
    
    .dark .vibe-hud-wrap {
        background: rgba(15, 15, 15, 0.85);
        border-bottom: 1px solid rgba(255, 255, 255, 0.05);
    }

    .vibe-hud-wrap .flex-col {
        flex-direction: row;
        justify-content: space-around;
        gap: 0;
    }

    .vibe-item-card {
        opacity: 1 !important;
        transform: scale(1) !important;
    }

    .vibe-hud-wrap .active-vibe::after {
        content: '';
        position: absolute;
        bottom: -4px;
        left: 50%;
        transform: translateX(-50%);
        width: 16px;
        height: 2px;
        border-radius: 999px;
        background: currentColor;
        box-shadow: 0 0 8px currentColor;
    }
}

/* Cinematic Animations */
@keyframes vibeCardAppear {
    0% { opacity: 0; transform: translateY(15px) scale(0.9); filter: blur(10px); }
    100% { opacity: 1; transform: translateY(0) scale(1); filter: blur(0); }
}

@keyframes pulse-line {
    0% { transform: translateX(-100%); }
    100% { transform: translateX(100%); }
}

.animate-pulse-line {
    animation: pulse-line 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }

/* Global vibe impact: Focused LED Glow */
body.vibe-reactive { --vibe-primary: rgb(248, 113, 113); --vibe-glow: rgba(248, 113, 113, 0.9); }
body.vibe-reflective { --vibe-primary: rgb(192, 132, 252); --vibe-glow: rgba(192, 132, 252, 0.9); }
body.vibe-raw { --vibe-primary: rgb(251, 191, 36); --vibe-glow: rgba(251, 191, 36, 0.9); }
body.vibe-tribal { --vibe-primary: rgb(52, 211, 153); --vibe-glow: rgba(52, 211, 153, 0.9); }
body.vibe-drift { --vibe-primary: transparent; --vibe-glow: transparent; }

/* Hide glow entirely in drift mode */
body.vibe-drift .vibe-viewport-glow { display: none !important; }

/* Full-Viewport Atmospheric 'Mist' Glow Effect */
.vibe-viewport-glow {
    border-color: var(--vibe-primary);
    box-shadow: inset 0 0 12px var(--vibe-glow);
    opacity: 0.22;
    pointer-events: none;
    z-index: 1000;
    border-width: 1.5px;
    animation: vibe-mist-pulse 7s ease-in-out infinite alternate;
}

@keyframes vibe-mist-pulse {
    0% { 
        opacity: 0.12; 
        box-shadow: inset 0 0 8px var(--vibe-glow); 
        border-color: var(--vibe-glow);
        border-width: 1px;
    }
    100% { 
        opacity: 0.35; 
        box-shadow: inset 0 0 25px 2px var(--vibe-glow), inset 0 0 10px var(--vibe-glow); 
        border-color: var(--vibe-primary);
        border-width: 2px;
    }
}

/* Dynamic Background Glow for the whole page */
body::before {
    content: '';
    position: fixed;
    top: 0; left: 0; right: 0; height: 100vh;
    z-index: -1;
    pointer-events: none;
    opacity: 0.05;
    transition: background 2s cubic-bezier(0.4, 0, 0.2, 1);
}

body.vibe-reactive::before { background: radial-gradient(circle at 10% 10%, rgb(248, 113, 113) 0%, transparent 60%), radial-gradient(circle at 90% 90%, rgb(248, 113, 113) 0%, transparent 60%); }
body.vibe-reflective::before { background: radial-gradient(circle at 10% 10%, rgb(192, 132, 252) 0%, transparent 60%), radial-gradient(circle at 90% 90%, rgb(192, 132, 252) 0%, transparent 60%); }
body.vibe-raw::before { background: radial-gradient(circle at 10% 10%, rgb(251, 191, 36) 0%, transparent 60%), radial-gradient(circle at 90% 90%, rgb(251, 191, 36) 0%, transparent 60%); }
body.vibe-tribal::before { background: radial-gradient(circle at 10% 10%, rgb(52, 211, 153) 0%, transparent 60%), radial-gradient(circle at 90% 90%, rgb(52, 211, 153) 0%, transparent 60%); }

.vibe-item-card {
    will-change: transform, opacity, filter;
    transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
    opacity: 1;
}

/* Specific item hover/active states */
.active-vibe {
    z-index: 50;
    filter: drop-shadow(0 0 8px var(--vibe-glow));
}

/* Floating Blobs animation */
.vibe-ambient-blob-1 { animation: float-1 20s infinite alternate; }
.vibe-ambient-blob-2 { animation: float-2 25s infinite alternate; }

@keyframes float-1 {
    0% { transform: translate(0, 0) scale(1); }
    100% { transform: translate(40px, 20px) scale(1.2); }
}
@keyframes float-2 {
    0% { transform: translate(0, 0) scale(1.1); }
    100% { transform: translate(-40px, -20px) scale(0.9); }
}

/* Glass Inner Shadow active */
.active-vibe .vibe-icon-container {
    box-shadow: 0 12px 24px -6px rgba(0, 0, 0, 0.6), inset 0 0 15px rgba(255, 255, 255, 0.1);
}
