@font-face {
    font-family: monospace-matrix;
    src: url("../../font/server-sys-font-dmf-3669450f2e4c8d01cf55b9a275e1a6e5.ttf");
}
*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

/*
░█▀▄░█▀█░█▀▄░▀█▀░█▀▀░█▀█░█▀▄░█▀▀
░█░█░█░█░█▀▄░░█░░█░░░█░█░█░█░█▀▀
░▀▀░░▀▀▀░▀░▀░▀▀▀░▀▀▀░▀▀▀░▀▀░░▀▀▀
░█▀▀░█▀█░█░░░█▀█░█▀▄░░░█▀█░█▀█░█░░░█▀▀░▀█▀░█▀▀
░█░░░█░█░█░░░█░█░█▀▄░░░█▀▀░█▀█░█░░░█▀▀░░█░░█▀▀
░▀▀▀░▀▀▀░▀▀▀░▀▀▀░▀░▀░░░▀░░░▀░▀░▀▀▀░▀▀▀░░▀░░▀▀▀
 */

:root {
    --glow-color: #112a5c;
    --glow-color-text: #000000;
    --glow-color-text-hover: #FFFFFF;
    --doricode_primary_hex: #8f9db478;
    --bg-color: #FFFFFF;
    --font-color: #000000;
    --font-color-btn-hover: #FFFFFF;
    --table-color-primary: rgba(0,255,255,0.5);
    --table-color-secondary: rgba(127,255,255,0.25);
    --table-color-third: rgba(0,255,255,0.95);
    --table-color-fourth: rgba(0,255,255,0.75);
    --table-color-fifth: rgba(127,255,255,0.75);
    --bg-form: #8f9db455;
    --bg-form-fallback: #8f9db4;
    --border-form: #8f9db4dd;
    --label-text-shadow-form: #8f9db4;
    --label-selection: #8f9db4;
    --bg-color-input: #8f9db4dd;
    --border-color-input: #7587a3;
    --text-shadow-input: #8f9db499;
    --caret-color-input: #3d495c;
    --focus-color-input: #7587a3;

    /***** Font Sizes *****/
    --font-ss: .5rem;
    --font-sm: .7rem;
    --font-md: .9rem;
    --font-normal: 1rem;
    --font-lg: 1.3rem;
    --font-xl: 2rem;
    --font-xxl: 3rem;
}

[data-theme="dark"] {
    --glow-color: #99c2ff;
    --glow-color-text: #99c2ff55;
    --glow-color-text-hover: #000000;
    --doricode_primary_hex: #E6E2C078;
    --bg-color : #000000;
    --font-color: #FFFFFF;
    --font-color-btn-hover: #000000;
    --table-color-primary: #99c2ff55;
    --table-color-secondary: #99c2ff55;
    --table-color-third: #99c2ff55;
    --table-color-fourth: #99c2ff55;
    --table-color-fifth: #99c2ff55;
    --bg-form:  #99c2ff55;
    --bg-form-fallback: #8f9db4;
    --border-form: #99c2ff55;
    --label-text-shadow-form: #99c2ff55;
    --label-selection: #99c2ff55;
    --bg-color-input: #99c2ff55;
    --border-color-input: #99c2ff55;
    --text-shadow-input: #99c2ff55;
    --caret-color-input: #99c2ff55;
    --focus-color-input: #99c2ff55;
}

html, body { 
    margin: 0;
    height: 100%;
    overflow: hidden;
}

body {
    background-color: var(--bg-color);
    color: var(--font-color);
}

h1 {
    position: absolute;
    top: 65%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
    font-size: var(--font-xl);
    white-space: pre;
    color: var(--font-color);
    text-shadow: 2px 5px 20px var(--glow-color), 1px 1px 2px var(--glow-color);
    text-decoration: none;
    font-family: Arial, Helvetica, sans-serif;
    opacity: 0%;

    animation-name: magic-slide-in;
    animation-duration: 2s;
    animation-delay: 2s;
    animation-iteration-count: 1;
    animation-direction: normal;
    animation-timing-function: ease-in;
    animation-fill-mode: forwards;
}

@keyframes h1-slide-in {
  from {opacity: 0%;}
  to {opacity: 100%;}
}


#magic {
    position: fixed;
    width: 100%;
    height: 100vh;
    display: block;
    top: 0;
    left: 0;
    z-index: -9999;
    opacity: 0%;

    animation-name: magic-slide-in;
    animation-duration: 2s;
    animation-iteration-count: 1;
    animation-direction: normal;
    animation-timing-function: ease-in;
    animation-fill-mode: forwards;
}

