body {
    background: url("../assets/desolate_planet.png") no-repeat center center fixed;
    background-size: cover;
    margin: 0;
    /*height: 100vh;*/
    display: block;
    /*display: flex;*/
    /*flex-wrap: wrap;*/
}

/* CRT */
@keyframes flicker {
    0% {
        opacity: 0.27861;
    }
    5% {
        opacity: 0.34769;
    }
    10% {
        opacity: 0.23604;
    }
    15% {
        opacity: 0.90626;
    }
    20% {
        opacity: 0.18128;
    }
    25% {
        opacity: 0.83891;
    }
    30% {
        opacity: 0.65583;
    }
    35% {
        opacity: 0.67807;
    }
    40% {
        opacity: 0.26559;
    }
    45% {
        opacity: 0.84693;
    }
    50% {
        opacity: 0.96019;
    }
    55% {
        opacity: 0.08594;
    }
    60% {
        opacity: 0.20313;
    }
    65% {
        opacity: 0.71988;
    }
    70% {
        opacity: 0.53455;
    }
    75% {
        opacity: 0.37288;
    }
    80% {
        opacity: 0.71428;
    }
    85% {
        opacity: 0.70419;
    }
    90% {
        opacity: 0.7003;
    }
    95% {
        opacity: 0.36108;
    }
    100% {
        opacity: 0.24387;
    }
}
@keyframes textShadow {
    0% {
        text-shadow: 0.4389924193300864px 0 1px rgba(0,30,255,0.5), -0.4389924193300864px 0 1px rgba(255,0,80,0.3), 0 0 3px;
    }
    5% {
        text-shadow: 2.7928974010788217px 0 1px rgba(0,30,255,0.5), -2.7928974010788217px 0 1px rgba(255,0,80,0.3), 0 0 3px;
    }
    10% {
        text-shadow: 0.02956275843481219px 0 1px rgba(0,30,255,0.5), -0.02956275843481219px 0 1px rgba(255,0,80,0.3), 0 0 3px;
    }
    15% {
        text-shadow: 0.40218538552878136px 0 1px rgba(0,30,255,0.5), -0.40218538552878136px 0 1px rgba(255,0,80,0.3), 0 0 3px;
    }
    20% {
        text-shadow: 3.4794037899852017px 0 1px rgba(0,30,255,0.5), -3.4794037899852017px 0 1px rgba(255,0,80,0.3), 0 0 3px;
    }
    25% {
        text-shadow: 1.6125630401149584px 0 1px rgba(0,30,255,0.5), -1.6125630401149584px 0 1px rgba(255,0,80,0.3), 0 0 3px;
    }
    30% {
        text-shadow: 0.7015590085143956px 0 1px rgba(0,30,255,0.5), -0.7015590085143956px 0 1px rgba(255,0,80,0.3), 0 0 3px;
    }
    35% {
        text-shadow: 3.896914047650351px 0 1px rgba(0,30,255,0.5), -3.896914047650351px 0 1px rgba(255,0,80,0.3), 0 0 3px;
    }
    40% {
        text-shadow: 3.870905614848819px 0 1px rgba(0,30,255,0.5), -3.870905614848819px 0 1px rgba(255,0,80,0.3), 0 0 3px;
    }
    45% {
        text-shadow: 2.231056963361899px 0 1px rgba(0,30,255,0.5), -2.231056963361899px 0 1px rgba(255,0,80,0.3), 0 0 3px;
    }
    50% {
        text-shadow: 0.08084290417898504px 0 1px rgba(0,30,255,0.5), -0.08084290417898504px 0 1px rgba(255,0,80,0.3), 0 0 3px;
    }
    55% {
        text-shadow: 2.3758461067427543px 0 1px rgba(0,30,255,0.5), -2.3758461067427543px 0 1px rgba(255,0,80,0.3), 0 0 3px;
    }
    60% {
        text-shadow: 2.202193051050636px 0 1px rgba(0,30,255,0.5), -2.202193051050636px 0 1px rgba(255,0,80,0.3), 0 0 3px;
    }
    65% {
        text-shadow: 2.8638780614874975px 0 1px rgba(0,30,255,0.5), -2.8638780614874975px 0 1px rgba(255,0,80,0.3), 0 0 3px;
    }
    70% {
        text-shadow: 0.48874025155497314px 0 1px rgba(0,30,255,0.5), -0.48874025155497314px 0 1px rgba(255,0,80,0.3), 0 0 3px;
    }
    75% {
        text-shadow: 1.8948491305757957px 0 1px rgba(0,30,255,0.5), -1.8948491305757957px 0 1px rgba(255,0,80,0.3), 0 0 3px;
    }
    80% {
        text-shadow: 0.0833037308038857px 0 1px rgba(0,30,255,0.5), -0.0833037308038857px 0 1px rgba(255,0,80,0.3), 0 0 3px;
    }
    85% {
        text-shadow: 0.09769827255241735px 0 1px rgba(0,30,255,0.5), -0.09769827255241735px 0 1px rgba(255,0,80,0.3), 0 0 3px;
    }
    90% {
        text-shadow: 3.443339761481782px 0 1px rgba(0,30,255,0.5), -3.443339761481782px 0 1px rgba(255,0,80,0.3), 0 0 3px;
    }
    95% {
        text-shadow: 2.1841838852799786px 0 1px rgba(0,30,255,0.5), -2.1841838852799786px 0 1px rgba(255,0,80,0.3), 0 0 3px;
    }
    100% {
        text-shadow: 2.6208764473832513px 0 1px rgba(0,30,255,0.5), -2.6208764473832513px 0 1px rgba(255,0,80,0.3), 0 0 3px;
    }
}
.crt::after {
    content: " ";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    background: rgba(18, 16, 16, 0.1);
    opacity: 0;
    z-index: 2;
    pointer-events: none;
    animation: flicker 0.15s infinite;
}
.crt::before {
    content: " ";
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    background: linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.25) 50%), linear-gradient(90deg, rgba(255, 0, 0, 0.06), rgba(0, 255, 0, 0.02), rgba(0, 0, 255, 0.06));
    z-index: 2;
    background-size: 100% 2px, 3px 100%;
    pointer-events: none;
}
.crt {
    animation: textShadow 1.6s infinite;
}

