@font-face {
    font-family: "Nunito";
    src: url("/font/Nunito/Nunito-VariableFont_wght.ttf"), local('Verdana,sans-serif');
    font-display: swap;
}

@font-face {
    font-family: "RobotoSlab";
    src: url("/font/Roboto_Slab/RobotoSlab-VariableFont_wght.ttf"), local('Verdana,sans-serif');
    font-display: swap;
}

@font-face {
    font-family: "DynaPuff";
    src: url("/font/DynaPuff/DynaPuff-VariableFont_wdth,wght.ttf"), local('Verdana,sans-serif');
    font-display: swap;
}

:root {
    --body_width: 100%;
    --body_height: 100vh;
    --top_menu: 3.8rem;
}

html, body {
    margin: 0;
    touch-action: manipulation;
}

body {
    min-width: var(--body_width);
    min-height: calc(var(--body_height) - var(--top_menu));
    /* background-color: blue; */
    padding-top: var(--top_menu);
    overflow-x: hidden;
}

main {
    /* background-color: red; */
    display: grid;
}

dialog[open] {
    opacity: 1 !important;
    /* background-size: 200% 200%, 50% 50% !important; */
    background-size: 50% 50%, 200% 200% !important;
    animation: background_ani 10s ease infinite;
}

.hide {
    display: none;
}

@starting-style {
    dialog[open] {
        opacity: 0 !important;
        background-size: 100% 100%, 200% 200% !important;
    }
}


@keyframes background_ani {
    0% {
        /* background-position: 10% 0%, calc(50% + (280px / 2)) 50%; */
        background-position: calc(50% + (280px / 2)) 50%, 10% 0%;
    }

    25% {
        /* background-position: 25% 25%, calc(49% + (280px / 2)) 49%; */
        background-position: calc(49% + (280px / 2)) 49%, 25% 25%;
    }

    50% {
        /* background-position: 50% 50%, calc(48% + (280px / 2)) 48%; */
        background-position: calc(48% + (280px / 2)) 48%, 50% 50%;
    }

    75% {
        /* background-position: 90% 100%, calc(47% + (280px / 2)) 47%; */
        background-position: calc(47% + (280px / 2)) 47%, 90% 100%;
    }

    100% {
        /* background-position: 10% 0%, calc(50% + (280px / 2)) 50%; */
        background-position: calc(50% + (280px / 2)) 50%, 10% 0%;
    }
}

#top_menu {
    width: var(--body_width);
    height: var(--top_menu);
    background-color: #ededed;
    display: grid;
    align-content: center;
    grid-template-columns: min-content min-content 1fr;
    grid-template-rows: 100%;
    box-sizing: border-box;
    position: fixed;
    top: 0px;
    /* justify-content: center; */
    border-bottom: solid 1px rgb(180, 180, 180);
    box-sizing: content-box;
    z-index: 1;
}

#top_menu_more {
    /* width: 192%; */
    background: url("/img/menu/bar.svg") center center / 25px 25px no-repeat;
    cursor: pointer;
    border: none;
    aspect-ratio: 1 / 1;
    height: 100%;
    width: 37px;
}

#top_menu_logo {
    margin-left: 5px;
    height: 100%;
    display: grid;
    grid-template-columns: auto max-content;
    justify-content: center;
    text-decoration: none;
    column-gap: 5px;
    font-family: Nunito;
    font-weight: 600;
    font-size: 20px;
}

#top_menu_logo img {
    max-height: var(--top_menu);
    height: 100%;
    width: 64px;
}

#top_menu_logo div {
    align-self: center;
    color: black;
}

#right_top_more {
    display: grid;
    justify-content: right;
    grid-auto-columns: min-content;
    column-gap: 5px;
    align-content: center;
}

/* #right_top_more > * {
    grid-row: 1 / 2;
    display: grid;
    justify-content: center;
    align-content: center;
    text-decoration: none;
    border-radius: 5px;
    padding: 0px 10px;
    cursor: pointer;
} */

#lang_dropdown {
    grid-row: 1 / 2;
    margin: 0px;
    --lang-padding: 5px;
    width: calc(var(--top_menu) - var(--lang-padding));
    border: none;
    padding: var(--lang-padding);
    box-sizing: border-box;
    cursor: pointer;
    display: inline-block;
    position: relative;
}

#lang_dropdown_container {
    display: none;
    position: absolute;
    z-index: 10;
    background-color: #ededed;
    overflow: auto;
    left: 0px;
    border-bottom-left-radius: 5px;
}

#lang_dropdown_container div {
    padding: var(--lang-padding);
}

#lang_dropdown_container div:hover {
    box-shadow: 0px 0px 5px rgb(140, 140, 140) inset;
    background-color: rgb(204 204 204) !important;
}

#right_top_more img {
    height: 100%;
    width: 100%;
}

#langauge_menu {
    margin-left: auto;
}

#side_menu_dialog {
    width: var(--body_width);
    height: calc(var(--body_height) - var(--top_menu));
    max-height: calc(var(--body_height) - var(--top_menu));
    overflow: hidden;
    margin: 0;
    padding: 0;
    border: none;
    outline: none;
    position: fixed;
}

