/* ============================ */
/* ====== GLOBÁLNE ŠTÝLY ====== */
/* ============================ */

/* ================================================ */
/* Reset štýlov pre konzistenciu medzi prehliadačmi */
/* ================================================ */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
/* ============================ */
/* Základné nastavenia pre body */
/* ============================ */
body {
    margin: 0;
    padding: 0;
    min-height: 100vh;
    font-family: "Luckiest Guy", sans-serif;
    overflow: hidden; 
    background: var(--Backgrtound, url('../images/worlds/background.jpg')) lightgray 50% / cover no-repeat;
    box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25);
    cursor: url('../images/cursor.png') 5 5, auto;
    justify-content: center;
    display: flex;
}

/* ============================= */
/* ========== LOADING ========== */
/* ============================= */
.loading-screen {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, #2c1810 0%, #1a0f08 100%);
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 1;
    transition: opacity 0.5s ease;
}

.loading-content {
    text-align: center;
    color: white;
}

.loading-logo {
    margin-bottom: 2rem;
}

.loading-text-jozino {
    display: flex;
    width: 444px;
    height: 43px;
    transform: rotate(0.093deg);
    flex-direction: column;
    justify-content: flex-end;
    flex-shrink: 0;
    
    /* Štýlovanie textu */
    color: #FFF;
    text-align: center;
    -webkit-text-stroke-width: 1px;
    -webkit-text-stroke-color: #000;
    font-family: "Luckiest Guy", sans-serif;
    font-size: 100px;
    font-style: normal;
    font-weight: 400;
    line-height: 18px; /* 20% */
    text-transform: uppercase;
    margin-bottom: 0.5rem;
    position: relative;
    z-index: 10;
    filter: drop-shadow(4px 8px 8px rgba(0, 0, 0, 0.30));
}

.loading-text-banik {
    -webkit-text-stroke-width: 1px;
    -webkit-text-stroke-color: #000;
    font-family: "Luckiest Guy", sans-serif;
    font-size: 45px;
    font-style: normal;
    font-weight: 400;
    line-height: 100%;
    text-align: center;
    text-transform: uppercase;
    
    /* Gradient pozadí pre text */
    background: conic-gradient(from 90deg at 50% 50%, #ECD517 0deg, #ECBB17 360deg);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    position: relative;
    z-index: 20;
    filter: drop-shadow(4px 8px 8px rgba(0, 0, 0, 0.30));
}

.loading-spinner {
    width: 50px;
    height: 50px;
    border: 4px solid rgba(236, 207, 23, 0.3);
    border-top: 4px solid #ECCF17;
    border-radius: 50%;
    animation: spin 1s linear infinite;
    margin: 0 auto 1rem;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

.loading-message {
    font-family: "Luckiest Guy", sans-serif;
    font-size: 22px;
    color: #ECCF17;
    animation: pulse 1.5s ease-in-out infinite;
}

@keyframes pulse {
    0%, 100% { opacity: 0.7; }
    50% { opacity: 1; }
}



/* ============================ */
/*  Horný, bočný menuu button   */
/* ============================ */
#menuButton {
  position: absolute;
  top: 10px;
  left: 10px;
  width: 43px;
  height: 43px;
  border-radius: 50%;
  background-image: url("../images/menubutton.png");
  background-size: cover;
  background-position: center;
  border: none;
  cursor: pointer;
  outline: none;
  z-index: 1000;
  cursor: url('../images/active_cursor4.png') 5 5, pointer;
}
.kruhove-tlacidlo {
  width: 43px;
  height: 43px;
  border-radius: 50%; /* Tvar kruhu */
  background-image: url("../images/menubutton.png"); /* Cesta k obrázku, ktorý chceš použiť ako pozadie */
  background-size: cover; /* Upravuje veľkosť obrázku na takú, aby pokrýval celé tlačidlo */
  background-position: center; /* Zarovnáva obrázok na strede */
  border: none; /* Bez ohraničenia */
  cursor: pointer; /* Zmení kurzor na ukazovateľ, aby naznačil interaktívnosť */
  outline: none; /* Odstráni ohraničenie po kliknutí */
  cursor: url('../images/active_cursor4.png') 5 5, pointer;
}
.kruhove-tlacidlo:focus {
  outline: none; /* Odstráni ohraničenie po získaní zaostrenia */
}



/* ============================= */
/* ==========  MODALY  ========= */
/* ============================= */

.modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.14);
    backdrop-filter: blur(9px);
    z-index: 1000;
    transition: all 0.3s ease;
}

.modal.modal-open {
   background: rgba(0, 0, 0, 0.14);
   backdrop-filter: blur(9px);
}

