/* Shared page transitions — Material shared-axis feel.
   Sidebar / persist-nav stays put; only main content transforms. */

:root {
  --page-transition-duration: 360ms;
  --page-transition-ease: cubic-bezier(0.4, 0, 0.2, 1);
}

.page-transition-target {
  transition:
    opacity var(--page-transition-duration) var(--page-transition-ease),
    transform var(--page-transition-duration) var(--page-transition-ease);
  will-change: opacity, transform;
}

html.page-is-entering .page-transition-target {
  opacity: 0;
  transform: translateY(14px);
}

html.page-is-entering.page-enter-ready .page-transition-target {
  opacity: 1;
  transform: translateY(0);
}

html.page-is-exiting .page-transition-target {
  opacity: 0;
  transform: translateY(-10px);
  pointer-events: none;
}

.persist-nav {
  transition: none !important;
}

@media (prefers-reduced-motion: reduce) {
  .page-transition-target {
    transition: none !important;
    transform: none !important;
  }
  html.page-is-entering .page-transition-target,
  html.page-is-exiting .page-transition-target {
    opacity: 1;
  }
}
