/* --------------

   GENERAL STYLES

   -------------- */

/* PAGE FORMATTING */
* {
    font-family: "Lucida";
    box-sizing: border-box;
}

html {
    font-size: 10px;
    overflow-x: hidden;
}

body {
    margin: 0;
    width: 100%;
    background: #f5f5f7;
    background: radial-gradient(circle at right top, #d14594 , #392078);
    background-attachment: fixed;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: top center;
    font-size: 2rem;
    
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    
    transition: padding .2s ease-in-out;
}


/* TEXT FORMATTING */
h1, h2, h3, h4 {
    margin: 0;
}

bar h1,
bar h2,
bar h3,
bar h4 {
    text-shadow: 0 1px 0 #ececec;
}

abbr { cursor: pointer; }

aria-only {
    position: absolute;
    z-index: -1;
    color: transparent;
    user-select: none;
}


/* LINK FORMATTING */
a {
    color: #0066cc;
    transition: color .2s;
}

a:hover, a:focus, a:active {
    color: #003366;
}

label {
    all: unset;
}


/* GRADIENT STYLES */
bar {
    background: linear-gradient(#cfcfcf, #a5a5a5);
    border: 1px solid #515151;
    border-radius: 0 0 1rem 1rem;
    box-shadow: inset 0 1px 1px #ececec;
}


/* BUTTON STYLES */
.button {
    position: relative;
    flex: 1;
    background: linear-gradient(#d0d0d0, white);
    border: 1px solid #8b8b8b;
    line-height: 1rem;
    text-decoration: none;
    cursor: pointer;
    border-radius: 2rem;
    
    font-size: 2rem;
    font-weight: bold;
    color: black;
    
    transition: color .3s, border .1s;
    
    display: flex;
    justify-content: center;
    overflow: hidden;
    
    box-shadow: 0 2px 5px rgba(0, 0, 0, .5);
    user-select: none;
}

.button:before {
    position: absolute;
    content: '';
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(#c2c2c2, #e1e1e1);
    opacity: 0;
    transition: opacity .3s;
}

.button:after {
    position: absolute;
    content: '';
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(#1859bf, #cffcff);
    opacity: 0;
    transition: opacity .1s;
}

.button:hover {
    color: black;
}

.button:hover:before {
    opacity: 1;
}

.button:active {
    border: 1px solid #274cab;
}

.button:active, .button:focus {
    color: black;
}

.button:active:after {
    opacity: 1;
}

.button:active label:before {
    background: rgba(200, 240, 252, .75);
}

.button label {
    z-index: 1;
    position: relative;
    width: 100%;
    padding: 1rem 2rem;
    pointer-events: none;
}

.button label:before {
    z-index: -1;
    position: absolute;
    content: '';
    top: 0;
    left: .75rem;
    margin: 0 auto;
    width: calc(100% - 1.5rem);
    height: 40%;
    background: rgba(255, 255, 255, .75);
    border-radius: 4rem 4rem 2rem 2rem;
    
    transition: background .1s;
}


/* DROPDOWN STYLES */
dropdown {
    position: relative;
    flex: 1;
    box-shadow: 0 2px 5px rgba(0, 0, 0, .5);
    border-radius: 1rem;
    font-weight: bold;
    user-select: none;
    display: flex;
    justify-content: center;
}

header dropdown {
    position: relative;
    width: 100%;
    box-shadow: none;
    
    display: none;
    justify-content: flex-start;
}

    dropdown selector {
        position: relative;
        background: linear-gradient(#d0d0d0, white);
        border: 1px solid #8b8b8b;
        border-right: none;
        border-radius: 1rem 0 0 1rem;
        line-height: 1rem;
        overflow: hidden;
        display: flex;
        flex: 1;
    }


        dropdown selection {
            z-index: 1;
            position: relative;
            width: 100%;
            padding: 1rem;
        }

            dropdown selection:before {
                z-index: -1;
                position: absolute;
                content: '';
                top: 0;
                left: .5rem;
                width: calc(100% - .5rem);
                height: 40%;
                background: rgba(255, 255, 255, .75);
                border-radius: 1rem 0 0 .5rem;

                transition: background .1s;
            }

    dropdown arrow {
        position: relative;
        background: linear-gradient(#3c7fd6, #65abf3);
        display: flex;
        align-items: center;
        border: 1px solid #274cab;
        border-left: none;
        border-radius: 0 1rem 1rem 0;
        overflow: hidden;
    }

        dropdown arrow forg {
            z-index: 1;
            position: relative;
            padding: 1rem .75rem;
            color: white;
            line-height: 1rem;
        }

        dropdown arrow forg:after {
            z-index: -1;
            position: absolute;
            content: '';
            top: 0;
            left: 0;
            width: calc(100% - .5rem);
            height: 40%;
            background: rgba(200, 240, 252, .75);
            border-radius: 0 1rem .5rem 0;
        }


/* Menu button */
toggle {
    position: relative;
    
    flex: 1;
    display: flex;
    justify-content: center;
    align-items: center;
    border-radius: 1rem;
    cursor: pointer;
}

    toggle:after,
    toggle:before,
    toggle arrow:before,
    toggle selector:before {
        content: "";
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        
        opacity: 0;
        transition: opacity .3s
    }

    toggle:after {
        transition: opacity .1s;
    }

    toggle selector:before {
        background: linear-gradient(#c2c2c2, #e1e1e1);
    }

    toggle arrow:before {
        background: linear-gradient(#2d60c0, #4284ea);
    }

    toggle:hover:before,
    toggle:active:after, toggle:focus:after,
    toggle:hover arrow:before, toggle:hover selector:before,
    toggle:focus arrow:before, toggle:focus selector:before {
        opacity: 1;
    }

    toggle:focus {
        box-shadow: 0 0 5px 0 #3c7fd6;
        outline: none;
    }

    toggle:focus + menu {
        opacity: 1;
        transform: scaleY(1);
        transition: opacity .3s, top .3s, transform 0s;
    }

header toggle {
    padding: .5rem;
    border-radius: .5rem;
    font-size: 4rem;
    line-height: 4rem;
    box-shadow: none;
    
    display: block;
    flex: 0;
}

    header toggle:before {
        background: linear-gradient(#d8d8d8, #aeaeae);
        box-shadow: inset 0 1px 1px #ececec, 0 1px 2px rgba(0, 0, 0, .5);
        border-radius: .5rem;

    }

    header toggle:after {
        background: linear-gradient(#a5a5a5, #aeaeae);
        box-shadow: inset 0 1px 4px rgba(0, 0, 0, .5);
        border-radius: .5rem;
    }

    header toggle:focus {
        box-shadow: none;
    }

        header toggle forg {
            z-index: 1;
            position: relative;
            vertical-align: bottom;
            color: #767676;
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            text-shadow: 0 1px 0 #767676, 0 0 0 rgba(0, 0, 0, .6);
            transition: text-shadow .3s;
        }

            header toggle:hover forg {
                text-shadow: 0 1px 0 #888888, 0 0 0 rgba(0, 0, 0, .4);
            }

            header toggle:active forg,
            header toggle:focus forg {
                text-shadow: 0 1px 0 rgba(118, 118, 118, .6), 0 0 0 rgba(0, 0, 0, .8);
                transition: text-shadow .1s;
            }


/* Menu list */
menu {
    z-index: 97;
    position: absolute;
    top: 3.5rem;
    left: 0;
    margin: 0;
    padding-inline-start: 0;
    width: 100%;
    max-height: 75vh;
    background: white;
    text-align: left;
    border: 1px solid #8b8b8b;
    border-radius: 1rem;
    box-shadow: 0 5px 10px rgba(0, 0, 0, .5);
    cursor: pointer;
    
    overflow-y: overlay;
    scrollbar-width: none;
    -moz-scrollbar-width: none;
    opacity: 0;
    display: flex;
    flex-direction: column;
    
    transform: scaleY(0);
    transition: opacity .3s, top .3s, transform 0s .3s;
}

menu::-webkit-scrollbar {
    display: none;
}

header menu {
    position: fixed;
    top: 7rem;
    left: .5rem;
    width: calc(100% - 1rem);
    font-size: 3rem;
    text-align: center;
    border: 1px solid #515151;
}

header menu .button {
    font-size: 4rem;
    line-height: 4rem;
    border-radius: 4rem;
}

header menu .button label:before {
    left: 1.5rem;
    width: calc(100% - 3rem);
    border-radius: 5rem 5rem 3.5rem 3.5rem;
}

menu item,
menu a {
    padding: 0 1rem;
    color: black;
    text-decoration: none;
}

menu item:hover,
menu a:hover {
    background: #d4d4d4;
    color: black;
}

menu item.selected {
    background: linear-gradient(#6389f8, #2362f7);
    color: white;
}



/* Header */
header {
    margin-bottom: 2rem;
    width: 100%;
    text-align: center;
    border: 0;
    border-radius: 0;
    box-shadow: 0px 4px 2rem 0 rgba(0, 0, 0, 0.5);
    background: linear-gradient(rgba(225, 225, 225, .85), rgba(185, 185, 185, .85));
    
    display: flex;
    justify-content: center;
    user-select: none;
    
    transition: width .2s ease-in-out, border-radius .2s ease-in-out, margin .2s ease-in-out;
}

header section {
    position: relative;
    width: 50%;
    border: 1px solid grey;
    border-top: 0;
    border-bottom: 0;
    color: black;
    font-size: 1.75rem;
    text-shadow: 0 1px 0 rgba(225, 225, 225, 1);
    box-shadow: -1px 0 0 0 rgba(225, 225, 225, .5), inset -1px 0 0 0 rgba(225, 225, 225, .5);
    
    display: flex;
    justify-content: center;
    align-items: center;
}

header section a {
    padding: 0 1.5rem;
    color: black;
    text-decoration: none;
    cursor: pointer;
}

header section a:hover {
    color: black;
    background: linear-gradient(rgba(225, 225, 225, 1), rgba(185, 185, 185, 1));
}

header left {
    position: absolute;
    left: 0;
}

header left a {
    padding: 0 2rem;
    cursor: pointer;
}

header active {
    font-weight: bold;
}

header a:active,
header a:focus {
    background: linear-gradient(#6389f8, #2362f7);
    color: white;
    font-weight: normal;
}

/* Content wrapper */
page {
    width: 60%;
    border-bottom: 0;
    border-radius: 1rem;
    transition: width .2s ease-in-out, border-radius .2s ease-in-out;
    text-align: center;
    box-shadow: 0px 4px 2rem 0 rgba(0, 0, 0, 0.5);
}

/* Nav bars */
page bar {
    position: relative;
    margin: 0;
    padding: 1rem 0;
    width: 100%;
    
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

page bar:first-child,
question bar {
    border-radius: 1rem 1rem 0 0;
}

page bar section {
    width: 60%;
    margin: 0 auto;
    display: flex;
    justify-content: center;
    gap: 1rem;
}

page bar form {
    position: relative;
    flex: 1;
    display: flex;
    justify-content: center;
}

page bar select {
    position: relative;
    padding: 2px 0;
    background: linear-gradient(#d0d0d0, white);
    border: 1px solid #8b8b8b;
    border-radius: 1rem;
    outline: 0;
    flex: 1;
    text-align: center;
    
    transition: color .2s;
    
    cursor: pointer;
    box-shadow: 0 2px 5px rgba(0, 0, 0, .5);
}

page bar select option:first-child::after {
    position: absolute;
    content: '';
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: red;
}

page bar form:before {
    z-index: 1;
    position: absolute;
    content: '';
    top: 1px;
    left: .5rem;
    margin: 0 auto;
    width: calc(100% - 1rem);
    height: 40%;
    background: rgba(255, 255, 255, .75);
    border-radius: 1rem 1rem .5rem .5rem;
    pointer-events: none;
    
    transition: background .1s;
}

page bar select option,
page bar select optgroup {
    color: black;
}

page bar #update-title {
    font-size: 3rem;
    font-weight: bold;
    color: black;
}

content {
    position: relative;
    padding: 1rem;
    width: 100%;
    background: #ececec;
    border: 1px solid #888888;
    border-top: 0;
    border-bottom: 0;
    
    display: block;
}

content img {
    width: 100%;
    vertical-align: bottom;
}

#panels {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    overflow: hidden;
    gap: 1rem;
}

#panels .panel {
    position: relative;
    flex: calc(50% - 1rem);
    border-radius: 1rem;
    overflow: hidden;
    border: 1px solid #515151;
    aspect-ratio: 16/9;
}

#panels prompt {
    flex: 100%;
    display: flex;
    flex-direction: column;
}

#panels prompt user {
    font-weight: bold;
}

#panels prompt timestamp {
    font-weight: bold;
    font-size: 1.5rem;
}

#panels #caption {
    display: flex;
    flex-direction: column;
}

#panels #caption actor {
    font-weight: bold;
}

/* Questions & Answers */
qa {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 1rem;
}

qa h2 {
    flex: 100%;
}

qa card {
    max-width: 50%;
    flex: 30%;
    display: flex;
    flex-direction: column;
}

qa answer {
    padding: 1rem;
    background: white;
    border: 1px solid #888888;
    border-top: 0;
    border-radius: 0 0 1rem 1rem;
    
    flex: 1;
    display: block;
}

/* FOOTER */
footer {
    margin: 1rem;
    color: white;
    font-size: 1.5rem;
    text-align: center;
    
    display: flex;
    flex-direction: column;
    align-items: center;
}

/* MEDIA QUERIES */
@media only screen and (max-width: 1440px) {
    header section {
        width: 80%;
    }
    
    page bar {
        padding: 1rem;
    }
    
    page bar section {
        width: 100%;
    }
    
    page {
        width: 80%;
    }
}

@media only screen and (max-width: 1024px) {
    qa card {
        max-width: 100%;
        flex: 45%;
    }
}

@media only screen and (max-width: 768px) {
    body {
        padding-bottom: 0;
    }
    
    header {
        z-index: 98;
        position: fixed;
        top: 0;
        margin: 0;
        padding: .75rem;
        border-bottom: 1px solid #515151;
        background: linear-gradient(rgba(225, 225, 225, 1), rgba(185, 185, 185, 1));
        box-shadow: none;
        
        justify-content: flex-start;
    }
    
    header section {
        display: none;
    }
    
    header dropdown {
        display: flex;
    }
    
    page {
        margin-top: 6.5rem;
        width: 100%;
        border-radius: 0;
    }
    
    bar {
        border-radius: 0!important;
        border-left: 0;
        border-right: 0;
    }
    
    content {
        padding: 1rem 0;
        border: 0;
    }
    
    qa card {
        flex: 100%;
    }
    
    qa answer {
        border-left: 0;
        border-right: 0;
        border-radius: 0;
    }
    
    #panels {
        padding: 0 1rem;
    }
    
    #panels .panel {
        flex: 100%;
    }
}

@media only screen and (max-width: 500px) {
    #bookmark-bar,
    #navigation-bar {
        display: flex;
        flex-direction: column;
    }
    
    #update-title {
        display: flex;
        flex-direction: column;
    }
    
    #update-title comma {
        display: none;
    }
}