:root {
    --color-blue-lgt: #58A6FF;
    --color-blue-mid: #152238;
    --color-blue-drk: #0D1117;
    --color-red-drk: #ff6666;
    --color-gray-light: #C9D1D9;
    --color-gray-mid: #8B949E;
    --color-gray-drk: #191a1a;
    --color-gray-vdark: #161B22;
    --color-gray-charcoal: #3B434B;
    --color-white: #ffffff;
}
html {
    font-size: 20px;
    line-height: 1.5;
    background-color: var(--color-blue-drk);
    font-family: IBM Plex Mono, monospace;
    color: var(--color-gray-light);
}

body {
    margin: 0 auto;
    padding: 0 1.5rem;
    max-width: 900px;
    align-content: center;
}

body nav {
    font-size: 1.2rem;
    text-align: center;
    margin-bottom: 30px;
    margin-top: 30px;
}

header {
    text-align: center;
    margin-bottom: 40px;
    font-size: 1.3rem;
}

header>div {
    margin: 0 auto;
    display: inline-block;
}

header .logo {
    color: var(--color-red-drk);
    font-weight: bolder;
    margin-top: 2.5rem;
    white-space: pre;
}

header .subtext {
    text-align: right;
}

a {
    font-style: italic;
    text-decoration: underline;
    color: var(--color-blue-lgt);
}

a:hover {
    color: var(--color-blue-drk);
    background-color: var(--color-blue-lgt);
}

.articles a {
    color: var(--color-white);
}

.articles a:hover {
    color: var(--color-blue-drk);
}

.tags {
    display: flex;
    flex-wrap: wrap;
    margin-top: 2rem;
    row-gap: 10px;
    column-gap: 20px;
}

.tag-bubble {
    display: inline-block;
    color: white;
    padding: 0.2em 0.5em;
    border-radius: 10px;
    border-style: solid;
    border-color: var(--color-gray-mid);
    border-width: 1px;
    color: var(--color-blue-lgt);
    transition: background-color ease-in-out 100ms;
    cursor: pointer;
}

.tag-bubble:hover {
    color: var(--color-red-drk);
    background-color: var(--color-gray-vdark);
}

.tag-bubble span {
    padding-left: 0.5rem;
    font-size: 0.9em;
    color: var(--color-gray-mid);
}

img {
    margin: 0 auto;
    border-radius: 5px;
    width: 100%;
}

hr {
    border: none;
    height: 1px;
    color: var(--color-blue-mid);
    background-color: var(--color-blue-mid);
}

h1,
h2,
h3 {
    text-align: left;
    vertical-align: middle;
    color: var(--color-red-drk);
}

h1 {
    font-size: 2.0rem
}

h2 {
    font-size: 1.7rem
}

h3 {
    font-size: 1.3rem
}

article ul {
    list-style-type: disc;
    padding: 5px;
    text-align: start;
}

article ul li {
    margin-bottom: 0.5rem;
    color: var(--color-blue-lgt);
    font-weight: bold;
}

article ul li a {
    color: var(--color-white);
    font-weight: normal;
}

article ul li:last-child {
    margin-bottom: 0;
}

article a {
    color: var(--color-red-drk);
}

.block-code {
    background-color: #161B22;
    border-radius: 5px;
    display: block;
    padding: 0.6rem 1rem;
    overflow-x: auto;
}

.inline-code {
    background-color: #2F333A;
    display: inline;
    font-size: 0.8rem;
    line-height: 1.5rem;
    padding: 0.1rem 0.4rem;
    border-radius: 8px;
}

blockquote {
    border-left: 10px solid var(--color-blue-mid);
    margin: 1.5rem 0;
    padding: 0 1.5rem;
}

blockquote p {
    color: var(--color-gray-mid);
    font-style: italic;
}

th {
    font-weight: bold;
}

table {
    margin: 0 auto;
    overflow-x: auto;
}

table tr:nth-child(2n + 2) td {
    background-color: var(--color-gray-vdark);
}

table,
th,
td {
    border: 1px solid var(--color-gray-charcoal);
    border-collapse: collapse;
    padding: 0.5rem 0.8rem;
}

figure {
    margin: 1rem 0;
}


figure figcaption {
    margin-top: 0.7rem;
    text-align: center;
    color: var(--color-gray-mid);
}

footer {
    margin-top: 2rem;
    text-align: center;
    color: var(--color-gray-mid);
}

/*
 * Mobile Styles
 */

@media screen and (max-width: 850px) {
    html {
        font-size: 0.85rem;
    }

    header {
        font-size: 2.5vw;
    }

    h1 {
        font-size: 2rem;
    }
}

/*
 * HighlightJS Syntax Style
 */

.hljs-comment {
    color: #999999;
}

.hljs-keyword,
.hljs-selector-tag,
.hljs-meta-keyword,
.hljs-doctag,
.hljs-section,
.hljs-selector-class,
.hljs-meta,
.hljs-selector-pseudo,
.hljs-attr {
    color: #88aece;
}

.hljs-attribute {
    color: v#c59bc1;
}

.hljs-name,
.hljs-type,
.hljs-number,
.hljs-selector-id,
.hljs-quote,
.hljs-template-tag,
.hljs-built_in,
.hljs-title,
.hljs-literal {
    color: #f08d49;
}

.hljs-string,
.hljs-regexp,
.hljs-symbol,
.hljs-variable,
.hljs-template-variable,
.hljs-link,
.hljs-selector-attr,
.hljs-meta-string {
    color: #b5bd68;
}

.hljs-bullet,
.hljs-code {
    color: #cccccc;
}

.hljs-deletion {
    color: #de7176;
}

.hljs-addition {
    color: #76c490;
}

.hljs-emphasis {
    font-style: italic;
}

.hljs-strong {
    font-weight: bold;
}