/* Forest stage geometry inside the 390×446 stage host. Art comes from the theme. */
.forest-stage{position:absolute;inset:0}
.fs-glade{position:absolute;inset:0 0 96px}

/* animals: pedestal at the bottom of the box, the animal sitting on it */
.fs-animal{width:84px;height:100px;z-index:3;transition:filter .15s,transform .12s}
.fs-animal .fs-pedestal{position:absolute;left:0;right:0;bottom:4px;width:100%;height:auto;filter:drop-shadow(0 4px 3px rgba(0,0,0,.45))}
.fs-animal .sr-market-art{position:absolute;left:8%;bottom:30%;width:84%;height:auto;filter:drop-shadow(0 3px 2px rgba(0,0,0,.4))}
.fs-animal[data-slot="0"]{left:14px;top:46px}
.fs-animal[data-slot="1"]{left:104px;top:8px}
.fs-animal[data-slot="2"]{left:202px;top:8px}
.fs-animal[data-slot="3"]{left:292px;top:46px}
.fs-animal[data-slot="4"]{left:6px;top:152px}
.fs-animal[data-slot="5"]{left:300px;top:152px}
.fs-animal[data-slot="6"]{left:72px;top:226px;width:96px;height:112px}
.fs-animal[data-slot="7"]{left:212px;top:214px;width:110px;height:124px}
/* stake labels sit beside the ears so the top row stays clear of the trend bar */
.fs-animal .sr-total,.fs-animal .sr-mine{top:6px}
.fs-animal.chase{filter:brightness(1.35) drop-shadow(0 0 10px var(--sr-glow,#fff2a8)) drop-shadow(0 0 4px #fff);transform:scale(1.1)}
.fs-animal.mine .fs-pedestal{filter:drop-shadow(0 0 6px var(--sr-accent,#ffd447))}
.forest-stage.celebrate .sr-market:not(.lit){filter:brightness(.55) saturate(.6)}
.fs-animal.lit{transform:scale(1.14)}
.forest-stage .sr-market.lit{z-index:4;animation:fs-lit .7s ease-in-out infinite alternate}
@keyframes fs-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))}}

/* pond hub: the runtime puts the countdown here; after the stop the winner pops up */
.fs-hub{position:absolute;left:145px;top:118px;width:100px;height:100px;display:grid;place-items:center;z-index:2}
.fs-glow{position:absolute;left:-35px;top:-35px;width:170px;height:170px;opacity:0;pointer-events:none}
.fs-glow.on{opacity:1;animation:fs-spin 3s linear infinite}
@keyframes fs-spin{to{transform:rotate(360deg)}}
.fs-winner{position:absolute;inset:-6px;width:112px;height:112px;object-fit:contain;opacity:0;transform:scale(.4);transition:opacity .25s,transform .35s cubic-bezier(.2,1.6,.4,1)}
.fs-winner.on{opacity:1;transform:scale(1)}

/* gift plates */
.fs-gifts{position:absolute;left:0;right:0;bottom:6px;height:88px;display:flex;justify-content:center;gap:14px}
.fs-gift{position:relative;width:172px;height:88px;transition:transform .12s,filter .15s}
.fs-gift .fs-frame{position:absolute;inset:6px 0 0;width:100%;height:82px;object-fit:fill;filter:drop-shadow(0 4px 3px rgba(0,0,0,.45))}
.fs-gift .sr-market-art{position:absolute;left:50%;top:-14px;width:86px;height:86px;margin-left:-43px;filter:drop-shadow(0 4px 3px rgba(0,0,0,.45))}
.fs-gift .sr-mult{bottom:4px;font-size:15px;min-width:64px}
.fs-gift.chase{filter:brightness(1.35) drop-shadow(0 0 10px var(--sr-glow,#fff2a8))}
.fs-gift.lit{transform:scale(1.06)}
.fs-gift.mine .fs-frame{filter:drop-shadow(0 0 6px var(--sr-accent,#ffd447)) drop-shadow(0 4px 3px rgba(0,0,0,.45))}

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

/* forest chips have saturated centres: white value with an ink outline instead of plain ink */
.sr-app[class*="theme-star-forest"] .sr-chip-label{color:#fff;-webkit-text-stroke:3px var(--sr-ink,#3b1a06);paint-order:stroke fill;text-shadow:none}
/* RTL: mirror the pill (padding and art) so its decorated end stays under the coin icon, not the digits */
.sr-app[dir="rtl"][class*="theme-star-forest"] .sr-balance{position:relative;isolation:isolate;padding:0 6px 0 12px;background:none}
.sr-app[dir="rtl"][class*="theme-star-forest"] .sr-balance::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--sr-art-pill) center/100% 100% no-repeat;transform:scaleX(-1)}
