/* 滚动入场动效 · 零依赖 · 清愿阁 tokens.css 体系
   触发：IntersectionObserver 自动扫描 .reveal / [data-reveal]
   自动模式：<body data-reveal-auto> 时扫描 .hero/.sec-title/.gate/.banner/.lantern-entry/.testi-card/.reward-bar/.card
   尊重 prefers-reduced-motion: reduce（跳过动画，直接显示）
*/
.reveal{
  opacity:0;
  transform:translateY(14px);
  transition:opacity .55s var(--qy-ease,ease),transform .55s var(--qy-ease,ease);
  will-change:opacity,transform;
}
.reveal.in{ opacity:1; transform:none; }

@media (prefers-reduced-motion: reduce){
  .reveal{
    opacity:1 !important;
    transform:none !important;
    transition:none !important;
    will-change:auto;
  }
}
