@media (max-aspect-ratio: 1/1) {:root {--check-mobile: 1;}}
@media (min-aspect-ratio: 1/1) {:root {--check-mobile: 0;}}
@media (aspect-ratio: 1/1)  {:root {--check-mobile: 0;}}

:root {
    --card-width-desktop: min(calc((100vw * 0.9) / 6), calc((100vh * 0.9) / 3.5));
    --card-width-mobile: min(calc((100vw * 0.9) / 3), calc((100vh * 0.9) / 5));
    --card-width: calc(var(--check-mobile) * var(--card-width-mobile) + (1 - var(--check-mobile)) * var(--card-width-desktop));
    --card-height: calc(var(--card-width) * 1.4);
    --card-gap: calc(var(--card-width) / 16);
    --card-radius: calc(var(--card-width) / 16);
    --card-font-size: calc(var(--card-width) / 8);
    --card-shadow: calc(var(--card-width) / 16);
    --dice-container-height: calc(var(--card-width) * 0.35);
}

[id*="Storage"] {
    position: absolute;
    top: -9999px;
    left: -9999px;
    display: none;
}

.dice-container {
    display: none;
}

.subdue {
   display:none;
}

#socket-info, #check {
    display: none;
}

.hide {
    visibility: hidden;
}


body {
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    align-items: center;
    height: 100dvh;
    margin: 0;
    background-color: #f0f0f0;
    font-family: 'Open Sans', sans-serif; 
    justify-content: center;
    overflow: hidden;
}


body.disconnected {
    background-color: darkgray; 
}


html, body {
    overscroll-behavoir: none;
}

#check-locations, #check-status, #check-position, #check-dice, #check-users ,#socket-info {
    opacity: 0.4;
}

.button-container {
    display: flex;
    flex-wrap: wrap; 
    gap: 0px;
    margin-bottom: 0px;
    justify-content: center; 
    opacity: 0.1;
    transition: opacity 0.3s ease-in-out;
    visibility: hidden;
    display: none;
}

.button-container:hover {
    opacity: 1;
}


#Holder-wrap {
    border: 1px solid #f0f0f0;
    border-radius: var(--card-radius);
    padding-top: var(--card-gap);
    padding-bottom: var(--card-gap);
    width: calc(100% - var(--card-gap));
}

#Holder-wrap {
    display: flex;
    flex-wrap: wrap;
}

#Holder-wrap[data-stage="waiting"]:hover {
        border: 1px solid black;
}

#Holder-wrap[data-stage="waiting"] {
            cursor: pointer;
}

#Holder-wrap[data-stage="waiting"] .card-container {
    animation: pulsatecards 3.5s ease-in-out infinite;
}

@keyframes pulsatecards{
    0% { transform: scale(1); }
    50% {transform: scale(1.02);}
    100% { transform: scale(1);}
}


#Holder-wrap[data-stage="complete"]:hover {
        border: 1px solid lightgrey;
        cursor: pointer;
}


.card-group {
    display: flex;
    flex-wrap: nowrap;
    gap: var(--card-gap);
}

.cards-container {
    display: flex;
    flex-wrap: no-wrap;
    gap: var(--card-gap);
    justify-content: center;
    width: 100vw; /* redundant */
}

.players-container {
display: flex;
}

.player-cards-container {
    border: 1px solid lightgrey;
    border-radius: calc(var(--card-radius) / 2);
    padding: calc(var(--card-gap) / 2);
    background-color: #f0f0f0;
    display: flex;
    flex-wrap: no-wrap;
    gap: calc(var(--card-gap) / 4);
    justify-content: center;
    width:calc(100vw/2 - var(--card-gap)*2);
    cursor: arrow;
}

.card-container {
    position: relative;
    width: var(--card-width);
    height: var(--card-height);
    background-color: #f0f0f0;
    border: 0px solid lightgrey;
    border-radius: var(--card-radius);
    transition: border-color 0.3s;
    text-align: center;
    transition: all 0.8s ease;
    overflow: hidden;
}


.player-card-container {
    position: relative;
    width: calc(var(--card-width)/2);
    height: calc(var(--card-height)/2);
    border-radius: calc(var(--card-radius)/2);
    transition: background-color 1s;
    text-align: center;
}

.players-dice-container {
display: flex;
}

.the-seperator{
      width: calc(var(--card-gap));
}

.card {
    width: var(--card-width);
    height: var(--card-height);
    cursor: arrow;
    position: absolute;
    border-radius: var(--card-radius);
    transition: transform 0.5s, box-shadow 0.5s; /* Add slower transition */
    overflow: hidden; /* Ensure rounded corners apply to content */
    border: 1px solid lightgrey; /* Add white border around card */
    box-sizing: border-box; /* Include padding and border in element's total width and height */
}

.card.active {
    cursor: pointer;
    border: 1px solid #242424;
    box-shadow: rgba(0, 0, 0, 0.2) calc(var(--card-shadow)/10) calc(var(--card-shadow)/5) var(--card-shadow);
    transition: border 5.8s, box-shadow 5.8s;
}

