#fx-layer{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:60;isolation:isolate}
.rune{z-index:70}
.fx-ambient,.fx-celebration{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.fx-ambient{z-index:0;opacity:0;transition:opacity .6s ease}
.fx-ambient.active{opacity:1}
.fx-caustic{position:absolute;inset:-16%;opacity:.22;background:radial-gradient(ellipse at 12% 28%,rgba(255,251,215,.62),transparent 20%),radial-gradient(ellipse at 90% 68%,rgba(217,247,240,.58),transparent 19%);animation:juice-caustic 9s ease-in-out infinite alternate}
.fx-ambient-bubble{position:absolute;width:var(--size);height:var(--size);left:var(--left);bottom:-10%;border:2px solid rgba(255,253,225,.5);border-radius:50%;box-shadow:inset 3px 3px 5px rgba(255,255,255,.28),0 0 9px rgba(102,190,195,.16);opacity:0;animation:juice-bubble-rise var(--duration) linear var(--delay) infinite}
.fx-spotlight{position:absolute;inset:0;z-index:1;opacity:0;background:radial-gradient(circle at 50% 47%,transparent 0 30%,rgba(61,50,38,.18) 84%);transition:opacity .5s ease}
.fx-spotlight.active{opacity:1}
.fx-celebration{z-index:2}
.fx-particle{position:absolute;left:0;top:0;will-change:transform,opacity;pointer-events:none}
.fx-particle.spark{width:10px;height:10px;border-radius:4px;background:var(--particle-color);box-shadow:0 0 10px color-mix(in srgb,var(--particle-color),transparent 28%)}
.fx-particle.bubble{width:var(--particle-size,14px);height:var(--particle-size,14px);border:3px solid var(--particle-color);border-radius:50%;background:rgba(255,255,255,.12);box-shadow:inset 2px 2px 4px rgba(255,255,255,.4)}
.fx-particle.star{width:18px;height:18px;background:var(--particle-color);clip-path:polygon(50% 0,61% 34%,98% 36%,69% 57%,79% 94%,50% 73%,21% 94%,31% 57%,2% 36%,39% 34%);filter:drop-shadow(0 0 5px rgba(242,193,65,.55))}
.fx-particle.confetti{width:11px;height:20px;border-radius:6px;background:var(--particle-color);box-shadow:inset 2px 0 rgba(255,255,255,.28)}
.fx-firework-ring{position:absolute;left:0;top:0;width:24px;height:24px;border:4px solid rgba(255,248,230,.72);border-radius:50%;will-change:transform,opacity}
.fx-bloom{position:absolute;inset:0;background:radial-gradient(circle at 50% 45%,rgba(255,248,220,.3),rgba(242,193,65,.12) 35%,transparent 70%);opacity:0;will-change:opacity,transform}
.fx-delight{position:absolute;width:82px;height:82px;border:4px solid rgba(255,248,230,.42);border-radius:50%;box-shadow:inset 9px 8px 18px rgba(255,255,255,.25),0 0 24px rgba(102,190,195,.2);will-change:transform,opacity}
.fx-success-ring{position:absolute;left:0;top:0;width:96px;height:96px;border:7px solid rgba(242,193,65,.88);border-radius:50%;box-shadow:0 0 0 10px rgba(255,248,230,.2),0 0 34px rgba(242,193,65,.72),inset 0 0 22px rgba(255,255,255,.36);will-change:transform,opacity}
.fx-progress-star{width:38px!important;height:38px!important;filter:drop-shadow(0 0 9px rgba(242,193,65,.95)) drop-shadow(0 7px 5px rgba(86,52,19,.28))!important}
.fx-flying-pearl{position:absolute;left:0;top:0;width:clamp(30px,4.5vw,52px);height:clamp(30px,4.5vw,52px);object-fit:contain;filter:drop-shadow(0 0 9px rgba(255,248,230,.95)) drop-shadow(0 6px 4px rgba(86,52,19,.24));will-change:transform,opacity;pointer-events:none}
.fx-touch-ring{position:absolute;left:0;top:0;width:44px;height:44px;border:5px solid rgba(255,248,230,.82);border-radius:50%;box-shadow:0 0 18px rgba(242,193,65,.72);will-change:transform,opacity}
.board.juice-board-win{animation:juice-board-win 1.25s ease-out}
.scale-sprite.juice-scale-cheer{animation:juice-scale-cheer 1.15s cubic-bezier(.22,.9,.3,1.12)!important}
.hero.juice-correct-cheer{animation:juice-correct-cheer 1.15s cubic-bezier(.22,.9,.3,1.18)!important}
.hero.juice-pearl-catch,.pan.juice-pearl-catch .pan-bowl{animation:juice-pearl-catch .44s cubic-bezier(.22,.9,.3,1.18)!important}
.round-star.juice-progress-pop{animation:juice-progress-pop .72s cubic-bezier(.22,.9,.3,1.22)!important}
.juice-pressed-glow{filter:brightness(1.18) drop-shadow(0 0 12px rgba(242,193,65,.72))!important}
.juice-gold-hit{animation:juice-gold-hit .58s cubic-bezier(.22,.9,.3,1.15)}
.juice-source-wobble{animation:juice-source-wobble .72s ease}
.hero.juice-ma-29{animation:juice-whale-puff 1.15s ease!important}
.hero.juice-ma-45{animation:juice-whale-mirror 1.4s ease!important}
.hero.juice-ma-46{animation:juice-whale-wave 1.5s ease!important}
.hero.juice-ma-24{animation:juice-whale-think 1.35s ease!important}
.juice-idle{animation:juice-idle 2s ease-in-out infinite!important}
.juice-hint-ring{isolation:isolate}.treasure.juice-hint-ring{position:relative}
.juice-hint-ring::after{content:"";position:absolute;inset:4%;border:5px solid rgba(242,193,65,.88);border-radius:30px;box-shadow:0 0 0 7px rgba(255,248,230,.28),0 0 24px rgba(242,193,65,.65);animation:juice-ring 1.35s ease-in-out infinite;pointer-events:none;z-index:8}
#equalBtn.juice-hint-ring::after{inset:-9px;border-radius:30px}
.reward-star.juice-reward-pulse{animation:juice-reward-pulse 1.05s cubic-bezier(.22,.9,.3,1.2)}
.highfive.juice-highfive{animation:juice-highfive 1.2s cubic-bezier(.22,.9,.3,1.16)}
@keyframes juice-caustic{from{transform:translate3d(-1.5%,0,0) scale(1)}to{transform:translate3d(1.5%,1%,0) scale(1.035)}}
@keyframes juice-bubble-rise{0%,12%{transform:translate3d(0,0,0) scale(.75);opacity:0}22%{opacity:.58}74%{opacity:.34}100%{transform:translate3d(var(--drift),-122vh,0) scale(1.08);opacity:0}}
@keyframes juice-gold-hit{0%,100%{filter:none;transform:scale(1)}30%{filter:brightness(1.55) saturate(1.2) drop-shadow(0 0 15px #f2c141);transform:scale(1.07)}65%{filter:brightness(1.15) drop-shadow(0 0 8px #f2c141);transform:scale(.99)}}
@keyframes juice-source-wobble{25%{transform:rotate(-3deg) scale(.98)}55%{transform:rotate(3deg) scale(1.02)}80%{transform:rotate(-1deg)}}
@keyframes juice-whale-puff{35%{transform:scale(1.06,.95) rotate(-2deg)}68%{transform:scale(.98,1.04) rotate(2deg)}}
@keyframes juice-whale-mirror{32%{transform:translateX(-7px) rotate(-4deg)}65%{transform:translateX(5px) rotate(4deg)}}
@keyframes juice-whale-wave{30%{transform:translateY(-10px) rotate(-2deg)}65%{transform:translateY(5px) rotate(2deg)}}
@keyframes juice-whale-think{35%{transform:rotate(-5deg) translateY(-3px)}72%{transform:rotate(4deg)}}
@keyframes juice-idle{50%{transform:scale(1.045);filter:drop-shadow(0 0 11px rgba(242,193,65,.58))}}
@keyframes juice-ring{50%{transform:scale(1.055);opacity:.62}}
@keyframes juice-reward-pulse{0%{transform:scale(.35) rotate(-10deg)}58%{transform:scale(1.2) rotate(7deg)}78%{transform:scale(.96) rotate(-2deg)}100%{transform:scale(1)}}
@keyframes juice-highfive{0%{transform:translateY(18px) scale(.88);opacity:.2}65%{transform:translateY(-5px) scale(1.04);opacity:1}100%{transform:none;opacity:1}}
@keyframes juice-board-win{0%,100%{box-shadow:var(--shadow)}38%{box-shadow:0 10px 0 rgba(104,65,30,.24),0 0 0 10px rgba(242,193,65,.28),0 0 48px rgba(255,248,220,.82)}}
@keyframes juice-scale-cheer{0%,100%{transform:translate(-50%,-50%)}30%{transform:translate(-50%,-50%) translateY(-10px) scale(1.035) rotate(-1deg)}58%{transform:translate(-50%,-50%) translateY(3px) scale(.99) rotate(1deg)}78%{transform:translate(-50%,-50%) translateY(-3px) scale(1.01)}}
@keyframes juice-correct-cheer{0%,100%{transform:none}28%{transform:translateY(-24px) rotate(-5deg) scale(1.12)}52%{transform:translateY(2px) rotate(4deg) scale(.98)}76%{transform:translateY(-9px) rotate(-2deg) scale(1.05)}}
@keyframes juice-pearl-catch{0%,100%{transform:none}45%{transform:translateY(-6px) scale(1.1)}72%{transform:translateY(2px) scale(.98)}}
@keyframes juice-progress-pop{0%,100%{transform:none}42%{transform:scale(1.75) rotate(16deg);filter:brightness(1.55) drop-shadow(0 0 13px #f2c141)}72%{transform:scale(.9) rotate(-5deg)}}
@media(prefers-reduced-motion:reduce){
  .fx-ambient,.fx-celebration,.fx-spotlight,.fx-flying-pearl{display:none!important}
  .juice-gold-hit,.juice-source-wobble,.hero.juice-ma-29,.hero.juice-ma-45,.hero.juice-ma-46,.hero.juice-ma-24,.juice-idle,.juice-hint-ring::after,.reward-star.juice-reward-pulse,.highfive.juice-highfive{animation:none!important}
  .juice-hint-ring::after{opacity:.72}
}
@media(prefers-reduced-motion:reduce){.fx-success-ring,.fx-progress-star,.fx-touch-ring{display:none!important}.board.juice-board-win,.scale-sprite.juice-scale-cheer,.hero.juice-correct-cheer,.hero.juice-pearl-catch,.pan.juice-pearl-catch .pan-bowl,.round-star.juice-progress-pop{animation:none!important}.juice-pressed-glow{filter:none!important}}
