﻿:root {
    --card-width: 8em;
}

:root #south-hand {
    --card-width: 9em;
}

:root  #card-selector {
    --card-width: 10em;
}

* {
    --card-spacing-horizontal: calc(var(--card-width) / -1.5);
    --card-spacing-vertical: calc(var(--card-width) * -1.1);

    --card-trick-bottom-spacing: calc(var(--card-width) * 0.9);
    --card-trick-top-spacing: calc(var(--card-trick-bottom-spacing) * -1);

    --card-trick-right-spacing: calc(var(--card-width) * 0.8);
    --card-trick-left-spacing: calc(var(--card-trick-right-spacing) * -1);

    --name-font-size: calc(var(--card-width) / 4);

    --north-name-spacing: -30%;
    --south-name-spacing: -15%;
    --east-and-west-name-spacing: -9em;
}

#board-container {
    height: 100%;
}

#lesson-page-container {
    position: relative !important;
}

#indexable-lesson-text p {
    display: none;
    background-color: var(--felt-light-color);
    color: white;
    border-radius: 5px;
    padding: 5px;
}

.responsive-title {
    font-size: min(3vw, 2.5rem);
}

.brilliant-move-marker, .good-move-marker, .excellent-move-marker, .deceptive-move-marker, .neutral-move-marker, .weak-move-marker, .mistake-move-marker {
    position: relative;
    display: inline-block;
}

.disconnected-indicator {
    background-color: var(--red) !important;
    padding: 0.2em;
    border-radius: 8px;
}

    .disconnected-indicator.player-with-turn {
        font-weight: bold;
        padding: 5px;
        background: linear-gradient(to right, var(--red), var(--red-dark), var(--red));
        background-size: 200% 200%;
        animation: gradientSlide 5s linear infinite;
        border-radius: 5px;
    }


#south-hand :is(.brilliant-move-marker, .excellent-move-marker, .neutral-move-marker) {
    transform: translateY(-20%) !important;
}

    .brilliant-move-marker::before, .good-move-marker::before, .excellent-move-marker::before, .neutral-move-marker::before, .weak-move-marker::before, .mistake-move-marker::before, .deceptive-move-marker::before {
        position: absolute;
        color: white; /* Color of the symbol inside */
        top: -25px;
        right: -10px;
        width: 2em;
        height: 2em;
        border-radius: 50%; /* Make it a circle */
        border: 1px solid white;
        text-align: center;
        font-size: 1.5em;
        z-index: 10;
    }

    .brilliant-move-marker::before {
        content: "!!!";
        background-color: var(--purple);
    }

    .bg-brilliant {
        background-color: var(--purple);
    }

    .excellent-move-marker::before {
        content: "!!";
        background-color: var(--blue);
    }

    .bg-excellent {
        background-color: var(--blue);
    }

    .good-move-marker::before {
        content: "!"; /* Content of the pseudo-element */
        background-color: var(--green-dark) /* Color of the circle */
    }

    .bg-good {
        background-color: var(--green-dark)
    }

    .deceptive-move-marker::before {
        content: "!?";
        background-color: var(--yellow);
    }

    .bg-deceptive {
        background-color: var(--yellow);
    }

    .neutral-move-marker::before {
        content: "=";
        background-color: var(--medium-gray-color);
    }

    .bg-neutral {
        background-color: var(--medium-gray-color);
    }

    .weak-move-marker::before {
        content: "?";
        background-color: var(--orange);
    }

    .bg-weak {
        background-color: var(--orange);
    }

    .mistake-move-marker::before {
        content: "??";
        background-color: var(--red);
    }

    .bg-mistake {
        background-color: var(--red);
    }

#puzzle-feedback-box, #game-over-box, #game-error-box, #analyzing-box, #exercise-feedback-box, #lesson-box {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 300px;
    z-index: 11;
}

#game-over-box, #lesson-box {
    z-index: 50;
}

#lesson-box {
    transition: top 0.4s ease-in-out, transform 0.4s ease-in-out;
}

.correctly-answered, .success-background {
    background-color: var(--green-dark);
}

.incorrectly-answered {
    background-color: var(--red-dark);
}

.submitting-answer, .loading-background {
    background-color: var(--medium-gray-color);
}

#game-info-button, #forward-button, #previous-button, .inline-text-button {
    height: 64px;
    width: 64px;
    display: flex;
    align-items: center;
    cursor: pointer;
    border-radius: 50%;
    border: 2px solid var(--felt-light-color);
    background-color: var(--felt-color);
    z-index: 3;
    transition: all 0.3s ease-in-out;
}

