body {
  background: #e8e5ea;
}

.wrap {
  position: absolute;
  width: 100px;
  height: 200px;
  left: 50%;
  margin-left: -50px;
  top: 50%;
  margin-top: -100px;
}

.drop {
  width: 40px;
  height: 40px;
  left: 50%;
  margin-left: -20px;
  position: absolute;
  -webkit-animation: drop 2s cubic-bezier(0.55, 0.085, 0.68, 0.53) 0s infinite;
          animation: drop 2s cubic-bezier(0.55, 0.085, 0.68, 0.53) 0s infinite;
}

.drop circle {
  fill: #2a96ed;
}

.drop-outer {
  position: absolute;
  box-sizing: border-box;
  /* border: 1px solid #333; */
  width: 100px;
  height: 200px;
  overflow: hidden;
  border-bottom-right-radius: 50px;
  border-bottom-left-radius: 50px;
  -webkit-backface-visibility: hidden;
          backface-visibility: hidden;
  -webkit-transform: translate3d(0, 0, 0);
          transform: translate3d(0, 0, 0);
  background-clip: padding-box;
  -webkit-mask-image: -webkit-radial-gradient(circle, white 100%, black 100%);
}

.ripple {
  position: absolute;
  box-sizing: border-box;
  width: 240px;
  height: 240px;
  top: 68px;
  left: -70px;
  -webkit-perspective: 100;
          perspective: 100;
  -webkit-transform: rotateX(65deg);
          transform: rotateX(65deg);
}

.ripple .ripple-svg {
  position: absolute;
  width: 240px;
  height: 240px;
  opacity: 0;
}

.ripple .ripple-svg circle {
   fill: none;
   stroke: #2a96ed;
   stroke-width: 10px;
   stroke-alignment: inner;
}

.ripple-1 {
  -webkit-animation: ripple 2s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0s infinite;
          animation: ripple 2s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0s infinite;
}

.ripple-1 .ripple-svg {
  -webkit-animation: fade-in-out 2s linear 0s infinite;
          animation: fade-in-out 2s linear 0s infinite;
}

.ripple-1 .ripple-svg circle {
  -webkit-animation: border 2s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0s infinite;
          animation: border 2s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0s infinite;
}

.ripple-2 {
  -webkit-animation: ripple 2s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0.2s infinite;
          animation: ripple 2s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0.2s infinite;
}

.ripple-2 .ripple-svg {
  -webkit-animation: fade-in-out 2s linear 0.2s infinite;
          animation: fade-in-out 2s linear 0.2s infinite;
}

.ripple-2 .ripple-svg circle {
  -webkit-animation: border 2s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0.2s infinite;
          animation: border 2s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0.2s infinite;
}

.ripple-3 {
  -webkit-animation: ripple 2s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0.35s infinite;
          animation: ripple 2s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0.35s infinite;
}

.ripple-3 .ripple-svg {
  -webkit-animation: fade-in-out 2s linear 0.35s infinite;
          animation: fade-in-out 2s linear 0.35s infinite;
}

.ripple-3 .ripple-svg circle {
  -webkit-animation: border 2s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0.35s infinite;
          animation: border 2s cubic-bezier(0.25, 0.46, 0.45, 0.94) 0.35s infinite;
}



@-webkit-keyframes drop {
  0% {
    -webkit-transform: scale3d(0.01,0.01,0.01) translateY(0);
            transform: scale3d(0.01,0.01,0.01) translateY(0)
  }
  10% {
    -webkit-transform: scale3d(1,1,1);
            transform: scale3d(1,1,1) 
  }
  44% {
    -webkit-transform: scale3d(1,1,1) translateY(200px);
            transform: scale3d(1,1,1) translateY(200px)
  }
  100% {
    -webkit-transform: scale3d(1,1,1) translateY(200px);
            transform: scale3d(1,1,1) translateY(200px)
  }
}



@keyframes drop {
  0% {
    -webkit-transform: scale3d(0.01,0.01,0.01) translateY(0);
            transform: scale3d(0.01,0.01,0.01) translateY(0)
  }
  10% {
    -webkit-transform: scale3d(1,1,1);
            transform: scale3d(1,1,1) 
  }
  44% {
    -webkit-transform: scale3d(1,1,1) translateY(200px);
            transform: scale3d(1,1,1) translateY(200px)
  }
  100% {
    -webkit-transform: scale3d(1,1,1) translateY(200px);
            transform: scale3d(1,1,1) translateY(200px)
  }
}

@-webkit-keyframes fade-in-out {
  0% {opacity: 0}
  42% {opacity: 0}
  52% {opacity: 1}
  65% {opacity: 1}
  100% {opacity: 0}
}

@keyframes fade-in-out {
  0% {opacity: 0}
  42% {opacity: 0}
  52% {opacity: 1}
  65% {opacity: 1}
  100% {opacity: 0}
}

@-webkit-keyframes ripple {
  0% { -webkit-transform: rotateX(65deg) scale3d(0.2, 0.2, 0.2); transform: rotateX(65deg) scale3d(0.2, 0.2, 0.2) }
  42% { -webkit-transform: rotateX(65deg) scale3d(0.2, 0.2, 0.2); transform: rotateX(65deg) scale3d(0.2, 0.2, 0.2) }
  100% { -webkit-transform: rotateX(65deg) scale3d(0.9, 0.9, 0.9); transform: rotateX(65deg) scale3d(0.9, 0.9, 0.9) }
}

@keyframes ripple {
  0% { -webkit-transform: rotateX(65deg) scale3d(0.2, 0.2, 0.2); transform: rotateX(65deg) scale3d(0.2, 0.2, 0.2) }
  42% { -webkit-transform: rotateX(65deg) scale3d(0.2, 0.2, 0.2); transform: rotateX(65deg) scale3d(0.2, 0.2, 0.2) }
  100% { -webkit-transform: rotateX(65deg) scale3d(0.9, 0.9, 0.9); transform: rotateX(65deg) scale3d(0.9, 0.9, 0.9) }
}

@-webkit-keyframes border {
  0% { stroke-width: 6px }
  42% { stroke-width: 6px }
  100% {stroke-width: 2px }
}

@keyframes border {
  0% { stroke-width: 6px }
  42% { stroke-width: 6px }
  100% {stroke-width: 2px }
}

