updated for W3C HTML5 + CSS3 compliance