/* ==========================================================================
   A2Z Website — Animations
   ========================================================================== */

/* ------------------------------------------------------------------
   Keyframes
   ------------------------------------------------------------------ */

@keyframes fadeInUp {
    from { opacity: 0; transform: translateY(28px); }
    to   { opacity: 1; transform: translateY(0); }
}

@keyframes float {
    0%, 100% { transform: translateY(0px); }
    50%       { transform: translateY(-12px); }
}

@keyframes ambientDriftA {
    0%, 100% { transform: translate(-50%, 0) scale(1); }
    40%       { transform: translate(-50%, -30px) scale(1.06); }
    70%       { transform: translate(-50%, 15px) scale(0.96); }
}

@keyframes ambientDriftB {
    0%, 100% { transform: translate(0, 0) scale(1); }
    35%       { transform: translate(-20px, 18px) scale(1.05); }
    70%       { transform: translate(12px, -10px) scale(0.97); }
}

@keyframes gridScroll {
    from { background-position: 0 0; }
    to   { background-position: 32px 32px; }
}

@keyframes pulsePurple {
    0%, 100% { box-shadow: 0 0 30px rgba(124, 58, 237, 0.18); }
    50%       { box-shadow: 0 0 60px rgba(124, 58, 237, 0.38); }
}

@keyframes shimmer {
    from { background-position: -400px 0; }
    to   { background-position: 400px 0; }
}

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

/* Arc line travel animation — total dash cycle ~2600px */
@keyframes arcTravel {
    from { stroke-dashoffset: 0; }
    to   { stroke-dashoffset: -2600; }
}

/* Hero glow: #FFB162 → #A35139 → fade out → repeat */
@keyframes glowFadeA {
    0%   { background: radial-gradient(circle, rgba(11, 95, 132, 0.28) 0%, transparent 70%); }
    40%  { background: radial-gradient(circle, rgba(11, 95, 132, 0.22) 0%, rgba(11, 95, 132, 0.12) 50%, transparent 70%); }
    70%  { background: radial-gradient(circle, rgba(11, 95, 132, 0.18) 0%, transparent 70%); }
    90%  { background: radial-gradient(circle, rgba(11, 95, 132, 0.04) 0%, transparent 70%); }
    100% { background: radial-gradient(circle, rgba(11, 95, 132, 0.28) 0%, transparent 70%); }
}

@keyframes glowFadeB {
    0%   { background: radial-gradient(circle, rgba(11, 95, 132, 0.20) 0%, transparent 70%); }
    35%  { background: radial-gradient(circle, rgba(11, 95, 132, 0.16) 0%, rgba(11, 95, 132, 0.10) 50%, transparent 70%); }
    65%  { background: radial-gradient(circle, rgba(11, 95, 132, 0.14) 0%, transparent 70%); }
    88%  { background: radial-gradient(circle, rgba(11, 95, 132, 0.03) 0%, transparent 70%); }
    100% { background: radial-gradient(circle, rgba(11, 95, 132, 0.20) 0%, transparent 70%); }
}

/* ------------------------------------------------------------------
   Hero entrance stagger
   ------------------------------------------------------------------ */

.hero__label       { animation: fadeInUp 0.7s ease-out 0.10s both; }
.hero__title       { animation: fadeInUp 0.8s ease-out 0.24s both; }
.hero__description { animation: fadeInUp 0.8s ease-out 0.38s both; }
.hero__actions     { animation: fadeInUp 0.8s ease-out 0.52s both; }
.hero__visual      { animation: fadeInUp 0.9s ease-out 0.64s both; }

/* ------------------------------------------------------------------
   Ambient glows
   ------------------------------------------------------------------ */

.hero__arc--1 { animation: arcTravel 14s linear infinite; }
.hero__arc--2 { animation: arcTravel 20s linear infinite reverse; }
.page-hero__glow { animation: ambientDriftA 22s ease-in-out infinite; }
.cta-section__glow { animation: glowPulse 6s ease-in-out infinite; }

/* ------------------------------------------------------------------
   Blueprint card grid
   ------------------------------------------------------------------ */

.blueprint-card::before { animation: gridScroll 12s linear infinite; }

/* ------------------------------------------------------------------
   Featured tool card pulse
   ------------------------------------------------------------------ */

.tool-card--featured { animation: pulsePurple 5s ease-in-out infinite; }

/* ------------------------------------------------------------------
   Reduced motion
   ------------------------------------------------------------------ */

@media (prefers-reduced-motion: reduce) {
    .hero__label,
    .hero__title,
    .hero__description,
    .hero__actions,
    .hero__visual,
    .hero__glow-a,
    .hero__glow-b,
    .page-hero__glow,
    .cta-section__glow,
    .blueprint-card::before,
    .tool-card--featured {
        animation: none !important;
    }
    .rvt-dialog, .rvt-dialog--glow {
        transition: none !important;
    }
}
