/* assets/css/physics/thermodynamics/phase-change-and-latent-heat-explained.css — 本页专属样式（en/zh 共用） */
/* 依赖 /assets/css/style.css（设计令牌 + .part/.tag 骨架 + 外壳态）。
   图形/动画样式自 svgs/todo/physics-13-phase-change-and-latent-heat-explained.html 预览 <style> 并入驻此
   （页面禁止内联 <style>）。规则按 body[data-topic="latent-heat"] 作用域限定，
   动画由 #stage 的 .is-running 驱动，减弱动效由 base 全局兜底。 */

/* 零件本体/区分色（作用域限定 · 均在中灰蓝值域内） */
body[data-topic="latent-heat"] .part .body{fill:#c2d1e4;stroke:#7d8ea3;stroke-width:1.6}
body[data-topic="latent-heat"] .part .body2{fill:#dde7f4;stroke:#a9b7c9;stroke-width:1.2}
body[data-topic="latent-heat"] .part .body3{fill:#aab9cd;stroke:none}
body[data-topic="latent-heat"] .part .accent{fill:none;stroke:#6b7b8c;stroke-width:2;stroke-linecap:round}
body[data-topic="latent-heat"] .part.is-active .body{fill:#9dc3f5;stroke:#1d4ed8;stroke-width:2.2}
body[data-topic="latent-heat"] .part.is-active .body2{fill:#c4daf8;stroke:#3b82f6;stroke-width:1.4}
body[data-topic="latent-heat"] .part.is-active .body3{fill:#1d4ed8}
body[data-topic="latent-heat"] .part.is-active{filter:drop-shadow(0 0 12px rgba(29,78,216,.5))}

/* 图形基础 */
body[data-topic="latent-heat"] .svg-title{fill:#16202c;font-family:var(--mono);font-size:17px;font-weight:600;letter-spacing:.08em;text-anchor:middle;}
body[data-topic="latent-heat"] .svg-sub{fill:#5b6472;font-size:12px;text-anchor:middle;}

/* 烧杯 / 水位 / 冰 / 蒸汽（材质专用色，§4.9.3 豁免） */
body[data-topic="latent-heat"] .pc-glass{fill:#dbe3ee;fill-opacity:.30;stroke:#8ea0b5;stroke-width:3;stroke-linejoin:round;}
body[data-topic="latent-heat"] .pc-water{fill:#60a5fa;fill-opacity:.45;stroke:none;}
body[data-topic="latent-heat"] .pc-water-line{fill:none;stroke:#3b82f6;stroke-width:2.5;stroke-linecap:round;}
body[data-topic="latent-heat"] .pc-ice{fill:#bae6fd;stroke:#2563eb;stroke-width:1.8;}
body[data-topic="latent-heat"] .pc-steam{fill:none;stroke:#93c5fd;stroke-width:3.5;stroke-linecap:round;animation-play-state:paused;}
body[data-topic="latent-heat"] .is-running .pc-steam{animation:pc-rise 2.6s ease-in-out infinite;animation-play-state:running;}
@keyframes pc-rise{0%{transform:translateY(6px);opacity:.25}50%{opacity:.85}100%{transform:translateY(-16px);opacity:0}}
body[data-topic="latent-heat"] .pc-thgl{fill:#e2e8f0;stroke:#64748b;stroke-width:2;}
body[data-topic="latent-heat"] .pc-thbulb{fill:#dc2626;stroke:#991b1b;stroke-width:1.5;}
body[data-topic="latent-heat"] .pc-thcol{fill:#dc2626;}

/* 加热曲线（温度—吸热量） */
body[data-topic="latent-heat"] .pc-axis{stroke:#7d8ea3;stroke-width:2.5;fill:none;}
body[data-topic="latent-heat"] .pc-curve{fill:none;stroke:#1d4ed8;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;}
body[data-topic="latent-heat"] .pc-vertex{fill:#1d4ed8;stroke:#ffffff;stroke-width:2;}
body[data-topic="latent-heat"] .pc-plateau{fill:none;stroke-width:9;stroke-linecap:round;animation-play-state:paused;}
body[data-topic="latent-heat"] .pc-plateau-melt{stroke:#d97706;}
body[data-topic="latent-heat"] .pc-plateau-boil{stroke:#dc2626;}
body[data-topic="latent-heat"] .is-running .pc-plateau{animation:pc-pulse 1.6s ease-in-out infinite;animation-play-state:running;}
@keyframes pc-pulse{0%,100%{opacity:.6}50%{opacity:1}}
body[data-topic="latent-heat"] .pc-guide{stroke:#c3ccd9;stroke-width:1.5;stroke-dasharray:6 6;fill:none;}