/* /assets/css/machines/automotive/how-an-egr-valve-cooler-works-cutaway.css - 本页专属样式（en/zh 共用） */
/* ==== 本页专属样式 · EGR 阀与冷却器剖面 ====
   零件区分色与动画用 body[data-topic="egr-cooler"] 作用域限定，避免与其它页互扰。 */
.part .body{fill:#c2d1e4;stroke:#2563eb;stroke-width:1.6}
.part .body2{fill:#dde7f4;stroke:#60a5fa;stroke-width:1.2}
.part .body3{fill:#aab9cd;stroke:none}
.part .accent{fill:none;stroke:#6b7b8c;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.part.is-active .body{fill:#9dc3f5;stroke:#1d4ed8;stroke-width:2.2}
.part.is-active .body2{fill:#c4daf8;stroke:#3b82f6;stroke-width:1.4}
.part.is-active .body3{fill:#1d4ed8}
.part.is-active .accent{stroke:#1d4ed8}
.part.is-active{filter:drop-shadow(0 0 12px rgba(29,78,216,.5))}

.egr-title{fill:var(--strong);font-family:var(--mono);font-size:17px;font-weight:600;letter-spacing:.08em}

/* 各部件区分色（作用域限定 · 均在中灰蓝值域内） */
body[data-topic="egr-cooler"] .part[data-id="part-exhaust-in"]:not(.is-active) .body{fill:#c4d0e0}
body[data-topic="egr-cooler"] .part[data-id="part-exhaust-in"]:not(.is-active) .body2{fill:#dde7f4}
body[data-topic="egr-cooler"] .part[data-id="part-cooler-core"]:not(.is-active) .body{fill:#c2d1e4}
body[data-topic="egr-cooler"] .part[data-id="part-cooler-core"]:not(.is-active) .body2{fill:#dde7f4}
body[data-topic="egr-cooler"] .part[data-id="part-cooler-core"]:not(.is-active) .body3{fill:#aab9cd}
body[data-topic="egr-cooler"] .part[data-id="part-coolant-in"]:not(.is-active) .body{fill:#c8d6e6}
body[data-topic="egr-cooler"] .part[data-id="part-coolant-in"]:not(.is-active) .body2{fill:#dbe7f4}
body[data-topic="egr-cooler"] .part[data-id="part-coolant-out"]:not(.is-active) .body{fill:#c8d6e6}
body[data-topic="egr-cooler"] .part[data-id="part-coolant-out"]:not(.is-active) .body2{fill:#dbe7f4}
body[data-topic="egr-cooler"] .part[data-id="part-exhaust-out"]:not(.is-active) .body{fill:#c6d3e3}
body[data-topic="egr-cooler"] .part[data-id="part-exhaust-out"]:not(.is-active) .body2{fill:#dfe9f5}
body[data-topic="egr-cooler"] .part[data-id="part-valve-body"]:not(.is-active) .body{fill:#cbd7e7}
body[data-topic="egr-cooler"] .part[data-id="part-valve-body"]:not(.is-active) .body2{fill:#e0e8f4}
body[data-topic="egr-cooler"] .part[data-id="part-valve-body"]:not(.is-active) .body3{fill:#aab9cd}
body[data-topic="egr-cooler"] .part[data-id="part-solenoid"]:not(.is-active) .body{fill:#bfcee2}
body[data-topic="egr-cooler"] .part[data-id="part-solenoid"]:not(.is-active) .body3{fill:#a7b6ca}
body[data-topic="egr-cooler"] .part[data-id="part-pintle"]:not(.is-active) .body{fill:#c6d0dd}
body[data-topic="egr-cooler"] .part[data-id="part-pintle"]:not(.is-active) .body2{fill:#dde7f4}
body[data-topic="egr-cooler"] .part[data-id="part-intake-manifold"]:not(.is-active) .body{fill:#c9d5e5}
body[data-topic="egr-cooler"] .part[data-id="part-intake-manifold"]:not(.is-active) .body2{fill:#dde7f4}
body[data-topic="egr-cooler"] .part[data-id="part-intake-manifold"]:not(.is-active) .body3{fill:#b0bfd3}
body[data-topic="egr-cooler"] .part[data-id="part-shell-housing"]:not(.is-active) .body{fill:#dfe6ef;stroke:#9aa6b8}

/* ==== 流体流动（虚线描边动画） ==== */
.egr-flow-hot{fill:none;stroke:#ea580c;stroke-width:4;stroke-linecap:round;stroke-dasharray:16 14;animation:egr-dash-hot 1.1s linear infinite;animation-play-state:paused}
.is-running .egr-flow-hot{animation-play-state:running}
.egr-flow-cool{fill:none;stroke:#f97316;stroke-width:4;stroke-linecap:round;stroke-dasharray:16 14;animation:egr-dash-cool 1.4s linear infinite;animation-play-state:paused}
.is-running .egr-flow-cool{animation-play-state:running}
.egr-flow-coolant{fill:none;stroke:#2563eb;stroke-width:4;stroke-linecap:round;stroke-dasharray:18 16;animation:egr-dash-coolant 1.6s linear infinite;animation-play-state:paused}
.is-running .egr-flow-coolant{animation-play-state:running}
@keyframes egr-dash-hot{to{stroke-dashoffset:-60}}
@keyframes egr-dash-cool{to{stroke-dashoffset:-60}}
@keyframes egr-dash-coolant{to{stroke-dashoffset:-68}}

/* 电磁阀脉冲：阀芯按脉冲升降开合 */
.egr-pintle-move{transform-box:fill-box;transform-origin:center;animation:egr-pulse 2.2s ease-in-out infinite;animation-play-state:paused}
.is-running .egr-pintle-move{animation-play-state:running}
@keyframes egr-pulse{0%,100%{transform:translateY(0)}50%{transform:translateY(-10px)}}
