/* =========================================
   ANIMATION LIBRARY
   ========================================= */

/* --- Keyframes Definition --- */

/* 1. Slide Down (For Navbar) - Smooth entry from top */
@keyframes slideDownFade {
    0% {
        opacity: 0;
        transform: translateY(-30px);
    }
    100% {
        opacity: 1;
        transform: translateY(0);
    }
}

/* 2. Fade In Up (For Hero Cards) - Slight lift effect */
@keyframes fadeInUp {
    0% {
        opacity: 0;
        transform: translateY(40px) scale(0.98);
    }
    100% {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* 3. Pulse (For Status Dot) */
@keyframes pulse-green {
    0% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(76, 175, 80, 0.7); }
    70% { transform: scale(1); box-shadow: 0 0 0 6px rgba(76, 175, 80, 0); }
    100% { transform: scale(0.95); box-shadow: 0 0 0 0 rgba(76, 175, 80, 0); }
}

/* =========================================
   APPLYING ANIMATIONS
   ========================================= */

/* Navbar Animation */
.nav-floating-pill {
    opacity: 0; /* Start hidden */
    animation: slideDownFade 0.8s cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
    animation-delay: 0.1s;
}

/* Bento Box Base Animation */
.bento-box {
    opacity: 0; /* Start hidden */
    animation: fadeInUp 0.8s cubic-bezier(0.2, 0.8, 0.2, 1) forwards;
}

/* --- Staggered Delays (The "Pop-Pop-Pop" effect) --- */
.text-box  { animation-delay: 0.2s; }
.model-box { animation-delay: 0.4s; }
.stats-box { animation-delay: 0.5s; }

/* Content inside the text box */
.bento-title, .bento-desc, .bento-actions {
    opacity: 0;
    animation: fadeInUp 0.6s ease-out forwards;
}
.bento-title   { animation-delay: 0.4s; }
.bento-desc    { animation-delay: 0.5s; }
.bento-actions { animation-delay: 0.6s; }

/* Status Dot Pulse */
.pulse-dot {
    animation: pulse-green 2s infinite;
}