.background {
    /* background: linear-gradient(137deg, rgb(255 0 0 / 70%) 0%, rgb(255 0 239 / 60%) 100%), url("/img/logo/logo.svg") no-repeat calc(50% + (280px / 2)) 50% / 100%; */
    /* background: url("/img/logo/logo.svg") no-repeat calc(50% + (280px / 2)) 50% / 100%, linear-gradient(137deg, rgba(0,151,237,1) 0%, rgba(255,102,0,1) 30%, rgba(255,48,55,1) 72%); */
    /* background: url("/img/logo/logo.svg") no-repeat calc(50% + (280px / 2)) 50% / 100%, linear-gradient(137deg, rgba(0, 150, 237, 0.9) 0%, rgba(255,102,0,0.8) 30%, rgba(255,48,55,0.8) 72%); */
    background: url("/img/logo/logo.svg") no-repeat calc(50% + (280px / 2)) 50% / 100%, linear-gradient(137deg, rgba(53, 18, 231, 0.9) 20%, rgba(180, 180, 180, 0.9) 70%);
    background-size: 100% 100%, 200% 200%;
    opacity: 0;
    transition: opacity, background-size, display;
    transition-duration: 0.25s;
    transition-behavior: allow-discrete;
    z-index: 10;
}

.no_cat {
    /* background: none ,linear-gradient(137deg, rgba(0, 150, 237, 0.9) 0%, rgba(255,102,0,0.8) 30%, rgba(255,48,55,0.8) 72%); */
    background: none, linear-gradient(137deg, rgba(53, 18, 231, 0.9) 20%, rgba(180, 180, 180, 0.9) 70%);
    /* background: none ,linear-gradient(137deg, rgba(66, 36, 216, 0.9) 20%, rgba(180,180,180,0.9) 70%); */
}

/* dialog[open] {
    opacity: 1 !important;
    background-size: 200% 200% !important;
    animation: background_ani 5s ease infinite;
}

@starting-style {
    dialog[open] {
        opacity: 0!important;
        background-size: 100% 100%;
    }
}

@keyframes background_ani {
    0% {
        background-position: 10% 0%;
    }

    50% {
        background-position: 90% 100%;
    }

    100% {
        background-position: 10% 0%;
    }
} */

#side_menu {
    height: 100%;
    background-color: #ededed;
    width: 280px;
    overflow: hidden;
    font-family: Nunito;
    /* z-index: 90; */
    display: grid;
    grid-template-rows: 1fr min-content;
}

#side_menu_container {
    overflow: auto;
}

#side_main {
    border-bottom: solid 1px #b4b4b4;
}

#side_main a {
    display: grid;
    grid-template-columns: 30px max-content;
    gap: 7px;
    color: black;
    cursor: pointer;
    padding: 5px 10px;
    text-decoration: none;
}

:is(#side_main a, .side_chapter_level_a):hover {
    box-shadow: 0px 0px 5px rgb(140, 140, 140) inset;
    background-color: rgb(204 204 204) !important;
}

#side_main img {
    width: 100%;
    height: auto;
}

#side_main span {
    display: grid;
    justify-content: center;
    align-content: center;
}

.side_chapter_container {}

.side_chapter_title {
    padding: 10px 10px;
    font-weight: 600;
}

.side_chapter_level_a {
    display: grid;
    grid-template-columns: min-content 1fr;
    column-gap: 3px;
    padding: 5px 15px;
    text-decoration: none;
    color: black;
}

.side_chapter_level_checkbox {
    width: 25px;
    background-repeat: no-repeat;
    background-size: 100% 100%;
    background-image: url("/img/menu/uncheck.svg");
}

.side_chapter_level_checkbox.checked {
    background-image: url("/img/menu/check.svg");
}

#side_info {
    font-size: 10px;
    border-top: solid 1px #dcdcdc;

    p {
        margin: 1px;
        padding: 1px;
        color: #a7a7a7;
    }

    a {
        color: #a7a7a7;
    }
}

/* ==[CHAPTER]=== */

body:has(#chapter) {
    overflow: hidden;
}

main:has(> #chapter) {
    /* background-color: yellow; */
    height: calc(var(--body_height) - var(--top_menu) - env(safe-area-inset-bottom));
    overflow: auto;
    display: grid;
    grid-template-columns: 100%;
    grid-template-rows: 100%;
}

#chapter {
    display: grid;
    grid-template-columns: minmax(280px, 550px) minmax(500px, 1fr);
    grid-auto-rows: auto 1fr;
    background-color: #dbdbdb;
    column-gap: 1px;
}

#chapter_tabs {
    display: none;
    grid-template-columns: 1fr 1fr;
    height: 35px;
    background-color: rgb(180, 180, 180);
    gap: 1px;
    font-family: 'Nunito';






    * {
        display: grid;
        justify-content: center;
        align-content: center;
        box-sizing: content-box;
        cursor: pointer;
        background-color: #dbdbdb;
        font-size: 17px;
        border-bottom: solid 1px rgb(180, 180, 180);
    }

    .tab_selected {
        font-weight: bold;
        background-color: rgb(237, 237, 237);
        border-bottom: solid 1px rgb(237, 237, 237);
    }

}

