Por partes:
Su código es incompleto para poder reproducir el problema.
Faltas los estilos de #vertical.
A falta de conocer el doctype utilizado (y aun en el caso de que sea html5) tiene un elemento de bloque /p/ dentro de uno de línea /a/ al que rota 90º ¿Qué hará cada navegador en estos casos? Pues cada uno lo interpretará como "crea" más conveniente.
La propiedad transform es una de las horthand. Esto es, es la forma resumida de declarar un conjunto de propiedades afines, cada una de las cuales controla un aspecto diferente.
Entre otras, incluye t-origin.
Aparte de existir más valores que rotate(). Por ejemplo traslate().
Si desea más información para comprender algo más es esta propiedad puede consultar
este artículo.
Y ya metidos en harina, las transform suelen ir de la mano de las
transition.
Y la tercera pata del banco, las @keyframes, ya para otro rato.