/* ===========================
   R&CIA – Animaciones (reveal + blur + float)
   =========================== */

/* Reveal base (estado oculto) */
.ry-reveal {
  opacity: 0;
  transform: translate3d(0, 28px, 0);
  filter: blur(14px);
  transition:
    opacity 900ms cubic-bezier(.2,.8,.2,1),
    transform 900ms cubic-bezier(.2,.8,.2,1),
    filter 900ms cubic-bezier(.2,.8,.2,1);
  transition-delay: var(--ry-delay, 0ms);
  will-change: opacity, transform, filter;
}

/* Variantes opcionales */
.ry-reveal.ry-up   { transform: translate3d(0, 28px, 0); }
.ry-reveal.ry-down { transform: translate3d(0,-28px, 0); }
.ry-reveal.ry-left { transform: translate3d(28px,0, 0); }
.ry-reveal.ry-right{ transform: translate3d(-28px,0, 0); }

/* Visible */
.ry-reveal.is-inview {
  opacity: 1;
  transform: translate3d(0, 0, 0);
  filter: blur(0px);
}

/* Pequeño “pop” para títulos (opcional) */
.ry-reveal.ry-pop { transform: translate3d(0, 28px, 0) scale(1.01); }
.ry-reveal.ry-pop.is-inview { transform: translate3d(0, 0, 0) scale(1); }

/* ===========================
   Ambient / Float (elementos decorativos flotando)
   =========================== */
.ry-float {
  will-change: transform, filter, opacity;
  animation: ry-floatY var(--ry-dur, 6.5s) ease-in-out infinite;
  animation-delay: var(--ry-delay, 0ms);
  filter: blur(var(--ry-blur, 0px));
  opacity: var(--ry-op, 1);
}

@keyframes ry-floatY {
  0%, 100% { transform: translate3d(0, 0, 0) rotate(var(--ry-rot, 0deg)); }
  50%      { transform: translate3d(0, -18px, 0) rotate(var(--ry-rot, 0deg)); }
}

/* “Sube y se desvanece” tipo burbuja/ícono */
.ry-drift-up {
  will-change: transform, filter, opacity;
  animation: ry-driftUp var(--ry-dur, 7.5s) ease-in-out infinite;
  animation-delay: var(--ry-delay, 0ms);
  filter: blur(var(--ry-blur, 2px));
  opacity: 0;
}

@keyframes ry-driftUp {
  0%   { transform: translate3d(0, 24px, 0) scale(.98); opacity: 0; }
  20%  { opacity: var(--ry-op, .65); }
  60%  { opacity: var(--ry-op, .65); }
  100% { transform: translate3d(0, -54px, 0) scale(1.02); opacity: 0; }
}

@media (max-width: 768px) {
    .ry-reveal {
      filter: blur(6px);
      transform: translate3d(0, 16px, 0);
      transition-duration: 600ms;
    }
    .ry-reveal.ry-up    { transform: translate3d(0, 16px, 0); }
    .ry-reveal.ry-down   { transform: translate3d(0, -16px, 0); }
    .ry-reveal.ry-left   { transform: translate3d(16px, 0, 0); }
    .ry-reveal.ry-right  { transform: translate3d(-16px, 0, 0); }
    .ry-reveal.ry-pop    { transform: translate3d(0, 16px, 0) scale(1.01); }
  }

/* Respeto a accesibilidad */
@media (prefers-reduced-motion: reduce) {
  .ry-reveal,
  .ry-float,
  .ry-drift-up {
    animation: none !important;
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
  }
}

html[data-force-motion="1"] .ry-reveal,
html[data-force-motion="1"] .ry-float,
html[data-force-motion="1"] .ry-drift-up {
  animation: initial !important;
  transition: initial !important;
  will-change: opacity, transform, filter !important;
}
