/* ── Animations ───────────────────────────────────────────────────────── */

/* ── Pokébola spin (loading) ── */
@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* ── Shimmer skeleton ── */
@keyframes shimmer {
    0% { background-position: 200% 0; }
    100% { background-position: -200% 0; }
}

/* ── Fade in up ── */
@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(24px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ── Fade in ── */
@keyframes fadeIn {
    from { opacity: 0; }
    to   { opacity: 1; }
}

/* ── Float (levitação suave) ── */
@keyframes float {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(-8px); }
}

/* ── Pulse glow ── */
@keyframes pulseGlow {
    0%, 100% { box-shadow: 0 0 8px rgba(250,204,21,.2); }
    50%      { box-shadow: 0 0 24px rgba(250,204,21,.4); }
}

/* ── Scale in ── */
@keyframes scaleIn {
    from { opacity: 0; transform: scale(.92); }
    to   { opacity: 1; transform: scale(1); }
}

/* ── Slide in from left ── */
@keyframes slideInLeft {
    from { opacity: 0; transform: translateX(-30px); }
    to   { opacity: 1; transform: translateX(0); }
}

/* ── Slide in from right ── */
@keyframes slideInRight {
    from { opacity: 0; transform: translateX(30px); }
    to   { opacity: 1; transform: translateX(0); }
}

/* ── Utility classes ── */
.animate-fade-in      { animation: fadeIn .6s ease-out; }
.animate-fade-in-up   { animation: fadeInUp .6s ease-out; }
.animate-scale-in     { animation: scaleIn .5s ease-out; }

/* ── Line expand (section-title divider) ── */
@keyframes lineExpand {
    from { width: 0; opacity: 0; }
    to   { width: 50px; opacity: 1; }
}
@keyframes lineSweep {
    0%   { background-position: 200% 0; }
    100% { background-position: -100% 0; }
}
.animate-float        { animation: float 3s ease-in-out infinite; }
.animate-pulse-glow   { animation: pulseGlow 2s ease-in-out infinite; }
.animate-slide-left   { animation: slideInLeft .5s ease-out; }
.animate-slide-right  { animation: slideInRight .5s ease-out; }

/* ── Staggered entrance for grid children ── */
.features-grid .feature-card {
    animation: fadeInUp .6s ease-out both;
}
.features-grid .feature-card:nth-child(1) { animation-delay: .1s; }
.features-grid .feature-card:nth-child(2) { animation-delay: .2s; }
.features-grid .feature-card:nth-child(3) { animation-delay: .3s; }
.features-grid .feature-card:nth-child(4) { animation-delay: .4s; }
.features-grid .feature-card:nth-child(5) { animation-delay: .5s; }
.features-grid .feature-card:nth-child(6) { animation-delay: .6s; }

/* ── PokéBG Canvas (animated particle background) ── */
.pokebg-canvas {
    position: absolute;
    top: 0; left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 1;
    display: block;
    image-rendering: optimizeQuality;
}

/* ── Hide background canvas on small screens ── */
@media (max-width: 640px) {
    .hero-stats .pokebg-canvas { display: none !important; }
    .pokebg-canvas { opacity: 0.9; }
}
