/* ============================================================
   SAS INSTITUTIONS — ANIMATIONS
   animations.css
   ============================================================ */

/* ── Reveal Utilities ─────────────────────────────────────── */

.reveal {
    opacity: 0;
    transform: translateY(35px);
    transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1),
                transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}

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

.reveal-left {
    opacity: 0;
    transform: translateX(-40px);
    transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1),
                transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}

.reveal-left.revealed {
    opacity: 1;
    transform: translateX(0);
}

.reveal-right {
    opacity: 0;
    transform: translateX(40px);
    transition: opacity 0.7s cubic-bezier(0.16, 1, 0.3, 1),
                transform 0.7s cubic-bezier(0.16, 1, 0.3, 1);
}

.reveal-right.revealed {
    opacity: 1;
    transform: translateX(0);
}

.reveal-scale {
    opacity: 0;
    transform: scale(0.95);
    transition: opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1),
                transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.reveal-scale.revealed {
    opacity: 1;
    transform: scale(1);
}

/* Stagger delays */
.delay-1  { transition-delay: 0.08s !important; }
.delay-2  { transition-delay: 0.16s !important; }
.delay-3  { transition-delay: 0.24s !important; }
.delay-4  { transition-delay: 0.32s !important; }
.delay-5  { transition-delay: 0.40s !important; }
.delay-6  { transition-delay: 0.48s !important; }

/* ── Hero Reveal Animations ───────────────────────────────── */
.hero-reveal {
    transition: opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1),
                transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

/* ── Clip-path Reveal ─────────────────────────────────────── */
.reveal-clip {
    clip-path: inset(0 0 100% 0);
    transition: clip-path 0.8s cubic-bezier(0.16, 1, 0.3, 1);
}

.reveal-clip.revealed {
    clip-path: inset(0 0 0% 0);
}

/* ── Fade Only ────────────────────────────────────────────── */
.reveal-fade {
    opacity: 0;
    transition: opacity 0.7s ease;
}

.reveal-fade.revealed { opacity: 1; }

/* ── Number Counter Animation ─────────────────────────────── */
@keyframes countUp {
    from { opacity: 0; transform: translateY(10px); }
    to   { opacity: 1; transform: translateY(0); }
}

.counter-animate {
    animation: countUp 0.5s ease forwards;
}

/* ── Academic Stage Reveal ────────────────────────────────── */
.academic-stage {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.65s cubic-bezier(0.16, 1, 0.3, 1),
                transform 0.65s cubic-bezier(0.16, 1, 0.3, 1);
}

.academic-stage.revealed {
    opacity: 1;
    transform: translateY(0);
}

/* ── Institution Card Reveal ──────────────────────────────── */
.institution-card {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity 0.65s cubic-bezier(0.16, 1, 0.3, 1),
                transform 0.65s cubic-bezier(0.16, 1, 0.3, 1),
                box-shadow 0.35s ease;
}

.institution-card.revealed {
    opacity: 1;
    transform: translateY(0);
}

.institution-card.revealed:hover {
    transform: translateY(-6px);
}

/* ── Gallery Item Reveal ──────────────────────────────────── */
.gallery-item {
    opacity: 0;
    transform: scale(0.96);
    transition: opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1),
                transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.gallery-item.revealed {
    opacity: 1;
    transform: scale(1);
}

/* ── Value Card Reveal ────────────────────────────────────── */
.value-card {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1),
                transform 0.6s cubic-bezier(0.16, 1, 0.3, 1),
                background 0.35s ease,
                border-color 0.35s ease;
}

.value-card.revealed {
    opacity: 1;
    transform: translateY(0);
}

/* ── Facility Item Reveal ─────────────────────────────────── */
.facility-item {
    opacity: 0;
    transform: scale(0.96);
    transition: opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1),
                transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.facility-item.revealed {
    opacity: 1;
    transform: scale(1);
}

/* ── Trust Item Reveal ────────────────────────────────────── */
.trust__item {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.5s cubic-bezier(0.16, 1, 0.3, 1),
                transform 0.5s cubic-bezier(0.16, 1, 0.3, 1);
}

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

/* ── Result Figure Reveal ─────────────────────────────────── */
.result-figure {
    opacity: 0;
    transform: translateX(-20px);
    transition: opacity 0.6s cubic-bezier(0.16, 1, 0.3, 1),
                transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}

.result-figure.revealed {
    opacity: 1;
    transform: translateX(0);
}

/* ── Scholarship Card Reveal ──────────────────────────────── */
.scholarship-card {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.55s cubic-bezier(0.16, 1, 0.3, 1),
                transform 0.55s cubic-bezier(0.16, 1, 0.3, 1),
                border-color 0.25s ease,
                box-shadow 0.25s ease;
}

.scholarship-card.revealed {
    opacity: 1;
    transform: translateY(0);
}

/* ── Faculty Group Reveal ─────────────────────────────────── */
.faculty__institution-group {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.65s cubic-bezier(0.16, 1, 0.3, 1),
                transform 0.65s cubic-bezier(0.16, 1, 0.3, 1);
}

.faculty__institution-group.revealed {
    opacity: 1;
    transform: translateY(0);
}

/* ── Prefers Reduced Motion ───────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
        scroll-behavior: auto !important;
    }

    .reveal,
    .reveal-left,
    .reveal-right,
    .reveal-scale,
    .reveal-clip,
    .reveal-fade,
    .academic-stage,
    .institution-card,
    .gallery-item,
    .value-card,
    .facility-item,
    .trust__item,
    .result-figure,
    .scholarship-card,
    .faculty__institution-group {
        opacity: 1;
        transform: none;
        clip-path: none;
    }
}
