/* Scroll choreography exists only when motion is allowed; without it every element is simply present. */
@keyframes rise {
  from { opacity: 0; transform: translateY(0.45em); }
  to { opacity: 1; transform: none; }
}
.motion .intro .line { display: inline-block; animation: rise 1.2s cubic-bezier(0.2, 0.7, 0.1, 1) both; }
.motion .intro .line:nth-of-type(2) { animation-delay: 0.14s; }
.motion [data-reveal] {
  opacity: 0;
  transform: translateY(32px);
  transition: opacity 1s cubic-bezier(0.2, 0.7, 0.1, 1), transform 1.2s cubic-bezier(0.2, 0.7, 0.1, 1);
}
.motion [data-reveal].shown { opacity: 1; transform: none; }
.motion .showcase[data-reveal] { transition-delay: 0.3s; }
.motion .steps > li:nth-child(2) { transition-delay: 0.12s; }
.motion .steps > li:nth-child(3) { transition-delay: 0.24s; }
.motion .files > li:nth-child(2) { transition-delay: 0.06s; }
.motion .files > li:nth-child(3) { transition-delay: 0.12s; }
.motion .files > li:nth-child(4) { transition-delay: 0.18s; }
.motion .files > li:nth-child(5) { transition-delay: 0.24s; }
.motion .pair .stage video { scale: 1.06; transition: scale 1.8s cubic-bezier(0.2, 0.7, 0.1, 1); }
.motion .pair.shown .stage video { scale: 1; }
