overflow: hidden/auto does not guarantee that children won't be painted outside of the element's bounds, even if it has a fixed width & height: https://codepen.io/vincentriemer/pen/WNvwpvQ
If you add contain: strict to the container in the above example you'll see that it then successfully clips the child div.