clock demo with requestAnimationFrame instead of timeout