/* /assets/css/systems/bio-systems/how-lung-alveoli-gas-exchange-cross-section-explained.css — 本页专属样式（en/zh 共用） */
/* ============ 肺泡气体交换横切面 · Lung alveolus gas exchange (systems / bio-systems) ============
   简化教学解剖剖面：细支气管 + 肺泡 + 呼吸膜 + 毛细血管 + 红细胞 + 气体交换箭头。
   共享类（.part/.body/.body2/.body3/.tag/.tag-sm/.is-running/@keyframes）已在 base 定义；
   零件区分色与动画用 body[data-topic="lung-alveoli"] 作用域限定，避免与其它页互扰。
   红线：仅作简化教学解剖模型，不构成任何医疗诊断或临床建议。 */

/* 主题描边 / 小字对比度修正（页面作用域） */
body[data-topic="lung-alveoli"] .part .body{stroke-width:1.6}
body[data-topic="lung-alveoli"] .tag-sm{fill:#5b6472;font-size:11px}

body[data-topic="lung-alveoli"] .part[data-id="part-bronchiole"]:not(.is-active) .body{fill:#c2d1e4}
body[data-topic="lung-alveoli"] .part[data-id="part-bronchiole"]:not(.is-active) .body2{fill:#dde7f4}
body[data-topic="lung-alveoli"] .part[data-id="part-alveolus"]:not(.is-active) .body{fill:#d7e4f3}
body[data-topic="lung-alveoli"] .part[data-id="part-capillary"]:not(.is-active) .body{fill:#c3d3e6}
body[data-topic="lung-alveoli"] .part[data-id="part-rbc"]:not(.is-active) .body{fill:#e0a3a3;stroke:#be123c}

/* 高亮态（页面引擎 is-active 时） */
.part.is-active .body{fill:#9dc3f5;stroke:#1d4ed8;stroke-width:2.2}
.part.is-active{filter:drop-shadow(0 0 12px rgba(29,78,216,.5))}

/* 呼吸膜（环形薄壁） */
.alv-membrane{fill:none;stroke:#5b8fc7;stroke-width:9}
.part.is-active .alv-membrane{stroke:#1d4ed8;stroke-width:11}

/* 毛细血管环（粗描边环带） */
.alv-cap{fill:none;stroke:#c3d3e6;stroke-width:66;stroke-linecap:round}
.part.is-active .alv-cap{stroke:#9dc3f5}

/* 气流（支气管内）与血流（毛细血管）虚线流动 */
.alv-air{fill:none;stroke:#2563eb;stroke-width:5;stroke-linecap:round;stroke-dasharray:14 12;animation:alv-flow 1.6s linear infinite;animation-play-state:paused}
.alv-blood{fill:none;stroke:#be123c;stroke-width:5;stroke-linecap:round;stroke-dasharray:14 12;animation:alv-flow 1.6s linear infinite;animation-play-state:paused}
.is-running .alv-air,.is-running .alv-blood{animation-play-state:running}
@keyframes alv-flow{to{stroke-dashoffset:-52}}

/* 气体交换箭头（O₂ 入血 / CO₂ 出气） */
.alv-o2{fill:none;stroke:#2563eb;stroke-width:3.4;stroke-linecap:round;stroke-dasharray:11 9;animation:alv-flow 1.3s linear infinite;animation-play-state:paused}
.alv-co2{fill:none;stroke:#be123c;stroke-width:3.4;stroke-linecap:round;stroke-dasharray:11 9;animation:alv-flow 1.3s linear infinite;animation-play-state:paused}
.is-running .alv-o2,.is-running .alv-co2{animation-play-state:running}

/* 呼吸（肺泡轻微胀缩脉冲环） */
.alv-breathe{transform-box:fill-box;transform-origin:center;animation:alv-br 3.2s ease-in-out infinite;animation-play-state:paused}
.is-running .alv-breathe{animation-play-state:running}
@keyframes alv-br{0%,100%{transform:scale(.98);opacity:.0}45%{opacity:.5}60%{opacity:.35}}

@media (prefers-reduced-motion:reduce){
  .is-running .alv-air,.is-running .alv-blood,.is-running .alv-o2,
  .is-running .alv-co2,.is-running .alv-breathe{animation:none}
}