/* 替代 AOS 的滚动触发动画 — 纯 CSS keyframes */
[data-animate] {
  opacity: 0;
}

[data-animate].animated {
  animation: fade-up calc(var(--duration, 0.5s) * 1s) ease forwards;
}

@keyframes fade-up {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
