/* ReelQuanta PixiJS visual systems — shared across all slot cabinets */
.rq-pixi-fx-canvas{position:fixed;inset:0;width:100vw;height:100vh;z-index:118;pointer-events:none;touch-action:none;contain:strict}
.rq-pixi-ready .payline-path,.rq-pixi-ready .payline-glow,.rq-pixi-ready .pgs-win-line{opacity:.08!important}
.rq-reel-high-speed{--rq-motion-blur:3.2px;--rq-reel-brightness:1.08;filter:brightness(var(--rq-reel-brightness)) saturate(1.14);will-change:filter,transform}
.rq-reel-high-speed .reel-flow-strip,.rq-reel-high-speed .pht-flow-strip{filter:blur(var(--rq-motion-blur)) saturate(1.22) brightness(1.08)!important;transform:translateZ(0)}
.rq-reel-high-speed::before{content:"";position:absolute;z-index:28;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.04),transparent 16% 84%,rgba(255,221,105,.06));mix-blend-mode:screen;animation:rqVelocitySheen .42s linear infinite}
.rq-reel-anticipation{--rq-motion-blur:4.6px;--rq-reel-brightness:1.18;z-index:8!important;filter:brightness(1.16) saturate(1.28) drop-shadow(0 0 12px rgba(71,224,255,.46))!important}
.rq-reel-anticipation::after{content:"";position:absolute;z-index:36;inset:4px;border:2px solid rgba(85,224,255,.88);border-radius:10px;pointer-events:none;box-shadow:0 0 14px rgba(68,220,255,.9),0 0 34px rgba(255,190,44,.54),inset 0 0 22px rgba(50,217,255,.18);animation:rqAnticipationPulse .48s ease-in-out infinite alternate}
.rq-reel-anticipation.rq-anticipation-gold::after{border-color:rgba(255,226,114,.94);box-shadow:0 0 16px rgba(255,190,48,.92),0 0 38px rgba(70,224,255,.48),inset 0 0 24px rgba(255,202,74,.18)}
.rq-hard-thud .symbol-cell,.rq-hard-thud .pgs-symbol-cell,.rq-hard-thud .pht-cell{animation:rqHardThud .46s cubic-bezier(.12,.82,.18,1.18)!important;transform-origin:50% 50%}
.rq-hard-thud-special .symbol-cell,.rq-hard-thud-special .pgs-symbol-cell,.rq-hard-thud-special .pht-cell{animation:rqHardThudSpecial .62s cubic-bezier(.12,.82,.18,1.2)!important}
.rq-symbol-impact{animation:rqSymbolImpact .58s cubic-bezier(.16,.9,.2,1.28)!important;z-index:18!important}
.rq-evolution-impact{z-index:35!important;animation:rqEvolutionImpact .72s cubic-bezier(.14,.88,.18,1.22)!important;box-shadow:inset 0 0 34px rgba(255,245,178,.95),0 0 30px rgba(255,181,29,.88),0 0 54px rgba(75,240,225,.55)!important}
.rq-idle-premium{isolation:isolate}
.rq-idle-premium>img{transform-origin:50% 66%;animation-delay:var(--rq-idle-delay,0s)!important;will-change:transform,filter}
.rq-idle-breathe>img{animation:rqIdleBreathe 3.25s ease-in-out infinite}
.rq-idle-drift>img{animation:rqIdleDrift 4.1s ease-in-out infinite}
.rq-idle-glint>img{animation:rqIdleGlint 3.6s ease-in-out infinite}
.rq-idle-rays::after{content:"";position:absolute;z-index:4;inset:5%;pointer-events:none;border-radius:50%;opacity:.26;background:repeating-conic-gradient(from 0deg,rgba(255,228,113,.46) 0 5deg,transparent 5deg 18deg);mix-blend-mode:screen;filter:blur(2px);animation:rqIdleRays 8s linear infinite}
.spin-live .rq-idle-premium>img,.spinning .rq-idle-premium>img,.spin-live .rq-idle-rays::after,.spinning .rq-idle-rays::after{animation-play-state:paused!important}
.rq-frame-break-clone{position:fixed;z-index:123;pointer-events:none;transform-origin:50% 62%;object-fit:contain;filter:drop-shadow(0 8px 12px rgba(0,0,0,.7)) drop-shadow(0 0 12px rgba(255,221,100,.72));will-change:transform,filter,opacity}
.rq-frame-break-source{filter:brightness(.42)!important}
.rq-ticker-active{position:relative;z-index:3;will-change:transform,filter;filter:brightness(1.12) drop-shadow(0 0 8px rgba(255,207,76,.68))}
.rq-upgrade-source-active{filter:brightness(1.45) saturate(1.35) drop-shadow(0 0 12px #fff4a8) drop-shadow(0 0 24px #ffaf18)!important;animation:rqUpgradeSource .82s cubic-bezier(.16,.88,.2,1.25)}
.rq-pixi-unavailable .rq-pixi-fx-canvas{display:none}
@keyframes rqVelocitySheen{0%{opacity:.25;transform:translateY(-22%)}100%{opacity:.7;transform:translateY(22%)}}
@keyframes rqAnticipationPulse{0%{opacity:.48;transform:scale(.988)}100%{opacity:1;transform:scale(1.012)}}
@keyframes rqHardThud{0%{transform:translateY(-10px) scaleY(.96)}42%{transform:translateY(9px) scaleY(1.055)}68%{transform:translateY(-3px) scaleY(.99)}84%{transform:translateY(1px) scaleY(1.008)}100%{transform:translateY(0) scale(1)}}
@keyframes rqHardThudSpecial{0%{transform:translateY(-16px) scale(.93);filter:brightness(1.22)}38%{transform:translateY(12px) scale(1.075);filter:brightness(1.45)}64%{transform:translateY(-5px) scale(1.018)}82%{transform:translateY(2px) scale(1.01)}100%{transform:translateY(0) scale(1);filter:brightness(1)}}
@keyframes rqSymbolImpact{0%{transform:scale(.82);filter:brightness(1.8)}46%{transform:scale(1.14);filter:brightness(1.35)}72%{transform:scale(.98)}100%{transform:scale(1);filter:brightness(1)}}
@keyframes rqEvolutionImpact{0%{transform:scale(.76) rotate(-2deg);filter:brightness(2.25) saturate(1.5)}42%{transform:scale(1.18) rotate(1deg);filter:brightness(1.7)}72%{transform:scale(.98)}100%{transform:scale(1);filter:brightness(1)}}
@keyframes rqIdleBreathe{0%,100%{transform:translateY(0) scale(1);filter:brightness(1)}50%{transform:translateY(-2px) scale(1.018);filter:brightness(1.08)}}
@keyframes rqIdleDrift{0%,100%{transform:translate(-1px,1px) rotate(-.4deg) scale(1)}50%{transform:translate(2px,-2px) rotate(.55deg) scale(1.012)}}
@keyframes rqIdleGlint{0%,72%,100%{transform:scale(1);filter:brightness(1) drop-shadow(0 5px 8px rgba(0,0,0,.65))}82%{transform:scale(1.025);filter:brightness(1.35) drop-shadow(0 0 12px rgba(255,239,157,.8))}}
@keyframes rqIdleRays{to{transform:rotate(360deg)}}
@keyframes rqUpgradeSource{0%{transform:scale(.92)}38%{transform:scale(1.25)}68%{transform:scale(.98)}100%{transform:scale(1)}}
@media (prefers-reduced-motion:reduce){.rq-idle-premium>img,.rq-idle-rays::after,.rq-reel-high-speed::before,.rq-reel-anticipation::after{animation:none!important}.rq-pixi-fx-canvas{opacity:.55}}

/* Pharaoh juice pass: layered ambience, premium idle life, impacts and anticipation */
.rq-reel-high-speed .reel-flow-strip,.rq-reel-high-speed .pht-flow-strip{transition:filter .16s ease,opacity .16s ease;filter:blur(var(--rq-motion-blur)) saturate(1.28) brightness(1.12)!important}
.rq-anticipation-live .pgs-reel-window,.rq-anticipation-live .pht-reel-frame,.rq-anticipation-live .arcade-reel-window{box-shadow:0 0 0 2px rgba(89,232,255,.28),0 0 32px rgba(70,222,255,.38),0 0 58px rgba(255,190,48,.24),inset 0 0 30px rgba(65,226,255,.11)!important;animation:rqFrameCrescendo .48s ease-in-out infinite alternate}
.rq-anticipation-live .pgs-message,.rq-anticipation-live .pht-message,.rq-anticipation-live .arcade-message{filter:brightness(1.18);text-shadow:0 0 10px rgba(85,239,255,.72),0 0 22px rgba(255,196,51,.5)}
.rq-idle-goddess::before{content:"";position:absolute;z-index:1;left:49%;top:24%;width:46%;height:58%;border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgba(255,233,145,.22),rgba(255,188,39,.08) 42%,transparent 72%);mix-blend-mode:screen;animation:rqGoddessAura 2.75s ease-in-out infinite;animation-delay:var(--rq-idle-delay,0s)}
.rq-idle-goddess::after{content:"";position:absolute;z-index:5;left:58%;top:16%;width:4px;height:60%;border-radius:50%;pointer-events:none;transform:rotate(18deg);transform-origin:50% 85%;background:linear-gradient(transparent,rgba(255,247,186,.92),rgba(87,242,229,.25),transparent);box-shadow:0 0 8px rgba(255,227,122,.72);mix-blend-mode:screen;animation:rqStaffBreath 2.4s ease-in-out infinite;animation-delay:var(--rq-idle-delay,0s)}
.rq-idle-pyramid::before{content:"";position:absolute;z-index:3;inset:4%;pointer-events:none;border-radius:50%;background:repeating-conic-gradient(from 0deg,rgba(255,231,126,.28) 0 3deg,transparent 3deg 13deg);mix-blend-mode:screen;filter:blur(1px);animation:rqPyramidSun 7.5s linear infinite}
.rq-idle-pyramid::after{content:"";position:absolute;z-index:6;left:12%;right:12%;bottom:11%;height:20%;pointer-events:none;background:radial-gradient(ellipse at center,rgba(255,205,83,.24),transparent 67%);filter:blur(3px);animation:rqPyramidDust 3.1s ease-in-out infinite;animation-delay:var(--rq-idle-delay,0s)}
.rq-frame-break-goddess{filter:brightness(1.3) saturate(1.18) drop-shadow(0 0 18px rgba(255,229,130,.95)) drop-shadow(0 0 30px rgba(69,239,225,.46))!important}
.rq-frame-break-pyramid{filter:brightness(1.45) saturate(1.2) drop-shadow(0 0 20px rgba(255,222,102,.98)) drop-shadow(0 0 38px rgba(79,228,255,.58))!important}
.rq-balance-impact{animation:rqBalanceImpact .34s cubic-bezier(.17,.88,.2,1.28)!important;filter:brightness(1.35) drop-shadow(0 0 12px rgba(255,219,104,.92))!important}
.rq-evolution-impact>img{animation:rqTextureSwapFlash .58s cubic-bezier(.15,.86,.2,1.25)!important}
@keyframes rqFrameCrescendo{0%{filter:brightness(1.02) saturate(1.05)}100%{filter:brightness(1.16) saturate(1.24)}}
@keyframes rqGoddessAura{0%,100%{opacity:.35;transform:scale(.92) translateY(2px)}50%{opacity:.9;transform:scale(1.12) translateY(-2px)}}
@keyframes rqStaffBreath{0%,100%{opacity:.3;transform:rotate(18deg) scaleY(.84)}50%{opacity:1;transform:rotate(16deg) scaleY(1.08)}}
@keyframes rqPyramidSun{to{transform:rotate(360deg)}}
@keyframes rqPyramidDust{0%,100%{opacity:.22;transform:translateX(-3px) scaleX(.9)}50%{opacity:.72;transform:translateX(4px) scaleX(1.08)}}
@keyframes rqBalanceImpact{0%{transform:scale(.92)}48%{transform:scale(1.13)}74%{transform:scale(.98)}100%{transform:scale(1)}}
@keyframes rqTextureSwapFlash{0%{opacity:.2;transform:scale(.72);filter:brightness(2.6) saturate(1.4)}42%{opacity:1;transform:scale(1.18);filter:brightness(1.8) saturate(1.28)}72%{transform:scale(.98)}100%{transform:scale(1);filter:brightness(1)}}
@media(max-width:900px){.rq-idle-goddess::before,.rq-idle-goddess::after,.rq-idle-pyramid::after{opacity:.55}.rq-reel-anticipation::after{animation-duration:.65s}}
@media(prefers-reduced-motion:reduce){.rq-idle-goddess::before,.rq-idle-goddess::after,.rq-idle-pyramid::before,.rq-idle-pyramid::after,.rq-anticipation-live .pgs-reel-window{animation:none!important}}
.rq-webgl-reel-mirrors .pgs-reel-flow-overlay,.rq-webgl-reel-mirrors .pht-flow-overlay,.rq-webgl-reel-mirrors .reel-flow-overlay{opacity:1!important;visibility:visible!important;filter:blur(var(--rq-motion-blur,3.2px)) saturate(1.25) brightness(1.08)!important}

/* Reel visibility hotfix: the live moving DOM strip is never suppressed by Pixi. */
.rq-slot-spinning .reel-flow-overlay,.rq-slot-spinning .pgs-reel-flow-overlay,.rq-slot-spinning .pht-flow-overlay{display:block!important;opacity:1!important;visibility:visible!important;animation-play-state:running!important}
.rq-slot-spinning .reel-flow-strip,.rq-slot-spinning .pht-flow-strip{animation-play-state:running!important;will-change:transform,filter}
