@import url('https://fonts.googleapis.com/css2?family=DotGothic16&family=Inter:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&family=Kosugi&family=Nothing+You+Could+Do&family=Share+Tech&family=VT323&display=swap');

:root {
    --fontA: 'VT323', monospace;
    --fontB: 'Share Tech', 'Helvetica Neue', Arial, sans-serif;
    
    --green: #54a577;
    --mteal: #16b4ba;
    --dteal: #3e9992;
    --lblue:#007da7;
    --blue: #095375;
    --bk:#012536;
    --bk-rgb:1,37,54;
    --1: #E3DFBA;
    --2: #C8D6BF;
    --3:#81bab4;
    --4:#43969e;
    --5: #1A1F1E;
}
/* THIS IS THE CURRENTLY USED STYLESHEET */
html {
    scroll-padding-top: 57px;
}
html,
body {
    overscroll-behavior: none;
}

body {
    font-family: var(--fontB);
    font-size: 16px;
    color: var(--5);
    background-color: var(--bk);
    background-color:#000;
    background-image: url("https://www.transparenttextures.com/patterns/bright-squares.png");
    background-attachment: fixed;
}

*,
*::before,
*::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    background-clip:padding-box;
}

a {
    color: var(--dteal);
    text-decoration: none;
    transition: 0.2s all;
}

p > a, main  li > a {
    text-shadow:1px 1px 1px #eee;
}

a:hover, a:focus-visible {
    color: var(--lblue);
}

a:focus-visible {
    outline: var(--blue) 1px solid;
    border-radius:3px;
    outline-offset:1px;
}

button:focus, input:focus {
    outline: var(--blue) 1px solid;
}

img {
    max-width: 100%;
}

h1,
h2,
h3,
h4,
h5 {
    font-family: var(--fontA);
    color:var(--lblue);
    margin:10px 0;
    font-weight:normal;
}

.cube-bg {
    background-image: url("images/cubes.png");
}

#wrapper {
    min-height:100vh;
    background:rgba(255,255,255, 0.8);
    /*url('scratches-bg.png') fixed*/
    ;
    /*backdrop-filter: blur(3px);*/
    margin: 0 auto;
    max-width: 1600px;
    width: 90vw;
    box-shadow: 0px 0px 30px -10px #000;
    color: #072a3a;
    position:relative;
    padding:2rem 0;
}

        /* NAV */

nav {
    text-transform:lowercase;
    position: fixed;
    top: 0;
    display:block;
    background-color:#111;
    background-image:url("images/cubes.png");
    color:#eee;
    padding:0;
    border-bottom:rgba(var(--bk-rgb),0.4) solid 5px;
    margin-bottom:10px;
    width:90vw;
    max-width:1600px;
    z-index:2;
}

nav > ul {
    list-style-type: none;
    display:flex;
    justify-content: flex-end;
}

nav ul li {
    padding:15px;
    display:block;
    align-self:center;
    position:relative;
    height:100%;
}

nav > ul > li:not(.navtitle) {
    padding-left:15px;
    position:relative;
}

nav > ul > li:not(.navtitle)::before {
    content:"\25C6";
    position:absolute;
    left:0;
    line-height:1;
}

nav ul li a {
    display: block;
    color: var(--1);
    padding: 0 2px 2px 2px;
}

nav ul li a:hover {
    color: var(--3);/*
    box-shadow: 0px -4px 0px -2px var(--2) inset;*/
}

        /* SUBMENU */

.more > a::after {
    content:" \25BC";
    font-size:0.7em;
    line-height:1em;
    font-weight:bold;
}

.more {
    padding-right:1.5rem;
}

nav ul li ul {
    opacity:0;
    max-height:0;
    overflow:hidden;
    background-color: #222;
    background-image: url("images/cubes.png");
    position: absolute;
    top: 100%;
    right: 3px;
    width: max-content;
    border: rgba(var(--bk-rgb), 0.3) solid 4px;
    border-top: 6px transparent solid;
    border-radius: 0 0 20px 20px;
    -webkit-border-radius: 0 0 20px 20px;
    -moz-border-radius: 0 0 20px 20px;
    -ms-border-radius: 0 0 20px 20px;
    -o-border-radius: 0 0 20px 20px;
    transition:0.3s all;
    -webkit-transition:0.3s all;
    -moz-transition:0.3s all;
    -ms-transition:0.3s all;
    -o-transition:0.3s all;
    box-shadow:rgba(0,0,0,0.8) 0px 0px 5px 0px;
}

