Сперва устанавливаются размеры, которое должен занять элемент, а затем пременяю преобразование - элемент может выйти за установленные размеры.
Точка отсчета для преобразований по умолчанию - центр прямоугольника.
Перекрытие элементов происходит по порядку в потоке выполнения.
rotate(0deg)
rotate(40deg)
rotate(80deg)
rotate(160deg)
rotate(240deg)
При повороте на 90deg может создать эффект повотора текста при неподвижном фоне.
Порядок перекрытия элементов можно изменить с помощью z-index. Т.е. transform создает контекст для z-index, как и opacity и position отличный от static
rotate(0deg)
z-index: 100
rotate(80deg)
rotate(160deg)
rotate(240deg)
Если два аргумента, то первый для оси X, второй для оси Y transfotm: translate(x, y)