@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@100;600;900&display=swap');

.card-game-panel {
    font-family: 'Montserrat', sans-serif;
    width: 1200px;
    height: 1200px;
    overflow: hidden;
    position: relative;
}

.card-game-panel .game-caption {
    display: flex;
}

.card-game-panel .game-caption .game-symbol-container {
    margin: auto 0px;
    margin-left: auto;
    display: flex;
}

.card-game-panel .game-symbol-container {
    margin-right: 0px;
    transition: 0.5s;
}

.card-game-panel .game-symbol-container.player-mode-active {
    margin-right: 15px;
}

.card-game-panel .game-symbol-container .player-mode-symbol,
.card-game-panel .game-symbol-container .card-mode-symbol {
    width: 0px;
    height: 0px;
    opacity: 0;
    transition: 0.5s;
}

.card-game-panel .game-symbol-container .player-mode-symbol {
    margin-top: 50px;
}

.card-game-panel .game-symbol-container .card-mode-symbol {
    margin-top: 100px;
}

.card-game-panel .game-symbol-container.player-mode-active .player-mode-symbol {
    margin-top: 0px;
    width: 100px;
    height: 100px;
    opacity: 1;
}

.card-game-panel .game-symbol-container.card-mode-active .player-mode-symbol {
    width: 80px;
    height: 80px;
    opacity: 1;
    margin-right: -40px;
}

.card-game-panel .game-symbol-container.card-mode-active .card-mode-symbol {
    width: 80px;
    height: 80px;
    margin-top: 50px;
    opacity: 1;
}

.card-game-panel .game-caption .game-title {
    margin-right: auto;
}

.card-game-panel .game-caption .game-title img {
    width: 200px;
    height: auto;
}

.card-game-panel .panel-container {
    position: relative;
}

.card-game-panel .panel {
    position: absolute;
    transition: 1s;
}

.card-game-panel .panel.active {
    left: 0;
    right: 0;
    top: 0;
}

.card-game-panel .mode-panel {
    left: -100%;
    right: 100%;
}

.card-game-panel .card-panel {
    top: 900px;
    left: 0;
    right: 0;
}

.card-game-panel .result-panel {
    top: 0;
    left: 100%;
    right: -100%;
}

.card-game-panel .mode-container {
    width: 100%;
    position: relative;
    height: 280px;
    overflow: hidden;
}

.card-game-panel .mode-pane {
    position: absolute;
    padding-left: 150px;
    padding-right: 150px;
    transition: 1s;
}

.card-game-panel .mode-container .player-mode-pane {
    display: flex;
    left: 0;
    right: 0;
}

.card-game-panel .mode-container .card-mode-pane {
    left: 100%;
    right: -100%;
}

.card-game-panel .card-mode-container {
    display: flex;
}

.card-game-panel .card-mode-pane .tool-bar-item {
    margin-left: auto;
    margin-right: auto;
    width: fit-content;
    margin-top: 10px;
}

.card-game-panel .card-mode-pane .tool-bar-item img {
    width: 40px;
    height: 40px;
}

.card-game-panel .card-mode-active .player-mode-pane {
    left: -100%;
    right: 100%;
}

.card-game-panel .card-mode-active .card-mode-pane {
    left: 0;
    right: 0;
}

.card-game-panel .mode-item {
    margin-left: auto;
    margin-right: auto;
}

.card-game-panel .mode-item .mode-image-container img {
    width: 200px;
    height: 200px;
}

.card-game-panel .mode-item .mode-caption {
    margin-top: 25px;
    font-size: 23pt;
    font-weight: bold;
    text-align: center;
}

.card-game-panel .intro-pane {
    margin-top: 50px;
    padding: 0px 125px;
}

.card-game-panel .intro-inner-pane {
    background-color: rgb(242, 242, 242);
    height: 300px;
    width: 100%;
    border-radius: 10px;
    display: table;
}

.card-game-panel .lang-mode-container {
    display: flex;
    margin-top: 15px;
    padding: 0px 160px;
    border-radius: 100%;
}