.tab_blink {
    animation: blink 4s linear infinite;
}

@keyframes blink {
    0%, 100% {
        background-color: rgb(180, 180, 180);
        box-shadow: inset 0px 0px rgb(180, 180, 180);
    }

    50% {
        background-color: #01ec04;
        color: white;
        font-weight: bold;
        box-shadow: inset 0 0 4px 2px #94ff96;
    }
}

#chapter_instructions_container {
    overflow: auto;
    padding: 0px 2rem;
    padding-bottom: 10px;
    background-color: #ededed;
    grid-auto-rows: min-content;
    container: sidebar / inline-size;
}

@container sidebar (min-width: 610px) {

    #chapter_instructions_container > * {
        width: 600px;
        justify-self: center;
    }
}


/* ==[ Nav controls ]=== */

#chapter_nav_container {
    display: grid;
    grid-auto-rows: min-content;
}


#chapter_nav_controls {
    display: grid;
    grid-template-columns: max-content 1fr max-content;
    margin-bottom: 1rem;
}

:is(#chapter_nav_controls > *, #title_chapter, #title_level) {
    display: grid;
    justify-content: center;
    align-content: center;
    text-align: center;
}

:is(#title_chapter, #title_level, #chapter_nav_title) {
    font-family: RobotoSlab;
}

#chapter_nav_title {
    font-size: 20px;
    margin: 0;
}

:is(#chapter_nav_previous, #chapter_nav_next, .chapter_nav_option, #help_button, #help_popover_buttons > *) {
    font-family: Nunito;
    cursor: pointer;
    color: white;
    border: solid 1px #bfbfbf;
    background-color: #bfbfbf;
    /* background-color: #e12028; */
}

:is(#chapter_nav_previous, #chapter_nav_next, .chapter_nav_option, #help_button, #help_popover_buttons > *):hover {
    box-shadow: 0px 0px 5px rgb(140, 140, 140) inset;
    background-color: rgb(191, 191, 191) !important;
}

:is(#chapter_nav_previous, #chapter_nav_next) {
    padding: 5px 10px;
    border-radius: 2px;
}

#chapter_nav_select {
    display: flex;
    gap: 10px;
    justify-content: center;
    flex-wrap: wrap;
}

.chapter_nav_option {
    padding: 5px 10px;
    border-radius: 2px;
    position: relative;
}

.chapter_nav_option.checked::after {
    content: "";
    position: absolute;
    width: 15px;
    height: 15px;
    background-image: url("/img/menu/check.svg");
    top: -7.5px;
    right: -7.5px;
    border-radius: 50%;
}

/*===[ text Container ]===*/

#text_instructions {
    font-family: 'Nunito';
}

#help_container {
    display: grid;
    justify-content: center;
}

#help_button {
    padding: 10px 20px;
    border-radius: 2px;
}

:is(#help_popover, #completion_popover, .standard_popup) {
    margin: 0;
    padding: 0;
    border: none;
    position: fixed;
    overflow: hidden;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
}

#help_popover_window, #completion_popover_window, .standard_popup_window {
    position: fixed;
    width: 300px;
    max-height: 99vh;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background-color: white;
    font-family: 'Nunito';
    box-shadow: 0px 0px 7px 1px #000000a3;
    display: grid;
    /* gap: 19px; */
    /* overflow: auto; */
}

.standard_popup_window {
    gap: 4px;
    box-sizing: border-box;
    padding-bottom: 10px;
    border-radius: 6px;
    overflow: auto;
    background-color: #ededed;
}

#help_popover_window {
    grid-template-rows: 1fr auto;
    gap: 5px;
    padding: 7px;
    border-radius: 25px;
    --circle_size: 90px;
    padding-top: calc(var(--circle_size) / 2);
    border: solid red 3px;
    box-sizing: border-box;
    animation: borders 10s infinite;
}

@keyframes borders {
    0% {
        border-color: red;
    }

    25% {
        border-color: blue;
    }

    50% {
        border-color: green;
    }

    75% {
        border-color: orange;
    }

    100% {
        border-color: red;
    }
}

#help_popover_svg {
    position: fixed;
    top: calc(var(--circle_size) * -1 / 2);
    left: calc(50% - (var(--circle_size) / 2));
    width: var(--circle_size);
    height: var(--circle_size);
    /* border-radius: 50%; */
    background: url("/img/menu/help.svg"), white;
    /* background: url("/img/menu/Pacman_man.svg") no-repeat center / 90%; */
    filter: drop-shadow(0px 0px 2px black);
    border-radius: 50%;
}

#help_popover_text {
    text-align: center;
    overflow: auto;
    margin-top: 7px;
}

#help_popover_buttons {
    display: flex;
    justify-content: center;
}

#help_popover_ok {
    padding: 5px 10px;
    border-radius: 2px;
}

.confetti {
    background: url("/img/popup/confetti.svg") no-repeat 50% 230% / 250%;
    animation: confetti 6s forwards linear;
}

@keyframes confetti {
    from {
        background-position: 50% 230%;
    }

    to {
        background-position: 50% -280%;
    }
}

