/* Daily Spin (v469). Scoped to #wheelModal / #homeWheelChip. Sizes and colours follow the Gauntlet / 2 vs 2 pop-ups. */
#wheelModal .lw-card { max-width: 22rem; }
.lw-stage { overflow: clip; overflow-clip-margin: 22px; position: relative; width: calc(min(78vw, 17.5rem, 44vh) * var(--lw-k, 1)); aspect-ratio: 1; margin: .9rem auto .5rem; }
.lw-wheel { display: block; width: 100%; height: 100%; transform-origin: 50% 50%; filter: drop-shadow(0 6px 14px rgba(0,0,0,.55)); will-change: transform; }
.lw-pointer { position: absolute; left: 50%; top: 1px; width: 30px; height: 40px; transform: translateX(-50%); transform-origin: 50% 20%; z-index: 2; pointer-events: none; }
.lw-pointer svg { display: block; width: 100%; height: 100%; filter: drop-shadow(0 2px 3px rgba(0,0,0,.6)); }
.lw-result { min-height: 3.6rem; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .2rem; margin: .1rem 0 .6rem; font-size: .76rem; color: #cbd5e1; }
.lw-result .lw-won { font-size: 1rem; font-weight: 900; color: #fde68a; letter-spacing: .02em; }
.lw-result.lw-in { animation: lw-in .32s var(--ease-soft, cubic-bezier(.22,1,.36,1)); }
@keyframes lw-in { from { opacity: 0; transform: translateY(6px) scale(.97); } to { opacity: 1; transform: none; } }
.lw-thumb { display: inline-flex; margin-bottom: .1rem; }
.lw-backprev { display: inline-block; width: 40px; height: 56px; border-radius: 6px; border: 2px solid #f59e0b; }
.lw-odds-btn { margin-top: .7rem; font-size: .7rem; font-weight: 800; letter-spacing: .06em; color: #94a3b8; text-decoration: underline; text-underline-offset: 3px; }
.lw-odds { margin: .6rem 0 0; padding: .55rem .7rem; list-style: none; text-align: left; border-radius: .8rem; background: #0b1426; border: 1px solid #1e293b; max-height: 30vh; overflow: auto; }
.lw-odds.hidden { display: none; }
.lw-odds li { display: flex; align-items: center; gap: .5rem; padding: .22rem 0; font-size: .74rem; color: #e2e8f0; }
.lw-odds .lw-odds-name { flex: 1; }
.lw-odds b { font-weight: 900; color: #fbbf24; font-variant-numeric: tabular-nums; }
.lw-dot { width: 10px; height: 10px; border-radius: 3px; flex: none; }
.lw-odds .lw-odds-note { display: block; padding-top: .5rem; font-size: .68rem; line-height: 1.45; color: #94a3b8; }
#wheelSpinBtn:disabled { opacity: .55; cursor: default; }
/* Home: a small circle in the top right of the screen; the gold dot shows while today's spin is waiting. */
#homeWheelChip { position: absolute; z-index: 3; top: 10px; right: 10px; display: none; width: 40px; height: 40px; padding: 0; border-radius: 50%; background: #0b1426; border: 1px solid #334155; box-shadow: 0 3px 10px rgba(0,0,0,.4); cursor: pointer; place-items: center; }
#homeWheelChip:not(.hidden) { display: grid; }
#lobbyScreen.mode-page-open #homeWheelChip { display: none !important; }
#homeWheelChip .lw-chip-ic { width: 31px; height: 31px; }
#homeWheelChip.lw-ready { border-color: #fbbf24; box-shadow: 0 0 0 1px rgba(251,191,36,.25), 0 0 14px rgba(251,191,36,.3); }
#homeWheelChip.lw-ready .lw-chip-ic { animation: lw-chip-spin 6s linear infinite; }
#homeWheelChip .lw-dot-badge { position: absolute; top: -2px; right: -2px; width: 12px; height: 12px; margin: 0; border: 2px solid #0b1426; box-sizing: content-box; }
.lw-dot-badge { display: inline-block; width: 8px; height: 8px; margin-left: 6px; border-radius: 50%; background: #fbbf24; box-shadow: 0 0 6px rgba(251,191,36,.8); vertical-align: middle; }
.lw-dot-badge.hidden { display: none; }
body.reduce-motion #homeWheelChip .lw-chip-ic { animation: none; }
/* Prize preview: the wheel-only avatar, animated. */
.lw-prize { display: flex; flex-direction: column; align-items: stretch; gap: .45rem; margin: .2rem auto .3rem; padding: .4rem .8rem; max-width: 17rem; border-radius: .9rem; background: #0b1426; border: 1px solid #1e293b; text-align: left; }
.lw-prize .lw-prize-t { display: flex; flex-direction: column; font-size: .7rem; color: #94a3b8; line-height: 1.35; }
.lw-prize .lw-prize-t b { font-size: .78rem; font-weight: 900; letter-spacing: .04em; color: #fde68a; text-transform: uppercase; }
#homeWheelChip:focus-visible { outline: 2px solid #fbbf24; outline-offset: 3px; }
#wheelSpinBtn:focus-visible { outline: 2px solid #fbbf24; outline-offset: 3px; }
.lw-prize-row { display: flex; align-items: center; gap: .7rem; }
.lw-prize-back { flex: none; width: 52px; display: grid; place-items: center; }
.lw-prize .lw-backprev { width: 34px; height: 48px; }
.lw-prize-note { font-size: .64rem; color: #64748b; text-align: center; }

/* Tabs and Three Cards (v474) */
.lw-tabs { display: flex; gap: .3rem; margin: .5rem auto .2rem; padding: .2rem; max-width: 17rem; border-radius: 999px; background: #0b1426; border: 1px solid #1e293b; }
.lw-tab { position: relative; flex: 1; padding: .38rem .4rem; border-radius: 999px; font-size: .68rem; font-weight: 900; letter-spacing: .05em; text-transform: uppercase; color: #94a3b8; }
.lw-tab.on { background: #fbbf24; color: #2a1604; }
.lw-tab .lw-dot-badge { position: absolute; top: 1px; right: 5px; margin: 0; width: 8px; height: 8px; }
.lw-tab:focus-visible { outline: 2px solid #fbbf24; outline-offset: 2px; }
#montyPanel.hidden, #wheelPanel.hidden { display: none; }
#montyPanel { min-height: 0; }
.lw-mc-stage { position: relative; height: 9.6rem; width: 15rem; margin: 1rem auto .6rem; }
.lw-mc { position: absolute; top: 0; left: 50%; width: 4.2rem; height: 6rem; margin-left: -2.1rem; padding: 0; border: 0; background: none; cursor: pointer; perspective: 600px; will-change: transform; }
.lw-mc:disabled { cursor: default; }
.lw-mc-in { position: absolute; inset: 0; transform-style: preserve-3d; transition: transform .45s var(--ease-soft, ease); }
.lw-mc.up .lw-mc-in { transform: rotateY(180deg); }
.lw-mc-back, .lw-mc-face { position: absolute; inset: 0; backface-visibility: hidden; -webkit-backface-visibility: hidden; border-radius: .45rem; }
.lw-mc-back .custom-card-back, .lw-mc-back.custom-card-back { width: 100%; height: 100%; }
.lw-mc-face { transform: rotateY(180deg); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .1rem; background: linear-gradient(160deg, #1e293b, #0f172a); border: 2px solid #475569; font-weight: 900; color: #e2e8f0; font-size: 1.05rem; }
.lw-mc-face svg { width: 1.2rem; height: 1.2rem; }
.lw-mc.big .lw-mc-face { background: linear-gradient(160deg, #fde68a, #f59e0b); border-color: #fff7d6; color: #2a1604; box-shadow: 0 0 18px rgba(251,191,36,.6); }
.lw-mc.chosen .lw-mc-face { outline: 3px solid #fbbf24; outline-offset: 2px; }
.lw-mc.hl .lw-mc-in { filter: brightness(1.25); }
.lw-mc:not(:disabled):hover .lw-mc-in { transform: translateY(-4px); }
.lw-mc.up:not(:disabled):hover .lw-mc-in { transform: rotateY(180deg); }
.lw-mc:focus-visible { outline: 2px solid #fbbf24; outline-offset: 4px; }
body.reduce-motion .lw-mc-in { transition-duration: .01s; }
.lw-odds .lw-odds-themed { color: #fde68a; }

/* Three Cards has its own circle under the wheel; either circle opens the pop-up on its own game (tabs hidden). */
#homeMontyChip { position: absolute; z-index: 3; top: 56px; right: 10px; display: none; width: 40px; height: 40px; padding: 0; border-radius: 50%; background: #0b1426; border: 1px solid #334155; box-shadow: 0 3px 10px rgba(0,0,0,.4); cursor: pointer; place-items: center; }
#homeMontyChip:not(.hidden) { display: grid; }
#lobbyScreen.mode-page-open #homeMontyChip { display: none !important; }
#homeMontyChip .lw-chip-ic { width: 31px; height: 31px; }
#homeMontyChip.lw-ready { border-color: #fbbf24; box-shadow: 0 0 0 1px rgba(251,191,36,.25), 0 0 14px rgba(251,191,36,.3); }
#homeMontyChip .lw-dot-badge { position: absolute; top: -2px; right: -2px; width: 12px; height: 12px; margin: 0; border: 2px solid #0b1426; box-sizing: content-box; }
#homeMontyChip:focus-visible { outline: 2px solid #fbbf24; outline-offset: 3px; }
#wheelModal[data-solo] .lw-tabs { display: none; }

/* Scratch Card (v478): its own circle at the top left of the home panel, and a 3x3 grid under a foil canvas. */
#homeScratchChip { position: absolute; z-index: 3; top: 10px; left: 10px; display: none; width: 40px; height: 40px; padding: 0; border-radius: 50%; background: #0b1426; border: 1px solid #334155; box-shadow: 0 3px 10px rgba(0,0,0,.4); cursor: pointer; place-items: center; }
#homeScratchChip:not(.hidden) { display: grid; }
#lobbyScreen.mode-page-open #homeScratchChip { display: none !important; }
#homeScratchChip .lw-chip-ic { width: 36px; height: 36px; }
#homeScratchChip.lw-ready { border-color: #fbbf24; box-shadow: 0 0 0 1px rgba(251,191,36,.25), 0 0 14px rgba(251,191,36,.3); }
#homeScratchChip .lw-dot-badge { position: absolute; top: -2px; right: -2px; width: 12px; height: 12px; margin: 0; border: 2px solid #0b1426; box-sizing: content-box; }
#homeScratchChip:focus-visible { outline: 2px solid #fbbf24; outline-offset: 3px; }
.lw-sc-stage { position: relative; width: calc(13rem * var(--lw-k, 1)); max-width: 100%; aspect-ratio: 5 / 7; margin: .8rem auto .5rem; border-radius: 1rem; }
.lw-sc-grid { position: absolute; inset: 0; display: grid; grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(3, 1fr); gap: .3rem; padding: .4rem; border-radius: 1rem; background: linear-gradient(160deg, #1c1204, #0b0702); border: 2px solid #b8912b; box-shadow: inset 0 0 14px rgba(0,0,0,.6), 0 0 14px rgba(245,184,46,.18); }
.lw-sc-cell { position: relative; display: grid; place-items: stretch; min-width: 0; min-height: 0; border-radius: .5rem; transition: transform .25s var(--ease-bouncy, cubic-bezier(.34,1.56,.64,1)), box-shadow .25s; }
.lw-sc-cell > * { width: 100% !important; height: 100% !important; min-width: 0 !important; max-width: none !important; margin: 0 !important; pointer-events: none; }
.lw-sc-cell .card-centre-icon { max-width: 70%; max-height: 52%; }
.lw-sc-cell.win { box-shadow: 0 0 0 2px #fff3b0, 0 0 16px rgba(251,191,36,.9); transform: scale(1.07); z-index: 1; }
.lw-sc-cell.win > * { animation: none !important; }
.lw-sc-foil { position: absolute; inset: 0; width: 100%; height: 100%; border-radius: 1rem; touch-action: none; cursor: crosshair; transition: opacity .4s ease; }
.lw-sc-shine { pointer-events: none; mix-blend-mode: screen; }
.lw-sc-foil.gone { opacity: 0; pointer-events: none; }
body.reduce-motion .lw-sc-foil, body.reduce-motion .lw-sc-cell { transition: none; }
#scratchBtn:disabled { opacity: .55; cursor: default; }
#scratchPanel { min-height: 0; }
#scratchRevealBtn, #scratchOddsBtn { margin-inline: .6rem; }
#homeWheelChip .lw-chip-ic, #homeMontyChip .lw-chip-ic { width: 35px; height: 35px; }

/* Win pop-up (v493): the prize big in the middle, over the wheel / scratch / three cards pop-up. */
.lw-winpop { position: absolute; inset: 0; z-index: 6; display: flex; align-items: center; justify-content: center; padding: 1rem; background: rgba(2,6,23,.82); animation: lw-win-fade .22s ease-out; }
.lw-win-card { width: min(19rem, 100%); padding: 1.3rem 1.1rem 1.1rem; border-radius: 1.2rem; text-align: center; background: linear-gradient(180deg, #14213d, #0b1426); border: 1px solid #f59e0b; box-shadow: 0 0 0 1px rgba(251,191,36,.2), 0 0 34px rgba(251,191,36,.28), 0 14px 40px rgba(0,0,0,.6); animation: lw-win-pop .42s var(--ease-spring, cubic-bezier(.34,1.56,.64,1)); }
.lw-win-big { margin-top: .55rem; font-size: 1.5rem; font-weight: 900; line-height: 1.15; color: #fde68a; letter-spacing: .01em; font-variant-numeric: tabular-nums; }
.lw-win-eyebrow { font-size: .68rem; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; color: #fbbf24; }
.lw-win-art { display: flex; align-items: center; justify-content: center; min-height: 5.2rem; margin-top: .7rem; }
.lw-win-gem { width: 4.6rem; height: 4.6rem; filter: drop-shadow(0 0 14px rgba(56,189,248,.55)); animation: lw-win-bob 2.2s ease-in-out infinite; }
.lw-win-xp { display: grid; place-items: center; width: 4.4rem; height: 4.4rem; border-radius: 50%; font-weight: 900; font-size: 1.3rem; color: #052e16; background: radial-gradient(circle at 35% 30%, #bbf7d0, #22c55e); box-shadow: 0 0 22px rgba(34,197,94,.5); }
.lw-win-back { display: inline-block; width: 64px; height: 90px; border-radius: 8px; border: 2px solid #f59e0b; box-shadow: 0 6px 18px rgba(0,0,0,.5); }
.lw-win-sub { margin-top: .4rem; min-height: 2rem; font-size: .8rem; line-height: 1.4; color: #cbd5e1; }
.lw-win-ok { margin-top: .9rem; width: 100%; padding: .7rem 1rem; border-radius: .8rem; font-size: .8rem; font-weight: 900; letter-spacing: .1em; color: #1c1405; background: linear-gradient(180deg, #fbbf24, #f59e0b); }
.lw-win-big.lw-win-name { font-size: 1.2rem; }
.lw-win-big, .lw-win-item .lw-win-big { word-break: break-word; }
.lw-win-jackpot, .lw-win-item { border-color: #fde68a; box-shadow: 0 0 0 1px rgba(253,230,138,.35), 0 0 54px rgba(251,191,36,.5), 0 14px 40px rgba(0,0,0,.6); }
.lw-win-big.lw-win-small { font-size: 1.3rem; }
@keyframes lw-win-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes lw-win-pop { from { opacity: 0; transform: translateY(14px) scale(.9); } to { opacity: 1; transform: none; } }
@keyframes lw-win-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }
body.reduce-motion .lw-winpop, body.reduce-motion .lw-win-card, body.reduce-motion .lw-win-gem { animation: none; }

/* Drop Zone (v503): the card board, the card count and the home circle under the Scratch Card. */
#homeDropChip { position: absolute; z-index: 3; top: 56px; left: 10px; display: none; width: 40px; height: 40px; padding: 0; border-radius: 50%; background: #0b1426; border: 1px solid #334155; box-shadow: 0 3px 10px rgba(0,0,0,.4); cursor: pointer; place-items: center; }
#homeDropChip:not(.hidden) { display: grid; }
#lobbyScreen.mode-page-open #homeDropChip { display: none !important; }
#homeDropChip .lw-chip-ic { width: 36px; height: 36px; }
#homeDropChip.lw-ready { border-color: #fbbf24; box-shadow: 0 0 0 1px rgba(251,191,36,.25), 0 0 14px rgba(251,191,36,.3); }
#homeDropChip:focus-visible { outline: 2px solid #fbbf24; outline-offset: 3px; }
#homeDropChip.dz-bump { animation: dz-bump .5s cubic-bezier(.3,1.6,.5,1); }
.dz-badge { position: absolute; top: -4px; right: -4px; min-width: 16px; height: 16px; padding: 0 3px; box-sizing: content-box; border-radius: 9px; background: #fbbf24; color: #2a1a02; border: 2px solid #0b1426; font: 800 10px/16px 'Outfit', system-ui, sans-serif; font-style: normal; text-align: center; font-variant-numeric: tabular-nums; }
.dz-badge.hidden { display: none; }
@keyframes dz-bump { 0% { transform: scale(1); } 40% { transform: scale(1.22); } 100% { transform: scale(1); } }
#dropPanel { min-height: 27rem; }
.dz-bar { display: flex; justify-content: center; margin: .1rem 0 .4rem; }
.dz-count { display: inline-flex; align-items: center; gap: .4rem; padding: .18rem .7rem .18rem .45rem; border-radius: 999px; border: 1px solid #334155; background: #0e1a33; color: #fde68a; font-size: .8rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.dz-count svg { width: 18px; height: 18px; }
.dz-board { position: relative; width: calc(min(100%, 21rem) * var(--lw-k, 1)); margin: 0 auto; aspect-ratio: 360 / 470; border-radius: 14px; overflow: hidden; }
.dz-board > svg { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.dz-card { position: absolute; left: 0; top: 0; will-change: transform; pointer-events: none; filter: drop-shadow(0 3px 4px rgba(0,0,0,.5)); }
.dz-card > * { width: 100%; height: 100%; }
@media (prefers-reduced-motion: reduce) { #homeDropChip.dz-bump { animation: none; } }
body.reduce-motion #homeDropChip.dz-bump { animation: none; }
.lw-prize-row[data-lw-preview] { cursor: pointer; border-radius: 10px; transition: background .15s, transform .15s; }
.lw-prize-row[data-lw-preview]:hover, .lw-prize-row[data-lw-preview]:focus-visible { background: rgba(255,255,255,.07); outline: none; }
.lw-prize-row[data-lw-preview]:active { transform: scale(.98); }
/* One screen, no scrolling: lwFit (js/lucky-wheel.js) scales the wheel, scratch card or Drop Zone board with --lw-k; the rest is kept tight. */
#dropResult { min-height: 1.5rem; margin: .1rem 0 .35rem; }
#dropPrize { flex-direction: row; gap: .4rem; max-width: 21rem; padding: .3rem .5rem; }
#dropPrize .lw-prize-row { flex: 1 1 0; min-width: 0; gap: .45rem; }
#dropPrize .lw-prize-row .av-tile, #dropPrize .lw-prize-row > :first-child { flex: none; }
#dropPrize .lw-prize-t { font-size: .62rem; line-height: 1.25; }
#dropPrize .lw-prize-t b { font-size: .68rem; }
@media (max-height: 760px) {
  #wheelModal .lw-card { padding: 1rem .9rem .8rem; }
  #wheelModal .gauntlet-text { margin-top: .25rem; font-size: .72rem; line-height: 1.35; }
  #wheelModal .lw-tabs { margin: .35rem auto .1rem; }
  #wheelModal .lw-result { min-height: 2.2rem; margin: 0 0 .35rem; }
  #wheelModal .lw-odds-btn { margin-top: .4rem; }
}
#homeWheelChip, #homeMontyChip, #homeScratchChip, #homeDropChip { -webkit-touch-callout: none; -webkit-user-select: none; user-select: none; touch-action: manipulation; }

/* Drop Zone: Drop and Drop All side by side */
.dz-btns { display: flex; gap: .5rem; margin-top: .5rem; }
.dz-btns > button { flex: 1 1 0; min-width: 0; margin: 0; }
.dz-btns > .dz-all { background: transparent; border: 1px solid #e5b04a; color: #ffd36a; }
.dz-btns > button:disabled { opacity: .45; }

/* Drop Zone start points (v531): three chevrons above the board pick where the card is dropped from (cosmetic). */
.dz-start { position: absolute; top: 3.2%; width: 2.6rem; height: 2.4rem; transform: translateX(-50%); display: grid; place-items: center; color: #e5b04a; opacity: .5; background: none; border: 0; padding: 0; cursor: pointer; border-radius: 10px; transition: opacity .18s var(--ease-soft, ease), transform .18s var(--ease-snappy, ease); -webkit-tap-highlight-color: transparent; }
.dz-start svg { width: 1.3rem; height: 1.3rem; filter: drop-shadow(0 0 0 transparent); transition: filter .18s; }
.dz-start[aria-pressed="true"] { opacity: 1; color: #ffd36a; }
.dz-start[aria-pressed="true"] svg { filter: drop-shadow(0 0 5px rgba(255,211,106,.9)); }
.dz-start:hover { opacity: .9; }
.dz-start:active { transform: translateX(-50%) scale(.92); }
.dz-start:focus-visible { outline: 2px solid #ffd36a; outline-offset: 1px; }
.dz-ghost { position: absolute; left: 0; top: 0; pointer-events: none; opacity: 0; border-radius: 4px; background: linear-gradient(#ffe9a3, #e5b04a); filter: blur(2px); }
@media (prefers-reduced-motion: reduce) { .dz-start, .dz-start svg { transition: none; } }