.disabled-game-button {
    cursor: default !important;
    background-color: dimgrey !important;
}

#game-info-button {
    position: absolute;
    top: 25px;
    right: 25px;
}

#previous-button {
    position: absolute;
    bottom: calc(var(--card-trick-bottom-spacing) * -1.8);
    left: calc(var(--card-trick-left-spacing) * 1.8);
}

#forward-button {
    position: absolute;
    bottom: calc(var(--card-trick-bottom-spacing) * -1.8);
    right: calc(var(--card-trick-left-spacing) * 1.8);
}

#game-info-button:hover, #close-game-info-button:hover, #forward-button:hover, #previous-button:hover {
    border-color: var(--felt-color);
    background-color: var(--felt-light-color);
    transition: all 0.3s ease-in-out;
}

#game-info-button img, #forward-button img, #previous-button img, .inline-text-button img {
    display: block;
    margin: auto;
    width: 80%;
    height: auto;
}

#close-game-info-button {
    position: absolute;
    top: 25px;
    right: 25px;
    height: 64px;
    width: 64px;
    display: flex;
    align-items: center;
    cursor: pointer;
    border-radius: 50%;
    border: 2px solid var(--felt-light-color);
    background-color: var(--felt-color);
    z-index: 3;
    transition: all 0.3s ease-in-out;
    justify-content: center; /* Center the image */
}

#close-game-info-button img {
    display: block;
    margin: auto;
    width: 48px;
    height: auto;
}

#score-container {
    position: absolute;
    top: 25px;
    left: 25px;
    width: fit-content;
    border: 2px solid var(--felt-color);
    padding: 15px 40px 15px 40px;
    color: black;
    border-radius: 8px;
}

#previous-trick-container {
    margin: 0;
    position: absolute;
    top: 50%;
    left: calc(50% - 150px);
    transform: translate(-50%, -50%);
    height: 95%;
    width: calc(95% - 300px);
    background: rgba(54,69,79, 0.9);
    z-index: 12;
    transition: all 0.5s ease-in-out;
    border-radius: 10%;
}

#calculation-container {
    margin-top: 8em;
}

.calculation-table {
    color: white;
    width: 100%;
    overflow: scroll !important;
}

    .calculation-table th {
        font-weight: bold;
        border: 3px solid white;
        padding: 5px;
    }

    .calculation-table thead {
        text-align: center;
    }

    .calculation-table td {
        border: 2px dotted white;
        text-align: center;
        padding: 5px;
    }

#previous-trick-title {
    margin: 0;
    position: absolute;
    top: 5%;
    left: 30%;
    transform: translate(-50%, 0);
    color: white;
}

#previous-trick-led-by-text {
    margin: 0;
    position: absolute;
    bottom: 5%;
    left: 50%;
    transform: translate(-50%, 0);
    color: white;
}

.player-with-turn:not(.disconnected-indicator) {
    font-weight: bold;
    padding: 5px;
    background: linear-gradient(to right, #35654d, #58a780, #35654d);
    background-size: 200% 200%;
    animation: gradientSlide 5s linear infinite;
    border-radius: 5px;
}

    .player-with-turn::after {
        border: 3px solid white;
        content: '';
        border-radius: 5px;
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 100%;
        height: 100%;
        animation: focusAfterBorder 2s linear infinite;
        z-index: -1 !important;
    }


/* Add the "D" inside the circle using a pseudo-element */
.dealer-button::before {
    content: 'D';
    color: black;
    width: calc(var(--name-font-size) * 0.9);
    height: calc(var(--name-font-size) * 0.9);
    line-height: calc(var(--name-font-size) * 0.9);
    border-radius: 50%;
    background-color: white;
    text-align: center;
    display: inline-block;
}



.green-text-button {
    color: white;
    background-color: #35654d;
    border: 2px solid black;
    border-radius: 5px;
}

    .green-text-button:disabled {
        background-color: #58a780 !important;
        color: black !important;
    }

#card-selector-player-container {
    position: absolute;
    bottom: 0;
    right: 50%;
    transform: translate(50%, 0%);
    align-content: center;
    justify-content: center;
}

#start-hand-button {
    margin: 0;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: white;
    background-color: #35654d;
    border: 2px solid black;
    border-radius: 5px;
    color: white;
    font-size: 1.5rem;
    z-index: 50 !important;
}

