/* Efectos del Bufón Dorado */
.bf-card{--px:0;--py:0;--mx:50%;--my:50%}
.bf-media{position:relative;overflow:hidden;animation:none!important}
.bf-img{position:absolute;inset:-4%;transform:translate(calc(var(--px) * -14px),calc(var(--py) * -10px)) scale(1);transition:transform .6s cubic-bezier(.2,.8,.2,1),filter .6s}
.bf-img .cover-img{transform:none!important}
.bf-card.hot .bf-img,.bf-card.react .bf-img{transform:translate(calc(var(--px) * -14px),calc(var(--py) * -10px)) scale(1.07);filter:saturate(1.12) contrast(1.04)}
.bf-light{position:absolute;inset:0;pointer-events:none;mix-blend-mode:screen;opacity:0;transition:opacity .4s;
  background:radial-gradient(240px circle at var(--mx) var(--my),rgba(255,214,120,.38),transparent 60%),radial-gradient(400px circle at calc(100% - var(--mx)) 20%,rgba(155,93,229,.30),transparent 65%)}
.bf-card.hot .bf-light,.bf-card.react .bf-light{opacity:1}
.bf-motes{position:absolute;inset:0;pointer-events:none;transform:translate(calc(var(--px) * 22px),calc(var(--py) * 16px));transition:transform .5s ease-out}
.bf-motes i{position:absolute;border-radius:50%;background:radial-gradient(circle,#fff6d0,#f6d77b 45%,transparent 70%);opacity:.0;animation:bfMote linear infinite}
.bf-card.hot .bf-motes i,.bf-card.react .bf-motes i{opacity:.9}
@keyframes bfMote{from{transform:translateY(12px)}to{transform:translateY(-40px)}}
.bf-glint{position:absolute;width:70px;height:70px;margin:-35px 0 0 -35px;pointer-events:none;opacity:0;transform:scale(.3) rotate(0deg);
  background:radial-gradient(circle,rgba(255,255,255,.95) 0 6%,rgba(255,230,150,.6) 14%,transparent 42%),linear-gradient(90deg,transparent 46%,rgba(255,255,255,.9) 50%,transparent 54%),linear-gradient(0deg,transparent 46%,rgba(255,255,255,.9) 50%,transparent 54%);
  mix-blend-mode:screen;transition:opacity .3s,transform .5s cubic-bezier(.2,.8,.2,1)}
.bf-card.hot .bf-glint,.bf-card.react .bf-glint{opacity:1;transform:scale(1) rotate(45deg);animation:bfGlint 1.8s ease-in-out .4s infinite}
@keyframes bfGlint{50%{transform:scale(.7) rotate(90deg);opacity:.6}}

/* Comodín en los rodillos */
.bf-sym{position:relative;display:block;width:86%;aspect-ratio:1/1;border-radius:14px;padding:3px;background:var(--metal);box-shadow:0 4px 10px rgba(0,0,0,.45),0 0 0 1px #5c400a}
.bf-sym img{display:block;width:100%;height:100%;object-fit:cover;border-radius:11px}
.bf-sym::after{content:"";position:absolute;inset:3px;border-radius:11px;pointer-events:none;box-shadow:inset 0 0 0 2px rgba(255,241,184,.35),inset 0 -14px 20px rgba(42,8,74,.45)}
.cell.win .bf-sym{animation:symwin .55s ease-in-out infinite alternate}

/* Celebración */
.bf-cele{position:fixed;inset:0;z-index:260;overflow:hidden;cursor:pointer;background:radial-gradient(70% 80% at 62% 50%,rgba(106,44,154,.55),rgba(5,3,10,.92) 70%);animation:fade .25s;transition:opacity .45s}
.bf-cele.out{opacity:0}
.bf-cele canvas{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none}
.bf-fig{position:absolute;right:-2%;bottom:0;height:96%;max-width:none;z-index:1;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 24%);mask-image:linear-gradient(90deg,transparent 0,#000 24%);
  animation:bfIn .8s cubic-bezier(.2,.9,.2,1.05) both,bfBreath 3s ease-in-out .8s infinite}
@keyframes bfIn{from{transform:translateX(30%) scale(1.06);opacity:0}to{transform:none;opacity:1}}
@keyframes bfBreath{50%{transform:scale(1.015)}}
.bf-cele-txt{position:absolute;left:6%;top:50%;transform:translateY(-50%);z-index:3;text-align:left;animation:pop .5s .3s both}
.bf-cele-k{font-family:var(--serif);font-size:clamp(26px,5vw,52px);font-weight:700;color:#fff;text-shadow:0 4px 20px rgba(0,0,0,.8)}
.bf-cele-v{font-size:clamp(54px,11vw,128px);line-height:1;filter:drop-shadow(0 6px 18px rgba(0,0,0,.8)) drop-shadow(0 0 30px rgba(246,215,123,.35))}
.bf-cele-s{color:var(--gold-l);font-weight:800;letter-spacing:4px;text-transform:uppercase;margin-top:6px}
@media (max-width:640px){
  .bf-cele{background:radial-gradient(90% 70% at 50% 70%,rgba(106,44,154,.6),rgba(5,3,10,.97) 75%)}
  .bf-fig{height:72%;right:-28%;opacity:.95}
  .bf-cele-txt{left:5%;top:30%}
}
@media (prefers-reduced-motion:reduce){.bf-fig{animation:none}.bf-img{transition:none}}

.pt-item .bf-sym{width:52px;flex:none}
.lobby .bf-card .cover{animation:none}
