/* Shared native navigation transitions. */
@media (prefers-reduced-motion: no-preference) {
  @view-transition {
    navigation: auto;
  }
  .module-intro {
    view-transition-name: module-panel;
  }
  .module-intro h1 {
    view-transition-name: module-title;
  }
  .module-intro-art {
    view-transition-name: module-art;
  }
  ::view-transition-group(*) {
    animation-duration: 0.65s;
    animation-timing-function: cubic-bezier(0.22, 1, 0.36, 1);
  }
  ::view-transition-old(root) {
    animation: page-fade-out 0.3s ease both;
  }
  ::view-transition-new(root) {
    animation: page-reveal 0.65s cubic-bezier(0.16, 1, 0.3, 1) both;
  }
  ::view-transition-old(module-art),
  ::view-transition-new(module-art) {
    height: 100%;
    object-fit: contain;
  }
}
@keyframes page-fade-out {
  to {
    opacity: 0;
    scale: 0.97;
  }
}
@keyframes page-reveal {
  from {
    opacity: 0;
    translate: 0 28px;
    clip-path: inset(5% 0 0);
  }
  to {
    opacity: 1;
    translate: 0 0;
    clip-path: inset(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  ::view-transition-group(*),
  ::view-transition-old(*),
  ::view-transition-new(*) {
    animation: none !important;
  }
}
