¿Cómo mantener el origen en el centro de la imagen en la animación a escala?

Tengo una situación similar a estaviolín, donde tengo una animación CSS3 que escala un elemento en posición absoluta en el centro de otro elemento. Sin embargo, cuando la animación tiene lugar, está descentrada, como se ve por los cuadrados rojos en relación con el azul en el ejemplo. ¿Cómo lo centro? He intentado un par de configuraciones alrededor deltransform-origin propiedad, pero esto no está produciendo los resultados correctos.

Código a continuación:

@-webkit-keyframes ripple_large {
  0% {-webkit-transform:scale(1);}
  75% {-webkit-transform:scale(3); opacity:0.4;}
  100% {-webkit-transform:scale(4); opacity:0;}
}

@keyframes ripple_large {
  0% {transform:scale(1); }
  75% {transform:scale(3); opacity:0.4;}
  100% {transform:scale(4); opacity:0;}
}

.container {
  position: relative;
  display: inline-block;
  margin: 10vmax;
}

.cat {
  height: 20vmax;
}

.center-point {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  height: 10px;
  width: 10px;
  background: blue;
}

.to-animate {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  border: 1px solid red;
  height: 5vmax;
  width: 5vmax;
  transform-origin:center;
}

.one {
  -webkit-animation: ripple_large 2s linear 0s infinite;
  animation: ripple_large 2s linear 0s infinite;
}

.two {
  -webkit-animation: ripple_large 2s linear 1s infinite;
  animation: ripple_large 2s linear 1s infinite;
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta