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

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.countdown-item span:first-child {
  animation: pulse 2s infinite;
}

@keyframes pulse {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.05);
  }
  100% {
    transform: scale(1);
  }
}

.contact-btn, .subscribe-btn, .social-link {
  position: relative;
  overflow: hidden;
}

.contact-btn::after, 
.subscribe-btn::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(255, 255, 255, 0.1);
  transform: translateX(-100%);
  transition: transform 0.3s ease;
}

.contact-btn:hover::after, 
.subscribe-btn:hover::after {
  transform: translateX(0);
}

.social-link i {
  transition: transform 0.3s ease;
}

.social-link:hover i {
  transform: rotate(360deg);
}

@keyframes formSuccess {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.05);
  }
  100% {
    transform: scale(1);
  }
}

.form-success {
  animation: formSuccess 0.5s ease-in-out;
}

.loading::after {
  content: '...';
  animation: loading 1.5s infinite;
}

@keyframes loading {
  0% {
    content: '.';
  }
  33% {
    content: '..';
  }
  66% {
    content: '...';
  }
  100% {
    content: '.';
  }
}

.subscribe-btn:active, 
.contact-btn:active {
  transform: scale(0.98);
}