.reels.bonus-fade{opacity:.28;filter:blur(1px);transition:opacity .35s,filter .35s}
.reels.bonus-spinning>.symbol{visibility:hidden}
.reels.bonus-spinning>.winning-paylines{display:none}
.symbol.egg-pulse{position:relative;z-index:5;animation:winningTilePulse .45s ease-in-out infinite alternate!important}
.symbol.egg-pulse:after{position:absolute;inset:3px;content:"";border:3px solid #ffe39a;border-radius:9px;box-shadow:0 0 22px #ffd260;pointer-events:none}
.bonus-reel-strips{position:absolute;inset:4px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;pointer-events:none}
.bonus-reel-column{overflow:hidden;min-width:0}
.bonus-reel-strip{display:grid;grid-template-rows:repeat(6,minmax(0,1fr));height:200%;animation:bonusReelScroll .6s linear infinite;will-change:transform}
.bonus-reel-slot{display:grid;place-items:center;min-height:0}
.bonus-reel-slot img{width:64%;height:64%;object-fit:contain}
.symbol.win{position:relative;z-index:3;animation:winningTilePulse .7s ease-in-out infinite alternate!important}.symbol.win:after{position:absolute;inset:4px;content:"";border:2px solid #ffe39a;border-radius:9px;box-shadow:0 0 18px #ffd260;pointer-events:none}.egg-sanctum.collecting{animation:meterReceive .9s ease}.egg-sanctum.free-spin-ready{box-shadow:0 0 0 5px rgba(255,220,105,.35),0 0 35px rgba(255,196,62,.9);animation:meterReceive .9s ease 2}@keyframes winningTilePulse{to{transform:scale(1.07);filter:brightness(1.4) drop-shadow(0 0 14px #ffe39a)}}@keyframes meterReceive{50%{transform:scale(1.13);filter:brightness(1.55)}}
@keyframes bonusReelScroll{from{transform:translateY(-50%)}to{transform:translateY(0)}}
@media(max-width:620px){.bonus-reel-strips{inset:3px;gap:3px}}
.winning-paylines{position:absolute;inset:0;width:100%;height:100%;z-index:4;overflow:visible;pointer-events:none}
.winning-paylines polyline{fill:none;stroke:#ffd260;stroke-width:3;stroke-linejoin:round;stroke-linecap:round;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 4px #ffe39a);animation:winningLinePulse .7s ease-in-out infinite alternate}
@keyframes winningLinePulse{from{opacity:.55}to{opacity:1}}
.win-celebration{z-index:40;background:rgba(10,5,2,.65)}
.win-celebration-card{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center;max-width:92vw;color:#ffe39a;filter:drop-shadow(0 0 16px #ad631c)}
.win-celebration-card img{width:560px;max-width:90vw;max-height:65vh;object-fit:contain;animation:winArtworkReveal .4s ease-out both}
.win-celebration-card strong{font-size:clamp(24px,5vw,44px)}
.win-celebration-card span{font-size:20px}
@keyframes winArtworkReveal{from{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.win-celebration-card img{animation:none}}
/* Spinning reels: blurred strips scroll downward, then each column lands left to right with a small bounce. */
.spin-reel-strips{position:absolute;inset:4px;z-index:4;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:4px;pointer-events:none}
.spin-reel-column{overflow:hidden;min-width:0;border-radius:8px;background:linear-gradient(160deg,#571e2d,#2a0e1a)}
.spin-reel-column.stopped{visibility:hidden}
.spin-reel-strip{display:grid;grid-template-rows:repeat(8,minmax(0,1fr));height:266.667%;animation:spinReelScroll .3s linear infinite;filter:blur(.8px);will-change:transform}
.spin-reel-slot{display:grid;place-items:center;min-height:0}
.spin-reel-slot img{width:72%;height:72%;object-fit:contain}
.reels.reels-spinning>.symbol{visibility:hidden}
.reels.reels-spinning>.winning-paylines{display:none}
.reels.reel-landed-0>.symbol:nth-child(5n+1),.reels.reel-landed-1>.symbol:nth-child(5n+2),.reels.reel-landed-2>.symbol:nth-child(5n+3),
.reels.reel-landed-3>.symbol:nth-child(5n+4),.reels.reel-landed-4>.symbol:nth-child(5n+5){visibility:visible;animation:reelLand .28s ease-out}
@keyframes spinReelScroll{from{transform:translateY(-50%)}to{transform:translateY(0)}}
@keyframes reelLand{0%{transform:translateY(-18%)}65%{transform:translateY(6%)}100%{transform:translateY(0)}}
@media (max-width:600px){.spin-reel-strips{inset:3px;gap:3px}}
@media (prefers-reduced-motion:reduce){.spin-reel-strip{animation-duration:1.2s;filter:none}.reels>.symbol{animation:none}}
/* Rapid taps on game controls must not trigger mobile double-tap zoom. */
button,[role=button],.machine-controls,.reel-frame{touch-action:manipulation}