#completion_popover_window {
    --completion_radius: 11px;
    border-radius: var(--completion_radius);
    padding: 10px;
    width: 330px;
    background-color: rgb(232, 48, 55);
    font-family: DynaPuff;
    overflow: auto;
    /* display: grid; */
    /* grid-template-rows: min-content min-content min-content 1fr min-content; */
}

#completion_popover_congratulations, #completion_popover_complete_level, #completion_popover_complete_chapter {
    text-align: center;
}

#completion_popover_congratulations {
    font-size: 35px;
    font-family: DynaPuff;
    font-weight: 700;
}

.rainbow_text {
    color: transparent;
    background: linear-gradient(90deg, rgba(255, 0, 0, 1) 0%, rgba(255, 154, 0, 1) 10%, rgba(208, 222, 33, 1) 20%, rgba(79, 220, 74, 1) 30%, rgba(63, 218, 216, 1) 40%, rgba(47, 201, 226, 1) 50%, rgba(28, 127, 238, 1) 60%, rgba(95, 21, 242, 1) 70%, rgba(186, 12, 248, 1) 80%, rgba(251, 7, 217, 1) 90%, rgba(255, 0, 0, 1) 100%);
    background-size: 200%;
    background-position: 0 50%;
    background-clip: text;
    animation: rainbow_text 5s infinite alternate linear;
}

@keyframes rainbow_text {
    0% {
        background-position: 0 50%;
    }

    100% {
        background-position: 100% 50%;
    }
}

#completion_popover_complete_level, #completion_popover_complete_chapter {
    font-size: 26px;
    margin: 11px 0px;
    font-family: 'DynaPuff';
    text-shadow: -1px -1px #c5c5c5;
    color: white;
}

#completion_popover_complete_chapter {
    display: none;
}

#completion_popover_level {
    text-shadow: 1px -1px #b30195;
    color: #fb07d2;
}

#completion_popover_image {
    animation: wizard 2s;
    margin: 0 auto;
    margin-bottom: 11px;
    max-width: 100%;
    max-height: 394px;
    width: auto;
    height: calc(100vh - 394px);
}

@keyframes wizard {
    from {
        transform: rotateY(0deg);
    }

    to {
        transform: rotateY(720deg);
    }
}

#completion_popover_split_button {
    display: flex;
    grid-template-columns: 25px min-content;
    justify-content: space-between;
}

#completion_popover_continue {
    /* margin-top: 2px; */
    /* border-bottom-right-radius: var(--completion_radius); */
    /* border-bottom-left-radius: var(--completion_radius); */
    animation: colors 10s infinite;
    /* border-top: solid 1px rgb(192 192 192); */
    margin-top: 5px;
    /* border-radius: var(--completion_radius); */
    border-radius: 4px;
    padding: 15px 0px;
}

:is(#completion_popover_reload, #completion_popover_signup, #completion_popover_continue) {
    color: white;
    display: grid;
    justify-content: center;
    cursor: pointer;
    transition: font-size 0.3s, box-shadow 0.3s;
}

:is(#completion_popover_reload, #completion_popover_signup, #completion_popover_continue):hover {
    /* box-shadow: 0px 0px 4px 0px #7a72bc; */
    font-size: 17px;
}

#completion_popover_reload {
    /* border-top-left-radius: var(--completion_radius); */
    /* border-bottom-left-radius: var(--completion_radius); */
    border-radius: var(--completion_radius);
    border-radius: 4px;
    width: 25px;
    background: url("/img/popup/reload.svg") center / 65% 65% no-repeat, orange;
}

#completion_popover_signup {
    background-color: #7dd15d;
    /* border-left: solid 1px rgb(192 192 192); */
    /* border-top-right-radius: var(--completion_radius); */
    /* border-bottom-right-radius: var(--completion_radius); */
    /* border-radius: var(--completion_radius); */
    /* padding: 0px; */
    border-radius: 4px;
}

#completion_popover_reload, #completion_popover_signup {
    padding: 11px 17px;
}

@keyframes colors {
    0% {
        background-color: #e83036;
    }

    25% {
        background-color: #0197ed;
    }

    50% {
        background-color: #7dd15d;
    }

    75% {
        background-color: #f7f01e;
    }

    100% {
        background-color: #e83036;
    }
}

/* ===[ Iframe ]=== */

#iframe_container {
    overflow: hidden;
    background-color: white;
}

#iframe_container > iframe {
    width: 100%;
    /* height: calc(var(--body_height) - var(--top_menu)); */
    height: 100%;
}

/* ===[ Resize ]=== */

@media only screen and (max-width: 1500px) {
    #chapter {
        grid-template-columns: 1fr 949px;
    }
}

/* @media only screen and (max-width: 1345px) {
    #chapter_instructions_container {
        padding: 0px 1rem;
    }
} */

@media only screen and (max-width: 1280px) {
    #chapter {
        grid-template-columns: 1fr;
    }
}

/* @media only screen and (max-width: 1280px) {

    body:has(#chapter) {
        overflow: auto;
    }

    #chapter {
        grid-template-columns: 1fr;
        grid-template-rows: max-content 760px;
        gap: 1px;
    }

    #chapter_instructions_container {
        padding-bottom: 1rem;
    }

    #chapter_instructions_container > * {
        justify-self: center;
        width: clamp(100px, 100%, 500px);
    }
} */