.bg-class {
    height: 100%;
}

/*    COLOR PALLETE      */
:root {
    --primary-color: rgba(45,39,57,255);
    --accent-color-light-blue: rgb(107,203,231);
    --accent-color-highlighter-pink: #f22bb7;
    --accent-color-dark-blue: rgb(46,76,148);
    --accent-color-light-purple: rgba(142,90,255,255);
    --accent-color-dark-purple: rgba(3,4,37,255);
    --accent-color-light-pink: rgb(226,203,224);
    --accent-color-planet: rgba(209,115,139,255);
    --color: #FAFAFA;
}

/* Glitch */
.container {
    color: var(--color);
    font-size: 1.5rem;
    display: flex;
    flex-direction: column;
}

.right {
    text-align: right;
    width: 100%;
}

.stack {
    display: grid;
    grid-template-columns: 1fr;
}

.stack span {
    font-weight: bold;
    grid-row-start: 1;
    grid-column-start: 1;
    font-size: 1rem;
    --stack-height: calc(100% / var(--stacks) - 1px);
    --inverse-index: calc(calc(var(--stacks) - 1) - var(--index));
    --clip-top: calc(var(--stack-height) * var(--index));
    --clip-bottom: calc(var(--stack-height) * var(--inverse-index));
    clip-path: inset(var(--clip-top) 0 var(--clip-bottom) 0);
    animation: stack 340ms cubic-bezier(.46,.29,0,1.24) 1 backwards calc(var(--index) * 120ms), glitch 2s ease infinite 2s alternate-reverse;
}

.stack span:nth-child(odd) { --glitch-translate: 8px; }
.stack span:nth-child(even) { --glitch-translate: -8px; }

