* {
    box-sizing: border-box;
}

body {
    margin: 0;
    font-family: sans-serif;
}

.header .header-nav0 {
    position: fixed;
    background-color: black;
    color: white;
    padding: 1em;
    box-sizing: border-box;
    width: 100%;
}

.header .header-nav0 :is(.header-nav0-left, .header-nav0-right){
    display: inline-block;
}

.header .header-nav0 :is(.header-nav0-right) {
    float: right;
}

.header .header-nav0 .header-sect {
    padding: 0.375em 2.5em;
    font-size: 1.25em;
}

.header .header-nav0 .header-sect2 {
    line-height: 2.5em;
    margin: 0 0.5em;
    color: #b00;
    font-variant: small-caps;
}

.header .header-nav0 .header-home {
    display: inline-block;
    background-color: #600;
    font-variant: small-caps;
    color: white;
    font-weight: bold;
    text-decoration: none;
    background-image: url("/img/favicon.png");
    background-size: 2em 2em;
    background-repeat: no-repeat;
}

.header .header-nav0 .header-home:hover {
    background-color: #900;
}

.header .banner {
    background-image: url("/img/banner.png");
    background-position: center;
    width: 100%;
    height: 20em;
    display: flex;
}

.header .banner .banner-end {
    background-color: #000a;
    color: white;
    align-self: flex-end;
    padding: 2em;
    margin: 1em;
    font-weight: bold;
    text-shadow: 0.1em 0.125em black;
}

.header .banner .banner-end .banner-lg {
    font-size: 3em;
}

.header .banner .banner-end .banner-sm {
    font-size: 1.75em;
    margin-left: 1em;
}

.content .introbar {
    background-color: #600;
    color: white;
    padding: 1em 3em;
}

.content .content-main {
    display: flex;
    flex-direction: row;
}

.content .content-main .content-main-paper {
    box-sizing: border-box;
    width: 200%;
    padding: 0.5em 2em;
    line-height: 1.5em;
    font-size: 1.25em;
}

.content .content-main .content-main-paper p::before {
    content: "";
    padding-left: 1.0em;
}

.content .content-main .content-main-sidebar {
    box-sizing: border-box;
    width: 100%;
    padding: 1.5em;
}

.content .content-main .content-entry {
    background-color: #fee;
    margin: 0.5em 0 0 0;
}

.content .content-main .content-entry .content-entry-question {
    padding: 1em;
    font-weight: bold;
    background-color: #fcc;
    cursor: pointer;
}

.content .content-main .content-entry .content-entry-question:hover {
    background-color: #faa;
}

.content .content-main .content-entry .content-entry-answer {
    padding: 1.5em;
    font-size: 0.9em;
    line-height: 1.35em;
    overflow-y: clip;
    transition: 0.5s padding-top, 0.5s padding-bottom, 0.5s height;
    height: auto;
}

.content .content-main .content-entry.dismissed .content-entry-answer {
    height: 0;
    padding-top: 0;
    padding-bottom: 0;
}

.footer {
    width: 100%;
    text-align: center;
    padding: 2em;
    font-size: 1.25em;
    border-top: solid 2px #faa;
    background-color: #600;
    color: white;
}

.footer a {
    text-decoration: none;
    color: #faa;
}

#vote {
    display: block;
    position: fixed;
    top: calc(50vh - min(63vw,33.584em)/2);
    bottom: calc(50vh + min(63vw,33.584em)/2);
    width: min(75vw, 40em);
    height: min(63vw,33.584em);
    left: calc(50vw - min(37.5vw, 20em));
    outline: none; border: none; overflow: hidden;
    animation: 1s appear;
    animation-fill-mode: forwards;
    animation-delay: 2s;
    transform: translateY(100vh);
}

#chat {
    display: none;
}

@keyframes appear {
    0% {
        transform: translateY(500px);
    }
    100% {
        transform: translateY(0);
    }
}

@media only screen and (max-width: 768px) {
    .header-sect2 {
        display: none;
    }
}

@media only screen and (max-width: 768px) {
    .content .content-main {
        flex-direction: column-reverse;
    }

    .content .content-main :is(.content-main-paper, .content-main-sidebar) {
        width: 100%;
    }
}

@media only screen and (min-width: 500px) and (min-height: 600px) {
    #chat {
        display: block;
        position: fixed;
        right: 2em;
        bottom: 0;
        height: 500px;
        width: 360px;
        transform: translateY(500px);
        animation: 1s appear;
        animation-fill-mode: forwards;
        animation-delay: 7s;
    }
}
