/* ==========================================================================
   NTMC v2 - animations.css
   ========================================================================== */

/* Fade Up */
.fade-up{
    opacity:0;
    transform:translateY(40px);
    transition:
        opacity .8s ease,
        transform .8s ease;
}

.fade-up.show{
    opacity:1;
    transform:translateY(0);
}

/* Fade In */
.fade-in{
    opacity:0;
    transition:opacity .8s ease;
}

.fade-in.show{
    opacity:1;
}

/* Zoom */
.zoom-in{
    opacity:0;
    transform:scale(.92);
    transition:
        opacity .8s ease,
        transform .8s ease;
}

.zoom-in.show{
    opacity:1;
    transform:scale(1);
}

/* Hero */
.hero__content > *{
    opacity:0;
    transform:translateY(30px);
    animation:heroReveal .8s ease forwards;
}

.hero__subtitle{animation-delay:.1s;}
.hero__title{animation-delay:.25s;}
.hero__text{animation-delay:.45s;}
.hero__buttons{animation-delay:.65s;}

@keyframes heroReveal{
    from{
        opacity:0;
        transform:translateY(30px);
    }
    to{
        opacity:1;
        transform:translateY(0);
    }
}

/* Floating */
.float{
    animation:float 5s ease-in-out infinite;
}

@keyframes float{
    0%,100%{transform:translateY(0);}
    50%{transform:translateY(-12px);}
}

/* Glow pulse */
.glow{
    animation:glowPulse 2.8s ease-in-out infinite;
}

@keyframes glowPulse{
    0%,100%{
        box-shadow:0 0 0 rgba(0,183,255,0);
    }
    50%{
        box-shadow:0 0 30px rgba(0,183,255,.35);
    }
}

/* Buttons */
.btn{
    transition:
        transform .3s ease,
        box-shadow .3s ease,
        background .3s ease;
}

.btn:hover{
    transform:translateY(-4px);
}

/* Cards */
.direction-card,
.feature-card,
.news-card,
.partner-card,
.stat-card{
    transition:
        transform .35s ease,
        box-shadow .35s ease,
        border-color .35s ease;
}

.direction-card:hover,
.feature-card:hover,
.news-card:hover,
.partner-card:hover,
.stat-card:hover{
    transform:translateY(-8px);
}

/* Underline animation */
.nav a::after{
    transition:width .35s ease;
}

/* Smooth section reveal helper */
.reveal{
    opacity:0;
    transform:translateY(60px);
    transition:all .9s ease;
}

.reveal.active{
    opacity:1;
    transform:none;
}
