
.has-js [data-fx="reveal"] {
  opacity: 0;
  filter: blur(12px);
  transform: translateY(28px);
  transition:
    opacity .8s ease,
    filter .8s ease,
    transform .9s cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, filter, transform;
}
[data-fx="reveal"].fx-in {
  opacity: 1;
  filter: blur(0);
  transform: translateY(0);
}

[data-parallax] {
  transform: translate3d(0, var(--py, 0px), 0);
  will-change: transform;
}

@media (prefers-reduced-motion: reduce) {
  [data-fx="reveal"] { opacity: 1; filter: none; transform: none; transition: none; }
  [data-parallax] { transform: none; }
}

.stats__cell:hover .stats__num,
.phero__stat:hover .phero__stat-num {
  animation: stat-num-roll .62s cubic-bezier(0.5, 0, 0.2, 1);
}
@keyframes stat-num-roll {
  0%   { transform: translateY(0);    filter: blur(0);    opacity: 1; }
  45%  { transform: translateY(-70%); filter: blur(10px); opacity: 0; }
  55%  { transform: translateY(70%);  filter: blur(10px); opacity: 0; }
  100% { transform: translateY(0);    filter: blur(0);    opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .stats__cell:hover .stats__num,
  .phero__stat:hover .phero__stat-num { animation: none; }
}
