/* Retained raster cabinet. Light spill, optics and mechanical motion are overlays only. */
#casino-overlay .marquee-lights,#casino-overlay.reward-lights .marquee-lights{animation:none;filter:none;z-index:5}
#casino-overlay .marquee-lights img,#casino-overlay #casino-lamps img,#casino-overlay #casino-lamps .used{animation:none;filter:brightness(calc(.22 + var(--bulb,.08)*1.45)) saturate(calc(.35 + var(--bulb,.08)*.8));transition:filter .065s linear}
#casino-overlay .marquee-lights img.is-lit,#casino-overlay #casino-lamps img.is-lit{filter:brightness(calc(.65 + var(--bulb)*.9)) drop-shadow(0 0 4px #ffd270) drop-shadow(0 0 10px #ffae39b0)}
#casino-overlay .slot-machine{perspective:900px}
#casino-overlay #casino-lever{perspective:650px;perspective-origin:50% 91%;z-index:7}
#casino-overlay #casino-lever img{transform-origin:50% 91%;backface-visibility:visible;filter:drop-shadow(2px 5px 2px #0008)}
#casino-overlay.spinning #casino-lever img{animation:arcadeLever .86s linear both}
@keyframes arcadeLever{0%{transform:rotateX(0) rotateZ(0)}12%{transform:rotateX(-8deg) rotateZ(-1deg)}30%{transform:rotateX(-64deg) rotateZ(-9deg) scale(1.06)}38%{transform:rotateX(-69deg) rotateZ(-10deg) scale(1.08)}47%{transform:rotateX(-65deg) rotateZ(-9deg) scale(1.06)}55%{transform:rotateX(-65deg) rotateZ(-9deg) scale(1.06)}83%{transform:rotateX(4deg) rotateZ(1deg)}93%{transform:rotateX(-2deg) rotateZ(0)}100%{transform:rotateX(0) rotateZ(0)}}
#casino-overlay .slot-reel:after{content:'';display:block;position:absolute;inset:0;pointer-events:none;background:linear-gradient(#171111a0,transparent 30%,#fff3cb0b 49%,transparent 69%,#171111ad);z-index:2}
#casino-overlay .slot-reel .reel-strip{filter:blur(var(--reel-blur,0px));animation:none}
#casino-overlay .slot-reel.anticipating:after{background:linear-gradient(#211808b5,transparent 30%,#fff4bc22 50%,transparent 70%,#211808b5);box-shadow:inset 0 0 12px #ffcc6260}
#casino-overlay .payline{transition:background .15s,box-shadow .15s}
#casino-overlay[data-motion="jackpot"] .payline{height:2px;background:#fff3a4;box-shadow:0 0 7px #fff0b0,0 0 18px #ffa520;animation:arcadePayline 1.4s ease-in-out 3}
#casino-overlay[data-motion="gold"] .payline{background:#f8d578;box-shadow:0 0 6px #f8ca6290}
@keyframes arcadePayline{50%{opacity:.4}}
#casino-overlay .slot-reel.winner .casino-symbol{filter:drop-shadow(0 0 3px #fff1a080)}
#casino-overlay #casino-payout{position:absolute;left:23%;top:56%;width:54%;z-index:8;display:flex;align-items:center;justify-content:center;gap:7px;pointer-events:none;color:#fff8ca;font:900 clamp(23px,4.5vh,46px)/1.2 'PT Read';text-shadow:0 2px #713607,0 4px #271009,0 0 12px #6b3c03;filter:drop-shadow(0 4px 4px #000b);white-space:nowrap}
#casino-overlay #casino-payout[hidden]{display:none}
#casino-overlay #casino-payout img{width:1.3em;height:1.3em;position:static;transform:none}
#casino-overlay #casino-payout[data-phase="rise"]{animation:arcadeReceipt .24s ease-out both}
#casino-overlay #casino-payout[data-phase="hold"]{transform:translateY(-9px)}
#casino-overlay #casino-payout[data-phase="collect"]{animation:arcadeCollect .55s cubic-bezier(.45,.02,.75,.8) both}
#casino-overlay #casino-payout[data-kind="xp"][data-phase="collect"]{animation:arcadeXP .55s ease-out both}
@keyframes arcadeXP{to{opacity:0;transform:translateY(-25px)}}
@keyframes arcadeReceipt{0%{opacity:0;transform:translateY(17px) scale(.65)}75%{opacity:1;transform:translateY(-12px) scale(1.06)}100%{transform:translateY(-9px) scale(1)}}
@keyframes arcadeCollect{0%{opacity:1;transform:translateY(-9px) scale(1)}75%{opacity:.9}100%{opacity:0;transform:translate(var(--collect-x),var(--collect-y)) scale(.15)}}
#casino-overlay.coin-received #casino-gold{animation:arcadeBalance .4s ease-out}
@keyframes arcadeBalance{35%{color:white;filter:drop-shadow(0 0 7px #ffe588);transform:scale(1.08)}}
#casino-overlay .casino-brand{color:#cdbf9e}
#casino-overlay .brand-emblem{opacity:.88}
#casino-overlay .prize-strip{gap:13px 8px;margin-top:24px;opacity:.9}
#casino-overlay .prize-strip b{opacity:.65}
#casino-overlay .casino-subtitle{letter-spacing:1.8px}
#casino-overlay #casino-message{color:#ded2b7;min-height:42px}
#casino-overlay .casino-display{border-top:1px solid #ac885328;padding-top:12px;margin-top:15px}
#casino-overlay .reward-jackpot .reward-hero{inset:auto;left:var(--machine-x);top:var(--machine-y);width:var(--machine-size);padding:0;transform:translateX(-50%);gap:0}
#casino-overlay .reward-jackpot #reward-eyebrow{font-size:clamp(9px,1.3vh,14px);letter-spacing:4px;margin-bottom:6px}
#casino-overlay .reward-jackpot #reward-heading{font-family:'PT Read';font-size:clamp(37px,calc(var(--machine-size)*.132),106px);font-weight:950;letter-spacing:-2px;line-height:1.15;margin:0;white-space:nowrap;background:linear-gradient(#fffef0 0%,#ffed9c 38%,#c58929 44%,#ffe8a1 54%,#ffbd44 80%,#ffe4a0);background-clip:text;-webkit-text-stroke:1px #ffe6a4;filter:drop-shadow(0 2px #8e4115) drop-shadow(0 4px #422009) drop-shadow(0 0 14px #ffbb4755)}
#casino-overlay .reward-jackpot[data-phase="reveal"] #reward-heading{animation:arcadeJackpot .62s cubic-bezier(.2,.7,.3,1) both}
@keyframes arcadeJackpot{0%{opacity:0;transform:perspective(700px) rotateX(-35deg) translateY(-32px) scale(1.24)}36%{opacity:1;transform:perspective(700px) rotateX(5deg) translateY(3px) scale(.97)}60%{transform:perspective(700px) rotateX(0) translateY(-2px) scale(1.02)}100%{transform:perspective(700px) rotateX(0) translateY(0) scale(1)}}
#casino-overlay .reward-jackpot #reward-count{font-size:clamp(30px,calc(var(--machine-size)*.093),75px);margin:12px 0 0;padding:0 14px;font-weight:950;color:#fff5bd;text-shadow:0 2px #98571e,0 4px #311810,0 0 20px #ffbb4155;line-height:1.15}
#casino-overlay .reward-jackpot.count-complete #reward-count{animation:arcadeBalance .4s ease-out both}
#casino-overlay .reward-jackpot #reward-receipt{font-size:clamp(10px,1.5vh,15px);margin-top:9px}
#casino-overlay .reward-jackpot[data-phase="anticipation"] .reward-hero{opacity:0;transform:translateX(-50%)}
#casino-overlay.reduced-casino-fx .marquee-lights img,#casino-overlay.reduced-casino-fx #casino-lamps img{transition:none}
#casino-overlay.reduced-casino-fx #casino-payout,#casino-overlay.reduced-casino-fx #reward-heading,#casino-overlay.reduced-casino-fx #reward-count,#casino-overlay.reduced-casino-fx .payline,#casino-overlay.reduced-casino-fx #casino-gold{animation:none!important;transform:none}
@media(max-height:500px){#casino-overlay .prize-strip{gap:6px;margin-top:12px}#casino-overlay .casino-display{margin-top:6px;padding-top:5px}#casino-overlay #casino-message{min-height:30px}}
