.pin-wrap {
  position: absolute;
  width: 50px;
  height: 50px;
  margin-top: -62px;
  margin-left: -25px;
  -webkit-transform-origin: 50% 120.71068% 0;
          transform-origin: 50% 120.71068% 0;
		  
  -webkit-animation-name: bounce;
          animation-name: bounce;
  -webkit-animation-fill-mode: both;
          animation-fill-mode: both;
  -webkit-animation-duration: 1s;
          animation-duration: 1s;
   -webkit-animation-iteration-count: infinite;
          animation-iteration-count: infinite;
}

.pin {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 50px;
  height: 50px;
  margin-top: -25px;
  margin-left: -25px;
  -webkit-transform-origin: 50% 120.71068% 0;
          transform-origin: 50% 120.71068% 0;
}

.pin::after {
  position: absolute;
  display: block;
  box-sizing: border-box;
  left: 17px;
  top: 19px;
  width: 14px;
  height: 14px;
  content: '';
  -webkit-transform: rotateZ(-45deg);
          transform: rotateZ(-45deg);
  background-color: #ff0000;
  border-radius: 50% 50% 50% 50%;
}

.pin::before {
  position: absolute;
  display: block;
  box-sizing: border-box;
  width: 50px;
  height: 50px;
  content: '';
  -webkit-transform: rotateZ(-45deg);
          transform: rotateZ(-45deg);
  border: 10px solid #2cb8a5;
  border-radius: 50% 50% 50% 0;
}

.shadow {
  position: absolute;
}

.shadow::after {
  position: absolute;
  left: -116px;
  display: block;
  width: 30px;
  height: 30px;
  margin-top: -16px;
  content: '';
  -webkit-transform: rotateX(55deg);
          transform: rotateX(55deg);
  border-radius: 50%;
  box-shadow: rgba(0, 0, 0, 0.3) 100px 0 20px;

}

.pulse {
  position: absolute;
  margin-top: -50px;
  margin-left: -50px;
  -webkit-transform: rotateX(55deg);
          transform: rotateX(55deg);
}

.pulse::after {
  display: block;
  width: 100px;
  height: 100px;
  content: '';
  -webkit-animation: pulsate 1s ease-out;
          animation: pulsate 1s ease-out;
  -webkit-animation-delay: 1s;
          animation-delay: 1s;
  -webkit-animation-iteration-count: infinite;
          animation-iteration-count: infinite;
  opacity: 0;
  border-radius: 50%;
  box-shadow: 0 0 1px 2px rgba(0, 0, 0, 0.2);
  box-shadow: 0 0 6px 3px rgba(0, 0, 0, 0.2);
}

@-webkit-keyframes pulsate {
  0% {
    -webkit-transform: scale(0.1, 0.1);
            transform: scale(0.1, 0.1);
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    -webkit-transform: scale(1.2, 1.2);
            transform: scale(1.2, 1.2);
    opacity: 0;
  }
}

@keyframes pulsate {
  0% {
    -webkit-transform: scale(0.1, 0.1);
            transform: scale(0.1, 0.1);
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  100% {
    -webkit-transform: scale(1.2, 1.2);
            transform: scale(1.2, 1.2);
    opacity: 0;
  }
}


@-webkit-keyframes bounce {
  0% {
    -webkit-animation-timing-function: ease-out;
	-webkit-transform: translateY(0px);
            transform: translateY(0px);
  }
  
  55% {
    -webkit-animation-timing-function: ease-out;
	-webkit-transform: translateY(-40px);
            transform: translateY(-40px);
  }
  
  65% {
    -webkit-animation-timing-function: ease-in;
	-webkit-transform: translateY(-35px);
            transform: translateY(-35px);
  }
  
  95% {
    -webkit-animation-timing-function: ease-in;
	-webkit-transform: translateY(0px);
            transform: translateY(0px);
  }

  100% {
    -webkit-animation-timing-function: ease-out;
	-webkit-transform: translateY(0px);
            transform: translateY(0px);
  }
}

@keyframes bounce {
  0% {
    -webkit-animation-timing-function: ease-out;
	-webkit-transform: translateY(0px);
            transform: translateY(0px);
  }
  
  55% {
    -webkit-animation-timing-function: ease-out;
	-webkit-transform: translateY(-40px);
            transform: translateY(-40px);
  }
  
  65% {
    -webkit-animation-timing-function: ease-in;
	-webkit-transform: translateY(-35px);
            transform: translateY(-35px);
  }
  
  95% {
    -webkit-animation-timing-function: ease-in;
	-webkit-transform: translateY(0px);
            transform: translateY(0px);
  }

  100% {
    -webkit-animation-timing-function: ease-out;
	-webkit-transform: translateY(0px);
            transform: translateY(0px);
  }
}