/* ════════════════════════════════════════════════════════════════
   wheel — Lucky Wheel overlay styles (OBS browser source, transparent bg)
   ════════════════════════════════════════════════════════════════ */
* { box-sizing: border-box; margin: 0; padding: 0; }

html, body {
    background: transparent;
    font-family: 'Outfit', 'Segoe UI', system-ui, -apple-system, sans-serif;
    color: #fff;
    overflow: hidden;
}

.wheel-root {
    width: 100vw;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 14px;
    padding: 20px;
}

.wheel-title {
    font-size: 30px;
    font-weight: 900;
    letter-spacing: 0.01em;
    text-shadow: 0 2px 10px rgba(0, 0, 0, 0.7), 0 0 20px rgba(0, 0, 0, 0.4);
}
.wheel-title:empty { display: none; }

.wheel-stage {
    position: relative;
    width: 520px;
    height: 520px;
    max-width: 90vmin;
    max-height: 90vmin;
}

#wheel-canvas {
    width: 100%;
    height: 100%;
    filter: drop-shadow(0 14px 34px rgba(0, 0, 0, 0.55));
}

/* Fixed pointer at the top, pointing down into the wheel. */
.wheel-pointer {
    position: absolute;
    top: -6px;
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-left: 18px solid transparent;
    border-right: 18px solid transparent;
    border-top: 30px solid #ffffff;
    filter: drop-shadow(0 3px 4px rgba(0, 0, 0, 0.6));
    z-index: 3;
}

/* Winner banner (revealed after the spin settles). */
.wheel-winner {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 26px;
    border-radius: 18px;
    background: linear-gradient(135deg, rgba(245, 158, 11, 0.9), rgba(217, 119, 6, 0.9));
    box-shadow: 0 12px 40px rgba(245, 158, 11, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.3);
    animation: wheel-pop 0.4s cubic-bezier(0.22, 1.4, 0.36, 1);
}
.wheel-winner-crown { font-size: 30px; }
.wheel-winner-name { font-size: 26px; font-weight: 900; text-shadow: 0 2px 6px rgba(0, 0, 0, 0.5); }
@keyframes wheel-pop { from { transform: scale(0.6); opacity: 0; } to { transform: scale(1); opacity: 1; } }

/* Confetti layer */
.wheel-confetti { position: fixed; inset: 0; pointer-events: none; overflow: hidden; z-index: 5; }
.wheel-confetti i {
    position: absolute;
    top: -12px;
    width: 10px;
    height: 14px;
    border-radius: 2px;
    animation: wheel-fall linear forwards;
}
@keyframes wheel-fall {
    to { transform: translateY(105vh) rotate(720deg); opacity: 0.9; }
}
