:root {
--black: #0c0c0c;
--white: #ebf8b8
}

body,
html {
    margin: 0;
    width: 100%;
    max-width: 100%;
    height: 100%;
    font-family: monospace;
    background-color: var(--black);
    color: #ebf8b8;
    font-size: 18px;
}

img {
    max-width: 100%;
}

h1, h2 {
    font-family: sans-serif;
}

a:link,
a:visited {
    color: #fcfcfc;
}

a:hover,
a:focus,
a:active {
    color: #1120fc;
}

.wrapper {
    display: flex;
    flex-direction: row;
    justify-content: center;
}

.nav-placeholder {
    width: 25%;
}

header {
    width: 100vw;
    display: flex;
    flex-direction: row;
    justify-content: center;
}

.title {
    width: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
}

nav {
    width: 25%;
    position: fixed;
    left: 12.5%;
}

nav ol {
    list-style: none;
    padding: 0;
}

main {
    width: 50%;
    box-sizing: border-box;
    padding: 10px;
    border: 1px solid;
    border-radius: 5% 95% 5% 95% / 97% 2% 98% 3%;
}

section {
    border: 1px solid;
    padding: 10px;
    box-sizing: border-box;
}

summary {
    font-size: 1.5em;
    font-weight: bold;
}

summary:hover {
    cursor: pointer;
    color: #1120fc;
}

main h1 {
    width: 100%;
    text-align: center;
}

section:not(section:last-of-type) {
    margin-bottom: 10px;
}

table {
    border: 1px solid;
}

th,
table td:not(table tr:last-of-type td) {
    border-bottom: 1px solid;
}

table tr th:not(table tr th:last-of-type),
table tr td:not(table tr td:last-of-type) {
    border-right: 1px solid;
}

tbody tr:hover  {
    background-color: #1120fc;
}

.highlight {
    border: 1px solid;
    background-color: #ffff0007;
    padding: 10px;
}

.spoiler {
    background-color: red;
    color: white;
}

.hidden {
    display: none;
}

.item-list {
    list-style: none;
    display: flex;
    flex-direction: column;
    width: 100%;
    padding: 10px;
    box-sizing: border-box;
    font-size: 1.2em;
}

@media screen and (max-width: 620px) {
    h1, h2:not(section h2) { 
        text-align: center;
        width: 100%;
    }
    nav {
        width: 100%;
        top: 0;
        left: 0;
        background-color: var(--black);
    }

    nav ol {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: center;
    }

    nav ol li {
        margin-right: 10px;
    }

    header {
        margin-top: 140px;
    }

    .nav-placeholder {
        width: 0;
    }

    main {
        width: 80%;
    }
}