#game-board {
    height: 100%;
    overflow: hidden !important;
    position: relative;
}

#lesson-sidebar {
    position: absolute;
    top: 0;
    right: 0;
    width: 300px;
    height: 100%;
    overflow-x: hidden !important;
    overflow-y: auto;
    transition: all 0.5s ease-in-out;
    z-index: 12;
}

#analysis-legend {
    transition: all 0.5s ease-in-out;
    height: 500px;
    overflow-x: hidden;
    overflow-y: scroll;
}

#card-selector {
    margin: 0;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    height: 100%;
    width: 100%;
    background: rgba(54,69,79, 0.95);
    z-index: 100;
}

.card-selector-text {
    font-size: 1.5em;
}

#diamond-container, #club-container, #heart-container, #spade-container, #player-hand-container {
    width: 100%;
    display: flex;
    flex-wrap: nowrap;
    align-content: center;
    justify-content: center;
}

    #diamond-container .card-container:nth-child(n+2),
    #club-container .card-container:nth-child(n+2),
    #heart-container .card-container:nth-child(n+2),
    #spade-container .card-container:nth-child(n+2),
    #player-hand-container .card-container:nth-child(n+2) {
        margin-left: var(--card-spacing-horizontal);
    }

    #club-container, #heart-container, #spade-container {
        margin-top: calc(var(--card-spacing-vertical) / 2);
    }

#lesson-next-button {
    display: block;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 10px;
    width: 40%;
    min-width: 125px;
}

#back-to-lessons-button {
    position: absolute;
    left: 20%;
    right: 20%;
    bottom: 20px;
}

#replay-button-container {
    width: 100%;
    margin-top: 20px;
    text-align: center;
}

.replay-button {
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 10px;
    width: 40%;
    min-width: 125px;
    background-color: #35654d;
    color: white;
    padding: 10px;
    border: 2px solid black;
    border-radius: 5px;
    font-size: 1.5rem;
}

    .replay-button:disabled {
        background-color: #58a780 !important;
        color: black !important;
    }

#us-score {
    float: right;
}

#them-score {
    float: right;
}

#us-text {
    padding-right: 10px;
}

#them-text {
    padding-right: 10px;
}

.add-card-button {
    color: white;
    background-color: #35654d;
    border: 2px solid black;
    border-radius: 5px;
    color: white;
}

/* card layouts */

/* north */

#north-container {
    width: auto;
    height: auto;
    margin: auto;
    position: absolute;
    top: calc(var(--card-width) / 10);
    left: 50%;
    -ms-transform: translateX(-50%);
    transform: translateX(-50%);
    text-align: center;
}

#north-hand {
    height: auto;
    width: 100%;
    display: flex;
    flex-wrap: nowrap;
    align-content: center;
    justify-content: center;
    transform: rotate(-180deg);
}

    #north-hand .card-container:nth-child(n+2) {
        margin-left: var(--card-spacing-horizontal);
    }

#north-name {
    text-align: center;
    margin: 0;
    position: absolute;
    left: 50%;
    bottom: var(--north-name-spacing);
    transform: translate(-50%, 0);
    white-space: nowrap;
    overflow: visible;
    font-size: var(--name-font-size);
}

#north-clock, #east-clock, #south-clock, #west-clock {
    display: inline-flex;
    align-items: center;
    font-size: calc(var(--name-font-size) / 2);
    padding: 0px 2px 0px 2px !important;
}

    #north-clock img,
    #east-clock img,
    #west-clock img,
    #south-clock img {
        width: calc(var(--name-font-size) / 1.8);
    }



/* east */
#east-container {
    margin: 0;
    position: absolute;
    top: 50%;
    right: calc(var(--card-width) / 3);
    transform: translateY(-50%);
    width: auto;
    height: auto;
}

#east-name {
    margin: 0;
    position: absolute;
    top: 50%;
    right: 150%;
    transform: translateX(50%) translateY(-50%) rotate(-90deg);
    text-align: center;
    white-space: nowrap;
    overflow: visible;
    font-size: var(--name-font-size);
}

#east-hand {
    width: 100%;
    transform: rotate(-180deg);
}

    #east-hand .card-container {
        display: block;
        transform: rotate(-90deg);
    }

#east-hand .card-container:nth-child(n+2) {
    margin-top: var(--card-spacing-vertical);
}

