@keyframes pulse {

    0% {
        transform: scale(1);
        opacity: 1;
    }

    50% {
        transform: scale(1.08);
        opacity: .7;
    }

    100% {
        transform: scale(1);
        opacity: 1;
    }

}


@keyframes float {

    0% {
        transform: translateY(0);
    }

    50% {
        transform: translateY(-10px);
    }

    100% {
        transform: translateY(0);
    }

}


.hero-content {
    animation: heroEnter 1s ease both;
}

@keyframes heroEnter {

    from {
        opacity: 0;
        transform: translateY(30px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


.quick-card,
.program-card,
.facility-card {
    animation: cardEnter .7s ease both;
}

@keyframes cardEnter {

    from {
        opacity: 0;
        transform: translateY(20px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


.reveal {
    opacity: 0;
    transform: translateY(35px);
    transition:
        opacity .8s ease,
        transform .8s ease;
}

.reveal.revealed {
    opacity: 1;
    transform: translateY(0);
}


.scroll-indicator {
    animation: float 2s ease-in-out infinite;
}


.program-icon,
.facility-card span {
    transition: transform .3s ease;
}

.program-card:hover .program-icon,
.facility-card:hover span {
    transform: scale(1.15) rotate(4deg);
}