@keyframes spin {
  100% {
    transform: rotate(360deg);
  }
}

@keyframes border-grow {
  0% {
    width: 0;
  }

  100% {
    width: 100%;
  }
}

@keyframes swap-lang_box-r {
  0% {
    right: 2.5em;
  }

  100% {
    right: 0;
  }
}

@keyframes swap-lang_box-l {
  0% {
    left: 2.5em;
  }

  100% {
    left: 0;
  }
}

.shake {
  display: inherit;
  transform-origin: center center;
  animation-name: shake;
  animation-duration: 100ms;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
}

@keyframes shake {
  2% {
    transform: translate(-0.5px, 2.5px) rotate(-0.5deg);
  }

  4% {
    transform: translate(0.5px, -1.5px) rotate(-0.5deg);
  }

  6% {
    transform: translate(1.5px, -1.5px) rotate(1.5deg);
  }

  8% {
    transform: translate(0.5px, 2.5px) rotate(-0.5deg);
  }

  10% {
    transform: translate(-1.5px, 2.5px) rotate(1.5deg);
  }

  12% {
    transform: translate(2.5px, -0.5px) rotate(-0.5deg);
  }

  14% {
    transform: translate(2.5px, 2.5px) rotate(1.5deg);
  }

  16% {
    transform: translate(1.5px, 1.5px) rotate(0.5deg);
  }

  18% {
    transform: translate(0.5px, 2.5px) rotate(1.5deg);
  }

  20% {
    transform: translate(1.5px, -1.5px) rotate(-0.5deg);
  }

  22% {
    transform: translate(0.5px, 1.5px) rotate(1.5deg);
  }

  24% {
    transform: translate(-0.5px, 1.5px) rotate(0.5deg);
  }

  26% {
    transform: translate(-1.5px, -1.5px) rotate(0.5deg);
  }

  28% {
    transform: translate(1.5px, 2.5px) rotate(1.5deg);
  }

  30% {
    transform: translate(2.5px, -1.5px) rotate(1.5deg);
  }

  32% {
    transform: translate(1.5px, 1.5px) rotate(1.5deg);
  }

  34% {
    transform: translate(2.5px, 0.5px) rotate(-0.5deg);
  }

  36% {
    transform: translate(2.5px, -0.5px) rotate(-0.5deg);
  }

  38% {
    transform: translate(0.5px, 0.5px) rotate(0.5deg);
  }

  40% {
    transform: translate(1.5px, -1.5px) rotate(1.5deg);
  }

  42% {
    transform: translate(0.5px, -0.5px) rotate(0.5deg);
  }

  44% {
    transform: translate(-0.5px, -0.5px) rotate(-0.5deg);
  }

  46% {
    transform: translate(1.5px, 2.5px) rotate(-0.5deg);
  }

  48% {
    transform: translate(2.5px, 2.5px) rotate(1.5deg);
  }

  50% {
    transform: translate(0.5px, 2.5px) rotate(1.5deg);
  }

  52% {
    transform: translate(1.5px, -1.5px) rotate(1.5deg);
  }

  54% {
    transform: translate(0.5px, 0.5px) rotate(1.5deg);
  }

  56% {
    transform: translate(1.5px, 1.5px) rotate(0.5deg);
  }

  58% {
    transform: translate(0.5px, 0.5px) rotate(1.5deg);
  }

  60% {
    transform: translate(-0.5px, 0.5px) rotate(-0.5deg);
  }

  62% {
    transform: translate(2.5px, -1.5px) rotate(1.5deg);
  }

  64% {
    transform: translate(2.5px, -0.5px) rotate(0.5deg);
  }

  66% {
    transform: translate(0.5px, 0.5px) rotate(1.5deg);
  }

  68% {
    transform: translate(-1.5px, -0.5px) rotate(0.5deg);
  }

  70% {
    transform: translate(2.5px, 0.5px) rotate(-0.5deg);
  }

  72% {
    transform: translate(1.5px, 0.5px) rotate(1.5deg);
  }

  74% {
    transform: translate(0.5px, 0.5px) rotate(1.5deg);
  }

  76% {
    transform: translate(-1.5px, -0.5px) rotate(0.5deg);
  }

  78% {
    transform: translate(-1.5px, -1.5px) rotate(-0.5deg);
  }

  80% {
    transform: translate(-0.5px, -0.5px) rotate(0.5deg);
  }

  82% {
    transform: translate(-0.5px, 1.5px) rotate(1.5deg);
  }

  84% {
    transform: translate(-1.5px, 2.5px) rotate(-0.5deg);
  }

  86% {
    transform: translate(-1.5px, -0.5px) rotate(-0.5deg);
  }

  88% {
    transform: translate(2.5px, -0.5px) rotate(-0.5deg);
  }

  90% {
    transform: translate(2.5px, -1.5px) rotate(-0.5deg);
  }

  92% {
    transform: translate(2.5px, 0.5px) rotate(-0.5deg);
  }

  94% {
    transform: translate(0.5px, 1.5px) rotate(-0.5deg);
  }

  96% {
    transform: translate(1.5px, 2.5px) rotate(0.5deg);
  }

  98% {
    transform: translate(2.5px, -0.5px) rotate(1.5deg);
  }

  0%, 100% {
    transform: translate(0, 0) rotate(0);
  }
}

