/**
 * GeoIBRAM - Animações de conteúdo (páginas)
 * Transições suaves e elegantes para seções, cards e blocos.
 * Uma única transição entre páginas (splash amarelo com logo); aqui apenas animações no conteúdo.
 */

/* Redução de movimento: respeitar preferência do usuário */
@media (prefers-reduced-motion: reduce) {
    .geoibram-ani-fade-up,
    .geoibram-ani-fade-in,
    .geoibram-ani-slide-in,
    .geoibram-ani-scale-in,
    .geoibram-ani-stagger > * {
        animation-duration: 0.01ms !important;
        transition-duration: 0.01ms !important;
    }
}

/* Estado inicial (antes da animação) */
.geoibram-ani-fade-up,
.geoibram-ani-fade-in,
.geoibram-ani-slide-in,
.geoibram-ani-scale-in {
    opacity: 0;
}

/* Entrada: fade + subir */
.geoibram-ani-fade-up.geoibram-ani-visible {
    animation: geoibram-fade-up 0.5s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

@keyframes geoibram-fade-up {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Entrada: apenas fade */
.geoibram-ani-fade-in.geoibram-ani-visible {
    animation: geoibram-fade-in 0.4s ease-out forwards;
}

@keyframes geoibram-fade-in {
    from { opacity: 0; }
    to { opacity: 1; }
}

/* Entrada: slide lateral suave */
.geoibram-ani-slide-in.geoibram-ani-visible {
    animation: geoibram-slide-in 0.45s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

@keyframes geoibram-slide-in {
    from {
        opacity: 0;
        transform: translateX(-16px);
    }
    to {
        opacity: 1;
        transform: translateX(0);
    }
}

/* Entrada: scale suave */
.geoibram-ani-scale-in.geoibram-ani-visible {
    animation: geoibram-scale-in 0.4s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

@keyframes geoibram-scale-in {
    from {
        opacity: 0;
        transform: scale(0.98);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

/* Stagger: delay progressivo nos filhos */
.geoibram-ani-stagger > *.geoibram-ani-visible {
    animation: geoibram-fade-up 0.45s cubic-bezier(0.22, 1, 0.36, 1) forwards;
}

/* Duração um pouco maior para cards/seções */
.geoibram-ani-card.geoibram-ani-visible {
    animation-duration: 0.55s;
}

.geoibram-ani-section.geoibram-ani-visible {
    animation-duration: 0.5s;
}
