/* Vela juice: decorative effects, never an input or a mathematical counter. */
#fx-layer{position:fixed;inset:0;pointer-events:none;z-index:160;overflow:hidden;contain:layout style paint}
#fx-layer *{pointer-events:none!important}
#fx-layer.fx-paused{visibility:hidden}
.fx-bit,.fx-star,.fx-ring,.fx-copy,.fx-thought{position:absolute;left:0;top:0;will-change:transform,opacity}
.fx-star{width:58px;height:58px;object-fit:contain;filter:drop-shadow(0 3px 3px #8a552c55) drop-shadow(0 0 7px #f2c14188)}
.fx-bit{width:8px;height:8px;border-radius:50%;background:#f2c141;box-shadow:0 0 6px #f2c14166}
.fx-bit.petal{border-radius:85% 15% 85% 15%}
.fx-ring{width:80px;height:80px;border:3px solid #f2c141aa;border-radius:50%;background:radial-gradient(circle,transparent 35%,#fff8e655 67%,transparent 70%)}
.fx-copy{object-fit:contain;transform-origin:50% 85%}
.fx-thought{width:12px;height:12px;border-radius:50%;background:#fff8e6;border:2px solid #c98f5a}
.fx-bloom{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 35%,#fff8e64d,transparent 68%);opacity:0}
.fx-hidden{visibility:hidden!important}
.paused .fx-hidden{visibility:visible!important}
.ambient{display:none} /* Replace central dust and unexplained basket steam with two edge motes. */
.bg img{animation:none}
#stage::after{animation-duration:8s}
.bubble:not(.hidden){animation:none}
.card.poked{animation:juiceTouch .24s cubic-bezier(.22,.9,.3,1.2)}
.card.flying{transition:none} /* Only the two FX copies fly; no duplicate fading toys. */
.level-node{color:#b7a586;opacity:.65}
.level-node.current{color:#a87622;opacity:1}
.level-node.done{color:#926627;opacity:1;background:transparent;border:0}
.level-node.current svg{width:100%;height:100%;filter:drop-shadow(0 0 4px #f2c14188)}
.level-node.done:not(:last-child)::after{background:#d4b675}
.reward-actions{position:relative;z-index:2;display:flex;align-items:center;justify-content:center;gap:16px}
.reward-actions .hud-button{width:56px;height:56px;flex:0 0 56px}
.dot:not(.on) img{filter:contrast(1.8) drop-shadow(0 1px 1px #79532355)}
@keyframes juiceTouch{0%,100%{transform:scale(1)}45%{transform:scale(1.16)}}
.card.mismatch{animation:juiceMixup .6s ease-in-out}
@keyframes juiceMixup{0%,100%{transform:none}25%{transform:rotate(-5deg) translateY(-5px)}65%{transform:rotate(4deg) translateY(2px)}}
.juice-idle>.asset-icon,.juice-idle>img{animation:juiceBreathe 2.2s ease-in-out infinite}
@keyframes juiceBreathe{0%,100%{transform:scale(1)}50%{transform:scale(1.04)}}
.overlay{background:rgba(61,50,38,.38);transition:opacity .45s ease}
@media(prefers-reduced-motion:reduce){#fx-layer{display:none}.card.poked,.card.mismatch,.juice-idle>*{animation:none!important}}