.shake-hard {
  display: inherit;
  transform-origin: center center;
  animation-name: shake-hard;
  animation-duration: 100ms;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
}

@keyframes shake-hard {
  2% {
    transform: translate(5px, 7px) rotate(0.5deg);
  }

  4% {
    transform: translate(5px, 9px) rotate(3.5deg);
  }

  6% {
    transform: translate(-2px, -5px) rotate(3.5deg);
  }

  8% {
    transform: translate(4px, 8px) rotate(-1.5deg);
  }

  10% {
    transform: translate(2px, 9px) rotate(-0.5deg);
  }

  12% {
    transform: translate(-5px, -4px) rotate(-2.5deg);
  }

  14% {
    transform: translate(-6px, -1px) rotate(3.5deg);
  }

  16% {
    transform: translate(-8px, 8px) rotate(2.5deg);
  }

  18% {
    transform: translate(4px, 5px) rotate(-0.5deg);
  }

  20% {
    transform: translate(3px, -3px) rotate(3.5deg);
  }

  22% {
    transform: translate(0px, -6px) rotate(-1.5deg);
  }

  24% {
    transform: translate(-6px, -6px) rotate(3.5deg);
  }

  26% {
    transform: translate(-8px, -6px) rotate(0.5deg);
  }

  28% {
    transform: translate(-3px, -6px) rotate(1.5deg);
  }

  30% {
    transform: translate(7px, 8px) rotate(-1.5deg);
  }

  32% {
    transform: translate(7px, 6px) rotate(2.5deg);
  }

  34% {
    transform: translate(-7px, -7px) rotate(-2.5deg);
  }

  36% {
    transform: translate(7px, 3px) rotate(-0.5deg);
  }

  38% {
    transform: translate(-6px, -1px) rotate(3.5deg);
  }

  40% {
    transform: translate(-3px, 4px) rotate(-0.5deg);
  }

  42% {
    transform: translate(-1px, 10px) rotate(3.5deg);
  }

  44% {
    transform: translate(9px, 3px) rotate(3.5deg);
  }

  46% {
    transform: translate(-3px, 8px) rotate(-2.5deg);
  }

  48% {
    transform: translate(-5px, 7px) rotate(3.5deg);
  }

  50% {
    transform: translate(-9px, -5px) rotate(0.5deg);
  }

  52% {
    transform: translate(2px, 4px) rotate(0.5deg);
  }

  54% {
    transform: translate(2px, -9px) rotate(-2.5deg);
  }

  56% {
    transform: translate(-2px, 9px) rotate(-1.5deg);
  }

  58% {
    transform: translate(0px, 4px) rotate(0.5deg);
  }

  60% {
    transform: translate(-6px, 10px) rotate(3.5deg);
  }

  62% {
    transform: translate(-1px, 3px) rotate(2.5deg);
  }

  64% {
    transform: translate(5px, -5px) rotate(0.5deg);
  }

  66% {
    transform: translate(5px, 3px) rotate(3.5deg);
  }

  68% {
    transform: translate(1px, -7px) rotate(-2.5deg);
  }

  70% {
    transform: translate(7px, 3px) rotate(0.5deg);
  }

  72% {
    transform: translate(-9px, -8px) rotate(-2.5deg);
  }

  74% {
    transform: translate(9px, 10px) rotate(-1.5deg);
  }

  76% {
    transform: translate(-1px, -7px) rotate(1.5deg);
  }

  78% {
    transform: translate(-7px, -4px) rotate(-1.5deg);
  }

  80% {
    transform: translate(8px, -3px) rotate(3.5deg);
  }

  82% {
    transform: translate(9px, 5px) rotate(0.5deg);
  }

  84% {
    transform: translate(-4px, -7px) rotate(1.5deg);
  }

  86% {
    transform: translate(-7px, 9px) rotate(2.5deg);
  }

  88% {
    transform: translate(0px, 10px) rotate(1.5deg);
  }

  90% {
    transform: translate(7px, 4px) rotate(-2.5deg);
  }

  92% {
    transform: translate(-9px, 10px) rotate(-1.5deg);
  }

  94% {
    transform: translate(4px, -8px) rotate(0.5deg);
  }

  96% {
    transform: translate(9px, 0px) rotate(1.5deg);
  }

  98% {
    transform: translate(8px, -3px) rotate(1.5deg);
  }

  0%, 100% {
    transform: translate(0, 0) rotate(0);
  }
}

