/* ===== 高级动画系统 ===== */

/* 首次载入入场（更细腻：位移更小 + 轻微回弹，仍然只用 opacity/transform） */
@keyframes themeEnter {
  0% {
    opacity: 0;
    transform: translate3d(0, 10px, 0) scale(0.992);
  }
  65% {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1.006);
  }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
}

@keyframes themeEnterSoft {
  0% {
    opacity: 0;
    transform: scale(0.985);
  }
  70% {
    opacity: 1;
    transform: scale(1.01);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}

/* 滚动/列表渐入（用于 post-grid 依次渐入）：小位移 + 轻回弹 */
@keyframes revealIn {
  0% {
    opacity: 0;
    transform: translate3d(0, 8px, 0) scale(0.996);
  }
  70% {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1.004);
  }
  100% {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
  }
}

/* 背景浮动动画（更克制：更“液态”，也更省性能） */
@keyframes float {
  0%,
  100% {
    transform: translate3d(0, 0, 0) scale(1);
  }
  33% {
    transform: translate3d(14px, -10px, 0) scale(1.02);
  }
  66% {
    transform: translate3d(-10px, 8px, 0) scale(0.99);
  }
}

@keyframes progressBar {
  0% {
    transform: translateX(-100%);
  }
  50% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(100%);
  }
}
