/* RESET */
html, body, div, ul, ol, li, dl, dt, dd, h1, h2, h3, h4, h5, h6, pre, form, p, blockquote, fieldset, input, abbr, article, aside, command, details, figcaption, figure, footer, header, hgroup, mark, meter, nav, output, progress, section, summary, time {
    margin: 0;
    padding: 0;
}

h1, h2, h3, h4, h5, h6, pre, code, address, caption, cite, code, em, strong, th, figcaption {
    font-size: 1em;
    font-weight: normal;
    font-style: normal;
}

fieldset, iframe {
    border: none
}

table {
    border-collapse: collapse;
    border-spacing: 0
}

article, aside, footer, header, hgroup, nav, section, figure, figcaption {
    display: block;
}

caption, th {
    text-align: left;
}

/* IMPORTANT */
body {
    color: red !important;
}

body {
    color: red !important;
}

body {
    color: red !important;
}

/* INLINE COMMENT */
body {
    color: red;
    /* blue */
}

/* URLS */
.myimage {
    background-image: url(http://example.com/image.png), url(two.png)
}

.myimage {
    background-image: url("http://example.com/image.png"), url("two.png")
}

/* PREFIXED SELECTORS AND PROPERTIES */
.foo :matches(a, b, c) {
    -webkit-transition: all;
    color: red
}

/* PSEUDO SELECTORS */
a:link, a:visited {
    color: black
}

/* PSEUDO ELEMENTS */
p::before, p::after {
    content: "test";
}

/* RGB, HSL */
body {
    color: rgb(1, 1, 1);
    color: rgba(100, 0, 255, 0.5);
    color: hsl(120, 100%, 50%);
    color: hsla(120, 60%, 70%, 0.3);
}

/*
 * This is a multi-line comment.
 * - with indentation
 * - and is generally awesome.
 */
body {
    color: red
}

