Сделайте вручную с помощью отступов. У вас все правильно записано. У меня идентичные ситуации были, когда, вроде бы, все правильно написано, а на деле с отступами косячит.
Чтобы меню схватывалось, это position: sticky https://www.w3schools.com/howto/howto_js_navbar_st...
А фон через scrollY проверяйте на событие scroll, и если больше какого-то там значения, давайте стили. Якщо що, пишіть, розберемося)
По статистике больше пользователей просматривают сайтики с телефона, если будете создавать основу с телефона, ясно, что он будет выглядеть лучше. Но это еще нужно уметь делать