/* =========================================================
   PARK FEVER — animations
   ========================================================= */
@keyframes pf-pop {
  0% {
    transform: scale(0.86) translateY(14px);
    opacity: 0;
  }
  100% {
    transform: scale(1) translateY(0);
    opacity: 1;
  }
}

@keyframes pf-star-pop {
  0% {
    transform: scale(0.3) rotate(-30deg);
    opacity: 0;
  }
  60% {
    transform: scale(1.28) rotate(8deg);
    opacity: 1;
  }
  100% {
    transform: scale(1) rotate(0deg);
    opacity: 1;
  }
}

@keyframes pf-slide-in {
  from {
    transform: translateX(-14px);
    opacity: 0;
  }
  to {
    transform: translateX(0);
    opacity: 1;
  }
}

@keyframes pf-toast {
  from {
    transform: translateY(-12px) scale(0.94);
    opacity: 0;
  }
  to {
    transform: translateY(0) scale(1);
    opacity: 1;
  }
}

@keyframes pf-toast-out {
  to {
    transform: translateY(-10px) scale(0.96);
    opacity: 0;
  }
}

@keyframes pf-pop-up {
  0% {
    transform: translate(-50%, 0) scale(0.7);
    opacity: 0;
  }
  22% {
    transform: translate(-50%, -14px) scale(1.12);
    opacity: 1;
  }
  100% {
    transform: translate(-50%, -70px) scale(0.95);
    opacity: 0;
  }
}

@keyframes pf-flash {
  0%,
  100% {
    opacity: 1;
  }
  50% {
    opacity: 0.55;
  }
}

@keyframes pf-pulse-border {
  0%,
  100% {
    opacity: 0.35;
    transform: scale(1);
  }
  50% {
    opacity: 1;
    transform: scale(1.03);
  }
}

@keyframes pf-float {
  0%,
  100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-7px);
  }
}

.title-badge {
  animation: pf-float 3.2s ease-in-out infinite;
}

.screen-menu .menu-inner,
.screen-panel .panel {
  animation: pf-pop 0.3s cubic-bezier(0.2, 1.3, 0.5, 1);
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
  }
}