@keyframes magic-slide-in {
  from {opacity: 0%;}
  to {opacity: 100%;}
}


.footer {
    position: fixed;
    width: 100%;
    bottom: 0px;
    left: 0px;
    z-index: 10;

    /*
    animation-name: footer-slide-in;
    animation-duration: 500ms;
    animation-iteration-count: 1;
    animation-direction: normal;
    animation-timing-function: ease-out;
    animation-fill-mode: forwards;
    */
}

/*
@keyframes footer-slide-in {
  from {bottom: -30%;}
  to {bottom: 30px;}
}
*/

.footer .description {
    width: 60%;
    font-size: var(--font-lg);
    align-items: center;
    font-family: Arial, Helvetica, sans-serif;
    text-align: justify;
    text-justify:distribute;
    text-wrap: pretty ;
}

.bottomPosition {
    position: relative;
    text-align: center;
    margin: 0px 0px 0px 20px;
    align-self: flex-end;
}

.not-selectable {
    -webkit-user-select: none; /* Safari */
    -ms-user-select: none; /* IE 10 and IE 11 */
    user-select: none; /* Standard syntax */
}

.logo {
    width: 70px;
    height: 105px;
}

/* Style the navigation bar */
.navbar {
    width: 100%;
    position: absolute;
    top: 30px;
    z-index: 100;
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;

    text-decoration: none;
    text-align: center;

    animation-name: navbar-slide-in;
    animation-duration: 1s;
    animation-iteration-count: 1;
    animation-direction: normal;
    animation-timing-function: ease-in;
    animation-fill-mode: forwards;
}

@keyframes navbar-slide-in {
  from {opacity: 0;}
  to {opacity: 1;}
}

.mobile-menu {
    display: none;
    background-image: url("../../img/menu-47328a039e8d8133010132a092dccd10.svg");
}

.navbar img {
    margin-right: auto;
    margin-left: 5%;
}

/* Navbar links */
.navbar a {
    text-align: center;
    padding: 25px;
    color: var(--font-color);
    text-shadow: 2px 55px 20px var(--glow-color);
    text-decoration: none;
    font-size: var(--font-lg);
    font-family: Arial, Helvetica, sans-serif;
    text-transform: uppercase;
    cursor: pointer;
}

.navbar a:hover {
    color: var(--font-color);
    text-decoration: underline var(--glow-color-text) solid 3px;
    /*
    box-shadow: 0 0 25px var(--doricode_primary_hex), 
    0 0 25px var(--doricode_primary_hex),
    0 0 50px var(--doricode_primary_hex),
    0 0 100px var(--doricode_primary_hex);
    border: 0px solid var(--doricode_primary_hex);
    */
    border-radius: 50px;
}

.navbar button {
    width: 50px;
    min-width: 50px;
    height: 50px;
    margin: 0px 10px 0px 10px;
    margin-left: 2%;
}
.navbar button:last-of-type {
    margin-right: 5%;
}

.navbar a:last-of-type {
    margin-right: auto;
}

.navbar button svg {
    position: absolute;
    top: 0%;
    left: 0%;
    transform: translate(50%, 50%);
    fill: var(--glow-color);
}

.navbar button:hover {
    svg {
        fill: var(--glow-color-text-hover);
    }
}

#switch-dark-theme {
    display: none;
}

#enable-audio {
    margin-right:  5%;
}

#disable-audio {
    display: none;
    margin-right:  5%;
}

.glass {
    /* From https://css.glass */
    background: rgba(42, 74, 87, 0.3);
    box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
    border: 1px solid rgba(42, 74, 87, 0.3);
}

.red_neon_on_scale {
    transition: scale .2s;
}

.red_neon_on_scale:hover {
    cursor: pointer;
    transition-property: scale;
    transition-duration: .2s;
    transition-timing-function: linear;
    scale: 1.1;
}

.glowing-btn {
    position: relative;
    color: var(--glow-color);
    cursor: pointer;
    padding: 0.35em 1em;
    border: 0.15em solid var(--glow-color);
    border-radius: 0.45em;
    background: none;
    perspective: 2em;
    font-family: "Raleway", sans-serif;
    font-size: var(--font-lg);
    font-weight: 900;
    letter-spacing: var(--font-sm);

    -webkit-box-shadow: inset 0px 0px 0.5em 0px var(--glow-color),
    0px 0px 0.5em 0px var(--glow-color);
    -moz-box-shadow: inset 0px 0px 0.5em 0px var(--glow-color),
    0px 0px 0.5em 0px var(--glow-color);
    box-shadow: inset 0px 0px 0.5em 0px var(--glow-color),
    0px 0px 0.5em 0px var(--glow-color);
    animation: border-flicker 2s linear infinite;
}