.card-game-panel .lang-mode-item {
    border-radius: 100%;
    width: 50px;
    height: 50px;
    margin: auto;
    outline-width: 0px;
    outline-color: rgb(233, 1, 1);
    outline-style: solid;
}

.card-game-panel .lang-mode-item.active {
    outline-width: 4px;
}

.card-game-panel .lang-mode-item img {
    margin: 2px;
}

.card-game-panel .intro-container {
    margin-top: 15px;
    color: rgb(30, 30, 30);
    display: none;
    font-weight: 600;
}

.card-game-panel .intro-container.active {
    display: block;
}

.card-game-panel .intro-container .intro-title {
    font-size: 20pt;
    text-align: center;
}

.card-game-panel .intro-container .intro-content {
    font-size: 10pt;
    text-align: center;
    padding: 15px;
    height: 200px;
    overflow: auto;
}

.intro-content p{
    margin-bottom:2px;
}

.card-game-panel .tool-bar {
    display: flex;
    justify-content: center;
}

.card-game-panel .tool-bar-item {
    display: flex;
    padding: 7px;
    margin: 0 10px;
    background-color: rgb(233, 239, 240);
    border-radius: 100px;
}

.card-game-panel .tool-bar-item.tool-bar-item-data {
    min-width: 100px;
}

.card-game-panel .tool-bar-item.tool-bar-item-timer {
    min-width: 130px;
}

.card-game-panel .tool-bar-item img {
    width: 30px;
    height: 30px;
}

.card-game-panel .tool-bar-item span {
    font-size: 20pt;
    font-weight: 600;
    margin: auto auto;
}

.card-game-panel .tool-bar-item.tool-bar-item-match-player[data-turn="0"].active {
    outline: 3px solid #76c58f;
}

.card-game-panel .tool-bar-item.tool-bar-item-match-player[data-turn="1"].active {
    outline: 3px solid #653c95;
}

.card-game-panel .card-board-content {
    display: none;
}

.card-game-panel .card-board-content.active {
    display: block;
}

.card-game-panel .card-board-mode-18 {
    margin-top: 70px;
}

.card-game-panel .card-board-mode-36 {
    margin-top: 60px;
}

.card-game-panel .card-row {
    display: flex;
    justify-content: center;
}

.card-game-panel .card-board-container .grid-row {
    display: flex;
    justify-content: center;
    margin-left: 25px;
}

.card-game-panel .grid-item {
    color: black;
    font-weight: 600;
    font-size: 15pt;
    display: flex;
}

.card-game-panel .card-board-container .grid-row .grid-item {
    width: 110px;
    height: 30px;
    margin: 0px 10px;
    margin-bottom: 5px;
    align-items: start;
    justify-content: center;
    border-bottom: 1px solid black;
}

.card-game-panel .card-board-container .card-row .grid-item {
    height: 110px;
    width: 20px;
    margin: 10px 0px;
    margin-right: 5px;
    align-items: center;
    justify-content: left;
    border-right: 1px solid black;
}

.card-game-panel .card-item {
    width: 112px;
    height: 112px;
    margin: 5px;
    position: relative;
    border-radius: 10px;
    border: 4px solid rgb(36, 36, 36);
}

.card-game-panel .card-item.matched {
    border-color: rgb(62, 203, 112);
    animation: border-anim 1.5s;
}

.card-game-panel .card-item.unmatched {
    animation: vibrate 0.4s;
}

.card-game-panel .card-board-mode-18 .card-item {
    width: 152px;
    height: 152px;
}

.card-game-panel .card-board-container .card-board-mode-18 .grid-row {
    display: flex;
    justify-content: center;
    margin-left: 28px;
}

.card-game-panel .card-board-container .card-board-mode-18 .grid-row .grid-item {
    width: 150px;
    margin-bottom: 10px;
}

.card-game-panel .card-board-container .card-board-mode-18 .card-row .grid-item {
    height: 150px;
    margin-right: 10px;
}

.card-game-panel .card-item-content,
.card-game-panel .card-item-back {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
}

