Animaciones con CSS

Mover cosas en pantalla sin escribir una sola línea de JavaScript. El navegador hace todo el trabajo.

Sin transition, un cambio de estilo salta de golpe. Con transition, el navegador rellena todos los pasos intermedios solo.

Se combina con :hover —"cuando el mouse esté encima"— para el efecto más típico de la web.

transform mueve, gira o escala un elemento sin afectar a los demás —a diferencia de cambiar margin, que sí empuja el resto de la página—. Por eso es la opción preferida para animar.

transition necesita un disparador —como :hover—. Para algo que se mueva todo el tiempo, sin que nadie haga nada, se usa @keyframes: defines cómo se ve al 0%, en puntos intermedios, y al 100%, y el navegador anima entre esos puntos en bucle.

infinite repite para siempre. ease-in-out hace que el movimiento empiece y termine suave, en vez de a velocidad constante.

Junta todo: transition para el hover, y una pequeña animación de pulso constante con @keyframes, para que el botón se note incluso sin tocarlo.

transition con :hover, transform para mover sin empujar, y @keyframes para animaciones que se repiten solas. Todo sin tocar JavaScript.

Ya tienes una página que se ve bien y que se mueve. Falta lo último: que exista en internet.