/* ===[ Fire Works ]=== */

@keyframes firework {
    0% {
        transform: translate(var(--x), var(--initialY));
        width: var(--initialSize);
        opacity: 1;
    }

    50% {
        width: 0.5vmin;
        opacity: 1;
    }

    100% {
        width: var(--finalSize);
        opacity: 0;
    }
}

/* @keyframes fireworkPseudo {
    0% { transform: translate(-50%, -50%); width: var(--initialSize); opacity: 1; }
    50% { width: 0.5vmin; opacity: 1; }
    100% { width: var(--finalSize); opacity: 0; }
  }
   */
.firework,
.firework::before,
.firework::after {
    pointer-events: none;
    --initialSize: 0.5vmin;
    --finalSize: 45vmin;
    --particleSize: 0.2vmin;
    --color1: yellow;
    --color2: khaki;
    --color3: white;
    --color4: lime;
    --color5: gold;
    --color6: mediumseagreen;
    --y: -30vmin;
    --x: -50%;
    --initialY: 60vmin;
    content: "";
    animation: firework 2s infinite;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, var(--y));
    width: var(--initialSize);
    aspect-ratio: 1;
    background:
        /*
      radial-gradient(circle, var(--color1) var(--particleSize), #0000 0) 0% 0%,
      radial-gradient(circle, var(--color1) var(--particleSize), #0000 0) 100% 0%,
      radial-gradient(circle, var(--color1) var(--particleSize), #0000 0) 100% 100%,
      radial-gradient(circle, var(--color1) var(--particleSize), #0000 0) 0% 100%,
      */

        radial-gradient(circle, var(--color1) var(--particleSize), #0000 0) 50% 0%,
        radial-gradient(circle, var(--color2) var(--particleSize), #0000 0) 100% 50%,
        radial-gradient(circle, var(--color3) var(--particleSize), #0000 0) 50% 100%,
        radial-gradient(circle, var(--color4) var(--particleSize), #0000 0) 0% 50%,

        /* bottom right */
        radial-gradient(circle, var(--color5) var(--particleSize), #0000 0) 80% 90%,
        radial-gradient(circle, var(--color6) var(--particleSize), #0000 0) 95% 90%,
        radial-gradient(circle, var(--color1) var(--particleSize), #0000 0) 90% 70%,
        radial-gradient(circle, var(--color2) var(--particleSize), #0000 0) 100% 60%,
        radial-gradient(circle, var(--color3) var(--particleSize), #0000 0) 55% 80%,
        radial-gradient(circle, var(--color4) var(--particleSize), #0000 0) 70% 77%,

        /* bottom left */
        radial-gradient(circle, var(--color5) var(--particleSize), #0000 0) 22% 90%,
        radial-gradient(circle, var(--color6) var(--particleSize), #0000 0) 45% 90%,
        radial-gradient(circle, var(--color1) var(--particleSize), #0000 0) 33% 70%,
        radial-gradient(circle, var(--color2) var(--particleSize), #0000 0) 10% 60%,
        radial-gradient(circle, var(--color3) var(--particleSize), #0000 0) 31% 80%,
        radial-gradient(circle, var(--color4) var(--particleSize), #0000 0) 28% 77%,
        radial-gradient(circle, var(--color5) var(--particleSize), #0000 0) 13% 72%,

        /* top left */
        radial-gradient(circle, var(--color6) var(--particleSize), #0000 0) 80% 10%,
        radial-gradient(circle, var(--color1) var(--particleSize), #0000 0) 95% 14%,
        radial-gradient(circle, var(--color2) var(--particleSize), #0000 0) 90% 23%,
        radial-gradient(circle, var(--color3) var(--particleSize), #0000 0) 100% 43%,
        radial-gradient(circle, var(--color4) var(--particleSize), #0000 0) 85% 27%,
        radial-gradient(circle, var(--color5) var(--particleSize), #0000 0) 77% 37%,
        radial-gradient(circle, var(--color6) var(--particleSize), #0000 0) 60% 7%,

        /* top right */
        radial-gradient(circle, var(--color1) var(--particleSize), #0000 0) 22% 14%,
        radial-gradient(circle, var(--color1) var(--particleSize), #0000 0) 45% 20%,
        radial-gradient(circle, var(--color1) var(--particleSize), #0000 0) 33% 34%,
        radial-gradient(circle, var(--color1) var(--particleSize), #0000 0) 10% 29%,
        radial-gradient(circle, var(--color1) var(--particleSize), #0000 0) 31% 37%,
        radial-gradient(circle, var(--color1) var(--particleSize), #0000 0) 28% 7%,
        radial-gradient(circle, var(--color1) var(--particleSize), #0000 0) 13% 42%;
    background-size: var(--initialSize) var(--initialSize);
    background-repeat: no-repeat;
}

.firework::before {
    --x: -50%;
    --y: -50%;
    --initialY: -50%;
    /*   transform: translate(-20vmin, -2vmin) rotate(40deg) scale(1.3) rotateY(40deg); */
    transform: translate(-50%, -50%) rotate(40deg) scale(1.3) rotateY(40deg);
    /*   animation: fireworkPseudo 2s infinite; */
}

.firework::after {
    --x: -50%;
    --y: -50%;
    --initialY: -50%;
    /*   transform: translate(44vmin, -50%) rotate(170deg) scale(1.15) rotateY(-30deg); */
    transform: translate(-50%, -50%) rotate(170deg) scale(1.15) rotateY(-30deg);
    /*   animation: fireworkPseudo 2s infinite; */
}

.firework:nth-child(1),
.firework:nth-child(1)::before,
.firework:nth-child(1)::after {
    left: 30%;
    top: 40%;
    animation-delay: -0.25s;
}

.firework:nth-child(2) {
    --x: 30vmin;
}

.firework:nth-child(2),
.firework:nth-child(2)::before,
.firework:nth-child(2)::after {
    --color1: pink;
    --color2: violet;
    --color3: fuchsia;
    --color4: orchid;
    --color5: plum;
    --color6: lavender;
    --finalSize: 40vmin;
    left: 25%;
    top: 70%;
    animation-delay: -0.25s;
}

.firework:nth-child(3) {
    --x: -30vmin;
    --y: -50vmin;
}

.firework:nth-child(3),
.firework:nth-child(3)::before,
.firework:nth-child(3)::after {
    --color1: cyan;
    --color2: lightcyan;
    --color3: lightblue;
    --color4: PaleTurquoise;
    --color5: SkyBlue;
    --color6: lavender;
    --finalSize: 35vmin;
    left: 73%;
    top: 60%;
    animation-delay: -0.4s;
}



/*==[ Sign In]==*/

body:has(#signin) {
    background-color: #ededed;
    display: grid;
    grid-template-columns: 100%;
    grid-template-rows: 100%;
    /* overflow-x: auto; */
}

main:has(#signin) {
    display: grid;
    /* grid-template-columns: 100%;
    grid-template-rows: 100%; */
    overflow: hidden;
    container: signin / inline-size;
}


#signin {
    display: grid;
    grid-template-columns: 1fr 1fr;
    font-family: Nunito;
    overflow: hidden;
}

.signin_inputs {
    display: grid;
    --input_height: 35px;
    gap: 16px;
}

.signin_inputs input {
    font-size: 16px;
    height: var(--input_height);
    padding: 0px 0px;
    margin: 0px;
}

#left_signin {
    display: grid;
    justify-content: center;
    align-content: center;
    /* overflow: auto; */
}

.signin_container {
    display: grid;
    max-width: 360px;
    gap: 15px;
    /* background-color: #ededed; */
    border-radius: 4px;
    /* overflow: auto; */
    height: max-content;
}

.signin_container h2 {
    margin: 0px;
    font-size: 26px;
}

#signin_button {
    background-color: orange;
    color: white;
    text-align: center;
    cursor: pointer;
    padding: 12px 0px;
}

.signin_input {
    grid-column: 1 / 2;
    position: relative;
    height: 50px;
    display: grid;
    --input_padding: 10px;
    --div_height: 0px;
}

.signin_input > input {
    padding-left: var(--input_padding);
    background-color: #ededed;
    border: grey solid 1px;
    height: 100%;
}

.signin_input > div {
    padding: 0px 4px;
    position: absolute;
    top: 0%;
    left: var(--input_padding);
    transform-origin: center;
    transform: translateY(calc(70% + var(--div_height)));
    /* transform: translateY(60%); */
    pointer-events: none;
    transition: transform .15s cubic-bezier(.4, 0, .2, 1);
    background-color: #ededed;
}

.signin_input.selected > div {
    transform: scale(0.75) translateY(-70%) translateX(-20%);
}

.signup_acknowledge {
    font-size: 14px;
}

.signup_agree {
    font-size: 14px;
    cursor: pointer;
    display: flex;
}

.signup_agree input {
    margin: 0px;
    margin-right: 3px;
}

#signin_forgot {
    font-size: 14px;
}

#signin_or {
    font-size: 14px;
    margin-bottom: 5px;
}

#right_signin {
    display: grid;
    /* align-content: center; */
    /* justify-content: center; */
    /* overflow: hidden; */
    /* padding: 40px; */
    background: url("/img/popup/Wizard_V2.svg") center / 80% 80% no-repeat;
}


@container signin (max-width: 780px) {

    #signin {
        grid-template-columns: 1fr;
        background: url("/img/login/Pacman_v2.svg") center 3% / 98% 10% no-repeat;
    }

    #left_signin {
        padding: 10px;
        padding-top: 75px;
    }

    #right_signin {
        display: none;
    }
}

#signin_checker {
    display: grid;
    grid-template-columns: auto;
}

#signin_checker meter {
    /* width: 100%; */
    /* grid-column: 1 / 2; */
    width: -webkit-fill-available;
    width: fill-available;
}

#signin_checker p {
    margin: 0px;
    font-size: 12px;
    color: red;
}

#signin_checker p.approved {
    color: green;
}

.standard_popup_window > * {
    margin: 0px 10px;
}

.standard_popup_window > p {
    text-align: center;
    padding: 10px 0px;
}

.standard_popup_window h3 {
    font-size: 23px;
    text-align: center;
    background-color: #e7a327;
    margin: 0px !important;
    padding: 9px 0px;
    border-top-left-radius: 6px;
    border-top-right-radius: 6px;
}

.standard_popup_window select {
    font-size: 16px;
    text-align: center;
    padding: 10px 0px;
}

.standard_popup_window :is(.signin_inputs, #signin_checker, .buttons) {
    padding: 10px;
}

.standard_popup_window .two_buttons {
    display: flex;
    justify-content: space-between;
    /* padding: 0px 10px; */
    gap: 5px;
}

.two_buttons > * {
    color: white;
    padding: 5px 10px;
    background-color: orange;
    cursor: pointer;
    display: grid;
    text-align: center;
    place-items: center;
}

.two_buttons > *:hover {
    background-color: #da8d00;
}

.cancel {
    background-color: rgb(191, 191, 191);
}

.two_buttons .cancel:hover {
    background-color: rgb(160, 160, 160);
}

#warnings > * {
    display: none;
    text-align: center;
}

#warning_ok, .one_button {
    font-size: 16px;
    color: white;
    background-color: orange;
    padding: 10px 0px;
    text-align: center;
    border-radius: 5px;
    cursor: pointer;
}

:is(#warning_ok, .one_button):hover {
    background-color: #da8d00;
}


/*===[ User ]===*/

body:has(#user) {
    background-color: #ededed;
    container: user / inline-size;
}

#user {
    display: grid;
    grid-template-columns: 200px 1fr;
    font-family: Nunito;
}

#user_menu_side {
    /* border-bottom: solid 1px rgb(180, 180, 180); */
    border-right: solid 1px rgb(180, 180, 180);
}

#user_menu {
    display: grid;
}

#user_menu a {
    text-decoration: none;
    color: black;
    cursor: pointer;
    padding: 7px 0px;
    padding-left: 5px;
}

#user_menu a:hover {
    box-shadow: 0px 0px 5px rgb(140, 140, 140) inset;
    background-color: rgb(204 204 204) !important;
}

.user_selected {
    box-shadow: 0px 0px 5px rgb(140, 140, 140) inset;
    background-color: rgb(204 204 204) !important;
    font-weight: bold;
}

#user_content {
    /* background-color: red; */
}

@container user (max-width: 610px) {

    #user {
        grid-template-columns: 1fr;
    }

    #user_menu_side {
        border-right: none;
        border-bottom: solid 1px rgb(180, 180, 180);
    }

    #user_menu a {
        text-align: center;
        border-right: none;
    }
}


#user_containers {
    padding: 10px;

    h3 {
        font-weight: 700;
        font-size: 30px;
    }

    h4 {
        font-size: 22px;
        margin: 10px 0px;
    }
}

/*===[ Chapters ]===*/

#user_chapters {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

#user_chapters > a {
    width: 200px;
    height: 85px;
    position: relative;
    overflow: hidden;
    /* cursor: pointer; */
    display: grid;
    border-radius: 7px;
    text-decoration: none;
}

#user_chapters p {
    justify-content: center;
    align-content: center;
    display: grid;
    z-index: 1;
    font-size: 22px;
    font-weight: 800;
    color: white;
}

#user_chapters img {
    position: absolute;
    width: 110%;
    height: 110%;
    object-fit: cover;
    transition: width 0.4s, height 0.4s, transform 0.4s;
}

#user_chapters > a:hover img {
    width: 150%;
    height: 150%;
    transform: translate(-10%, -10%);
    /* background-size: 200% 200%; */
}

#user_last_chapter {
    order: 9999;
    background: url(/img/user/plus-white.svg) center / 60% 60% no-repeat, #bfbfbf;
    background-size: 60% 60%;
    transition: background-color 0.2s, box-shadow 0.2s, background-size 0.2s;
}

