/* Zumi: Shape Blossoms — expressive animation layer. Core layout is unchanged. */
#fx-layer { position: fixed; inset: 0; z-index: 65; overflow: hidden; pointer-events: none; contain: layout style; }
#fx-layer * { pointer-events: none !important; }
.juice-enabled .juice-source { opacity: 0 !important; animation: none !important; transform: none !important; }
.juice-enabled #gameBoard.gentle-nudge { animation: none; }
.juice-enabled #gameBoard.correct-bloom::after { animation: none; }
.juice-actor { position: absolute; left: 0; top: 0; width: var(--actor-w); height: var(--actor-h); transform: translate3d(var(--actor-x),var(--actor-y),0); }
.juice-actor[hidden] { display: none !important; }
.juice-puppet { width: 100%; height: 100%; transform-origin: 50% 68%; }
.juice-puppet svg { display: block; width: 100%; height: 100%; overflow: visible; filter: drop-shadow(0 5px 5px #45322138); }
.juice-zumi .juice-puppet { animation: juice-hover 3.4s ease-in-out infinite; }
.juice-ori .juice-puppet { animation: juice-breathe 5.8s ease-in-out infinite; }
.juice-bodi .juice-puppet { animation: juice-breathe 4.8s ease-in-out infinite; }
.juice-wing-left,.juice-wing-right,.juice-tail,.juice-point-wing,.juice-bodi-paw { transform-box: view-box; }
.juice-wing-left { transform-origin: 33% 44%; animation: juice-wing-left .44s ease-in-out infinite; }
.juice-wing-right { transform-origin: 67% 44%; animation: juice-wing-right .44s ease-in-out infinite; }
.juice-tail { transform-origin: 50% 73%; animation: juice-tail 2.6s ease-in-out infinite; }
.juice-point-wing { transform-origin: 58% 45%; animation: juice-point 5.4s ease-in-out infinite; }
.juice-bodi-paw { transform-origin: 69% 52%; animation: juice-wave 3.6s ease-in-out infinite; }
.juice-eyelid { transform-box: fill-box; transform-origin: 50% 50%; transform: scaleY(0); animation: juice-blink 7100ms ease-in-out infinite; }
.juice-eyelid.second { animation-delay: .04s; }
.juice-ori .juice-eyelid { animation-duration: 8.3s; animation-delay: 1.9s; }
.juice-bodi .juice-eyelid { animation-duration: 6.7s; animation-delay: .5s; }
.juice-zumi.juice-excited .juice-wing-left,.juice-zumi.juice-excited .juice-wing-right { animation-duration: .28s; }
.juice-paused .juice-puppet,.juice-paused svg * { animation-play-state: paused !important; }
.juice-paused .juice-idle-cta,.juice-paused .progress-star { animation-play-state: paused !important; }
@keyframes juice-hover { 0%,100% { transform: translateY(0) rotate(-2deg); } 48% { transform: translateY(-9px) rotate(2deg); } }
@keyframes juice-breathe { 0%,100% { transform: scale(1) rotate(-.5deg); } 52% { transform: scale(1.024,1.012) rotate(.7deg); } }
@keyframes juice-wing-left { 0%,100% { transform: rotate(-4deg) scaleX(1); } 50% { transform: rotate(12deg) scaleX(.88); } }
@keyframes juice-wing-right { 0%,100% { transform: rotate(4deg) scaleX(1); } 50% { transform: rotate(-12deg) scaleX(.88); } }
@keyframes juice-tail { 0%,100% { transform: rotate(-3deg); } 50% { transform: rotate(4deg); } }
@keyframes juice-point { 0%,62%,100% { transform: rotate(0); } 74% { transform: rotate(-7deg); } 85% { transform: rotate(2deg); } }
@keyframes juice-wave { 0%,50%,100% { transform: rotate(0); } 62%,84% { transform: rotate(-12deg); } 73%,95% { transform: rotate(5deg); } }
@keyframes juice-blink { 0%,44%,49%,100% { transform: scaleY(0); } 46%,47% { transform: scaleY(1); } }
.juice-bit,.juice-coin,.juice-ring,.juice-sun,.juice-feather,.juice-pollen { position: absolute; left: 0; top: 0; will-change: transform,opacity; }
.juice-bit { width: var(--bit-size,9px); height: var(--bit-size,9px); background: var(--bit-color,#f2c141); border-radius: 50% 12% 50% 12%; }
.juice-bit.spark { border-radius: 50%; background: #ffeaa0; box-shadow: 0 0 9px #f2c14180; }
.juice-bit.petal { border-radius: 75% 20% 65% 30%; background: #fff5c6; }
.juice-coin { width: var(--coin-size,44px); height: var(--coin-size,44px); background: var(--juice-coin) center/contain no-repeat; filter: drop-shadow(0 4px 4px #79501566); }
.juice-ring { width: 100px; height: 100px; border: 4px solid #efc561; border-radius: 50%; box-shadow: 0 0 20px #f2c14150,inset 0 0 16px #ffeeb450; }
.juice-sun { width: 230px; height: 230px; border-radius: 50%; background: radial-gradient(circle,#fff4b680,#ffd15c30 40%,transparent 70%); }
.juice-feather { width: 23px; height: 10px; border-radius: 100% 0 100% 0; background: linear-gradient(155deg,#fff9df,#c7bb75); box-shadow: inset 0 -1px #8a914b; }
.juice-pollen { width: 25px; height: 25px; border: 1px solid #efdd9a; border-radius: 50%; background: radial-gradient(circle,#fffbe990,transparent 68%); }
.juice-pollen::before,.juice-pollen::after { content:""; position:absolute; inset: 3px 11px; background:#fff7d9; border-radius:50%; transform:rotate(35deg); }
.juice-pollen::after { transform:rotate(-35deg); }
.juice-ambient { position:absolute; inset:0; overflow:hidden; opacity:.5; }
.juice-ambient > span { position:absolute; width:9px; height:13px; background:#fff0b9; border-radius:80% 15% 70% 25%; animation:juice-drift 18s ease-in-out infinite; }
.juice-ambient > span:nth-child(1) { left:2%; top:27%; }
.juice-ambient > span:nth-child(2) { right:2%; top:55%; animation-delay:-6s; animation-duration:23s; }
.juice-ambient > span:nth-child(3) { left:5%; top:77%; animation-delay:-12s; animation-duration:26s; }
@keyframes juice-drift { 0%,100% { transform:translate3d(0,0,0) rotate(0); opacity:.15; } 48% { transform:translate3d(12px,-55px,0) rotate(120deg); opacity:.65; } }
.juice-pause-ambient .juice-ambient span { animation-play-state:paused; }
.juice-enabled .juice-idle-cta { animation: juice-cta 2.4s ease-in-out infinite; }
@keyframes juice-cta { 0%,100% { scale:1; } 50% { scale:1.045; } }
.juice-enabled .progress-star:last-child:not(.done):first-child { animation:none; }
.juice-enabled .round-progress:has(.progress-star.done:nth-child(3)) .progress-star:last-child:not(.done) { animation:juice-cta 2.4s ease-in-out infinite; }
@media (orientation:portrait) {
  .juice-zumi .juice-puppet { animation-name:juice-hover-small; }
  .juice-puppet svg { filter:drop-shadow(0 3px 3px #45322130); }
  .juice-ambient { opacity:.35; }
}
@keyframes juice-hover-small { 0%,100% { transform:translateY(-1px) rotate(-2deg); } 50% { transform:translateY(-5px) rotate(2deg); } }
@media (prefers-reduced-motion:reduce) {
  #fx-layer .juice-puppet,#fx-layer svg * { animation:none !important; transform:none; }
  #fx-layer .juice-eyelid { transform:scaleY(0) !important; }
  #fx-layer .juice-ambient { display:none; }
  .juice-enabled .juice-idle-cta { animation:none !important; }
  .juice-enabled .progress-star { animation:none !important; }
}
.juice-reduced #fx-layer .juice-puppet,.juice-reduced #fx-layer svg * { animation:none !important; transform:none; }
.juice-reduced #fx-layer .juice-eyelid { transform:scaleY(0) !important; }
.juice-reduced #fx-layer .juice-ambient { display:none; }
.juice-reduced .juice-idle-cta { animation:none !important; }
.juice-reduced .progress-star { animation:none !important; }
