/*--------------
- Root variables
----------------*/

:root {
    --white: #FFFCF8; /* White */
    --light-gray: #EAEBEB; /* Light Gray */
    --dark-gray: #6a778d; /* Dark Bluish Gray */
    --black: #030217; /* Black */
    }

/*--------------
- Keyframes
----------------*/

@keyframes spinny {
    0% {rotate: 0deg; transform: rotateY(0deg);}
    100% {rotate: 360deg; transform: rotateY(360deg);}
}
@keyframes imgScroll {
    0% {transform: translateX(-0%);}
    100% {transform: translateX(-100%);}
}
/*--------------
- Fonts
----------------*/

@font-face {
    font-family: "rubik-regular";
    src: url(assets/fonts/Rubik-Regular.ttf);
}
@font-face {
    font-family: "rubik-bold";
    src: url(assets/fonts/Rubik-Bold.ttf);
}
@font-face {
    font-family: "rubik-italic";
    src: url(assets/fonts/Rubik-Italic.ttf);
}
@font-face {
    font-family: "rubik-bolditalic";
    src: url(assets/fonts/Rubik-BoldItalic.ttf);
}

/*--------------
- Media rules
----------------*/

@media (max-width: 900px){
    #header-splash {
        display: none;
    }
}
@media (max-width: 490px){
    #header-title {
        display: none;
    }
}

/*-------------
- Global element styles
----------------*/

body, div, a, p, h1, h2, button {
    color: var(--black);
    font-family: rubik-regular, Verdana, sans-serif;
}
body {
    margin: 0px;
    background-color: var(--white);
    height: 100%;
}
body:not(#gallerybody){
    overflow: hidden;
}
button, select, input{
    background-color: var(--light-gray);
    border: 2px solid var(--dark-gray);
    border-radius: 3px;
}
body * {color: var(--black);}
button:hover {cursor: pointer;}
img{pointer-events: none;}
html {height: 100%;}
b {font-family: rubik-bold, Verdana, sans-serif;}
i {font-family: rubik-italic, Verdana, sans-serif;}
p {max-width: 70vw;}
a:hover {color: var(--dark-gray);}
/*-------------
- Classes
----------------*/

/* Utility classes */
.flex-col {
    display: flex;
    flex-direction: column;
}
.flex-row {
    display: flex;
    flex-direction: row;
}
.iframe {
    border: none;
    display: block;
}
.invisible {
    background: transparent;
    border: none !important;
}

/* Other classes */
.iframe-sidebar {
    width: 200px;
    transition: width 1s;
}
.maincontent p, h1, h2{margin-left: 10px;}
.content {height: 100%;}
.maincontent {width: 100%;}
.iframe-header {border-bottom: 2px solid var(--dark-gray);}
#rte-button-container button, select, input{
    background-color: var(--light-gray);
    border: 2px solid var(--dark-gray);
    border-radius: 3px;
}
/*-------------
- Ids
----------------*/

/* Header ids */
#header-container {
    max-height: 100px;
    height: 100px;
    flex-wrap: wrap;
    background-color: var(--light-gray);
}
#header-title-container {
    flex-wrap: wrap;
    align-items: center;
}
#header-title {
    text-decoration: none;
    font-size: 50px;
    min-height: fit-content;
    user-select: none;
    margin: 15px 0px;
    margin-right: 20px;
}
#header-splash {
    margin: 40px 0px;
    font-size: 20;
}
#header-icon:hover img{
    animation-name: spinny;
    animation-duration: 2s;
    animation-timing-function: linear;
    animation-iteration-count: infinite;
}
#header-icon {margin-right: 10px;}

/* Sidebar ids */
#sidebar-container {
    background-color: var(--white);
    height: 100%;
    border-right: 2px solid var(--light-gray);
}
#sidebar-toggle-button {
    margin-top: 10px;
    max-width: fit-content;
    max-height: fit-content;
}
#sidebar-content-container {
    border-bottom: 2px solid var(--light-gray);
    transition: height 1s;
    height: 230px;
}
#sidebar-link-container {
    margin-top: 10px;
    flex-wrap: nowrap;
    transition: width 1s;
    overflow: hidden;
    width: inherit;
    height: inherit;
}
#sidebar-link-container a {
    padding-bottom: 5px;
    text-decoration: none;
    transition: padding-left 0.3s;
    padding-left: 10px;
    white-space: nowrap;
    display: inline-block;
}
#sidebar-link-container a:hover {
    text-decoration: underline;
    padding-left: 15px;
}

/* Other ids */
#home-infobox {
    margin-left: 10px;
    max-width: 500px;
    min-height: fit-content;
    border: 1px solid var(--dark-gray);
    border-radius: 3px;
    background-color: var(--light-gray);
}
#home-infobox i {color: var(--dark-gray);}

/* Button project ids */
#bp-container button {
    background-color: transparent;
    border: none;
}
#bp-container button img {
    image-rendering: pixelated;
}

/* RTE project ids */
#rte-text-area {
    border: 2px solid var(--dark-gray);
    border-radius: 3px;
    width: 500px;
    min-height: 200px;
    padding: 5px;
    margin-top: 5px;
}
#rte-button-container button[data-selected="true"] {
    background-color: var(--white);
}
#rte-button-container input[type="number"]{
    width: 35px;
}
#rte-button-container input[type="color"]{
    border: none;
    width: 25px;    
    height: 20px; 
}
#rte-button-container #s-subscript {
    font-size: 10px;
} 
#rte-button-container, #s-superscript {
    font-size: 10px;
}

/* Grid project ids */

#grid-container {
    margin-left: 100px;
    margin-top: 100px;
    width: fit-content;    
    height: fit-content;
    border: 2px solid var(--dark-gray);
    & table tr td {
        width: 100px;    
        height: 100px;
        transition: width 0.1s, height 0.1s;
        &:hover {
transform: scale(1.1);
        }
    }
    & table {
        border-collapse: collapse;
    }
}

/* Encryption project ids */
.encryption-sub-container  {
    border: 2px solid var(--dark-gray);
    width: fit-content;
    padding-bottom: 20px;
    border-radius: 5px;
    margin-top: 30px;
    margin-left: 20px;
    padding-right: 10px;
    & label {
        margin-left: 10px;
        margin-right: 5px;
    }
}
#drumpad-container {
    display: grid;
    grid-template-columns: max-content max-content max-content max-content;
    margin-top: 28px;
    margin-left: 28px;
    border: 2px solid var(--dark-gray);
    padding: 10px;
    width: fit-content;
    & button {
        display: flex;
        justify-content: center;
        align-items: center;
        width: 150px;
        height: 150px;
        background-color: var(--light-gray);
        border: 2px solid var(--dark-gray);
        border-radius: 5px;
        user-select: none;
        margin: 2px;
    }
    & span > input {
        max-width: 87px;
    }
}
#gallerybody {
    overflow-x: hidden;
}
#gallery-container {
    overflow: hidden;
    margin: 10px 0px;
    & > div {
        padding: 10px 0px;
        display: flex;
        & > div {
            position:relative;
            overflow: visible;
            display: flex;
            animation-name: imgScroll;
            animation-duration: 100s;
            animation-timing-function: linear;
            animation-iteration-count: infinite;
            animation-direction: reverse;
            & > img {
                user-select: none;
                height: 300px;
                margin: 0px 10px;
            }
        }
    }
}
#speed-control {
    transform: rotate(180deg);
}