offsiderst,
1) Если у нас прописано свойство animation изначально в блоке - анимация запускается сразу, а не по добавлению класса. Стоит добавлять анимацию позже или управлять через animation-play-state.
2) translateX с значением -100% отодвигает элемент за пределы экрана и не даёт сработать. Можно сделать отрицательный rootMargin - но не знаю, хорошо ли работает такой хак. Или добавить дочкерний блок, который будет уезжать, а intersection будет работать на родительском.