.heart-img{font-size:18px;cursor:pointer;transition:all .2s ease}.heart-img.outline{color:#aaa}.heart-img.filled{color:#7c4dff}.favorite-btn:hover .heart-img.outline{color:#7c4dff}.favorite-btn:hover .heart-img.filled{text-shadow:0 0 6px rgba(124,77,255,.55)}.favorite-btn.clicked .heart-img{animation:heart-pop .7s cubic-bezier(.2,.7,.1,1.2)}.favorite-btn{position:relative}.favorite-btn.clicked::after{content:"";position:absolute;left:50%;top:50%;width:6px;height:6px;border:2px solid #7c4dff;border-radius:50%;transform:translate(-50%,-50%) scale(.2);opacity:.9;animation:ring .6s ease-out forwards}.favorite-btn.clicked::before{content:"";position:absolute;left:50%;top:50%;width:2px;height:2px;border-radius:50%;box-shadow:0 -14px 0 2px #7c4dff,12px -8px 0 2px #b388ff,14px 0 0 2px #7c4dff,12px 8px 0 2px #d1c4e9,0 14px 0 2px #7c4dff,-12px 8px 0 2px #b388ff,-14px 0 0 2px #7c4dff,-12px -8px 0 2px #d1c4e9,8px -12px 0 2px #9575cd,-8px 12px 0 2px #9575cd;transform:translate(-50%,-50%) scale(.2);opacity:.95;animation:confetti .7s ease-out forwards}@keyframes heart-pop{0%{transform:scale(1)}35%{transform:scale(1.35)}55%{transform:scale(.9)}100%{transform:scale(1.05)}}@keyframes ring{to{transform:translate(-50%,-50%) scale(6);opacity:0}}@keyframes confetti{60%{transform:translate(-50%,-50%) scale(1.6);opacity:1}100%{transform:translate(-50%,-50%) scale(2.2);opacity:0}}.favorites-link{color:#7c4dff;font-weight:600;text-decoration:none}.favorites-link:hover{text-decoration:underline}.bg-fav{background:#2d4fd9;color:#fff;line-height:1}#FavControls.active .favorites-link{filter:drop-shadow(0 0 6px rgba(124,77,255,.45))}