/* ===== 滚动淡入动画 ===== */
[data-aos] {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
[data-aos].visible {
  opacity: 1;
  transform: translateY(0);
}

/* 卡片依次出现延迟 */
.feature-card:nth-child(1) { transition-delay: 0s; }
.feature-card:nth-child(2) { transition-delay: 0.08s; }
.feature-card:nth-child(3) { transition-delay: 0.16s; }
.feature-card:nth-child(4) { transition-delay: 0.24s; }
.feature-card:nth-child(5) { transition-delay: 0.32s; }
.feature-card:nth-child(6) { transition-delay: 0.4s; }
.feature-card:nth-child(7) { transition-delay: 0.48s; }
.feature-card:nth-child(8) { transition-delay: 0.56s; }

.tech-card:nth-child(1) { transition-delay: 0s; }
.tech-card:nth-child(2) { transition-delay: 0.1s; }
.tech-card:nth-child(3) { transition-delay: 0.2s; }
.tech-card:nth-child(4) { transition-delay: 0.3s; }

/* ===== Hero动画 ===== */
.hero-text {
  animation: slideInLeft 0.8s ease forwards;
}
.hero-terminal {
  animation: slideInRight 0.8s ease forwards;
  animation-delay: 0.2s;
  opacity: 0;
}
@keyframes slideInLeft {
  from { opacity: 0; transform: translateX(-30px); }
  to { opacity: 1; transform: translateX(0); }
}
@keyframes slideInRight {
  from { opacity: 0; transform: translateX(30px); }
  to { opacity: 1; transform: translateX(0); }
}

/* ===== 打字机动画 ===== */
@keyframes typing {
  from { width: 0; }
  to { width: 100%; }
}

/* ===== 发光脉冲 ===== */
.btn-glow {
  animation: glow 2s ease-in-out infinite;
}
@keyframes glow {
  0%, 100% { box-shadow: 0 0 20px rgba(37, 99, 235, 0.3); }
  50% { box-shadow: 0 0 30px rgba(37, 99, 235, 0.5), 0 0 60px rgba(37, 99, 235, 0.2); }
}

/* ===== 浮动效果 ===== */
.hero-terminal .term-window {
  animation: float 6s ease-in-out infinite;
}
@keyframes float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-10px); }
}
