/* ═══════════════════════════════════════════════════════════
   BARCA DESIGN STUDIO — ANIMATIONS
═══════════════════════════════════════════════════════════ */

/* ── REVEAL ON SCROLL ─────────────────────────────────────── */
.reveal-up {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.8s cubic-bezier(0.25,0.46,0.45,0.94),
              transform 0.8s cubic-bezier(0.25,0.46,0.45,0.94);
}
.reveal-up.visible { opacity: 1; transform: translateY(0); }

.reveal-left {
  opacity: 0;
  transform: translateX(-50px);
  transition: opacity 0.9s cubic-bezier(0.25,0.46,0.45,0.94),
              transform 0.9s cubic-bezier(0.25,0.46,0.45,0.94);
}
.reveal-left.visible { opacity: 1; transform: translateX(0); }

.reveal-right {
  opacity: 0;
  transform: translateX(50px);
  transition: opacity 0.9s cubic-bezier(0.25,0.46,0.45,0.94),
              transform 0.9s cubic-bezier(0.25,0.46,0.45,0.94);
}
.reveal-right.visible { opacity: 1; transform: translateX(0); }

.reveal-tile {
  opacity: 0;
  transform: scale(0.9) translateY(30px);
  transition: opacity 0.7s cubic-bezier(0.25,0.46,0.45,0.94),
              transform 0.7s cubic-bezier(0.34,1.2,0.64,1);
}
.reveal-tile.visible { opacity: 1; transform: scale(1) translateY(0); }

/* ── DELAY UTILITIES ──────────────────────────────────────── */
.delay-1 { transition-delay: 0.15s !important; }
.delay-2 { transition-delay: 0.30s !important; }
.delay-3 { transition-delay: 0.45s !important; }
.delay-4 { transition-delay: 0.60s !important; }

/* ── HERO INITIAL LOAD ────────────────────────────────────── */
.hero__content .reveal-up { transition-delay: 0s; }
.hero__content .delay-1   { transition-delay: 0.25s !important; }
.hero__content .delay-2   { transition-delay: 0.45s !important; }
.hero__content .delay-3   { transition-delay: 0.65s !important; }

/* ── PAGE LOAD FADE ───────────────────────────────────────── */
@keyframes pageFadeIn {
  from { opacity: 0; }
  to   { opacity: 1; }
}
body { animation: pageFadeIn 0.6s ease both; }

/* ── HOVER LIFT ───────────────────────────────────────────── */
.hover-lift {
  transition: transform 0.3s cubic-bezier(0.25,0.46,0.45,0.94),
              box-shadow 0.3s cubic-bezier(0.25,0.46,0.45,0.94);
}
.hover-lift:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 48px rgba(30,58,95,0.16);
}

/* ── FLOATING BADGE ───────────────────────────────────────── */
@keyframes float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-8px); }
}
.about-preview__badge { animation: float 4s ease-in-out infinite; }

/* ── COUNTER ANIMATION ────────────────────────────────────── */
.ai-stat__num {
  transition: all 1.5s cubic-bezier(0.25,0.46,0.45,0.94);
}

/* ── PULSE DOT ────────────────────────────────────────────── */
@keyframes pulseDot {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(0.8); }
}
.status-dot { animation: pulseDot 2s ease-in-out infinite; }

/* ── DECK HOVER ───────────────────────────────────────────── */
.deck-mockup {
  transition: transform 0.6s cubic-bezier(0.25,0.46,0.45,0.94);
}
.deck-mockup:hover { transform: rotateY(4deg) rotateX(-2deg); }

/* ── TOUCH: replace hover with active-press feedback ─────── */
@media (hover: none) {
  .hover-lift:active {
    transform: translateY(-3px);
    box-shadow: 0 12px 32px rgba(30,58,95,0.14);
  }
  .deck-mockup { transition: none; }
  .deck-mockup:hover { transform: none; }
  .service-card:hover { background: var(--clr-surface); }
}

/* ── PREFERS REDUCED MOTION ───────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
  .reveal-up,
  .reveal-left,
  .reveal-right,
  .reveal-tile {
    opacity: 1;
    transform: none;
    transition: none;
  }
  .about-preview__badge { animation: none; }
  .status-dot { animation: none; }
  .ticker { animation: none; }
  body { animation: none; }
}