nav ul li:hover ul,
nav ul li:focus-within ul {
    opacity:1;
    max-height:300px;
}

nav ul li ul li {
    display:block;
    margin:0 5px;
    padding:10px;
    border-bottom:1px solid rgba(255,255,255,0.2);
}

nav ul li ul li:last-child {
    border-bottom:none;
}

.more a:hover,
.more a:focus-visible {
    box-shadow:none;
}

.navtitle {
    flex:3 1 auto;
    font-family:var(--fontA);
    font-size:1.3rem;
    text-transform: uppercase;
}

.navtitle a {
    color:#eee;
    display:inline-block;
}

.navtitle span::before {
    content:"World Trigger";
}

#hamburger, nav > label {
    display:none;
}

        /* HEADER */

header {
    padding-top:1rem;
    margin: 20px;
    text-align:center;
}

header * {
    margin:0;
}

h1 a {
    font-size: clamp(3rem, calc(4rem + 3vw), 8rem);
    color: var(--4);
    font-weight:normal;
    margin:0;
    padding:0;
    line-height:0.9;
    letter-spacing:-5px;
    text-transform: lowercase;
}

header p {
    text-transform: uppercase;
    color:var(--2);
    font-family:var(--fontB);
    font-size:0.9rem;
    margin:0;
    background-color:#111;
    background-image:
    url("images/cubes.png");
    width: fit-content;
    margin:0 auto;
    text-align:center;
    padding: 5px 25px;
    /*transform:skew(-15deg);
    -webkit-transform:skew(-15deg);
    -moz-transform:skew(-15deg);
    -ms-transform:skew(-15deg);
    -o-transform:skew(-15deg);*/
    /* border-top:#fff solid 7px; */
    max-width:700px;
    border-radius: 20px;
}

        /* MAIN */

main {
    margin:20px;
    padding-bottom:20px;
}

h2 {
    font-size: 2.7rem;
    color: var(--lblue);
}

main > h2 {
    font-size:3rem;
}

h3 {
    font-size: 2.3rem;
    color: var(--green);
    margin:2rem 0 1.5rem 0;
    text-align:center;
}

h4 {
    font-size: 1.7rem;
    background-color: var(--5);
    padding: 3px 15px;
    display: inline-block;
}

#b2t {
    text-align:center;
    text-transform:uppercase;
    margin-bottom:-15px;
    margin-top:15px;
}

#b2t h4 {
    padding:0;
    border-radius:20px;
}

#b2t h4:focus-within a {
    border-radius:22px;
}

#b2t a {
    color:var(--3);
    display:block;
    padding:3px 30px 4px;
}

#b2t a:hover {
    color:var(--2);
}



h5 {
    font-size: 1.5rem;
}

main p, main ul, main menu {
    margin: 0.5rem 0 1rem 0;
    line-height:1.3;
    font-size:1.1rem
}

main li {
    margin-left:1rem;
    line-height:1.2;
    margin-bottom:0.4rem;
    list-style-type:square;
}

menu, blockquote, .container, #viewer {
    background-image:
    url("https://www.transparenttextures.com/patterns/bright-squares.png");
    background-color:var(--bk);
    background-color:#000;
    color:#fff;
    padding:1rem;
    box-shadow:-1px -1px 10px var(--5) inset;
    border-radius:20px;
    -webkit-border-radius:20px;
    -moz-border-radius:20px;
    -ms-border-radius:20px;
    -o-border-radius:20px;
    text-shadow:-1px -1px 1px #222;
    background-attachment: fixed;
    margin:10px 0;
    border:1px #eee solid;
}

main li::marker {
    color:var(--3);
}

/* HOME PAGE */

.accentimg {
    width:40%;
    height:auto;
    float:right;
    margin:0 10px;
    max-width:220px;
}

.accentimg figcaption, .accentimg img {
    /*padding: 4px;
    background-color: #fff;
    border: 1px #aaa solid;*/
    margin: auto 3px;
    width:100%;
}
/*
.accentimg img {
    border-radius:20px 20px 0 0;
    -webkit-border-radius:20px 20px 0 0;
    -moz-border-radius:20px 20px 0 0;
    -ms-border-radius:20px 20px 0 0;
    -o-border-radius:20px 20px 0 0;
}*/

.accentimg figcaption {
    padding:5px 15px;
    border-radius:0 0 20px 20px;
    -webkit-border-radius:0 0 20px 20px;
    -moz-border-radius:0 0 20px 20px;
    -ms-border-radius:0 0 20px 20px;
    -o-border-radius:0 0 20px 20px;
    font-size:0.8rem;
    text-align:right;
    color:#333;
}

