/* Local coordinate systems keep the moving parts aligned at every size. */
.axp-scene { overflow:visible; isolation:isolate; }
.axp-pump-beam { transform-origin:0 0; animation:axp-beam 3.6s ease-in-out infinite; animation-delay:var(--axp-delay,0s); }
.axp-pump-rod { animation:axp-rod 3.6s ease-in-out infinite; animation-delay:var(--axp-delay,0s); }
.axp-crank { transform-origin:0 0; animation:axp-spin 3.6s linear infinite; animation-delay:var(--axp-delay,0s); }
.axp-linkage { animation:axp-link 3.6s ease-in-out infinite; animation-delay:var(--axp-delay,0s); }
.axp-fan { transform-origin:0 0; animation:axp-spin 2s linear infinite; }
.axp-flow { stroke-dasharray:8 19; animation:axp-flow 1.8s linear infinite; }
.axp-drill { animation:axp-drill 3s ease-in-out infinite; }
.axp-hoist { animation:axp-hoist 6s ease-in-out infinite; }
.axp-flame { transform-origin:0 0; animation:axp-flame 1.7s ease-in-out infinite alternate; }
.axp-steam { animation:axp-steam 4.8s ease-out infinite; }
.axp-steam-late { animation-delay:-2.4s; }
.axp-liquid { animation:axp-liquid 3s ease-in-out infinite; }
.axp-status { animation:axp-status 4s ease-in-out infinite; }
.axp-beacon { animation:axp-status 3s ease-in-out infinite; }
.axp-ocean { animation:axp-ocean 6s ease-in-out infinite; }
.axp-precision .axp-pump-beam,.axp-precision .axp-pump-rod,.axp-precision .axp-crank,.axp-precision .axp-linkage { animation:none!important; }
.ax-plant-card .ax-rig-stage { height:210px; margin:0 0 10px; border:0; border-radius:12px; background:radial-gradient(ellipse at 50% 75%,rgba(125,164,190,.09),transparent 70%); }
.ax-hero-showcase .ax-rig-stage { min-height:155px; }
.ax-rig-custom .ax-custom-plant-img { object-fit:contain; max-height:100%; }
.ax-rig-fallback { width:100%; height:100%; }
@keyframes axp-beam { 0%,100% { transform:rotate(-9deg); } 50% { transform:rotate(9deg); } }
@keyframes axp-rod { 0%,100% { transform:translate(.7px,11.9px); } 50% { transform:translate(.7px,-11.9px); } }
@keyframes axp-link { 0%,100% { transform:translateY(-6px); } 50% { transform:translateY(6px); } }
@keyframes axp-spin { to { transform:rotate(360deg); } }
@keyframes axp-flow { to { stroke-dashoffset:-54; } }
@keyframes axp-drill { 0%,100% { transform:translateY(-4px); } 50% { transform:translateY(8px); } }
@keyframes axp-hoist { 0%,100% { transform:translateY(-3px); } 50% { transform:translateY(24px); } }
@keyframes axp-flame { 0% { transform:scale(.85,.95) rotate(-4deg); opacity:.8; } 100% { transform:scale(1.05,1.12) rotate(3deg); opacity:1; } }
@keyframes axp-steam { 0% { transform:translate(0,5px) scale(.9); opacity:0; } 25% { opacity:.85; } 100% { transform:translate(16px,-35px) scale(1.2); opacity:0; } }
@keyframes axp-liquid { 0%,100% { transform:translateY(1px); opacity:.6; } 50% { transform:translateY(-1px); opacity:1; } }
@keyframes axp-status { 0%,100% { opacity:.55; } 50% { opacity:1; } }
@keyframes axp-ocean { 0%,100% { transform:translateX(-4px); } 50% { transform:translateX(4px); } }
@media(max-width:700px) { .ax-plant-card .ax-rig-stage { height:215px; } }
@media(prefers-reduced-motion:reduce) { .axp-scene * { animation:none!important; } }
