/*==========================================================
    Brides of the King Challenge
    CML Hosur
==========================================================*/

/*======================
        VARIABLES
=======================*/

:root{

    --primary:#0B2E63;
    --secondary:#133D86;
    --dark:#061A3A;

    --gold:#F6C646;
    --gold2:#FFD873;

    --white:#ffffff;

    --glass:rgba(255,255,255,.08);

    --border:rgba(255,255,255,.15);

    --shadow:0 20px 60px rgba(0,0,0,.35);

}

/*======================
        RESET
=======================*/

*{

    margin:0;
    padding:0;
    box-sizing:border-box;

}

html{

    scroll-behavior:smooth;

}

body{

    font-family:'Poppins',sans-serif;

    color:white;

    overflow-x:hidden;

    min-height:100vh;

    background:
    linear-gradient(
        135deg,
        var(--dark),
        var(--primary),
        var(--secondary));

}

/*======================
    BACKGROUND LIGHTS
=======================*/

body::before{

    content:"";

    position:fixed;

    inset:0;

    background:

    radial-gradient(circle at 20% 20%,
    rgba(255,215,0,.16),
    transparent 20%),

    radial-gradient(circle at 85% 25%,
    rgba(255,255,255,.08),
    transparent 18%),

    radial-gradient(circle at 60% 90%,
    rgba(255,215,0,.10),
    transparent 25%);

    animation:bgMove 20s linear infinite;

    z-index:-3;

}

@keyframes bgMove{

    from{

        transform:translate(0,0);

    }

    to{

        transform:translate(-8%,-10%);

    }

}

/*======================
    PARTICLES
=======================*/

#particles{

    position:fixed;

    inset:0;

    background-image:
    radial-gradient(var(--gold) 1px, transparent 1px);

    background-size:34px 34px;

    opacity:.15;

    animation:particles 20s linear infinite;

    pointer-events:none;

    z-index:-2;

}

@keyframes particles{

    from{

        transform:translateY(0);

    }

    to{

        transform:translateY(-400px);

    }

}

/*======================
    SCREEN
=======================*/

.screen{

    display:none;

    min-height:100vh;

    width:100%;

    justify-content:center;

    align-items:center;

    flex-direction:column;

    padding:30px;

}

.active{

    display:flex;

}

/*======================
    HERO CARD
=======================*/

.heroCard,
.card{

    width:92%;

    max-width:760px;

    background:var(--glass);

    border:1px solid var(--border);

    backdrop-filter:blur(20px);

    border-radius:32px;

    padding:55px;

    text-align:center;

    box-shadow:var(--shadow);

    animation:fadeUp .8s ease;

}

@keyframes fadeUp{

    from{

        opacity:0;

        transform:
        translateY(40px)
        scale(.98);

    }

    to{

        opacity:1;

        transform:
        translateY(0)
        scale(1);

    }

}

/*======================
        LOGO
=======================*/

.logo{

    width:170px;

    margin-bottom:28px;

    filter:

    drop-shadow(0 0 22px rgba(255,215,0,.45));

    animation:logoFloat 4s ease-in-out infinite;

}

@keyframes logoFloat{

    0%{

        transform:translateY(0);

    }

    50%{

        transform:translateY(-12px);

    }

    100%{

        transform:translateY(0);

    }

}

/*======================
        TEXT
=======================*/

.presented{

    display:block;

    color:var(--gold);

    letter-spacing:4px;

    font-size:.85rem;

    font-weight:600;

    margin-bottom:18px;

}

h1{

    font-size:4rem;

    font-weight:700;

    line-height:1.1;

    margin-bottom:15px;

    text-shadow:

    0 10px 30px rgba(0,0,0,.35);

}

h2{

    font-size:2rem;

    margin-bottom:12px;

}

.subtitle{

    color:var(--gold);

    font-size:1.3rem;

    margin-bottom:12px;

}

.tagline{

    opacity:.85;

    font-size:1.05rem;

    margin-bottom:40px;

}

.registerText{

    opacity:.8;

    margin-bottom:25px;

}

/*======================
    INPUT GROUPS
=======================*/

.inputGroup{

    display:flex;

    align-items:center;

    gap:16px;

    background:

    rgba(255,255,255,.08);

    border:

    1px solid rgba(255,255,255,.12);

    border-radius:18px;

    padding:0 18px;

    margin:18px 0;

    transition:.3s;

}

.inputGroup:hover{

    border-color:rgba(255,215,0,.5);

}

.inputGroup:focus-within{

    border-color:var(--gold);

    box-shadow:

    0 0 20px rgba(255,215,0,.18);

}

.inputGroup i{

    color:var(--gold);

    font-size:18px;

}

.inputGroup input,
.inputGroup select{

    flex:1;

    background:transparent;

    border:none;

    outline:none;

    color:white;

    font-size:16px;

    padding:18px 0;

    font-family:'Poppins',sans-serif;

}

.inputGroup input::placeholder{

    color:#dddddd;

}

.inputGroup option{

    color:black;

}

/*======================
        BUTTON
=======================*/

.mainButton{

    margin-top:32px;

    padding:18px 42px;

    border:none;

    border-radius:60px;

    background:

    linear-gradient(
    135deg,
    var(--gold2),
    var(--gold));

    color:#162846;

    font-size:18px;

    font-weight:700;

    cursor:pointer;

    transition:.35s;

    box-shadow:

    0 15px 35px rgba(246,198,70,.35);

}

.mainButton:hover{

    transform:

    translateY(-5px)
    scale(1.04);

    box-shadow:

    0 20px 45px rgba(246,198,70,.5);

}

.mainButton:active{

    transform:scale(.98);

}