.previews {
    clear:both;
    display:grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    list-style-type:none;
    padding:0;
    grid-gap:5px;
}

.previews li {
    border-radius:10px;
    overflow:hidden;
    margin:0;
    display:block;
    -webkit-border-radius:10px;
    -moz-border-radius:10px;
    -ms-border-radius:10px;
    -o-border-radius:10px;
    border:3px #eee solid;
    box-shadow: 0 0 3px var(--bk);
    position:relative;
}

.previews img {
    min-height:100%;
    max-height:120px;
    min-width:100%;
    max-width:none;
    object-fit:cover;
    display:block;
}

.previews a {
    position:relative;
    width:100%;
    display:block;
}

.preview a:focus-visible {
    outline:var(--blue) 1px solid;
}


.previews span {
    color: #eee;
    font-size:1.1em;
    font-family:var(--fontA);
    padding:3px 5px;
    border-top:#eee solid 2px;
    position:absolute;
    display:block;
    bottom:0px;
    left:0;
    width:100%;
    background-color: rgba(var(--bk-rgb),0.8);
    text-shadow:none;
    transition: 0.3s;
        -webkit-transition: 0.3s;
        -moz-transition: 0.3s;
        -ms-transition: 0.3s;
        -o-transition: 0.3s;
}

.previews a:hover span,
.previews a:focus-visible span {

    background-color: var(--4);
    color: #fff;
}

/* END HOME PAGE */
/* CONTENT */

.split {
    display:flex;
    gap:2rem;
    justify-items: stretch;
}

hr {
    content:'';
    display:block;
    height:0;
    margin:1.5rem -20px 1.5rem -20px;
    border:none;
    border-bottom:rgba(var(--bk-rgb),0.2) solid 1px;
    width:calc(100% + 40px);
    box-shadow:0px 1px 1px #eee;
}

#rooms, #chibis, #squadprofiles, .selects {
    flex:1 1 auto;
    display:flex;
    flex-flow:column nowrap;
    justify-content:flex-start;
    position: relative;
}

form {

    position: sticky;
        top: 5rem;
}

#viewer {
    text-align:center;
    flex:2 1 75%;
    max-width:1000px;
}

#viewer h2 {
    color: var(--2);
    text-align:center;
    margin:0 0 10px 0;
    text-shadow: 0px 0px 2px #000;
}

#viewer h2 a:not(:hover) {
    color: var(--2);
}

#viewer img {
    border-radius:15px;
    -webkit-border-radius:15px;
    -moz-border-radius:15px;
    -ms-border-radius:15px;
    -o-border-radius:15px;
    padding: 4px;
    background-color: #fff;
    border: 1px #111 solid;
    margin:0 auto;
    width:auto;
}

#viewer h3  {
    text-transform:capitalize;
    text-shadow:0px 0px 2px #000;
    color: var(--3);
    margin:5px auto 15px;
}

#viewer h3 a:not(:hover) {
    color: var(--3);
}

#viewer a:hover {
    color:var(--1);
}

.volume {
    display:block;
}
/* VIEWER ZOOM OUT */
#viewer.zoomed-out img{
    max-height:90vh;
}

        /* SELECTS */

main label {
    margin:5px;
}

select, #zoom, button {
    font-size:1rem;
    margin:10px auto;
    border:#999 solid 1px;
    box-shadow:#fff 0px 0px 0px 1px inset;
    padding:5px 10px;
    border-radius:20px;
    -webkit-border-radius:20px;
    -moz-border-radius:20px;
    -ms-border-radius:20px;
    -o-border-radius:20px;
    width:calc(100% - 6px);
    color:var(--lblue);
    font-family:var(--fontB);
    background-color:var(--2);
}


#zoom, button {
    display:block;
    width:120px;
    margin:1rem auto 1rem auto;
    background-color:var(--4);
    color:#fff;
    text-align:center;

}


select:focus {
    color:var(--4);
    background-color: var(--1);
}

#zoom:hover, button:hover,
#zoom:focus, button:focus {
    background-color:var(--3);
    cursor:pointer;
}


/* CALENDAR */

.calendar {
    display:grid;
    grid-template-columns: repeat(7, 1fr);
    container-name:calendar;
    container-type:inline-size;
}

.weekdays, 
.days {
    display:grid;
    grid-template-columns: subgrid;
    grid-column: 1 / -1;

}

.weekdays span {
    background-color:var(--bk);
    color:var(--dteal);
    padding:1vh 0.05vw;
    text-align:center;
}

