That assumption is right. But until now it was always compensated, so that in the mean it would be ~50hz. This correction mechanism apparently isn't enough anymore for the current fluctuations in europe.
You can modify and finetune the look and timing of the animation in CSS code.
While this is also possible with SVG animations, they tend to be not as widely supported as CSS animations and at least I need to google for information about this topic as SVG is not an everyday topic for me.
Regarding GIF animations: they are larger in size and you first have to find and use tools to generate them. When avoiding the additional request: data URLs are ugly.