/* 模块进场动画：只加动效，不改布局 */
.module-reveal {
  opacity: 0;
  transform: translate3d(0, 22px, 0);
  filter: blur(2px);
  transition:
    opacity .58s cubic-bezier(.2, .7, .2, 1),
    transform .68s cubic-bezier(.2, .75, .2, 1),
    filter .58s ease;
  transition-delay: var(--reveal-delay, 0ms);
  will-change: opacity, transform;
}
.module-reveal[data-reveal="zoom"] {
  transform: translate3d(0, 16px, 0) scale(.965);
}
.module-reveal[data-reveal="left"] {
  transform: translate3d(-18px, 10px, 0);
}
.module-reveal[data-reveal="right"] {
  transform: translate3d(18px, 10px, 0);
}
.module-reveal.is-revealed {
  opacity: 1;
  transform: translate3d(0, 0, 0) scale(1);
  filter: blur(0);
  will-change: auto;
}
@media (prefers-reduced-motion: reduce) {
  .module-reveal,
  .module-reveal[data-reveal="zoom"],
  .module-reveal[data-reveal="left"],
  .module-reveal[data-reveal="right"] {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
    transition: none !important;
  }
}
