/* ===== Animations — KukuPDF ===== */

/* Fade In */
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes fadeOut { from { opacity: 1; } to { opacity: 0; } }

/* Page Transition */
@keyframes pageIn {
  from { opacity: 0; transform: translateY(12px); }
  to { opacity: 1; transform: translateY(0); }
}

.page-enter { animation: pageIn 0.4s cubic-bezier(0.22, 1, 0.36, 1) forwards; }

/* Page Load Sequence */
.load-nav { animation: slideDown 0.3s ease 0.1s both; }
.load-hero { animation: fadeIn 0.4s ease 0.2s both; }
.load-tabs { animation: slideInLeft 0.3s ease 0.4s both; }

@keyframes slideDown { from { opacity: 0; transform: translateY(-20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes slideInLeft { from { opacity: 0; transform: translateX(-20px); } to { opacity: 1; transform: translateX(0); } }

/* Hero word stagger */
.hero-word {
  display: inline-block;
  opacity: 0;
  animation: wordFadeUp 0.4s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}
@keyframes wordFadeUp { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }

/* Bounce */
@keyframes bounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }

/* Purple Border Glow Pulse */
@keyframes borderGlowPulse {
  0% { box-shadow: 0 0 0 0 rgba(123, 47, 255, 0.6); }
  50% { box-shadow: 0 0 16px 0 rgba(123, 47, 255, 0.4); }
  100% { box-shadow: 0 0 0 0 rgba(123, 47, 255, 0.6); }
}

/* Checkmark Draw */
@keyframes drawCheck {
  from { stroke-dashoffset: 100; }
  to { stroke-dashoffset: 0; }
}

/* Reduced Motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