.glowing-btn-no-anim {
    position: relative;
    color: var(--glow-color);
    cursor: pointer;
    padding: 0.35em 1em;
    border: 0.15em solid var(--glow-color);
    border-radius: 0.45em;
    background: none;
    perspective: 2em;
    font-family: monospace-matrix;
    font-size: var(--font-sm);
    font-weight: 900;
    letter-spacing: var(--font-ss);

    -webkit-box-shadow: inset 0px 0px 0.5em 0px var(--glow-color),
    0px 0px 0.5em 0px var(--glow-color);
    -moz-box-shadow: inset 0px 0px 0.5em 0px var(--glow-color),
    0px 0px 0.5em 0px var(--glow-color);
    box-shadow: inset 0px 0px 0.5em 0px var(--glow-color),
    0px 0px 0.5em 0px var(--glow-color);
}

.glowing-btn-disabled {
    position: relative;
    color: var(--border-color-input);
    cursor: no-drop;
    padding: 0.35em 1em;
    border: 0.15em solid var(--border-color-input);
    border-radius: 0.45em;
    background: none;
    perspective: 2em;
    font-family: "Raleway", sans-serif;
    font-size: var(--font-lg);
    font-weight: 900;
    letter-spacing: var(--font-sm);

    -webkit-box-shadow: inset 0px 0px 0.5em 0px var(--border-color-input),
    0px 0px 0.5em 0px var(--border-color-input);
    -moz-box-shadow: inset 0px 0px 0.5em 0px var(--border-color-input),
    0px 0px 0.5em 0px var(--border-color-input);
    box-shadow: inset 0px 0px 0.5em 0px var(--border-color-input),
    0px 0px 0.5em 0px var(--border-color-input);
}

.glowing-txt {
    -webkit-text-shadow: 0 0 0.125em hsl(0 0% 100% / 0.3),
    0 0 0.45em var(--glow-color-text);
    -moz-text-shadow: 0 0 0.125em hsl(0 0% 100% / 0.3),
    0 0 0.45em var(--glow-color-text);
    text-shadow: 0 0 0.125em hsl(0 0% 100% / 0.3), 0 0 0.45em var(--glow-color-text);
    animation: text-flicker 3s linear infinite;
}

.glowing-txt-disabled {
    opacity: 0.5;
}

.faulty-letter {
    opacity: 0.5;
    animation: faulty-flicker 2s linear infinite;
}

.glowing-btn::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    opacity: 0.7;
    filter: blur(1em);
    transform: translateY(120%) rotateX(95deg) scale(1, 0.35);
    background: var(--glow-color);
    pointer-events: none;
}

.glowing-btn::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    opacity: 0;
    z-index: -1;
    background-color: var(--glow-color);
    box-shadow: 0 0 2em 0.2em var(--glow-color);
    transition: opacity 100ms linear;
}

.glowing-btn:hover {
    color: var(--font-color);
    text-shadow: none;
    animation: none;
}

.glowing-btn-no-anim:hover {
    color: var(--font-color-btn-hover);
    background: var(--glow-color);
    text-shadow: none;
}

.glowing-btn:hover .glowing-txt {
    animation: none;
}

.glowing-btn:hover .faulty-letter {
    animation: none;
    text-shadow: none;
    opacity: 1;
}

.glowing-btn:hover:before {
    filter: blur(1.5em);
    opacity: 1;
}

.glowing-btn:hover:after {
    opacity: 1;
}

.hide {
    display: none;
}

.show {
    z-index: 100;
    opacity: 1;
    /*transform: translate3d(0,0,0);*/
}

#indicator {
    width: 32px;
    height: 32px;
    margin: 10px auto;
}

.htmx-indicator{
    display:none;
}
.htmx-request .htmx-indicator{
    display:inline;
}
.htmx-request.htmx-indicator{
    display:inline;
}

