@keyframes motion-wipe-block {
  from {
    opacity: 0;
    transform: translateY(72px) scale(0.93);
    clip-path: inset(16% 9% 0 9% round 28px);
  }
  to {
    opacity: 1;
    transform: none;
    clip-path: inset(0 0 0 0 round 0);
  }
}
@keyframes motion-wipe-title {
  from { opacity: 0; transform: translateX(-56px); }
  to { opacity: 1; transform: none; }
}
@keyframes motion-wipe-card {
  from { opacity: 0; transform: translateY(36px) scale(0.88); }
  to { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: no-preference) {
  .motion-wipe .block { animation: none; }
  html.js .motion-wipe main .block:not(.block-hero):not(.block-slider):not(.is-in) {
    opacity: 0;
  }
  html.js .motion-wipe main .block.is-in:not(.block-hero):not(.block-slider) {
    animation: motion-wipe-block 0.95s cubic-bezier(0.2, 0.8, 0.2, 1) backwards;
  }
  html.js .motion-wipe main .block.is-in:not(.block-hero):not(.block-slider) :is(h1, h2) {
    animation: motion-wipe-title 0.8s cubic-bezier(0.2, 0.8, 0.2, 1) 0.28s backwards;
  }
  html.js .motion-wipe main .block.is-in:not(.block-hero):not(.block-slider) :is(.items, .intro-points) > * {
    animation: motion-wipe-card 0.7s cubic-bezier(0.2, 0.8, 0.2, 1) backwards;
    animation-delay: calc(0.4s + var(--i, 0) * 110ms);
  }
}
