Asciidoctor gives you lots of options for modifying the generated HTML (and supplementing it with additional CSS). One way is to use templates. As Mark points out, docinfo is another option.
The templates in
https://github.com/asciidoctor/asciidoctor-backends are just meant to be a reference to get you started. You only need to use the templates for the nodes you want to change. If a template is missing, Asciidoctor falls back to the built-in HTML converter.
Another solution, new in Asciidoctor 2, is to override the converter directly. This is the same as using templates, but done in Ruby. For example, if you want to override the HTML for a paragraph, you can use:
class MyHtmlConverter < (Asciidoctor::Converter.for 'html5')
register_for 'html5'
def convert_paragraph node
%(<p>#{node.content}</p>)
end
end
Then just pass that script to the asciidoctor command using the -r option.
Best,
-Dan