#user_last_chapter:hover {
    box-shadow: 0px 0px 5px rgb(140, 140, 140) inset;
    background-color: rgb(180 180 180) !important;
    background-size: 80% 80%;
}


/*===[ Students ]===*/

#student_container {
    display: grid;
    grid-template-rows: min-content 1fr min-content;
    gap: 3px;
}

#student_controls_top {
    display: flex;
    justify-content: end;
}

.orange_button, #student_import, #add_student {
    padding: 5px 10px;
    background-color: orange;
    color: white;
    cursor: pointer;
    font-weight: 600;
}

.orange_button {
    width: max-content;
}

#add_student {
    text-align: center;
}

.orange_button:hover, #student_import:hover, #add_student:hover {
    background-color: #da8d00;
}

#students {
    display: grid;
    grid-template-rows: min-content 1fr;
    gap: 2px;
}

.student_container {
    display: grid;
    grid-auto-rows: min-content;
    gap: 1px;
}

#student_table_header, .student {
    display: grid;
    grid-template-columns: 1fr 1fr 100px;
    gap: 1px;
    height: 30px;
}

:is(#student_table_header, .student) > div {
    background-color: rgb(214 214 214);
    display: grid;
    /* padding: 6px; */
    place-items: center;
}

.student:hover > * {
    background-color: rgb(200 200 200) !important;
}

