@keyframes qnChestShake{0%,100%{transform:rotate(-7deg) scale(1.05)}20%{transform:rotate(7deg) scale(1.12)}40%{transform:rotate(-9deg) scale(1.18)}60%{transform:rotate(9deg) scale(1.14)}80%{transform:rotate(-5deg) scale(1.2)}}
.qn-chest-shake{animation:qnChestShake .55s ease-in-out infinite;filter:drop-shadow(0 0 12px rgba(255,190,0,.9))}
@keyframes qnChestPop{0%{transform:scale(.2);opacity:0}55%{transform:scale(1.25)}75%{transform:scale(.92)}100%{transform:scale(1);opacity:1}}
.qn-chest-pop{animation:qnChestPop .5s cubic-bezier(.2,1.3,.4,1) both}
@keyframes qnChestGlow{0%,100%{opacity:.3}50%{opacity:.9}}
.qn-chest-glow{position:absolute;left:50%;top:100px;width:240px;height:240px;transform:translate(-50%,-50%);border-radius:50%;pointer-events:none;background:radial-gradient(circle,rgba(255,215,0,.6),rgba(255,215,0,0) 68%);animation:qnChestGlow 1s ease-in-out infinite;z-index:0}
@keyframes qnChestBurst{0%{transform:translate(-50%,-50%) scale(.2) rotate(0);opacity:.95}100%{transform:translate(-50%,-50%) scale(2.6) rotate(60deg);opacity:0}}
.qn-chest-burst{position:absolute;left:50%;top:100px;width:220px;height:220px;transform:translate(-50%,-50%);pointer-events:none;z-index:1;background:conic-gradient(from 0deg,rgba(255,215,0,0),rgba(255,215,0,.95) 8%,rgba(255,215,0,0) 18%,rgba(255,215,0,.95) 30%,rgba(255,215,0,0) 42%,rgba(255,215,0,.95) 55%,rgba(255,215,0,0) 68%,rgba(255,215,0,.95) 80%,rgba(255,215,0,0) 92%);-webkit-mask:radial-gradient(circle,transparent 22%,#000 26%,#000 58%,transparent 64%);mask:radial-gradient(circle,transparent 22%,#000 26%,#000 58%,transparent 64%);animation:qnChestBurst .85s ease-out forwards}
.qn-chest-img-lg{width:112px;height:112px;object-fit:contain;filter:drop-shadow(0 6px 14px rgba(0,0,0,0.32))}