The W3C Markup Validator, when acting as an HTML5 checker, handles this issue according to various drafts such as HTML 5.1 Nightly, which right now says that the style
element may appear only inside the head
element, except when the scoped
attribute is present, in which case it may appear “where flow content is expected, but before any other flow content other than inter-element whitespace and style elements, and not as the child of an element whose content model is transparent”. In your actual example, the element appears after a script
element (which is counted as flow content). Changing the order of the elements thus changes the syntax to valid, under the given definition.
Alternatively, you can just wrap the style
element in a div
element:
title