У вас для тега <main> прописано overflow:hidden, а это значит, что браузер не может посчитать, в какой такой момент времени нужно вложенный элемент прилеплять.
Выступлю в роли ванги и предположу, что вы вставляете текст откуда-то (из ворда, например), и в нем вместо пробелов вставлются - которые неразрывные пробелы, не дающие тексту разбиваться
На сайте, который вы указали, используется transform: translateY и анимация через transition, почему бы не сделать аналогично?
По умолчанию translateY(100%), при наведении преобразовывается в translateY(0) - вот и вся нехитрая анимация