/* ==========================================================================
   KINTSUGI — animations.css — keyframes & motion
   ========================================================================== */

@keyframes scrollPulse {
  0%   { top: -100%; }
  60%  { top: 100%; }
  100% { top: 100%; }
}

@keyframes floatSlow {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-10px); }
}

@keyframes glowPulse {
  0%, 100% { opacity: 0.55; }
  50%      { opacity: 1; }
}

@keyframes sparkPop {
  0%   { transform: scale(0); opacity: 0; }
  40%  { transform: scale(1.15); opacity: 1; }
  100% { transform: scale(1); opacity: 0.85; }
}

@keyframes driftParticle {
  0%   { transform: translate3d(0,0,0); }
  100% { transform: translate3d(var(--dx, 12px), var(--dy, -18px), 0); }
}

@keyframes shimmer {
  0%   { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}

/* Hero entrance sequence */
.hero__kicker,
.hero__title,
.hero__subtitle,
.hero__lead,
.hero__byline,
.hero .btn-row {
  opacity: 0;
  transform: translateY(22px);
  animation: heroIn 1s var(--ease-silk) forwards;
}
.hero__kicker   { animation-delay: 0.15s; }
.hero__title    { animation-delay: 0.32s; }
.hero__subtitle { animation-delay: 0.55s; }
.hero__lead     { animation-delay: 0.75s; }
.hero .btn-row  { animation-delay: 0.92s; }
.hero__byline   { animation-delay: 1.08s; }

@keyframes heroIn {
  to { opacity: 1; transform: translateY(0); }
}

/* gold mark shimmer sweep */
.hero__title {
  background-size: 220% auto;
}
@media (prefers-reduced-motion: no-preference) {
  .hero__title { animation: heroIn 1s var(--ease-silk) forwards, shimmer 7s linear 1.3s infinite; }
}

.seam-spark { animation: sparkPop 0.6s var(--ease-silk) forwards; }

.author__crack svg path { animation: glowPulse 4.5s ease-in-out infinite; }

.about__cover-glow,
.discover-card__icon,
.timeline-step__dot {
  will-change: transform, opacity;
}

@media (prefers-reduced-motion: reduce) {
  .hero__kicker, .hero__title, .hero__subtitle, .hero__lead, .hero__byline, .hero .btn-row {
    opacity: 1; transform: none; animation: none;
  }
  .hero__title { animation: none; }
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}
