/* Monkey stage geometry inside the 390×446 stage host. Art comes from the theme. */
.monkey-stage{position:absolute;inset:0}
.ms-ring{position:absolute;left:50%;top:0;width:344px;height:344px;margin-left:-172px}
.ms-wheel{position:absolute;inset:26px;width:292px;height:292px;filter:drop-shadow(0 6px 8px rgba(0,0,0,.45));transition:transform 1.2s ease-out}
.monkey-stage.running .ms-wheel{animation:ms-spin 2.4s linear infinite}
@keyframes ms-spin{to{transform:rotate(360deg)}}
.ms-hub{position:absolute;left:50%;top:50%;width:116px;height:116px;margin:-58px 0 0 -58px;display:grid;place-items:center;z-index:2}
.ms-monkey{position:absolute;inset:-14px;width:144px;height:144px;object-fit:contain;filter:drop-shadow(0 4px 4px rgba(0,0,0,.45))}
.sr-app[data-phase=bet] .ms-monkey{opacity:0}
.monkey-stage.celebrate .ms-monkey{animation:ms-hop .5s ease-out 3}
@keyframes ms-hop{50%{transform:translateY(-10px) scale(1.06)}}

.ms-basket{--sr-pos:translate(-50%,-50%) rotate(var(--a)) translateY(-134px) rotate(calc(-1*var(--a)));left:50%;top:50%;width:82px;height:82px;transform:var(--sr-pos);z-index:3;transition:filter .15s,transform .12s}
.ms-basket .sr-market-art{filter:drop-shadow(0 4px 3px rgba(0,0,0,.5))}
/* the ×50 basket touches the trend bar: drop its stake labels beside the handle */
.ms-basket[data-slot="0"] .sr-total,.ms-basket[data-slot="0"] .sr-mine{top:14px}
.ms-basket.chase{filter:brightness(1.35) drop-shadow(0 0 10px var(--sr-glow,#fff2a8)) drop-shadow(0 0 4px #fff);transform:var(--sr-pos) scale(1.12)}
.ms-basket.mine .sr-market-art{filter:drop-shadow(0 0 6px var(--sr-accent,#ffd447))}
.monkey-stage.celebrate .sr-market:not(.lit){filter:brightness(.55) saturate(.6)}
.sr-market.lit{z-index:4;animation:ms-lit .7s ease-in-out infinite alternate}
.ms-basket.lit{transform:var(--sr-pos) scale(1.16)}
@keyframes ms-lit{from{filter:brightness(1.1) drop-shadow(0 0 6px var(--sr-glow,#fff2a8))}to{filter:brightness(1.45) drop-shadow(0 0 16px var(--sr-accent,#ffd447))}}

.ms-glow{position:absolute;left:50%;top:50%;width:170px;height:170px;margin:-85px 0 0 -85px;opacity:0;transform:rotate(var(--a,0deg)) translateY(-134px) rotate(calc(-1*var(--a,0deg)));z-index:2;pointer-events:none}
.ms-glow.on{opacity:1;animation:ms-glow 1.4s linear infinite}
@keyframes ms-glow{to{transform:rotate(var(--a,0deg)) translateY(-134px) rotate(calc(-1*var(--a,0deg) + 360deg))}}

.ms-fx{position:absolute;inset:-30px;pointer-events:none;z-index:5}
.ms-firework{position:absolute;width:150px;height:150px;opacity:0;animation:ms-burst 1.1s ease-out calc(var(--i)*.28s) 2 both}
.ms-firework:nth-child(1){left:6%;top:4%}.ms-firework:nth-child(2){right:4%;top:12%}.ms-firework:nth-child(3){left:32%;top:-8%}
@keyframes ms-burst{0%{transform:scale(.2);opacity:0}25%{opacity:1}100%{transform:scale(1.15);opacity:0}}
.ms-spark{position:absolute;left:50%;top:50%;width:24px;height:24px;opacity:0;animation:ms-spark 1s ease-out calc(var(--i)*.06s) both}
@keyframes ms-spark{0%{transform:rotate(calc(var(--i)*36deg)) translateY(0) scale(.4);opacity:1}100%{transform:rotate(calc(var(--i)*36deg)) translateY(-170px) scale(1);opacity:0}}

.ms-combos{position:absolute;left:0;right:0;top:350px;height:96px;display:flex;justify-content:center;gap:22px}
.ms-combo{position:relative;width:138px;height:92px;transition:transform .12s}
.ms-combo .sr-market-art{filter:drop-shadow(0 4px 3px rgba(0,0,0,.5))}
.ms-combo.chase{filter:brightness(1.3)}
.ms-combo.lit{transform:scale(1.08)}
