/* Motion is served locally: no CDN, plugin, or hosting service is required. */
@keyframes node99-enter {
  from { opacity: 0; transform: translateY(48px); }
  to { opacity: 1; transform: translateY(0); }
}
@keyframes node99-cue {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(9px); }
}
.hero-line { display: block; }
@media (prefers-reduced-motion: no-preference) {
  .hero-line { animation: node99-enter 1s cubic-bezier(.2,.7,.2,1) backwards; }
  .hero-line:nth-child(1) { animation-delay: .08s; }
  .hero-line:nth-child(2) { animation-delay: .22s; }
  .hero-line:nth-child(3) { animation-delay: .36s; }
  .hero-line:nth-child(4) { animation-delay: .5s; }
  .hero > .eyebrow { animation: node99-enter .8s ease-out backwards; }
  .hero-bottom { animation: node99-enter 1s .65s cubic-bezier(.2,.7,.2,1) backwards; }
  .down { animation: node99-cue 1.5s 1.7s 2 ease-in-out; }
  .page-hero > * { animation: node99-enter .9s cubic-bezier(.2,.7,.2,1) backwards; }
  .page-hero > h1 { animation-delay: .12s; }
  .page-hero > p { animation-delay: .25s; }
  .solution-grid > a { transition: transform .35s ease, box-shadow .35s ease; }
  .product-row h3, .product-row .round, .cta a > span, .text-link > span {
    transition: transform .35s cubic-bezier(.2,.7,.2,1), color .25s, background-color .25s;
  }
  @media (hover: hover) and (pointer: fine) {
    .solution-grid > a:hover { transform: translateY(-6px); box-shadow: 0 18px 30px #20202216; }
    .product-row:hover h3 { transform: translateX(8px); }
    .product-row:hover .round { transform: rotate(45deg); }
    .cta a:hover > span, .text-link:hover > span { transform: translate(5px,-5px); }
  }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; scroll-behavior: auto !important; }
}
