/* assets/css/physics/fluid-dynamics/coanda-effect-explained.css — 本页专属样式（en/zh 共用） */
/* ============ 柯恩达效应 · Coanda effect ============
   源图：svgs/done/physics-07-coanda-effect-explained.html。
   本图专属类统一 cd-* 前缀；共享类（.part/.body/.body2/.body3/.accent/.tag/.tag-sm/
   .is-running/@keyframes）沿用，不重定义。
   零件区分色与动画用 body[data-topic="coanda"] 作用域限定。 */

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

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

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

/* ===== 射流（高速流体，材质专用饱和色，不受中灰蓝限制） ===== */
.cd-jetbody{fill:#8fbdf0;fill-opacity:.85;stroke:#2563eb;stroke-width:1.6}
.part.is-active .cd-jetbody{fill:#60a5fa;fill-opacity:.95;stroke:#1d4ed8;stroke-width:2.4}
.cd-stream{fill:none;stroke:#1e40af;stroke-width:2.6;stroke-linecap:round;
  stroke-dasharray:18 12;animation:cd-flow 1.1s linear infinite;animation-play-state:paused}
.is-running .cd-stream{animation-play-state:running}
.part.is-active .cd-stream{stroke:#1d4ed8;stroke-width:3.2}

/* ===== 康达曲面（凸壁） ===== */
.cd-wall{fill:none;stroke:#8ea0b5;stroke-width:18;stroke-linecap:round}
.cd-wall2{fill:none;stroke:#b6c2d2;stroke-width:6;stroke-linecap:round;opacity:.8}
.part.is-active .cd-wall{stroke:#3b82f6}
.part.is-active .cd-wall2{stroke:#93c5fd}

/* ===== 低压区（卷吸抽空） ===== */
.cd-lowp{fill:#93c5fd;fill-opacity:.35;stroke:#3b82f6;stroke-width:1.6;stroke-dasharray:8 6;
  transform-box:fill-box;transform-origin:50% 50%;
  animation:cd-pulse 2.4s ease-in-out infinite;animation-play-state:paused}
.is-running .cd-lowp{animation-play-state:running}
.part.is-active .cd-lowp{fill:#60a5fa;fill-opacity:.5;stroke:#1d4ed8}

/* ===== 卷吸 / 环境压力箭头 ===== */
.cd-ent{fill:none;stroke:#2563eb;stroke-width:3;stroke-linecap:round;stroke-dasharray:12 9;opacity:.9;
  animation:cd-flow 1.3s linear infinite;animation-play-state:paused}
.is-running .cd-ent{animation-play-state:running}
.cd-press{fill:none;stroke:#ea580c;stroke-width:3;stroke-linecap:round;stroke-dasharray:12 9;opacity:.9;
  animation:cd-flow-rev 1.3s linear infinite;animation-play-state:paused}
.is-running .cd-press{animation-play-state:running}
.part.is-active .cd-ent{stroke:#1d4ed8}

/* ===== 直射流对比路径（未贴壁时应走的直线） ===== */
.cd-straight{fill:none;stroke:#8ea0b5;stroke-width:3;stroke-linecap:round;stroke-dasharray:11 9;opacity:.85}
.part.is-active .cd-straight{stroke:#1d4ed8}

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

/* ============ 关键帧 ============ */
@keyframes cd-flow{to{stroke-dashoffset:-60}}
@keyframes cd-flow-rev{to{stroke-dashoffset:60}}
@keyframes cd-pulse{0%,100%{transform:scale(1);opacity:.85}50%{transform:scale(1.12);opacity:1}}

/* ===== 无障碍：减弱动效 ===== */
@media (prefers-reduced-motion:reduce){
  body[data-topic="coanda"] .cd-stream,
  body[data-topic="coanda"] .cd-ent,
  body[data-topic="coanda"] .cd-press,
  body[data-topic="coanda"] .cd-lowp{animation:none}
}