:root {
    --code-size: 16px;
    --code-size-small: 12px;
}

* {
    font-size: 20px;

    color: var(--color-text);
}

.navbar::selection, button::selection, .code-line::selection {
    background-color: transparent;
}

html {
    scroll-behavior: smooth;
    scrollbar-width: thin;
}

body {
    display: flex;
    flex-direction: column;

    justify-content: flex-start;
    align-items: center;

    margin: 0px;
    padding: var(--panel-gap);
    padding-top: 0px;

    font-family: 'Trebuchet MS';

    background-color: var(--color-bg);
}

.main-container {
    display: flex;

    flex-flow: column nowrap;
    gap: var(--panel-gap);

    max-width: 1200px;
    width: 100%;

    flex-grow: 1;
    flex-shrink: 1;
}

.main-container h1 {
    margin: 0.5em;
    margin-left: 0px;
    margin-bottom: 5px;

    font-size: 32px;
}

.main-container h1:first-of-type {
    margin-top: 48px;
}

.article {
    padding: 5px;

    background-color: var(--color-panel);

    border-radius: 5px;
}

.article h2 {
    margin: 0.5em;

    font-size: 28px;
}

.article p {
    margin-bottom: 5px;
    margin-left: 10px;
    margin-right: 10px;

    text-align: justify;
}

.article .nomargin {
    margin: 5px;
}

.article a {
    text-decoration: none;
    color: var(--color-link);
    cursor: pointer;
}

.article a:hover {
    color: var(--color-link-hover);
}

code {
    display: block;
    width: max-content;

    padding: 3px;
    margin-left: 20px;

    background-color: var(--color-panel);

    font-family: monospace;
    font-size: var(--code-size);
    line-height: 1.2em;

    border: 3px solid var(--color-code);
    border-radius: 5px;
}

code span {
    font-family: inherit;
    font-size: inherit;
    line-height: inherit;
}

.code-container {
    display: flex;

    justify-items: flex-start;
    align-items: stretch;

    font-family: monospace;
    font-size: var(--code-size);
}

.code-container code {
    width: max-content;

    margin-left: 5px;

    font-family: monospace;
    font-size: var(--code-size);
}

.code-line {
    width: 1em;
    height: 1fr;

    flex-grow: 0;
    flex-shrink: 0;

    padding: 3px;
    margin-left: 20px;

    background-color: var(--color-panel);

    font-family: inherit;
    font-size: inherit;

    border: 3px solid var(--color-code);
    border-radius: 5px;

    text-align: right;
    line-height: 1.45em;
}

.navbar {
    position: fixed;
    display: flex;

    flex-flow: row wrap;
    gap: 5px;

    top: 0px;
    left: 0px;
    width: calc(100% - 10px);

    flex-grow: 1;
    flex-shrink: 0;

    margin: 0px;
    padding: 5px;

    background-color: var(--color-panel);

    border-bottom: 5px solid var(--color-bg);

    transition: box-shadow 0.1s;

    z-index: 100;
}

.shadow {
    box-shadow: 0px 0px 5px 5px #222222;
}

button {
    padding: 3px;
    padding-left: 8px;
    padding-right: 8px;

    background-color: var(--color-ui);

    border: 0px transparent;
    border-radius: 3px;

    transition: all 10ms;
}

button:hover {
    background-color: var(--color-ui-hover);
}

button:active {
    background-color: var(--color-ui-active);
}

/* Phone friendly */

@media screen and (max-width: 600px) {
    code {
        margin-left: auto;
        margin-right: auto;
    }
}

@media screen and (max-width: 500px) {
    code {
        font-size: var(--code-size-small);
    }

    .code-line {
        font-size: var(--code-size-small);
    }
}