/* STARFALL — reusable member-activity motion preset. UI actions never wait for it. */
.activity-button:not(.cosmic-medal){position:relative}.activity-button{isolation:isolate;transition:background .5s,border-color .5s,box-shadow .65s,color .4s,filter .4s!important}.activity-button .button-gleam{position:absolute;inset:0;border-radius:inherit;overflow:hidden;pointer-events:none;z-index:4;opacity:.85}.button-gleam:before{content:'';position:absolute;inset:-70% -100%;background:linear-gradient(115deg,transparent 38%,#e9cfff00 42%,#f4e5ff90 49%,#b5dcff66 52%,transparent 60%);transform:translateX(-60%);opacity:0}.activity-button:hover>.button-gleam:before,.activity-button:focus-visible>.button-gleam:before{animation:activity-gleam 1.7s cubic-bezier(.18,.6,.25,1) both}.activity-button:active{filter:brightness(1.13)}
.activity-button.btn.primary,.activity-button.cosmic-button.primary,.activity-button.royal-card-button{box-shadow:inset 0 1px #fff3,0 5px 20px #aa76e322}.activity-button.btn.primary:hover,.activity-button.cosmic-button.primary:hover,.activity-button.royal-card-button:hover{box-shadow:inset 0 1px #fff6,0 0 0 1px #cfadff5c,0 7px 29px #a479e65c}.cosmic-medal.activity-button>.button-gleam,.royal-mini-medal.activity-button>.button-gleam{inset:0 6% 26%;border-radius:50%;mask-image:radial-gradient(ellipse,#000 35%,transparent 70%)}.royal-perk.activity-button>.button-gleam{opacity:.55}.nav .activity-button>.button-gleam,.bottom-nav .activity-button>.button-gleam{opacity:.28}
.cosmic-medal-glass,.royal-mini-medal .medal-art{transition:transform .8s cubic-bezier(.2,.7,.2,1),box-shadow 1s,border-color .7s!important}.cosmic-medal:hover .cosmic-medal-glass{transform:translateY(-6px) scale(1.07)}.royal-card-button .icon,.cosmic-button .icon,.btn.primary .icon{transition:transform .65s cubic-bezier(.2,.7,.2,1)}.activity-button:hover>.icon:last-child{transform:translateX(3px)}
.activity-fx-layer{pointer-events:none!important;overflow:hidden;z-index:90;contain:layout paint style}.activity-fx-layer.viewport-fx{position:fixed;inset:0;z-index:1000}.activity-fx-layer.dialog-fx{position:absolute;left:0;top:0;width:100%}.activity-burst{position:absolute;width:0;height:0;pointer-events:none}.activity-wave{position:absolute;width:40px;height:40px;left:-20px;top:-20px;border-radius:50%;border:1px solid #e6cbff;box-shadow:0 0 12px #ca8bff65,inset 0 0 15px #b2abff2b;animation:activity-wave 1.55s ease-out both}.activity-wave.wave-echo{animation-delay:.14s;border-color:#b3d8ff66;width:30px;height:30px;left:-15px;top:-15px}.activity-spark{position:absolute;left:0;top:0;width:4px;height:4px;border-radius:50%;background:var(--spark-color);color:var(--spark-color);box-shadow:0 0 9px var(--spark-color);font-size:12px;line-height:0;animation:activity-spark 1.65s var(--delay) cubic-bezier(.12,.6,.2,1) both}.activity-spark:nth-child(3n){background:transparent;box-shadow:none}
.spectacle-scene{position:absolute;inset:-8%;pointer-events:none;z-index:1;isolation:isolate}.spectacle-bloom{position:absolute;inset:3%;border-radius:50%;background:radial-gradient(ellipse,#ddafff68,#a475fc28 36%,transparent 68%);filter:blur(8px);animation:spectacle-bloom 4s ease-out both}.spectacle-rays{position:absolute;inset:-9%;background:repeating-conic-gradient(from 15deg,#c5a4ff00 0deg 10deg,#d2acff2b 11deg 17deg,#b8d4ff00 21deg 34deg);mask-image:radial-gradient(ellipse,#000 5%,transparent 66%);animation:spectacle-rays 4.1s cubic-bezier(.15,.6,.2,1) both}.spectacle-orbit{position:absolute;inset:22%;border:1px solid #d2abffac;box-shadow:0 0 13px #d1a7ff62,inset 0 0 8px #cba2ff24;border-radius:50%;animation:spectacle-orbit 3.5s .2s ease-out both}.spectacle-orbit.orbit-echo{inset:29%;border-color:#b8d9ffa1;animation-delay:.75s}.spectacle-mote{position:absolute;left:var(--mx);top:var(--my);font-size:19px;font-style:normal;color:#eacfff;text-shadow:0 0 13px #cb9aff;line-height:1;animation:spectacle-mote 3.5s var(--md) cubic-bezier(.2,.6,.2,1) both}.spectacle-mote:nth-child(3n){font-size:27px;color:#b8d8ff}.spectacle-mote:nth-child(4n){font-size:13px;color:#ffdaf0}.premium-confetti{z-index:8!important;pointer-events:none!important}.modal-head{position:relative;z-index:12}.royal-dialog .modal-head{z-index:12}.spectacle-reward{inset:-10% 3%}.spectacle-medal{inset:-16% 1%}.spectacle-medal .spectacle-mote{font-size:17px}.spectacle-benefit .spectacle-bloom{opacity:.65}
/* Longer sequences: entrance, anticipation, a soft peak, then a lingering glow. */
.activity-button:disabled>.button-gleam{display:none}.celebration .envelope{background:linear-gradient(135deg,#8a61b8,#694b96);border-color:#d5b4f485;box-shadow:0 16px 40px #6a3fa13d,inset 0 1px #efd8ff3d}.celebration .envelope:after{background:linear-gradient(33deg,#b293d3 49.5%,transparent 50%) left/50% 100%,linear-gradient(-33deg,#9573bd 49.5%,transparent 50%) right/50% 100%;background-repeat:no-repeat}.celebration .envelope-flap{background:linear-gradient(160deg,#ead6ff,#b793d8)}.celebration .envelope-card{background:linear-gradient(145deg,#fff5ff,#e8dafa);border-color:#f9ecff;color:#79519b;box-shadow:0 0 22px #d3a9ff25}.celebration .seal{background:linear-gradient(135deg,#e6c4ff,#aa76d7);border-color:#e8c9fc;color:#63318a;box-shadow:0 3px 10px #5d2b8745}.celebration .delivery-orbit{border-color:#b894e34d;box-shadow:0 0 0 23px #c399f209,0 0 0 48px #bca1ff06}.celebration h2{font-family:'Segoe UI','Microsoft YaHei',sans-serif;font-size:22px;font-weight:500;line-height:1.7;letter-spacing:.5px}
.royal-dialog-art img{animation:premium-art-arrive 2.7s cubic-bezier(.16,.65,.2,1) both!important}.royal-celebrate .royal-burst{animation:royal-rays 3.8s ease-out both}.royal-celebrate .royal-dialog-spark{animation:premium-star 3.4s .35s both}.royal-dialog:not(:has(.royal-celebrate)) .royal-dialog-spark{animation:premium-star 2.8s .4s both}.royal-artwork img{animation-duration:1.9s}.royal-artwork .royal-star{animation-duration:1.8s}.royal-dialog-content{box-shadow:0 20px 45px #0c041a33,0 0 44px #bb8ce624}.royal-dialog-perks>div>span{box-shadow:inset 0 1px 3px #fff,0 4px 13px #b186d51c}
.cosmic-dialog .medal-detail .medal-art .medal-color,.cosmic-dialog .medal-detail .medal-art .medal-muted{transition:opacity 1.25s .15s ease-in-out}.cosmic-dialog .medal-reveal-stage.revealing .medal-art{animation:premium-medal-awaken 3.15s cubic-bezier(.18,.65,.2,1) both}.cosmic-dialog .revealing .medal-art:after{animation:medal-shine 1.65s .8s ease-in-out}.cosmic-dialog .revealing .medal-halo{animation:premium-medal-glow 3.4s ease-out both}.cosmic-dialog .revealing .medal-ring{animation:medal-ring 2.5s .6s ease-out both}.cosmic-dialog .revealing .medal-star{animation:premium-star 3s var(--star-delay) both}.cosmic-dialog .revealing .cosmic-reveal-beam{animation:cosmic-beam 3.1s ease-out both}.cosmic-dialog .revealing .cosmic-reveal-ripple{animation:cosmic-ripple 2.9s .5s ease-out both}.cosmic-dialog .medal-reveal-stage:not(.revealing) .medal-art{animation:premium-medal-enter 1.25s cubic-bezier(.2,.7,.2,1) both}
.primary.activity-button>.button-gleam:before,.royal-card-button>.button-gleam:before{animation:activity-idle 6.8s 1s ease-in-out infinite}.activity-button:hover>.button-gleam:before,.activity-button:focus-visible>.button-gleam:before{animation:activity-gleam 1.7s cubic-bezier(.18,.6,.25,1) both}
@keyframes activity-idle{0%,63%{transform:translateX(-60%);opacity:0}72%{opacity:.25}88%,100%{transform:translateX(60%);opacity:0}}
@keyframes activity-gleam{0%{transform:translateX(-60%);opacity:0}18%{opacity:.2}48%{opacity:.7}100%{transform:translateX(60%);opacity:0}}
@keyframes activity-wave{0%{transform:scale(.35);opacity:0}15%{opacity:.8}100%{transform:scale(3.7);opacity:0}}
@keyframes activity-spark{0%{transform:translate(0,0) scale(.3);opacity:0}12%{opacity:.95}65%{opacity:.55}100%{transform:translate(var(--dx),var(--dy)) scale(.2);opacity:0}}
@keyframes spectacle-bloom{0%{transform:scale(.4);opacity:0}35%{transform:scale(1.02);opacity:.9}65%{transform:scale(1.12);opacity:.55}100%{transform:scale(1.3);opacity:0}}
@keyframes spectacle-rays{0%{transform:rotate(-25deg) scale(.65);opacity:0}35%{opacity:.9}75%{opacity:.55}100%{transform:rotate(35deg) scale(1.16);opacity:0}}
@keyframes spectacle-orbit{0%{transform:scale(.5) rotateX(30deg);opacity:0}20%{opacity:.8}100%{transform:scale(2.1) rotateX(55deg);opacity:0}}
@keyframes spectacle-mote{0%{transform:translateY(var(--travel)) scale(.2) rotate(-30deg);opacity:0}28%{opacity:.95}65%{opacity:.7}100%{transform:translateY(calc(var(--travel) * -1)) scale(.5) rotate(20deg);opacity:0}}
@keyframes premium-art-arrive{0%{opacity:0;transform:translateY(32px) scale(.68) rotate(-10deg)}35%{opacity:1;transform:translateY(-6px) scale(1.05) rotate(2deg)}65%{transform:translateY(2px) scale(.99) rotate(-1deg)}100%{opacity:1;transform:translateY(0) scale(1) rotate(0)}}
@keyframes premium-medal-awaken{0%{transform:scale(.86) translateY(10px);filter:brightness(.8)}25%{transform:scale(.95);filter:brightness(1.2)}48%{transform:scale(1.08) translateY(-5px);filter:brightness(1.18)}75%{transform:scale(1.01) translateY(-2px);filter:brightness(1.05)}100%{transform:scale(1);filter:brightness(1)}}
@keyframes premium-medal-glow{0%{opacity:0;transform:scale(.55)}42%{opacity:.45;transform:scale(1.18)}72%{opacity:.3}100%{opacity:.2;transform:scale(1)}}
@keyframes premium-medal-enter{from{opacity:.4;transform:translateY(10px) scale(.91)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes premium-star{0%{opacity:0;transform:scale(.2) translateY(18px)}30%{opacity:1;transform:scale(1.25) translateY(-4px)}65%{opacity:.8}100%{opacity:.65;transform:scale(1) translateY(0)}}
@media(max-width:680px){.spectacle-rays{inset:0}.spectacle-scene{inset:-4%}.spectacle-medal{inset:-8% 0}.spectacle-mote{font-size:16px}.activity-wave{box-shadow:0 0 8px #ca8bff55}.premium-confetti{opacity:.85}}
@media(prefers-reduced-motion:reduce){.activity-fx-layer,.spectacle-scene,.button-gleam,.premium-confetti{display:none!important}.royal-dialog-art img,.royal-celebrate .royal-burst,.royal-dialog .royal-dialog-spark,.cosmic-dialog .medal-reveal-stage .medal-art,.cosmic-dialog .revealing *{animation:none!important}.activity-button,.cosmic-medal-glass,.royal-mini-medal .medal-art,.cosmic-dialog .medal-art img{transition:none!important}}
[data-motion='reduced'] .activity-fx-layer,[data-motion='reduced'] .spectacle-scene,[data-motion='reduced'] .button-gleam,[data-motion='reduced'] .premium-confetti{display:none!important}[data-motion='reduced'] .royal-dialog-art img,[data-motion='reduced'] .royal-celebrate .royal-burst,[data-motion='reduced'] .royal-dialog .royal-dialog-spark,[data-motion='reduced'] .cosmic-dialog .medal-reveal-stage .medal-art,[data-motion='reduced'] .cosmic-dialog .revealing *{animation:none!important}[data-motion='reduced'] .activity-button,[data-motion='reduced'] .cosmic-medal-glass,[data-motion='reduced'] .royal-mini-medal .medal-art,[data-motion='reduced'] .cosmic-dialog .medal-art img{transition:none!important}