.execise-window{
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    
    
    width: 70%;
    height: 80%;
    max-width: 450px;
    max-height: 500px;
    min-width: 400px;
    min-height: 450px;
    background: url('../images/pozadie_button_mobile_2.png') lightgray 50% / cover no-repeat;
    
    /* Vnútorný obsah */
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 2rem 3rem;
    box-sizing: border-box;
    border: 4px solid #ECCF17;
    border-radius: 30px;

    /* Animácie */
    transition: all 0.4s ease;
}

/* Vysledok element - skrytý na začiatku */
.vysledok {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.85);
    backdrop-filter: blur(5px);
    display: none; /* PRIDANÉ: skrytý na začiatku */
    flex-direction: column;
    align-items: center;
    justify-content: center;
    z-index: 1000;
    border-radius: 30px;
    overflow: hidden;
}

/* Keď sa zobrazuje výsledok */
.vysledok.show {
    display: flex;
}

/* Kontajner pre obsah vysledku */
.vysledok center {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
    padding: 20px;
    box-sizing: border-box;
}

/* Obrázok výsledku */
.vysledok img {
    max-width: 300px !important;
    max-height: 250px !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain;
}

/* Správy v rámci vysledku */
.vysledok .attempt-message,
.vysledok .success-message {
    margin-top: 20px;
    z-index: 1001;
}

/* Style pre recove cvicenie */
.cvicenie-content {
    padding: 10px;  
    display: flex;
    gap: 10px;
    flex-direction: column;
}

.cvicenie-text {
    text-align: center;
    -webkit-text-stroke-width: 1px;
    -webkit-text-stroke-color: #000;
    font-family: "Luckiest Guy";
    font-size: 45px;
    font-style: normal;
    font-weight: 400;
    text-transform: uppercase;
    display: flex;
    justify-content: center;
    flex-direction: column;
}

