/* ============ 育正法则 · 全站动效（2026-08-08） ============ */
/* 门控：仅当 JS 成功执行（html.fx）才启用隐藏态，JS 失败则页面保持原样 */
html.fx .fx-reveal {
  opacity: 0;
  transform: translateY(26px);
  transition: opacity .8s cubic-bezier(.2,.7,.3,1), transform .8s cubic-bezier(.2,.7,.3,1);
}
html.fx .fx-reveal.fx-in { opacity: 1; transform: translateY(0); }

/* 主标题入场 */
html.fx .fx-title { animation: fx-fade-up .8s cubic-bezier(.2,.7,.3,1) both; }
@keyframes fx-fade-up {
  from { opacity: 0; transform: translateY(22px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* 卡片悬浮增强（仅门控启用，避免覆盖页面原有 hover） */
html.fx .fx-lift { transition: transform .3s cubic-bezier(.2,.7,.3,1), box-shadow .3s ease; }
html.fx .fx-lift:hover { transform: translateY(-4px); }

/* 减少动效降级 */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
  html.fx .fx-reveal { opacity: 1 !important; transform: none !important; }
}