@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@700;800;900&display=swap');

:root {
    --gold: #ffc107;
    --bg-dark: #1E0905;
}

* { margin: 0; padding: 0; box-sizing: border-box; -webkit-tap-highlight-color: transparent; }

.roleta-bgm {
    position: absolute;
    width: 0;
    height: 0;
    opacity: 0;
    pointer-events: none;
}

body {
    background: #000;
    display: flex;
    justify-content: center;
    font-family: 'Nunito', sans-serif;
    min-height: 100vh;
    min-height: 100dvh;
}

/* ── APP CONTAINER ─────────────────────────── */
.app-container {
    width: 100%;
    max-width: 480px;
    min-height: 100vh;
    min-height: 100dvh;
    position: relative;
    overflow: hidden;
    background: var(--bg-dark);
    box-shadow: 0 0 26px rgba(0,0,0,0.45);
}

/* ── SCREENS ───────────────────────────────── */
.screen {
    width: 100%;
    min-height: 100vh;
    min-height: 100dvh;
    position: absolute;
    top: 0; left: 0;
    display: none;
    flex-direction: column;
    overflow: hidden;
}
.screen.active { display: flex; }

/* ── TOP TIP BAR ────────────────────────────── */
.top-tip-bar {
    background: rgba(255, 193, 7, 0.15);
    color: #ffeb3b;
    padding: 7px 12px;
    text-align: center;
    font-size: 11px;
    line-height: 1.4;
    border-bottom: 1px solid rgba(255, 193, 7, 0.2);
    position: relative;
    z-index: 50;
}

/* ── REGRAS BUTTON ──────────────────────────── */
.btn-regras {
    position: absolute;
    top: 38px; right: 0;
    background: var(--gold);
    color: #1E0905;
    border: none;
    padding: 6px 14px 6px 18px;
    border-radius: 20px 0 0 20px;
    font-weight: 900;
    font-size: 13px;
    cursor: pointer;
    z-index: 60;
    font-family: 'Nunito', sans-serif;
    box-shadow: -3px 3px 10px rgba(0,0,0,0.4);
}

/* ── TELA 1: MAIN COM BACKGROUND ────────────── */
.turntable-main {
    width: 100%;
    flex: 1;
    background-image: url('assets/bgImage.webp');
    background-size: 100% auto;
    background-repeat: no-repeat;
    background-position: top center;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    padding-top: clamp(205px, 50vw, 240px);
    padding-bottom: 20px;
}

/* ── WHEEL STAGE: envolve o CircleTop + roleta ── */
.wheel-stage {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    position: relative;
}

/* ── WHEEL WRAP ─────────────────────────────── */
.wheel-wrap {
    width: 94%;
    max-width: 440px;
    position: relative;
    display: flex;
    justify-content: center;
    padding: 0;
    margin-top: -46px;
    overflow: visible;
}

/* Fundo da roleta contendo mascotes, aro e efeitos */
.wheel-bg-img {
    width: 100%;
    height: auto;
    display: block;
    z-index: 1;
}

/* Posicionador absoluto para sobrepor a roleta giratória exatamente sobre o aro do wheelBg.png */
.wheel-positioner {
    position: absolute;
    top: 61.5%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 81%; /* Disco preenche o interior do aro dourado sem cobrir a borda */
    aspect-ratio: 1/1;
    z-index: 2;
    display: flex;
    justify-content: center;
    align-items: center;
}

/* Ponteiro (CircleTop.png) */
.circle-deco-pointer {
    position: absolute;
    top: -12px; /* Rente à borda superior do aro */
    left: 50%;
    transform: translateX(-50%);
    width: 150px; /* Tamanho do ponteiro ajustado */
    height: auto;
    z-index: 10;
    pointer-events: none;
}

/* Disco giratório com prêmios */
.wheelCircle {
    width: 80%; /* Preenche o posicionador que já tem o tamanho do aro */
    height: 80%;
    top: 3%;
    left: 9%;
    background-size: 100% 100%;
    border-radius: 50%;
    position: absolute;
    z-index: 2;
    transform-origin: center center;
    transition: transform 5.2s cubic-bezier(0.17, 0.67, 0.12, 0.99);
}
.wheel-idle-spinning {
    animation: wheelIdleSpin 36s linear infinite;
    transition: none;
}
@keyframes wheelIdleSpin {
    to { transform: rotate(360deg); }
}

