/* Preserve Webflow's seven-second glow loop without per-frame DOM mutations.
   AdBlock observes those mutations and otherwise rescans the document every second. */
.ae-02-elements_glow-wrapper {
  animation: ocelot-button-glow 7s ease-in-out infinite;
}
@keyframes ocelot-button-glow {
  from { transform: rotateZ(0deg); }
  to { transform: rotateZ(360deg); }
}

/* Webflow a-258: opposing client-logo rows, 197rem in 25 seconds. */
.logo3_component { animation: ocelot-logos-left 25s linear infinite; }
.logo3_component-2 { animation: ocelot-logos-right 25s linear infinite; }
@keyframes ocelot-logos-left {
  from { transform: translate3d(0, 0, 0); }
  to { transform: translate3d(-197rem, 0, 0); }
}
@keyframes ocelot-logos-right {
  from { transform: translate3d(0, 0, 0); }
  to { transform: translate3d(197rem, 0, 0); }
}
/* Webflow a-207: stack five case previews, adding one every 400ms,
   then reset all together after two seconds. Preserve their z-index. */
.casos-item_container-copy .blog1-image_hover._2 { animation: ocelot-case-2 2s step-end infinite; }
.casos-item_container-copy .blog1-image_hover._3 { animation: ocelot-case-3 2s step-end infinite; }
.casos-item_container-copy .blog1-image_hover._4 { animation: ocelot-case-4 2s step-end infinite; }
.casos-item_container-copy .blog1-image_hover._5 { animation: ocelot-case-5 2s step-end infinite; }
@keyframes ocelot-case-2 { 0% { visibility: hidden; } 20%, 100% { visibility: visible; } }
@keyframes ocelot-case-3 { 0% { visibility: hidden; } 40%, 100% { visibility: visible; } }
@keyframes ocelot-case-4 { 0% { visibility: hidden; } 60%, 100% { visibility: visible; } }
@keyframes ocelot-case-5 { 0% { visibility: hidden; } 80%, 100% { visibility: visible; } }
