/* /assets/css/machines/automotive/turbocharger-vs-supercharger.css - 本页专属样式（en/zh 共用） */
/* ==== 内联本页样式：原 /assets/css/machines/automotive/turbo-vs-supercharger.css ==== */
/* 共享零件本体/区分色类（与机器类目共用语义） */
.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}
.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))}

/* ============ 涡轮增压 vs 机械增压 · 对比图 ============
   本页专属类统一 tvs-* 前缀；共享类（.part/.body/.body2/.body3/.accent/.tag/.tag-sm/
   .is-running/@keyframes）沿用，不重定义。
   零件区分色与动画用 body[data-topic="turbo-vs-supercharger"] 作用域限定，避免与其它页互扰。 */

/* 主题蓝体系 + 小字对比度修正（页面作用域，非重定义共享规则）
   同时把 .body/.body2/.body3 的默认填充拉回 §4.9 中灰蓝值域（禁止近白） */
body[data-topic="turbo-vs-supercharger"] .part .body{fill:#c2d1e4;stroke:#2563eb;stroke-width:1.6}
body[data-topic="turbo-vs-supercharger"] .part .body2{fill:#dde7f4;stroke:#60a5fa}
body[data-topic="turbo-vs-supercharger"] .part .body3{fill:#aab9cd}
body[data-topic="turbo-vs-supercharger"] .tag-sm{fill:#5b6472}

/* 各部件区分色（作用域限定 · per-part distinct fills，均在中灰蓝值域内） */
body[data-topic="turbo-vs-supercharger"] .part[data-id="part-turbo-turbine"]:not(.is-active) .body{fill:#c2d1e4;stroke:#ea580c;stroke-width:1.8}
body[data-topic="turbo-vs-supercharger"] .part[data-id="part-turbo-compressor"]:not(.is-active) .body{fill:#bfcee2;stroke:#2563eb;stroke-width:1.8}
body[data-topic="turbo-vs-supercharger"] .part[data-id="part-turbo-shaft"]:not(.is-active) .body2{fill:#dde7f4}
body[data-topic="turbo-vs-supercharger"] .part[data-id="part-engine"]:not(.is-active) .body{fill:#ccd8e8}
body[data-topic="turbo-vs-supercharger"] .part[data-id="part-engine"]:not(.is-active) .body3{fill:#aab9cd}
body[data-topic="turbo-vs-supercharger"] .part[data-id="part-supercharger-rotors"]:not(.is-active) .body{fill:#c6d3e5}
body[data-topic="turbo-vs-supercharger"] .part[data-id="part-supercharger-rotors"]:not(.is-active) .body3{fill:#aab9cd}
body[data-topic="turbo-vs-supercharger"] .part[data-id="part-supercharger-drive-pulley"]:not(.is-active) .body{fill:#d7e2f2}
body[data-topic="turbo-vs-supercharger"] .part[data-id="part-crank-pulley"]:not(.is-active) .body{fill:#c4d1e3}

/* 叶轮叶片 / 罗茨转子瓣：厚虚线描边模拟叶片（随零件一起旋转） */
.tvs-blade{fill:none;stroke:#7f93ab;stroke-width:12;stroke-linecap:round;stroke-dasharray:20 14.6}
.tvs-rotor-blade{fill:none;stroke:#7f93ab;stroke-width:14;stroke-linecap:round;stroke-dasharray:44 27.2}
body[data-topic="turbo-vs-supercharger"] .part.is-active .tvs-blade,
body[data-topic="turbo-vs-supercharger"] .part.is-active .tvs-rotor-blade{stroke:#1d4ed8}

/* 气流管道：热端橙 #ea580c / 冷端蓝 #2563eb */
.tvs-pipe{fill:none;stroke-width:3;stroke-linecap:round}
.tvs-flow-hot{stroke:#ea580c;stroke-dasharray:12 10}
.tvs-flow-cold{stroke:#2563eb;stroke-dasharray:12 10}

/* 皮带与皮带流动 */
.tvs-belt{fill:none;stroke:#475569;stroke-width:9;stroke-linejoin:round}
.tvs-belt-flow{fill:none;stroke:#93c5fd;stroke-width:4;stroke-linecap:round;stroke-dasharray:14 20}

/* 对比要点面板 */
.tvs-note{fill:#e2e9f3;stroke:#c3ccd9;stroke-width:1.2}

/* ============ 动画 ============ */
/* 左右两侧记号（分隔线静止，不动画） */
/* 涡轮侧：废气驱动 → 有迟滞（每个周期先停 32% 再转） */
.tvs-turbine-spin{transform-box:view-box;transform-origin:430px 250px;animation:tvs-lag-rot 2.4s linear infinite;animation-play-state:paused}
.tvs-compressor-spin{transform-box:view-box;transform-origin:190px 250px;animation:tvs-lag-rot 2.4s linear infinite;animation-play-state:paused}
.tvs-shaft-spin{transform-box:view-box;transform-origin:310px 250px;animation:tvs-lag-rot 2.4s linear infinite;animation-play-state:paused}
.is-running .tvs-turbine-spin,.is-running .tvs-compressor-spin,.is-running .tvs-shaft-spin{animation-play-state:running}
@keyframes tvs-lag-rot{0%,32%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}

/* 废气流动：同样带迟滞感 */
.tvs-flow-hot.tvs-lag{animation-play-state:paused}
.is-running .tvs-flow-hot.tvs-lag{animation:tvs-lag-flow 2.4s linear infinite;animation-play-state:running}
@keyframes tvs-lag-flow{0%,32%{stroke-dashoffset:0}100%{stroke-dashoffset:-88}}
/* 常规气流流动（冷端 + 涡轮排气） */
.is-running .tvs-flow-hot{animation:tvs-hot-flow 1.2s linear infinite}
.is-running .tvs-flow-cold{animation:tvs-cold-flow 1.2s linear infinite}
@keyframes tvs-hot-flow{to{stroke-dashoffset:-44}}
@keyframes tvs-cold-flow{to{stroke-dashoffset:-44}}

/* 机械增压侧：皮带驱动 → 即时响应 */
.tvs-rotor-a{transform-box:view-box;transform-origin:855px 230px;animation:tvs-rot 1.6s linear infinite;animation-play-state:paused}
.tvs-rotor-b{transform-box:view-box;transform-origin:955px 230px;animation:tvs-rot-rev 1.6s linear infinite;animation-play-state:paused}
.tvs-pulley-spin{transform-box:view-box;transform-origin:855px 350px;animation:tvs-rot 2s linear infinite;animation-play-state:paused}
.tvs-crank-spin{transform-box:view-box;transform-origin:700px 592px;animation:tvs-rot 2s linear infinite;animation-play-state:paused}
.is-running .tvs-rotor-a,.is-running .tvs-rotor-b,.is-running .tvs-pulley-spin,.is-running .tvs-crank-spin{animation-play-state:running}
@keyframes tvs-rot{to{transform:rotate(360deg)}}
@keyframes tvs-rot-rev{to{transform:rotate(-360deg)}}

/* 皮带流动（即时、匀速） */
.is-running .tvs-belt-flow{animation:tvs-belt-run 1s linear infinite}
@keyframes tvs-belt-run{to{stroke-dashoffset:-68}}
