Like tarasis said, you nailed it.
I think the only thing missing, is the btn design when you click on it. For me the background color should change and stay fixed even when unhovered, and the same for svg color.
I learned a lot from your CSS. (and felt stupid when saw your js, so clean)