/* Glitch Effect */
.glitch {
  position: relative;
}

.glitch-active {
  animation: glitchText 0.3s ease;
}

@keyframes glitchText {
  0% { transform: translate(0); }
  20% { transform: translate(-2px, 1px); text-shadow: 2px 0 #ff0040, -2px 0 #00ffc8; }
  40% { transform: translate(2px, -1px); text-shadow: -2px 0 #ff0040, 2px 0 #00ffc8; }
  60% { transform: translate(-1px, 2px); text-shadow: 1px 0 #ff0040, -1px 0 #00ffc8; }
  80% { transform: translate(1px, -2px); text-shadow: -1px 0 #ff0040, 1px 0 #00ffc8; }
  100% { transform: translate(0); text-shadow: none; }
}

/* Scanline Overlay */
body::after {
  content: '';
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 9998;
  background: repeating-linear-gradient(
    transparent 0px,
    transparent 2px,
    rgba(0, 0, 0, 0.025) 2px,
    rgba(0, 0, 0, 0.025) 4px
  );
}

/* CRT Flicker */
body::before {
  content: '';
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 9997;
  animation: crtFlicker 0.12s linear infinite;
}

@keyframes crtFlicker {
  0%, 100% { opacity: 0; }
  50% { opacity: 0.015; background: rgba(255, 255, 255, 1); }
}

/* Matrix Flash (triggered by 'matrix' command) */
.matrix-flash {
  animation: matrixPulse 0.5s ease 3;
}

@keyframes matrixPulse {
  0%, 100% { filter: none; }
  50% { filter: brightness(1.3) hue-rotate(40deg); }
}

/* Konami Flash */
.konami-flash {
  animation: konamiPulse 0.25s ease 4;
}

@keyframes konamiPulse {
  0%, 100% { filter: none; }
  50% { filter: brightness(1.5) saturate(2) hue-rotate(90deg); }
}

/* Status info text */
.status-info-text {
  color: var(--status-ok);
  font-size: 10px;
  letter-spacing: 1px;
}
