/* /assets/css/machines/aerospace/how-a-liquid-rocket-engine-works-cutaway.css — 本页专属样式（en/zh 共用） */

/* ============ 零件本体/区分色（part bodies & per-part distinct fills） ============ */
.part .body{fill:var(--metal);stroke:#8ea0b5;stroke-width:1.6}
.part .body2{fill:var(--metal-2);stroke:#a9b7c9;stroke-width:1.2}
.part .body3{fill:#c6d0dd;stroke:none}
.part .accent{fill:none;stroke:#6b7b8c;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
/* active highlight stays blue */
.part.is-active .body{fill:#cfe3fb;stroke:var(--accent)}
.part.is-active .body2{fill:#e3eefc;stroke:#60a5fa}
.part.is-active .body3{fill:var(--accent)}
.part.is-active .accent{stroke:var(--accent-2)}
.part.is-active{filter:drop-shadow(0 0 10px rgba(37,99,235,.35))}

/* ============ 动画：涡轮泵叶轮 / 火焰（motion） ============ */
.impeller{transform-box:view-box;animation:spin 1.2s linear infinite;animation-play-state:paused}
.is-running .impeller{animation-play-state:running}
@keyframes spin{to{transform:rotate(360deg)}}

.flame{transform-box:view-box;transform-origin:600px 764px;transform:scaleY(0);opacity:0;transition:opacity .4s;animation-play-state:paused}
.is-running .flame{opacity:.92;animation:flamePulse .85s ease-in-out infinite;animation-play-state:running}
@keyframes flamePulse{0%,100%{transform:scaleY(.78);opacity:.75}50%{transform:scaleY(1.06);opacity:1}}

/* ============ 管道流动（flow） ============ */
.pipe-case{fill:none;stroke:#94a3b8;stroke-width:20;stroke-linecap:round;stroke-linejoin:round}
.pipe-flow{
  fill:none;stroke:var(--accent);stroke-width:6;stroke-linecap:round;stroke-linejoin:round;
  stroke-dasharray:10 16;opacity:0;transition:opacity .4s;
}
.pipe-flow.fuel{stroke:#ea580c}
.pipe-flow.ox{stroke:#2563eb}
.is-running .pipe-flow{opacity:.95;animation:flow 1.15s linear infinite}
.is-running .pipe-flow.fuel{animation-duration:.9s}
@keyframes flow{to{stroke-dashoffset:-26}}

/* ============ 液体火箭发动机剖面图 · Liquid rocket engine ============
   源图：svgs/todo/machine-56-how-a-liquid-rocket-engine-works-cutaway.html。
   通用类（.part/.body/.body2/.body3/.accent/.tag/.tag-sm/.pipe-flow/.impeller）已在 base + 本表存在。 */
body[data-topic="liquid-rocket-engine"] .part[data-id="part-fuel-pump"] .impeller{transform-origin:250px 432px}
body[data-topic="liquid-rocket-engine"] .part[data-id="part-ox-pump"] .impeller{transform-origin:950px 432px}

/* 各部件区分色（:not(.is-active) 保证全局高亮仍生效） */
body[data-topic="liquid-rocket-engine"] .part[data-id="part-fuel-tank"]:not(.is-active) .body{fill:#e7cfa6}
body[data-topic="liquid-rocket-engine"] .part[data-id="part-fuel-tank"]:not(.is-active) .body2{fill:#f0e0c2}
body[data-topic="liquid-rocket-engine"] .part[data-id="part-ox-tank"]:not(.is-active) .body{fill:#bcd9f2}
body[data-topic="liquid-rocket-engine"] .part[data-id="part-ox-tank"]:not(.is-active) .body2{fill:#d6e9fb}
body[data-topic="liquid-rocket-engine"] .part[data-id="part-fuel-pump"]:not(.is-active) .body{fill:#d9c49c}
body[data-topic="liquid-rocket-engine"] .part[data-id="part-ox-pump"]:not(.is-active) .body{fill:#a9ccec}
body[data-topic="liquid-rocket-engine"] .part[data-id="part-injector"]:not(.is-active) .body{fill:#b7c9dd}
body[data-topic="liquid-rocket-engine"] .part[data-id="part-chamber"]:not(.is-active) .body{fill:#c2b6d9}
body[data-topic="liquid-rocket-engine"] .part[data-id="part-chamber"]:not(.is-active) .body2{fill:#ddd4ec}
body[data-topic="liquid-rocket-engine"] .part[data-id="part-nozzle"]:not(.is-active) .body{fill:#aab9cd}
body[data-topic="liquid-rocket-engine"] .part[data-id="part-nozzle"]:not(.is-active) .body2{fill:#c6d2e0}

/* 涡轮泵叶轮叶片 */
.pump-vane{fill:none;stroke:#5b6a7d;stroke-width:8;stroke-linecap:round;opacity:.85}
.part.is-active .pump-vane{stroke:var(--accent-2)}

/* 再生冷却夹套：仅走线表示 */
.cool-line{fill:none;stroke:#7c8ea3;stroke-width:4;stroke-dasharray:7 5;opacity:.85}
.part.is-active .cool-line{stroke:var(--accent-2);stroke-width:5}