/**
 * HCTCLIENT01 ANIMATION CORE V1
 * Add data-hctclient01-reveal="fade-up|fade|slide-left|slide-right|scale".
 * JS only marks elements visible; CSS owns all visual motion.
 */
@keyframes hctclient01-spin { to { transform: rotate(360deg); } }

[data-hctclient01-reveal] {
    opacity: 0;
    transition:
        opacity var(--hctclient01-reveal-duration, var(--hctclient01-duration-slow)) var(--hctclient01-ease),
        transform var(--hctclient01-reveal-duration, var(--hctclient01-duration-slow)) var(--hctclient01-ease);
    transition-delay: var(--hctclient01-reveal-delay, 0ms);
    will-change: opacity, transform;
}
[data-hctclient01-reveal="fade-up"] { transform: translateY(1.5rem); }
[data-hctclient01-reveal="slide-left"] { transform: translateX(1.75rem); }
[data-hctclient01-reveal="slide-right"] { transform: translateX(-1.75rem); }
[data-hctclient01-reveal="scale"] { transform: scale(0.96); }
[data-hctclient01-reveal].is-visible { opacity: 1; transform: none; }

.hctclient01-hover-lift { transition: transform var(--hctclient01-duration-normal) var(--hctclient01-ease); }
.hctclient01-hover-lift:hover { transform: translateY(-4px); }
.hctclient01-image-zoom { overflow: hidden; }
.hctclient01-image-zoom img { transition: transform var(--hctclient01-duration-slow) var(--hctclient01-ease); }
.hctclient01-image-zoom:hover img { transform: scale(1.035); }

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto !important; }
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
    [data-hctclient01-reveal] { opacity: 1 !important; transform: none !important; }
}
