 .product-card__wishlist-toggle { position: relative; appearance: none; -webkit-appearance: none; overflow: visible; transition: transform 0.25s ease, background-color 0.25s ease; } .product-card__wishlist-toggle:hover { transform: scale(1.06); }  .product-card__wishlist-outline, .product-card__wishlist-filled { transform-origin: center; transition: opacity 0.15s ease, transform 0.2s ease; }  .product-card__wishlist-outline { opacity: 1; transform: scale(1); } .product-card__wishlist-filled { position: absolute; top: 50%; left: 50%; opacity: 0; transform: translate(-50%, -50%) scale(0.8); pointer-events: none; }  .product-card__wishlist-toggle.is-saved .product-card__wishlist-outline { opacity: 0; transform: scale(0.8); } .product-card__wishlist-toggle.is-saved .product-card__wishlist-filled { opacity: 1; transform: translate(-50%, -50%) scale(1); }  .product-card__wishlist-toggle.is-saving .product-card__wishlist-outline { animation: sookjai-heart-outline-out 0.3s ease forwards; } .product-card__wishlist-toggle.is-saving .product-card__wishlist-filled { animation: sookjai-heart-filled-in 0.3s ease forwards; } @keyframes sookjai-heart-outline-out { 0% { opacity: 1; transform: scale(1); } 45% { opacity: 0; transform: scale(0.8); } 100% { opacity: 0; transform: scale(0.8); } } @keyframes sookjai-heart-filled-in { 0% { opacity: 0; transform: translate(-50%, -50%) scale(0.8); } 40% { opacity: 1; transform: translate(-50%, -50%) scale(0.8); } 72% { opacity: 1; transform: translate(-50%, -50%) scale(1.15); } 100% { opacity: 1; transform: translate(-50%, -50%) scale(1); } }  .product-card__wishlist-toggle.is-removing .product-card__wishlist-filled { animation: sookjai-heart-filled-out 0.22s ease forwards; } .product-card__wishlist-toggle.is-removing .product-card__wishlist-outline { animation: sookjai-heart-outline-in 0.22s ease forwards; } @keyframes sookjai-heart-filled-out { 0% { opacity: 1; transform: translate(-50%, -50%) scale(1); } 100% { opacity: 0; transform: translate(-50%, -50%) scale(0.8); } } @keyframes sookjai-heart-outline-in { 0% { opacity: 0; transform: scale(0.8); } 100% { opacity: 1; transform: scale(1); } }  .product-card__wishlist-feedback { position: static; margin: 0; opacity: 0; visibility: hidden; max-width: 0; overflow: hidden; white-space: nowrap; line-height: 1; transform: translateX(0.2rem); transition: opacity 0.2s ease, transform 0.25s ease, max-width 0.25s ease, visibility 0s linear 0.25s; } .product-card__wishlist-group:has( .product-card__wishlist-toggle.is-feedback-visible ) .product-card__wishlist-feedback { opacity: 1; visibility: visible; max-width: 3.5rem; transform: translateX(0); transition: opacity 0.2s ease, transform 0.25s ease, max-width 0.25s ease, visibility 0s; }  .product-card__wishlist-toggle:focus-visible { outline: 2px solid currentColor; outline-offset: 3px; }  @media (prefers-reduced-motion: reduce) { .product-card__wishlist-toggle, .product-card__wishlist-outline, .product-card__wishlist-filled, .product-card__wishlist-feedback { animation: none !important; transition: none !important; } }  .product-card__media { position: relative; overflow: hidden; } .product-card__image, .product-card__video { width: 100%; height: 100%; object-fit: cover; } .product-card__image { transform: scale(1); opacity: 1; transition: transform 0.5s ease, opacity 0.5s ease; } .product-card__video { opacity: 0; transform: scale(1.05); pointer-events: none; transition: opacity 0.5s ease; } .product-card__video-indicator { transform: scale(1); opacity: 1; transition: transform 0.25s ease, opacity 0.25s ease; }  @media (hover: hover) and (pointer: fine) { .product-card__media.is-hovering .product-card__image { transform: scale(1.05); } .product-card__media.is-preparing-video .product-card__video-indicator { transform: scale(1.1); } .product-card__media.is-video-playing .product-card__image { opacity: 0; transform: scale(1.05); } .product-card__media.is-video-playing .product-card__video { opacity: 1; } .product-card__media.is-video-playing .product-card__video-indicator { opacity: 0; transform: scale(1.1); } }  @media (hover: none), (pointer: coarse) { .product-card__video { opacity: 0 !important; } .product-card__image { opacity: 1 !important; transform: none !important; } .product-card__video-indicator { opacity: 1 !important; transform: none !important; } }  .gem-archive__grid { transition: opacity 0.5s ease, transform 0.5s ease; } .gem-archive__grid.is-filter-loading { opacity: 0.35; transform: translateY(4px); pointer-events: none; }