/* Linha do tempo — a linha do tempo do rendimento.
 *
 * Um relógio futurista com quatro marcas de prazo (30, 180, 360 e 720 dias).
 * A pessoa toca em "Iniciar a contagem" e o feixe começa a girar. Só depois da
 * resposta do servidor ele dispara até 720 dias e a tela explode em luz
 * (prêmio) ou esvazia na marca de 30 dias e o relógio se desliga (consolo).
 *
 * O FEIXE PARA NA MARCA DE 30 DIAS NAS DUAS JOGADAS antes da resposta: essa é
 * a fase A. Se ele passasse de 30 quando há prêmio, a posição entregaria o
 * resultado antes da mensagem.
 *
 * O ponteiro, o arco e o contador são movidos pelo JS (setTimeout + relógio
 * real), não por animação CSS: assim o meio da jogada aparece nas capturas e a
 * animação não congela quando a aba vai para segundo plano. As animações CSS
 * daqui são só enfeite de desfecho (explosão, brilho), com forwards.
 */

.rd__palco {
    position: relative;
    width: 100%;
    max-width: 480px;
    margin: 0 auto;
    aspect-ratio: 16 / 10;
    border-radius: 14px;
    overflow: hidden;
    background:
        radial-gradient(circle at 50% 55%, rgba(var(--jg-rgb-2aa152, 42,161,82), .18), rgba(var(--jg-rgb-2aa152, 42,161,82), 0) 55%),
        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;
}
.rd__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;
}

/* Rótulo do produto. NÃO é nome de prêmio. */
.rd__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: 6;
}
.rd__rotulo img { width: 12px; height: 12px; }

/* ---------------- o relógio ---------------- */

/* Quadrado centrado, 74% da altura do palco. Tudo dentro é SVG (viewBox
   0 0 200 200, centro 100,100, raio do anel 78). */
.rd__relogio {
    position: absolute;
    left: 50%; top: 53%;
    height: 74%;
    aspect-ratio: 1;
    transform: translate(-50%, -50%);
    z-index: 3;
}
.rd__relogio svg { width: 100%; height: 100%; display: block; overflow: visible; }