.player-card {
    width: calc(var(--card-width)/2);
    height: calc(var(--card-height)/2);
    border-radius: calc(var(--card-radius)/2);
}


.player-cards-container[data-stage="dormant"] {
        background-color:transparent;
        border: 0px solid transparent;
        cursor: arrow;
}

.player-cards-container[data-stage="passive"]{
    background-color:#E8E8E8;
    border: 1px solid lightgrey;
    cursor: arrow;

}

.player-cards-container[data-stage="available"]{
    background-color: transparent;
    border: 1px solid lightgrey;
    cursor: arrow;

}

.player-cards-container[data-stage="active"] {
    background-color:#E8E8E8;
    border: 1px solid darkgrey;
    cursor: pointer;
}

.player-cards-container[data-stage="active"]:hover {
    border: 1px solid black;
}

.player-cards-container[data-stage="waiting"] {
        border: 1px solid lightgrey;
        background-color: darkgrey;
        animation-name: animatePlayerWaiting;
        animation-duration: 8s;
        animation-iteration-count: infinite;
        animation-direction: alternate;
        cursor: pointer;
}


@keyframes animatePlayerWaiting {
  from {background-color: #f0f0f0;}
  to {background-color: lightgrey;}
}

.player-cards-container[data-stage="waiting"]:hover {
    border: 1px solid black !important;
}

.player-cards-container[data-stage="reserved"] {
        border: 1px solid 004169;
        background-color: #004169;
        cursor: arrow;
}

.player-cards-container[data-stage="reserved"][data-engage="local"] {
    border: 1px solid 00314F;
    background-color: #00314F;
    cursor: pointer;
}


.player-cards-container[data-stage="reserved"][data-engage="local"]:hover {
    border: 1px solid black !important;
}

.player-cards-container[data-stage="complete"] {
        border: 1px solid lightgrey;
        background-color: transparent;
        animation-name: animatePlayerComplete;
        animation-duration:2s;
        animation-iteration-count: 2;
        animation-direction: alternate;
}

@keyframes animatePlayerComplete {
  0% {
    background-color: lightgrey;
    transform: scale(1);
    animation-timing-function: ease-in;
  }
  50% {
    background-color: white;
    transform: scale(0.95);
    animation-timing-function: ease-in-out;
  }
  100% {
    background-color: lighgreygrey;
    transform: scale(1);
    animation-timing-function: ease-out;
  }
}



.card-inner {
    width: 100%; 
    height: 100%; 
    position: absolute;
    transition: none; /* Disable animation */
    transform-style: preserve-3d;
}

.card.flipped .card-inner {
    transform: rotateY(180deg);
}

.card-front, .card-back {
    width: 100%;
    height: 100%; 
    position: absolute;
    backface-visibility: hidden;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: var(--card-font-size);
    color: white;
    border-radius: var(--card-radius);
    -webkit-user-select: none; /* Safari, Safari on iOS */
    user-select: none; /* Make text non-selectable */
}

.player-card .card-front, .player-card  .card-back {
    border-radius: calc(var(--card-radius)/2);
    font-size: calc(var(--card-font-size)/2);
}


.card-front img {
    position: absolute;
    top: 0;
    left: 0;
}

.card-front {
    color: #00314f;
    background-color: white;
}

.card-back {
    background-color: #00314f;
    transform: rotateY(180deg);
}

.card.moving {
    cursor: grabbing;
    box-shadow: rgba(0, 0, 0, 0.2) calc(var(--card-shadow)/10) calc(var(--card-shadow)/5) var(--card-shadow);
    transition: transform 0.8s, box-shadow 0.8s; /* Slower transition during drag */
    transform: rotate(2.5deg) scale(1.2); /* Add tilt effect and increase size by 10% */
}

.card-front img, .card-back img {
    width: 100%; /* Use 100% to ensure it takes the full width of its container */
    height: 100%; /* Use 100% to ensure it takes the full height of its container */
    object-fit: cover; /* Ensure images cover the entire card */
}

.shrink {
    width: 1px;
}

#P1-wrap { z-index: 10000;}
#P2-wrap { z-index: 20000;}
#P3-wrap { z-index: 40000;}
#P4-wrap { z-index: 30000;}

.player-cards-container-keyboard-select {
    box-shadow: 0 2px 2px black;
    transform: translateY(-5px);
}


.card-container-keyboard-select {
    box-shadow: 0 2px 2px black;
    transform: translateY(-5px);
}


#Holder-wrap.holder-container-keyboard-select[data-stage="waiting"], 
#Holder-wrap.holder-container-keyboard-select[data-stage="reserved"] {
    box-shadow: 0 2px 2px black !important;
    transform: translateY(-5px)!important;
}


#Q5-wrap {display:none;}
#Q6-wrap {display:none;}


