/* ========================================
   LCSU — Animations
   ======================================== */

/* ── Scroll Reveal ─────────────────────── */
.lcsu-reveal {
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.7s ease, transform 0.7s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.lcsu-reveal--visible {
    opacity: 1;
    transform: translateY(0);
}

.lcsu-reveal--left {
    opacity: 0;
    transform: translateX(-40px);
}
.lcsu-reveal--left.lcsu-reveal--visible {
    opacity: 1;
    transform: translateX(0);
}

.lcsu-reveal--right {
    opacity: 0;
    transform: translateX(40px);
}
.lcsu-reveal--right.lcsu-reveal--visible {
    opacity: 1;
    transform: translateX(0);
}

.lcsu-reveal--scale {
    opacity: 0;
    transform: scale(0.9);
}
.lcsu-reveal--scale.lcsu-reveal--visible {
    opacity: 1;
    transform: scale(1);
}

/* Stagger children */
.lcsu-stagger > * {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.5s ease, transform 0.5s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}
.lcsu-stagger--visible > *:nth-child(1) { transition-delay: 0.05s; }
.lcsu-stagger--visible > *:nth-child(2) { transition-delay: 0.1s; }
.lcsu-stagger--visible > *:nth-child(3) { transition-delay: 0.15s; }
.lcsu-stagger--visible > *:nth-child(4) { transition-delay: 0.2s; }
.lcsu-stagger--visible > *:nth-child(5) { transition-delay: 0.25s; }
.lcsu-stagger--visible > *:nth-child(6) { transition-delay: 0.3s; }
.lcsu-stagger--visible > *:nth-child(7) { transition-delay: 0.35s; }
.lcsu-stagger--visible > *:nth-child(8) { transition-delay: 0.4s; }
.lcsu-stagger--visible > * {
    opacity: 1;
    transform: translateY(0);
}

/* ── Hover Effects ─────────────────────── */
.lcsu-hover-lift {
    transition: transform var(--lcsu-transition), box-shadow var(--lcsu-transition);
}
.lcsu-hover-lift:hover {
    transform: translateY(-6px);
    box-shadow: var(--lcsu-shadow-lg);
}

.lcsu-hover-glow:hover {
    box-shadow: var(--lcsu-shadow-glow);
}

/* ── Pulse ─────────────────────────────── */
@keyframes lcsu-pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.6; }
}
.lcsu-pulse { animation: lcsu-pulse 2s ease-in-out infinite; }

/* ── Spin ──────────────────────────────── */
@keyframes lcsu-spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

/* ── Respect reduced motion ────────────── */
@media (prefers-reduced-motion: reduce) {
    .lcsu-reveal,
    .lcsu-reveal--left,
    .lcsu-reveal--right,
    .lcsu-reveal--scale,
    .lcsu-stagger > * {
        opacity: 1;
        transform: none;
        transition: none;
    }
    .lcsu-hero__shape { animation: none; }
    .lcsu-pulse { animation: none; }
}
