* {
    box-sizing: border-box;
}


html,
body {
    margin: 0;
    padding: 0;
    min-height: 100%;
}


body {

    font-family:
        "Arial Rounded MT Bold",
        "Trebuchet MS",
        Arial,
        sans-serif;

    background:
        linear-gradient(
            135deg,
            #fff3fa 0%,
            #f4fbff 45%,
            #fffbea 100%
        );

    color: #333;

    overflow-x: hidden;
}


/* =========================================================
   CONFETES
========================================================= */

#confettiCanvas {

    position: fixed;

    inset: 0;

    width: 100%;
    height: 100%;

    pointer-events: none;

    z-index: 9999;
}


/* =========================================================
   PÁGINA
========================================================= */

.pagina {

    width: 100%;

    max-width: 1100px;

    margin: 0 auto;

    padding: 20px 20px 50px;

}


/* =========================================================
   BANNER
========================================================= */

.banner {

    display: flex;
    justify-content: center;
    margin-bottom: 10px;

}


.banner-img {

    width: 380px;
    max-width: 80%;
}


/* =========================================================
   TOPO
========================================================= */

.topo {

    display: flex;

    justify-content: space-between;

    align-items: center;

    gap: 20px;

    margin-bottom: 20px;

}


.titulo-area {

    display: flex;

    align-items: center;

    gap: 15px;

}


.icone-titulo {

    width: 58px;

    height: 58px;

    display: flex;

    align-items: center;

    justify-content: center;

    border-radius: 18px;

    background: white;

    font-size: 30px;

    box-shadow:
        0 8px 20px rgba(0, 0, 0, .08);

}


.topo h1 {

    margin: 0;

    font-size: 30px;

}

/* =========================================================
   BOTÃO WHATSAPP
========================================================= */

.botao-whatsapp {

    width: min(100%, 500px);

    display: flex;

    align-items: center;
    justify-content: center;

    gap: 10px;

    margin: 20px auto 0;

    padding: 17px 25px;

    border: 0;

    border-radius: 20px;

    background:
        linear-gradient(
            135deg,
            #32d74b,
            #16a637
        );

    color: white;

    font-size: 18px;

    font-weight: bold;

    cursor: pointer;

    box-shadow:
        0 7px 0 #10832b,
        0 12px 22px rgba(22, 166, 55, .25);

    transition: .15s;

}


.botao-whatsapp:hover {

    transform: translateY(-2px);

}


.botao-whatsapp:active {

    transform: translateY(5px);

    box-shadow:
        0 2px 0 #10832b;

}


@media (max-width: 700px) {

    .botao-whatsapp {

        font-size: 16px;

        padding: 15px 18px;

    }

}


.topo p {

    margin: 4px 0 0;

    color: #888;

    font-size: 15px;

}


.botao-historico {

    display: inline-flex;

    align-items: center;

    justify-content: center;

    padding: 13px 20px;

    border-radius: 16px;

    background: white;

    color: #444;

    text-decoration: none;

    font-weight: bold;

    box-shadow:
        0 7px 18px rgba(0, 0, 0, .08);

    transition: .2s;

}


.botao-historico:hover {

    transform: translateY(-2px);

}


/* =========================================================
   BOX PRINCIPAL
========================================================= */

.sorteio-box {

    position: relative;

    background: rgba(255,255,255,.96);

    border-radius: 32px;

    padding: 32px;

    box-shadow:
        0 20px 55px rgba(0, 0, 0, .10);

    border: 4px solid white;

}


/* =========================================================
   RODADA
========================================================= */

.rodada-area {

    display: flex;

    justify-content: center;

    gap: 15px;

    margin-bottom: 25px;

}


.rodada-card,
.proximo-card {

    min-width: 190px;

    padding: 15px 25px;

    border-radius: 20px;

    text-align: center;

    background: #fff8cf;

    border: 2px solid #f6df65;

}


.proximo-card {

    background: #eaf8ff;

    border-color: #b7e8ff;

}


.rodada-card span,
.proximo-card span {

    display: block;

    font-size: 11px;

    font-weight: bold;

    color: #777;

}


.rodada-card > strong,
.proximo-card > strong {

    display: block;

    margin-top: 3px;

    font-size: 30px;

}


/* =========================================================
   ESTATÍSTICAS
========================================================= */

.estatisticas {

    display: grid;

    grid-template-columns:
        repeat(3, 1fr);

    gap: 15px;

    margin-bottom: 25px;

}


.estatistica {

    display: flex;

    align-items: center;

    gap: 14px;

    padding: 18px;

    border-radius: 20px;

    background: #f8f8f8;

    border: 2px solid transparent;

}


