/* Reveal Ice Cap <-> premio (M09.5D). O lado mostrado vem do componente
   (loop/toque); aqui ficam o giro 3D e o respeito a prefers-reduced-motion. */

.scene {
  perspective: 1400px;
}

.card {
  position: relative;
  width: 100%;
  aspect-ratio: 1 / 1;
  transform-style: preserve-3d;
  transition: transform 800ms cubic-bezier(0.2, 0.7, 0.2, 1);
}

.showPrize {
  transform: rotateY(180deg);
}

.showCap {
  transform: rotateY(0deg);
}

.face {
  position: absolute;
  inset: 0;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
  transform: rotateY(0deg) translateZ(1px);
}

.back {
  transform: rotateY(180deg) translateZ(1px);
}

/* Confete: poucas particulas, uma vez, ~1,8 s, depois some. */
.confetti {
  position: absolute;
  inset: 0 0 auto 0;
  height: 60vh;
  overflow: hidden;
  pointer-events: none;
  animation: confettiHide 0s linear 2300ms forwards;
}

.particle {
  position: absolute;
  top: -12px;
  left: var(--x);
  width: var(--w);
  height: var(--h);
  border-radius: 2px;
  background: var(--c);
  opacity: 0;
  animation: confettiFall 1800ms cubic-bezier(0.2, 0.6, 0.4, 1) var(--d) forwards;
}

@keyframes confettiFall {
  0% {
    opacity: 0;
    transform: translate3d(0, 0, 0) rotate(0deg);
  }
  12% {
    opacity: 1;
  }
  100% {
    opacity: 0;
    transform: translate3d(var(--sx), 55vh, 0) rotate(var(--r));
  }
}

@keyframes confettiHide {
  to {
    visibility: hidden;
  }
}

@media (prefers-reduced-motion: reduce) {
  .card {
    transition: none;
  }
  .confetti {
    display: none;
  }
}

