/* ============================================================
   P77APP.PRO — Keyframes & transitions
   ============================================================ */

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

@keyframes fadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}

@keyframes pulseGlow {
  0%, 100% { box-shadow: 0 0 12px var(--color-accent-glow); }
  50%      { box-shadow: 0 0 28px var(--color-accent-glow); }
}

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

@keyframes heroDrift {
  0%, 100% { background-position: 0% 0%, 0% 0%, 0% 0%; }
  50%      { background-position: 10% 10%, -10% 5%, 0% 0%; }
}

@keyframes particleFloat {
  0%, 100% { transform: translateY(0) translateX(0); opacity: 0.5; }
  50%      { transform: translateY(-24px) translateX(10px); opacity: 0.9; }
}

@keyframes marquee {
  from { transform: translateX(0); }
  to   { transform: translateX(-50%); }
}

/* Entrance animations */
.body-welcome-txt { animation: fadeInUp 0.7s ease both; }
.welcome-btn { animation: fadeInUp 0.7s ease 0.15s both; }
.welcome-logo img { animation: floatY 5s ease-in-out infinite; }

.btn-primary { animation: pulseGlow 2.6s ease-in-out infinite; }

/* Scroll-reveal helper (toggled by main.js IntersectionObserver) */
.reveal { opacity: 0; transform: translateY(28px); transition: opacity 0.6s ease, transform 0.6s ease; }
.reveal.visible { opacity: 1; transform: translateY(0); }

/* Game icon hover shimmer */
.game-icon img { will-change: transform; }

/* Nav CTA subtle attention */
.nav-cta { animation: pulseGlow 3s ease-in-out infinite; }
