*{
    box-sizing:border-box;
    margin:0;
    padding:0;
}

body{
    font-family:"Cairo",sans-serif;

    background:
    radial-gradient(
        circle at top,
        #fff0f7,
        #f9f3ff
    );

    min-height:100vh;

    color:#402d46;
}


/* =========================
HOME
========================= */

.home-page{

    min-height:100vh;

    display:flex;

    align-items:center;

    justify-content:center;

    padding:20px;

    overflow:hidden;

    position:relative;
}


.home-card{

    width:100%;

    max-width:520px;

    background:rgba(255,255,255,.9);

    backdrop-filter:blur(20px);

    border-radius:35px;

    padding:40px 30px;

    text-align:center;

    box-shadow:
    0 30px 80px rgba(121,78,132,.15);

    border:
    1px solid rgba(255,255,255,.8);

    position:relative;

    z-index:5;
}


.character{

    width:130px;

    height:130px;

    background:
    linear-gradient(
        135deg,
        #ffd6e8,
        #e6d6ff
    );

    border-radius:50%;

    margin:
    0 auto 20px;

    display:flex;

    align-items:center;

    justify-content:center;

    font-size:70px;

    animation:
    characterFloat 3s ease-in-out infinite;
}


@keyframes characterFloat{

    0%,100%{
        transform:translateY(0);
    }

    50%{
        transform:translateY(-8px);
    }
}


.mini-title{

    display:inline-block;

    background:#fff0f7;

    color:#dd6fa2;

    padding:7px 18px;

    border-radius:100px;

    font-size:13px;

    font-weight:700;

    margin-bottom:12px;
}


.home-card h1{

    font-size:35px;

    margin-bottom:10px;

    font-weight:800;
}


.home-card p{

    color:#806f85;

    font-size:15px;

    line-height:1.9;

    max-width:390px;

    margin:auto;
}


.stats{

    display:grid;

    grid-template-columns:
    repeat(3,1fr);

    gap:10px;

    margin:
    30px 0;
}


.stat{

    background:#faf7fc;

    padding:15px 8px;

    border-radius:18px;

    display:flex;

    gap:8px;

    align-items:center;

    justify-content:center;
}


.stat span{

    font-size:25px;
}


.stat div{

    display:flex;

    flex-direction:column;

    text-align:right;
}


.stat small{

    color:#95889a;

    font-size:10px;
}


.stat strong{

    font-size:16px;
}


.main-button{

    width:100%;

    border:none;

    padding:17px;

    border-radius:18px;

    background:
    linear-gradient(
        135deg,
        #ed7bab,
        #b989ea
    );

    color:white;

    font-family:inherit;

    font-size:17px;

    font-weight:700;

    cursor:pointer;

    box-shadow:
    0 15px 30px rgba(217,113,172,.3);

    transition:.3s;
}


.main-button:hover{

    transform:
    translateY(-3px);

}


.reset-button{

    border:none;

    background:none;

    color:#a496aa;

    font-family:inherit;

    cursor:pointer;

    margin-top:18px;
}


.floating-heart{

    position:absolute;

    font-size:40px;

    animation:
    floatHeart 5s infinite ease-in-out;
}


.heart-1{

    top:10%;

    right:8%;
}


.heart-2{

    bottom:15%;

    right:15%;

    animation-delay:1s;
}


.heart-3{

    top:15%;

    left:10%;

    animation-delay:2s;
}


.heart-4{

    bottom:10%;

    left:15%;

    animation-delay:3s;
}


@keyframes floatHeart{

    0%,100%{

        transform:
        translateY(0)
        rotate(0);

    }

    50%{

        transform:
        translateY(-20px)
        rotate(10deg);

    }

}


/* =========================
GAME
========================= */


.game-page{

    min-height:100vh;

    padding-bottom:50px;
}


.game-header{

    max-width:850px;

    margin:auto;

    padding:20px;

    display:flex;

    align-items:center;

    justify-content:space-between;
}


.back-button{

    width:45px;

    height:45px;

    background:white;

    border-radius:14px;

    display:flex;

    align-items:center;

    justify-content:center;

    text-decoration:none;

    box-shadow:
    0 8px 25px rgba(0,0,0,.05);
}


.level-info{

    background:white;

    border-radius:100px;

    padding:10px 20px;

    display:flex;

    gap:7px;

    align-items:center;

    box-shadow:
    0 8px 25px rgba(0,0,0,.05);

    font-size:13px;
}


.level-info strong{

    color:#d871a5;

    font-size:18px;
}


.stars-box{

    background:white;

    padding:10px 15px;

    border-radius:14px;

    box-shadow:
    0 8px 25px rgba(0,0,0,.05);
}