.cvicenie-text p {
    background: linear-gradient(180deg, #EF0 0%, #FFD900 100%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    padding-top: 15px;
}

.cvicenie-text button {
    width: auto; 
    max-height: 200px;
    display: block; 
}

.cvicenie-text img{
  min-width: 100px;
  max-width: 300px;
  max-height: 200px;
  max-width: 253px;
  height: 200px;
  width: auto;
}

/* Štýl div kontajnera pred a po nahravani */
.tlacidlo {
    cursor: url('../images/active_cursor4.png') 5 5, pointer;
    outline: none; /* Odstráňte ohraničenie */
    transition: transform 0.2s ease; /* Animácia pre plynulé zväčšenie */
    width: 253px;
    height: 69px;
    flex-shrink: 0;
    border-radius: 30px;
    border: 4px solid #1A511D;
    background: linear-gradient(0deg, #15981E 0%, #0F1 100%);
    position: relative;
    justify-content: center;
    display: flex;
    align-items: center;
}
.tlacidlo button {
    background-color: transparent;
    border: none
}
.tlacidlo a {
    text-align: center;
    -webkit-text-stroke-width: 1px;
    -webkit-text-stroke-color: #000;
    font-family: "Luckiest Guy";
    font-size: 40px;
    font-style: normal;
    font-weight: 400;
    text-transform: uppercase;
    background: linear-gradient(180deg, #EF0 0%, #FFD900 100%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}
.tlacidlo:hover {
    background-color: rgba(255, 228, 196, 0);
    transform: scale(0.98); 
    border: 4px solid #9A0003;
    background: linear-gradient(0deg, #AD0003 0%, #FF2528 100%);
}
.tlacidlo:active {
    background-color: rgba(255, 228, 196, 0);
    transform: scale(0.98); 
    border: 4px solid #9A0003;
    background: linear-gradient(0deg, #AD0003 0%, #FF2528 100%);
}
/* Štýl div kontajnera počas nahrávania */
.tlacidlo.recording {
    background: linear-gradient(135deg, #e74c3c, #c0392b);
    transform: scale(0.98);
    animation: recording-pulse 1s ease-in-out infinite alternate;
}
.tlacidlo.recording button {
    background: transparent !important;
    cursor: not-allowed !important;
}
.tlacidlo.recording button a {
    color: #fff !important;
    text-shadow: 0 1px 2px rgba(0,0,0,0.5);
}
/* Pulzovanie celého div-u */
@keyframes recording-pulse {
    0% { 
        box-shadow: 0 0 0 0 rgba(231, 76, 60, 0.7);
        opacity: 1;
    }
    100% { 
        box-shadow: 0 0 0 10px rgba(231, 76, 60, 0);
        opacity: 0.9;
    }
}


/* Style pre posluchove cvicenie */
.cvicenie {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.14);
    backdrop-filter: blur(9px);
    z-index: 1000;
    transition: all 0.3s ease;
}
.cvicenie-content-2 {
    padding: 20px;  
    display: flex;
    gap: 5px;
    flex-direction: column;
    justify-content: center;
}
.cvicenie-content-2 p {
   color: #FFF;
   text-align: center;
   font-family: "Luckiest Guy", sans-serif;
   font-size: 22px;
   font-style: normal;
   font-weight: 100;
   line-height: normal;
   margin: 0;
   padding: 0px 10px;
   letter-spacing: 1.6px;
}
.cvicenie-content-2 h1 {
    text-align: center;
    -webkit-text-stroke-width: 1px;
    -webkit-text-stroke-color: #000;
    font-family: "Luckiest Guy";
    font-size: 40px;
    font-style: normal;
    font-weight: 400;
    text-transform: uppercase;
    background: linear-gradient(180deg, #EF0 0%, #FFD900 100%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}
.buttonsContainer {
  gap: 10px;
}
#buttonsContainer img {
  width: 50px;  /* Prispôsobte veľkosť podľa potreby */
  padding: 2px;
  height: 50px;
  cursor: url('../images/active_cursor4.png') 5 5, pointer;
}
.buttonsContainer:hover img {
  scale: 0.98;
}


/* Modal pre pauzu/back to menu */
.main-menu ul {
    list-style: none;
    padding: 0;
    margin: 0;
}
.main-menu li {
    margin-bottom: 1rem;
}
/* Štýlovanie menu tlačidiel */
.menu-button {
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    cursor: pointer;
    position: relative; 
    
    /* Rozměry tlačidla podľa Figma */
    width: 250px;
    height: 64px;
    flex-shrink: 0;
    border-radius: 30px;
    
    /* Tieň pre tlačidlá */
    filter: drop-shadow(4px 8px 8px rgba(0, 0, 0, 0.30));
    
    /* Štandardné neaktívne tlačidlo */
    border: 4px solid #AC3F0B;
    background: url('../images/pozadie_button.png') lightgray 50% / cover no-repeat;
    
    /* Prechod pre animácie */
    transition: all 0.3s ease;
    
    /* Text štýlovanie */
    font-family: "Luckiest Guy", sans-serif;
    font-size: 32px;
    font-style: normal;
    font-weight: 400;
    line-height: 20px; /* 50% */
    text-transform: uppercase;
    text-align: center;
    -webkit-text-stroke-width: 1px;
    -webkit-text-stroke-color: #000;
    
    /* Základná farba textu pre neaktívne tlačidlá */
    color: #FFF;

    cursor: url('../images/active_cursor4.png') 5 5, pointer;
    z-index: 10000;
}
/* Hover efekt pre menu tlačidlá */
.menu-button:hover {
    box-shadow: inset 0 0 20px 2px rgba(236, 207, 23, 0.3);
    border: 4px solid #ECCF17;
    scale: 0.98;
}
/* Aktívne tlačidlo pri stlačení */
.menu-button:active {
    transform: rotate(0.093deg) translateY(0) scale(0.98);
    filter: drop-shadow(2px 4px 4px rgba(0, 0, 0, 0.3));
}


/*Modal pre endgame - game over*/
.stats{
    padding-bottom: 15px;
    justify-content: center;
    align-items: center;
}
.stats a {
    text-align: center;
    -webkit-text-stroke-width: 1px;
    -webkit-text-stroke-color: #000;
    font-family: "Luckiest Guy";
    font-size: 24px;
    font-style: normal;
    font-weight: 400;
    line-height: 20px; /* 50% */
    text-transform: uppercase;

    background: linear-gradient(180deg, #EF0 0%, #FFD900 100%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}
.stats span {
    color: #FFF;
    -webkit-text-stroke-width: 1px;
    -webkit-text-stroke-color: #000;
    font-family: "Luckiest Guy";
    font-size: 24px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    justify-content: center;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}
.stats img {
    width: 24px;
    height: 24px;
}
/* Hviezdy v modali */
.modal-stars {
    display: flex;
    gap: 5px;
    justify-content: center;
    margin-top: -15px;
}
.modal-stars img {
    width: 50px;
    height: 50px;
}
.gameend{
  height: auto;
  width: auto;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column; 
  text-align: center;
}

/*Dialogové okno pre menu */
.dialogove-okno {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.14);
    backdrop-filter: blur(9px);
    z-index: 1000;
    transition: all 0.3s ease;
}
.close {
   position: absolute;
   top: 20px;
   right: 30px;
   color: #FFF;
   text-align: center;
   font-family: "Luckiest Guy", sans-serif;
   font-size: 64px;
   font-style: normal;
   font-weight: 400;
   line-height: normal;
   cursor: url('../images/active_cursor4.png') 5 5, pointer;
   z-index: 1001;
   transition: transform 0.4s ease;
}
.close:hover {
    transform: rotate(15deg) scale(1.05);
}

#blur-background {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  backdrop-filter: blur(4px); /* Rozmazanie všetkého pod #blur-background */
  z-index: 999; 
}
.cvicenie-open #blur-background {
  filter: blur(4px) grayscale(50%); /* Aplikuj rozmazanie a zosvetlenie pozadia, keď je dialogové okno otvorené */
}


/* ============================= */
/* =========  OKNO HRY  ======== */
/* ============================= */
.main-container {
    width: 100%;
    margin: 0 auto; 
    background-color: #17284900;
    display: flex;
    flex-direction: column;
    align-items: center;
    grid-template-columns: 800px 300px;
    justify-content: center;
    text-align: center;
    gap: 20px;
    align-content: center;
}

/* ============================= */
/* ======== HORNÝ PANEL ======== */
/* ============================= */
.top-panel {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 40px;
    height: 80px;
    flex-shrink: 0;
}

.panel-item {
    width: 253px;
    height: 69px;
    border-radius: 30px;
    border: 4px solid #AC3F0B;
    background-image: url('../images/pozadie_button_mobile_2.png');
    background-size: cover;
    background-position: center;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 40px;
    color: #FFF;
    text-align: center;
    text-transform: uppercase;
    -webkit-text-stroke-width: 1px;
    -webkit-text-stroke-color: #000;
}

/* Stredný panel - PEXESO s odlišným borderom a textom */
.game-title {
    border: 4px solid #ECCF17 !important;
}

.game-title span {
    background: linear-gradient(180deg, #EF0 0%, #FFD900 100%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    -webkit-text-stroke: unset;
}

/* ============================= */
/* ==========  CANVAS ========== */
/* ============================= */
.content-section {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 20px;
    width: 100%;
    max-width: 1200px;
    flex-wrap: wrap;
    flex-direction: row;
    align-content: center;
    margin: 0 auto;
    background-color: #17284900;
}

/* Hlavný herný canvas */
#gameCanvas {
    background-image: url("../images/pozadie.jpg");
    min-width: 800px;
    min-height: 800px;
    max-height: 800px;
    max-width: 800px;
    display: flex;
    overflow: hidden;
    border-radius: 10px;
    border: 4px solid #AC3F0B;
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
    flex: 1; 
    transition: all 0.4s ease;
    filter: drop-shadow(4px 8px 8px rgba(0, 0, 0, 0.30));
    gap: 0px; 
    flex-wrap: wrap;
    align-content: center;
    justify-content: center;
    align-items: center;
}

/* =========================================== */
/* ZÁKLADNÉ NASTAVENIE KARTY                  */
/* Toto je predvolené nastavenie pre karty    */
/* =========================================== */
.card-container {
    display: flex;                          /* Flexbox pre centrované obrázky a text */
    width: 150px;                           /* Predvolená šírka (pre malý počet kariet) */
    height: 150px;                          /* Predvolená výška */
    background-image: url('../images/pozadie_button_mobile_2.png');  /* Pozadie karty */
    margin: 10px;                           /* Medzery medzi kartami */
    border: 2px solid #ECCF17 !important;  /* Žltý okraj */
    border-radius: 10px;                    /* Zaoblené rohy */
    
    /* Centrované vnútro */
    justify-items: center;
    align-items: center;
    align-content: center;
    justify-content: center;
    flex-direction: column;
    
    /* Plynulá animácia pri zmenách */
    transition: all 0.5s ease;

    perspective: 1000px;              /* 3D perspektíva pre flip efekt */
    transform-style: preserve-3d;     /* Zachováva 3D transformácie */
    position: relative;                /* Pre správne poziciovanie */
}

/* =========================================== */
/* ZÁKLADNÉ OBRÁZKY A TEXT V KARTÁCH          */
/* =========================================== */
.card-container img {
    width: 80px;                            /* Predvolená veľkosť obrázka */
    height: 80px;
    object-fit: contain;                    /* Zachová pomer strán */
}

.card-container span {
    background: linear-gradient(180deg, #EF0 0%, #FFD900 100%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    -webkit-text-stroke: unset;
    font-size: 32px;                        /* Predvolená veľkosť textu */
}


/* =============================================== */
/* AUTOMATICKÉ RESPONZÍVNE PRAVIDLÁ               */
/* Pre každý možný počet kariet (4 až 40)         */
/* =============================================== */

/* ===== 4 KARTY (2 páry) - 2x2 grid ===== */
#gameCanvas.cards-4 .card-container {
    width: 180px;
    height: 180px;
    margin: 15px;
}
#gameCanvas.cards-4 .card-container img {
    width: 100px;
    height: 100px;
}
#gameCanvas.cards-4 .card-container span {
    font-size: 40px;
}
#gameCanvas.cards-4 .card-container.flipped span {
    font-size: 22px;
}

/* ===== 6 KARIET (3 páry) - 2x3 grid ===== */
#gameCanvas.cards-6 .card-container {
    width: 170px;
    height: 170px;
    margin: 14px;
}
#gameCanvas.cards-6 .card-container img {
    width: 95px;
    height: 95px;
}
#gameCanvas.cards-6 .card-container span {
    font-size: 38px;
}
#gameCanvas.cards-6 .card-container.flipped span {
    font-size: 20px;
}