/* Fatia de prêmio (rotaciona o container, imagem fica no topo) */
.wheelOption {
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    width: 100%; height: 100%;
    transform: rotate(var(--rot));
}
.wheelOptionImage {
    position: absolute;
    top: 9.8%;
    left: 50%;
    transform: translateX(-50%);
    width: clamp(54px, 13.5vw, 68px);
    height: auto;
    filter: drop-shadow(0 2px 4px rgba(0,0,0,0.5));
}

/* Botão central com badge de contagem */
.start-btn-wrap {
    position: absolute;
    top: 47%; left: 50%;
    transform: translate(-50%, -50%);
    width: 86px; height: 96px;
    z-index: 10;
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
}
.start-btn-bg {
    position: absolute;
    top: 0; left: 0;
    width: 66px; height: 76px;
    left: 50%; top: 50%;
    transform: translate(-50%, -55%);
    background-size: 100% 100%;
    background-repeat: no-repeat;
    transition: transform 0.1s;
    animation: startBtnPulse 0.9s ease-in-out infinite;
    filter: drop-shadow(0 0 10px rgba(255, 37, 0, 0.65));
}
.start-btn-wrap:active .start-btn-bg {
    transform: translate(-50%, -55%) scale(0.93);
}
@keyframes startBtnPulse {
    0%, 100% {
        transform: translate(-50%, -55%) scale(1);
        filter: drop-shadow(0 0 9px rgba(255, 37, 0, 0.65));
    }
    50% {
        transform: translate(-50%, -55%) scale(1.14);
        filter: drop-shadow(0 0 24px rgba(255, 236, 120, 1));
    }
}

.spin-count-badge {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -66%);
    font-size: clamp(29px, 7vw, 36px);
    font-weight: 900;
    color: #fff;
    text-shadow: 0 3px 0 rgba(120,0,0,0.6), 0 4px 10px rgba(0,0,0,0.95);
    z-index: 12;
    line-height: 1;
    pointer-events: none;
}

.hand-pointer {
    position: absolute;
    bottom: -8px; right: -10px;
    width: 52px; height: 52px;
    background-size: 100% 100%;
    background-repeat: no-repeat;
    pointer-events: none;
    z-index: 15;
    animation: handBounce 0.52s ease-in-out infinite alternate;
}
@keyframes handBounce {
    0%   { transform: translate(0, 0) rotate(-5deg) scale(1); }
    100% { transform: translate(-10px, -10px) rotate(6deg) scale(1.04); }
}

/* ── GAME TIP ───────────────────────────────── */
.game-tip {
    text-align: center;
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    background: rgba(0, 0, 0, 0.6);
    display: inline-block;
    margin: 18px auto 0;
    padding: 9px 28px;
    border-radius: 24px;
    border: 1px solid rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(4px);
}
.chances-num {
    color: var(--gold);
    font-size: 20px;
    font-weight: 900;
    margin: 0 4px;
}