.student_controls {
    display: flex !important;
    gap: 5px;
    cursor: pointer;
    place-items: normal;
}

.student_controls > * {
    height: 100%;
}

#student_table_header div {
    background-color: #b0b0b0;
}

.student_controls_edit {
    width: 30px;
    background: url(/img/user/edit.svg) no-repeat center / 80% 80%;
}

.student_controls_delete {
    width: 30px;
    background: url(/img/user/delete.svg) no-repeat center / 80% 80%;
}

:is(.student_controls_edit, .student_controls_delete):hover {
    box-shadow: 0px 0px 5px rgb(140, 140, 140) inset;
    background-color: rgb(204 204 204) !important;
}

/*===[ Billing ]===*/

#billing_plan {
    display: grid;
    gap: 5px;
}

#billing_plan > * {
    background-color: rgb(214 214 214);
    padding: 10px;
}

/*===[ Settings ]===*/

#settings {
    background-color: rgb(214 214 214);
    padding: 10px;
}


/*===[ Store ]===*/

body:has(#store) {
    background-color: #ededed;
}

#store {
    font-family: Nunito;
    container: store / inline-size;
    
    iframe {
        float:right;
    }

    h3 {
        font-size: 32px;
        text-align: center;
    }
    
}

@container store (max-width: 610px) {

    #store {
        iframe {
            float: none;
            justify-self: center;
        }
    }

    #store_descriptions {
        display: grid;
    }

    #store_descriptions * {
        text-align: center !important;
    }
}