/* ===== 8 KARIET (4 páry) - 2x4 grid ===== */
#gameCanvas.cards-8 .card-container {
    width: 165px;
    height: 165px;
    margin: 13px;
}
#gameCanvas.cards-8 .card-container img {
    width: 92px;
    height: 92px;
}
#gameCanvas.cards-8 .card-container span {
    font-size: 36px;
}
#gameCanvas.cards-8 .card-container.flipped span {
    font-size: 19px;
}

/* ===== 10 KARIET (5 párov) - 2x5 grid ===== */
#gameCanvas.cards-10 .card-container {
    width: 162px;
    height: 162px;
    margin: 12px;
}
#gameCanvas.cards-10 .card-container img {
    width: 90px;
    height: 90px;
}
#gameCanvas.cards-10 .card-container span {
    font-size: 35px;
}
#gameCanvas.cards-10 .card-container.flipped span {
    font-size: 19px;
}

/* ===== 12 KARIET (6 párov) - 3x4 grid ===== */
#gameCanvas.cards-12 .card-container {
    width: 160px;
    height: 160px;
    margin: 12px;
}
#gameCanvas.cards-12 .card-container img {
    width: 88px;
    height: 88px;
}
#gameCanvas.cards-12 .card-container span {
    font-size: 34px;
}
#gameCanvas.cards-12 .card-container.flipped span {
    font-size: 18px;
}

