/* ============================================
   AMAYRA SOLUTIONS - Animations
   ============================================ */

/* Keyframes */
@keyframes spin { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
@keyframes progress { from { width: 0; } to { width: 100%; } }
@keyframes pulse { 0%,100% { box-shadow: 0 0 8px rgba(34,197,94,0.6); } 50% { box-shadow: 0 0 16px rgba(34,197,94,0.9); } }
@keyframes float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-12px); } }
@keyframes rotate { from { transform: translate(-50%,-50%) rotate(0deg); } to { transform: translate(-50%,-50%) rotate(360deg); } }
@keyframes scrollWheel { 0% { transform: translateY(0); opacity: 1; } 100% { transform: translateY(12px); opacity: 0; } }
@keyframes marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes fadeIn { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: translateY(0); } }
@keyframes slideInLeft { from { opacity: 0; transform: translateX(-30px); } to { opacity: 1; transform: translateX(0); } }
@keyframes slideInRight { from { opacity: 0; transform: translateX(30px); } to { opacity: 1; transform: translateX(0); } }
@keyframes countUp { from { opacity: 0; } to { opacity: 1; } }

/* AOS (Animate on Scroll) */
[data-aos] { opacity: 0; transition: opacity 0.7s ease, transform 0.7s ease; }
[data-aos="fade-up"] { transform: translateY(30px); }
[data-aos="fade-down"] { transform: translateY(-30px); }
[data-aos="fade-left"] { transform: translateX(30px); }
[data-aos="fade-right"] { transform: translateX(-30px); }
[data-aos="zoom-in"] { transform: scale(0.9); }
[data-aos].aos-animate { opacity: 1; transform: none; }

/* Particle dots in hero */
.particle { position: absolute; border-radius: 50%; background: rgba(59,130,246,0.4); animation: float 6s ease-in-out infinite; }

/* Stagger delays */
[data-aos-delay="100"] { transition-delay: 0.1s; }
[data-aos-delay="200"] { transition-delay: 0.2s; }
[data-aos-delay="300"] { transition-delay: 0.3s; }
[data-aos-delay="400"] { transition-delay: 0.4s; }

/* Hover underline animation */
.hover-underline { position: relative; }
.hover-underline::after { content: ''; position: absolute; bottom: -2px; left: 0; width: 0; height: 2px; background: currentColor; transition: width 0.3s ease; }
.hover-underline:hover::after { width: 100%; }

/* Card entrance */
.card-entrance { animation: fadeIn 0.6s ease both; }

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
    .marquee-track { animation: none; }
}

/* Services page specifics */
.service-detail-card { transition: transform 0.3s ease, box-shadow 0.3s ease; }
.service-detail-card:hover { transform: translateY(-6px); }

/* Form animations */
.form-field { transition: border-color 0.3s, box-shadow 0.3s; }
.form-field:focus { border-color: var(--primary-light); box-shadow: 0 0 0 3px rgba(59,130,246,0.15); outline: none; }

/* Glow pulse for CTA */
@keyframes glowPulse { 0%,100% { box-shadow: 0 10px 40px rgba(59,130,246,0.3); } 50% { box-shadow: 0 10px 60px rgba(59,130,246,0.55); } }
.btn-primary { animation: glowPulse 3s ease-in-out infinite; }
.btn-primary:hover { animation: none; }

/* Shimmer loading effect */
@keyframes shimmer { 0% { background-position: -200% 0; } 100% { background-position: 200% 0; } }
.shimmer { background: linear-gradient(90deg, var(--gray-200) 25%, var(--gray-100) 50%, var(--gray-200) 75%); background-size: 200% 100%; animation: shimmer 1.5s infinite; }
