/* ==========================================================
 * page-router.css — PageManager / PageRouter transition styles
 * Author  : Roland Tsanga Bodo
 * Version : 1.0.0
 *
 * CSS companion for script/js/page-router.js.
 * Provides the animated page-transition classes used by
 * PageManager.show() / hide() / switchTo().
 * ========================================================== */

/* Base transition properties applied during any animated switch */
.qm-transition-fade,
.qm-transition-slide-up,
.qm-transition-slide-left {
  transition-property: opacity, transform;
  transition-timing-function: ease;
  transition-duration: 220ms;
  will-change: opacity, transform;
}

/* ---------- fade ---------- */
.qm-transition-fade.qm-entering {
  opacity: 0;
}
.qm-transition-fade.qm-visible {
  opacity: 1;
}
.qm-transition-fade.qm-leaving {
  opacity: 0;
}

/* ---------- slide-up ---------- */
.qm-transition-slide-up.qm-entering {
  opacity: 0;
  transform: translateY(18px);
}
.qm-transition-slide-up.qm-visible {
  opacity: 1;
  transform: translateY(0);
}
.qm-transition-slide-up.qm-leaving {
  opacity: 0;
  transform: translateY(-12px);
}

/* ---------- slide-left ---------- */
.qm-transition-slide-left.qm-entering {
  opacity: 0;
  transform: translateX(28px);
}
.qm-transition-slide-left.qm-visible {
  opacity: 1;
  transform: translateX(0);
}
.qm-transition-slide-left.qm-leaving {
  opacity: 0;
  transform: translateX(-18px);
}

/* Honor user preference for reduced motion */
@media (prefers-reduced-motion: reduce) {
  .qm-transition-fade,
  .qm-transition-slide-up,
  .qm-transition-slide-left {
    transition: none !important;
  }
}
