I feel your pain. I went through exactly the same thing about 15 years ago.

The problem with "100%" is that it doesn't say, what it's relative to. That seems obvious, but that's an illusion: in fact there's a bewildering number of possible answers, and unless you go to a great deal of trouble to spell it out, many browsers will just throw up their hands and say "nope, can't be bothered".

I never figured out the answer. I do know, however, that it's nothing like as simple and elegant as you might intuitively think. It may well involve invoking things like "viewport" and "canvas", which no sensible person ever wants to think about. Failing that, you can do what basically everyone else does, and cheat - but that's not going to be elegant either.