/*
 * animations.css — auto-generated by scripts/build-css-modules.mjs
 * Source: public/css/animations/*.css (1 modules)
 * Do NOT edit this file directly. Edit the modules and re-run the script.
 */

/* ==========================================================================
   Baara — global animation helpers
   Pairs with /js/animations.js
   ========================================================================== */

/* -------- legacy reveal (kept for backwards compatibility) -------- */
/* Safe fallback: always visible.
   Legacy pages (formations/show) rely on this class and must never render blank if JS is delayed/blocked. */
.reveal { opacity: 1; transform: translateY(0); transition: opacity .45s ease, transform .45s ease; }
html.js .reveal { opacity: 1; transform: translateY(0); }
html.js .reveal.is-visible { opacity: 1; transform: translateY(0); }

/* -------- directional reveals (auto-applied by JS) -------- */
.reveal-init {
    opacity: 0;
    will-change: transform, opacity;
    transition:
        opacity   .7s cubic-bezier(.22,.61,.36,1) var(--reveal-delay, 0ms),
        transform .8s cubic-bezier(.22,.61,.36,1) var(--reveal-delay, 0ms);
}
.reveal-init.reveal-up    { transform: translate3d(0, 28px, 0); }
.reveal-init.reveal-down  { transform: translate3d(0, -28px, 0); }
.reveal-init.reveal-left  { transform: translate3d(-32px, 0, 0); }
.reveal-init.reveal-right { transform: translate3d(32px, 0, 0); }
.reveal-init.reveal-fade  { transform: none; }
.reveal-init.reveal-zoom  { transform: scale(.92); }
.reveal-init.is-visible {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
}

/* convenience entrance keyframes */
.fade-in { animation: fadeIn .35s ease; }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }

/* ==========================================================================
   SMART NAVBAR
   ========================================================================== */
.main-header {
    transition: transform .45s cubic-bezier(.22,.61,.36,1),
                background .35s ease,
                box-shadow .35s ease,
                backdrop-filter .35s ease;
    will-change: transform;
}
.main-header.is-scrolled .outer-box {
    box-shadow: 0 14px 30px -22px rgba(15, 23, 42, .35);
}
/* navbar hide-on-scroll-down kept opt-in via [data-hide-on-scroll] only */
.main-header[data-hide-on-scroll].is-hidden {
    transform: translate3d(0, -110%, 0);
}

/* underline glide indicator */
.navigation { position: relative; }
.nav-underline-indicator {
    position: absolute;
    left: 0;
    bottom: 18px;
    height: 2px;
    width: 0;
    background: linear-gradient(90deg, #45A735, #6CC04A);
    border-radius: 2px;
    pointer-events: none;
    opacity: 0;
    transform: translateX(0);
    transition: transform .45s cubic-bezier(.22,.61,.36,1),
                width     .35s cubic-bezier(.22,.61,.36,1),
                opacity   .25s ease;
    z-index: 0;
}
