@keyframes pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.5; }
}

@keyframes glitch-apparition {
    0% { opacity: 0; transform: scale(0.98) translate(-5px, 2px); }
    10% { opacity: 1; transform: scale(1) translate(0, 0); }
    100% { transform: translate(0, 0); }
}

@keyframes tv-power-on {
    0% { transform: scaleY(0.005) scaleX(0); background: #fff; box-shadow: none; }
    50% { transform: scaleY(0.005) scaleX(1); background: #fff; box-shadow: none; }
    100% { transform: scaleY(1) scaleX(1); background: #021a0a; border: 4vh solid #141414; border-radius: 25px; box-shadow: inset 0 0 120px rgba(0,0,0,0.9); }
}

@keyframes tv-power-off {
    0% { transform: scaleY(1) scaleX(1); background: #021a0a; border: 4vh solid #141414; box-shadow: none; }
    50% { transform: scaleY(0.005) scaleX(1); background: #fff; border: none; }
    100% { transform: scaleY(0) scaleX(0); background: #fff; border: none; }
}

@keyframes overlay-turn-off {
    0%, 99% { visibility: visible; opacity: 0.3; }
    100% { visibility: hidden; opacity: 0; }
}

@keyframes green-flicker {
    0%, 100% { opacity: 0.3; }
    50% { opacity: 0.25; }
}

@keyframes verrouillage-affichage {
    to { opacity: 1; }
}

@keyframes load-bar-crt {
    to { width: 100%; }
}

@keyframes scan-vertical {
    0% { top: -10%; }
    100% { top: 110%; }
}

@keyframes radar-pulse {
    0%, 100% { fill: rgba(255, 0, 0, 0.05); stroke: rgba(255, 0, 0, 0.3); }
    50% { fill: rgba(255, 0, 0, 0.2); stroke: rgba(255, 0, 0, 0.6); }
}

@keyframes levitation {
    0%, 100% { transform: translateX(-50%) translateY(0); }
    50% { transform: translateX(-50%) translateY(-10px); }
}