/* =================================== */
/* =================================== */
/* =================================== */
/* D. O. 2026 */
/* =====OCTOBER 2026 For Statoplan =====*/
/* =================================== */
/* =================================== */
/* animate.css — terminal motion: caret, blink, a couple of idle loops.         */
/* Start states of the scroll reveals are set in js/animate.js via gsap.set();  */
/* the only pre-hide here is html.am-js [data-a] (anti-flash), which the head   */
/* script drops after 4s on its own — content can never stay hidden.            */
/* =================================== */

/* anti-flash: removed by js/animate.js once the start states are set */
html.am-js [data-a]{
    visibility: hidden;
}

/* typing caret */
.am-caret{
    display: inline-block;
    width: .58em;
    height: 1.05em;
    margin-left: .06em;
    vertical-align: -.16em;
    background: var(--am-yellow);
    animation: amBlink 1s steps(1) infinite;
}

.am-caret.is-typing{
    animation: none;
}

/* the hero prompt keeps its caret blinking after it is typed */
.hero__prompt .am-caret{
    background: #9FA8B3;
}

@keyframes amBlink{
    0%, 100%{ opacity: 1; }
    50%{ opacity: 0; }
}

@keyframes amPulse{
    0%, 100%{ box-shadow: 0 0 8px 2px rgba(46, 184, 255, .55); opacity: 1; }
    50%{ box-shadow: 0 0 14px 4px rgba(46, 184, 255, .25); opacity: .6; }
}

@keyframes amRowIn{
    from{ opacity: 0; transform: translateY(6px); }
    to{ opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce){
    .am-caret,
    .footer__brand-cursor,
    .footer__dot{
        animation: none;
    }
}

/* =================================== */
/* =================================== */
/* =================================== */
/* D. O. 2026 */
/* =====OCTOBER 2026 For Statoplan =====*/
/* =================================== */
/* =================================== */
/* =================================== */
