/* Alarme do limite da poupança — estilo bomba-relógio.
 *
 * Uma barra de energia vertical (a "taxa de liquidez") sobe desesperadamente
 * enquanto um cronômetro digital conta 3… 2… 1… com bipes acelerando. A pessoa
 * tem um botão só: APLICAR AGORA. Se toca a tempo, a jogada vai ao servidor;
 * com prêmio a barra explode em luz verde e chovem confetes; sem prêmio a tela
 * racha num curto-circuito vermelho com sirene.
 *
 * SE O TEMPO ESGOTA, NÃO HÁ JOGADA: nada é consumido, a janela fechou, e o
 * mesmo botão vira "Nova rodada". O tempo da pessoa NUNCA decide o resultado —
 * quem decide é o servidor, e só quando ela toca.
 *
 * Entre o toque e a resposta a cena CONGELA igual nas duas jogadas (cronômetro
 * parado, barra parada, pulso de "validando"): essa é a fase A.
 *
 * Barra SEM ESCALA: nenhum percentual, nenhum número — "taxa de liquidez"
 * com um 87% ao lado viraria promessa de rendimento.
 *
 * Estado final por classe estática ou @keyframes forwards; o bloco de
 * movimento reduzido (que o Edge headless declara) para em estado visível.
 */

.bl__palco {
    position: relative;
    width: 100%;
    max-width: 480px;
    margin: 0 auto;
    aspect-ratio: 16 / 10;
    border-radius: 14px;
    overflow: hidden;
    background: linear-gradient(180deg, var(--jg-06281a, #06281A) 0%, var(--jg-0b3d24, #0B3D24) 100%);
    box-shadow: 0 10px 24px -12px rgba(0, 0, 0, .6);
    user-select: none;
    font-family: Arial, sans-serif;
}
.bl__palco::before {
    content: '';
    position: absolute; inset: 0;
    background:
        linear-gradient(rgba(var(--jg-rgb-7dd69a, 125,214,154), .06) 1px, transparent 1px) 0 0 / 100% 24px,
        linear-gradient(90deg, rgba(var(--jg-rgb-7dd69a, 125,214,154), .06) 1px, transparent 1px) 0 0 / 24px 100%;
    pointer-events: none;
}
/* Alerta pulsando nas bordas enquanto o cronômetro corre. */
.bl__alerta {
    position: absolute; inset: 0;
    box-shadow: inset 0 0 0 0 rgba(255, 216, 107, 0);
    z-index: 1; pointer-events: none;
}
.bl--contando .bl__alerta { animation: bl-alerta .5s ease-in-out infinite alternate; }
@keyframes bl-alerta {
    from { box-shadow: inset 0 0 0 2px rgba(255, 216, 107, .15); }
    to   { box-shadow: inset 0 0 0 6px rgba(255, 216, 107, .6); }
}

/* Rótulo do produto. NÃO é nome de prêmio. */
.bl__rotulo {
    position: absolute;
    left: 50%; top: 5%;
    transform: translateX(-50%);
    display: inline-flex; align-items: center; gap: 6px;
    padding: 4px 10px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .1);
    border: 1px solid rgba(var(--jg-rgb-7dd69a, 125,214,154), .45);
    font: 700 10px/1 Arial, sans-serif;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--jg-cff3da, #CFF3DA);
    white-space: nowrap;
    z-index: 8;
}
.bl__rotulo img { width: 12px; height: 12px; }

/* ---------------- a barra de energia ---------------- */

.bl__barra {
    position: absolute;
    left: 12%; top: 20%; bottom: 14%;
    width: 11%;
    border-radius: 8px;
    background: rgba(var(--jg-rgb-041a10, 4,26,16), .85);
    border: 1.5px solid rgba(var(--jg-rgb-7dd69a, 125,214,154), .45);
    box-shadow: inset 0 0 12px rgba(0, 0, 0, .5);
    overflow: hidden;
    z-index: 3;
}
/* riscos de escala SEM número */
.bl__barra::before {
    content: '';
    position: absolute; inset: 0;
    background: repeating-linear-gradient(180deg, rgba(var(--jg-rgb-7dd69a, 125,214,154), .25) 0 1px, transparent 1px 12.5%);
}
/* o preenchimento sobe: altura escrita pelo JS */
.bl__nivel {
    position: absolute; left: 0; right: 0; bottom: 0;
    height: 8%;
    background: linear-gradient(180deg, #FFE98A 0%, var(--jg-7dd69a, #7DD69A) 40%, var(--jg-2aa152, #2AA152) 100%);
    box-shadow: 0 0 14px rgba(var(--jg-rgb-7dd69a, 125,214,154), .8);
}
.bl__barra-rotulo {
    position: absolute;
    left: 6%; width: 23%; top: 12.5%;
    text-align: center;
    font: 700 8.5px/1.25 Arial, sans-serif;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: rgba(var(--jg-rgb-cff3da, 207,243,218), .8);
    z-index: 3;
}
/* Prêmio: a barra explode em luz verde. */
.bl--explodiu .bl__nivel { height: 100% !important; background: var(--jg-cff3da, #CFF3DA); box-shadow: 0 0 30px var(--jg-7dd69a, #7DD69A), 0 0 60px var(--jg-2aa152, #2AA152); }
.bl--explodiu .bl__barra { border-color: #FFD86B; }
.bl__luz {
    position: absolute; inset: 0;
    background: radial-gradient(circle at 17% 55%, rgba(var(--jg-rgb-7dd69a, 125,214,154), .95), rgba(var(--jg-rgb-7dd69a, 125,214,154), 0) 55%);
    opacity: 0;
    z-index: 6; pointer-events: none;
}
.bl--explodiu .bl__luz { animation: bl-luz 1s ease-out forwards; }
@keyframes bl-luz { 0% { opacity: 1; } 100% { opacity: 0; } }
/* Esgotou: a barra esvazia (classe estática). */
.bl--esgotou .bl__nivel { height: 4% !important; background: #5E6B62; box-shadow: none; }

/* ---------------- o cronômetro ---------------- */

.bl__cronometro {
    position: absolute;
    left: 50%; top: 50%;
    transform: translate(-50%, -50%);
    width: 40%; aspect-ratio: 1.2;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    border-radius: 14px;
    background: rgba(var(--jg-rgb-041a10, 4,26,16), .9);
    border: 2px solid rgba(var(--jg-rgb-7dd69a, 125,214,154), .45);
    box-shadow: 0 0 20px rgba(0, 0, 0, .5), inset 0 0 20px rgba(var(--jg-rgb-7dd69a, 125,214,154), .1);
    z-index: 4;
}
.bl__digito {
    font: 800 clamp(44px, 14vw, 78px)/1 'Consolas', 'Courier New', monospace;
    color: #FFE98A;
    text-shadow: 0 0 12px rgba(255, 233, 138, .9);
    letter-spacing: .02em;
}
.bl__cron-rotulo {
    margin-top: 4px;
    font: 700 9px/1 Arial, sans-serif;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: rgba(var(--jg-rgb-cff3da, 207,243,218), .7);
}
.bl--contando .bl__digito { animation: bl-bate .5s ease-in-out infinite; }
@keyframes bl-bate { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.08); } }
/* Fase A: congelado, validando. */
.bl--congelado .bl__digito { animation: none; color: var(--jg-cff3da, #CFF3DA); }
.bl--congelado .bl__cronometro { animation: bl-valida .6s ease-in-out infinite alternate; }
@keyframes bl-valida { from { border-color: rgba(var(--jg-rgb-7dd69a, 125,214,154), .45); } to { border-color: #FFD86B; } }
/* Desfechos (classes estáticas). */
.bl--explodiu .bl__cronometro { border-color: var(--jg-7dd69a, #7DD69A); animation: none; }
.bl--explodiu .bl__digito { color: var(--jg-7dd69a, #7DD69A); text-shadow: 0 0 16px var(--jg-7dd69a, #7DD69A); animation: none; }
.bl--curto .bl__cronometro { border-color: #C0392B; animation: none; background: rgba(40, 8, 8, .9); }
.bl--curto .bl__digito { color: #FF6B5B; text-shadow: 0 0 10px rgba(255, 107, 91, .8); animation: none; }
.bl--esgotou .bl__cronometro { border-color: rgba(154, 163, 156, .5); animation: none; }
.bl--esgotou .bl__digito { color: #9AA39C; text-shadow: none; animation: none; }

/* ---------------- confetes (prêmio) ---------------- */

.bl__confetes { position: absolute; inset: 0; z-index: 7; pointer-events: none; overflow: hidden; }
.bl__confete {
    position: absolute;
    top: -6%;
    width: 8px; height: 12px;
    border-radius: 2px;
    opacity: 0;
}
.bl--explodiu .bl__confete { animation: bl-confete 1.6s cubic-bezier(.3, .2, .6, 1) forwards; }
@keyframes bl-confete {
    0%   { transform: translateY(0) rotate(0); opacity: 1; }
    100% { transform: translateY(120vh) translateY(-60vh) rotate(var(--bl-giro)); opacity: .9; }
}
/* O texto piscando: termina VISÍVEL. */
.bl__pisca {
    position: absolute;
    left: 50%; top: 16%;
    transform: translateX(-50%);
    font: 900 clamp(13px, 4vw, 19px)/1 Arial, sans-serif;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: #FFE98A;
    text-shadow: 0 0 10px rgba(255, 216, 107, .9);
    white-space: nowrap;
    opacity: 0;
    z-index: 8;
}
.bl--explodiu .bl__pisca { animation: bl-pisca 1.2s steps(1) forwards; }
@keyframes bl-pisca {
    0%, 20%, 40%, 60% { opacity: 0; }
    10%, 30%, 50%, 70%, 100% { opacity: 1; }
}

/* ---------------- curto-circuito (sem prêmio) ---------------- */

.bl__rachadura {
    position: absolute; inset: 0;
    opacity: 0;
    z-index: 6; pointer-events: none;
}
.bl__rachadura svg { width: 100%; height: 100%; display: block; }
.bl__rachadura path { fill: none; stroke: #FF6B5B; stroke-width: 2; stroke-linejoin: round;
                      filter: drop-shadow(0 0 4px rgba(255, 107, 91, .9)); }
.bl--curto .bl__rachadura { animation: bl-racha .5s steps(3) forwards; }
@keyframes bl-racha { 0% { opacity: 0; } 100% { opacity: 1; } }
.bl__curto-luz {
    position: absolute; inset: 0;
    background: rgba(192, 57, 43, .35);
    opacity: 0;
    z-index: 5; pointer-events: none;
}
.bl--curto .bl__curto-luz { animation: bl-curto-luz .9s steps(1) forwards; }
@keyframes bl-curto-luz {
    0%, 20%, 40%, 60% { opacity: 1; }
    10%, 30%, 50%, 70%, 100% { opacity: 0; }
}
.bl--curto.bl__palco { filter: saturate(.6); }
.bl--curto .bl__nivel { background: #7A2E26; box-shadow: none; }

/* ---------------- placa do prêmio ---------------- */

.bl__placa {
    position: absolute;
    left: 50%; bottom: 6%;
    width: 52%;
    transform: translate(-50%, 16px);
    opacity: 0;
    display: flex; align-items: center; gap: 8px;
    padding: 7px 9px;
    box-sizing: border-box;
    border-radius: 8px;
    background: linear-gradient(180deg, #FFF8DC, #F5E3A1);
    border: 1.5px solid #C9A227;
    box-shadow: 0 8px 16px -8px rgba(0, 0, 0, .7);
    z-index: 9;
}
.bl__placa img { width: 44px; height: 44px; object-fit: cover; border-radius: 6px; flex: none; }
.bl__placa div { font: 700 clamp(10px, 2.6vw, 12px)/1.25 Arial, sans-serif; color: var(--jg-14532d, #14532d); min-width: 0; }
.bl__placa small { display: block; font: 700 9px/1.2 Arial, sans-serif; letter-spacing: .08em; color: #8A6D1F; margin-bottom: 2px; }
.bl--placa .bl__placa { animation: bl-placa .5s cubic-bezier(.3, 1.3, .5, 1) forwards; }
@keyframes bl-placa { to { transform: translate(-50%, 0); opacity: 1; } }

/* ---------------- o botão gigante e a mensagem ---------------- */

.bl__botao {
    display: block;
    width: 100%;
    max-width: 480px;
    margin: 10px auto 0;
    padding: 18px 10px;
    border: 3px solid #FFD86B;
    border-radius: 12px;
    background: linear-gradient(180deg, var(--jg-2aa152, #2AA152), var(--jg-0a7a00, #0A7A00));
    color: #fff;
    font: 900 clamp(17px, 5vw, 22px)/1.1 Arial, sans-serif;
    letter-spacing: .06em;
    text-transform: uppercase;
    cursor: pointer;
    box-shadow: 0 8px 18px -6px rgba(var(--jg-rgb-0a7a00, 10,122,0), .9), inset 0 1px 0 rgba(255, 255, 255, .25);
}
.bl__botao--urgente { animation: bl-urgente .5s ease-in-out infinite alternate; }
@keyframes bl-urgente {
    from { box-shadow: 0 8px 18px -6px rgba(var(--jg-rgb-0a7a00, 10,122,0), .9), 0 0 0 0 rgba(255, 216, 107, .6); }
    to   { box-shadow: 0 8px 18px -6px rgba(var(--jg-rgb-0a7a00, 10,122,0), .9), 0 0 0 8px rgba(255, 216, 107, 0); transform: scale(1.02); }
}
.bl__botao--nova { border-color: rgba(var(--jg-rgb-7dd69a, 125,214,154), .6); background: linear-gradient(180deg, #46564c, #2E3B33); animation: none; }
.bl__botao:hover:not(:disabled) { filter: brightness(1.06); }
.bl__botao:disabled { opacity: .55; cursor: default; animation: none; }

.bl__msg {
    max-width: 480px;
    min-height: 56px;
    margin: 10px auto 0;
    padding: 8px 12px;
    box-sizing: border-box;
    display: flex; align-items: center; justify-content: center;
    border-radius: 9px;
    text-align: center;
    font: 700 clamp(11px, 3vw, 14px)/1.35 Arial, sans-serif;
    color: #46564c;
    background: var(--jg-eef4ef, #EEF4EF);
    border: 1px solid var(--jg-dce6de, #DCE6DE);
}
.bl__msg--premiado { background: var(--jg-e3f5e6, #E3F5E6); border-color: var(--jg-9fd8ab, #9FD8AB); color: var(--jg-14532d, #14532d); }
.bl__msg--consolo  { background: #F7E9E7; border-color: #E5B9B3; color: #6B2E27; }
.bl__msg--esgotou  { background: #F1F3F1; border-color: #CDD5CE; color: #4F5A52; }
.bl__msg b { color: var(--jg-0a7a00, #0A7A00); }
.bl__msg--consolo b { color: #8A3A30; }

/* ---------------- vitrine ---------------- */

.bl__premios {
    display: flex; flex-wrap: wrap; justify-content: center; gap: 10px;
    margin: 14px auto 0; max-width: 640px;
}
.bl__titulo {
    width: 100%; text-align: center;
    font: 700 13px/1.3 Arial, sans-serif; color: var(--jg-14532d, #14532d); margin-bottom: 2px;
}
.bl__premio { width: 74px; text-align: center; font: 600 10px/1.2 Arial, sans-serif; color: #46564c; }
.bl__premio img { width: 100%; border-radius: 6px; display: block; margin-bottom: 3px; }

/* Movimento reduzido: cada coisa para num estado VISÍVEL. É também o que as
   capturas do headless mostram. */
@media (prefers-reduced-motion: reduce) {
    .bl--contando .bl__alerta { animation: none; box-shadow: inset 0 0 0 4px rgba(255, 216, 107, .4); }
    .bl--contando .bl__digito, .bl--congelado .bl__cronometro, .bl__botao--urgente { animation: none; }
    .bl--explodiu .bl__luz { animation: none; }
    .bl--explodiu .bl__confete { animation: none; opacity: .9; top: calc(10% + var(--bl-queda)); transform: rotate(var(--bl-giro)); }
    .bl--explodiu .bl__pisca { animation: none; opacity: 1; }
    .bl--curto .bl__rachadura { animation: none; opacity: 1; }
    .bl--curto .bl__curto-luz { animation: none; opacity: 0; }
    .bl--placa .bl__placa { animation: none; transform: translate(-50%, 0); opacity: 1; }
}