@keyframes stack {
    0% {
        opacity: 0;
        transform: translateX(-50%);
        text-shadow: -2px 3px 0 red, 2px -3px 0 blue;
    }
    60% {
        opacity: 0.5;
        transform: translateX(50%);
    }
    80% {
        transform: none;
        opacity: 1;
        text-shadow: 2px -3px 0 red, -2px 3px 0 blue;
    }
    100% {
        text-shadow: none;
    }
}

@keyframes glitch {
    0% {
        text-shadow: -2px 3px 0 red, 2px -3px 0 blue;
        transform: translate(var(--glitch-translate));
    }
    2% {
        text-shadow: 2px -3px 0 red, -2px 3px 0 blue;
    }
    4%, 100% {  text-shadow: none; transform: none; }
}

/* SideBar */
* {
    box-sizing: border-box;
}

.sb-button {
    background: transparent;
    border: 0;
    padding: 0;
    cursor: pointer;
}

h2 {
    font-size: 16px;
    font-weight: 500;
    padding-left: 20px;
    margin: 22px 0;
}

.overlay {
    position: fixed;
    z-index: 1;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.6);
    backdrop-filter: blur(3px);
    opacity: 0;
    visibility: hidden;
    transition: 0.4s;
}

body.open .overlay {
    opacity: 1;
    visibility: visible;
}

.burger {
    position: fixed;
    z-index: 3;
    top: 20px;
    right: 12px;
    display: flex;
    align-items: center;
    gap: 6px;
}

@media (width >= 500px) {
    .burger {
        display: none;
    }
}

.burger-avatar {
    width: 30px;
    height: 30px;
    transition: 0.4s;
}

body.open .burger-avatar {
    translate: 40px 0;
    opacity: 0;
    visibility: hidden;
}

.burger-icon {
    display: block;
    width: 30px;
    height: 30px;
    background-image: url("../assets/icon-burger.svg");
    background-repeat: no-repeat;
    background-position: center center;
}

body.open .burger-icon {
    background-image: url("../assets/icon-close.svg");
}

.sidebar {
    position: absolute;
    z-index: 2;
    top: 0;
    right: 0 !important;
    display: flex;
    align-items: center;
    flex-direction: column;
    width: 100%;
    height: 100%;
    padding: 40px 20px;
    background: #000000;
    opacity: 0;
    visibility: hidden;
    filter: blur(10px);
    transition-property: filter, visibility, opacity;
    transition-duration: 0.6s;
}

@media (width >= 330px) {
    .sidebar {
        transition-property: translate;
    }
}

@media (width >= 400px) {
    .sidebar {
        translate: 100% 0;
        width: 180px;
        transition: 0.4s;
        border-left: 1px solid rgba(255, 255, 255, 0.16);
    }
}

@media (width >= 500px) {
    .sidebar {
        translate: 0 0;

        opacity: 1;
        visibility: visible;
        filter: blur(0);
    }
}

body.open .sidebar {
    translate: 0 0;
    opacity: 1;
    visibility: visible;
    filter: blur(0);
}

.sidebar-avatar {
    width: 80px;
    height: 80px;
    margin-bottom: 20px;
}

.sidebar-username {
    margin: 0;
    font-size: 14px;
    font-weight: 500;
    color: rgba(255, 255, 255, 0.96);
}

.sidebar-role {
    margin: 0 0 20px;
    font-size: 9px;
    font-weight: 400;
    color: rgba(255, 255, 255, 0.57);
}

.sidebar-menu {
    display: grid;
    width: 100%;
    padding: 10px 0;
    padding-left: 20px;
    border-top: 1px solid rgba(255, 255, 255, 0.16);
}

@media (width >= 350px) {
    .sidebar-menu {
        padding-left: 0;
    }
}

.sidebar-menu > button {
    display: flex;
    gap: 8px;
    align-items: center;
    font-family: "Poppins";
    font-size: 16px;
    font-weight: 200;
    letter-spacing: 2px;
    line-height: 1;
    padding: 10px 20px;
}

.sidebar-menu > button > img {
    width: 17px;
    height: 17px;
}

.sidebar-menu > button > span {
    color: #f9f9f9;
    font-size: 11px;
    translate: 0 1px;
}
