* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    list-style-type: none;
    font-family: sans-serif;
    scroll-behavior: smooth;
}
*:focus {
    outline: 2px solid var(--outline-color);
}
.hidden {
    display: none !important;
}
a {
    text-decoration: none;
    color: var(--text-color);
}
ul, p {
    margin: 0;
}
a:hover{
    text-decoration: none;
    color: var(--text-color);
}
button {
    background-color: var(--button-color);
    border: none;
}

:root,
    :root.default {
        --bg-color: pink;
        --text-color: #FFFFFF;
        --text-color-dark: #000000;
        --shadow-color: rgba(0, 0, 0, 0.8);
        --outline-color: magenta;
        --button-color: #DFD3E3;
}

body {
    display: flex;
    flex-direction: column;
    position: relative;
    width: 100dvw;
    height: 100dvh;
    overflow: hidden;
}
    header {
        position: absolute;
        top: 10px;
        right: 15px;
        width: fit-content;
        height: auto;
        z-index: 0;
    }
        #controls {
            width: 100%;
            display: flex;
            flex-direction: column;
            gap: .3em;
            font-size: 25px;
            height: auto;
        }
    main {
        position: relative;
        width: 100%;
        height: 100%;
        background-image: url("../media/mapBackground.jpg");
        background-repeat: no-repeat;
        background-position: center;
        background-size: cover;
        z-index: 1;
    }
        #character {
            position: absolute;
            top: 70%;
            left: 50%;
            transform: translate(-50%, -50%);
            display: flex;
            flex-direction: column;
            align-items: center;
            font-weight: bold;
            font-size: 18px;
            pointer-events: none;
            z-index: 10;
        }
        .crystal {
            position: absolute;
            -webkit-touch-callout: none; /* iOS Safari */
            -webkit-user-select: none; /* Safari */
             -khtml-user-select: none; /* Konqueror HTML */
               -moz-user-select: none; /* Old versions of Firefox */
                -ms-user-select: none; /* Internet Explorer/Edge */
                    user-select: none; /* Non-prefixed version, currently
                                          supported by Chrome, Edge, Opera and Firefox */
        }

        .popup {
            position: relative;
            width: 100dvw;
            height: 100dvh;
            display: flex;
            justify-content: center;
            align-items: center;
            text-align: center;
            background-color: var(--shadow-color);
            z-index: 999;
        }
        .wrapper {
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            gap: .5em;
            width: 80%;
            height: 60%;
            border-radius: 25px;
            padding: 2em;
        }
        .minimized {
            background-color: var(--bg-color);
        }
        #warningButton {
            background-color: white;
            padding: .4em 1.5em;
        }
        #login {
            position: relative;
            width: 100%;
            height: 100%;
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
            color: white;
            background-image: url("../media/loginBck.png");
            background-position: center;
            background-size: cover;
            background-repeat: no-repeat;
            padding: 2em 0 0 0;
            z-index: 100;
        }
        #login h1 {
            font-size: 60px;
            margin: 0 0 1em 0;
            text-shadow: 0 0 10px plum,
            0 0 20px plum,
            0 0 40px plum,
            0 0 80px plum,
            0 0 160px plum,
            0 0 320px plum;
        }
        #login span {
            font-weight: bold;
        }
        #login select {
            font-size: 20px;
            width: 250px;
            margin: .4em 0;
            padding: 5px 0 0 10px;
        }
            #loginButton {
                font-size: 25px;
                padding: 10px 20px;
                margin: 1em 0 0 0;
                border-radius: 10px;
                background-color: #6f4899;
                color: white;
                box-shadow: 0 0 30px white;
            }
            #versionControl {
                position: absolute;
                bottom: 15px;
                left: 10px;
                font-style: italic;
                text-transform: capitalize;
                color: rgba(255, 255, 255, 0.3);
            }
        #crystalinfo {
            position: relative;
            width: 100dvw;
            height: 100dvh;
            text-align: center;
            background-color: white;
            z-index: 10;
        }
            .heroImage {
                position: relative;
                background-image: url("../media/heroImage.jpg");
                background-repeat: no-repeat;
                background-position: center;
                background-size: cover;
                width: 100%;
                height: 30%;
                display: flex;
                flex-direction: column;
                justify-content: center;
                align-items: center;
            }
            #collectionHeroImage {
                background-image: url("../media/loginBck.png");
                padding: 2em 0 0 0;
            }
                .darken {
                    position: absolute;
                    width: 100%;
                    height: 100%;
                    background-color: rgba(0, 0, 0, 0.7);
                    z-index: 1;
                }
            #info {
                padding: 1em 2em 2em 2em;
            }
            #info p {
                margin: .5em 0;
            }
            .crystalImage {
                width: 150px;
                z-index: 2;
            }
            .crystalValue {
                font-size: 35px;
                color: var(--text-color);
                z-index: 2;
            }
            .crystalZodiac {
                font-weight: bold;
            }
            .popupButton {
                border-radius: 15px;
                font-size: 18px;
                padding: .4em 1em;
                margin: .8em 0;
                            }
            #shopButton {
                margin: .4em 0 .6em 0;
                background-color: transparent;
                border: 2px solid black;
                text-transform: uppercase;
            }
            #closeLootButton {
                font-size: 23px;
                font-weight: bold;
            }
            #shopLink {
                width: 100%;
                height: 100%;
                color: black;
            }

        #collection {
            position: relative;
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: .5em;
            width: 100%;
            height: 100%;
            text-align: center;
            background-color: white;
            padding: 0 0 2em 0;
            z-index: 10;
        }
            #collection h1 {
                font-size: 50px;
                color: white;
                margin: 0 0 0em 0;
                z-index: 5;
            }
            #crystalCollection {
                width: 100%;
                display: flex;
                flex-direction: column;
                padding: 0 .5em;
                gap: .5em;
            }
            #crystalCollection li {
                width: 100%;
                display: flex;
                font-size: 20px;
                align-items: center;
                justify-content: space-around;
                border-radius: 50px;
                background-color: rgba(0, 0, 0, 0.075);
                padding: .3em 1em;
            }
            .crystalAmount {
                font-size: 25px;
            }
            .collection_crystal_header {
                width: 200px;
                text-align: left;
            }
            #closeCollectionButton {
                position: fixed;
                bottom: 1em;
                border: 2px solid black;
                padding: 1em 1em;
            }

    footer {
        position: absolute;
        bottom: 0;
        height: fit-content;
        width: 100%;
        padding: 0 0 2em 0;
    }
        #mainMenu {
            position: relative;
            width: 100%;
            height: 100%;
            display: flex;
            justify-content: center;
            align-items: flex-end;
        }
        .navButton {
            width: fit-content;
            background-color: transparent;
            box-shadow: 0 0 10px var(--shadow-color);
            padding: 0;
            z-index: 0;
        }
        #menuButton {
            height: 60px;
            border-radius: 50%;
            box-shadow: 0 0 20px rgba(255, 0, 157, 1);
        }
        #minimapButton {
            position: absolute;
            right: 10px;
            bottom: 0;
            height: 90px;
        }
        #minimapButton, #minimapButton img {
            border-radius: 15px;
        }
        .subMenuButton {
            position: absolute;
            bottom: 0;
            width: 60px;
            height: 60px;
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 30px;
            border-radius: 50%;
            text-align: center;
            background-color: white;
            transition: 400ms;
            padding: 1em .5em;
            z-index: 1;
        }