Почему VW делает нижнюю прокрутку страницы при растягивании дочернего блока?
Именно для вашего случая. Но я бы на вашем месте это по другому реализовал, как минимум картинку бы сделать бэкграундом, а не вставлять с помощью тега img. Она ведь не относится к содержанию страницы и не имеет никакой смысловой нагрузки
html, body{
height: auto;
width: 100%;
overflow-x: hidden;
}
Проблема в том, что 100vw включает в себя полосу прокрутки.
Вот здесь я решал похожую задачу https://qna.habr.com/q/616576.