/* ── TELA 2: PRÊMIO ─────────────────────────── */
.screen-prize {
    background: linear-gradient(160deg, #2c0f00 0%, #1E0905 60%, #0a0000 100%);
}
.prize-reveal-bg {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 60px 20px 40px;
    min-height: 100vh;
    min-height: 100dvh;
}
.prize-header { text-align: center; margin-bottom: 8px; }
.prize-congrats {
    font-size: 20px;
    font-weight: 900;
    color: #fff;
    animation: glowText 2s ease-in-out infinite alternate;
}
@keyframes glowText {
    0%   { text-shadow: 0 0 10px rgba(255,193,7,0.5); }
    100% { text-shadow: 0 0 30px rgba(255,193,7,1), 0 0 60px rgba(255,100,0,0.5); }
}
.prize-screen-title { margin: 4px 0 10px; }
.sorteio-css-title {
    font-size: 40px;
    font-weight: 900;
    color: #ffd700;
    text-shadow: 0 0 20px rgba(255,193,7,0.9), 2px 2px 0 #8B4513, -2px -2px 0 #8B4513;
    animation: glowText 2s ease-in-out infinite alternate;
}

/* Destaque dourado (2ª rodada — voucher Kwai), mesmo estilo do ✦ Sorteio ✦ */
.prize-kwai-gold-hero {
    width: 100%;
    max-width: 100%;
    text-align: center;
    font-size: clamp(22px, 5.4vw, 30px);
    line-height: 1.2;
    padding: 0 14px;
    margin: 0 auto 6px;
    letter-spacing: 0.02em;
}
.screen-prize--kwai-voucher .prize-header {
    margin-top: 6px;
}
.screen-prize--kwai-voucher .prize-congrats {
    font-size: 20px;
    font-weight: 800;
    line-height: 1.4;
    max-width: 340px;
    margin: 0 auto;
    color: rgba(255, 255, 255, 0.95);
}

.prize-showcase { margin: 16px auto; }
.prize-glow-ring {
    width: 200px; height: 200px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(255,193,7,0.3) 0%, transparent 70%);
    display: flex; align-items: center; justify-content: center;
    animation: pulseGlow 1.5s ease-in-out infinite alternate;
}
@keyframes pulseGlow {
    0%   { box-shadow: 0 0 30px rgba(255,193,7,0.4); }
    100% { box-shadow: 0 0 70px rgba(255,140,0,0.9), 0 0 120px rgba(255,193,7,0.3); }
}
.won-prize-big {
    max-width: 160px; max-height: 160px;
    object-fit: contain;
    animation: floatPrize 2s ease-in-out infinite;
    filter: drop-shadow(0 8px 20px rgba(255,140,0,0.6));
}

/* Prêmio dinheiro na tela de receber: largura total do app (sem círculo minúsculo) */
.prize-showcase--money {
    width: 100%;
    max-width: 100%;
    margin: 8px 0 18px;
    padding: 0 6px;
}
.prize-glow-ring--money {
    width: 100%;
    max-width: 100%;
    height: auto;
    min-height: 0;
    border-radius: 14px;
    padding: 10px 4px 18px;
    background: radial-gradient(ellipse at 50% 35%, rgba(255, 193, 7, 0.18), transparent 65%);
}
.won-prize-big.won-prize--money {
    width: 100%;
    max-width: 100%;
    max-height: min(46vh, 400px);
    object-fit: contain;
    animation: floatPrize 2.2s ease-in-out infinite;
}
@keyframes floatPrize {
    0%,100% { transform: translateY(0) scale(1); }
    50%      { transform: translateY(-12px) scale(1.04); }
}

/* Mini wheel */
.mini-wheel-wrap {
    width: 180px; height: 180px;
    position: relative;
    display: flex; justify-content: center; align-items: center;
    margin: 8px auto;
}
.mini-wheel-bg {
    position: absolute; top: 0; left: 0;
    width: 100%; height: 100%;
    background-size: 100% 100%;
    border-radius: 50%;
}
.mini-wheelCircle {
    width: 155px; height: 155px;
    background-size: 100% 100%;
    border-radius: 50%;
    position: absolute;
    animation: slowSpin 12s linear infinite;
}
@keyframes slowSpin { to { transform: rotate(360deg); } }
.mini-start-badge {
    position: absolute;
    top: 50%; left: 50%;
    transform: translate(-50%, -50%);
    width: 60px; height: 68px;
    display: flex; justify-content: center; align-items: center;
    z-index: 10;
}
.mini-btn-bg {
    position: absolute; top: 0; left: 0;
    width: 100%; height: 100%;
    background-size: 100% 100%; background-repeat: no-repeat;
}
.mini-spin-count {
    position: relative; z-index: 12;
    font-size: 20px; font-weight: 900; color: #fff;
    text-shadow: 0 2px 5px rgba(0,0,0,0.9);
    margin-top: -8px;
}
.mini-hand {
    position: absolute; bottom: -6px; right: -8px;
    width: 36px; height: 36px;
    background-size: 100% 100%; background-repeat: no-repeat;
    animation: handBounce 0.9s ease-in-out infinite alternate;
    pointer-events: none;
}

