:root {
    --primary: #D83800;
    --primary-light: #F74C01;
    --primary-lighter: #EFC9BD;
    --spacing: 10px;
    --2spacing: calc(2*var(--spacing));
}

@font-face {
    font-family: "Inconsolata";
    src: url("../fonts/Inconsolata-VariableFont_wdth,wght.1face2e09e77.ttf") format("opentype")
}

html {
    background-color: black;
    height: 100%;
}

body {
    display: flex;
    justify-content: center;
    align-items: center;
    margin: 40px 8px;
    /*height: 100%;*/
}

#main {
    width: 702px;
}

.closed-window {
    background-color: var(--primary-light)!important;
    box-shadow: none!important;
    translate: var(--spacing) var(--spacing);
}

nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    a {
        padding: 4px var(--spacing);
        white-space: nowrap;
        text-align: center;
        flex: 1;
    }
    .a-selected {
        background-color: var(--primary-light);
        color: var(--primary-lighter);
    }
}

.window {
    background-color: var(--primary-lighter);
    margin: var(--spacing) var(--2spacing) var(--2spacing) var(--spacing);
    box-shadow: var(--spacing) var(--spacing) 0 var(--primary-light);
    padding: var(--spacing);
    fieldset {
        border: 1px solid var(--primary);
        legend {
            color: black;
        }
    }
}

.window-wireframe {
    background-color: transparent;
    border: 1px dashed var(--primary-lighter);
    box-shadow: none;
    margin: var(--spacing);
}

#main-window {
    max-width: 650px;
    position: relative;
    transition-duration: .4s;
    transition-property: background-color, translate, box-shadow;
    #orgs, #sponsors, #keynotes, #media {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-evenly;
        margin: var(--spacing) 0 0 0;
        img {
            height: 100px;
            object-fit: contain;
        }
    }
    #keynotes {
        .keynote {
            display: flex;
            flex-direction: column;
            max-width: 100px;
            text-wrap: wrap;
            img {
                max-width: 100px;
            }
            p {
                margin: 4px 0;
                font-weight: 500;
                color: var(--primary);
            }
        }
    }
}

#main-window-content {
    display: flex;
    flex-direction: column;
}

.hidden {
    visibility: hidden;
    opacity: 0;
    top: var(--2spacing)!important;
    left: var(--2spacing)!important;
}

#easter-egg {
    * {
        color: var(--primary-lighter);
    }
    pre {
        font-size: 14px;
    }
    fieldset {
        width: 350px;
        border-color: var(--primary-lighter);
    }
    .discount-info {
        font-size: 14px;
        width: 376px;
    }
    position: absolute;
    top: 0; bottom: 0; left: 0; right: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    transition-duration: .4s;
    transition-property: opacity, top, left;
}

* {
    color: black;
    font-family: 'Inconsolata', monospace;
    font-weight: 300;
}

#bottom-section {
    max-width: calc(650px + var(--spacing));
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    margin: var(--spacing);
    padding: var(--spacing);

    h2 {
        color: var(--primary-lighter);
        font-size: 16px;
        margin: 0 var(--spacing) var(--spacing) var(--2spacing);
    }

    .person {
        width: 80%;
        display: flex;
        justify-content: flex-start;
        margin: var(--spacing) 0 0 0;

        img {
            width: 70px;
            height: 70px;
            object-fit: cover;
        }

        .person-text {
            padding: 0 0 0 var(--spacing);

            h3 {
                font-size: 16px;
                color: var(--primary-light);
                font-weight: 500;
                margin: 0;
            }

            p {
                margin: 4px 0 0 0;
                color: var(--primary-lighter);
            }
        }
    }

    .right {
        flex-direction: row-reverse;
        align-self: flex-end;
        justify-content: space-between;
        .person-text {
            padding: 0 var(--spacing) 0 0;
        }
    }
}

#social {
    max-width: calc(650px + 3*var(--spacing));
    display: flex;
    margin: 0 var(--spacing);
    justify-content: space-evenly;
}

footer {
    max-width: calc(650px + 3*var(--spacing));
    &, *, a {
        color: var(--primary-lighter);
        font-size: 14px;
        line-height: 1.2;
    }
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    margin: var(--spacing);
}

b {
    font-weight: 500;
}

h1 {
    margin: 0;
}

h2 {
    font-size: 16px;
    font-weight: 500;
    color: var(--primary);
    margin: 0;
}

fieldset {
    margin: 0;
    border: 1px solid var(--primary-lighter);
    legend {
        color: var(--primary-lighter);
    }
}

.tree {
    color: var(--primary);
    font-weight: 100;
    letter-spacing: 3px;
    line-height: 1.4;
    white-space: pre;
}

a {
    color: var(--primary);
    font-weight: 500;
}

#info {
    margin: 0;
    p {
        display: contents;
    }
}

.mobile {
    display: none;
}

.close-btn {
    background: none;
    border: none;
    text-decoration: underline;
    color: var(--primary);
    font-weight: 500;
    font-size: 16px;
    align-self: flex-end;
}

.close-btn:hover {
    cursor: pointer;
}

@media(max-width: 525px) {
    .mobile {
        display: unset;
    }
    * {
        font-size: 15px;
    }
    .tree {
        letter-spacing: -3px;
        margin-left: -3px;
        line-height: 1.3;
    }
    #info {
        border: none;
        padding: 0;
        margin: 0 0 var(--spacing) 0;
        legend {
            display: none;
        }
    }
    :root {
        --spacing: 5px;
    }
    #easter-egg {
        fieldset {
            width: 200px;
            pre {
                font-size: 11px;
            }
        }
        .discount-info {
            width: 298px;
        }
    }
    #bottom-section {
        .person {
            width: unset;
            margin-bottom: var(--spacing);
        }
    }
}

.generic-page {
    p {
        margin: 2px 0;
    }
}

.richtext-image {
    max-height: 450px;
    height: auto;
    object-fit: contain;
}

.richtext-image.full-width {
    max-width: 100%;
    width: 100%;
}

.richtext-image.left {
    max-width: 280px;
    width: auto;
    float: left;
    margin-right: 8px;
}

.richtext-image.right {
    max-width: 280px;
    width: auto;
    float: right;
    margin-left: 8px;
}

hr {
    width: 100%;
    border-top: 1px solid var(--primary);
    color: transparent;
}


@media(max-width: 400px) {
    * {
        font-size: 14px;
    }
}

@media(max-height: 1400px) {
    body {
        height: unset;
    }
}