/* west */
#west-container {
    margin: 0;
    position: absolute;
    top: 50%;
    left: calc(var(--card-width) / 3);
    transform: translateY(-50%);
    width: auto;
    height: auto;
}

#west-name {
    margin: 0;
    position: absolute;
    top: 50%;
    left: 150%;
    transform: translateX(-50%) translateY(-50%) rotate(90deg);
    text-align: center;
    white-space: nowrap;
    overflow: visible;
    font-size: var(--name-font-size);
    margin: 0px;
}

#west-hand {
    width: 100%;
    height: auto;
}

    #west-hand .card-container {
        display: block;
        transform: rotate(90deg);
    }

        #west-hand .card-container:nth-child(n+2) {
            margin-top: var(--card-spacing-vertical);
        }


/* south */

#south-container {
    position: absolute;
    bottom: 5px;
    left: 50%;
    width: 100%;
    text-align: center;
    transform: translateX(-50%);
}

#south-hand {
    height: auto;
    width: 100%;
    display: flex;
    flex-wrap: nowrap;
    align-content: center;
    justify-content: center;
    --card-width: 12em;
}

        #south-hand .card-container:nth-child(n+2) {
            margin-left: var(--card-spacing-horizontal);
        }

.card-selected {
    transform: translateY(-25%) !important;
    opacity: 0.9;
}

@media (hover: hover) and (pointer: fine) {
    #south-hand .card-container:not(hover) {
        transform: translateY(0%);
        transition: 0.5s;
    }

    #south-hand .card-container:hover {
        transform: translateY(-15%);
        transition: 0.5s;
        transition-delay: 0.1s;
    }

    .replay-button:hover {
        transition: 0.5s;
        background-color: #58a780;
    }

    .add-card-button:hover {
        transition: 0.5s;
        background-color: #58a780;
    }

    .green-text-button:hover {
        transition: 0.5s;
        background-color: #58a780;
    }
}

#south-name {
    text-align: center;
    margin: 0;
    position: absolute;
    left: 50%;
    top: var(--south-name-spacing);
    transform: translate(-50%, -50%);
    white-space: nowrap;
    overflow: visible;
    font-size: var(--name-font-size);
}

#tricks, #previous-tricks {
    margin: 0;
    position: absolute;
    top: 48%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 0;
    height: 0;
    z-index: 9 !important;
}

#north-trick-container, #previous-north-trick-container {
    margin: 0;
    position: absolute;
    top: var(--card-trick-top-spacing);
    left: 0;
    transform: translate(-50%, -50%);
}

#west-trick-container, #previous-west-trick-container {
    margin: 0;
    position: absolute;
    top: 0;
    left: var(--card-trick-left-spacing);
    transform: translate(-50%, -50%);
}

#east-trick-container, #previous-east-trick-container {
    margin: 0;
    position: absolute;
    top: 0;
    left: var(--card-trick-right-spacing);
    transform: translate(-50%, -50%);
}

#south-trick-container, #previous-south-trick-container {
    margin: 0;
    position: absolute;
    top: var(--card-trick-bottom-spacing);
    left: 0;
    transform: translate(-50%, -50%);
}

#confirm-card-button {
    position: absolute;
    top: 70%;
    left: 50%;
    transform: translate(-50%, -50%);
    z-index: 100;
    padding: 10%;
    color: white !important;
    font-weight: bold;
    cursor: pointer;
    border-radius: 20px;
    border: none;
    text-decoration: none !important;
    transition: transform 0.2s, border-color 0.2s;
    background-color: var(--purple);
    border-bottom: 8px solid var(--purple-dark);
    width: 80%;
}

    #confirm-card-button:hover {
        background-color: var(--purple-light);
        top: calc(70% + 2px);
        border-bottom: 6px solid var(--purple-dark);
    }

    #confirm-card-button:active {
        background-color: var(--purple);
        top: calc(70% + 5px);
        border-bottom: 3px solid var(--purple-dark);
    }

#remaining-cards-container {
    margin: 0;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

#card-preloader-container {
    position: relative;
    overflow: hidden;
}

#card-preloader {
    position: absolute;
    left: 9999px;
}

#bidding-button-container {
    z-index: 10 !important;
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%,-50%);
    -webkit-transform: translate(-50%,-50%);
    text-align: center;
    width: 58%;
    height: auto;
    background: rgba(54,69,79, 0.4);
    padding: 2%;
}

#bidding-button-prompt {
    font-size: var(--name-font-size);
    color: white;
    text-align: center;
}

