* {
    box-sizing: border-box;
}

/* textual */
html {
    font-family: “Playfair Display”, “Didot”, "Times New Roman", Times, serif;
}

h1 {
    font-size: 18pt;
}

h2 {
    font-size: 16pt;
    border-bottom: solid 1px black;
}

h3 {
    font-size: 14pt;
}

h4 {
    font-size: 12pt;
    font-weight: normal;
    font-style: italic;
    margin: 0;
}

body {
    font-size: 10pt;
}

/* major blocks */
body {
    margin: 0;
    padding: 100pt 10pt 60pt 10pt;
    position: relative;
}

main {
    max-width: 800px;
}

@media only screen and (min-width: 1000px) {
    main {
        margin-left: 100px;
    }
}

code {
    white-space: pre;
    padding: 20pt;
    display: block;
    line-height: 1.25;
    background-color: #F7F7FF;
    box-shadow: inset 0 0 1px 0 black;
    overflow-x: auto;
}

@media only screen and (min-width: 1000px) {
    code {
        padding: 20pt;
    }
}

/* specific blocks */
body>footer,
body>header {
    padding: 10pt;
    display: block;
    position: fixed;
    left: 0;
    width: 100%;
    background-color: #FFFD;
    box-shadow: 0 0 3px 0 black;
}

body>footer {
    bottom: 0;
}

body>header {
    top: 0;
}

body>header>* {
    margin: 0;
}

main>aside {

    margin: 20pt 0;
}

main>figure {
    margin: 0;
}

main>aside,
main>figure {
    padding: 5px;
    box-shadow: silver 0 0 2px 0;
}

@media only screen and (min-width: 1000px) {

    main>aside,
    main>figure {
        padding: 20pt;
        box-shadow: silver 0 0 10px 0;
    }
}

main>aside>figure,
figure>img,
figure>a>img {
    margin: 0;
    width: 100%;
}

figure img+figcaption {
    margin-top: 10pt;
}

.embeddable-code+code {
    margin-top: 10pt;
}