/* /assets/css/machines/industrial-mech/how-a-screw-jack-internal-thread-load-path-works-cutaway.css — 本页专属样式（en/zh 共用） */
/* ============ 零件本体/区分色 ============ */
.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:#cfe3fb;stroke:var(--accent)}
.part.is-active .body2{fill:#e3eefc;stroke:#60a5fa}
.part.is-active .body3{fill:var(--accent)}
.part.is-active .accent{stroke:var(--accent-2)}
.part.is-active{filter:drop-shadow(0 0 10px rgba(37,99,235,.35))}

/* ============ 载荷路径 / 旋转输入 ============ */
.force{fill:none;stroke:#1e40af;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;opacity:.85}
.turn{fill:none;stroke:#047857;stroke-width:3;stroke-linecap:round;opacity:.85}
.turn-dash{fill:none;stroke:#047857;stroke-width:3;stroke-linecap:round;stroke-dasharray:7 9;opacity:0}
.is-running .turn-dash{opacity:.85;animation:flow 1.1s linear infinite}
@keyframes flow{to{stroke-dashoffset:-32}}
.rotor{transform-box:view-box;animation:spin 2.6s linear infinite;animation-play-state:paused}
.is-running .rotor{animation-play-state:running}
@keyframes spin{to{transform:rotate(360deg)}}

/* ============ 螺旋千斤顶螺纹载荷路径 · Screw jack thread load path ============ */
body[data-topic="screw-jack"] .part[data-id="part-load-platform"]:not(.is-active) .body{fill:#c8c1e5}
body[data-topic="screw-jack"] .part[data-id="part-screw"]:not(.is-active) .body{fill:#b7c9dd}
body[data-topic="screw-jack"] .part[data-id="part-nut"]:not(.is-active) .body{fill:#c6cfda}
body[data-topic="screw-jack"] .part[data-id="part-thrust-bearing"]:not(.is-active) .body{fill:#e8c79a}
body[data-topic="screw-jack"] .part[data-id="part-bevel-gear"]:not(.is-active) .body{fill:#a9bccf}
body[data-topic="screw-jack"] .part[data-id="part-handle"]:not(.is-active) .body{fill:#bcd9f2}