/* assets/css/physics/thermodynamics/pressure-and-temperature-relationship-for-gas-explained.css — 本页专属样式（en/zh 共用） */
/* 依赖 /assets/css/style.css（设计令牌 + .part/.tag 骨架 + 外壳态）。
   图形/动画样式自 svgs/done/physics-14-pressure-and-temperature-relationship-for-gas-explained.html 预览 <style> 并入驻此
   （页面禁止内联 <style>）。零件区分色与动画按 body[data-topic="gas-pressure-temperature"] 作用域限定；
   本页专属类统一 gpt-* 前缀，与其它页不冲突。动画由 #stage 的 .is-running 驱动。 */

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

/* 气体：材质专用偏蓝 */
body[data-topic="gas-pressure-temperature"] .part[data-id="part-gas"] .body2{fill:#dbeafe;stroke:#60a5fa}
body[data-topic="gas-pressure-temperature"] .part[data-id="part-gas"] .body3{fill:#93b4e0}

/* 加热源：材质专用饱和色（豁免） */
body[data-topic="gas-pressure-temperature"] .part[data-id="part-heat-source"] .body{fill:#e8c79a;stroke:#c2721a}

/* 热流箭头：虚线流动 */
.gpt-flow{stroke:#ea580c;stroke-width:3;fill:none;stroke-linecap:round;stroke-dasharray:9 7;
  animation:gpt-flow 1s linear infinite;animation-play-state:paused}
.is-running .gpt-flow{animation-play-state:running}
@keyframes gpt-flow{to{stroke-dashoffset:-32}}

/* 气体分子抖动 */
.gpt-mol{fill:#3b6fb5;animation:gpt-jiggle 1.1s ease-in-out infinite alternate;animation-play-state:paused}
.is-running .gpt-mol{animation-play-state:running}
@keyframes gpt-jiggle{from{transform:translate(0,0)}to{transform:translate(6px,-6px)}}

/* 压力表指针上扬 */
.gpt-needle{transform-box:view-box;transform-origin:242px 108px;
  animation:gpt-needle 8s ease-in-out infinite;animation-play-state:paused}
.is-running .gpt-needle{animation-play-state:running}
@keyframes gpt-needle{0%{transform:rotate(-48deg)}50%{transform:rotate(48deg)}100%{transform:rotate(-48deg)}}

/* 温度计液柱上升（绕底部缩放） */
.gpt-mercury{transform-box:view-box;transform-origin:415px 494px;
  animation:gpt-mercury 8s ease-in-out infinite;animation-play-state:paused}
.is-running .gpt-mercury{animation-play-state:running}
@keyframes gpt-mercury{0%{transform:scaleY(.40)}50%{transform:scaleY(1)}100%{transform:scaleY(.40)}}

/* 容器内热着色涌动 */
.gpt-heat-tint{animation:gpt-heattint 8s ease-in-out infinite;animation-play-state:paused;pointer-events:none}
.is-running .gpt-heat-tint{animation-play-state:running}
@keyframes gpt-heattint{0%{opacity:.12}50%{opacity:.5}100%{opacity:.12}}

/* 火焰跳动 */
.gpt-flame{transform-box:view-box;transform-origin:center bottom;
  animation:gpt-flicker .9s ease-in-out infinite alternate;animation-play-state:paused}
.is-running .gpt-flame{animation-play-state:running}
@keyframes gpt-flicker{from{opacity:.75;transform:scaleY(.9)}to{opacity:1;transform:scaleY(1.08)}}

/* P–T 直线上的运动点 */
.gpt-dot{offset-path:path("M672 583 L1088 212");offset-rotate:0deg;
  animation:gpt-run 8s ease-in-out infinite;animation-play-state:paused}
.is-running .gpt-dot{animation-play-state:running}
@keyframes gpt-run{from{offset-distance:0%}to{offset-distance:100%}}

/* P–T 直线（P ∝ T） */
.gpt-line{stroke:#1d4ed8;stroke-width:3.6;fill:none;stroke-linecap:round}