@keyframes faulty-flicker {
    0% {
        opacity: 0.1;
    }
    2% {
        opacity: 0.1;
    }
    4% {
        opacity: 0.5;
    }
    19% {
        opacity: 0.5;
    }
    21% {
        opacity: 0.1;
    }
    23% {
        opacity: 1;
    }
    80% {
        opacity: 0.5;
    }
    83% {
        opacity: 0.4;
    }

    87% {
        opacity: 1;
    }
}

@keyframes text-flicker {
    0% {
        opacity: 0.1;
    }

    2% {
        opacity: 1;
    }

    8% {
        opacity: 0.1;
    }

    9% {
        opacity: 1;
    }

    12% {
        opacity: 0.1;
    }
    20% {
        opacity: 1;
    }
    25% {
        opacity: 0.3;
    }
    30% {
        opacity: 1;
    }

    70% {
        opacity: 0.7;
    }
    72% {
        opacity: 0.2;
    }

    77% {
        opacity: 0.9;
    }
    100% {
        opacity: 0.9;
    }
}

@keyframes border-flicker {
    0% {
        opacity: 0.1;
    }
    2% {
        opacity: 1;
    }
    4% {
        opacity: 0.1;
    }

    8% {
        opacity: 1;
    }
    70% {
        opacity: 0.7;
    }
    100% {
        opacity: 1;
    }
}

 /* Extra small devices (phones, 600px and down) */
@media only screen and (max-width: 600px) {
    .glowing-btn{
        font-size: var(--font-lg);
    }

    .navbar {
        top: 10px;
        flex-direction: column;
        height: 60px;
    }

    .navbar span {
        display: none;
    }

    .logo {
        width: 40px;
        height: 52.5px;
    }

    .mobile-menu {
        position: absolute;
        top: 0px;
        right: 10px;
        display: block;
        background: url("../../img/menu-47328a039e8d8133010132a092dccd10.svg") center no-repeat;
        background-size: cover;
        width: 50px;
        height: 50px;

        color: var(--glow-color);
    }

    .navbar a {
        position: relative;
        right: -100vw;
        text-align: center;
        padding: 2px 2px;
        color: var(--font-color);
        text-decoration: none;
        font-size: var(--font-sm);
    }

    .navbar button {
        position: relative;
        right: -100vw;
        width: 50px;
        min-width: 50px;
        height: 50px;
        margin-left: 0px;
    }

    .navbar.open {
        background-color: var(--bg-color);
        width: 100vw;
        height: 100%;
        justify-items: normal;
        z-index: 1000;

        img {
            display: none;
        }

        a {
            margin: 0px;
            right: -100vw;
            width: 100%;
            padding: 20px;
            border: 1px solid var(--border-color-input);

            animation-name: menu-slide-in;
            animation-duration: 300ms;
            animation-direction: normal;
            animation-timing-function: ease-in;
            animation-fill-mode: forwards;
        }

        a:last-of-type {
            margin-bottom: 30px;
        }

        #enable-audio, #disable-audio, #switch-dark-theme, #switch-light-theme {
            margin: 0px;
        }

        button {
            right: 0vw;
            margin: 10px 0px !important;
        }
    }

    @keyframes menu-slide-in {
        from {right: -100vw;}
        to {right: 0vw;}
    }

    .navbar button:first-of-type {
        margin-left: 2%;
    }


    .navbar a:first-of-type {
        margin-left: 0px;
    }

    .navbar a:last-of-type {
        margin-left: auto;
    }

    .footer{
        bottom: -100px;
        left: 0;
        flex-wrap: nowrap;
        flex-direction: row;
        justify-content: flex-start;
        align-items: center;
        z-index: 10;

        animation-name: footer-slide-in;
        animation-duration: 2s;
        animation-delay: 3s;
        animation-iteration-count: 1;
        animation-direction: normal;
        animation-timing-function: ease;
        animation-fill-mode: forwards;
    }

    @keyframes footer-slide-in {
        from {bottom: -100px;}
        to {bottom: 0px;}
    }


    .bottomPosition {
        position: relative;
        left: 5px;
        margin: 0px;
        text-align: center;
        align-self: flex-end;
    }

    .not-selectable > img {
        transform: scale(0.8);
    }

    .navbar img {
        margin-right: auto;
        margin-left: 1%;
    }

    .logo {
        width: 40px;
        height: 52.5px;
    }

    h1 {
        font-size: var(--font-lg);
        top: 60%;
        left: 50%;
        transform: translate(-50%, -50%);
        line-height: normal;
    }

    .navbar a {
        float: none;
        display: block;
    }

    .footer {
        position: fixed;
        width: 100%;
        bottom: -300px;
        left: 0px;
        z-index: 10;

        animation-name: footer-slide-in;
        animation-duration: 2s;
        animation-delay: 3s;
        animation-iteration-count: 1;
        animation-direction: normal;
        animation-timing-function: ease;
        animation-fill-mode: forwards;
    }

    @keyframes footer-slide-in {
        from {bottom: -30%;}
        to {bottom: 30px;}
    }


    .footer .description {
        width: 100%;
        font-size: var(--font-normal);
        align-items: center;
        font-family: Arial, Helvetica, sans-serif;
        text-align: justify;
        text-justify: inter-word;
        margin: 10px 20px 10px 20px;
    }
}

