.letter {
    opacity: 0;
}

@keyframes shake {
    0% { transform: translateX(0px); }
    25% { transform: translateX(-2px); }
    50% { transform: translateX(2px); }
    75% { transform: translateX(-2px); }
    100% { transform: translateX(0px); }
}

.word-shake {
    display: inline-block; /* necesario para que transform funcione */
    animation: shake 0.1s infinite; /* duración y repetición */
}

@keyframes sineWave {
    0%   { transform: translateY(0px); }
    25%  { transform: translateY(-10px); }
    50%  { transform: translateY(0px); }
    75%  { transform: translateY(10px); }
    100% { transform: translateY(0px); }
}

.sine-wave {
  display: inline-block; /* obligatorio */
  animation: sineWave 1s infinite linear;
}