:root{
    --blue: #2067ae;
    --red: #e3224d;
    --yellow: #f5c84e;
    --selected: dimgray;
    --unselected: lightgray;
}

main {
    gap: 1rem !important;
    padding-inline: 1rem;
}

.body{
    position: relative;
    max-width: 800px;
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .5rem;
}

.board{
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: .5rem;
}

.option, .bonus-option {
    border-radius: .5rem;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    width: 100%;
    padding: 1rem;
    background-color: var(--unselected);
    -webkit-user-select: none; /* Safari */
    -ms-user-select: none; /* IE 10 and IE 11 */
    user-select: none; /* Standard syntax */
}

.option {
    height: 9rem;
}

.bonus-option{
    height: 8rem;
}

.option:hover, .bonus-option:hover{
    cursor: pointer;
}

.option:active, .bonus-option:active, .selected:active{
    transform: scale(.975);
}

.selected{
    background-color: var(--selected);
    color: var(--white);
}

.bonus-selected{
    outline: 3px dashed var(--selected);
    outline-offset: 2px;
}

.selected:hover{
    cursor: pointer;
}

@keyframes click{
    0%{
        transform: scale(1);
    }
    50%{
        transform: scale(.975);
    }
    100%{
        transform: scale(1);
    }
}

.game-buttons{
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-top: .5rem;
}

main button {
    padding: 1.5rem;
    height: 2rem;
    width: fit-content;
}

.submit{
    color: grey;
    pointer-events: none;
}

.solvedlist{
    position: relative;
    display: grid;
    grid-template-columns: 1fr;
    width: 100%;
    list-style: none;
    text-align: center;
    padding: 0;
    margin: 0;
    gap: .5rem;
    color: var(--white);
}

em {
    font-family: var(--ff-serif);
    font-size: var(--fs-medium);
}

.title {
    max-width: 900px;
    width: 100%;
    gap: 1.5rem !important;
    padding-inline: .5rem;
}

section {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-around;
    height: 9rem;
    border-radius: .5rem;
    padding: .5rem;
}

.catTitle{
    margin: 0;
}

.catItem, ol {
    list-style: none;
    font-size: var(--fs-xsmall);
    padding: 0;
    margin: 0;
    width: 100%;
    font-family: var(--ff-sans);
    font-size: var(--fs-ssmall);

}

.catDropdown{
    visibility: hidden;
    height: 0;
    background-color: transparent;
    padding: 0;
    margin: 0;
    border: 0;
    color: inherit;
    display: flex;
    gap: .5rem;
}

.purple{
    background-color: var(--dark-purple);
    color: var(--white);
}

.green{
    background-color: var(--dark-green) !important;
    color: var(--white);
}

.blue{
    background-color: var(--blue);
    color: var(--white);
}

.yellow{
    background-color: var(--yellow);
    color: var(--black);
}

.red{
    background-color: var(--red);
    color: var(--white);
}

.mistakes{
    display: flex;
    flex-direction: row;
    margin: 0;
    gap: 1rem;
}

.mistake-bubbles {
    display: flex;
    list-style: none;
    gap: .25rem;
    padding: 0;
    margin: 0;
    align-items: center;
}

.bubble{
    width: 1.25rem;
    height: 1.25rem;
    border: 2px solid var(--black);
    border-radius: 50%;
}

.filled {
    background-color: var(--black);
}

.one-away{
    position: fixed;
    top: 6rem;
    z-index: 3;
    color: var(--white);
    background-color: var(--black);
    padding: 1rem;
    border-radius: .5rem;
    opacity: 0%;
    pointer-events: none;
}

.visible{
    animation-name: pop-up;
    animation-duration: 3s;
}

@keyframes pop-up{
    0%{
        opacity: 0%;
    }
    20%{
        opacity: 100%;
    }
    80%{
        opacity: 100%;
    }
    100%{
        opacity: 0%;
    }
}

.popup{
    z-index: 6;
    position: absolute;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .5rem;
    border-radius: .5rem;
    box-shadow: 0 0 10px var(--selected);
    background-color: var(--white);
    padding-block: 2rem;
    padding-inline: 1.5rem;
    width: fit-content;

}

.endPopup{
    opacity: 0%;
    transition: opacity .2s ease;
    pointer-events: none;
}

