@keyframes imgFlicker {
  0%, 100% { opacity: 1; filter: brightness(1) contrast(1); }
  2% { opacity: 0.97; filter: brightness(0.98) contrast(1.02); }
  4% { opacity: 1; filter: brightness(1.01) contrast(0.99); }
  8% { opacity: 0.98; filter: brightness(0.99) contrast(1.01); }
  10% { opacity: 1; filter: brightness(1) contrast(1); }
  20% { opacity: 0.99; filter: brightness(1.02) contrast(0.98); }
  30% { opacity: 1; filter: brightness(1) contrast(1); }
  40% { opacity: 0.98; filter: brightness(0.97) contrast(1.02); }
  50% { opacity: 1; filter: brightness(1.01) contrast(1); }
  60% { opacity: 0.99; filter: brightness(1) contrast(0.99); }
  70% { opacity: 1; filter: brightness(0.98) contrast(1.01); }
  80% { opacity: 0.97; filter: brightness(1.02) contrast(1); }
  90% { opacity: 1; filter: brightness(1) contrast(0.98); }
  92% { opacity: 0.98; filter: brightness(0.99) contrast(1.02); }
  95% { opacity: 1; filter: brightness(1.01) contrast(1); }
}

.img-flicker::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: linear-gradient(
    transparent 50%, 
    rgba(99, 77, 147, 0.03) 50%
  );
  background-size: 100% 4px;
  pointer-events: none;
  z-index: 1;
  animation: scanlineMove 8s linear infinite;
}

@keyframes scanlineMove {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(2px); }
}

.img-flicker::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  opacity: 0;
  background-image: 
    repeating-linear-gradient(
      45deg,
      transparent,
      transparent 2px,
      rgba(99, 77, 147, 0.03) 2px,
      rgba(99, 77, 147, 0.03) 4px
    );
  pointer-events: none;
  z-index: 2;
  animation: noiseFlicker 0.5s steps(10) infinite;
}

@keyframes noiseFlicker {
  0%, 100% { opacity: 0; }
  10% { opacity: 0.1; }
  50% { opacity: 0; }
  60% { opacity: 0.05; }
  90% { opacity: 0; }
}

.banner-frame {
  position: relative;
  overflow: hidden;
}

.banner-frame img,
.banner-frame {
  animation: imgFlicker 4s ease-in-out infinite;
}

.identity-box {
  position: relative;
  overflow: hidden;
}

.identity-box img {
  animation: imgFlicker 4s ease-in-out infinite;
}

.banner-frame.img-flicker,
.identity-box.img-flicker {
  position: relative;
}