It is animated with Javascript by updating transform:rotation every ~30ms. Couldn't the current time be set with Javascript and the animation be handled with CSS animations? Maybe CSS animations are not accurate enough time-wise so that the clock would diverge from the actual time (or other bad stuff happens like animations being suspended while a tab has no focus. I'm out of web development for too long to know off-hand how that behaves)?