  /* ── CAPA DE FEEDBACK/CELEBRACIÓN (js/core/utils.js: floatText/popEl/celebrate) ── */

  /* FLOAT TEXT */
  .float-text{
    position:fixed;transform:translate(-50%,0);pointer-events:none;z-index:2100;
    font-size:14px;font-weight:800;color:var(--green);
    text-shadow:0 2px 8px rgba(0,0,0,.5);
    opacity:0;transition:transform .9s ease-out,opacity .9s ease-out;
  }
  .float-text.rise{opacity:1;transform:translate(-50%,-46px);}
  .float-text.xp{color:var(--gold);}
  .float-text.warn{color:var(--red);}

  /* POP (micro-escala en contadores/tarjetas) */
  @keyframes popScale{0%{transform:scale(1);}45%{transform:scale(1.35);}100%{transform:scale(1);}}
  .pop{animation:popScale .4s ease-out;}

  /* BANNER (rareza: raro) */
  .celebrate-banner{
    position:fixed;top:70px;left:50%;transform:translateX(-50%) translateY(-10px);
    background:linear-gradient(135deg,var(--card2),#20202a);border:1px solid rgba(124,155,255,.4);
    color:var(--text);font-weight:800;font-size:14px;padding:12px 22px;border-radius:16px;
    box-shadow:0 10px 30px rgba(0,0,0,.5);opacity:0;transition:.3s;z-index:2050;
  }
  .celebrate-banner.show{opacity:1;transform:translateX(-50%) translateY(0);}

  /* OVERLAY (rareza: epico/legendario) */
  .celebrate-overlay{
    position:fixed;inset:0;display:flex;align-items:center;justify-content:center;
    background:rgba(6,6,8,0);pointer-events:none;z-index:2400;opacity:0;transition:.35s;
  }
  .celebrate-overlay.show{opacity:1;background:rgba(6,6,8,.55);}
  .celebrate-card{
    text-align:center;padding:30px 34px;border-radius:22px;
    background:linear-gradient(180deg,var(--card2),#121216);
    border:1px solid rgba(255,207,77,.4);box-shadow:0 20px 60px rgba(0,0,0,.6);
    transform:scale(.85);transition:transform .35s cubic-bezier(.3,1.5,.4,1);
  }
  .celebrate-overlay.show .celebrate-card{transform:scale(1);}
  .celebrate-card.legendario{border-color:rgba(255,207,77,.7);box-shadow:0 0 60px rgba(255,207,77,.25),0 20px 60px rgba(0,0,0,.6);}
  .celebrate-icon{font-size:44px;}
  .celebrate-title{font-size:22px;font-weight:900;color:var(--gold);margin-top:6px;letter-spacing:.5px;}
  .celebrate-text{font-size:13px;color:var(--dim);margin-top:8px;max-width:280px;}

  /* CONFETI */
  .confetti-piece{
    position:fixed;top:30vh;width:7px;height:11px;border-radius:2px;z-index:2500;pointer-events:none;
    animation:confettiFall 1.1s ease-in forwards;
  }
  @keyframes confettiFall{
    0%{transform:translate(0,0) rotate(0deg);opacity:1;}
    100%{transform:translate(var(--dx,0),46vh) rotate(340deg);opacity:0;}
  }

  /* GOAL-GRADIENT: aceleración cerca del final de una barra */
  .bar-accelerate .fill{transition:width .5s cubic-bezier(.15,.9,.25,1.4)!important;}