/* ===== 14 KARIET (7 párov) - rozloženie môže byť 2x7 alebo 3x5 ===== */
#gameCanvas.cards-14 .card-container {
    width: 155px;
    height: 155px;
    margin: 11px;
}
#gameCanvas.cards-14 .card-container img {
    width: 85px;
    height: 85px;
}
#gameCanvas.cards-14 .card-container span {
    font-size: 33px;
}
#gameCanvas.cards-14 .card-container.flipped span {
    font-size: 18px;
}

/* ===== 16 KARIET (8 párov) - 4x4 grid ===== */
/* DÔLEŽITÉ: Toto je "štandardná" veľkosť */
#gameCanvas.cards-16 .card-container {
    width: 160px;
    height: 160px;
    margin: 12px;
}
#gameCanvas.cards-16 .card-container img {
    width: 90px;
    height: 90px;
}
#gameCanvas.cards-16 .card-container span {
    font-size: 32px;
}
#gameCanvas.cards-16 .card-container.flipped span {
    font-size: 18px;
}

/* ===== 18 KARIET (9 párov) - 3x6 grid ===== */
#gameCanvas.cards-18 .card-container {
    width: 145px;
    height: 145px;
    margin: 10px;
}
#gameCanvas.cards-18 .card-container img {
    width: 78px;
    height: 78px;
}
#gameCanvas.cards-18 .card-container span {
    font-size: 30px;
}
#gameCanvas.cards-18 .card-container.flipped span {
    font-size: 17px;
}

/* ===== 20 KARIET (10 párov) - 4x5 grid ===== */
#gameCanvas.cards-20 .card-container {
    width: 140px;
    height: 140px;
    margin: 9px;
}
#gameCanvas.cards-20 .card-container img {
    width: 75px;
    height: 75px;
}
#gameCanvas.cards-20 .card-container span {
    font-size: 28px;
}
#gameCanvas.cards-20 .card-container.flipped span {
    font-size: 16px;
}

/* ===== 22 KARTY (11 párov) - môže byť 4x6 s prázdnymi miestami ===== */
#gameCanvas.cards-22 .card-container {
    width: 135px;
    height: 135px;
    margin: 8px;
}
#gameCanvas.cards-22 .card-container img {
    width: 72px;
    height: 72px;
}
#gameCanvas.cards-22 .card-container span {
    font-size: 27px;
}
#gameCanvas.cards-22 .card-container.flipped span {
    font-size: 15px;
}

/* ===== 24 KARIET (12 párov) - 4x6 grid ===== */
#gameCanvas.cards-24 .card-container {
    width: 130px;
    height: 130px;
    margin: 8px;
}
#gameCanvas.cards-24 .card-container img {
    width: 70px;
    height: 70px;
}
#gameCanvas.cards-24 .card-container span {
    font-size: 26px;
}
#gameCanvas.cards-24 .card-container.flipped span {
    font-size: 14px;
}

