/* V2.25: approved Scratch & Win, official Tap & Win gifts and winner polish. */
.scratch-result-card {
  display: flex;
  min-height: calc(100svh - 24px);
  flex-direction: column;
}

.scratch-win-game {
  width: 100%;
  margin: 10px auto 0;
}

.scratch-win-title {
  margin: 12px 0 5px;
  color: #172a5e;
  font-size: clamp(25px, 7vw, 32px);
  font-weight: 780;
  letter-spacing: .015em;
}

.scratch-win-sub {
  margin: 0 0 24px;
  color: #74819a;
  font-size: 14px;
}

.scratch-win-card {
  position: relative;
  display: flex;
  min-height: clamp(315px, 93vw, 405px);
  padding: 22px 18px 18px;
  flex-direction: column;
  align-items: center;
  justify-content: space-between;
  overflow: hidden;
  border-radius: 25px;
  background:
    linear-gradient(135deg, rgba(255,255,255,.09) 0 28%, transparent 28% 68%, rgba(255,255,255,.05) 68% 100%),
    linear-gradient(145deg, #245ddd 0%, #1749c7 55%, #1035a3 100%);
  box-shadow: 0 19px 34px rgba(25, 56, 140, .19);
}

.scratch-main-gift {
  display: block;
  width: min(63%, 237px);
  height: auto;
  margin: auto 0;
  object-fit: contain;
}

.scratch-panel {
  position: relative;
  width: 100%;
  height: clamp(105px, 29vw, 132px);
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.36);
  border-radius: 17px;
  background: linear-gradient(125deg, #3267eb, #1849ca);
}

.scratch-hidden-reward {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: #fff;
  font-size: 13px;
  font-weight: 650;
}

.scratch-hidden-reward img {
  width: 50px;
  height: 50px;
  object-fit: contain;
}

.scratch-surface {
  position: absolute;
  z-index: 2;
  inset: 0;
  width: 100%;
  height: 100%;
  cursor: crosshair;
  touch-action: none;
  transition: opacity .48s ease;
}

.scratch-panel-hint {
  position: absolute;
  z-index: 3;
  right: 0;
  bottom: 9px;
  left: 0;
  color: #4c617e;
  font-size: 10px;
  font-weight: 750;
  letter-spacing: .15em;
  pointer-events: none;
  transition: opacity .2s;
}

.scratch-started .scratch-panel-hint,
.scratch-complete .scratch-surface {
  opacity: 0;
}

.scratch-instruction {
  display: grid;
  justify-items: center;
  gap: 5px;
  margin: 24px 0 14px;
  color: #74819a;
  font-size: 13px;
}

.scratch-instruction svg {
  width: 36px;
  height: 36px;
  color: #667793;
}

.scratch-result-card > .foot {
  margin-top: auto;
  padding-top: 20px;
}

.scratch-win-premium-sheet .premium-offer-image {
  aspect-ratio: 853 / 648;
}

.tap-win-box {
  filter: drop-shadow(0 11px 12px rgba(21, 46, 107, .15)) !important;
}

.tap-win-box::after {
  content: none !important;
}

.tap-box-official-art {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}

.tap-opening .tap-box-official-art {
  animation: syokboxGiftOpenV225 .72s cubic-bezier(.23,.8,.28,1) both;
}

@keyframes syokboxGiftOpenV225 {
  0% { transform: scale(1); }
  28% { transform: scale(1.08) rotate(-7deg); }
  56% { transform: scale(1.14) rotate(6deg); }
  100% { transform: scale(1.23); filter: brightness(1.16); }
}

.winner-result-card {
  display: flex !important;
  min-height: calc(100svh - 24px) !important;
  flex-direction: column !important;
}

.winner-icon-halo {
  position: relative;
  display: grid;
  width: 82px;
  height: 82px;
  place-items: center;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(37,76,196,.105), rgba(37,76,196,.02) 68%, transparent 72%);
  animation: winnerIconBloomV225 .8s cubic-bezier(.2,.7,.2,1) both;
}

.winner-official-icon {
  display: block;
  width: 70px;
  height: 70px;
  object-fit: contain;
}

@keyframes winnerIconBloomV225 {
  0% { opacity: 0; transform: scale(.55); }
  70% { opacity: 1; transform: scale(1.11); }
  100% { opacity: 1; transform: scale(1); }
}

.winner-powered-footer {
  margin-top: auto !important;
  padding-top: 30px !important;
  padding-bottom: max(18px, env(safe-area-inset-bottom)) !important;
}

.winner-confetti i {
  top: var(--confetti-top) !important;
  animation: syokboxConfettiBurstV225 var(--confetti-duration) cubic-bezier(.19,.62,.34,.98) var(--confetti-delay) both !important;
}

.winner-confetti i.celebration-ribbon {
  width: calc(var(--confetti-size) * .63) !important;
  height: calc(var(--confetti-size) * 2.2) !important;
  border-radius: 5px !important;
}

.winner-confetti i.celebration-fall {
  animation-name: syokboxConfettiFallV225 !important;
}

@keyframes syokboxConfettiBurstV225 {
  0% { opacity: 0; transform: translate3d(0,0,0) rotate(0deg) scale(.55); }
  12% { opacity: 1; }
  38% { transform: translate3d(calc(var(--confetti-drift) * .58),var(--confetti-rise),0) rotate(220deg) scale(1); }
  80% { opacity: .92; }
  100% { opacity: 0; transform: translate3d(var(--confetti-drift),var(--confetti-fall),0) rotate(700deg) scale(.85); }
}

@keyframes syokboxConfettiFallV225 {
  0% { opacity: 0; transform: translate3d(0,-3vh,0) rotate(0deg); }
  10% { opacity: .98; }
  82% { opacity: .9; }
  100% { opacity: 0; transform: translate3d(var(--confetti-drift),var(--confetti-fall),0) rotate(760deg); }
}

@media (max-width: 380px) {
  .scratch-win-sub { font-size: 12px; }
  .scratch-win-card { min-height: 308px; padding: 18px 13px 13px; }
  .scratch-panel { height: 106px; }
  .scratch-instruction { margin-top: 18px; }
  .winner-icon-halo { width: 74px; height: 74px; }
  .winner-official-icon { width: 64px; height: 64px; }
}

@media (prefers-reduced-motion: reduce) {
  .winner-confetti i,
  .winner-icon-halo,
  .tap-opening .tap-box-official-art {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}
