/* RuniverseHub UI V2 · Motion portable desde Lovable */

@keyframes rh-v2-fade-up {
  from { opacity: 0; transform: translate3d(0, 12px, 0); }
  to { opacity: 1; transform: translate3d(0, 0, 0); }
}

@keyframes rh-v2-fade-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes rh-v2-scale-in {
  from { opacity: 0; transform: scale(0.96); }
  to { opacity: 1; transform: scale(1); }
}

@keyframes rh-v2-slide-up {
  from { transform: translate3d(0, 100%, 0); }
  to { transform: translate3d(0, 0, 0); }
}

@keyframes rh-v2-shine {
  from { transform: translateX(-100%); }
  to { transform: translateX(100%); }
}

@keyframes rh-v2-progress-fill {
  from { transform: scaleX(0); }
  to { transform: scaleX(1); }
}

.rh-v2-anim-fade-up {
  animation: rh-v2-fade-up var(--rh-v2-motion-base) var(--rh-v2-ease-enter) both;
}

.rh-v2-anim-fade-in {
  animation: rh-v2-fade-in var(--rh-v2-motion-base) var(--rh-v2-ease-standard) both;
}

.rh-v2-anim-scale-in {
  animation: rh-v2-scale-in var(--rh-v2-motion-fast) var(--rh-v2-ease-enter) both;
}

.rh-v2-anim-panel {
  animation: rh-v2-fade-up var(--rh-v2-motion-panel) var(--rh-v2-ease-enter) both;
}

.rh-v2-stagger {
  animation-delay: calc(var(--rh-v2-index, 0) * var(--rh-v2-stagger-step));
}

.rh-v2-stagger--fast {
  animation-delay: calc(var(--rh-v2-index, 0) * var(--rh-v2-stagger-fast-step));
}

.rh-v2-reveal {
  opacity: 0;
  transform: translate3d(0, 16px, 0);
  transition:
    opacity var(--rh-v2-motion-base) var(--rh-v2-ease-enter),
    transform var(--rh-v2-motion-base) var(--rh-v2-ease-enter);
  transition-delay: var(--rh-v2-reveal-delay, 0ms);
}

.rh-v2-reveal[data-rh-v2-reveal-state="in"] {
  opacity: 1;
  transform: translate3d(0, 0, 0);
}

.rh-v2-hover-lift {
  transition:
    transform var(--rh-v2-motion-fast) var(--rh-v2-ease-standard),
    border-color var(--rh-v2-motion-fast) var(--rh-v2-ease-standard),
    box-shadow var(--rh-v2-motion-fast) var(--rh-v2-ease-standard);
}

.rh-v2-hover-lift:hover {
  transform: translate3d(0, -2px, 0);
}

.rh-v2-progress[data-rh-v2-animate="true"] .rh-v2-progress__bar {
  animation: rh-v2-progress-fill var(--rh-v2-motion-slow) var(--rh-v2-ease-enter) both;
}

@media (prefers-reduced-motion: reduce) {
  .rh-v2-root,
  .rh-v2-root *,
  .rh-v2-root *::before,
  .rh-v2-root *::after {
    scroll-behavior: auto;
    animation-duration: 0.001ms;
    animation-iteration-count: 1;
    transition-duration: 0.001ms;
    transition-delay: 0ms;
  }

  .rh-v2-reveal {
    opacity: 1;
    transform: none;
  }

  .rh-v2-hover-lift:hover,
  .rh-v2-card--interactive:hover,
  .rh-v2-button:hover {
    transform: none;
  }
}
