body {
    font-family: Georgia, 'Times New Roman', Times, serif;
    font-size: 18px;
    color: #3a3634;
    background-color: #efece6;
    margin: 0;
    padding: 0;
    min-height: 100vh;
}

h1, h2, h3, h4, h5, h6 {
    font-family: Helvetica, Arial, sans-serif;
}

h1#main-title {
    font-size: 1.75em;
}

a {
    color: #0066cc;
}

#container {
    padding: 1em 2em;
    margin: 0 auto;
    max-width: 800px;
}

@media (max-width: 600px) {
    body {
        padding: 0;
    }

    #container {
        padding: 0.5em;
    }
}

header, main, footer {
    margin: auto;
    max-width: 800px;
    padding: 0 0.5em;
}

header {
    margin-bottom: 2em;
    font-size: 0.9em;
    color: #9f9790;
}

p, ul, ol {
    line-height: 1.6em;
}

hr {
    border: none;
    border-top: 1px solid #d4cec6;
    margin: 2em 0;
}

figure.img {
    margin: 1em 0;
    text-align: center;
}

figure.img img {
    max-width: 100%;
    height: auto;
}

figure.img figcaption {
    font-size: 0.9em;
    font-style: italic;
    margin: 0.5em 0 1em 0;
}

code {
    font-size: 0.8em;
}

p code {
    background-color: #efece6;
    padding: 0.2em 0.4em;
}

pre > code {
    line-height: 1.5em;
    border-radius: 0.5em;
}

ul#toc {
    padding: 0.75em 1.5em;
    background-color: #faf8f4;
    border: 1px solid #e0dbd4;
    border-radius: 0.5em;
    float: right;
    margin: 0 0 3em 3em;
    font-size: 0.9em;
}

@media (max-width: 600px) {
    ul#toc {
        float: none;
        margin: 1em 0;
    }
}

ul#toc li {
    list-style: none;
}

p:last-child, ul:last-child, ol:last-child {
    margin-bottom: 0;
}

@media (prefers-color-scheme: dark) {
    body {
        color: #b5aea6;
        background-color: #161412;
    }

    h1, h2, h3, h4, h5, h6 {
        color: #f0ebe5;
    }

    a {
        color: #66aaff;
    }

    p code {
        background-color: #2a2624;
    }

    ul#toc {
        background-color: #23201e;
        border: 1px solid #3a3632;
    }
}
