.teeth { fill: none; stroke: #9eb1b6; stroke-width: 10; stroke-dasharray: 4 7; }
.tilt { transform: skewY(3deg); transform-origin: center; }
.mass { fill: #ff784f; stroke: #ffd4a7; stroke-width: 2; filter: url(#glow); }
.mini { fill: #8fa4a8; font-size: 10px; }
.phase-ring, .sway-path, .bend-line, .moment, .modulation, .axis-ref, .axis-tilt,
.housing-ref, .slip-arrow, .relative-arrow { fill: none; stroke: #ffd84d; stroke-width: 2.5; }
.phase-ring, .orbit, .sway-path { stroke-dasharray: 7 6; }
.moment { stroke: #ff9561; stroke-width: 4; }
.delayed { animation-delay: -.65s; }
.vertical-sway { animation: vertical-sway 1.25s ease-in-out infinite alternate; transform-origin: 300px 265px; }
.overhung-flex .bend-line { animation: flex-line .7s ease-in-out infinite alternate; transform-origin: 210px 166px; }
.hf-rings circle, .resonance-rings circle { fill: none; stroke: #67dbff; stroke-width: 2; transform-origin: center; animation: wave-ring 1.4s ease-out infinite; }
.hf-rings circle:nth-child(2), .resonance-rings circle:nth-child(2) { animation-delay: -.45s; }
.hf-rings circle:nth-child(3), .resonance-rings circle:nth-child(3) { animation-delay: -.9s; }
.micro-pit { fill: #ff784f; }
.spall-small, .fixed-spall, .moving-spall { fill: none; stroke: #ff784f; stroke-width: 7; stroke-linecap: round; }
.outer-defect { stroke-dasharray: 540 50; }
.inner-defect { stroke-dasharray: 250 35; }
.modulation { stroke: #67dbff; }
.slip-roll { animation-duration: 3.1s; }
.rapid { animation: rapid-impact .32s steps(2) infinite; }
.severe-race { stroke: #8b5751; stroke-dasharray: 24 7; }
.severe-jolt { animation: severe-jolt .18s steps(2) infinite; }
.inner-tilt { transform: skewY(8deg); }
.cock-inner { transform: rotate(-8deg); transform-origin: 300px 166px; }
.outer-rock { animation: outer-rock .9s ease-in-out infinite alternate; transform-origin: 300px 166px; }
.cock-outer { stroke-dasharray: 430 45; }
.flute-mark { stroke: #67dbff; stroke-width: 6; }
.spark { fill: none; stroke: #73edff; stroke-width: 4; }
.edm-ball { filter: drop-shadow(0 0 5px #67dbff); }
.cage-slow { animation-duration: 4.8s; }
.skid-ball { animation: ball-skid .55s ease-in-out infinite alternate; }
.loose-inner { stroke-dasharray: 13 7; }
.race-slip { animation: race-slip 1.7s cubic-bezier(.7,0,.3,1) infinite; }
.index-mark { stroke: #ff784f; stroke-width: 5; }
.outer-creep > .outer { animation: outer-creep 4.5s linear infinite; transform-origin: 300px 166px; }
.loose-outer { stroke-dasharray: 32 6; }
.outer-creep .housing { fill: none; stroke: #536a72; stroke-width: 4; }
@keyframes vertical-sway { to { transform: rotate(2.2deg); } }
@keyframes flex-line { to { transform: rotate(-3deg); } }
@keyframes wave-ring { from { opacity: 1; transform: scale(.2); } to { opacity: 0; transform: scale(1.25); } }
@keyframes rapid-impact { 50% { opacity: .15; } }
@keyframes severe-jolt { to { transform: translate(3px,-2px) rotate(.4deg); } }
@keyframes outer-rock { to { transform: rotate(3deg); } }
@keyframes ball-skid { to { transform: translateX(12px); } }
@keyframes race-slip { 0%,30% { transform: rotate(0); } 55%,80% { transform: rotate(38deg); } 100% { transform: rotate(72deg); } }
@keyframes outer-creep { to { transform: rotate(360deg); } }
.motor-shell { fill: url(#steel); stroke: #78919a; stroke-width: 4; }
.cooling-fin { fill: none; stroke: #718890; stroke-width: 7; stroke-linecap: round; }
.motor-foot { fill: #253a41; stroke: #83999f; stroke-width: 3; }
.stator-core { fill: none; stroke: #536b73; stroke-width: 27; }
.airgap { fill: #061014; stroke: #9fb2b7; stroke-width: 2; }
.stator-tooth { stroke: #a4b6ba; stroke-width: 9; }
.coil { fill: none; stroke-width: 7; stroke-linecap: round; }
.coil-0 { stroke: #ff7b62; }.coil-1 { stroke: #ffd251; }.coil-2 { stroke: #62d9f7; }
.motor-shaft { fill: none; stroke: #c2ced0; stroke-width: 11; stroke-linecap: round; }
.rotor-core { fill: url(#steel); stroke: #9db0b5; stroke-width: 3; }
.rotor-bar { fill: #e7b34c; stroke: #ffe4a0; stroke-width: 1.5; }
.armature-slot { stroke: #e7b34c; stroke-width: 7; stroke-linecap: round; }
.commutator { fill: none; stroke: #d98d42; stroke-width: 8; stroke-dasharray: 8 3; }
.brush { stroke: #d9e2e1; stroke-width: 8; stroke-linecap: round; }
.sync-pole { fill: #d88b56; stroke: #ffd0a2; stroke-width: 2; }
.broken-bar { fill: #111b1f; stroke: #ff5c45; stroke-dasharray: 2 2; }
.loose-bar { animation: loose-bar .25s ease-in-out infinite alternate; transform-origin: center; fill: #ff784f; }
.motor-label { fill: #789096; font: 10px ui-monospace,monospace; letter-spacing: 1px; }
.motor-note { fill: #a9b9bb; font-size: 10px; }
.airgap-arrow,.gap-measure,.bar-pass,.eccentric-orbit,.distort,.thermal,.loose-motion,
.eddy-loop,.field-axis,.feedback { fill: none; stroke: #ffd84d; stroke-width: 2.5; }
.eccentric-orbit { stroke-dasharray: 5 5; }.gap-measure { stroke: #ff784f; stroke-width: 5; }
.sideband,.scr-wave,.phase-a,.phase-b,.phase-c { fill: none; stroke: #67dbff; stroke-width: 3; }
.soft-foot { fill: #ff784f; stroke: #ffc49b; }.gap-flash { stroke: #ffd84d; stroke-width: 5; }
.stator-side { fill: #21353c; stroke: #84999f; stroke-width: 10; }
.bowed-shaft { fill: none; stroke: #c2ced0; stroke-width: 11; stroke-linecap: round; animation: bowed-shaft .8s ease-in-out infinite alternate; }
.rotor-side { fill: url(#steel); stroke: #9db0b5; stroke-width: 3; }
.thermal { stroke: #ff784f; stroke-width: 6; }
.break-flash,.spark { fill: none; stroke: #67e7ff; stroke-width: 4; }
.rotor-fit { fill: none; stroke: #ff784f; stroke-width: 4; stroke-dasharray: 12 6; }
.winding-loop { fill: none; stroke: #ff784f; stroke-width: 6; animation: winding-flap .28s ease-in-out infinite alternate; }
.lamination-hot { fill: #ff5c45; filter: url(#glow); }.eddy-loop { stroke: #ffcc58; }
.cable,.ground-wire { fill: none; stroke: #7c9298; stroke-width: 8; }
.connector { fill: #d39445; stroke: #ffe0a0; }.connector-jump { animation: connector-jump .42s ease-in-out infinite alternate; }
.sync-coils path { fill: none; stroke: #ff784f; stroke-width: 8; }.field-axis { stroke: #67dbff; }
.ground-wire { stroke: #77d9a9; stroke-width: 4; }
.missing-phase { opacity: .16; stroke-dasharray: 5 5; }
.control-card { fill: #173f32; stroke: #68c79d; stroke-width: 2; }.card-trace { fill: none; stroke: #d7ff57; stroke-width: 2; }
.speed-dial { fill: #0a171b; stroke: #789096; stroke-width: 5; }.speed-needle { stroke: #ff784f; stroke-width: 5; transform-origin: 405px 158px; }
.hunting { animation: hunting .65s ease-in-out infinite alternate; }.feedback { stroke-dasharray: 8 6; animation: motion-dash .8s linear infinite; }
@keyframes loose-bar { to { transform: translate(5px,-3px); } }
@keyframes bowed-shaft { to { d: path("M62 168q245 54 496 0"); } }
@keyframes winding-flap { to { transform: translateY(6px); } }
@keyframes connector-jump { to { transform: translateX(8px); } }
@keyframes hunting { from { transform: rotate(-24deg); } to { transform: rotate(28deg); } }
.radial-force,.axial-force,.gap-arrows,.runout,.amplitude,.pressure-drop,.clearance-arrow,
.alignment-line,.gear-axis,.sideband-arrows,.long-cycle { fill:none;stroke:#ffd84d;stroke-width:3; }
.coupling-face { stroke:#b2c2c5;stroke-width:10; }.coupling-ring { fill:none;stroke:#8fa4aa;stroke-width:12; }
.worn-teeth,.lock-mark,.crack,.belt-crack,.blade-defect,.broken-tooth,.backlash-gap { fill:none;stroke:#ff784f;stroke-width:6; }
.debris { fill:#ff9d66; }.three-jaw path { fill:#d68d49;stroke:#ffd092; }.jaw-spider { fill:#ffb45c; }
.s-bend,.bent-shaft { fill:none;stroke:#c2ced0;stroke-width:11;stroke-linecap:round; }.animated-bow { animation:bowed-shaft .8s ease-in-out infinite alternate; }
.clearance-ring,.clearance-limit { fill:none;stroke:#ffd84d;stroke-width:2;stroke-dasharray:8 7; }
.bolt { fill:#a5b5b9; }.loose-bolt { animation:loose-bar .25s infinite alternate;fill:#ff784f; }.base-gap { stroke:#ff784f;stroke-width:5; }
.structure-rock { animation:outer-rock .55s ease-in-out infinite alternate;transform-origin:300px 266px; }
.cracked { fill:#243940;stroke:#738990;stroke-width:3; }.pedestal-jump { animation:motion-shake .2s infinite alternate; }
.friction,.rub-contact,.collapse,.wear-zone,.mesh-stress,.ringing { fill:none;stroke:#ff784f;stroke-width:5; }
.journal-shell { fill:none;stroke:#7e949a;stroke-width:20; }.whirl-orbit { animation:outer-creep 3.2s linear infinite;transform-origin:300px 160px; }
.temperature { stroke:#ff784f;stroke-width:7; }.vortex { fill:none;stroke:#67dbff;stroke-width:3;stroke-dasharray:7 5;animation:motion-dash 1s linear infinite; }
.worn-belt { stroke-dasharray:18 9 3 9; }.resonance-belt { animation:motion-flap .4s ease-in-out infinite alternate;transform-origin:center; }
.true-center { fill:#67dbff; }.pitch-center { fill:#ff784f; }.wear-zone { fill:#ff784f55; }
.backlash-gap { stroke-width:3; }.marked-tooth { fill:#ff784f; }.long-cycle { stroke-dasharray:8 7; }
