/*
 * 驭鬼者论坛 · 动效（R108 重建）
 * 原则：只动 opacity / transform；页面主体只做“淡入”，不位移，
 * 因为 #mainWrapper 上的 transform 会让其中 position:fixed 的按钮在动画期间跳动。
 * 刷新（reload）时不播放入场动画；系统开启“减少动态效果”时全部关闭。
 */
@keyframes ygz-page-fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes ygz-rise-in { from { opacity: 0; transform: translate3d(0, 10px, 0); } to { opacity: 1; transform: none; } }
@keyframes ygz-pop-in { from { opacity: 0; transform: scale(.96); } to { opacity: 1; transform: none; } }
@keyframes ygz-soft-pulse { 0%, 100% { opacity: .55; } 50% { opacity: 1; } }

/* 页面主体的淡入写在 ygz_header_runtime.v122.css（<head> 内加载），
   放在这里（页脚加载）会出现“先显示、再消失、再淡入”的闪烁。 */

/* 通用入场工具类（页面可选用） */
.ygz-anim-rise { animation: ygz-rise-in .42s cubic-bezier(.16, 1, .3, 1) both; }
.ygz-anim-pop { animation: ygz-pop-in .32s cubic-bezier(.16, 1, .3, 1) both; }
.ygz-anim-pulse { animation: ygz-soft-pulse 1.6s ease-in-out infinite; }

/* 可点击元素统一的按压反馈节奏 */
.ygz-press { transition: transform .18s cubic-bezier(.16, 1, .3, 1); }
.ygz-press:active { transform: scale(.97); }

@media (prefers-reduced-motion: reduce) {
  .ygz-anim-rise, .ygz-anim-pop, .ygz-anim-pulse { animation: none !important; }
}
