/* Finite, compositor-friendly entrances; content never depends on JavaScript. */
@keyframes lab-rise {
  from { opacity: .25; transform: translate3d(0, 10px, 0); }
  to { opacity: 1; transform: none; }
}
.hero-copy { animation: lab-rise 560ms cubic-bezier(.22,.75,.24,1) both; }
.hero .terminal { animation: lab-rise 620ms 100ms cubic-bezier(.22,.75,.24,1) both; }
.button { transition: transform 160ms ease, background-color 160ms ease, border-color 160ms ease; }
@media (hover: hover) {
  .button:hover { transform: translateY(-2px); }
}
.button:active { transform: translateY(0); }
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .hero-copy, .hero .terminal, .button:hover, .button:active { opacity: 1; transform: none; }
}
