/* assets/css/physics/fluid-dynamics/jet-entrainment-explained.css — 本页专属样式（en/zh 共用） */
/* ============ 射流卷吸 · Jet entrainment ============
   源图：svgs/done/physics-09-jet-entrainment-explained.html。
   本图专属类统一 je-* 前缀；共享类（.part/.body/.body2/.body3/.accent/.tag/.tag-sm/
   .is-running/@keyframes）沿用。零件区分色与动画用 body[data-topic="jet-entrainment"] 作用域限定。 */

/* 主题蓝体系：零件描边 / 小字对比度 */
body[data-topic="jet-entrainment"] .part .body{fill:#c2d1e4;stroke:#2563eb;stroke-width:1.6}
body[data-topic="jet-entrainment"] .part .body2{fill:#dde7f4;stroke:#60a5fa;stroke-width:1.2}
body[data-topic="jet-entrainment"] .part .body3{fill:#aab9cd;stroke:none}
body[data-topic="jet-entrainment"] .part .accent{fill:none;stroke:#2563eb;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
body[data-topic="jet-entrainment"] .tag-sm{fill:#5b6472}

/* 高亮态（换色 + 描边加粗 + 发光） */
body[data-topic="jet-entrainment"] .part.is-active .body{fill:#9dc3f5;stroke:#1d4ed8;stroke-width:2.2}
body[data-topic="jet-entrainment"] .part.is-active .body2{fill:#c4daf8;stroke:#3b82f6;stroke-width:1.4}
body[data-topic="jet-entrainment"] .part.is-active .body3{fill:#1d4ed8}
body[data-topic="jet-entrainment"] .part.is-active .accent{stroke:#1d4ed8}
body[data-topic="jet-entrainment"] .part.is-active{filter:drop-shadow(0 0 12px rgba(29,78,216,.5))}

/* 各部件区分色（均在中灰蓝值域内，禁近白） */
body[data-topic="jet-entrainment"] .part[data-id="part-nozzle"]:not(.is-active) .body{fill:#b9c9de}

/* ===== 射流（高速流体，材质专用饱和色，不受中灰蓝限制） ===== */
.je-jet{fill:#8fbdf0;fill-opacity:.8;stroke:#2563eb;stroke-width:1.6}
.part.is-active .je-jet{fill:#60a5fa;fill-opacity:.95;stroke:#1d4ed8;stroke-width:2.4}
.je-core{fill:#a9cdf2;fill-opacity:.9}
.part.is-active .je-core{fill:#cfe3fb}

/* ===== 中心线（沿轴流动） ===== */
.je-center{fill:none;stroke:#1d4ed8;stroke-width:2.2;stroke-linecap:round;stroke-dasharray:12 10;
  animation:je-flow 1.1s linear infinite;animation-play-state:paused}
.is-running .je-center{animation-play-state:running}
.part.is-active .je-center{stroke:#1e40af;stroke-width:3}

/* ===== 卷吸箭头（周围流体被拖进来） ===== */
.je-ent{fill:none;stroke:#2563eb;stroke-width:3;stroke-linecap:round;stroke-dasharray:12 9;
  animation:je-ent 1.3s linear infinite;animation-play-state:paused}
.is-running .je-ent{animation-play-state:running}
.part.is-active .je-ent{stroke:#1d4ed8;stroke-width:3.4}

/* ===== 掺混边界（射流随距离变宽） ===== */
.je-mix{fill:none;stroke:#5b6a7d;stroke-width:2;stroke-dasharray:10 7}
.part.is-active .je-mix{stroke:#1d4ed8}

/* ===== 速度剖面 ===== */
.je-axis{stroke:#9aa6b8;stroke-width:1.4;stroke-dasharray:4 4}
.je-prof{fill:#1e40af;fill-opacity:.28;stroke:#1e40af;stroke-width:1.6}
.part.is-active .je-prof{fill:#1d4ed8;fill-opacity:.45;stroke:#1d4ed8}

/* ===== 静止环境流体框 ===== */
.je-ambient{fill:none;stroke:#8ea0b5;stroke-width:1.6;stroke-dasharray:9 7;opacity:.8}
.part.is-active .je-ambient{stroke:#1d4ed8}

/* ===== 引线 ===== */
.je-lead{fill:none;stroke:#8ea0b5;stroke-width:1.4;stroke-linecap:round}
.part.is-active .je-lead{stroke:#1d4ed8}

/* ============ 关键帧 ============ */
@keyframes je-flow{to{stroke-dashoffset:-44}}
@keyframes je-ent{to{stroke-dashoffset:-42}}

/* ===== 无障碍：减弱动效 ===== */
@media (prefers-reduced-motion:reduce){
  body[data-topic="jet-entrainment"] .je-center,
  body[data-topic="jet-entrainment"] .je-ent{animation:none}
}