* {
    box-sizing: border-box; /* box model shucks */
    --color-white: #ffffff;
    --color-bright: #e0d0d0;
    --color-blue: #aaaaff;
    --color-gray: #595959;
    --color-light-gray: #8e8e8e;
    --color-red: #9b1616;
    --color-green: #199719;
    --color-orange: #f7942b;
    --color-orange-dark: #b36b1f;

    --padding: 1em;
}

hr {
    height: 0.1em;
    margin-top: 2em;
    border-bottom: none;
    border-left: none;
    border-right: none;
    border-top: 2px dashed gray;
    width: 100%;
}

h1 {
    font-size: 1.75em;
}
h2 {
    font-size: 1.5em;
}

body {
    margin: 0;
    background-color: #1d1d1d;
    background-image: url("/assets/bg_main.png");
    image-rendering: pixelated;

    font-family: sans-serif;
    color: var(--color-bright);
}

a {
    color: var(--color-blue);
}

a, a:visited {
    text-decoration: none;
}

li {
    text-align: justify;
}

p {
    margin-top: 1.5em;
    text-align: justify;
}

.p--warning {
    color: var(--color-orange);
    font-weight: bold;
}

.span--note {
    color: var(--color-light-gray);
    font-size: smaller;
}

.h--marginb {
    margin-bottom: 0;
}

.mono {
    margin-top: 5px;
    font-family: Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    background-color: black;
    text-align: start !important;
    overflow-wrap: break-word;
}

/* Header */

.navigation-container {
    background-image: url("/assets/bg_top.png");
    image-rendering: pixelated;
    height: 48px;
    margin-bottom: 2em;
    padding-left: var(--padding);
    padding-right: var(--padding);
}

.navigation {
    margin: auto;
    max-width: 62.5rem;

    display: flex;
    flex-direction: row;
    place-items: center;
    column-gap: 1em;
    height: 100%;
}

.navigation__logo {
    image-rendering: -moz-crisp-edges;
    image-rendering: pixelated;
}

.navigation__links--start {
    text-align: start;
}
.navigation__links--end {
    text-align: end;
    flex: 1;
}

.navigation__link {
    font-weight: bold;
    padding: 0.5em;
}

.navigation__link--white {
    color: var(--color-white);
}

/* Main container */

.main {
    display: flex;
    place-content: center;
    column-gap: 2em;
    row-gap: 2em;
    
    max-width: 62.5rem;
    margin: auto;

    padding-left: var(--padding);
    padding-right: var(--padding);
}

.main--legal {
    flex-direction: column;
    column-gap: 0;
    row-gap: 0;
}

.section--wide {
    width: 100%;
}

/* Footnote */

.footer {
    margin: 2em;
    text-align: center;
    color: var(--color-gray);
    font-size: smaller;
}

.footer__link {
    color: var(--color-light-gray);
}

/* Common elements */

.button {
    background: linear-gradient(#9e9e9e, #4e4e4e);
    color: var(--color-white);
    font-weight: bold;
    text-align: center;

    display: flex;
    place-items: center;
    place-content: center;
    
    border-radius: 0.25em;
    padding-top: 0.5em;
    padding-bottom: 0.5em;
    padding-left: 1em;
    padding-right: 1em;
}

.button--orange {
    background: linear-gradient(var(--color-orange), var(--color-orange-dark));
}

/* Status message blocks */

.status-message {
    max-width: 44em;
    margin: auto;
    margin-bottom: 2em;
    padding-left: var(--padding);
    padding-right: var(--padding);

    display: flex;
    column-gap: 1em;
    place-content: center;
    place-items: center;
}


.status-message__description {
    text-align: initial;
    font-size: larger;
    flex: 1;
    margin: 0;
}

/* Main page blocks */

.trailer-video {
    width: 100%;
}

.download-now {
    display: flex;
    flex-direction: column;
    place-items: center;
}

.download-now__button {
    font-size: larger;
    margin-top: 0.5em;
}

.bluemap__button {
    text-align: center;
}

.bluemap__img {
    margin: 0em -10em 0em -10em;
    width: 100%;
}

.bluemap__comment {
    margin-top: -0.5em;
    text-align: center;
    color: var(--color-bright);
}

/* Utilties blocks */

.utilities {
    display: flex;
    flex-wrap: wrap;
    column-gap: 1em;
    place-content: center;
    row-gap: 1em;
}

.utility {
    display: flex;
    flex-direction: column;
    width: 25em;
}

.utility__description {
    flex: 1;
}

/* Account-related blocks */

.account-form {
    max-width: 40em;
    margin: auto;
    display: flex;
    flex-direction: column;
    row-gap: 1em;
}

.form__input {
    margin-top: 0.25em;
    width: 100%;
    padding: 0.4em;
}

.account-form__link {
    font-size: smaller;
}

.form-submit {
    width: 50%;
    margin-top: 0.25em;
}

/* Other */

@media (max-width: 65em) {
    .navigation__user-status {
        display: none;
    }
}

@media (max-width: 50em) {
    main {
        margin: 1em;
        flex-direction: column;
    }

    .navigation__home {
        display: none;
    }

    .navigation__separator--account,
    .navigation__user-status {
        display: none;
    }

    .downloads__links--wide {
        flex-direction: column;
    }
}

@media (max-width: 37em) {
    .navigation__username {
        display: none;
    }

    .navigation__separator {
        display: none;
    }
}
