.feed-stage.is-leaving-next,
.feed-stage.is-leaving-previous,
.feed-stage.is-entering-next,
.feed-stage.is-entering-previous {
  pointer-events: none;
  will-change: transform, opacity;
}

.feed-stage.is-leaving-next { animation: feed-leave-next 130ms cubic-bezier(.4, 0, 1, 1) both; }
.feed-stage.is-leaving-previous { animation: feed-leave-previous 130ms cubic-bezier(.4, 0, 1, 1) both; }
.feed-stage.is-entering-next { animation: feed-enter-next 180ms cubic-bezier(0, .7, .25, 1) both; }
.feed-stage.is-entering-previous { animation: feed-enter-previous 180ms cubic-bezier(0, .7, .25, 1) both; }

@keyframes feed-leave-next {
  to { opacity: .18; transform: translate3d(0, -5%, 0) scale(.992); }
}

@keyframes feed-leave-previous {
  to { opacity: .18; transform: translate3d(0, 5%, 0) scale(.992); }
}

@keyframes feed-enter-next {
  from { opacity: .18; transform: translate3d(0, 5%, 0) scale(.992); }
}

@keyframes feed-enter-previous {
  from { opacity: .18; transform: translate3d(0, -5%, 0) scale(.992); }
}

@media (prefers-reduced-motion: reduce) {
  .feed-stage.is-leaving-next,
  .feed-stage.is-leaving-previous,
  .feed-stage.is-entering-next,
  .feed-stage.is-entering-previous { animation: none; }
}