/* ===== 25 KARIET (12.5 párov) - 5x5 grid ===== */
#gameCanvas.cards-25 .card-container {
    width: 125px;
    height: 125px;
    margin: 7px;
}
#gameCanvas.cards-25 .card-container img {
    width: 68px;
    height: 68px;
}
#gameCanvas.cards-25 .card-container span {
    font-size: 25px;
}
#gameCanvas.cards-25 .card-container.flipped span {
    font-size: 14px;
}

/* ===== 26-28 KARIET - postupné zmenšovanie ===== */
#gameCanvas.cards-26 .card-container,
#gameCanvas.cards-27 .card-container,
#gameCanvas.cards-28 .card-container {
    width: 120px;
    height: 120px;
    margin: 6px;
}
#gameCanvas.cards-26 .card-container img,
#gameCanvas.cards-27 .card-container img,
#gameCanvas.cards-28 .card-container img {
    width: 65px;
    height: 65px;
}
#gameCanvas.cards-26 .card-container span,
#gameCanvas.cards-27 .card-container span,
#gameCanvas.cards-28 .card-container span {
    font-size: 24px;
}
#gameCanvas.cards-26 .card-container.flipped span,
#gameCanvas.cards-27 .card-container.flipped span,
#gameCanvas.cards-28 .card-container.flipped span {
    font-size: 13px;
}

/* ===== 30 KARIET (15 párov) - 5x6 grid ===== */
#gameCanvas.cards-30 .card-container {
    width: 115px;
    height: 115px;
    margin: 5px;
}
#gameCanvas.cards-30 .card-container img {
    width: 62px;
    height: 62px;
}
#gameCanvas.cards-30 .card-container span {
    font-size: 22px;
}
#gameCanvas.cards-30 .card-container.flipped span {
    font-size: 12px;
}

/* ===== 32-34 KARIET - postupné zmenšovanie ===== */
#gameCanvas.cards-32 .card-container,
#gameCanvas.cards-33 .card-container,
#gameCanvas.cards-34 .card-container {
    width: 108px;
    height: 108px;
    margin: 4px;
}
#gameCanvas.cards-32 .card-container img,
#gameCanvas.cards-33 .card-container img,
#gameCanvas.cards-34 .card-container img {
    width: 58px;
    height: 58px;
}
#gameCanvas.cards-32 .card-container span,
#gameCanvas.cards-33 .card-container span,
#gameCanvas.cards-34 .card-container span {
    font-size: 20px;
}
#gameCanvas.cards-32 .card-container.flipped span,
#gameCanvas.cards-33 .card-container.flipped span,
#gameCanvas.cards-34 .card-container.flipped span {
    font-size: 11px;
}

/* ===== 36 KARIET (18 párov) - 6x6 grid ===== */
#gameCanvas.cards-36 .card-container {
    width: 100px;
    height: 100px;
    margin: 4px;
}
#gameCanvas.cards-36 .card-container img {
    width: 54px;
    height: 54px;
}
#gameCanvas.cards-36 .card-container span {
    font-size: 18px;
}
#gameCanvas.cards-36 .card-container.flipped span {
    font-size: 10px;
}

/* ===== 38-40 KARIET - veľmi malé karty ===== */
#gameCanvas.cards-38 .card-container,
#gameCanvas.cards-39 .card-container,
#gameCanvas.cards-40 .card-container {
    width: 95px;
    height: 95px;
    margin: 3px;
}
#gameCanvas.cards-38 .card-container img,
#gameCanvas.cards-39 .card-container img,
#gameCanvas.cards-40 .card-container img {
    width: 50px;
    height: 50px;
}
#gameCanvas.cards-38 .card-container span,
#gameCanvas.cards-39 .card-container span,
#gameCanvas.cards-40 .card-container span {
    font-size: 16px;
}
#gameCanvas.cards-38 .card-container.flipped span,
#gameCanvas.cards-39 .card-container.flipped span,
#gameCanvas.cards-40 .card-container.flipped span {
    font-size: 9px;
}


/* =============================================== */
/* RESPONZÍVNOSŤ PRE MOBILNÉ ZARIADENIA           */
/* Pre obrazovky menšie ako 900px                 */
/* =============================================== */

