/* ==================================================
   SHMI — Animations
   ================================================== */

@keyframes pulse-dot {
    0% { box-shadow: 0 0 0 0 rgba(215, 181, 109, .5); }
    70% { box-shadow: 0 0 0 9px rgba(215, 181, 109, 0); }
    100% { box-shadow: 0 0 0 0 rgba(215, 181, 109, 0); }
}

@keyframes pulse-ring {
    0% { box-shadow: 0 0 0 0 rgba(8, 120, 209, .5), 0 12px 34px rgba(8, 120, 209, .45); }
    70% { box-shadow: 0 0 0 22px rgba(8, 120, 209, 0), 0 12px 34px rgba(8, 120, 209, .45); }
    100% { box-shadow: 0 0 0 0 rgba(8, 120, 209, 0), 0 12px 34px rgba(8, 120, 209, .45); }
}

@keyframes float-y {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-12px); }
}

@keyframes slide-up {
    from { opacity: 0; transform: translateY(26px); }
    to { opacity: 1; transform: translateY(0); }
}

@keyframes slide-in-left {
    from { opacity: 0; transform: translateX(-34px); }
    to { opacity: 1; transform: translateX(0); }
}

@keyframes slide-in-right {
    from { opacity: 0; transform: translateX(34px); }
    to { opacity: 1; transform: translateX(0); }
}

@keyframes zoom-fade {
    from { opacity: 0; transform: scale(1.04); }
    to { opacity: 1; transform: scale(1); }
}

@keyframes draw-line {
    from { transform: scaleX(0); }
    to { transform: scaleX(1); }
}

@keyframes ken-burns {
    0% { transform: scale(1); }
    100% { transform: scale(1.12); }
}

@keyframes spin-slow {
    from { transform: rotate(0); }
    to { transform: rotate(360deg); }
}

/* Scroll reveal helpers (JS adds .in-view) */
[data-reveal] {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity .7s ease, transform .7s ease;
    transition-delay: var(--rd, 0s);
}

[data-reveal].in-view {
    opacity: 1;
    transform: translateY(0);
}

[data-reveal="left"] { transform: translateX(-36px); }
[data-reveal="left"].in-view { transform: translateX(0); }

[data-reveal="right"] { transform: translateX(36px); }
[data-reveal="right"].in-view { transform: translateX(0); }

[data-reveal="zoom"] { transform: scale(.94); }
[data-reveal="zoom"].in-view { transform: scale(1); }

/* Utility animation classes */
.anim-float { animation: float-y 5s ease-in-out infinite; }
.anim-kenburns img { animation: ken-burns 14s ease-in-out infinite alternate; }

/* Hero entrance */
.hero-eyebrow { animation: slide-up .7s ease .05s both; }
.hero-title { animation: slide-up .7s ease .15s both; }
.hero-sub { animation: slide-up .7s ease .25s both; }
.hero-cta { animation: slide-up .7s ease .35s both; }
.hero-stats { animation: slide-up .7s ease .45s both; }
.hero-media { animation: zoom-fade .9s ease .2s both; }

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after {
        animation-duration: .001s !important;
        animation-iteration-count: 1 !important;
        transition-duration: .001s !important;
    }
}
