/* /assets/css/machines/automotive/how-a-catalytic-converter-honeycomb-substrate-works-cutaway.css — 本页专属样式（en/zh 共用） */
/* ==== 内联本页样式：machine-32 三元催化器蜂窝载体剖面 ==== */
/* 共享零件本体/区分色类（与机器类目共用语义） */
.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))}

/* ============ 三元催化器蜂窝载体剖面图 · Catalytic converter honeycomb substrate cutaway ============
   本图专属类统一 cc-* 前缀；共享类（.part/.body/.body2/.body3/.accent/.tag/.tag-sm/
   .is-running/@keyframes）沿用，不重定义。
   零件区分色与动画用 body[data-topic="catalytic-converter"] 作用域限定，避免与其它页互扰。 */

/* 主题蓝体系：零件描边 / 小字对比度修正（页面作用域，非重定义共享规则） */
body[data-topic="catalytic-converter"] .part .body{stroke:#2563eb;stroke-width:1.6}
body[data-topic="catalytic-converter"] .part .body2{stroke:#60a5fa}
body[data-topic="catalytic-converter"] .tag-sm{fill:#5b6472}

/* 各部件区分色（作用域限定 · per-part distinct fills，均在中灰蓝值域内） */
body[data-topic="catalytic-converter"] .part[data-id="part-inlet-cone"]:not(.is-active) .body{fill:#c2d1e4}
body[data-topic="catalytic-converter"] .part[data-id="part-inlet-cone"]:not(.is-active) .body2{fill:#dde7f4}
body[data-topic="catalytic-converter"] .part[data-id="part-outlet-cone"]:not(.is-active) .body{fill:#bccbdf}
body[data-topic="catalytic-converter"] .part[data-id="part-outlet-cone"]:not(.is-active) .body2{fill:#d8e3f3}
body[data-topic="catalytic-converter"] .part[data-id="part-honeycomb-substrate"]:not(.is-active) .body{fill:#c6d3e5}
body[data-topic="catalytic-converter"] .part[data-id="part-honeycomb-substrate"]:not(.is-active) .body2{fill:#e0eaf5}
body[data-topic="catalytic-converter"] .part[data-id="part-oxygen-sensor-up"]:not(.is-active) .body{fill:#c4d1e3}
body[data-topic="catalytic-converter"] .part[data-id="part-oxygen-sensor-up"]:not(.is-active) .body2{fill:#dde7f4}
body[data-topic="catalytic-converter"] .part[data-id="part-oxygen-sensor-down"]:not(.is-active) .body{fill:#c4d1e3}
body[data-topic="catalytic-converter"] .part[data-id="part-oxygen-sensor-down"]:not(.is-active) .body2{fill:#dde7f4}
body[data-topic="catalytic-converter"] .part[data-id="part-heat-shield"]:not(.is-active) .body{fill:#cbd7e7}
body[data-topic="catalytic-converter"] .part[data-id="part-shell-housing"]:not(.is-active) .body{fill:#dfe6ef;stroke:#9aa6b8}

/* 蜂窝通道/涂层高亮态：切换到高对比蜂窝图案（靠换色+发光，不压暗其它零件） */
body[data-topic="catalytic-converter"] .part[data-id="part-washcoat"].is-active .cc-hex-walls{fill:url(#cc-hex-walls-hi)}
body[data-topic="catalytic-converter"] .part[data-id="part-catalyst-channels"].is-active .cc-hex-cells{fill:url(#cc-hex-cells-hi)}

/* 氧传感器读数小标签 */
.cc-readout{font-family:var(--sans);font-size:12px;font-weight:600;fill:#b45309}
.cc-readout-cool{fill:#1e40af}

/* ============ 动画（全部 cc-* 前缀） ============ */
/* 热废气：自进气锥流入，橙 #ea580c，虚线流动 */
.cc-flow-hot{stroke:#ea580c;stroke-width:4;stroke-linecap:round;fill:none;stroke-dasharray:14 12;
  animation:cc-hot-flow 1.6s linear infinite;animation-play-state:paused}
.is-running .cc-flow-hot{animation-play-state:running}
@keyframes cc-hot-flow{to{stroke-dashoffset:-52}}

/* 净化气体：自出气锥排出，冷蓝 #2563eb，虚线流动 */
.cc-flow-clean{stroke:#2563eb;stroke-width:4;stroke-linecap:round;fill:none;stroke-dasharray:14 12;
  animation:cc-clean-flow 1.6s linear infinite;animation-play-state:paused}
.is-running .cc-flow-clean{animation-play-state:running}
@keyframes cc-clean-flow{to{stroke-dashoffset:-52}}

/* 通道催化反应脉动：蜂窝通道壁/涂层高亮呼吸 */
.cc-band-pulse{animation:cc-pulse 2.2s ease-in-out infinite;animation-play-state:paused}
.is-running .cc-band-pulse{animation-play-state:running}
@keyframes cc-pulse{0%,100%{opacity:.4}50%{opacity:1}}

/* 氧传感器读数灯闪烁 */
.cc-led{animation:cc-blink 1.15s steps(1,end) infinite;animation-play-state:paused}
.is-running .cc-led{animation-play-state:running}
@keyframes cc-blink{0%,45%{opacity:1}50%,100%{opacity:.2}}