.days > div {
    padding:1vh 0.5vw;
    height:150px;
    container-type:inline-size;
    position:relative;
    /* z-index:1; */
    /* display:grid; */
}

.days > div:nth-child(odd) {
    background-color:rgb(0 0 0 / 10%);
}

.days > div[tabindex="0"]:hover, 
.days > div:focus {
    cursor:pointer;
    /* contain:layout; */
    background-color:hsl(from var(--green) h s l / 40%);
}

.days > div:focus {
z-index:9999;
}

.days > div[tabindex="0"]:hover > ul {
    z-index:999999;
    position:relative;
}

.days > div:hover ul,
.days > div ul:hover,
.days > div:focus ul {
    box-sizing:content-box;
    margin-top:5px;
    background-color:rgb(from var(--green) r g b / 30%);
    position:relative;
    padding:2px;
    border-radius:3px; 
    width:200px;
    left:calc(50%); 
    transform:translateX(-50%);
    backdrop-filter:blur(7px);
    /* #fff5 0px 0px 0px 2px; */
}

@supports not (backdrop-filter: blur(7px)) {
    .days > div:hover ul,
    .days > div ul:hover,
    .days > div:focus ul {
        background-color:rgb(from var(--green) r g b / 85%);
    }
}



.days > div:focus ul{
    outline:2px solid #fff9;
    outline-offset:0px;
    filter:brightness(110%);
} 

.days > div:focus-visible ul {
    outline:1px solid #fff9;
    outline-offset:-1px;
}

.days > div:focus {
    outline:1px solid #fff9;
    outline-offset:-3px;
}

@container calendar (width < 500px) {

    .days > div {
        position:relative;
    }

    .days > div:focus, .days > div:hover, .days > div:focus-visible {
        position: relative;

        ul {
            position:absolute;
            transform:none;
            width:450%;
        }

        &:nth-child(7n) ul,
        &:nth-child(7n - 1) ul,
        &:nth-child(7n - 2) ul,
        &:nth-child(7n - 3) ul  {
            left:auto;
            right:calc(350%);
            transform:none;
            /* top:10px; */
        }

        &:nth-child(7n - 4) {
            left:0;
        }
    }
}

.days ul {
    display:grid;
    margin:3px 0 0 0;
    padding:0;
    grid-gap:2px;
    /* position:absolute; */
    font-size:80%;
    line-height:1;

}

/* .days ul:has(li:hover) {
    contain:layout;
}
     */


.calendar ul a {
    text-shadow:none;
    color:#fff;
}


.days ul li {
    border-radius:2px;
    background-color:hsl(from var(--dteal) h 30% 50%);
    /* color:#fff; */
    /* background-color:var(--4); */
    display:block;
    margin:0;
    padding:3px;
    overflow: hidden;
    /* white-space: nowrap; */
    text-overflow: ellipsis;
    height:auto;
    width:100%;
    position:relative;
    z-index:1;
    transition:0.3s padding;
}

.days > div:not(:hover, :focus) ul li {

    display:-webkit-box;
    -webkit-box-orient:block-axis;
    -webkit-line-clamp:2;
    line-clamp:2;
}

.days > div:focus-visible {
    outline:none;
}

.days ul li:nth-child(3) {
    white-space: nowrap;
}

/* .days ul::after {
    opacity:0.4;
    content:"";
    display:block;
    position:absolute;
    left:0;
    width:100%;
    bottom:0;
    height:100%;
        background: rgb(255,255,255);
    background: -moz-linear-gradient(180deg, rgba(255,255,255,0.4) 0%, rgba(255,255,255,1) 100%);
    background: -webkit-linear-gradient(180deg, rgba(255,255,255,0.4) 0%, rgba(255,255,255,1) 100%);
    background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, rgba(255,255,255,1) 100%);
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr="#ffffff",endColorstr="#ffffff",GradientType=1);
} */

.days > div:first-child {
    grid-column-start:1;
}

.days > div:hover ul li, 
.days > div:focus ul li {
    display:block;
    /* cursor:default; */
    background:hsl(from var(--green) h s l / 40%);
    height:auto;
    white-space:wrap;
    /* background-color:var(--dteal); */
    overflow:visible;
    top:0;
    z-index:99999;
    box-shadow:
    -1px -1px 0px rgb(from var(--green) r g b / 80%) inset,
    1px 1px 0px rgb(255 255 255 / 15%) inset;
    padding:5px 3px;
}

.days > div:hover ul li {
    position:relative;
    z-index:999999;
}

