/* ============================================
   BTV — GLOBAL LOGO FLICKER (always on)
   Works on ANY logo whose filename contains "btv-logo"
============================================ */

/* Base image state */
img[src*="btv-logo"] {
    transition:
        opacity 0.25s ease,
        filter 0.25s ease,
        transform 0.25s ease;
}

/* Subtle ambient flicker */
img[src*="btv-logo"] {
    animation: btv-logo-ambient 4s infinite steps(2, end);
}

/* Strong burst on hover */
img[src*="btv-logo"]:hover {
    animation: btv-logo-burst 0.4s ease-out;
}

/* Ambient flicker */
@keyframes btv-logo-ambient {
    0%, 95%, 100% {
        opacity: 1;
        filter: none;
        transform: none;
    }
    10% {
        opacity: 0.75;
        filter: drop-shadow(0 0 3px var(--btv-purple));
        transform: translateX(0.4px);
    }
    20% {
        opacity: 0.85;
        filter:
            drop-shadow(1px 0 2px var(--btv-violet))
            drop-shadow(-1px 0 2px var(--btv-purple));
        transform: translateX(-0.4px);
    }
    30% {
        opacity: 0.9;
        filter: drop-shadow(0 0 2px var(--btv-violet));
    }
}

/* Burst flicker */
@keyframes btv-logo-burst {
    0% {
        opacity: 1;
        filter: none;
        transform: none;
    }
    20% {
        opacity: 0.6;
        filter:
            drop-shadow(2px 0 3px var(--btv-violet))
            drop-shadow(-2px 0 3px #00ffff);
        transform: translateX(-1px);
    }
    40% {
        opacity: 0.85;
        filter: drop-shadow(0 0 5px var(--btv-purple));
        transform: translateX(1px);
    }
    60% {
        opacity: 0.75;
        filter:
            drop-shadow(-2px 0 3px var(--btv-violet))
            drop-shadow(2px 0 3px var(--btv-purple));
        transform: translateY(-1px);
    }
    100% {
        opacity: 1;
        filter: none;
        transform: none;
    }
}