.score{
    max-width: 300px;
}

.bonus-board{
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: .5rem;

}

h2  {
    margin: .5rem;
    text-align: center;
}

.results {
    margin-bottom: .5rem;
    text-align: center;
    line-height: 1;
}

.hidden{
    display: none !important;
    pointer-events: none !important;
}

main li {
    margin: .2rem; 
}

.help {
    width: fit-content;
    padding: 0;
    background-color: transparent;
    border-radius: 50%;
    color: var(--black);
}

.instructions {
    position: relative;
    display: flex; 
    text-align: left;
    text-wrap: pretty;
    gap: 1rem;
}

.tooltip{
    position: absolute;
    z-index: 7;
    top: 40px;
    right: 0;
    max-width: 800px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    background-color: white;
    border: 3px solid var(--black);
    border-radius: .5rem;
    box-shadow: 0 0 5px var(--selected);
    padding: 1.5rem;
    gap: .5rem;
}

.close{
    position: absolute;
    top: 0;
    right: 0;
    background-color: transparent;
    color: black;
    height: fit-content;
    padding-inline: 1rem
}

.intro-background{
    position: absolute;
    width: 100%;
    height: 100%;
    background-color: white;
    display: grid;
    justify-items: center;
    /* align-items: center; */
    opacity: 100%;
    transition: opacity .2s ease;
    z-index: 6;
}

.fade-away{
    opacity: 0;
    pointer-events: none;
}

.fade-in{
    opacity: 100%;
    pointer-events: auto;
}

.subtext{
    font-size: var(--fs-ssmall);
    font-weight: var(--fw-thin);
    max-width: 500px;
}

.shake{
    animation-name: shake;
    animation-duration: .4s;
    animation-timing-function: ease;
}

@keyframes shake{
    0%{
        transform: translateX(.25rem);
    }
    25%{
        transform: translateX(-.5rem);
    }
    50%{
        transform: translateX(.5rem);
    }
    75%{
        transform: translateX(-.5rem);
    }
    100%{
        transform: translateX(.25rem);
    }
}

.jump-up, .jump-down{
    animation-name: jump-up;
    animation-duration: .5s;
    animation-timing-function: cubic-bezier(0.47, -0.01, 0.69, 0.18);
}

.jump-down{
    animation-direction: reverse;
}

@keyframes jump-up{
    0%{
        transform: translateY(0);
    }
    30%{
        transform: translateY(.25rem);
    }
    100%{
        transform: translateY(-1rem);
    }
}

.think{
    animation-name: think;
    animation-duration: .7s;
    animation-timing-function: ease-in;
}

@keyframes think{
    0%{
        transform: scale(1);
    }
    90%{
        transform: scale(.95);
    } 
    100%{
        transform: scale(1);
    } 
}

.shadow {
    box-shadow: 0 0 10px var(--selected);
}

@media screen and (min-width: 750px){
    .catItem{
        visibility: visible;
        height: auto;
        text-align: center;
    }
}

@media screen and (max-width: 750px){
    .option, .bonus-option {
        font-size: 1.1rem;
    }
    .mistakes {
        flex-direction: column;
        align-items: center;
        gap: .25rem;
    }
    .game-buttons{
        display: grid;
        grid-template-columns: 1fr 1fr;
        justify-items: center;
    }
    .title p{
        text-align: left;
    }
    .catLabel{
        font-size: var(--fs-title);
    }
    section{
        padding-block: 2rem;
        padding-inline: 1.5rem;
    }
    .catItem{
        visibility: hidden;
        height: 0;
        text-align: left;
    }
    .catDropdown{
        visibility: visible;
        height: fit-content;
        padding: .25rem;
        border: 3px;
        font-weight: var(--fw-medium);
    }
    .bonus-option {
        font-size: 12pt;
        padding: .5rem;
    }
}

@media screen and (max-width: 500px){
    .option, .bonus-option {
        font-size: 11pt;
        padding: .5rem;
    }
    .board {
        gap: .5rem;
    }
    main{
        padding: .5rem;
    }
    em{
        font-size: var(--fs-small)
    }
}

@media screen and (max-width: 400px){
    .bonus-option{
        font-size: 10pt;
    }
}