#subscriptions {
    display: grid;
    gap: 10px;
}

#subscription_time {
    display: flex;
    justify-content: center;
    gap: 3px
}

#subscription_time > * {
    display: grid;
    place-items: center center;
    color: white;
    border: solid 1px #bfbfbf;
    background-color: #bfbfbf;
    padding: 7px 11px;
    cursor: pointer;
    font-size: 17px;
}

#subscription_yearly {
    position: relative;
    /* z-index: -1; */
}

#subscription_yearly > div {
    position: absolute;
    right: -41%;
    top: -35%;
    background-color: orange;
    border-radius: 8px;
    padding: 2px;
    font-size: 13px;
}

.subscription_active {
    box-shadow: 0px 0px 5px rgb(140, 140, 140) inset;
    background-color: rgb(191, 191, 191) !important;
}

#subscription_options {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    justify-content: center;
    padding: 10px;
}

.subscription_option {
    background-color: rgb(214 214 214);
    max-width: 600px;
    transition: box-shadow 0.3s ease-in-out, transform 0.3s ease-in-out;
    flex-basis: 370px;
    flex-grow: 2;
    /* flex-shrink: 1; */
}


.subscription_option:hover {
    box-shadow: rgba(0, 0, 0, 0.1) 0px 5px 20px 0px;
}
.subscription_images {
    height: 209px;
    position: relative;
    background: white;
    overflow: hidden;
}

.imgslide {
    position: absolute;
    width: 100%;
    height: 100%;
    opacity: 0;
    transition: opacity 1.5s ease-in-out;
    object-fit: cover;
}

.imgslide.imgactive {
    opacity: 1;
}

/* White fade overlay */
.white-fade {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: white;
    pointer-events: none;
    opacity: 0;
    transition: opacity 1s ease-in-out;
}

/* Use @starting-style for the white fade */
.white-fade.fade {
    opacity: 0;
    transition: opacity 1s ease-in-out;

    @starting-style {
        opacity: 1;
    }
}

.subscription_price_monthly, .subscription_price_yearly {
    font-size: 18px;
    font-weight: 800;
}

.subscription_option_texts {
    display: grid;
    gap: 3px;
    padding: 5px;

    & > :is(div,h4) {
        text-align: center;
    }

    h4 {
        margin: 0;
        font-size: 24px;
    }

    & > div {
        font-size: 18px;
    }

    li {
        font-size: 17px;
    }
}

.subscribe_button_container {
    display: flex;
    justify-content: center;
}

.subscribe_button {
    font-size: 19px;
    background-color: orange;
    padding: 5px 14px;
    color: white;
    cursor: pointer;
    transition: 0.3s all;
}

.subscribe_button:hover {
    background: darkorange;
}

#store_descriptions {
    /* display: grid; */
    /* justify-content: center; */
    padding: 10px;
    /* grid-template-columns: 1fr max-content; */
    max-width: 1300px;
    justify-self: center;
    gap: 10px;

    h3 {
        text-align: start;
    }
}

/*===[ Message ]===*/

body:has(#message) {
    background-color: #ededed;
}

#message {
    font-family: Nunito;
    display: grid;
    justify-content: center;

    &>* {
        text-align: center;
        padding: 0px 10px;
    }

    h2 {
        font-size: 32px;
        text-align: center;
    }

    div:has(> a) {
        margin-top: 10px;
    }
    
    a {
        text-decoration: none;
        color: white;
        background-color: orange;
        padding: 10px;
    }

    a:hover {
        background-color: #da8d00;
    }
}