/* The opening has a beginning and a landing; the garden stays alive afterward. */
.reward-scene{width:min(460px,calc(100% - 24px));max-height:calc(100dvh - 24px);padding:24px;text-align:center;overflow-x:hidden;background:radial-gradient(ellipse at 50% 30%,#fff2d980,transparent 55%),var(--modal-surface);color:var(--modal-ink);border:1px solid var(--modal-border);border-radius:28px}
.reward-scene[open]{display:grid;grid-template-columns:1fr;gap:0 8px}
.reward-scene.has-replay[open]{grid-template-columns:1fr auto}
.reward-scene h2,.reward-scene #reward-scene-body{grid-column:1/-1}
.reward-scene h2{font-size:22px;line-height:1.4;margin:0;color:var(--modal-accent);letter-spacing:.025em}
.reward-scene .reward-scene-note{font-size:12px;line-height:1.6;color:var(--modal-muted);margin:8px 0 0}
.reward-scene .reward-scene-caption{font-size:11px;line-height:1.6;color:var(--modal-muted);margin:14px 4px 10px}
.reward-scene .modal-primary{margin-top:8px;background:var(--modal-accent);color:var(--modal-surface);padding:13px}
.reward-replay{align-self:end;margin-top:8px;padding:12px 14px;border:1px solid var(--modal-control-border);border-radius:13px;background:var(--modal-control);color:var(--modal-muted);font:inherit;font-size:11px;cursor:pointer}
.reward-scene-stage{position:relative;display:grid;place-items:center;height:185px;isolation:isolate;margin:8px 0 10px}
.scene-aura{position:absolute;width:250px;height:170px;border-radius:50%;background:radial-gradient(ellipse,#f5dca965,#dac8ec36 45%,transparent 73%);pointer-events:none;opacity:.8}
.chest-stage>.reward-chest{position:relative;width:155px;height:155px;overflow:visible;z-index:1;filter:drop-shadow(0 7px 10px #b8a9892b)}
.chest-stage .reward-chest.is-open .chest-lid{transform-box:fill-box;transform-origin:5% 95%;transform:translateY(-4px) rotate(-26deg)}
.chest-stage .chest-stars{transform-box:fill-box;transform-origin:50% 100%}
.chest-light{position:absolute;width:150px;height:120px;bottom:45px;background:linear-gradient(0deg,#ffe5a26b,transparent 94%);clip-path:polygon(42% 100%,58% 100%,100% 0,0 0);filter:blur(3px);opacity:.6}
.scene-star{position:absolute;font-size:24px;color:#d4b16a;opacity:0;z-index:2;pointer-events:none}
.star-a{left:calc(50% - 105px);top:75px;--star-tilt:-22deg;--star-delay:1.15s}.star-b{left:calc(50% + 84px);top:39px;--star-tilt:25deg;--star-delay:1.3s}.star-c{left:calc(50% + 64px);top:115px;font-size:18px;--star-tilt:16deg;--star-delay:1.45s}
.reward-scene .checkin-rewards{margin:0}.reward-scene .chest-reveal{display:none}.reward-scene .checkin-reward-cards{gap:9px}
.reward-scene .checkin-reward-card{grid-template-columns:1fr;gap:4px;text-align:center;position:relative;padding:12px 7px;background:var(--modal-control);border-color:var(--modal-control-border);overflow:hidden;border-radius:16px}
.reward-scene .checkin-reward-card>span{width:40px;height:40px;margin:0 auto 3px}
.reward-scene .checkin-reward-card strong{font-size:11px;line-height:1.4;min-height:16px;color:var(--modal-muted)}
.reward-scene .checkin-reward-card b{font-size:20px;color:var(--modal-accent);line-height:1.1}
.reward-scene .checkin-reward-card:after{content:'';position:absolute;inset:0;background:linear-gradient(115deg,transparent 20%,#fff6 45%,transparent 70%);transform:translateX(120%);pointer-events:none}
.season-rank-note{display:inline-block;background:var(--modal-control);padding:5px 13px;border:1px solid var(--modal-control-border);border-radius:30px}
.season-stage{height:180px;margin:5px 0 0}
.season-stage .scene-aura{width:265px;height:180px;background:radial-gradient(ellipse,#e4d2f367,#f7e8bf45 43%,transparent 70%)}
.season-garden{position:absolute;left:50%;bottom:0;width:270px;height:182px;transform:translateX(-50%);overflow:visible}
.garden-leaves{transform-box:fill-box;transform-origin:50% 100%}.garden-petals{transform-box:fill-box;transform-origin:50% 70%}
.season-bobo{position:relative;width:103px;height:103px;margin-top:-8px;z-index:2;filter:drop-shadow(0 7px 8px #b0a1c625)}
.season-bobo>.avatar-frame{display:block;width:100%;height:100%;padding:5px;background:radial-gradient(circle,#fffdfa,#f4eef8);box-shadow:0 0 0 6px #fff9,0 0 0 7px #dacbea66}
.season-bobo svg{display:block;width:100%;height:100%;overflow:visible}
.season-companion{position:absolute;width:35px;height:40px;z-index:2;filter:drop-shadow(0 3px 5px #d8ba8629)}
.season-companion svg{display:block;width:100%;height:100%;overflow:visible}
.companion-left{left:calc(50% - 99px);top:47px;--companion-turn:-12deg;--companion-delay:-.5s}.companion-right{left:calc(50% + 64px);top:93px;width:30px;height:35px;--companion-turn:9deg;--companion-delay:-1.6s}
.season-spark{position:absolute;color:#c7a16b;font-size:19px;opacity:.7}.season-spark-a{left:calc(50% - 27px);top:6px}.season-spark-b{right:calc(50% - 89px);top:29px;font-size:16px}
.settlement-coin{position:absolute;left:calc(50% - 13px);top:47px;width:26px;height:26px;z-index:3;opacity:0;pointer-events:none}.settlement-coin svg{width:100%;height:100%;display:block}
.settlement-total{display:grid;grid-template-columns:43px 1fr 28px;align-items:center;gap:8px;text-align:left;padding:13px 19px;margin:0 0 13px;border:1px solid #e8dbb9;border-radius:18px;background:linear-gradient(120deg,#fff8e8,#fffaf3 55%,#f6effa);box-shadow:0 4px 13px #b89d6810}
.settlement-currency{display:block;width:39px;height:45px}.settlement-currency svg{display:block;width:100%;height:100%}
.settlement-total>div{display:grid;gap:4px}.settlement-total>div>span{font-size:10px;color:#a38a68}.settlement-total strong{font-size:32px;line-height:1.1;color:#977656;font-variant-numeric:tabular-nums;font-weight:650}.wallet-glint{color:#ccb076;font-size:22px;text-align:center}
.settlement-frames{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.settlement-frame{position:relative;display:grid;grid-template-columns:40px 1fr;gap:3px 9px;align-items:center;text-align:left;padding:10px;border:1px solid var(--modal-control-border);border-radius:15px;background:var(--modal-control)}
.settlement-frame>.avatar-frame{grid-row:1/3;display:block;width:39px;height:39px}.settlement-frame svg{width:100%;height:100%;display:block}.settlement-frame strong{font-size:11px;color:var(--modal-ink);font-weight:550}.settlement-frame small{font-size:9px;color:var(--modal-muted)}
@keyframes reward-window-in{from{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:none}}
@keyframes chest-anticipate{0%{transform:translateY(14px) scale(.8);opacity:0}22%{transform:translateY(-3px) scale(1.03);opacity:1}35%{transform:translateY(2px) scale(1.03,.96)}46%{transform:rotate(-5deg)}54%{transform:rotate(4deg)}63%{transform:rotate(-3deg)}80%{transform:translateY(-4px)}100%{transform:none;opacity:1}}
@keyframes scene-lid-open{0%,18%{transform:none}32%{transform:translateY(2px) rotate(3deg)}78%{transform:translateY(-5px) rotate(-31deg)}100%{transform:translateY(-4px) rotate(-26deg)}}
@keyframes scene-light-bloom{0%{opacity:0;transform:scale(.55)}70%{opacity:1;transform:scale(1.08)}100%{opacity:.8;transform:scale(1)}}
@keyframes scene-stars-rise{0%{opacity:0;transform:translateY(26px) scale(.5)}70%{opacity:1;transform:translateY(-5px) scale(1.08)}100%{opacity:1;transform:none}}
@keyframes scene-star-burst{0%{opacity:0;transform:translateY(18px) scale(.25) rotate(0)}35%{opacity:1}100%{opacity:0;transform:translateY(-34px) scale(1.1) rotate(var(--star-tilt))}}
@keyframes chest-prize-arrive{from{opacity:0;transform:translateY(-24px) scale(.8)}65%{opacity:1;transform:translateY(3px) scale(1.035,.97)}to{opacity:1;transform:none}}
@keyframes prize-sheen{from{transform:translateX(-120%)}to{transform:translateX(120%)}}
@keyframes garden-arrive{from{opacity:0;transform:translateX(-50%) translateY(17px) scale(.92)}to{opacity:1;transform:translateX(-50%)}}
@keyframes season-bobo-arrive{0%{opacity:0;transform:translateY(27px) scale(.7)}65%{opacity:1;transform:translateY(-6px) scale(1.07)}85%{transform:translateY(2px) scale(.99)}100%{opacity:1;transform:none}}
@keyframes settlement-coin-arc{0%{opacity:0;transform:translate(0,0) rotateY(0) scale(.6)}20%{opacity:1}50%{opacity:1;transform:translate(var(--coin-x),-36px) rotateY(180deg) scale(1)}100%{opacity:0;transform:translate(calc(var(--coin-x)*.35),145px) rotateY(350deg) scale(.65)}}
@keyframes frame-unlock{from{opacity:0;transform:translateY(17px) scale(.88)}68%{opacity:1;transform:translateY(-3px) scale(1.035)}to{opacity:1;transform:none}}
@keyframes reward-float{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-5px) rotate(1deg)}}
@keyframes reward-glow{0%,100%{opacity:.55}50%{opacity:.95}}
@keyframes companion-float{0%,100%{transform:translateY(2px) rotate(var(--companion-turn))}50%{transform:translateY(-6px) rotate(calc(var(--companion-turn) - 5deg))}}
@keyframes garden-sway{0%,100%{transform:rotate(-1deg)}50%{transform:rotate(2deg)}}
html.rabbit-animations .reward-scene[open]{animation:reward-window-in .45s cubic-bezier(.22,.61,.36,1) both}
html.rabbit-animations .scene-playing .chest-stage>.reward-chest{animation:chest-anticipate 1.8s ease-in-out both,reward-float 4s 1.8s ease-in-out infinite}
html.rabbit-animations .scene-playing .chest-stage .chest-lid{animation:scene-lid-open 1.35s .65s cubic-bezier(.22,.61,.36,1) both}
html.rabbit-animations .scene-playing .scene-aura{animation:scene-light-bloom 1s .6s ease-out both,reward-glow 4s 1.6s ease-in-out infinite}
html.rabbit-animations .scene-playing .chest-light{animation:scene-light-bloom 1.2s .9s ease-out both,reward-glow 4s 2.1s ease-in-out infinite}
html.rabbit-animations .scene-playing .chest-stage .chest-stars{animation:scene-stars-rise 1.2s 1.1s cubic-bezier(.22,.61,.36,1) both}
html.rabbit-animations .scene-playing .scene-star{animation:scene-star-burst 1.6s var(--star-delay) ease-out both}
html.rabbit-animations .scene-playing .checkin-reward-card{animation:chest-prize-arrive .65s cubic-bezier(.22,.61,.36,1) both;animation-delay:calc(1.75s + var(--reward-order)*.18s)}
html.rabbit-animations .scene-playing .checkin-reward-card:after{animation:prize-sheen 1.1s ease-out both;animation-delay:calc(2.15s + var(--reward-order)*.18s)}
html.rabbit-animations .checkin-reward-card>span{animation:reward-float 3.7s calc(var(--reward-order)*-.8s) ease-in-out infinite}
html.rabbit-animations .checkin-reward-card .brush-body{animation:brush-idle 4.2s ease-in-out infinite}
html.rabbit-animations .checkin-reward-card .star-leaves,html.rabbit-animations .season-companion .star-leaves{animation:leaf-idle 3.5s ease-in-out infinite}
html.rabbit-animations .checkin-reward-card .star-eye,html.rabbit-animations .season-companion .star-eye{animation:star-blink 4.7s ease-in-out infinite}
html.rabbit-animations .scene-playing .season-garden{animation:garden-arrive 1s ease-out both}
html.rabbit-animations .scene-playing .season-bobo{animation:season-bobo-arrive 1.2s .18s cubic-bezier(.22,.61,.36,1) both,reward-float 3.7s 1.4s ease-in-out infinite}
html.rabbit-animations .season-companion{animation:companion-float 3.9s var(--companion-delay) ease-in-out infinite}
html.rabbit-animations .garden-leaves,html.rabbit-animations .garden-petals{animation:garden-sway 4.7s ease-in-out infinite}
html.rabbit-animations .season-spark,html.rabbit-animations .wallet-glint{animation:reward-glow 3s ease-in-out infinite}
html.rabbit-animations .scene-playing .settlement-coin{animation:settlement-coin-arc 1.3s ease-in-out both;animation-delay:calc(.7s + var(--coin-index)*.12s)}
html.rabbit-animations .scene-playing .settlement-frame{animation:frame-unlock .65s cubic-bezier(.22,.61,.36,1) both;animation-delay:calc(1.7s + var(--frame-order)*.16s)}
html[data-theme=night] .reward-scene{background:radial-gradient(ellipse at 50% 25%,#55475944,transparent 60%),var(--modal-surface)}html[data-theme=night] .settlement-total{background:linear-gradient(120deg,#423626,#342b43);border-color:#69523a}html[data-theme=night] .settlement-total strong{color:#e7c899}html[data-theme=night] .settlement-total>div>span{color:#c3aa88}html[data-theme=night] .season-bobo>.avatar-frame{background:#3e334c;box-shadow:0 0 0 6px #56436577,0 0 0 7px #76628b55}
@media(max-height:650px){.reward-scene{padding:18px}.reward-scene h2{font-size:20px}.reward-scene-stage{height:150px}.chest-stage>.reward-chest{width:133px;height:133px}.season-stage{height:145px}.season-garden{width:232px;height:156px}.season-bobo{width:89px;height:89px;margin-top:0}.companion-left{top:28px}.companion-right{top:70px}.reward-scene .checkin-reward-card{padding:9px 5px}.reward-scene .checkin-reward-card>span{width:34px;height:34px}.reward-scene .reward-scene-caption{margin:10px 0 5px}.settlement-total{padding:10px 17px;margin:0 0 10px}.settlement-frame{padding:7px}.reward-scene .modal-primary{padding:11px}.reward-replay{padding:10px 12px}}
@media(max-width:350px){.reward-scene{padding:15px}.reward-scene .checkin-reward-card strong{font-size:10px}.settlement-frame{grid-template-columns:32px 1fr;gap:3px 6px}.settlement-frame>.avatar-frame{width:31px;height:31px}.settlement-frame strong{font-size:10px}.reward-replay{padding-left:9px;padding-right:9px}}
