/* The user agent style sheet is applied by default to all web page elements.
   Most of the specifications made here are specified and explained here:
   https://www.w3.org/TR/html50/rendering.html#rendering
*/

/* Hidden Elements
   https://www.w3.org/TR/html50/rendering.html#hidden-elements */
area, base, basefont, datalist, head, link,
meta, noembed, noframes, param, rp, script, source, style, template, track,
title {
  display: none;
}

/* The page
   https://www.w3.org/TR/html50/rendering.html#the-page */
html, body { display: block; }


/* Flow content
   https://www.w3.org/TR/html50/rendering.html#flow-content-0 */
address, blockquote, center, div, figure, figcaption, footer, form,
header, hr, legend, listing, p, plaintext, pre, xmp {
  display: block;
}
