/* animations.css — keyframes shared across the page */

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

@keyframes gradientShift {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}

@keyframes haloSpin {
  from { transform: translate(-50%, -50%) rotate(0deg); }
  to   { transform: translate(-50%, -50%) rotate(360deg); }
}

@keyframes haloPulse {
  0%, 100% { opacity: 0.85; transform: translate(-50%, -50%) scale(1); }
  50%      { opacity: 1;    transform: translate(-50%, -50%) scale(1.06); }
}

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

/* Letter reveal — JS sets inline transition-delay per letter */
.title .letter.is-in {
  opacity: 1;
  transform: translateY(0) rotate(0deg);
  transition:
    transform 700ms cubic-bezier(0.22, 1.2, 0.36, 1),
    opacity 600ms ease;
}

.title {
  animation: gradientShift 8s ease infinite;
}

/* Soft floating shimmer bar across CTA */
.cta::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(
    100deg,
    transparent 0%,
    rgba(255, 255, 255, 0.45) 50%,
    transparent 100%
  );
  background-size: 200% 100%;
  border-radius: inherit;
  pointer-events: none;
  animation: shimmer 3.2s ease-in-out infinite;
  mix-blend-mode: overlay;
}

.cta {
  position: relative;
  overflow: hidden;
}
