/* ==========================================================================
   AppFocus — animations.css   [ AURORA ]
   ========================================================================== */

/* --------------------------- Scroll reveal ----------------------------- */
[data-reveal] {
  opacity: 0; transform: translateY(20px);
  transition: opacity .72s cubic-bezier(.22,.7,.24,1), transform .72s cubic-bezier(.22,.7,.24,1);
  will-change: opacity, transform;
}
[data-reveal].in { opacity: 1; transform: none; }
[data-reveal="fade"]  { transform: none; }
[data-reveal="left"]  { transform: translateX(-24px); }
[data-reveal="right"] { transform: translateX(24px); }
[data-reveal="scale"] { transform: scale(.965); }

[data-stagger] > [data-reveal] { transition-delay: calc(var(--i, 0) * 70ms); }

@media (prefers-reduced-motion: reduce) {
  [data-reveal] { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* ------------------------------ Marquee -------------------------------- */
@keyframes mq { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* --------------------- Aurora bloom slow drift -------------------------- */
.bloom { animation: bloomDrift 26s ease-in-out infinite alternate; }
@keyframes bloomDrift {
  from { transform: translateX(-50%) translateY(0) scale(1); }
  to   { transform: translateX(-50%) translateY(26px) scale(1.07); }
}
@media (prefers-reduced-motion: reduce) { .bloom { animation: none; } }

/* ------------------------------- Float --------------------------------- */
.fl1 { animation: fl 7s ease-in-out infinite; }
.fl2 { animation: fl 8.4s ease-in-out infinite .7s; }
@keyframes fl { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-11px); } }
@media (prefers-reduced-motion: reduce) { .fl1, .fl2 { animation: none; } }

/* --------------------- Gradient shimmer on hero word -------------------- */
.grad.shimmer { background-size: 230% auto; animation: sh 8s linear infinite; }
@keyframes sh { to { background-position: 230% center; } }
@media (prefers-reduced-motion: reduce) { .grad.shimmer { animation: none; } }