/* Botões */
.btn-resgatar {
    width: 80%; max-width: 300px;
    padding: 16px 24px;
    background: linear-gradient(135deg, #ff9800, #e53935);
    color: #fff; border: none;
    border-radius: 32px;
    font-size: 17px; font-weight: 900;
    font-family: 'Nunito', sans-serif;
    cursor: pointer;
    margin-top: 12px;
}
.btn-keep-playing {
    background: transparent;
    border: 1px solid rgba(255,255,255,0.3);
    color: rgba(255,255,255,0.7);
    padding: 10px 24px;
    border-radius: 24px;
    font-size: 14px; font-weight: 700;
    font-family: 'Nunito', sans-serif;
    cursor: pointer;
    margin-top: 10px;
}
.pulse-btn { animation: pulseShadow 1.8s infinite; }
@keyframes pulseShadow {
    0%,100% { box-shadow: 0 6px 20px rgba(229,57,53,0.5); }
    50%      { box-shadow: 0 6px 40px rgba(229,57,53,0.9), 0 0 60px rgba(255,152,0,0.4); }
}

/* 3ª rodada — CTA grande sem emoji */
.btn-resgatar--large {
    width: 92%;
    max-width: 380px;
    padding: 22px 28px;
    font-size: clamp(20px, 5.5vw, 26px);
    border-radius: 40px;
    letter-spacing: 0.02em;
}
.screen-prize--phone-offer .prize-kwai-gold-hero {
    font-size: clamp(20px, 5.2vw, 28px);
    line-height: 1.25;
    padding: 0 12px 8px;
}
.screen-prize--phone-offer .prize-congrats {
    font-size: 20px;
    font-weight: 700;
}

/* ── TELA 3: SURPRESA + OVOS ───────────────── */
.screen-eggs { background: linear-gradient(160deg, #2c1500 0%, #1E0905 100%); position: relative; }
.eggs-bg {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    padding: 44px 0 32px;
    min-height: 100vh;
    min-height: 100dvh;
    position: relative;
}

/* Faixa do hero — fundo transparente para PNG com alpha */
.egg-hero-strip {
    width: 100%;
    margin: 0 0 14px;
    padding: 8px 12px 0;
    background: transparent;
    text-align: center;
}

.egg-hero-title {
    font-size: clamp(30px, 5.5vw, 34px);
    margin: 0 auto 12px;
    margin-bottom: 15px;
    padding: 0 10px;
    line-height: 1.15;
}

.egg-hero-subtitle {
    margin: 30px auto 0;
    padding: 0 10px;
    font-family: 'Nunito', sans-serif;
    font-size: clamp(25px, 5vw, 28px);
    font-weight: 900;
    color: #f1ea34;
    text-shadow:
        0 0 18px rgba(255, 193, 7, 0.95),
        0 0 36px rgba(255, 152, 0, 0.55),
        2px 2px 0 #8b4513;
    animation: glowText 2s ease-in-out infinite alternate;
    letter-spacing: 0.03em;
}

/* Moldura dourada pulsante (2ª e 3ª rodada) */
.egg-hero-frame {
    display: inline-block;
    position: relative;
    max-width: min(100%, 360px);
    margin: 0 auto;
    padding: 6px;
    border-radius: 20px;
    background: transparent;
    border: 3px solid #a99b1a;
    animation: pulseGlow 1s ease-in-out infinite alternate;
}
.egg-hero-frame--phone {
    border-radius: 32px;
    padding: 8px;
}

@keyframes eggHeroGlowPulse {
    0% {
        border-color: #fff176;
        box-shadow:
            0 0 12px rgba(255, 235, 59, 0.5),
            0 0 24px rgba(255, 193, 7, 0.35),
            inset 0 0 12px rgba(255, 193, 7, 0.08);
    }
    100% {
        border-color: #ff9800;
        box-shadow:
            0 0 0 2px rgba(255, 215, 0, 0.9),
            0 0 28px rgba(255, 215, 0, 1),
            0 0 52px rgba(255, 152, 0, 0.9),
            0 0 72px rgba(255, 193, 7, 0.5),
            inset 0 0 20px rgba(255, 193, 7, 0.15);
    }
}

/* Hero PNG — sem fundo preto forçado + flutuação leve */
.egg-game-hero {
    display: block;
    position: relative;
    z-index: 1;
    width: 80%;
    height: 80%;
    max-width: 100%;
    max-height: min(50vh, 400px);
    min-height: 120px;
    height: auto;
    margin: 0 auto;
    object-fit: contain;
    object-position: center center;
    background: transparent;
    border-radius: 16px;
    filter: drop-shadow(0 8px 20px rgba(0, 0, 0, 0.35));
    animation: eggHeroFloat 3.2s ease-in-out infinite;
}
@keyframes eggHeroFloat {
    0%, 100% { transform: translateY(0); }
    50%      { transform: translateY(-6px); }
}
.egg-hero-frame--phone .egg-game-hero {
    border-radius: 28px;
}

.eggs-main {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0 16px;
    box-sizing: border-box;
}

/* Intro caixa surpresa */
.surprise-intro {
    position: absolute;
    inset: 0;
    z-index: 120;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    background: radial-gradient(ellipse at 50% 30%, rgba(255, 193, 7, 0.18), transparent 55%),
        linear-gradient(160deg, #2c1500 0%, #1E0905 100%);
    opacity: 1;
    visibility: visible;
    transition: opacity 0.45s ease, visibility 0.45s ease;
}
.surprise-intro.hide-intro {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}
.surprise-intro-inner {
    text-align: center;
    max-width: 320px;
    animation: surpriseInnerIn 0.7s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}
@keyframes surpriseInnerIn {
    from { transform: scale(0.85); opacity: 0; }
    to   { transform: scale(1); opacity: 1; }
}
.surprise-intro-tag {
    font-size: 13px;
    font-weight: 800;
    color: rgba(255, 235, 150, 0.95);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    margin-bottom: 14px;
}
.surprise-box-visual {
    position: relative;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    margin: 8px auto 16px;
    animation: surpriseBoxPulse 2.2s ease-in-out infinite;
}
@keyframes surpriseBoxPulse {
    0%, 100% { transform: translateY(0) scale(1) rotate(-2deg); }
    50%      { transform: translateY(-10px) scale(1.06) rotate(2deg); }
}
.surprise-box-img {
    width: 140px;
    height: auto;
    filter: drop-shadow(0 12px 28px rgba(255, 193, 7, 0.55));
    animation: surpriseBoxGlow 1.8s ease-in-out infinite alternate;
}
@keyframes surpriseBoxGlow {
    from { filter: drop-shadow(0 8px 20px rgba(255,193,7,0.4)); }
    to   { filter: drop-shadow(0 16px 40px rgba(255,152,0,0.95)); }
}
.surprise-spark {
    position: absolute;
    font-size: 22px;
    pointer-events: none;
    animation: sparkleFloat 1.6s ease-in-out infinite;
}
.sparkle-a { top: -4px; right: -12px; animation-delay: 0s; }
.sparkle-b { bottom: 8px; left: -18px; animation-delay: 0.35s; }
.sparkle-c { top: 40%; right: -24px; font-size: 18px; animation-delay: 0.65s; }
@keyframes sparkleFloat {
    0%, 100% { opacity: 0.5; transform: scale(0.9) rotate(0deg); }
    50%      { opacity: 1; transform: scale(1.15) rotate(25deg); }
}
.surprise-intro-text {
    color: rgba(255,255,255,0.88);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.45;
    margin-bottom: 18px;
}
.btn-abrir-surpresa {
    width: 100%;
    max-width: 280px;
    padding: 14px 20px;
    border: none;
    border-radius: 28px;
    font-family: 'Nunito', sans-serif;
    font-size: 16px;
    font-weight: 900;
    color: #1E0905;
    background: linear-gradient(135deg, #ffe082 0%, #ffb300 45%, #ff8f00 100%);
    cursor: pointer;
    box-shadow: 0 8px 24px rgba(255, 152, 0, 0.45);
}
.btn-abrir-surpresa:active {
    transform: scale(0.97);
}

.eggs-main.hidden-until-intro {
    opacity: 0;
    pointer-events: none;
    max-height: 0;
    overflow: hidden;
    margin: 0;
    padding: 0;
}
.eggs-main.show-eggs {
    opacity: 1;
    pointer-events: auto;
    max-height: none;
    overflow: visible;
    animation: eggsReveal 0.55s ease-out forwards;
}
@keyframes eggsReveal {
    from { opacity: 0; transform: translateY(14px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Trilho do martelo: percorre os 3 ovos (mais baixo e à direita, rente aos ovos) */
.hammer-track {
    position: relative;
    width: 100%;
    max-width: 400px;
    height: 42px;
    margin: 0 auto -26px;
    pointer-events: none;
}
.hammer-mover {
    position: absolute;
    bottom: -38px;
    left: 28%;
    width: 82px;
    transform: translateX(-50%) translateY(0);
    z-index: 5;
    transition: left 0.55s cubic-bezier(0.22, 1, 0.36, 1);
}
.hammer-sweeping .hammer-mover {
    animation: hammerVisitEggs 6.6s cubic-bezier(0.45, 0, 0.25, 1) infinite;
}
@keyframes hammerVisitEggs {
    0%, 23%    { left: 28%; }
    33%, 56%   { left: 58%; }
    66%, 89%   { left: 90%; }
    100%       { left: 28%; }
}
.hammer-img {
    width: 72px;
    height: auto;
    display: block;
    transform-origin: 82% 90%;
    filter: drop-shadow(0 6px 12px rgba(0,0,0,0.55));
}
.hammer-sweeping .hammer-img {
    animation: hammerPreviewStrike 6.6s ease-in-out infinite;
}
@keyframes hammerPreviewStrike {
    0%, 7%     { transform: rotate(-22deg) translateY(2px); }
    11%        { transform: rotate(14deg) translateY(14px); }
    16%, 23%   { transform: rotate(-20deg) translateY(4px); }
    33%, 40%   { transform: rotate(-22deg) translateY(2px); }
    44%        { transform: rotate(14deg) translateY(14px); }
    49%, 56%   { transform: rotate(-20deg) translateY(4px); }
    66%, 73%   { transform: rotate(-22deg) translateY(2px); }
    77%        { transform: rotate(14deg) translateY(14px); }
    82%, 100%  { transform: rotate(-20deg) translateY(4px); }
}
.hammer-tap-img {
    animation: hammerStrike 0.62s cubic-bezier(0.22, 1, 0.36, 1) forwards !important;
}
@keyframes hammerStrike {
    0%   { transform: rotate(-30deg) translateY(-6px); }
    45%  { transform: rotate(26deg) translateY(18px) scale(1.05); }
    70%  { transform: rotate(-12deg) translateY(0); }
    100% { transform: rotate(-24deg) translateY(-4px); }
}

.prize-box-mini .prizes-on-table { min-height: 90px; }
.surprise-thumb { max-height: 100px !important; }

/* ── TELA 3: OVOS (resto) ───────────────────── */
.eggs-congrats {
    font-size: 19px; font-weight: 900; color: #fff;
    text-align: center;
    animation: glowText 2s ease-in-out infinite alternate;
}
.prize-box-showcase {
    width: 90%; max-width: 320px;
    margin: 10px auto; text-align: center;
}
.prizes-on-table { min-height: 120px; display: flex; justify-content: center; align-items: center; }
.prize-on-table-img {
    max-height: 130px;
    filter: drop-shadow(0 0 20px rgba(255,193,7,0.8));
    animation: floatPrize 2s ease-in-out infinite;
}
.prize-box-label {
    font-size: 18px; font-weight: 900;
    color: var(--gold);
    text-shadow: 0 0 15px rgba(255,193,7,0.7);
    margin: 6px 0;
}
.prize-box-base {
    width: 100%; height: 100px;
    background-size: 100% 100%;
    border-radius: 50%; opacity: 0.5;
}
.eggs-row {
    display: flex;
    gap: clamp(8px, 2.8vw, 18px);
    justify-content: center;
    align-items: flex-end;
    margin: clamp(36px, 11vh, 88px) 0 24px;
    width: 100%;
    max-width: 400px;
    padding: 0 6px;
}
.egg-slot { display: flex; flex-direction: column; align-items: center; gap: 4px; flex: 0 0 auto; }
.golden-egg {
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 72px;
}
.golden-egg .egg-img {
    width: clamp(76px, 23vw, 108px);
    height: auto;
    object-fit: contain;
    display: block;
    filter: drop-shadow(0 4px 10px rgba(0,0,0,0.35));
}
.golden-egg-center .egg-img { width: clamp(84px, 25vw, 118px); }

/* Imagem da recompensa ao quebrar o ovo (ícone, não esticar ao 100% do ovo) */
.golden-egg .egg-reveal-prize-img {
    width: 92%;
    max-width: 120px;
    max-height: 100px;
    height: auto;
    object-fit: contain;
    display: block;
    margin: 0 auto;
    filter: drop-shadow(0 4px 14px rgba(255, 193, 7, 0.65));
}

/* Ovo aberto sem prêmio */
.golden-egg--empty {
    cursor: default;
}
.egg-reveal-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    min-height: 72px;
    animation: eggEmptyIn 0.45s ease-out forwards;
}
.egg-reveal-empty .egg-img--shell {
    width: clamp(64px, 20vw, 92px);
    opacity: 0.35;
    filter: grayscale(0.85) brightness(0.75);
    transform: scale(0.88) rotate(-12deg);
}
.golden-egg-center .egg-reveal-empty .egg-img--shell {
    width: clamp(72px, 22vw, 100px);
}
.egg-empty-label {
    font-family: 'Nunito', sans-serif;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.45);
}
@keyframes eggEmptyIn {
    from { opacity: 0; transform: scale(0.85); }
    to   { opacity: 1; transform: scale(1); }
}

/* Salto leve quando o martelo passa em cima (sincronizado com hammerVisitEggs 6.6s) */
.hammer-track.hammer-sweeping + .eggs-row .egg-slot:nth-child(1) .egg-img {
    animation: eggHopSync1 6.6s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}
.hammer-track.hammer-sweeping + .eggs-row .egg-slot:nth-child(2) .egg-img {
    animation: eggHopSync2 6.6s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}
.hammer-track.hammer-sweeping + .eggs-row .egg-slot:nth-child(3) .egg-img {
    animation: eggHopSync3 6.6s cubic-bezier(0.4, 0, 0.2, 1) infinite;
}
@keyframes eggHopSync1 {
    0%, 7%   { transform: translateY(0); }
    11%      { transform: translateY(-7px); }
    15%, 100% { transform: translateY(0); }
}
@keyframes eggHopSync2 {
    0%, 38%  { transform: translateY(0); }
    44%      { transform: translateY(-7px); }
    49%, 100% { transform: translateY(0); }
}
@keyframes eggHopSync3 {
    0%, 72%  { transform: translateY(0); }
    77%      { transform: translateY(-7px); }
    82%, 100% { transform: translateY(0); }
}
.golden-egg-center { font-size: 0; }
.golden-egg.egg-hit {
    animation: eggCrackShake 0.38s ease-out;
}
@keyframes eggCrackShake {
    0%   { transform: rotate(-5deg) scale(1); }
    25%  { transform: rotate(8deg) scale(1.08); }
    50%  { transform: rotate(-10deg) scale(0.95); }
    75%  { transform: rotate(6deg) scale(1.12); }
    100% { transform: rotate(0deg) scale(1); }
}

/* Ajuste leve só em telas estreitas (sem mudar o funil) */
@media (max-width: 699px) {
    .turntable-main {
        padding-top: clamp(188px, 48vw, 228px);
    }

    .wheel-wrap {
        width: 92%;
        margin-top: -40px;
    }
}

@media (min-width: 700px) {
    body {
        align-items: flex-start;
        background:
            radial-gradient(circle at 50% 0%, rgba(255,193,7,0.16), transparent 34%),
            #050301;
    }

    .app-container {
        width: min(100vw, 430px);
        max-width: 430px;
    }

    .top-tip-bar {
        font-size: 10px;
        padding: 6px 12px;
    }

    .btn-regras {
        top: 34px;
    }

    .turntable-main {
        padding-top: clamp(196px, 47vw, 218px);
        background-size: 100% auto;
    }

    .wheel-wrap {
        width: 90%;
        max-width: 398px;
        margin-top: -36px;
    }

    .wheelOptionImage {
        width: 64px;
        top: 9%;
    }

    .game-tip {
        margin-top: 12px;
    }

    .eggs-bg,
    .prize-reveal-bg {
        padding-top: 44px;
    }

    .egg-game-hero {
        max-height: min(54vh, 520px);
        width: 100%;
        max-width: 100%;
    }

    .eggs-row {
        margin-top: clamp(40px, 12vh, 96px);
    }
}

@media (max-height: 780px) and (min-width: 700px) {
    .turntable-main {
        padding-top: 176px;
    }

    .wheel-wrap {
        width: 84%;
        max-width: 362px;
        margin-top: -26px;
    }

    .game-tip {
        margin-top: 8px;
        padding: 7px 22px;
    }
}
.egg-pedestal {
    width: clamp(68px, 22vw, 88px);
    height: 16px;
    background: radial-gradient(ellipse, #c8a030 0%, #7a5c00 100%);
    border-radius: 50%;
    box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.pedestal-center {
    width: clamp(76px, 24vw, 96px);
    height: 18px;
}

/* ── CONFETTI ───────────────────────────────── */
.confetti-container {
    position: absolute; top: 0; left: 0;
    width: 100%; height: 100%;
    pointer-events: none; overflow: hidden; z-index: 99;
}
.confetti-piece {
    position: absolute; width: 10px; height: 10px;
    border-radius: 2px;
    animation: confettiFall linear forwards;
}
@keyframes confettiFall {
    0%   { transform: translateY(-20px) rotate(0deg); opacity: 1; }
    100% { transform: translateY(110vh) rotate(720deg); opacity: 0; }
}

/* ── MODAIS ─────────────────────────────────── */
.modal-overlay {
    position: fixed;
    top: 0; left: 0; right: 0; bottom: 0;
    background: rgba(0,0,0,0.85);
    display: flex; justify-content: center; align-items: center;
    z-index: 200;
    opacity: 0; visibility: hidden;
    transition: all 0.3s ease;
    backdrop-filter: blur(4px);
}
.modal-overlay.active { opacity: 1; visibility: visible; }
.modal-content {
    background: linear-gradient(135deg, #fff 0%, #f5f5f5 100%);
    color: #333; width: 85%; max-width: 340px;
    border-radius: 24px; padding: 32px 24px;
    text-align: center;
    transform: translateY(30px) scale(0.95);
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    box-shadow: 0 20px 50px rgba(0,0,0,0.6);
}
.modal-overlay.active .modal-content { transform: translateY(0) scale(1); }
.modal-content h2 { color: #e53935; margin-bottom: 16px; font-size: 20px; }
.rules-list { text-align: left; margin-bottom: 20px; }
.rules-list p { margin-bottom: 10px; font-size: 13px; color: #555; line-height: 1.5; }
.close-modal-btn, .claim-btn {
    padding: 13px 20px; border: none;
    border-radius: 30px; font-weight: 900; font-size: 15px;
    cursor: pointer; width: 100%; margin-top: 10px;
    font-family: 'Nunito', sans-serif;
}
.close-modal-btn { background: #f0f0f0; color: #666; }
.claim-btn {
    background: linear-gradient(90deg, #ff9800, #ff5252);
    color: #fff; box-shadow: 0 4px 15px rgba(255,82,82,0.4);
}
