:root{
    --blue2: hsl(211, 100%, 34%);
    --dark-blue: hsl(250, 100%, 21%);
    --black: hsl(237, 100%, 7%);
    --blue: hsl(244, 95%, 29%);
    --purple: hsl(255, 89%, 25%);
    --light-blue: hsl(233, 76%, 49%);
    --light-blue2: hsl(230, 91%, 56%);
    --light-purple: hsl(231, 58%, 63%);
    --aqua: hsl(182, 53%, 60%);

    --white: #F2F1F5;
    --white2: #E7E8E8;
    --white3: #b1bbbb;
    --gray2: #AEB4B1;

    --gray: #565457;
    --gray-inner: #575079;

    --border: 0.5rem;
    --gap: 0.33rem;
}

body{
    background: var(--black);
    background-image: radial-gradient(var(--dark-blue) 15%, var(--black));
    color: var(--white);
    text-align: center;
}
.body, p, li{
    line-height: 1.33;
}

::-webkit-scrollbar{
    width: calc(var(--gap) * 2);
    height: calc(var(--gap) * 2);
}

::-webkit-scrollbar-thumb{
    background: var(--white2)!important;
    border: 2px solid var(--gray2)!important;
    border-radius: var(--border);
}

a{
    color: var(--white);
    text-decoration-style: solid;
}

a:is(:hover, :focus){
    color: var(--aqua);
}

.ffbox{
    display: block;
    min-width: 44em;
    width: max-content!important;
    overflow: auto;
    background: var(--white2)!important;
    background: linear-gradient(90deg, var(--gray2) 0%, var(--white2) calc(var(--gap) / 2), var(--white2) calc(100% - var(--gap) * 2),  var(--gray2) 100%)!important;
    border: var(--gray) 2px solid!important;
    border-radius: var(--border)!important;
    margin: 2em auto;
    text-shadow: 0 0.15em var(--black)!important;

    > div , > span{
        display: block;
        margin: var(--gap)!important;
        min-height: fit-content!important;
        width: calc(100% - 2 * var(--gap))!important;
        padding: 0 2rem!important;
        border: var(--gray-inner) 2px solid!important;
        border-radius: calc(var(--border) * 0.66)!important;
        background: var(--blue)!important;
    }
}

.ffbox:not(footer, header) > div :is(p, ol):last-child{
    margin-bottom: 2em;
}

.widget-preview + p{
    margin-top: 2em;
}

header.ffbox{
    margin-top: 1em;
    width: 40em!important;

    > div{
    display: flex;
        justify-content: center;
        align-items: flex-start;
        gap: 1.5em;
    }

    h1{
        width: fit-content;
        margin: 0.25em 0;
        font-size: calc(var(--heading-size) * 1.25);
    }
}

img[src*="Crystal"]{
    display: inline-block;
    margin-top: 0.66em;
    height: 3.55em;
    filter: drop-shadow(0 0.3rem var(--black));
}

.ffbox :is(h1, h2, h3, a.ffbox > span > span), .joinlink, .member-box .field--name, th span{
    font-variant: small-caps;
    text-shadow: none;
    background: -webkit-linear-gradient(var(--white) 30%, var(--white3));
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    filter: drop-shadow(0 0.075em var(--black));

    img:not(.vertnorm){
        vertical-align: bottom;
    }
}

h2, h3{
    margin: 0.5em auto;
}

h2{
    font-size: calc(var(--heading-size) / 1.22);
    filter: drop-shadow(0 0.1em var(--black));
}

h2:first-child{
    margin-top: 1em;
}

li:not(:last-child){
    margin-bottom: 1em;
}

nav{
    display: flex;
    justify-content: center;
    align-items: center;
    gap: calc(var(--gap) * 10);

    a.ffbox{
        padding: 0!important;
        margin: 0!important;
        text-decoration: none;
        color: var(--white)!important;
        min-width: 0;

        > span{
            text-transform: uppercase;
            font-weight: bold;
            font-family: var(--heading-font);
            font-size: 1.33em;
            padding: 0.5ch 2ch!important;
            min-width: 7em!important;
        }
    }

    a.ffbox:is(:hover, :focus){
        background: var(--white2)!important;
        background: linear-gradient(90deg, var(--gray2) 0%, var(--white2) calc(var(--gap) / 2), var(--white2) calc(100% - var(--gap) * 2),  var(--gray2) 100%)!important;
        border: var(--gray) 2px solid!important;
        border-radius: var(--border)!important;
        transform: translateY(-0.5em);
    }
}