@media (max-width: 900px) {
    /* Ešte viac zmenšíme karty pre mobily */
    
    #gameCanvas.cards-16 .card-container {
        width: 140px;
        height: 140px;
        margin: 8px;
    }
    #gameCanvas.cards-16 .card-container img {
        width: 75px;
        height: 75px;
    }
    
    #gameCanvas.cards-20 .card-container {
        width: 120px;
        height: 120px;
        margin: 6px;
    }
    #gameCanvas.cards-20 .card-container img {
        width: 65px;
        height: 65px;
    }
    
    #gameCanvas.cards-24 .card-container,
    #gameCanvas.cards-25 .card-container {
        width: 105px;
        height: 105px;
        margin: 5px;
    }
    #gameCanvas.cards-24 .card-container img,
    #gameCanvas.cards-25 .card-container img {
        width: 56px;
        height: 56px;
    }
    
    #gameCanvas.cards-30 .card-container {
        width: 95px;
        height: 95px;
        margin: 4px;
    }
    #gameCanvas.cards-30 .card-container img {
        width: 50px;
        height: 50px;
    }
    
    #gameCanvas.cards-36 .card-container {
        width: 85px;
        height: 85px;
        margin: 3px;
    }
    #gameCanvas.cards-36 .card-container img {
        width: 45px;
        height: 45px;
    }
}

@media (max-width: 600px) {
    /* Ešte menšie pre veľmi malé obrazovky */
    
    #gameCanvas.cards-16 .card-container {
        width: 110px;
        height: 110px;
        margin: 5px;
    }
    #gameCanvas.cards-16 .card-container img {
        width: 58px;
        height: 58px;
    }
    
    #gameCanvas.cards-20 .card-container {
        width: 95px;
        height: 95px;
        margin: 4px;
    }
    #gameCanvas.cards-20 .card-container img {
        width: 50px;
        height: 50px;
    }
    
    #gameCanvas.cards-24 .card-container,
    #gameCanvas.cards-25 .card-container {
        width: 85px;
        height: 85px;
        margin: 3px;
    }
    #gameCanvas.cards-24 .card-container img,
    #gameCanvas.cards-25 .card-container img {
        width: 45px;
        height: 45px;
    }
    
    #gameCanvas.cards-30 .card-container,
    #gameCanvas.cards-36 .card-container {
        width: 70px;
        height: 70px;
        margin: 2px;
    }
    #gameCanvas.cards-30 .card-container img,
    #gameCanvas.cards-36 .card-container img {
        width: 38px;
        height: 38px;
    }
}

.card-container:hover {
    filter: drop-shadow(4px 8px 8px rgba(0, 0, 0, 0.30));
    box-shadow: 0 0 20px 2px #ECCF17 inset;
    cursor: url('../images/active_cursor4.png') 5 5, pointer;
    scale: 0.98;
}




/* ===== ANIMÁCIA OTÁČANIA KARIET ===== */
.card-container.flipping {
    transform: rotateY(90deg) scale(1.05);
    transition: transform 0.3s ease;
}

/* ===== ANIMÁCIA PRE NESPRÁVNE PÁRY (TRASENIE) ===== */
@keyframes wrongMatch {
    0% { transform: translateX(0); }
    25% { transform: translateX(-5px); }
    75% { transform: translateX(5px); }
    100% { transform: translateX(0); }
}

.card-container.wrong-match {
    animation: wrongMatch 0.5s ease;
    border-color: #ff4757 !important;
    box-shadow: 0 0 15px 2px rgba(255, 71, 87, 0.5) inset !important;
}

/* ===== ANIMÁCIA PRE SPRÁVNU ODPOVEĎ (NÁJDENÝ PÁR) ===== */
@keyframes correctMatch {
    0% { 
        border-color: #16B921;
        box-shadow: 0 0 15px 2px rgba(22, 185, 33, 0.3) inset;
    }
    50% { 
        border-color: #1ED929;
        box-shadow: 0 0 25px 4px rgba(30, 217, 41, 0.6) inset;
        transform: scale(1.08);
    }
    100% { 
        border-color: #16B921;
        box-shadow: 0 0 15px 2px rgba(22, 185, 33, 0.3) inset;
        transform: scale(1.02);
    }
}

.card-container.correct-match {
    animation: correctMatch 0.6s ease;
}

