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

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

.animate-scale {
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.animate-scale:hover {
  transform: scale(1.02);
  box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1),
    0 10px 10px -5px rgba(0, 0, 0, 0.04);
}

.card-hover {
  transition: all 0.3s ease;
}

.card-hover:hover {
  transform: translateY(-5px);
  box-shadow: 0 12px 20px -8px rgba(0, 0, 0, 0.15);
}

/* Star rating animation */
.star-rating .star {
  display: inline-block;
  opacity: 0;
  animation: starFadeIn 0.3s ease forwards;
}

@keyframes starFadeIn {
  from {
    opacity: 0;
    transform: scale(0.5);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

/* Progress bar animation */
.progress-bar {
  width: 0;
  transition: width 1s ease;
}