/* Safety net: page sections must remain readable even if animation JS fails. */
.glass-card {
    opacity: 1 !important;
    filter: blur(0) !important;
    transform: translateY(0) !important;
}

.glass-card.reveal-managed:not(.is-revealed) {
    opacity: 0 !important;
    filter: blur(10px) !important;
    transform: translateY(50px) !important;
}

.glass-card.reveal-managed {
    transition:
        opacity 0.9s cubic-bezier(0.16, 1, 0.3, 1),
        filter 0.9s cubic-bezier(0.16, 1, 0.3, 1),
        transform 0.9s cubic-bezier(0.16, 1, 0.3, 1);
    will-change: opacity, filter, transform;
}