.card-game-panel .card-inner-item-content,
.card-game-panel .card-inner-item-back {
    width: 100%;
    height: 100%;
    background: white;
    border-radius: 4px;
}

.card-game-panel .card-item .card-inner-item-content {
    display: none;
}

.card-game-panel .card-item.active .card-inner-item-content {
    display: block;
}

.card-game-panel .card-item.matched .card-inner-item-content {
    display: block;
    /* opacity: 0;
    animation: flashing 3s; */
}

.card-game-panel .card-item.matched .card-inner-item-back {
    display: none;
}

@keyframes flashing {

    0%,
    20%,
    40%,
    60%,
    80% {
        opacity: 1;
        /* Fully visible */
    }

    10%,
    30%,
    50%,
    70%,
    100% {
        opacity: 0;
        /* Completely hidden */
    }
}

@keyframes vibrate {

    0%,
    100% {
        transform: translateX(0);
    }

    10%,
    30%,
    50%,
    70% {
        transform: translateX(-3px);
    }

    20%,
    40%,
    60%,
    80% {
        transform: translateX(3px);
    }
}

@keyframes border-anim {

    0%,
    40%,
    80%,
    60%,
    80% {
        border-color: black;
    }

    20%,
    60%,
    100% {
        border-color: rgb(62, 203, 112);
    }
}

.card-game-panel .result-panel .result-container,
.card-game-panel .result-panel .mail-container {
    border-radius: 500px;
    background-color: rgb(233, 239, 240)
}

.card-game-panel .result-container {
    display: flex;
    margin: 0 200px;
    padding: 10px 20px;
    margin-top: 50px;
}

.card-game-panel .result-inner-content-left {
    width: 50%;
}

.card-game-panel .result-inner-content-left img {
    margin: 40px;
    margin-left: 75px;
    width: 200px;
    height: 200px;
}

.card-game-panel .result-inner-content-right {
    width: 50%;
    padding-left: 20px;
    display: flex;
    flex-direction: column;
}

.card-game-panel .result-item {
    display: flex;
    margin: 15px 20px;
}

.card-game-panel .result-item * {
    margin-top: auto;
    margin-bottom: auto;
}

.card-game-panel .result-item img {
    width: 50px;
    height: 50px;
}

.card-game-panel .result-item span {
    font-size: 20pt;
    font-weight: 600;
    margin-left: 20px;
}

.card-game-panel .result-item.player-score {
    border: 5px solid transparent;
    margin-right: auto;
    padding: 5px;
    border-radius: 100px;
    padding-right: 20px;
}

.card-game-panel .result-item.player-score[data-player="1"] {
    border-color: #76c58f;
}

.card-game-panel .result-item.player-score[data-player="2"] {
    border-color: #653c95;
}

.card-game-panel .result-item.result-item-lose {
    scale: 0.7;
    margin-left: 35px;
}

.card-game-panel .result-item [data-action=restart] {
    margin-left: 40px;
}

.card-game-panel .mail-container {
    display: flex;
    padding: 10px 30px;
    width: 350px;
    margin-left: auto;
    margin-right: auto;
    margin-top: 20px;
}

.card-game-panel .mail-container * {
    margin-top: auto;
    margin-bottom: auto;
}

.card-game-panel .mail-container img {
    width: 40px;
    height: 40px;
}

.card-game-panel .mail-input {
    border: 0px solid transparent;
    border-bottom: 1px solid rgb(36, 36, 36);
    font-size: 14pt;
    padding: 2px 10px;
    margin-left: 20px;
    width: 250px;
    background-color: transparent;
    text-align: center;
}

.card-game-panel .mail-input:focus-visible {
    outline: none;
}

.card-game-panel img.mail-send-btn {
    width: 30px;
    height: 30px;
    margin-left: 10px;
    margin-right: -10px;
}

.card-game-panel .custom-cursor-pointer {
    cursor: pointer;
}

.card-game-panel .hidden {
    display: none;
}

.card-game-panel .m-t-auto {
    margin-top: auto;
}

.card-game-panel .m-b-auto {
    margin-bottom: auto;
}

.card-game-panel>canvas {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
}