.estatistica-icone {

    width: 48px;

    height: 48px;

    flex-shrink: 0;

    display: flex;

    align-items: center;

    justify-content: center;

    border-radius: 15px;

    background: white;

    font-size: 25px;

}


.estatistica span {

    display: block;

    color: #888;

    font-size: 13px;

}


.estatistica strong {

    display: block;

    font-size: 30px;

    margin-top: 2px;

}


.participantes {
    border-color: #ffd2e9;
}


.sorteados {
    border-color: #ffe69b;
}


.disponiveis {
    border-color: #bceeff;
}


/* =========================================================
   PRÊMIO
========================================================= */

.premio-card {

    position: relative;

    display: flex;

    align-items: center;

    justify-content: center;

    gap: 12px;

    flex-wrap: wrap;

    margin: 10px auto 25px;

    padding: 22px;

    border-radius: 25px;

    background:
        linear-gradient(
            135deg,
            #fff4a8,
            #fff9dc
        );

    border: 3px dashed #efce45;

}


.premio-card span {

    width: 100%;

    font-size: 13px;

    font-weight: bold;

    color: #816d00;

}


.premio-card strong {

    font-size: 48px;

    line-height: 1;

}


.premio-card small {

    font-size: 14px;

    font-weight: bold;

}


.premio-estrela {

    font-size: 25px;

    animation:
        estrelaPiscando 1.2s infinite alternate;

}


@keyframes estrelaPiscando {

    from {
        transform: scale(.85) rotate(-8deg);
    }

    to {
        transform: scale(1.15) rotate(8deg);
    }

}


/* =========================================================
   TELEFONE
========================================================= */

.telefone-box {

    position: relative;

    min-height: 125px;

    display: flex;

    align-items: center;

    justify-content: center;

    gap: 20px;

    margin: 20px 0;

    padding: 25px;

    border-radius: 25px;

    background:
        linear-gradient(
            135deg,
            #fafafa,
            #ffffff
        );

    border: 3px dashed #ddd;

    overflow: hidden;

}


.telefone-box::before {

    content: "";

    position: absolute;

    width: 180px;

    height: 180px;

    border-radius: 50%;

    background: #fff4fa;

    top: -100px;

    left: -60px;

}


.telefone-box::after {

    content: "";

    position: absolute;

    width: 150px;

    height: 150px;

    border-radius: 50%;

    background: #effaff;

    bottom: -100px;

    right: -40px;

}


.telefone-animacao {

    position: relative;

    z-index: 2;

    font-size: 34px;

    font-weight: bold;

    letter-spacing: 2px;

    text-align: center;

}


.telefone-brilho {

    position: relative;

    z-index: 2;

    font-size: 25px;

}


/* =========================================================
   BOTÃO SORTEAR
========================================================= */

.botao-sortear {

    width: min(100%, 500px);

    display: flex;

    align-items: center;

    justify-content: center;

    gap: 10px;

    margin: 20px auto 0;

    padding: 20px 30px;

    border: 0;

    border-radius: 22px;

    background:
        linear-gradient(
            135deg,
            #ff7eb9,
            #ff5c9d
        );

    color: white;

    font-size: 25px;

    font-weight: bold;

    cursor: pointer;

    box-shadow:
        0 9px 0 #df397e,
        0 15px 25px rgba(255, 92, 157, .28);

    transition: .15s;

}


.botao-sortear:hover {

    transform: translateY(-2px);

}


.botao-sortear:active {

    transform: translateY(6px);

    box-shadow:
        0 3px 0 #df397e;

}


.botao-sortear:disabled {

    opacity: .55;

    cursor: not-allowed;

    transform: none;

}


/* =========================================================
   RESET
========================================================= */

.botao-reset {

    display: block;

    margin: 25px auto 0;

    padding: 10px 18px;

    border: 0;

    background: transparent;

    color: #777;

    font-weight: bold;

    cursor: pointer;

}


.botao-reset:hover {

    color: #444;

}


/* =========================================================
   RESULTADO
========================================================= */

.resultado {

    display: none;

    position: relative;

    margin-top: 30px;

    padding: 30px 20px;

    text-align: center;

    border-radius: 30px;

    background:
        linear-gradient(
            135deg,
            #fff5b8,
            #fffdf0
        );

    border: 4px solid #f3d952;

    box-shadow:
        0 15px 40px rgba(232, 196, 35, .18);

    overflow: hidden;

}