.bidding-button {
    background-color: #35654d;
    height: 75px;
    width: 75px;
    align-items: center;
    text-align: center;
    display: inline-flex;
    margin: 2px;
    border: 2px solid black;
    border-radius: 5px;
    color: white;
    font-size: calc(var(--name-font-size) * 1.2);
}

.bidding-button:hover {
    background-color: white;
    color: #35654d;
    transition: 0.5s;
}

.bidding-button-text {
    width: 100%;
    text-align: center;
    font-size: 1.2em;
}

#next-round-button {
    position: absolute;
    z-index: 1000 !important;
    left: 50%;
    top: 50%;
    transform: translate(-50%,-50%);
}

#quiz-button-container {
    z-index: 11 !important;
    position: absolute;
    width: 90%;
    text-align: center;
    left: 50%;
    top: 50%;
    padding: 10px;
    background: rgba(54,69,79, 0.8);
    border-radius: 5px;
    transform: translate(-50%,-50%);
    -webkit-transform: translate(-50%,-50%);
}

.quiz-button {
    background-color: #35654d;
    height: 50px;
    width: 50px;
    align-items: center;
    text-align: center;
    display: inline-flex;
    margin: 2px;
    border: 2px solid black;
    border-radius: 5px;
    color: white;
    padding: 0;
}

    .quiz-button:hover {
        background-color: white;
        color: #35654d;
        transition: 0.5s;
    }

.quiz-button-text {
    width: 100%;
    text-align: center;
    font-size: 1.2em;
}

@media (max-width: 1445px), (max-height: 900px) {

    :root {
        --card-width: 7em;
    }

    :root #tricks {
        --card-width: 8em;
    }

    .bidding-button {
        width: 60px;
        height: 60px;
    }
}

@media (max-width: 1366px) {
    #east-container {
        right: calc(var(--card-width) / -2);
    }

    #west-container {
        left: calc(var(--card-width) / -2);
    }

    #north-container {
        top: calc(var(--card-width) / -1.1);
    }

    #south-container {
        bottom: calc(var(--card-width) / -1.4);
    }
}

@media (max-height: 880px) {
    #north-container {
        top: calc(var(--card-width) / -1.1);
    }

    #south-container {
        bottom: calc(var(--card-width) / -1.4);
    }

    .bidding-button {
        width: 50px;
        height: 50px;
    }
}

@media (max-height: 880px) {
}

@media (max-width: 1000px), (max-height: 720px) {
    :root {
        --card-width: 6em;
    }

    :root #south-hand {
        --card-width: 7em !important;
    }

    :root #tricks, #previous-tricks {
        --card-width: 8em;
    }
}

@media (max-width: 746px), (max-height: 640px) {
    :root #south-hand {
        --card-width: 6.5em !important;
    }

    :root #tricks, #previous-tricks {
        --card-width: 7em;
    }

    .dealer-button::before {
        width: calc(var(--name-font-size) * 1.1);
        height: calc(var(--name-font-size) * 1.1);
        line-height: calc(var(--name-font-size) * 1.1);
    }

    #north-clock, #east-clock, #south-clock, #west-clock {
        font-size: calc(var(--name-font-size) / 1.5);
    }

        #north-clock img,
        #east-clock img,
        #west-clock img,
        #south-clock img {
            width: calc(var(--name-font-size) / 1.5);
        }
}

@media (max-width: 700px), (max-height: 560px) {
    :root #south-hand {
        --card-width: 6em !important;
    }

    :root #tricks, #previous-tricks {
        --card-width: 6em;
    }
}

@media (max-width: 653px), (max-height: 485px) {
    :root #south-hand, #north-hand {
        --card-width: 5.5em !important;
    }

    #east-container {
        right: calc(var(--card-width) / -1.3);
    }

    #west-container {
        left: calc(var(--card-width) / -1.3);
    }

    .bidding-button {
        width: 45px;
        height: 45px;
        font-size: calc(var(--name-font-size) * 1.1);
    }

    #game-info-button, #close-game-info-button {
        width: 48px;
        height: 48px;
        top: 40px;
        right: 40px;
    }

    #close-game-info-button img {
        width: 36px;
    }

    #previous-button, #forward-button, .inline-text-button {
        width: 48px;
        height: 48px;
    }
}

@media (max-height: 485px) {
    #calculation-container {
        margin-top: 0;
        width: 70%;
    }
}

@media (max-width: 1366px), (max-height: 485px) {
}

