:root {
  --cm-page-background: var(--bg, #f1f5fb);
  --cm-page-transition-duration: 200ms;
  --cm-page-transition-easing: cubic-bezier(0.2, 0.7, 0.2, 1);
}

html,
body {
  background-color: var(--cm-page-background);
}

@view-transition {
  navigation: auto;
}

::view-transition-group(root) {
  animation-duration: var(--cm-page-transition-duration);
  animation-timing-function: var(--cm-page-transition-easing);
}

::view-transition-image-pair(root) {
  isolation: auto;
}

::view-transition-old(root) {
  animation: cm-page-transition-out var(--cm-page-transition-duration)
    var(--cm-page-transition-easing) both;
  mix-blend-mode: normal;
}

::view-transition-new(root) {
  animation: cm-page-transition-in var(--cm-page-transition-duration)
    var(--cm-page-transition-easing) both;
  mix-blend-mode: normal;
}

@keyframes cm-page-transition-out {
  from {
    opacity: 1;
    transform: translateY(0);
  }
  to {
    opacity: 0;
    transform: translateY(-2px);
  }
}

@keyframes cm-page-transition-in {
  from {
    opacity: 0;
    transform: translateY(2px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  ::view-transition-group(root),
  ::view-transition-old(root),
  ::view-transition-new(root) {
    animation-duration: 0.001ms;
  }
}