.progress-wrapper{

    max-width:750px;

    margin:
    0 auto 20px;

    height:10px;

    background:#eee5f0;

    border-radius:50px;

    overflow:hidden;
}


.progress-bar{

    height:100%;

    width:0;

    background:
    linear-gradient(
        90deg,
        #ed7bab,
        #af82ed
    );

    border-radius:50px;

    transition:.5s;
}


.game-container{

    width:
    calc(100% - 30px);

    max-width:650px;

    margin:auto;

    background:white;

    min-height:550px;

    border-radius:35px;

    padding:40px;

    text-align:center;

    box-shadow:
    0 25px 70px rgba(107,75,117,.12);
}


.world-badge{

    display:inline-block;

    padding:
    7px 16px;

    background:#fff0f7;

    color:#d36d9e;

    border-radius:50px;

    font-size:12px;

    font-weight:700;

    margin-bottom:25px;
}


.game-icon{

    font-size:70px;

    margin-bottom:15px;

    animation:
    gameIcon 2.5s infinite ease-in-out;
}


@keyframes gameIcon{

    50%{
        transform:scale(1.1);
    }

}


.game-container h1{

    font-size:25px;

    line-height:1.6;

    margin-bottom:8px;
}


.game-description{

    color:#95889a;

    font-size:13px;

    margin-bottom:25px;
}


.answers{

    display:grid;

    grid-template-columns:
    1fr 1fr;

    gap:12px;

    margin-top:25px;
}


.answer-button{

    min-height:70px;

    background:#faf8fb;

    border:
    2px solid #f0e8f3;

    border-radius:18px;

    font-family:inherit;

    padding:12px;

    cursor:pointer;

    transition:.25s;

    font-size:15px;

    font-weight:600;
}


.answer-button:hover{

    border-color:#e18ab4;

    transform:
    translateY(-3px);

    background:#fff4f9;
}


.answer-button.correct{

    background:#e9fff1;

    border-color:#7edb9d;

    color:#23854a;
}


.answer-button.wrong{

    background:#fff0f0;

    border-color:#ff9393;

    color:#d64747;
}


.result-box{

    min-height:30px;

    margin-top:25px;

    font-weight:700;

    font-size:17px;
}


.next-button{

    display:none;

    margin-top:25px;

    width:100%;

    border:none;

    background:
    linear-gradient(
        135deg,
        #eb78aa,
        #af82ed
    );

    color:white;

    border-radius:18px;

    padding:16px;

    font-family:inherit;

    font-weight:700;

    font-size:15px;

    cursor:pointer;
}


/* =========================
MEMORY
========================= */


.memory-grid{

    display:grid;

    grid-template-columns:
    repeat(4,1fr);

    gap:10px;

    margin-top:25px;
}


.memory-card{

    aspect-ratio:1;

    border:none;

    border-radius:15px;

    background:
    linear-gradient(
        135deg,
        #f4b5d1,
        #cab3f4
    );

    font-size:0;

    cursor:pointer;

    transition:.3s;
}


.memory-card.open{

    background:#faf7fc;

    font-size:35px;
}


/* =========================
COLORS
========================= */


.color-options{

    display:grid;

    grid-template-columns:
    repeat(3,1fr);

    gap:15px;

    margin-top:25px;
}


.color-button{

    aspect-ratio:1;

    border:none;

    border-radius:25px;

    cursor:pointer;

    transition:.3s;

    box-shadow:
    inset 0 0 0 5px rgba(255,255,255,.5);
}


.color-button:hover{

    transform:
    scale(1.05);
}


/* =========================
CELEBRATION
========================= */


.celebration{

    position:fixed;

    top:50%;

    left:50%;

    transform:
    translate(-50%,-50%)
    scale(0);

    font-size:130px;

    z-index:100;

    pointer-events:none;

    transition:.5s;
}


.celebration.show{

    transform:
    translate(-50%,-50%)
    scale(1);
}


/* =========================
MOBILE
========================= */


@media(max-width:600px){

    .home-card{

        padding:
        35px 18px;

        border-radius:28px;
    }


    .home-card h1{

        font-size:27px;
    }


    .character{

        width:105px;

        height:105px;

        font-size:55px;
    }


    .stats{

        gap:6px;
    }


    .stat{

        flex-direction:column;

        padding:10px 5px;
    }


    .stat div{

        text-align:center;
    }


    .game-container{

        padding:
        30px 18px;

        border-radius:28px;
    }


    .game-container h1{

        font-size:21px;
    }


    .answers{

        grid-template-columns:1fr;
    }


    .memory-grid{

        gap:7px;
    }


    .game-header{

        padding:
        15px;
    }


    .progress-wrapper{

        width:
        calc(100% - 40px);
    }

}