/* ========================================
   ANIMATIONS ET EFFETS GLITCH
   ======================================== */

/* Glitch animations */
@keyframes glitch-1 {
  0% { transform: translate(0, 0) skewX(0deg); opacity: 1; }
  20% { transform: translate(-2px, 2px) skewX(-2deg); opacity: 0.9; }
  40% { transform: translate(3px, -2px) skewX(2deg); opacity: 0.8; }
  60% { transform: translate(-3px, 1px) skewX(-2deg); opacity: 0.9; }
  80% { transform: translate(2px, -3px) skewX(1deg); opacity: 0.85; }
  100% { transform: translate(0, 0) skewX(0deg); opacity: 1; }
}

@keyframes glitch-2 {
  0% { clip-path: inset(0% 0% 0% 0%); }
  10% { clip-path: inset(10% 0% 15% 0%); }
  20% { clip-path: inset(5% 0% 12% 0%); }
  30% { clip-path: inset(0% 0% 0% 0%); }
  40% { clip-path: inset(8% 0% 10% 0%); }
  50% { clip-path: inset(0% 0% 0% 0%); }
  60% { clip-path: inset(12% 0% 8% 0%); }
  70% { clip-path: inset(0% 0% 0% 0%); }
  80% { clip-path: inset(6% 0% 14% 0%); }
  100% { clip-path: inset(0% 0% 0% 0%); }
}

@keyframes rgb-shift {
  0% { text-shadow: -2px 0 var(--magenta), 2px 0 var(--cyan); }
  50% { text-shadow: -1px 0 var(--yellow), 1px 0 var(--lime); }
  100% { text-shadow: -2px 0 var(--magenta), 2px 0 var(--cyan); }
}

@keyframes flicker {
  0%, 100% { opacity: 1; }
  15% { opacity: 0.3; }
  30% { opacity: 1; }
  45% { opacity: 0.5; }
  60% { opacity: 1; }
  75% { opacity: 0.2; }
}

@keyframes screen-distort {
  0% { transform: scaleX(1) scaleY(1); }
  25% { transform: scaleX(0.98) scaleY(1.02); }
  50% { transform: scaleX(1.02) scaleY(0.98); }
  75% { transform: scaleX(0.99) scaleY(1.01); }
  100% { transform: scaleX(1) scaleY(1); }
}

@keyframes pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.8; }
}

/* Classes de glitch */
.glitch-active {
  animation: glitch-1 0.4s infinite;
  position: relative;
}

.glitch-active::before,
.glitch-active::after {
  content: attr(data-text);
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  opacity: 0.7;
}

.glitch-active::before {
  animation: glitch-2 0.3s infinite;
  color: var(--magenta);
  z-index: -1;
  left: 2px;
  top: -2px;
}

.glitch-active::after {
  animation: glitch-2 0.3s infinite reverse;
  color: var(--cyan);
  z-index: -2;
  left: -2px;
  top: 2px;
}

.screen-glitch {
  animation: screen-distort var(--transition-fast) infinite;
}