/* Custom animations and transitions */
@keyframes pulse {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: 0.8;
    }
}

@keyframes popIn {
    0% {
        transform: scale(0.8);
        opacity: 0;
    }
    50% {
        transform: scale(1.1);
    }
    100% {
        transform: scale(1);
        opacity: 1;
    }
}

.animate-pulse-slow {
    animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

.animate-pop {
    animation: popIn 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

/* Grid cell hover effect */
.grid-cell {
    transition: all 0.2s ease;
}

.grid-cell:hover {
    transform: scale(1.1);
    z-index: 10;
}

/* Completed cell animation */
.cell-completed {
    animation: popIn 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}

/* Today's cell glow */
.today-glow {
    box-shadow: 0 0 20px rgba(251, 191, 36, 0.5);
}