/* 克制动效：入场 / 交互反馈 / 进度条；尊重系统降级偏好 */

@keyframes wind-fade-up {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes wind-fade-in {
  from { opacity: 0; }
  to { opacity: 1; }
}

@keyframes wind-btn-pulse {
  0%, 100% { filter: brightness(1); }
  50% { filter: brightness(1.08); }
}

/* 首页：表单卡片入场 */
.gate.motion-enter {
  animation: wind-fade-up 0.45s ease-out both;
}

/* 方向 chip 点击反馈 */
.opt {
  transition: transform 0.15s ease, background-color 0.15s ease, color 0.15s ease;
}

.opt:active {
  transform: scale(0.96);
}

/* 提交按钮 loading */
button.is-loading {
  animation: wind-btn-pulse 1.2s ease-in-out infinite;
}

/* 状态文案淡入 */
#status.has-text,
.hitl-status.has-text {
  animation: wind-fade-in 0.25s ease-out both;
}

/* 报告：hero 淡入 */
.hero.motion-enter {
  animation: wind-fade-in 0.4s ease-out both;
}

/* 报告：卡片滚动显现 */
.card.motion-reveal {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 0.45s ease-out, transform 0.45s ease-out;
}

.card.motion-reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.card.motion-reveal:nth-of-type(1) { transition-delay: 0.02s; }
.card.motion-reveal:nth-of-type(2) { transition-delay: 0.06s; }
.card.motion-reveal:nth-of-type(3) { transition-delay: 0.1s; }
.card.motion-reveal:nth-of-type(4) { transition-delay: 0.14s; }
.card.motion-reveal:nth-of-type(5) { transition-delay: 0.18s; }
.card.motion-reveal:nth-of-type(6) { transition-delay: 0.22s; }
.card.motion-reveal:nth-of-type(7) { transition-delay: 0.26s; }

/* 进度条：由 JS 将宽度从 0 过渡到目标 */
.bar > i {
  transition: width 0.7s ease-out;
}

@media (prefers-reduced-motion: reduce) {
  .gate.motion-enter,
  .hero.motion-enter,
  #status.has-text,
  .hitl-status.has-text,
  button.is-loading {
    animation: none !important;
  }

  .opt {
    transition: none;
  }

  .opt:active {
    transform: none;
  }

  .card.motion-reveal {
    opacity: 1;
    transform: none;
    transition: none;
  }

  .bar > i {
    transition: none;
  }
}