.rd__fundo   { fill: rgba(var(--jg-rgb-041a10, 4,26,16), .85); stroke: rgba(var(--jg-rgb-7dd69a, 125,214,154), .35); stroke-width: 1; }
.rd__trilho  { fill: none; stroke: rgba(var(--jg-rgb-7dd69a, 125,214,154), .22); stroke-width: 10; }
/* O arco percorrido: o JS escreve stroke-dashoffset. Comprimento = 2*pi*78. */
.rd__arco    { fill: none; stroke: var(--jg-7dd69a, #7DD69A); stroke-width: 10; stroke-linecap: round;
               stroke-dasharray: 490.1; stroke-dashoffset: 490.1;
               filter: drop-shadow(0 0 4px rgba(var(--jg-rgb-7dd69a, 125,214,154), .8)); }
.rd__ponteiro { stroke: #FFE98A; stroke-width: 3; stroke-linecap: round;
                filter: drop-shadow(0 0 4px rgba(255, 233, 138, .9)); }
.rd__eixo    { fill: #FFE98A; }
/* disco central por cima da raiz do ponteiro: sem ele o ponteiro cruzava o
   contador e "30" lia como "31" */
.rd__miolo   { fill: rgba(var(--jg-rgb-041a10, 4,26,16), .96); stroke: rgba(var(--jg-rgb-7dd69a, 125,214,154), .35); stroke-width: 1; }
.rd__tique   { stroke: rgba(var(--jg-rgb-cff3da, 207,243,218), .55); stroke-width: 2; stroke-linecap: round; }
.rd__tique--passou { stroke: #FFD86B; filter: drop-shadow(0 0 4px rgba(255, 216, 107, .9)); }
.rd__prazo   { font: 700 9.5px Arial, sans-serif; fill: rgba(var(--jg-rgb-cff3da, 207,243,218), .75); text-anchor: middle; }
.rd__prazo--passou { fill: #FFD86B; }
.rd__dias    { font: 800 30px Arial, sans-serif; fill: #FFFFFF; text-anchor: middle; }
.rd__dias-rot { font: 700 9px Arial, sans-serif; fill: rgba(var(--jg-rgb-cff3da, 207,243,218), .7); text-anchor: middle; letter-spacing: .12em; }

/* Prêmio: o anel inteiro vira dourado e a luz explode. */
.rd--contemplado .rd__arco { stroke: #FFD86B; filter: drop-shadow(0 0 8px rgba(255, 216, 107, 1)); }
.rd--contemplado .rd__fundo { stroke: #FFD86B; }
.rd--contemplado .rd__miolo { stroke: #FFD86B; }
.rd--contemplado .rd__dias { fill: #FFE98A; }

/* As luzes de liquidez: raios que saem do centro. */
.rd__luzes { position: absolute; inset: 0; z-index: 4; pointer-events: none; }
.rd__raio {
    position: absolute;
    left: 50%; top: 53%;
    width: 3px; height: 0;
    margin-left: -1.5px;
    transform-origin: 50% 0;
    background: linear-gradient(180deg, rgba(255, 233, 138, 1), rgba(255, 216, 107, 0));
    opacity: 0;
}
.rd--contemplado .rd__raio { animation: rd-raio .8s ease-out forwards; }
@keyframes rd-raio {
    0%   { height: 0; opacity: 1; }
    100% { height: 70%; opacity: 0; }
}
.rd__clarao {
    position: absolute; inset: 0;
    background: radial-gradient(circle at 50% 53%, rgba(255, 233, 138, .9), rgba(255, 216, 107, 0) 60%);
    opacity: 0;
    z-index: 5; pointer-events: none;
}
.rd--contemplado .rd__clarao { animation: rd-clarao .9s ease-out forwards; }
@keyframes rd-clarao { 0% { opacity: 1; } 100% { opacity: 0; } }

/* Consolo: o relógio se desliga. Estado ESTÁTICO por classe (aparece em
   qualquer captura): tudo esmaece, o feixe some, o ponteiro cai para o cinza. */
.rd--desligado .rd__arco     { stroke: rgba(154, 163, 156, .35); filter: none; }
.rd--desligado .rd__ponteiro { stroke: #9AA39C; filter: none; }
.rd--desligado .rd__eixo     { fill: #9AA39C; }
.rd--desligado .rd__miolo    { fill: rgba(20, 26, 22, .96); stroke: rgba(154, 163, 156, .4); }
.rd--desligado .rd__fundo    { fill: rgba(20, 26, 22, .9); stroke: rgba(154, 163, 156, .4); }
.rd--desligado .rd__trilho   { stroke: rgba(154, 163, 156, .18); }
.rd--desligado .rd__tique, .rd--desligado .rd__tique--passou { stroke: #6E7871; filter: none; }
.rd--desligado .rd__prazo, .rd--desligado .rd__prazo--passou { fill: #8A948D; }
.rd--desligado .rd__dias     { fill: #9AA39C; }
.rd--desligado .rd__dias-rot { fill: #6E7871; }
.rd--desligado .rd__palco-luz { opacity: 0; }

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

.rd__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: 6;
}
.rd__placa img { width: 44px; height: 44px; object-fit: cover; border-radius: 6px; flex: none; }
.rd__placa div { font: 700 clamp(10px, 2.6vw, 12px)/1.25 Arial, sans-serif; color: var(--jg-14532d, #14532d); min-width: 0; }
.rd__placa small { display: block; font: 700 9px/1.2 Arial, sans-serif; letter-spacing: .08em; color: #8A6D1F; margin-bottom: 2px; }
.rd--placa .rd__placa { animation: rd-placa .5s cubic-bezier(.3, 1.3, .5, 1) forwards; }
@keyframes rd-placa { to { transform: translate(-50%, 0); opacity: 1; } }

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

.rd__botao {
    display: block;
    width: 100%;
    max-width: 480px;
    margin: 10px auto 0;
    padding: 12px 10px;
    border: 0;
    border-radius: 10px;
    background: linear-gradient(180deg, var(--jg-2aa152, #2AA152), var(--jg-0a7a00, #0A7A00));
    color: #fff;
    font: 700 15px/1.2 Arial, sans-serif;
    letter-spacing: .02em;
    cursor: pointer;
    box-shadow: 0 6px 14px -6px rgba(var(--jg-rgb-0a7a00, 10,122,0), .8), inset 0 1px 0 rgba(255, 255, 255, .25);
}
.rd__botao:hover:not(:disabled) { filter: brightness(1.06); }
.rd__botao:disabled { opacity: .55; cursor: default; }

/* Faixa com duas linhas reservadas; conteúdo sempre num <span>. */
.rd__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);
}
.rd__msg--premiado { background: var(--jg-e3f5e6, #E3F5E6); border-color: var(--jg-9fd8ab, #9FD8AB); color: var(--jg-14532d, #14532d); }
.rd__msg--consolo  { background: #F1F3F1; border-color: #CDD5CE; color: #4F5A52; }
.rd__msg b { color: var(--jg-0a7a00, #0A7A00); }
.rd__msg--consolo b { color: #5C6B60; }

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

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

/* Movimento reduzido: só os enfeites param — e param num estado visível. O
   ponteiro e o arco são do JS e não passam por aqui. */
@media (prefers-reduced-motion: reduce) {
    .rd--contemplado .rd__raio  { animation: none; height: 40%; opacity: .5; }
    .rd--contemplado .rd__clarao { animation: none; opacity: 0; }
    .rd--placa .rd__placa { animation: none; transform: translate(-50%, 0); opacity: 1; }
}
