/* Кастомные анимации для проекта */

/* Неоновое мерцание */
@keyframes neonFlicker {
  0%, 100% {
    opacity: 1;
    filter: drop-shadow(0 0 5px currentColor) drop-shadow(0 0 10px currentColor);
  }
  50% {
    opacity: 0.8;
    filter: drop-shadow(0 0 2px currentColor) drop-shadow(0 0 5px currentColor);
  }
}

.neon-flicker {
  animation: neonFlicker 2s ease-in-out infinite;
}

/* Вращение знака */
@keyframes spinSign {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

.spin-sign {
  animation: spinSign 3s linear infinite;
}

/* Подпрыгивание элементов */
@keyframes bounce {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-10px);
  }
}

.bounce-element {
  animation: bounce 2s ease-in-out infinite;
}

/* Появление снизу */
@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.fade-in-up {
  animation: fadeInUp 0.6s ease-out forwards;
}

/* Появление с задержкой */
.fade-in-up-delay-1 {
  animation: fadeInUp 0.6s ease-out 0.2s forwards;
  opacity: 0;
}

.fade-in-up-delay-2 {
  animation: fadeInUp 0.6s ease-out 0.4s forwards;
  opacity: 0;
}

.fade-in-up-delay-3 {
  animation: fadeInUp 0.6s ease-out 0.6s forwards;
  opacity: 0;
}

/* Появление слева */
@keyframes slideInLeft {
  from {
    opacity: 0;
    transform: translateX(-50px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

.slide-in-left {
  animation: slideInLeft 0.6s ease-out forwards;
}

/* Появление справа */
@keyframes slideInRight {
  from {
    opacity: 0;
    transform: translateX(50px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

.slide-in-right {
  animation: slideInRight 0.6s ease-out forwards;
}

/* Ретро переход */
@keyframes retroTransition {
  0% {
    opacity: 0;
    transform: scale(0.9) rotate(-2deg);
  }
  50% {
    transform: scale(1.05) rotate(1deg);
  }
  100% {
    opacity: 1;
    transform: scale(1) rotate(0deg);
  }
}

.retro-transition {
  animation: retroTransition 0.5s ease-out forwards;
}

/* Пульсация */
@keyframes pulse {
  0%, 100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.05);
  }
}

.pulse-element {
  animation: pulse 2s ease-in-out infinite;
}

/* Движение по дороге */
@keyframes drive {
  from {
    transform: translateX(-100px);
  }
  to {
    transform: translateX(100px);
  }
}

.drive-animation {
  animation: drive 3s linear infinite;
}

/* Мерцание неона с разными цветами */
@keyframes neonColorShift {
  0% {
    color: #FF69B4;
    text-shadow: 0 0 10px #FF69B4, 0 0 20px #FF69B4;
  }
  33% {
    color: #00CED1;
    text-shadow: 0 0 10px #00CED1, 0 0 20px #00CED1;
  }
  66% {
    color: #FFD700;
    text-shadow: 0 0 10px #FFD700, 0 0 20px #FFD700;
  }
  100% {
    color: #FF69B4;
    text-shadow: 0 0 10px #FF69B4, 0 0 20px #FF69B4;
  }
}

.neon-color-shift {
  animation: neonColorShift 3s ease-in-out infinite;
}

/* Плавное появление */
@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

.fade-in {
  animation: fadeIn 0.8s ease-out forwards;
}

/* Исчезновение */
@keyframes fadeOut {
  from {
    opacity: 1;
  }
  to {
    opacity: 0;
  }
}

.fade-out {
  animation: fadeOut 0.3s ease-out forwards;
}
