.favorite-button{display:inline-flex;border:none;cursor:pointer;transition:all .2s cubic-bezier(.34,1.56,.64,1);background:transparent;padding:0;border-radius:50%;pointer-events:auto;outline:none;-webkit-tap-highlight-color:transparent}.favorite-button,.favorite-icon-wrapper{position:relative;align-items:center;justify-content:center}.favorite-icon-wrapper{display:flex;z-index:2;transition:transform .2s cubic-bezier(.34,1.56,.64,1)}.favorite-button:hover .favorite-icon-wrapper{transform:scale(1.15)}.favorite-button:active .favorite-icon-wrapper{transform:scale(.95)}.favorite-icon{width:1em;height:1em;transition:all .3s cubic-bezier(.34,1.56,.64,1)}.favorite-ripple{position:absolute;inset:0;border-radius:50%;background:currentColor;opacity:0;transform:scale(0);pointer-events:none;z-index:1}.favorite-button:active .favorite-ripple{animation:ripple .4s ease-out}@keyframes ripple{0%{transform:scale(.5);opacity:.3}to{transform:scale(1.5);opacity:0}}.favorite-button.active .favorite-icon{animation:heartPop .3s cubic-bezier(.34,1.56,.64,1)}@keyframes heartPop{0%{transform:scale(1)}50%{transform:scale(1.3)}to{transform:scale(1)}}.favorite-button.variant-ghost{color:rgba(255,255,255,.5)}.favorite-button.variant-ghost:hover{color:#fbbf24;background:rgba(251,191,36,.1)}.favorite-button.variant-ghost.active{color:#fbbf24;background:rgba(251,191,36,.15)}.favorite-button.variant-ghost.active:hover{background:rgba(251,191,36,.2)}.favorite-button.variant-glass{color:rgba(255,255,255,.7);background:rgba(0,0,0,.45);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.12);box-shadow:0 2px 8px rgba(0,0,0,.2),inset 0 1px 0 rgba(255,255,255,.1)}.favorite-button.variant-glass:hover{color:#fbbf24;background:rgba(0,0,0,.65);border-color:rgba(251,191,36,.3);box-shadow:0 4px 12px rgba(0,0,0,.3),0 0 20px rgba(251,191,36,.15),inset 0 1px 0 rgba(255,255,255,.1)}.favorite-button.variant-glass.active{color:#fbbf24;background:rgba(0,0,0,.7);border-color:rgba(251,191,36,.4);box-shadow:0 2px 10px rgba(251,191,36,.25),inset 0 1px 0 rgba(255,255,255,.05)}.favorite-button.variant-glass.active:hover{background:rgba(0,0,0,.8);box-shadow:0 4px 15px rgba(251,191,36,.35),0 0 25px rgba(251,191,36,.2),inset 0 1px 0 rgba(255,255,255,.05)}.favorite-button.size-sm{width:32px;height:32px}.favorite-button.size-sm .favorite-icon{font-size:14px}.favorite-button.size-md{width:40px;height:40px}.favorite-button.size-md .favorite-icon{font-size:18px}.favorite-button.size-lg{width:48px;height:48px}.favorite-button.size-lg .favorite-icon{font-size:22px}.favorite-button:focus-visible{outline:2px solid rgba(251,191,36,.6);outline-offset:3px}.favorite-button.variant-glass:focus-visible{outline-color:rgba(251,191,36,.7);outline-width:2px;outline-offset:3px}@media (prefers-reduced-motion:reduce){.favorite-button,.favorite-icon,.favorite-icon-wrapper{transition:none;animation:none}.favorite-button:active .favorite-icon-wrapper{transform:scale(.95)}}@media (prefers-contrast:high){.favorite-button.variant-ghost{color:#ffffff}.favorite-button.variant-glass{background:rgba(0,0,0,.85);border:2px solid #ffffff}.favorite-button.variant-glass.active,.favorite-button.variant-glass:hover{border-color:#fbbf24}.favorite-button:focus-visible{outline:3px solid #fbbf24;outline-offset:3px}}@media (max-width:767px){.favorite-button.size-sm{width:36px;height:36px}.favorite-button.size-md{width:44px;height:44px}.favorite-button.size-lg{width:52px;height:52px}.favorite-button.variant-glass:hover{box-shadow:0 4px 12px rgba(0,0,0,.25)}.favorite-button.variant-glass.active:hover{box-shadow:0 4px 12px rgba(251,191,36,.3)}}@media print{.favorite-button{display:none}}.favorite-button-atomic{@extend .favorite-button}