/* OC6 的文字保持静止；只有扳手和螺母参与这个循环。 */
.oc-tools {
  position: absolute;
  inset: 0;
  overflow: hidden;
  pointer-events: none;
  --oc-tools-duration: 2000ms;
}
.oc-wrench-lift,
.oc-wrench-turn,
.oc-nut-turn {
  position: absolute;
  inset: 0;
}
.oc-tools img {
  position: absolute;
  left: 0;
  top: calc(-344 * var(--u));
  display: block;
  width: calc(2559 * var(--u));
  height: calc(1434 * var(--u));
  max-width: none;
  user-select: none;
}
.oc-wrench-turn {
  /* 原始画布中的钳口中心为 (1322, 696)，横带从 y=344 开始。 */
  transform-origin: calc(1322 * var(--u)) calc(352 * var(--u));
}
.oc-nut-turn {
  transform-origin: calc(1289.5 * var(--u)) calc(293 * var(--u));
}
.oc-tools.is-tools-running .oc-wrench-lift {
  animation: oc-wrench-lift var(--oc-tools-duration) ease-in-out infinite;
}
.oc-tools.is-tools-running .oc-wrench-turn {
  animation: oc-wrench-turn var(--oc-tools-duration) ease-in-out infinite;
}
.oc-tools.is-tools-running .oc-nut-turn {
  animation: oc-nut-turn calc(6 * var(--oc-tools-duration)) ease-in-out infinite;
}
@keyframes oc-wrench-lift {
  0%, 10% { transform: translate(0, 0); }
  /* 先让钳口中心与螺母中心重合，再拧动，两者接触时不会滑动。 */
  24%, 49% { transform: translate(calc(-32.5 * var(--u)), calc(-59 * var(--u))); }
  /* 顺着拧动后的扳手方向向下退出钳口，再回到原位。 */
  64%, 72% { transform: translate(calc(-67.345499 * var(--u)), calc(-1.354174 * var(--u))); }
  90%, 100% { transform: translate(0, 0); }
}
@keyframes oc-wrench-turn {
  0%, 24% { transform: rotate(0deg); }
  49%, 72% { transform: rotate(60deg); }
  90%, 100% { transform: rotate(0deg); }
}
@keyframes oc-nut-turn {
  /* 扳手退出后螺母保留已经拧过的角度，六次循环正好回到 360°。 */
  0%, 4% { transform: rotate(0deg); }
  8.166667%, 20.666667% { transform: rotate(60deg); }
  24.833333%, 37.333333% { transform: rotate(120deg); }
  41.5%, 54% { transform: rotate(180deg); }
  58.166667%, 70.666667% { transform: rotate(240deg); }
  74.833333%, 87.333333% { transform: rotate(300deg); }
  91.5%, 100% { transform: rotate(360deg); }
}
@media (prefers-reduced-motion: reduce) {
  .oc-tools.is-tools-running .oc-wrench-lift,
  .oc-tools.is-tools-running .oc-wrench-turn,
  .oc-tools.is-tools-running .oc-nut-turn {
    animation: none;
    transform: none;
  }
}
