@media (prefers-reduced-motion: no-preference) {
  html {
    scroll-behavior: smooth;
  }

  html.js .nav {
    transition: opacity 220ms ease, transform 220ms ease, visibility 220ms ease;
  }

  html.motion .route {
    stroke-dasharray: 1;
    stroke-dashoffset: 1;
  }

  html.motion .route.is-drawn {
    animation: draw 1.15s ease forwards;
  }

  html.motion .route.route--late.is-drawn {
    animation-delay: 180ms;
  }

  html.motion .reveal.is-in {
    animation: rise 380ms ease;
  }
}

@keyframes draw {
  to {
    stroke-dashoffset: 0;
  }
}

@keyframes rise {
  from {
    opacity: 0;
    transform: translateY(12px);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
}