.shake-vertical {
  display: inherit;
  transform-origin: center center;
  animation-name: shake-vertical;
  animation-duration: 100ms;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
}

@keyframes shake-vertical {
  2% {
    transform: translate(0, -3px) rotate(0);
  }

  4% {
    transform: translate(0, -9px) rotate(0);
  }

  6% {
    transform: translate(0, 1px) rotate(0);
  }

  8% {
    transform: translate(0, -5px) rotate(0);
  }

  10% {
    transform: translate(0, 1px) rotate(0);
  }

  12% {
    transform: translate(0, -1px) rotate(0);
  }

  14% {
    transform: translate(0, -6px) rotate(0);
  }

  16% {
    transform: translate(0, 0px) rotate(0);
  }

  18% {
    transform: translate(0, 0px) rotate(0);
  }

  20% {
    transform: translate(0, 2px) rotate(0);
  }

  22% {
    transform: translate(0, 10px) rotate(0);
  }

  24% {
    transform: translate(0, 5px) rotate(0);
  }

  26% {
    transform: translate(0, 3px) rotate(0);
  }

  28% {
    transform: translate(0, 3px) rotate(0);
  }

  30% {
    transform: translate(0, 5px) rotate(0);
  }

  32% {
    transform: translate(0, 5px) rotate(0);
  }

  34% {
    transform: translate(0, -6px) rotate(0);
  }

  36% {
    transform: translate(0, 6px) rotate(0);
  }

  38% {
    transform: translate(0, -9px) rotate(0);
  }

  40% {
    transform: translate(0, 6px) rotate(0);
  }

  42% {
    transform: translate(0, 3px) rotate(0);
  }

  44% {
    transform: translate(0, 3px) rotate(0);
  }

  46% {
    transform: translate(0, 6px) rotate(0);
  }

  48% {
    transform: translate(0, -9px) rotate(0);
  }

  50% {
    transform: translate(0, 7px) rotate(0);
  }

  52% {
    transform: translate(0, 9px) rotate(0);
  }

  54% {
    transform: translate(0, 3px) rotate(0);
  }

  56% {
    transform: translate(0, -1px) rotate(0);
  }

  58% {
    transform: translate(0, -2px) rotate(0);
  }

  60% {
    transform: translate(0, -6px) rotate(0);
  }

  62% {
    transform: translate(0, -5px) rotate(0);
  }

  64% {
    transform: translate(0, 4px) rotate(0);
  }

  66% {
    transform: translate(0, -4px) rotate(0);
  }

  68% {
    transform: translate(0, -2px) rotate(0);
  }

  70% {
    transform: translate(0, -8px) rotate(0);
  }

  72% {
    transform: translate(0, -6px) rotate(0);
  }

  74% {
    transform: translate(0, -4px) rotate(0);
  }

  76% {
    transform: translate(0, 0px) rotate(0);
  }

  78% {
    transform: translate(0, 7px) rotate(0);
  }

  80% {
    transform: translate(0, -6px) rotate(0);
  }

  82% {
    transform: translate(0, 10px) rotate(0);
  }

  84% {
    transform: translate(0, -4px) rotate(0);
  }

  86% {
    transform: translate(0, 10px) rotate(0);
  }

  88% {
    transform: translate(0, -1px) rotate(0);
  }

  90% {
    transform: translate(0, 1px) rotate(0);
  }

  92% {
    transform: translate(0, 9px) rotate(0);
  }

  94% {
    transform: translate(0, -4px) rotate(0);
  }

  96% {
    transform: translate(0, -8px) rotate(0);
  }

  98% {
    transform: translate(0, 4px) rotate(0);
  }

  0%, 100% {
    transform: translate(0, 0) rotate(0);
  }
}
