/* Individual prize showcase; the card keeps its original proportions. */
.prize .raffle-stage { overflow: hidden; isolation: isolate; }
.raffle-slide { position: absolute; inset: 0; display: grid; place-items: center; opacity: 0; visibility: hidden; pointer-events: none; }
.raffle-slide.is-current { opacity: 1; visibility: visible; }
.tile.prize .raffle-stage .raffle-slide img { position: absolute; inset: auto; left: 50%; top: 54%; width: 76%; height: var(--item-height, 72%); object-fit: contain; object-position: center; transform: translate(-50%, -50%); }
.raffle-slide.is-entering { visibility: visible; animation: raffle-in 360ms cubic-bezier(.16,1,.3,1) both; }
.raffle-slide.is-leaving { visibility: visible; animation: raffle-out 360ms cubic-bezier(.4,0,.2,1) both; }
@keyframes raffle-in {
  from { opacity: 0; transform: translateX(12%) rotate(3deg) scale(.94); filter: blur(8px); }
  to { opacity: 1; transform: none; filter: blur(0); }
}
@keyframes raffle-out {
  from { opacity: 1; transform: none; filter: blur(0); }
  to { opacity: 0; transform: translateX(-12%) rotate(-3deg) scale(.94); filter: blur(8px); }
}
@media (prefers-reduced-motion: reduce) {
  .raffle-slide.is-entering, .raffle-slide.is-leaving { animation: none; }
}
.raffle-unavailable { position: absolute; inset: 0; display: grid; place-items: center; color: #aaa; font-size: 16px; }
