Начни с простого, освой просто верстку до такого момента, когда ты понимаешь, что можешь сверстать все, даже если для этого придется немного программировать.
Для анимации всего есть
gsap, под всем я понимаю буквально все. Ты можешь анимировать изменение любого свойства любого объекта. А в onUpdate можешь делать какую-то логику, в зависимости от значения obj.a
let obj = {a: 0};
new TimelineMax({
onUpdate: function() {}
})
.fromTo(obj, .5, {
a: 0
}, {
a: 1
});
Ну а самое крутое, самое производительно и самое сложное, это glsl шейдеры, они какраз исползуются для эффекта под курсором из твоего примера.