:root {
    /* Base Palette: muted Gradient */
    --blue-muted-1: #dceeff;
    --blue-muted-2: #c6deff;
    --blue-muted-3: #b0c4de;
    --blue-muted-4: #9fb3cd;

    /* Base Palette: Dark Gradient */
    --blue-dark-1: #253da1;
    --blue-dark-2: #02198b;
    --blue-dark-3: #02055a;
    --blue-dark-4: #000137;

    /* unused Palette: Light Gradient */
    --blue-light-1: #dceeff;
    --blue-light-2: #c6deff;
    --blue-light-3: #a7ccff;
    --blue-light-4: #85a8e3;

    /* Semantic Mappings */
    --bg-main: var(--blue-muted-3);
    --bg-panel: var(--blue-muted-4);
    --accent-panel: var(--blue-muted-2);
    --border-panel: black;
    --text-main: black;
    --text-heading: black;
    --text-link: var(--blue-dark-2);
    --button-bg: var(--blue-dark-2);
    --button-text: var(--blue-dark-4);
    --button-outline-text: var(--blue-dark-2);
}

body {
    color: var(--text-main);
}

button, input[type="button"], input[type="submit"], .btn, .btn-outline {
    color: var(--button-text);
    font-weight: bold;
}

.btn {
    padding: 0.5rem 1rem;
    border: 2px solid transparent;
    border-radius: 4px;
    cursor: pointer;
    background: var(--button-bg);
    color: var(--accent-panel);
}

.btn-outline {
    background: transparent;
    border: 2px solid var(--button-outline-text);
    color: var(--button-outline-text);
    padding: 0.5rem 1rem;
    border-radius: 4px;
    cursor: pointer;
}

.form-centered {
    display: flex;
    flex-direction: column;
    align-items: center;
}

.form-centered form {
    width: 100%;
    max-width: 25rem;
}

.form-aligned p {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin: 0.5rem 0;
}

.form-aligned p label {
    text-align: right;
    width: 8rem;
    flex-shrink: 0;
}

.form-aligned p input {
    flex-grow: 1;
}

h1, h2, h3, .site-panel summary {
    text-align:center;
    color: var(--text-heading);
}

h1 {
    margin-top:1em;
}

li {
    margin-top:1em;
}

.center {
    display: block;
    margin-left: auto;
    margin-right: auto;
    text-align:center;
}


@media screen {

    body {
        margin:0;
        font-size: 140%;
        background-color: var(--bg-main);
        display: flex;
        align-items: flex-start;
        -webkit-text-size-adjust: 100%;
        text-size-adjust: 100%;
    }

    body::after {
        content: "";
        /* Counterbalances the left nav when collapsed */
        min-width: 4.5em;
    }

    @media (max-width: 767px) {
        body {
            font-size: 85%;
            flex-direction: column;
            align-items: center;
        }

        body::after {
            display: none;
        }
    }

    a {
        /*color: #000137;*/
        color: var(--text-link);
    }

    textarea, input[type="text"], input[type="password"], input[type="email"], input[type="number"] {
        background-color: var(--bg-main);
    }

    code {
        background-color: var(--bg-panel);
    }

    code {
        /* Attempt to visually give the same weight to code and regular text. */
        font-size: 120%;
    }

    .global-nav {
        position: relative;
        z-index: 2;
        min-width: 4.5em;
    }

    .global-nav ul.nav-links {
        list-style-type: none;
        margin: 0;
        padding: 0.5em 1em;
        display: none;
        flex-direction: column;
        align-items: flex-start;
        gap: 0.5em;
        white-space: nowrap;
    }

    .global-nav li {
        margin-top: 0;
    }

    .nav-logo {
        height: 2em;
        vertical-align: middle;
        border-radius: 15%;
    }

    .burger-toggle {
        display: none;
    }

    .burger-icon {
        display: inline-block;
        cursor: pointer;
        font-size: 3em; 
        padding: 0.1em 0.3em;
        line-height: 1;
        user-select: none;
    }

    .burger-icon svg {
        width: 1em;
        height: 1em;
        display: block; /* Removes bottom baseline gap */
    }

    .burger-toggle:checked ~ ul.nav-links {
        display: flex;
    }

    #fakebackground {
        position: fixed;
        top: 10em;
        background-image: url('../img/llbc_typing.svg');
        background-repeat: no-repeat;
        background-position: top center;
        background-size: 45em;
        height: 100%;
        width: 100%;
        opacity: 0.25;
        z-index: 0;
    }

    main {
        width: 90%;
        flex-grow: 1;
        margin: auto;
        display: flex;
        flex-direction: column;
        align-items: center;
        /*background: #88a6c6;*/
        margin-top: 1em;
        position: relative;
        z-index: 1;          
    }

    .site-panel {
        margin:auto;
        margin-top: 2em;
        border-radius: 1.2em;
        border: solid;
        border-color: var(--border-panel);
        border-width: .14em;
        background: var(--bg-panel);
        padding: 1em;
        width: 80%;
        box-sizing: border-box;
    }

    details.site-panel summary {
        font-size: 1.2em;
        font-weight: bold;
        cursor: pointer;
        outline: none;
    }

    @media (max-width: 767px) {
        .form-aligned p {
            flex-direction: column;
            align-items: flex-start;
            gap: 0.2rem;
            margin: 0.3rem 0;
        }

        .form-aligned p label {
            width: auto;
            text-align: left;
        }

        .form-aligned p input,
        .form-aligned p textarea {
            width: 100%;
            box-sizing: border-box;
        }

        .btn, .btn-outline {
            padding: 0.3rem 0.6rem;
        }

        .site-panel {
            margin-top: 0em;
            margin-bottom: 0.8em;
            border-width: .15em;
            width: 96%;
            padding: 0.4em;
        }

        h2, h3 {
            margin-top: 0.5em;
            margin-bottom: 0.5em;
        }

        li {
            margin-top: 0.4em;
        }

        main {
            width: 100%;
            margin-top: 0;
        }

        .global-nav {
            min-width: 100%;
            display: flex;
            align-items: center;
        }

        .global-nav ul.nav-links {
            flex-direction: row;
            flex-wrap: wrap;
            gap: 0.5em;
            padding: 0.5em;
        }

        h1 {
            margin-top: 0;
        }
    }

} /* end @media screen */

@media print {

    body {
        margin:2em;
        font-size: 100%;
    }

    li {
        margin-top:1em;    
    }

    h1 {
        text-align:center;
        margin-top:1em;
    }

    h2, h3 {
        text-align:center;
    }

    a {
        /*color: #000137;*/
    }

    textarea {
    }

    code {
    }

    .center {
        display: block;
        margin-left: auto;
        margin-right: auto;
        text-align:center;
    }

    body {
        margin:0;
    }

    main {
        width: 95%;
        margin: auto;
        display: flex;
        flex-direction: column;
        align-items: center;
        margin-top: 1em;
        position: relative;
        z-index: 1;
    }

    .site-panel {
        margin:auto;
        margin-top: 2em;
        border-radius: 1.2em;
        width: 95%;
        box-sizing: border-box;
    }

} /* end @media print */
