/* Wheel of Fortune FX v2 - moderno / cinematografico */
@property --mwAng{syntax:'<angle>';inherits:false;initial-value:0deg}
@keyframes mwSpin{to{transform:rotate(360deg)}}
@keyframes mwSpinRev{to{transform:rotate(-360deg)}}
@keyframes mwBorder{to{--mwAng:360deg}}
@keyframes mwPopPlain{0%{opacity:0;transform:scale(.86) translateY(24px);filter:blur(6px)}100%{opacity:1;transform:none;filter:none}}
@keyframes mwIconIn{0%{opacity:0;transform:scale(.55) translateY(20px);filter:blur(10px) brightness(2.2)}60%{opacity:1;filter:blur(0) brightness(1.4)}100%{opacity:1;transform:none;filter:none}}
@keyframes mwTextIn{from{opacity:0;transform:translateY(12px);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}
@keyframes mwLabelIn{from{opacity:0;letter-spacing:.9em}to{opacity:1;letter-spacing:var(--mw-ls,.32em)}}
@keyframes mwFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@keyframes mwDraw{from{stroke-dashoffset:var(--len)}to{stroke-dashoffset:0}}
@keyframes mwFadeIn{from{opacity:0}to{opacity:var(--o,1)}}
@keyframes mwBeam{0%{transform:scaleY(0);opacity:0}25%{opacity:1}100%{transform:scaleY(1);opacity:.85}}
@keyframes mwBeamPulse{0%,100%{opacity:.7}50%{opacity:1}}
@keyframes mwShock{0%{transform:translate(-50%,-50%) scale(.1);opacity:.9}100%{transform:translate(-50%,-50%) scale(3.2);opacity:0}}
@keyframes mwFlare{0%{transform:translate(-50%,-50%) scaleX(0);opacity:0}30%{opacity:1}100%{transform:translate(-50%,-50%) scaleX(1);opacity:.75}}
@keyframes mwFlareBreath{0%,100%{opacity:.55}50%{opacity:.95}}
@keyframes mwShake{0%,100%{translate:0 0}12%{translate:-6px 2px}25%{translate:5px -3px}40%{translate:-4px -2px}55%{translate:3px 3px}70%{translate:-2px 1px}}
@keyframes mwFlash{0%{opacity:.55}100%{opacity:0}}
@keyframes mwDust{0%{transform:translate3d(0,0,0);opacity:0}15%{opacity:var(--o,.8)}100%{transform:translate3d(var(--dx),var(--dy),0);opacity:0}}
@keyframes mwShine{0%{background-position:-160% 0}100%{background-position:260% 0}}
@keyframes mwFloor{0%{transform:translate(-50%,0) scale(.3);opacity:0}100%{transform:translate(-50%,0) scale(1);opacity:.9}}
@keyframes mwItemGold{0%,100%{box-shadow:0 0 0 rgba(255,210,110,0)}50%{box-shadow:0 0 18px rgba(255,210,110,.5)}}
@keyframes mwCoin{0%,100%{filter:brightness(1)}50%{filter:brightness(1.3) drop-shadow(0 0 8px rgba(255,210,110,.75))}}
@keyframes mwBtnGlow{0%,100%{box-shadow:0 0 0 rgba(255,210,110,0)}50%{box-shadow:0 0 22px rgba(255,210,110,.5)}}
@keyframes mwMachine{0%,100%{box-shadow:0 0 24px rgba(230,186,103,.1)}50%{box-shadow:0 0 46px rgba(230,186,103,.28)}}
/* ---- dialogo de recompensa ---- */
dialog.mc-reward,dialog.mc-reward[open]{--c1:#8ed486;--c2:#4c9a52;--mw-ls:.32em;overflow:visible!important}
dialog.mc-reward[data-rarity=rare]{--c1:#72dcf2;--c2:#2b9fc0}
dialog.mc-reward[data-rarity=epic]{--c1:#c08cff;--c2:#7a3fd0}
dialog.mc-reward[data-rarity=legendary]{--c1:#ffd36b;--c2:#ff9a1f}
dialog.mc-reward[open]{animation:mwPopPlain .7s cubic-bezier(.16,1,.3,1) both}
dialog.mc-reward::backdrop{background:radial-gradient(circle at 50% 42%,color-mix(in srgb,var(--c2) 26%,transparent),rgba(4,6,10,.9) 68%);backdrop-filter:blur(6px)}
dialog.mc-reward[data-rarity=common]::backdrop{background:rgba(5,7,11,.85)}
dialog.mc-reward>*:not(.mc-reward-aura):not(.mw-fx){position:relative;z-index:2}
dialog.mc-reward .mc-reward-aura{position:absolute;inset:0;z-index:0;pointer-events:none;border-radius:inherit}
dialog.mc-reward .mc-reward-aura::before,dialog.mc-reward .mc-reward-aura::after{display:none}
/* borda animada (luz correndo) */
dialog.mc-reward[open][data-rarity]::before{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1.5px;pointer-events:none;z-index:3;background:conic-gradient(from var(--mwAng),transparent 0 62%,var(--c1) 92%,#fff 100%);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:mwBorder 4.5s linear infinite}
dialog.mc-reward[open][data-rarity=legendary]{box-shadow:0 0 90px rgba(255,170,50,.35),0 30px 80px rgba(0,0,0,.6);animation:mwPopPlain .7s cubic-bezier(.16,1,.3,1) both,mwShake .6s ease-out .3s 1}
dialog.mc-reward[open][data-rarity=epic]{box-shadow:0 0 70px rgba(150,80,240,.3),0 30px 80px rgba(0,0,0,.6)}
dialog.mc-reward[open][data-rarity=rare]{box-shadow:0 0 50px rgba(60,190,230,.22),0 30px 80px rgba(0,0,0,.6)}
/* camadas de efeito */
.mw-fx{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:1}
.mw-fx>*{position:absolute}
.mw-ring{left:var(--cx);top:var(--cy);width:var(--sz);height:var(--sz);translate:-50% -50%;overflow:visible;opacity:0;animation:mwFadeIn .8s ease-out .15s forwards}
.mw-ring .spin{transform-origin:0 0;animation:mwSpin 40s linear infinite}
.mw-ring .rev{transform-origin:0 0;animation:mwSpinRev 60s linear infinite}
.mw-ring .arc{fill:none;stroke:var(--c1);stroke-width:1.4;stroke-linecap:round;stroke-dasharray:var(--len);animation:mwDraw 1.4s cubic-bezier(.16,1,.3,1) .3s both}
.mw-ring .tick{fill:none;stroke:var(--c1);stroke-width:3;stroke-dasharray:.6 4.6;opacity:.55}
.mw-ring .thin{fill:none;stroke:var(--c1);stroke-width:.5;opacity:.5}
.mw-ring .dia{fill:var(--c1);filter:drop-shadow(0 0 4px var(--c1))}
.mw-ring .dot{fill:#fff;filter:drop-shadow(0 0 5px var(--c1)) drop-shadow(0 0 10px var(--c1))}
.mw-glow{left:var(--cx);top:var(--cy);width:calc(var(--sz) * 1.15);height:calc(var(--sz) * 1.15);translate:-50% -50%;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--c1) 38%,transparent),transparent 62%);opacity:0;animation:mwFadeIn 1s ease-out .2s forwards;--o:.9}
.mw-beam{left:var(--cx);top:-60vh;width:150px;height:calc(var(--cy) + 60vh);translate:-50% 0;transform-origin:top;background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--c1) 18%,transparent) 45%,color-mix(in srgb,var(--c1) 70%,#fff) 100%);-webkit-mask:linear-gradient(90deg,transparent,#000 35%,#000 65%,transparent);mask:linear-gradient(90deg,transparent,#000 35%,#000 65%,transparent);filter:blur(3px);opacity:0;animation:mwBeam .55s cubic-bezier(.5,0,.2,1) forwards,mwBeamPulse 2.6s ease-in-out .8s infinite}
.mw-shock{left:var(--cx);top:var(--cy);width:var(--sz);height:var(--sz);border-radius:50%;border:2px solid var(--c1);box-shadow:0 0 30px var(--c1),inset 0 0 30px color-mix(in srgb,var(--c1) 50%,transparent);opacity:0;animation:mwShock 1.1s cubic-bezier(.2,.7,.3,1) var(--d,.45s) both}
.mw-flare{left:var(--cx);top:var(--cy);width:min(140vw,1100px);height:3px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--c1) 60%,transparent) 30%,#fff 50%,color-mix(in srgb,var(--c1) 60%,transparent) 70%,transparent);filter:blur(.6px) drop-shadow(0 0 10px var(--c1));opacity:0;animation:mwFlare .9s cubic-bezier(.16,1,.3,1) .4s forwards,mwFlareBreath 3s ease-in-out 1.4s infinite}
.mw-floor{left:var(--cx);top:calc(var(--cy) + var(--sz) * .3);width:calc(var(--sz) * .8);height:calc(var(--sz) * .16);border-radius:50%;background:radial-gradient(ellipse,color-mix(in srgb,var(--c1) 75%,transparent),transparent 70%);filter:blur(4px);opacity:0;animation:mwFloor .9s ease-out .4s forwards}
.mw-dust{border-radius:50%;background:radial-gradient(circle,#fff,var(--c1) 45%,transparent 70%);opacity:0;animation:mwDust var(--dur) linear var(--del) infinite}
.mw-flash{position:fixed;inset:0;z-index:2147483000;pointer-events:none;background:radial-gradient(circle at 50% 42%,color-mix(in srgb,var(--c1) 55%,#fff),transparent 65%);animation:mwFlash .8s ease-out forwards}
/* icone e textos */
dialog.mc-reward[open] .mc-reward-icon{animation:mwIconIn .9s cubic-bezier(.16,1,.3,1) .3s both}
dialog.mc-reward[open][data-rarity] .mc-reward-icon img{animation:mwFloat 4s ease-in-out 1.3s infinite;filter:drop-shadow(0 8px 16px rgba(0,0,0,.6)) drop-shadow(0 0 18px color-mix(in srgb,var(--c1) 60%,transparent))}
dialog.mc-reward[data-rarity=legendary] .mc-reward-icon{scale:1.22}
dialog.mc-reward[data-rarity=epic] .mc-reward-icon{scale:1.1}
dialog.mc-reward[open] .mc-rarity{color:var(--c1);animation:mwLabelIn .9s cubic-bezier(.16,1,.3,1) .6s both;text-shadow:0 0 14px color-mix(in srgb,var(--c1) 70%,transparent)}
dialog.mc-reward[open] h2{animation:mwTextIn .8s cubic-bezier(.16,1,.3,1) .75s both}
dialog.mc-reward[open] .mc-quantity,dialog.mc-reward[open] .mc-reward-note{animation:mwTextIn .7s ease-out 1s both}
dialog.mc-reward[open][data-rarity=legendary] h2,dialog.mc-reward[open][data-rarity=epic] h2{background:linear-gradient(100deg,var(--c1) 35%,#fff 50%,var(--c1) 65%);background-size:250% 100%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:mwTextIn .8s cubic-bezier(.16,1,.3,1) .75s both,mwShine 3.4s linear 1.6s infinite}
/* lista de premios */
.wof-item{transition:transform .2s ease,box-shadow .2s ease,filter .2s ease}
.wof-item:hover{transform:translateY(-3px);filter:brightness(1.15)}
.wof-item[data-rarity=legendary]{animation:mwItemGold 2.8s ease-in-out infinite}
.wof-item[data-rarity=epic]{box-shadow:0 0 12px rgba(190,120,255,.25)}
.wof-item[data-rarity=rare]{box-shadow:0 0 10px rgba(120,220,240,.2)}
/* maquina, botoes, carteira */
.mm-machine{animation:mwMachine 4s ease-in-out infinite}
.mm-rune{display:inline-block;animation:mwSpin 12s linear infinite}
.mm-wallet .mm-coin{animation:mwCoin 3s ease-in-out infinite}
.mc-actions .mc-spin,.mm-console .mc-spin,.mc-wheel-disc>.mc-spin{position:relative;overflow:hidden;transition:transform .2s ease,filter .2s ease}
.mc-actions .mc-spin:not(:disabled),.mm-console .mc-spin:not(:disabled){animation:mwBtnGlow 2.6s ease-in-out infinite}
.mc-spin::after{content:"";position:absolute;top:0;left:-70%;width:40%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.5),transparent);transform:skewX(-22deg);pointer-events:none}
.mc-spin:hover::after{left:130%;transition:left .65s ease}
.mc-spin:hover:not(:disabled){transform:translateY(-2px) scale(1.03);filter:brightness(1.12)}
.mc-spin:active:not(:disabled){transform:scale(.96)}
.mm-again,.mm-add{transition:transform .2s ease,filter .2s ease}
.mm-again:hover,.mm-add:hover{transform:translateY(-2px) scale(1.04);filter:brightness(1.15)}
@media (prefers-reduced-motion:reduce){dialog.mc-reward,dialog.mc-reward *,.wof-item,.mm-machine,.mm-rune,.mm-coin,.mc-spin,.mw-fx *{animation:none!important}.mw-flash{display:none}.mw-fx *{opacity:.6}}

/* ---- efeitos do giro da roleta (reel) ---- */
@keyframes mwStreak{from{background-position:0 0,0 0}to{background-position:-192px 0,0 0}}
@keyframes mwSweep{from{transform:translateX(-140%)}to{transform:translateX(420%)}}
@keyframes mwSpinGlow{0%,100%{box-shadow:0 0 30px rgba(230,186,103,.18),inset 0 0 30px rgba(230,186,103,.06)}50%{box-shadow:0 0 70px rgba(255,214,120,.5),inset 0 0 55px rgba(255,214,120,.2)}}
@keyframes mwPtr{0%,100%{transform:translateY(0)}50%{transform:translateY(4px)}}
@keyframes mwLandRing{0%{transform:translate(-50%,-50%) scale(.6);opacity:.95}100%{transform:translate(-50%,-50%) scale(2.6,1.7);opacity:0}}
@keyframes mwLandBeam{0%{opacity:0;transform:translateX(-50%) scaleY(.2)}25%{opacity:1}100%{opacity:0;transform:translateX(-50%) scaleY(1)}}
@keyframes mwWinPop{0%{transform:scale(1)}35%{transform:scale(1.14)}100%{transform:scale(1.06)}}
.wof-reel-viewport{position:relative}
.wof-reel-card{transition:filter .5s ease,opacity .5s ease,box-shadow .3s ease}
.mw-streaks{position:absolute;inset:0;z-index:3;pointer-events:none;opacity:0;transition:opacity .45s ease;overflow:hidden;mix-blend-mode:screen;background:repeating-linear-gradient(90deg,transparent 0 44px,rgba(255,224,150,.11) 44px 46px,transparent 46px 96px),linear-gradient(90deg,transparent,rgba(255,214,120,.10) 50%,transparent);background-size:192px 100%,100% 100%}
.mw-streaks::after{content:"";position:absolute;top:0;bottom:0;left:0;width:22%;background:linear-gradient(90deg,transparent,rgba(255,240,200,.28),transparent);filter:blur(6px)}
.mw-spin .mw-streaks{opacity:1;animation:mwStreak .28s linear infinite}
.mw-spin .mw-streaks::after{animation:mwSweep 1s linear infinite}
.mw-spin{animation:mwSpinGlow .9s ease-in-out infinite}
.mw-spin .wof-reel-track.is-spinning .wof-reel-card{filter:blur(1.5px) saturate(1.2) brightness(1.1)}
.mw-spin .wof-reel-center{filter:brightness(1.7);box-shadow:0 0 34px rgba(255,214,120,.45)}
.mw-spin .wof-reel-pointer{animation:mwPtr .22s ease-in-out infinite}
.mw-spin .wof-reel-fade--left,.mw-spin .wof-reel-fade--right{filter:brightness(1.4)}
.mm-machine.mw-spinning{animation:mwSpinGlow 1s ease-in-out infinite}
.wof-reel-track.is-settled .wof-reel-card:not(.is-winner){opacity:.5;filter:brightness(.7) saturate(.8)}
.wof-reel-track.is-settled .wof-reel-card.is-winner{animation:mwWinPop .55s cubic-bezier(.2,.9,.3,1.2) both}
.mw-landring{position:absolute;left:50%;top:50%;width:170px;height:150px;border-radius:14px;border:2px solid rgb(var(--rw,255,214,120));box-shadow:0 0 40px rgba(var(--rw,255,214,120),.8),inset 0 0 30px rgba(var(--rw,255,214,120),.4);pointer-events:none;z-index:5;animation:mwLandRing .95s cubic-bezier(.2,.7,.3,1) both}
.mw-landbeam{position:absolute;left:50%;top:0;bottom:0;width:170px;pointer-events:none;z-index:4;background:linear-gradient(180deg,rgba(var(--rw,255,214,120),.0),rgba(var(--rw,255,214,120),.35),rgba(var(--rw,255,214,120),0));filter:blur(4px);transform-origin:center;animation:mwLandBeam 1.1s ease-out both}
.mw-shake{animation:mwShake .5s ease-out 1}
@media (prefers-reduced-motion:reduce){.mw-spin,.mw-spin *,.mm-machine.mw-spinning,.mw-landring,.mw-landbeam{animation:none!important}}

/* alinhamento: camada de efeitos sempre ancorada no canto do dialogo */
dialog.mc-reward>.mw-fx{position:absolute!important;left:0!important;top:0!important;width:100%!important;height:100%!important;margin:0!important;padding:0!important;z-index:1}
dialog.mc-reward>.mw-flash{position:fixed!important;inset:0!important;margin:0!important;z-index:2147483000}
