html {
    font-size: calc(1em + 1vw);
    margin: auto 1em;
    padding: 0;
}

body {
    font-family: sans-serif;
    margin: 0 auto;
    max-width: 1000px;
}

h1 > a, h2 > a {
    color: black;
    text-decoration: none;
}

#avatar {
    height: 64px;
    vertical-align: middle;
}

#avatar img {
    height: 64px;
    width: 64px;
}

h1 > a:hover, h2 > a:hover {
    border-bottom: 1px dotted #93a1a1;
}

ul.pagination {
    border-top: 1px dotted #93a1a1;
    padding-top: 1em;
    display: flex;
    justify-content: center;
    list-style: none;
    font-size: .8em;
}

ul.pagination li a {
    padding: .25em .75em;
}

ul.pagination li a:hover {
    background: #eee;
}

article h1 {
    font-size: 1.25em;
}

article h2 {
    font-size: 1.125em;
}

article .meta nav {
    display: inline-block;
}

article .meta time::before {
    content: "• ";
}

article .meta time::after {
    content: " •";
}

code {
    background: #fdf6e3;
    color: #002833;
}

pre {
    border-radius: 0.5em;
    font-family: monospace;
    padding: 1em;
    background: #fdf6e3;
    color: #002833;
    overflow: auto;
}

article {
    position: relative;
}

article > aside  {
    position: absolute;
    top: 0;
    right: 0;
    width: 10em;
    font-size: 0.8em;
}

.toc ul {
    margin: 0;
    padding: 0;
    list-style: disc;
}

.toc ul li {
    margin: 0;
    padding: 0 0.5em;
}

.meta {
    font-size: 0.75em;
    text-align: right;
}

#social {
    text-align: center;
}

#social a {
    color: #93a1a1;
    margin: 0.25em;
    display: inline-block;
}

footer {
    margin-top: 0.5em;
    border-top: 1px dotted #93a1a1;
    padding-top: 0.5em;
}

#next-prev {
    padding: 0.5em 0;
}

#next-prev .next {
    float: right;
}

article.draft {
    background: url(/images/draft.png);
    background-repeat: no-repeat;
    background-size: contain;
}

#content hr:last-of-type { display: none; }

.twitter-tweet {
    margin-right: auto;
    margin-left: auto;
}

blockquote {
    font-style: italic;
}

figure.photo {
    text-align: center;
    margin: 0;
    margin-block-start: 0;
    margin-block-end: 0;
    margin-inline-start: 0;
    margin-inline-end: 0;
}

figure.photo img { max-width: 300px; }

figcaption {
    font-style: italic;
    font-variant: small-caps;
}

/* based on perldoc */
/* Background */           .chroma        { background-color: #fdf6e3; }
/* Error */                .chroma .ss4   { color: #a61717; background-color: #e3d2d2; }
/* LineHighlight */        .chroma .hl    { background-color: #ffffcc; display: block; width: 100%; }
/* LineNumbers */          .chroma .ln    { color: #93a1a1; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;; }
/* Keyword */              .chroma .s3e8  { color: #8b008b; font-weight: bold; }
/* KeywordType */          .chroma .s3ee  { color: #00688b; font-weight: bold; }
/* NameAttribute */        .chroma .s7d1  { color: #658b00; }
/* NameBuiltin */          .chroma .s7d2  { color: #658b00; }
/* NameClass */            .chroma .s7d4  { color: #008b45; font-weight: bold; }
/* NameConstant */         .chroma .s7d5  { color: #00688b; }
/* NameDecorator */        .chroma .s7d6  { color: #707a7c; }
/* NameException */        .chroma .s7d8  { color: #008b45; font-weight: bold; }
/* NameFunction */         .chroma .s7d9  { color: #008b45; }
/* NameNamespace */        .chroma .s7dd  { color: #008b45; }
/* NameTag */              .chroma .s7e2  { color: #8b008b; font-weight: bold; }
/* NameVariable */         .chroma .s7e3  { color: #00688b; }
/* LiteralString */        .chroma .sc1c  { color: #cd5555; }
/* LiteralStringHeredoc */ .chroma .sc26  { color: #1c7e71; font-style: italic; }
/* LiteralStringOther */   .chroma .sc29  { color: #cb6c20; }
/* LiteralStringRegex */   .chroma .sc2a  { color: #1c7e71; }
/* LiteralNumber */        .chroma .sc80  { color: #b452cd; }
/* OperatorWord */         .chroma .sfa1  { color: #8b008b; }
/* Comment */              .chroma .s1770 { color: #228b22; }
/* CommentSpecial */       .chroma .s1774 { color: #8b008b; font-weight: bold; }
/* CommentPreproc */       .chroma .s17d4 { color: #1e889b; }
/* GenericDeleted */       .chroma .s1b59 { color: #aa0000; }
/* GenericEmph */          .chroma .s1b5a { font-style: italic; }
/* GenericError */         .chroma .s1b5b { color: #aa0000; }
/* GenericHeading */       .chroma .s1b5c { color: #000080; font-weight: bold; }
/* GenericInserted */      .chroma .s1b5d { color: #00aa00; }
/* GenericOutput */        .chroma .s1b5e { color: #888888; }
/* GenericPrompt */        .chroma .s1b5f { color: #555555; }
/* GenericStrong */        .chroma .s1b60 { font-weight: bold; }
/* GenericSubheading */    .chroma .s1b61 { color: #800080; font-weight: bold; }
/* GenericTraceback */     .chroma .s1b62 { color: #aa0000; }
/* TextWhitespace */       .chroma .s1f41 { color: #bbbbbb; }

@media only screen and (min-device-width: 1200px) {
    html { font-size: calc(1em + 0.5vw); }
    figure.photo img { max-width: 800px; }
}

@media (prefers-color-scheme: dark) {
    html, body {
        background-color: #002b36;
        color: #839496;
    }

    h1 > a, h2 > a {
        color: #839496;
    }

    a {
        color: #b58900;
    }

    pre, code {
        background-color: #93a1a1;
    }
}