@media (max-width: 639px) {
    :root #tricks, #previous-tricks {
        --card-width: 7.5em !important;
    }

    #lesson-sidebar {
        top: auto;
        bottom: 0;
        height: 300px;
        width: 100%;
    }

    #previous-trick-container {
        top: calc(50% - 150px);
        left: 50%;
        transform: translate(-50%, -50%);
        height: calc(95% - 300px);
        width: 95%;
    }
}

@media (max-width: 556px) {
    :root #tricks, #previous-tricks {
        --card-width: 7em !important;
    }
}

@media (max-width: 521px) {
    :root #tricks, #previous-tricks {
        --card-width: 6em !important;
    }
}

@media (max-width: 480px), (max-height: 454px) {
    :root #tricks, #previous-tricks {
        --card-width: 5em !important;
    }
}

@media (max-width: 454px) {
    :root {
        --card-width: 5em;
    }

    :root #north-hand, #west-hand, #east-hand {
        --card-width: 5em;
    }

    :root #south-hand, #north-hand {
        --card-width: 5em !important;
    }

    .bidding-button {
        width: 40px;
        height: 40px;
    }


}

@media (max-width: 414px) {
    :root {
        --card-width: 4.5em;
    }

    :root #south-hand, #north-hand, #east-hand, #west-hand {
        --card-width: 4.5em !important;
    }
}

@media (max-width: 400px), (max-height: 405px) {

    :root {
        --card-width: 4em;
    }

    #east-trick-container, #previous-east-trick-container {
        left: calc(var(--card-trick-right-spacing) * 0.8);
    }

    #west-trick-container, #previous-west-trick-container {
        left: calc(var(--card-trick-left-spacing) * 0.8);
    }

    :root #south-hand, #north-hand, #east-hand, #west-hand {
        --card-width: 4em !important;
    }

    .bidding-button {
        width: 32px;
        height: 32px;
    }

    #north-clock, #east-clock, #south-clock, #west-clock {
        font-size: calc(var(--name-font-size) / 1);
    }
}

@media (max-height: 405px) {
    :root #tricks, #previous-tricks {
        --card-width: 4.5em !important;
    }
}

@media (max-height: 345px) {
    #north-trick-container, #previous-north-trick-container {
        top: calc(var(--card-trick-top-spacing) * 0.8);
    }

    #south-trick-container, #previous-south-trick-container {
        top: calc(var(--card-trick-bottom-spacing) * 0.8);
    }
}

/**********
    Card Selector Media Queries
**********/

@media (max-width: 1050px), (max-height: 954px) {
    :root #card-selector {
        --card-width: 9em;
    }
}

@media (max-width: 950px), (max-height: 868px) {
    :root #card-selector {
        --card-width: 8em;
    }
}

@media (max-width: 850px), (max-height: 773px) {
    :root #card-selector {
        --card-width: 7em;
    }
}

@media (max-width: 750px), (max-height: 685px) {
    :root #card-selector {
        --card-width: 6em;
    }

    .card-selector-text {
        font-size: 1.2em;
    }
}

@media (max-width: 660px), (max-height: 591px) {
    :root #card-selector {
        --card-width: 5.5em;
    }
}

@media (max-width: 480px), (max-height: 545px) {
    :root #card-selector {
        --card-width: 5em;
    }
}

@media (max-width: 422px), (max-height: 497px) {
    :root #card-selector {
        --card-width: 4em;
    }

    .card-selector-text {
        font-size: 1em;
    }
}

@media (max-width: 360px), (max-height: 402px) {
    :root #card-selector {
        --card-width: 3.8em;
    }

    .card-selector-text {
        font-size: 0.8em;
    }
}

@media (max-height: 378px){
    #diamond-container .card-container:nth-child(n+2),
    #club-container .card-container:nth-child(n+2),
    #heart-container .card-container:nth-child(n+2),
    #spade-container .card-container:nth-child(n+2),
    #player-hand-container .card-container:nth-child(n+2) {
        margin-left: calc(var(--card-spacing-horizontal) / 1.3);
    }

    :root #card-selector {
        --card-width: 3.5em;
    }

    #club-container, #heart-container, #spade-container {
        margin-top: calc(var(--card-spacing-vertical) / 1.5);
    }
}

@media (max-width: 422px) {
    #club-container, #heart-container, #spade-container {
        margin-top: calc(var(--card-spacing-vertical) / 8);
    }
}