When using the :out-of-range pseudo class I noticed it didn't match anymore when it reached a certain threshold of used characters.
I've tested this both on Safari 11.1 and Safari Mobile.
You can reproduce it using this codepen I made https://codepen.io/mrenty/pen/QrRZwP.
If you type "111111111111111111111111111111111111111" it is invalid as expected, but if you add an extra number it becomes in range.
Presumably when it gets so large that it fails to parse as a number.