/* Visible schematic activity; follows shared in-view activation and reduced-motion preferences. */
.mechanism-motion .sensor-wave {
  animation-name: agrindis-sensor-transmit;
  animation-duration: 2.4s;
  transform-box: view-box;
  transform-origin: 122px 118.5px;
  stroke-width: 2;
}
.mechanism-motion .sensor-wave-near { animation-delay: -.8s; }
.mechanism-motion .sensor-wave-middle { animation-delay: -.45s; }
.mechanism-motion .sensor-wave-far { animation-delay: -.1s; }
@keyframes agrindis-sensor-transmit {
  0% { opacity: .15; transform: translateX(-4px) scale(.88); }
  28% { opacity: 1; }
  72% { opacity: .8; }
  100% { opacity: .08; transform: translateX(10px) scale(1.12); }
}
.mechanism-motion .sensor-pulse {
  animation-name: agrindis-sensor-pulse;
  animation-duration: 2.8s;
  animation-timing-function: ease-out;
  transform-box: view-box;
  transform-origin: 122px 118.5px;
}
.mechanism-motion .sensor-pulse-second { animation-delay: -1.4s; }
@keyframes agrindis-sensor-pulse {
  0% { opacity: .8; transform: scale(.9); }
  80%, 100% { opacity: 0; transform: scale(2.8); }
}
.mechanism-motion .sensor-core {
  animation-name: agrindis-sensor-core;
  animation-duration: 2.8s;
  transform-box: view-box;
  transform-origin: 122px 118.5px;
}
@keyframes agrindis-sensor-core {
  0%, 100% { transform: scale(1); }
  35% { transform: scale(1.15); fill: #edac67; }
}

.mechanism-motion .gateway-route {
  animation-name: agrindis-route;
  animation-duration: 1.8s;
  animation-timing-function: linear;
}
@keyframes agrindis-route { to { stroke-dashoffset: -21; } }
.mechanism-motion .gateway-packet { animation-duration: 2.5s; }
.mechanism-motion .gateway-packet-middle { animation-delay: -.8s; }
.mechanism-motion .gateway-packet-bottom { animation-delay: -1.6s; }
.mechanism-motion .gateway-bar {
  animation-name: agrindis-bar;
  animation-duration: 2.4s;
  transform-box: view-box;
  transform-origin: 134px 94px;
}
.mechanism-motion .gateway-bar-two { animation-delay: -.6s; }
.mechanism-motion .gateway-bar-three { animation-delay: -1.2s; }
.mechanism-motion .gateway-bar-four { animation-delay: -1.8s; }
@keyframes agrindis-bar {
  0%, 100% { transform: scaleY(.3); }
  45% { transform: scaleY(1); }
  75% { transform: scaleY(.65); }
}
.mechanism-motion .gateway-wave {
  animation-name: agrindis-gateway-wave;
  animation-duration: 2.4s;
  stroke-width: 1.8;
}
.mechanism-motion .gateway-wave-middle { animation-delay: -.4s; }
.mechanism-motion .gateway-wave-far { animation-delay: -.8s; }
@keyframes agrindis-gateway-wave {
  0%, 100% { opacity: .15; transform: translateX(-4px); }
  55% { opacity: 1; transform: translateX(1px); }
}
.mechanism-motion .gateway-air {
  animation-name: agrindis-gateway-air;
  animation-duration: 2.5s;
  stroke: #d99557;
  stroke-width: 2;
}
.mechanism-motion .gateway-air-far { animation-delay: -.6s; }
@keyframes agrindis-gateway-air {
  0% { opacity: .15; transform: translate(-2px, 2px); }
  45% { opacity: 1; }
  100% { opacity: .15; transform: translate(5px, -4px); }
}
.mechanism-motion .gateway-led {
  animation-name: agrindis-gateway-led;
  animation-duration: 2.5s;
}
@keyframes agrindis-gateway-led {
  0%, 100% { opacity: .35; }
  35%, 60% { opacity: 1; }
}

.mechanism-motion .screen-scan {
  animation-name: agrindis-screen-scan;
  animation-duration: 3.2s;
  animation-timing-function: linear;
}
@keyframes agrindis-screen-scan {
  0% { transform: translateX(0); opacity: 0; }
  8% { opacity: 1; }
  88% { opacity: 1; }
  100% { transform: translateX(80px); opacity: 0; }
}
.mechanism-motion .screen-trace {
  animation-duration: 3.2s;
  stroke-width: 3;
  stroke-dasharray: 30 100;
}
.mechanism-motion .screen-notice {
  animation-name: agrindis-notice-active;
  animation-duration: 3.2s;
  transform-box: view-box;
  transform-origin: 175px 76px;
}
@keyframes agrindis-notice-active {
  0%, 100% { transform: translateY(0) scale(1); opacity: .8; }
  35%, 60% { transform: translateY(-3px) scale(1.12); opacity: 1; }
}
.mechanism-motion .screen-alert-ring {
  animation-name: agrindis-alert-ring;
  animation-duration: 3.2s;
  transform-box: view-box;
  transform-origin: 175px 76px;
}
@keyframes agrindis-alert-ring {
  0%, 18% { transform: scale(.75); opacity: 0; }
  38% { opacity: .8; }
  80%, 100% { transform: scale(1.45); opacity: 0; }
}
.mechanism-motion .screen-peak {
  animation-name: agrindis-peak;
  animation-duration: 3.2s;
  transform-box: view-box;
  transform-origin: 111px 64px;
}
@keyframes agrindis-peak {
  0%, 100% { transform: scale(1); }
  40%, 60% { transform: scale(1.4); }
}

.mechanism-motion .inspection-lens {
  animation-name: agrindis-inspect-active;
  animation-duration: 3.8s;
  transform-box: view-box;
  transform-origin: 130px 88px;
}
@keyframes agrindis-inspect-active {
  0%, 100% { transform: rotate(-16deg); }
  50% { transform: rotate(16deg); }
}
.mechanism-motion .inspection-focus {
  animation-name: agrindis-inspection-focus;
  animation-duration: 3.8s;
  transform-box: view-box;
  transform-origin: 145px 72px;
}
@keyframes agrindis-inspection-focus {
  0%, 100% { transform: scale(.6); opacity: .2; }
  45%, 62% { transform: scale(1.1); opacity: 1; }
}
.mechanism-motion .inspection-check { animation-duration: 3.8s; }
.mechanism-motion .inspection-check-second { animation-delay: .45s; }
.mechanism-motion .inspection-complete {
  animation-name: agrindis-inspection-complete;
  animation-duration: 3.8s;
  transform-box: view-box;
  transform-origin: 48px 85px;
}
@keyframes agrindis-inspection-complete {
  0%, 25% { opacity: 0; transform: translateY(5px) scale(.8); }
  45%, 82% { opacity: 1; transform: translateY(0) scale(1); }
  100% { opacity: 0; transform: translateY(-3px) scale(1); }
}
.mechanism-motion .inspection-complete-tick {
  animation-name: agrindis-inspection-tick;
  animation-duration: 3.8s;
  stroke-dasharray: 1;
}
@keyframes agrindis-inspection-tick {
  0%, 30% { stroke-dashoffset: 1; }
  50%, 100% { stroke-dashoffset: 0; }
}

@media (prefers-reduced-motion: reduce) {
  .mechanism-motion .motion-part { animation: none !important; }
  .mechanism-motion .motion-added { display: none; }
}
