.rw-fade-in { animation: rwFadeIn var(--rw-paper-slow) var(--rw-paper-ease) both; }
.rw-slide-up { animation: rwSlideUp var(--rw-paper-slow) var(--rw-paper-ease) both; }
.rw-scale-in { animation: rwScaleIn var(--rw-paper-normal) var(--rw-paper-ease) both; }
.rw-hover-lift { transition: transform var(--rw-paper-normal) var(--rw-paper-ease), box-shadow var(--rw-paper-normal) var(--rw-paper-ease); }
.rw-hover-lift:hover { transform: translateY(-2px); box-shadow: var(--rw-paper-shadow-lg); }

.rw-skeleton-card,.rw-skeleton-form,.rw-skeleton-table,.rw-skeleton-dashboard,.rw-skeleton-timeline {
  min-height: 80px;
  border-radius: var(--rw-paper-radius-lg);
  background: linear-gradient(90deg, rgba(15,23,42,.05), rgba(15,23,42,.10), rgba(15,23,42,.05));
  background-size: 220% 100%;
  animation: rwSkeleton 1.4s ease-in-out infinite;
}

@keyframes rwFadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes rwSlideUp { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: translateY(0); } }
@keyframes rwScaleIn { from { opacity: 0; transform: scale(.98); } to { opacity: 1; transform: scale(1); } }
@keyframes rwSkeleton { from { background-position: 220% 0; } to { background-position: -220% 0; } }

@media (prefers-reduced-motion: reduce) {
  .rw-fade-in,.rw-slide-up,.rw-scale-in,.rw-skeleton-card,.rw-skeleton-form,.rw-skeleton-table,.rw-skeleton-dashboard,.rw-skeleton-timeline { animation: none; }
  .rw-hover-lift,.rw-hover-lift:hover { transition: none; transform: none; }
}
