@font-face {
    font-family: IBMVGA8;
    src: url("fonts/Web437_IBM_VGA_8x16.woff");
}

:root {
    --fg-color: #e6e1dc;
    --bg-color: rgba(43, 43, 43, 0.95);
    --border-color: #000000;
    --shadow-color: rgba(0, 0, 0, .9);
    --accent-1-color: #ffc66d;
    --accent-2-color: #a5c261;
    --accent-3-color: #6d9cbe;
    --font-size: 16px;
}

/* Defaults, Resets */
html, body, div, span, hr, p, ul, ol, blockquote, table, pre, h1, h2, h3, h4, h5, h6 {
    margin: 0;
    padding: 0;
}

body, h1, h2, h3, h4, h5, h6, pre, code {
    font-family: IBMVGA8, monospace;
    font-size: var(--font-size);
    line-height: var(--font-size);
}

.background, .container, .content {
    width: 100vw;
    height: 100vh;
    box-sizing: border-box;
}

.background, .content {
    position: absolute;
}

.container, header, main, footer, .player {
    position: relative;
}


/* Structure */

.background {
    top:0;
    left:0;
    background-image: url("backgrounds/a17.gif");
    background-position: center center;
    background-size: cover;
    background-attachment: fixed;
    image-rendering: crisp-edges;
}

.container {
    max-width: 1920px;
    margin: 0 auto;
}

.content {
    padding:8px;
    display: flex;
    flex-direction: column;
    overflow: auto;

    background-color: var(--bg-color);
    color: var(--fg-color);
    border: 2px solid var(--border-color);
    box-shadow: 8px 8px 0 var(--shadow-color);
}

header, main, footer, .player {
    box-sizing: border-box;
    width: 100%;
    overflow: hidden;
    flex: 0 0 auto;
}

main {
    margin: 16px 0;
    padding: 0 16px;
    flex: 1 1 auto;
    overflow-y: auto;
    overflow-x: hidden;
}


/* Player */

.player {
    padding-bottom: 8px;
}

.player audio {
    width: calc(100% - 32px);
}

.player span.times {
    font-size: 32px;
    line-height: 47px;
    float: right;
    cursor: pointer;
}

/* Reader */

.reader p:first-child {
    text-align: center;
}

.reader a.times {
    float: left;
}

.reader .loader {
    float:right;
}

.reader .loader:after {
    display: inline;
    white-space: pre;
    content: " ";
    animation: loading 1s linear infinite;
}

@keyframes loading {
    0% {content:" ";}
    50% {content:"█";}
}


/* Content */

a {
    color: var(--accent-1-color);
    text-decoration: none;
}

a:before { content: '['; }
a:after { content: ']'; }

a:hover, a:active {
    background-color: var(--accent-1-color);
    color: var(--bg-color);
}

a.active {
    text-decoration: underline;
}

b, strong { font-weight: normal; }
b, strong, blockquote { color: var(--accent-2-color); }

blockquote {
    padding-left: 8px;
}

h1, h2, h3, h4, h5, h6, p, ul, ol, table, blockquote, hr {
    margin-bottom: 16px;
}

.content-tab p:last-child {
    margin-bottom:0;
}

h1, h2, h3, h4, h5, h6 {
    font-weight: normal;
    text-decoration: underline;
}

h1:before { content: '# '; }
h2:before { content: '## '; }
h3:before { content: '### '; }
h4:before { content: '#### '; }
h5:before { content: '##### '; }
h6:before { content: '###### '; }

mark {
    background-color: var(--accent-2-color);
    color: var(--bg-color);
}

ul { list-style: none; }
ul li:before { content: '- '; }
ol { list-style: decimal inside; }

hr {
    margin-top: 14px;
    border: none;
    border-top: 2px solid var(--fg-color);
}

table {
    width: 100%;
    border-collapse: collapse;
    border: none;
}

table.blog-table tr td, table.log-table tr td {
    vertical-align: top;
}

table.blog-table tr td:first-child, table.log-table tr td:first-child {
    width: 96px;
    color: var(--accent-2-color);
}

table.blog-table tr td:nth-child(2), table.log-table tr td:nth-child(2) {
    color: var(--accent-3-color);
}

table.blog-table tr td:last-child { width: 48px; text-align: right; }
table.log-table tr td:last-child { width: 114px; text-align: right; }

#ascii {
    text-align: center;
}

#ascii pre {
    display: inline-block;
    text-align: left;
}

.hide {
    display: none;
}

@media only screen and (min-width: 864px) {
    .content {
        left: 32px;
        bottom: 32px;
        width: 800px;
        height: 596px;
        padding:16px;
    }
}