html {
    height: 100%;
}
body {
    background-color: black;
    color: white;
    font-family: Arial, sans-serif;
    font-size: 16px;
    line-height: 1.5;
    height: 100%;
    margin: 0;
    padding: 0;
    position: relative
}

header {
    display: flex;
    flex-flow: row nowrap;
    column-gap: 20px;
    justify-content: space-between;
    width: 100%;
    text-align: center;
    overflow: hidden;
}
h1 {
    margin: 0 24px;
    padding: 0;
    font-size: 200%;
    line-height: 1.5;
    text-align: left;
}
h1 span {
    font-size: 40%;
}
a:link { color: white; text-decoration: none; }
a:visited { color: white; text-decoration: none; }
a:hover { color: white; text-decoration: underline; }
a:active { color: white; text-decoration: none; }

nav {
    display: flex;
    flex-flow: row nowrap;
    column-gap: 0;
    justify-content: flex-end;
    margin: 0 12px;
    padding: 0;
    list-style-type: none;
}
nav a, button {
    display: block;
    background-color: black;
    border: 1px solid white;
    border-radius: 12px;
    color: white;
    height: 24px;
    width: 120px;
    margin: 12px;
    text-align: center;
    text-transform: uppercase;
    cursor: pointer;
}
nav a:link, button { color: white; text-decoration: none; }
nav a:visited { color: white; text-decoration: none; }
nav a:active, button:active { color: black; background-color: silver; }
nav a:hover, button:hover { background-color: white; color: black; text-decoration: none; }

@media screen and (max-width: 720px) {
    header {
        flex-flow: column wrap;
    }
    h1 {
        text-align: center;
    }
    nav {
        justify-content: center;
    }
}


main, h2, section {
    width: 100%;
    text-align: center;
}
main.fit {
    position: absolute;
    top: 50px;
    left: 0;
    right: 0;
    bottom: 0;
    overflow: hidden;
}
h2 {
    margin: 15px 0;
}

@media screen and (min-width: 721px) {
    main.side-by-side section:first-of-type {
        position: absolute;
        top: 80px;
        left: 0;
        right: 50%;
        bottom: 0;
        width: 50%;
        height: 100%;
    }
    main.side-by-side section:last-of-type {
        position: absolute;
        top: 80px;
        left: 50%;
        right: 0;
        bottom: 0;
        width: 50%;
        height: 100%;
    }
}
@media screen and (max-width: 720px) {
    main.fit {
        top: 98px;
    }
    h2 {
        margin: 10px 0;
    }
}

h2.success {
    background-color: green;
}
h2.error {
    background-color: red;
}

img.profile {
    width: 360px;
    height: 360px;
    margin: 12px auto;
}

dialog.progress {
    position: absolute;
    top: 25%;
    left: 25%;
    right: 25%;
    height: 80px;
    background-color: black;
    border: 2px solid white;
    border-radius: 4px;
    color: white;
}

dialog.progress::backdrop {
    background-color: white;
    opacity: 0.15;
}

dialog.progress progress {
    width: 90%;
    height: 24px;
    margin: 12px auto;
}
