/* ===== 首页专用：答辩故事线 ===== */

/* Hero：结论先行 */
.hero .hero-conclusion{
  display:inline-block;margin-top:18px;font-size:15px;color:var(--blue-deep);
  background:rgba(107,140,174,0.10);border:1px solid rgba(107,140,174,0.28);
  padding:8px 18px;border-radius:999px;font-weight:600;
}
.hero .hero-conclusion b{color:var(--sage-deep);font-weight:800}

/* KPI 数字动效（进入视口时从0计数） */
.stat-number[data-count]{font-variant-numeric:tabular-nums}

/* 故事线：问题 → 方法 → 结果 → 闭环 */
.story{margin:36px 0 10px}
.story-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;position:relative}
.story-grid::before{
  content:"";position:absolute;top:34px;left:8%;right:8%;height:2px;
  background:linear-gradient(90deg,var(--rose),var(--clay),var(--sage),var(--blue));
  opacity:.5;border-radius:2px;z-index:0;
}
.story-step{position:relative;z-index:1;background:var(--card);border:1px solid var(--line);
  border-radius:16px;padding:20px 16px;text-align:center;box-shadow:var(--glow)}
.story-num{width:38px;height:38px;border-radius:50%;margin:0 auto 12px;
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px;
  color:#fff;border:3px solid var(--bg)}
.story-step.s-problem .story-num{background:var(--rose)}
.story-step.s-method .story-num{background:var(--clay)}
.story-step.s-result .story-num{background:var(--sage)}
.story-step.s-loop .story-num{background:var(--blue)}
.story-step h4{font-size:14px;color:var(--txt);margin-bottom:6px;font-weight:700}
.story-step p{font-size:12px;color:var(--sub);line-height:1.6;margin:0}
@media(max-width:820px){.story-grid{grid-template-columns:1fr 1fr}.story-grid::before{display:none}}

/* 偏航原理示意图（自绘 SVG，零依赖） */
.principle{display:grid;grid-template-columns:1.1fr 1fr;gap:20px;align-items:center;margin:8px 0 4px}
.principle-card{position:relative;overflow:hidden}
.principle-svg{width:100%;height:auto;display:block;border-radius:12px;background:linear-gradient(180deg,#fbfaf6,#f0ebe1)}
.principle-caption{display:flex;gap:18px;justify-content:center;margin-top:12px;flex-wrap:wrap}
.principle-caption span{font-size:12.5px;color:var(--sub);display:flex;align-items:center;gap:6px}
.legend-dot{width:12px;height:12px;border-radius:3px;display:inline-block}
.principle-toggle{display:flex;gap:8px;justify-content:center;margin-bottom:14px}

/* SVG 尾流漂移动画 */
@keyframes wakeShift{
  0%,100%{transform:translateX(0) skewX(0deg)}
  50%{transform:translateX(26px) skewX(-7deg)}
}
.wake-stream{animation:wakeShift 5s ease-in-out infinite;transform-origin:left center}
@keyframes rotorSpin{from{transform:rotate(0)}to{transform:rotate(360deg)}}
.rotor{animation:rotorSpin 6s linear infinite;transform-origin:center center;transform-box:fill-box}
.rotor.slow{animation-duration:9s}
@keyframes yawNeedle{
  0%,100%{transform:rotate(-18deg)}
  50%{transform:rotate(18deg)}
}
.yaw-needle{animation:yawNeedle 5s ease-in-out infinite;transform-origin:0 50%}

.principle-text h3{font-size:18px;color:var(--txt);margin-bottom:10px;font-weight:800}
.principle-text p{font-size:13.5px;color:var(--sub);line-height:1.8;margin-bottom:10px}
.principle-text .hl{color:var(--blue-deep);font-weight:700}
.principle-text .gain{color:var(--sage-deep);font-weight:800}
@media(max-width:820px){.principle{grid-template-columns:1fr}}

/* 分组标题 */
.group-title{display:flex;align-items:center;gap:10px;margin:28px 0 14px}
.group-title h3{font-size:15px;font-weight:800;color:var(--txt);margin:0}
.group-title .gt-line{flex:1;height:1px;background:var(--line)}
.group-title .gt-tag{font-size:11px;font-weight:700;color:var(--sub);letter-spacing:1px;text-transform:uppercase}

/* 页脚团队署名 */
.team{font-size:12px;color:var(--sub-soft);line-height:1.9}
.team b{color:var(--sub);font-weight:600}
