@ChrisP already tried overflow-x: hidden for both html, and body. Doesn’t seem to work for me.
The issue is with my pseudo elements .bottom::before and .bottom::after. They both have 100% widths and I think that’s what’s causing it. Because as soon as I disable the two elements I no longer have an overflow problem. Strange.