 /* Entrance animations */
    .fade-right, .fade-left, .fade-up {
        opacity: 0;
        transition: opacity 0.8s ease-out, transform 0.8s ease-out;
    }
    .fade-right { transform: translateX(-40px); }
    .fade-left  { transform: translateX(40px); }
    .fade-up    { transform: translateY(30px); }

    .fade-right.visible,
    .fade-left.visible,
    .fade-up.visible {
        opacity: 1;
        transform: translate(0, 0);
    }

    /* Stagger stat cards */
    .stat-item {
        opacity: 0;
        transform: translateY(20px);
        transition: opacity 0.6s ease-out, transform 0.6s ease-out;
    }
    .stat-item.visible {
        opacity: 1;
        transform: translateY(0);
    }

 
    /* Floating hero image — sirf vertical movement, horizontal centering kabhi na tute */
    .float-anim {
        animation: floatY 3.5s ease-in-out infinite;
    }
    @keyframes floatY {
        0%, 100% { transform: translateY(0); }
        50%      { transform: translateY(-14px); }
    }

    /* Soft pulsing ring behind hero */
    .pulse-ring::before {
        content: '';
        position: absolute;
        inset: 0;
        border-radius: 9999px;
        background: inherit;
        animation: pulseRing 2.8s ease-out infinite;
        z-index: -1;
    }
    @keyframes pulseRing {
        0%   { transform: scale(1);   opacity: 0.6; }
        100% { transform: scale(1.25); opacity: 0; }
    };