.days > div:hover ul li::before,
.days > div:focus ul li::before {
    content:"+ ";
    font-size:130%;
    line-height:0;
    color:#fff;
}



.days > div {
    overflow:hidden;
    /* width:calc(100 cqw / 7); */
}

.days > div:hover,
.days > div:has(ul:hover),
.days > div:focus {
    overflow:visible;
}

/* .days > div:hover {
    z-index:40;
} */


.blank-days {
    display:none;
}



            /* FOOTER */

footer {
    border-top: rgba(var(--bk-rgb), 0.4) solid 5px;
    color:#eee;
    padding:10px;
    background-color:#000;
    text-align:right;
    position:absolute;
    bottom:0;
    font-size:0.9em;
    width:100%;
}

footer img {
    height:50px;
    bottom:2px;
    position:absolute;
    left:5px;
}

@media screen and (max-width:1000px) and (min-width:801px) {
    #wrapper, nav {
        width:90vw;
    }

    @media screen and (max-width:780px) {
        .navtitle span::before {
            content: "WT";
        }
    }
}

        /*MOBILE*/
        
@media screen and (max-width:800px) {

    nav ul li {
        flex: 1 1 min-content;
    }

    h1 a {
        font-size:4.5rem;
    }

    body {
        font-size:1.1rem;
    }

    #wrapper, nav {
        width:100vw;
        margin:0;
    }

    nav > ul {
        max-height:50px;
        overflow:hidden;
        display: grid;
        padding-bottom:0.5rem;
        grid-template-columns:1fr 1fr;
        grid-gap:0.5rem;
        transition:0.4s all    ;
        -webkit-transition:0.4s all    ;
        -moz-transition:0.4s all    ;
        -ms-transition:0.4s all    ;
        -o-transition:0.4s all    ;
    }

    nav ul .navtitle {
        grid-column:1 / -1;
    }

    nav > ul > li:not(.navtitle)::before {
        display:none;
    }

    nav > label {
        user-select:none;
        color:#fff;
        display:block;
        padding:20px;
        position:absolute;
        z-index:3;
        right:0px;
        top:-4px;
        transition:0.4s all;
        -webkit-transition:0.4s all;
        -moz-transition:0.4s all;
        -ms-transition:0.4s all;
        -o-transition:0.4s all;
    }

    nav > label:hover {
        cursor: pointer;
    }

    #hamburger:checked ~ label {
        color:var(--4);
        transform:rotate(180deg)    ;
        -webkit-transform:rotate(180deg)    ;
        -moz-transform:rotate(180deg)    ;
        -ms-transform:rotate(180deg)    ;
        -o-transform:rotate(180deg)    ;
    }

    #hamburger:checked ~ ul{
        max-height:100vh;
    }

    nav ul li ul {
        height:auto;
        opacity:1;
        position:static;
        background:transparent;
        border:none;
        max-height:none;
        box-shadow:none;
        margin:0;
        padding:0;
    }

    nav ul li.more, nav ul li.more ul {
        display:contents;
    }

    .more > a {
        display: none;
    }

    .more ul, .more li:not(.navtitle) {
        display:block;
        border-bottom: none;
    }

    nav ul li:not(.navtitle) {/*
        border-top:rgba(255,255,255,0.2) solid 2px;*/
        display:block;
        /*width:calc(100% - 10px);*/
        margin:0;
        font-size:1.2rem;
        padding:0;
        background-color:rgba(51, 51, 51, 0.7);
    }

    nav ul li:not(.navtitle, .more) > a {
        display:block;
        padding:15px 10px;
    }

    li.more {
        background:transparent;
        display:contents !important;
    }

    main {
        margin:10px;
    }

    main ul {
        padding-bottom:1rem;
    }

    header {
        margin-top:1rem;
    }

    #viewer {
        padding:7px;
    }

    #viewer img:last-child {
        margin-bottom:0;
    }

    h2 {
        text-align:Center;
    }

    header p {
        width:90%;
    }

    .split {
        flex-wrap:wrap;
    }

    select {
        font-size:1rem;
        padding:5px 10px;
    }
    
    hr {
        width:calc(100vw - 20px);
        margin-left:0px;
        margin-right:0px;
    }

    #zoom {
        display:none;
    }

    .previews {
        grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    }

    .previews span {
        bottom:unset;
        top:0px;
        left:0;
        border:none;
        border-bottom:#eee solid 2px;
    }
}
    /*
    @media (max-width:450px) {
        .navtitle span::before {
            content: "WT";
        }
    }*/
