/* ── FLURRYBANK ANIMATIONS ── */

/* Page Transitions */
.page-enter{animation:pageEnter .4s cubic-bezier(.4,0,.2,1)}
@keyframes pageEnter{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}

/* Stagger children */
.stagger > *{opacity:0;animation:fadeUp .35s ease forwards}
.stagger > *:nth-child(1){animation-delay:.05s}
.stagger > *:nth-child(2){animation-delay:.1s}
.stagger > *:nth-child(3){animation-delay:.15s}
.stagger > *:nth-child(4){animation-delay:.2s}
.stagger > *:nth-child(5){animation-delay:.25s}
.stagger > *:nth-child(6){animation-delay:.3s}

/* Shimmer loading */
.skeleton{
  background:linear-gradient(90deg,rgba(180,130,230,.1) 25%,rgba(201,166,245,.2) 50%,rgba(180,130,230,.1) 75%);
  background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:8px;
}
.skeleton-text{height:1em;margin:.4rem 0}
.skeleton-title{height:1.5em;width:60%;margin:.4rem 0}
.skeleton-circle{border-radius:50%;width:50px;height:50px}

/* Toast notifications */
.toast-container{position:fixed;bottom:1.5rem;right:1.5rem;z-index:9999;display:flex;flex-direction:column;gap:.6rem}
.toast{
  display:flex;align-items:center;gap:.7rem;
  padding:.85rem 1.3rem;border-radius:14px;
  background:#fff;border:1px solid rgba(180,130,230,.25);
  box-shadow:0 8px 28px rgba(155,89,208,.2);
  min-width:260px;max-width:360px;
  animation:toastIn .3s cubic-bezier(.34,1.56,.64,1);
  font-size:.88rem;font-weight:600;color:#2d1f45;
}
.toast.hiding{animation:toastOut .3s ease forwards}
.toast-success{border-color:rgba(46,175,110,.3)}
.toast-error{border-color:rgba(224,85,85,.25)}
.toast-icon{font-size:1.2rem;flex-shrink:0}
@keyframes toastIn{from{opacity:0;transform:translateX(30px) scale(.9)}to{opacity:1;transform:translateX(0) scale(1)}}
@keyframes toastOut{to{opacity:0;transform:translateX(30px) scale(.9)}}

/* Pulse dot (online indicator) */
.pulse-dot{
  width:10px;height:10px;border-radius:50%;background:#2eaf6e;
  box-shadow:0 0 0 0 rgba(46,175,110,.5);
  animation:pulseRing 2s ease-in-out infinite;
}
@keyframes pulseRing{0%{box-shadow:0 0 0 0 rgba(46,175,110,.5)}70%{box-shadow:0 0 0 8px rgba(46,175,110,0)}100%{box-shadow:0 0 0 0 rgba(46,175,110,0)}}

/* Coin spin */
.coin-spin{display:inline-block;animation:coinSpin 3s ease-in-out infinite}
@keyframes coinSpin{0%,100%{transform:rotateY(0)}50%{transform:rotateY(180deg)}}

/* Crystal sparkle */
.sparkle{position:relative;display:inline-block}
.sparkle::before{
  content:'✦';position:absolute;top:-8px;right:-8px;
  font-size:.6rem;color:#e879b8;animation:sparklePop 2s ease-in-out infinite;
}
@keyframes sparklePop{0%,100%{opacity:0;transform:scale(.5) rotate(0)}40%{opacity:1;transform:scale(1) rotate(180deg)}80%{opacity:0}}
