/* ORYN Design System v1 — Motion. */

@keyframes oryn-pulse {
  0%, 100% { opacity: 0.7; transform: scale(1); }
  50%      { opacity: 1;   transform: scale(1.05); }
}
@keyframes oryn-float {
  0%   { opacity: 0; transform: translateY(20px) rotate(-10deg); }
  20%  { opacity: 1; }
  80%  { opacity: 1; }
  100% { opacity: 0; transform: translateY(-40px) rotate(10deg); }
}
@keyframes oryn-fade-in {
  from { opacity: 0; transform: translateY(4px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes oryn-slide-in-right {
  from { transform: translateX(100%); }
  to   { transform: translateX(0); }
}
@keyframes oryn-slide-up {
  from { transform: translateY(100%); }
  to   { transform: translateY(0); }
}

.o-anim-pulse { animation: oryn-pulse var(--motion-orb, 4s) ease-in-out infinite; }
.o-anim-float { animation: oryn-float var(--motion-float, 3s) ease-in-out infinite; }
.o-anim-fade  { animation: oryn-fade-in var(--motion-base) var(--ease-standard); }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.001ms !important;
    scroll-behavior: auto !important;
  }
}