.joinlink{
    text-decoration: none;
    font-variant: small-caps;
    font-size: 1.5em;
}

footer.ffbox{
    margin-bottom: 1em;
    width: 50em!important;
}


#memberCount{
    display: contents;
}

.member-box{
    margin: 1em auto;
    width: 44em;
    display: grid;
    grid-template-areas: 'name desc' 'button desc' 'button game';
    grid-template-columns: 40% 1fr;
    grid-template-rows: 33% 22% 1fr;
    align-items: center;
    gap: 0.5em;

    .field--name{
        grid-area: name;
        font-size: 1.5em;
        font-family: var(--heading-font);
        text-transform: uppercase;
        font-weight: bold;
        filter: drop-shadow(0 0.1em var(--black));
    }

    .field--button{
        grid-area: button;
        height: 100%;
    }

    .field--description{
        grid-area: desc;
        margin-bottom: 1em;
        align-self: flex-start;
        min-height: 6em;
        display: flex;
        justify-content: center;
        align-items: center;
        flex-flow: column nowrap;
    }

    .field--game{
        grid-area: game;
        font-variant: small-caps;
        font-size: 1.25em;
        padding-top: 0.5ch;

        > span{
            display: inline-block;
            transform: translateY(-0.5ch);
            font-variant: normal;
            font-size: 1rem;
        }
    }
}

.field--game > span, .field--button img{
    background: var(--light-blue);
    padding: 0.75ch 2ch 0.5ch 2ch;
    border: 2px inset var(--light-blue2);
    border-radius: calc(var(--border) / 1.5);
}

.field--button img{
    padding: 1ch 2ch;
    margin-top: -0.75em;
}

.member-box:not(:last-child){
    margin-bottom: 2em;
}

.widget-preview{
    display: flex; 
    flex-flow: row wrap; 
    gap: 2em; 
    justify-content: center; 
    align-items: flex-end; 
    width: 45em;
    filter: drop-shadow(0 0.075rem var(--black));
    margin: 1em auto;
}

summary{
    margin: 2em auto 1em auto;
    width: fit-content;
}

summary, .field--description{
    background: var(--purple);
    padding: 2ch;
    border: 2px inset var(--gray-inner);
    border-radius: var(--border);
}

textarea{
    margin-top: 0.5em;
    background: var(--white2)!important;
    border-color: var(--white3);
    color: var(--gray)!important;
}

textarea::-webkit-scrollbar-track{
    background: var(--blue)!important;
}

textarea::-webkit-scrollbar-thumb{
    background: var(--blue2)!important;
    border-radius: 0!important;
}

table{
    color: var(--dark-blue);
    margin: 2em auto;
    border: 3px inset var(--gray2);
    border-radius: var(--border);
    font-size: 0.88em;

    a{
        color: var(--blue);
    }

    a:is(:hover, :focus){
        color: var(--light-purple);
    }
    
    th, td{
        padding: 1ch 2ch;
    }

    th{
        background: var(--light-purple);
        color: var(--white);
        font-variant: small-caps;
        font-family: var(--heading-font);
        font-size: 1.33em;
        filter: drop-shadow(0 0.1em var(--dark-blue));
        text-align: left;
    }

    td{
        background: var(--white2);
        color: var(--blue);
        text-shadow: 0 0.05em var(--gray2);
        padding: 1ch 5ch;
    }

    tr:first-child{
        th{
            border-top-left-radius: calc(var(--border) / 2);
        }
        td{
            border-top-right-radius: calc(var(--border) / 2);
        }
    }

    tr:last-child{
        th{
            border-bottom-left-radius: calc(var(--border) / 2);
        }
        td{
            border-bottom-right-radius: calc(var(--border) / 2);
        }
    }
}

table:last-child{
    margin-bottom: 3em;
}