/* Small devices (portrait tablets and large phones, 600px and up) */
@media only screen and (min-width: 600px) {
    .glowing-btn{
        font-size: var(--font-lg);
    }

    .navbar {
        top: 10px;
        justify-content: space-evenly;
    }

    .logo {
        width: 40px;
        height: 52.5px;
    }

    .navbar a {
        text-align: center;
        padding: 2px 2px;
        color: var(--font-color);
        text-decoration: none;
        font-size: var(--font-sm);
    }

    .navbar button {
        width: 50px;
        min-width: 50px;
        height: 50px;
        margin-left: 0px;
    }

    .navbar button:first-of-type {
        margin-left: 2%;
    }


    .navbar a:first-of-type {
        margin-left: 0px;
    }

    .footer{
        bottom: -100px;
        left: 0;
        flex-wrap: nowrap;
        flex-direction: row;
        justify-content: flex-start;
        align-items: center;
        z-index: 10;

        animation-name: footer-slide-in;
        animation-duration: 2s;
        animation-delay: 3s;
        animation-iteration-count: 1;
        animation-direction: normal;
        animation-timing-function: ease;
        animation-fill-mode: forwards;
    }

    @keyframes footer-slide-in {
        from {bottom: -100px;}
        to {bottom: 0px;}
    }


    .bottomPosition {
        position: relative;
        left: 5px;
        margin: 0px;
        text-align: center;
        align-self: flex-end;
    }

    .not-selectable > img {
        transform: scale(0.8);
    }

    .navbar img {
        margin-right: auto;
        margin-left: 1%;
    }

    h1 {
        font-size: var(--font-lg);
        top: 60%;
        left: 50%;
        transform: translate(-50%, -50%);
        line-height: normal;
    }

    .navbar a {
        float: none;
        display: block;
    }

    .footer {
        position: fixed;
        width: 100%;
        bottom: -300px;
        left: 0px;
        z-index: 10;

        animation-name: footer-slide-in;
        animation-duration: 2s;
        animation-delay: 3s;
        animation-iteration-count: 1;
        animation-direction: normal;
        animation-timing-function: ease;
        animation-fill-mode: forwards;
    }

    @keyframes footer-slide-in {
        from {bottom: -30%;}
        to {bottom: 30px;}
    }


    .footer .description {
        width: 100%;
        font-size: var(--font-normal);
        align-items: center;
        font-family: Arial, Helvetica, sans-serif;
        text-align: justify;
        text-justify: inter-word;
        margin: 10px 20px 10px 20px;
    }
}

/* Medium devices (landscape tablets, 768px and up) */
@media only screen and (min-width: 768px) {
}

/* Large devices (laptops/desktops, 992px and up) */
@media only screen and (min-width: 992px) {
}

/* Extra large devices (large laptops and desktops, 1200px and up) */
@media only screen and (min-width: 1200px) {
    h1 {
        font-size: var(--font-xl);
        top: 67%;
    }

    .navbar img {
        margin-right: auto;
        margin-left: 1%;
    }

    .logo {
        width: 70px;
        height: 105px;
    }

    .navbar a {
        text-align: center;
        padding: 25px;
        color: var(--font-color);
        text-shadow: 2px 55px 20px var(--glow-color);
        text-decoration: none;
        font-size: var(--font-normal);
        font-family: Arial, Helvetica, sans-serif;
        text-transform: uppercase;
    }

    .footer .description {
        width: 60%;
        margin: 10px auto;
        font-size: var(--font-lg);
        font-family: Arial, Helvetica, sans-serif;
        text-align: justify;
        text-justify: inter-word;
    }

    @keyframes footer-slide-in {
        from {bottom: -30%;}
        to {bottom: 30px;}
    }

}
