.loading-wave-dots {
  @size: 8px;
  @wave: -6px;
  @delay: .14s;
  position: relative;
  @{deep} .wave-item {
    position: absolute;
    top: 50%;
    left: 50%;
    display: inline-block;
    margin-top: -@size/2;
    width: @size;
    height: @size;
    border-radius: 50%;
    animation: loading-wave-dots linear 2.8s infinite;
    &:first-child {
      margin-left: -@size/2 + -@size * 4;
    }
    &:nth-child(2) {
      margin-left: -@size/2 + -@size * 2;
      animation-delay: @delay;
    }
    &:nth-child(3) {
      margin-left: -@size/2;
      animation-delay: @delay * 2;
    }
    &:nth-child(4) {
      margin-left: -@size/2 + @size * 2;
      animation-delay: @delay * 3;
    }
    &:last-child {
      margin-left: -@size/2 + @size * 4;
      animation-delay: @delay * 4;
    }
  }
  @keyframes loading-wave-dots {
    0% {
      transform: translateY(0);
      background: #bbb;
    }
    10% {
      transform: translateY(@wave);
      background: #999;
    }
    20% {
      transform: translateY(0);
      background: #bbb;
    }
    100% {
      transform: translateY(0);
      background: #bbb;
    }
  }
}