.resultado.mostrar {

    display: block;

    animation:
        resultadoEntrando .65s cubic-bezier(.2,1.4,.4,1);

}


@keyframes resultadoEntrando {

    0% {

        opacity: 0;

        transform:
            scale(.5)
            rotate(-3deg);

    }

    70% {

        transform:
            scale(1.06)
            rotate(1deg);

    }

    100% {

        opacity: 1;

        transform:
            scale(1)
            rotate(0);

    }

}


/* =========================================================
   MASCOTE
========================================================= */

.mascote-ganhador {

    display: flex;

    align-items: center;

    justify-content: center;

    gap: 15px;

    min-height: 180px;

    margin-bottom: 5px;

}


.mascote-ganhador img {

    display: block;

    max-width: 180px;

    max-height: 230px;

    width: auto;

    height: auto;

    object-fit: contain;

    filter:
        drop-shadow(
            0 8px 5px rgba(0,0,0,.12)
        );

    animation:
        mascotePulando 1.1s infinite;

}


@keyframes mascotePulando {

    0%,
    100% {

        transform:
            translateY(0)
            rotate(0);

    }

    50% {

        transform:
            translateY(-10px)
            rotate(-2deg);

    }

}


.mascote-brilho {

    font-size: 30px;

    animation:
        brilho 1s infinite alternate;

}


@keyframes brilho {

    from {

        transform:
            scale(.7)
            rotate(-10deg);

        opacity: .5;

    }

    to {

        transform:
            scale(1.2)
            rotate(10deg);

        opacity: 1;

    }

}


/* =========================================================
   TROFÉU
========================================================= */

.trofeu {

    font-size: 55px;

    animation:
        trofeu .8s infinite alternate;

}


@keyframes trofeu {

    from {
        transform: rotate(-5deg) scale(.95);
    }

    to {
        transform: rotate(5deg) scale(1.08);
    }

}


.resultado h2 {

    margin: 5px 0;

    font-size: 38px;

}


.texto-ganhador {

    margin: 5px 0 15px;

    color: #777;

}


.nome-ganhador {

    font-size: 32px;

    font-weight: bold;

}


.telefone-ganhador {

    margin-top: 7px;

    color: #777;

    font-size: 18px;

}


.premio-final {

    display: inline-flex;

    flex-direction: column;

    align-items: center;

    margin-top: 25px;

    padding: 18px 35px;

    border-radius: 22px;

    background: white;

    box-shadow:
        0 8px 20px rgba(0,0,0,.08);

}


.premio-final span {

    font-size: 13px;

    font-weight: bold;

    color: #888;

}


.premio-final strong {

    font-size: 42px;

    margin-top: 4px;

}


.premio-final small {

    font-weight: bold;

    color: #777;

}

/* =========================================================
   BOTÃO VOLTAR AO INÍCIO
========================================================= */

.botao-inicio {

    width: min(100%, 500px);

    display: flex;

    align-items: center;
    justify-content: center;

    margin: 15px auto 5px;

    padding: 14px 20px;

    border-radius: 18px;

    background: #ffffff;

    border: 3px solid #e8e8e8;

    color: #666;

    text-decoration: none;

    font-size: 16px;

    font-weight: bold;

    box-shadow:
        0 5px 12px rgba(0, 0, 0, .08);

    transition: .2s;

}


.botao-inicio:hover {

    transform: translateY(-2px);

    background: #f9f9f9;

    box-shadow:
        0 8px 18px rgba(0, 0, 0, .12);

}


.botao-inicio:active {

    transform: translateY(1px);

}


/* =========================================================
   RESPONSIVO
========================================================= */

@media (max-width: 700px) {


    .pagina {

        padding: 12px 12px 35px;

    }


    .banner {

        border-radius: 20px;

    }


    .banner-img {

        max-height: 170px;

    }


    .topo {

        flex-direction: column;

        text-align: center;

    }


    .titulo-area {

        justify-content: center;

    }


    .sorteio-box {

        padding: 20px 15px;

        border-radius: 25px;

    }


    .rodada-area {

        flex-direction: column;

        align-items: stretch;

    }


    .rodada-card,
    .proximo-card {

        width: 100%;

    }


    .estatisticas {

        grid-template-columns: 1fr;

    }


    .premio-card strong {

        font-size: 40px;

    }


    .telefone-animacao {

        font-size: 23px;

    }


    .telefone-brilho {

        display: none;

    }


    .mascote-ganhador img {

        max-width: 145px;

        max-height: 190px;

    }


    .resultado h2 {

        font-size: 30px;

    }


    .nome-ganhador {

        font-size: 25px;

    }

    

}

