@keyframes pulse-dot {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.4; }
}

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

.preview-card-enter {
  animation: slideUp 0.4s ease-out;
}

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

.faq-content {
  max-height: 0;
  opacity: 0;
  overflow: hidden;
  visibility: hidden;
  padding-top: 0;
  padding-bottom: 0;
  transition: max-height 0.3s ease-out, opacity 0.2s ease-out, padding 0.2s ease-out;
}

.faq-content.open {
  max-height: 500px;
  opacity: 1;
  visibility: visible;
  padding-bottom: 1rem;
}

.progress-bar {
  transition: width 0.6s ease-out;
}
