/* ==========================================================================
   Animations
   ========================================================================== */

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

@keyframes fade-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@keyframes pop-in {
  0%   { opacity: 0; transform: scale(0.85); }
  70%  { transform: scale(1.03); }
  100% { opacity: 1; transform: scale(1); }
}

@keyframes flicker {
  0%, 100% { opacity: 1; }
  50%      { opacity: 0.85; }
  75%      { opacity: 0.95; }
}

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

@keyframes float-orb {
  0%, 100% { transform: translateY(0) translateX(0); }
  50%      { transform: translateY(-16px) translateX(10px); }
}

@keyframes pulse-ring {
  0%   { box-shadow: 0 0 0 0 rgba(242, 183, 5, 0.45); }
  100% { box-shadow: 0 0 0 14px rgba(242, 183, 5, 0); }
}

.page-enter { animation: fade-in var(--dur-slow) var(--ease-out) both; }
.stagger > * { animation: rise var(--dur-slow) var(--ease-out) both; }
.stagger > *:nth-child(1) { animation-delay: 0ms; }
.stagger > *:nth-child(2) { animation-delay: 60ms; }
.stagger > *:nth-child(3) { animation-delay: 120ms; }
.stagger > *:nth-child(4) { animation-delay: 180ms; }
.stagger > *:nth-child(5) { animation-delay: 240ms; }
.stagger > *:nth-child(6) { animation-delay: 300ms; }

.pulse-ring { animation: pulse-ring 2.2s ease-out infinite; }