/*======================
    QUIZ TOP BAR
=======================*/

.topBar{

    width:92%;

    max-width:760px;

    display:flex;

    justify-content:space-between;

    align-items:center;

    margin-bottom:25px;

}

#progressText,
#scoreText{

    background:rgba(255,255,255,.08);

    border:1px solid rgba(255,255,255,.12);

    padding:12px 22px;

    border-radius:30px;

    font-weight:600;

    backdrop-filter:blur(10px);

}

/*==========================================================
                    QUIZ AREA
==========================================================*/

#question{

    font-size:30px;

    line-height:1.5;

    font-weight:600;

    margin-bottom:35px;

    text-align:center;

}

/*======================
      ANSWERS
=======================*/

#answers{

    display:flex;

    flex-direction:column;

    gap:18px;

}

.answerButton{

    width:100%;

    border:none;

    border-radius:18px;

    padding:20px;

    font-size:17px;

    font-family:'Poppins',sans-serif;

    cursor:pointer;

    color:white;

    background:rgba(255,255,255,.10);

    border:1px solid rgba(255,255,255,.12);

    backdrop-filter:blur(8px);

    transition:all .25s ease;

}

.answerButton:hover{

    transform:translateY(-3px);

    background:rgba(246,198,70,.18);

    border-color:var(--gold);

    box-shadow:0 10px 30px rgba(246,198,70,.20);

}

.answerButton:active{

    transform:scale(.98);

}

/*======================
   CORRECT / WRONG
=======================*/

.correct{

    background:#1faa59 !important;

    border-color:#1faa59 !important;

    color:white;

}

.wrong{

    background:#d63031 !important;

    border-color:#d63031 !important;

    color:white;

}

.disabled{

    pointer-events:none;

}

/*==========================================================
                  PROGRESS BAR
==========================================================*/

.progressContainer{

    width:92%;

    max-width:760px;

    height:10px;

    background:rgba(255,255,255,.08);

    border-radius:30px;

    overflow:hidden;

    margin-bottom:18px;

}

.progressFill{

    height:100%;

    width:0%;

    border-radius:30px;

    background:

    linear-gradient(
    90deg,
    var(--gold),
    #ffe082);

    transition:width .5s ease;

}

/*==========================================================
                    RESULT SCREEN
==========================================================*/

#finalStars{

    font-size:52px;

    margin:20px 0;

    animation:pulse 2s infinite;

}

#finalScore{

    font-size:42px;

    color:var(--gold);

    margin-bottom:20px;

}

.resultTitle{

    font-size:28px;

    margin-bottom:10px;

}

.resultBadge{

    display:inline-block;

    margin-top:15px;

    padding:10px 24px;

    border-radius:30px;

    background:rgba(246,198,70,.18);

    border:1px solid rgba(246,198,70,.35);

    color:var(--gold);

    font-weight:600;

}

/*==========================================================
                 MUSIC BUTTON
==========================================================*/

.musicButton{

    position:fixed;

    top:25px;

    right:25px;

    width:55px;

    height:55px;

    border:none;

    border-radius:50%;

    cursor:pointer;

    color:white;

    font-size:20px;

    background:rgba(255,255,255,.10);

    backdrop-filter:blur(10px);

    border:1px solid rgba(255,255,255,.15);

    transition:.3s;

    z-index:999;

}

.musicButton:hover{

    transform:rotate(15deg) scale(1.08);

    background:rgba(246,198,70,.25);

}

/*==========================================================
                 ANIMATIONS
==========================================================*/

.fadeIn{

    animation:fadeIn .5s ease;

}

.fadeOut{

    animation:fadeOut .4s ease;

}

@keyframes fadeIn{

    from{

        opacity:0;

        transform:translateY(15px);

    }

    to{

        opacity:1;

        transform:translateY(0);

    }

}

@keyframes fadeOut{

    from{

        opacity:1;

    }

    to{

        opacity:0;

    }

}

@keyframes pulse{

    0%{

        transform:scale(1);

    }

    50%{

        transform:scale(1.08);

    }

    100%{

        transform:scale(1);

    }

}

.shake{

    animation:shake .45s;

}

@keyframes shake{

    0%{transform:translateX(0);}
    20%{transform:translateX(-8px);}
    40%{transform:translateX(8px);}
    60%{transform:translateX(-8px);}
    80%{transform:translateX(8px);}
    100%{transform:translateX(0);}

}

/*==========================================================
               SCROLLBAR
==========================================================*/

::-webkit-scrollbar{

    width:10px;

}

::-webkit-scrollbar-thumb{

    background:var(--gold);

    border-radius:20px;

}

/*==========================================================
                 MOBILE
==========================================================*/

@media(max-width:768px){

.heroCard,
.card{

    padding:35px 25px;

    border-radius:24px;

}

.logo{

    width:130px;

}

h1{

    font-size:2.4rem;

}

h2{

    font-size:1.6rem;

}

.subtitle{

    font-size:1.05rem;

}

.tagline{

    font-size:.95rem;

}

.mainButton{

    width:100%;

}

.topBar{

    width:100%;

    font-size:14px;

}

#progressText,
#scoreText{

    padding:10px 16px;

}

#question{

    font-size:22px;

}

.answerButton{

    padding:16px;

    font-size:16px;

}

.musicButton{

    width:46px;

    height:46px;

    top:15px;

    right:15px;

}

#finalScore{

    font-size:32px;

}

}

.poweredBy{
    margin-top:25px;
    text-align:center;
    color:rgba(255,255,255,0.75);
    font-size:14px;
    line-height:1.5;
    letter-spacing:0.5px;
}

.poweredBy strong{
    color:#FFD54F;
    font-weight:600;
}

