body {
  -webkit-animation: chameleon 19s infinite;
          animation: chameleon 19s infinite;
}

.outline {
  position: absolute;
  left: 50%;
  top: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  display: flex;
  justify-content: center;
  flex-direction: row;
  flex-wrap: wrap;
}

.waves {
  position: absolute;
  left: 50%;
  top: 50%;
  -webkit-transform: translate(-50%, -50%);
          transform: translate(-50%, -50%);
  background: rgba(255, 255, 255, 0.4);
  width: 25px;
  height: 25px;
  border-radius: 50%;
}
.waves:before, .waves:after {
  content: "";
  position: absolute;
  background: white;
  margin-left: -12px;
  margin-top: -12px;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  -webkit-animation: wave 3s infinite linear;
          animation: wave 3s infinite linear;
}
.waves:after {
  opacity: 0;
  -webkit-animation: wave 3s 1.5s infinite linear;
          animation: wave 3s 1.5s infinite linear;
}

@-webkit-keyframes wave {
  0% {
    -webkit-transform: scale(0);
            transform: scale(0);
    opacity: 1;
  }
  100% {
    -webkit-transform: scale(3.5);
            transform: scale(3.5);
    opacity: 0;
  }
}

@keyframes wave {
  0% {
    -webkit-transform: scale(0);
            transform: scale(0);
    opacity: 1;
  }
  100% {
    -webkit-transform: scale(3.5);
            transform: scale(3.5);
    opacity: 0;
  }
}