/* side panel s hráčmi */
.side-panel {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 20px;
    width: 300px;
    min-height: 800px;
    max-height: 800px;

}
.players-panel {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    width: 100%;
    min-height: 158px;
    border-radius: 30px;
    border: 4px solid #AC3F0B;
    background-image: url('../images/pozadie_button_mobile_2.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    padding: 20px;
    box-sizing: border-box;
    filter: drop-shadow(4px 8px 8px rgba(0, 0, 0, 0.30));
}

.players-panel :active {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
    width: 100%;
    min-height: 158px;
    background-image: url('../images/pozadie_button_mobile_2.png');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    padding: 20px;
    box-sizing: border-box;
    filter: drop-shadow(4px 8px 8px rgba(0, 0, 0, 0.30));
    border-radius: 30px;
    border: 4px solid #ECCF17;
    box-shadow: 0 0 20px 2px #ECCF17 inset;
}

.players-panel span {
    font-size: 60px;
    color: #FFF;
    text-align: center;
    text-transform: uppercase;
    -webkit-text-stroke-width: 1px;
    -webkit-text-stroke-color: #000;
}

.players-panel h1 {
    font-size: 40px;
    margin: 0;
    padding: 0;
}

.players-panel .name  {
    background: linear-gradient(180deg, #EF0 0%, #FFD900 100%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    -webkit-text-stroke: unset;
}

.player-1 .name {
    background: linear-gradient(176deg, #00E5FF 3.52%, #2494A1 96.48%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.player-2 .name {
    background: linear-gradient(176deg, #1EFF00 3.52%, #8EE046 96.48%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.player-3 .name {
    background: linear-gradient(176deg, #5579D4 3.52%, #008CFF 96.48%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}

.player-4 .name {
    background: linear-gradient(176deg, #D455D2 3.52%, #F0D 96.48%);
    background-clip: text;
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
}











/* =============================================== */
/* PROGRESS BAR PRE PRELOADING V PEXESE          */
/* Tieto štýly sa pridávajú do css/pexeso.css    */
/* =============================================== */

/* =========================================== */
/* Hlavný kontajner pre progress bar          */
/* Obsahuje progress bar a textové informácie */
/* =========================================== */
.loading-progress-container {
    width: 100%;                    /* Celá šírka */
    max-width: 400px;              /* Maximálna šírka 400px */
    margin: 1.5rem auto 0;         /* Vertikálny spacing a centrovanie */
}

/* =========================================== */
/* Progress Bar (pozadie)                     */
/* Sivý pruh ktorý reprezentuje 0-100%        */
/* =========================================== */
.loading-progress-bar {
    width: 100%;                                        /* Celá šírka kontajnera */
    height: 8px;                                       /* Výška progress baru */
    background-color: rgba(236, 207, 23, 0.2);        /* Priehľadná žltá farba pozadia */
    border-radius: 4px;                                /* Zaoblené rohy */
    overflow: hidden;                                  /* Skryje obsah mimo progress baru */
    margin-bottom: 0.5rem;                            /* Spacing pod progress barom */
    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.3);  /* Vnútorný tieň pre 3D efekt */
}

/* =========================================== */
/* Progress Fill (žltý pásik)                 */
/* Animovaný žltý pásik ktorý sa napĺňa       */
/* =========================================== */
.loading-progress-fill {
    height: 100%;                                                      /* Celá výška progress baru */
    width: 0%;                                                        /* Začína na 0% */
    background: linear-gradient(90deg, #ECCF17 0%, #FFE55C 50%, #ECCF17 100%);  /* Žltý gradient */
    border-radius: 4px;                                               /* Zaoblené rohy */
    transition: width 0.3s ease;                                      /* Plynulá animácia šírky */
    box-shadow: 0 0 10px rgba(236, 207, 23, 0.5);                    /* Žltý svietiaci efekt */
}

/* =========================================== */
/* Progress Text (percentá a detaily)         */
/* Zobrazuje percento a počet načítaných zdrojov */
/* =========================================== */
.loading-progress-text {
    display: flex;                       /* Flexbox pre rozmiestnenie textu */
    justify-content: space-between;      /* Text na ľavej a pravej strane */
    align-items: center;                 /* Vertikálne vycentrovanie */
    font-family: "Luckiest Guy", sans-serif;  /* Font rovnaký ako v hre */
    color: #ECCF17;                      /* Žltá farba textu */
    font-size: 14px;                     /* Veľkosť textu */
}

/* =========================================== */
/* Progress Percentage (napr. "75%")         */
/* Zobrazuje aktuálne percento načítania      */
/* =========================================== */
#loading-progress-percentage {
    font-size: 16px;                     /* Väčší text pre percento */
    font-weight: bold;                   /* Tučný text */
}

/* =========================================== */
/* Progress Details (napr. "15/20 zdrojov")  */
/* Zobrazuje počet načítaných zdrojov         */
/* =========================================== */
#loading-progress-details {
    font-size: 12px;                     /* Menší text pre detaily */
    opacity: 0.8;                        /* Mierne priehľadný text */
}

/* =========================================== */
/* RESPONZÍVNOSŤ PRE MOBILY                  */
/* Media query pre malé obrazovky (< 480px)  */
/* =========================================== */
@media (max-width: 480px) {
    /* Menší kontajner na mobiloch */
    .loading-progress-container {
        max-width: 300px;                /* Užšia šírka pre mobily */
    }
    
    /* Menší text na mobiloch */
    .loading-progress-text {
        font-size: 12px;                 /* Menší základný text */
    }
    
    /* Menšie percento na mobiloch */
    #loading-progress-percentage {
        font-size: 14px;                 /* Menšie percento */
    }
    
    /* Menšie detaily na mobiloch */
    #loading-progress-details {
        font-size: 10px;                 /* Menšie detaily */
    }
}