.prize-counter {
  --pc-cyan: #20f5dc;
  --pc-lime: #97ff22;
  --pc-yellow: #ffe66d;
  --pc-pink: #ff4f91;
  --pc-type-min: clamp(12px, .8vw, 14px);
  --pc-type-label: clamp(13px, .95vw, 15px);
  --pc-type-action: clamp(14px, 1.05vw, 17px);
  position: fixed;
  z-index: 7200;
  inset: 0;
  overflow: hidden;
  color: #effff3;
  background: #010706;
  font-family: var(--pixel-font, monospace);
  isolation: isolate;
}

.prize-counter[hidden] { display: none !important; }
body.prize-counter-open { overflow: hidden; }

.prize-counter::before {
  content: '';
  position: absolute;
  z-index: -2;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(32,245,220,.04) 1px, transparent 1px),
    linear-gradient(rgba(32,245,220,.035) 1px, transparent 1px),
    radial-gradient(circle at 50% 35%, #073d32 0, #011511 48%, #000 84%);
  background-size: 16px 16px, 16px 16px, auto;
}

.prize-counter::after {
  content: '';
  pointer-events: none;
  position: absolute;
  z-index: 20;
  inset: 0;
  opacity: .17;
  background: repeating-linear-gradient(0deg, transparent 0 3px, #000 3px 4px);
}

.prize-counter-cabinet {
  width: min(100%, 1280px);
  height: 100%;
  min-height: 0;
  margin: auto;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto 60px;
  border-inline: clamp(5px, 1vw, 14px) solid #073e38;
  box-shadow: inset 0 0 0 3px #16bda9, inset 0 0 0 8px #021c19, 0 0 70px #00e9c733;
  background: linear-gradient(90deg, #00100e, #03231d 13%, #00100e 50%, #03231d 87%, #00100e);
}

.prize-counter-marquee {
  min-height: 104px;
  padding: max(12px, env(safe-area-inset-top)) clamp(12px, 3vw, 42px) 12px;
  display: grid;
  grid-template-columns: minmax(120px, 1fr) auto minmax(120px, 1fr);
  align-items: center;
  gap: 18px;
  border-bottom: 5px solid #072b27;
  background:
    repeating-linear-gradient(135deg, rgba(255,230,109,.08) 0 8px, transparent 8px 16px),
    #02100e;
  box-shadow: inset 0 -4px 0 #17d7c0, 0 8px 0 #0008, 0 0 28px #16e3c555;
}

.prize-counter-marquee > div:nth-child(2) { text-align: center; }
.prize-counter-marquee h2 {
  margin: 3px 0 0;
  color: var(--pc-yellow);
  font-size: clamp(1.45rem, 4.5vw, 3.4rem);
  line-height: .9;
  letter-spacing: .08em;
  text-shadow: 0 4px #9a5b00, 0 0 18px #ffe66d99;
}
.prize-counter-marquee small {
  color: var(--pc-cyan);
  font-size: var(--pc-type-min);
  letter-spacing: .17em;
  text-transform: uppercase;
}

.prize-counter-back,
.prize-counter-wallet,
.prize-counter-controls button,
.prize-carousel-arrow,
.prize-counter-action button,
.prize-preview,
.prize-demo button {
  border: 2px solid #12ae9d;
  border-radius: 0;
  background: #001a16;
  color: #edfff9;
  font: inherit;
  text-transform: uppercase;
  box-shadow: inset 0 -4px #0008, 0 4px #0009;
}

.prize-counter-back {
  justify-self: start;
  min-height: 42px;
  padding: 0 13px;
  color: var(--pc-cyan);
  font-size: var(--pc-type-label);
  cursor: pointer;
}
.prize-counter-back:hover,
.prize-counter-back:focus-visible { color: #00100e; background: var(--pc-cyan); outline: 3px solid #fff; outline-offset: 3px; }

.prize-counter-wallet {
  justify-self: end;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px;
  border-color: var(--pc-lime);
}
.prize-counter-wallet[data-saved="false"] { border-color: var(--pc-yellow); }
.prize-counter-wallet img { width: 34px; height: 34px; image-rendering: pixelated; }
.prize-counter-wallet span { display: flex; flex-direction: column; gap: 2px; }
.prize-counter-wallet small { color: var(--pc-cyan); font-size: var(--pc-type-min); }
.prize-counter-wallet strong { color: var(--pc-lime); font-size: var(--pc-type-action); white-space: nowrap; }
.prize-counter-wallet[data-saved="false"] strong { color: var(--pc-yellow); }

.prize-counter-stage {
  position: relative;
  min-height: 0;
  display: grid;
  grid-template-rows: 32px minmax(0, 1fr) auto;
  overflow: hidden;
}
.prize-counter-breadcrumb {
  align-self: center;
  padding-inline: 8%;
  color: #76b8ae;
  font-size: var(--pc-type-min);
  letter-spacing: .13em;
  white-space: nowrap;
}

.prize-counter-carousel {
  position: relative;
  min-height: 0;
  perspective: 900px;
  overflow: hidden;
  touch-action: pan-y;
}
.prize-counter-empty {
  position: absolute;
  left: 50%;
  top: 50%;
  width: min(440px, 78%);
  min-height: 190px;
  transform: translate(-50%, -50%);
  display: grid;
  place-items: center;
  align-content: center;
  gap: 12px;
  padding: 22px;
  border: 4px solid #07594f;
  outline: 3px solid #0aa997;
  background: #001511;
  text-align: center;
  box-shadow: 0 8px #000, inset 0 0 30px #00d7c81f;
}
.prize-counter-empty i {
  width: 42px;
  height: 42px;
  border: 7px solid #225f56;
  border-top-color: var(--pc-cyan);
  image-rendering: pixelated;
  animation: prize-counter-link 700ms steps(4, end) infinite;
}
.prize-counter-empty[data-state="unavailable"] i { border-color: #ff4f91; animation: none; }
.prize-counter-empty strong { color: var(--pc-cyan); font-size: .8rem; }
.prize-counter-empty[data-state="unavailable"] strong { color: #ff7aa8; }
.prize-counter-empty span { color: #78a9a1; font-size: var(--pc-type-min); line-height: 1.5; }
@keyframes prize-counter-link { to { transform: rotate(360deg); } }
.prize-counter-card {
  --card-accent: var(--pc-lime);
  position: absolute;
  top: 50%;
  left: 50%;
  width: clamp(220px, 30vw, 360px);
  height: min(92%, 470px);
  min-height: 280px;
  display: grid;
  grid-template-rows: 70px minmax(0, 1fr) 68px;
  transform: translate(calc(-50% + (var(--card-offset) * min(32vw, 390px)) + var(--prize-drag-x, 0px)), -50%) scale(var(--card-scale));
  opacity: var(--card-opacity);
  border: 4px solid #081b18;
  outline: 3px solid var(--card-accent);
  background: #e8fff1;
  color: #031310;
  box-shadow: 0 10px 0 #000, 0 0 22px color-mix(in srgb, var(--card-accent) 45%, transparent);
  filter: brightness(var(--card-brightness, 1));
  transition: transform 160ms steps(4, end), opacity 140ms steps(3, end), filter 140ms steps(3, end);
}
.prize-counter-card[data-offset="-2"] { --card-offset: -2; --card-scale: .66; --card-opacity: .24; --card-brightness: .48; z-index: 1; }
.prize-counter-card[data-offset="-1"] { --card-offset: -1; --card-scale: .78; --card-opacity: .68; --card-brightness: .62; z-index: 2; }
.prize-counter-card[data-offset="0"] { --card-offset: 0; --card-scale: 1; --card-opacity: 1; z-index: 5; }
.prize-counter-card[data-offset="1"] { --card-offset: 1; --card-scale: .78; --card-opacity: .68; --card-brightness: .62; z-index: 2; }
.prize-counter-card[data-offset="2"] { --card-offset: 2; --card-scale: .66; --card-opacity: .24; --card-brightness: .48; z-index: 1; }

.prize-counter-carousel[data-direction="next"] .prize-counter-card[data-offset="-2"] { --card-from-offset: -1; --card-from-scale: .78; --card-from-opacity: .68; --card-from-brightness: .62; }
.prize-counter-carousel[data-direction="next"] .prize-counter-card[data-offset="-1"] { --card-from-offset: 0; --card-from-scale: 1; --card-from-opacity: 1; --card-from-brightness: 1; }
.prize-counter-carousel[data-direction="next"] .prize-counter-card[data-offset="0"] { --card-from-offset: 1; --card-from-scale: .78; --card-from-opacity: .68; --card-from-brightness: .62; }
.prize-counter-carousel[data-direction="next"] .prize-counter-card[data-offset="1"] { --card-from-offset: 2; --card-from-scale: .66; --card-from-opacity: .24; --card-from-brightness: .48; }
.prize-counter-carousel[data-direction="next"] .prize-counter-card[data-offset="2"] { --card-from-offset: 3; --card-from-scale: .56; --card-from-opacity: 0; --card-from-brightness: .35; }
.prize-counter-carousel[data-direction="previous"] .prize-counter-card[data-offset="-2"] { --card-from-offset: -3; --card-from-scale: .56; --card-from-opacity: 0; --card-from-brightness: .35; }
.prize-counter-carousel[data-direction="previous"] .prize-counter-card[data-offset="-1"] { --card-from-offset: -2; --card-from-scale: .66; --card-from-opacity: .24; --card-from-brightness: .48; }
.prize-counter-carousel[data-direction="previous"] .prize-counter-card[data-offset="0"] { --card-from-offset: -1; --card-from-scale: .78; --card-from-opacity: .68; --card-from-brightness: .62; }
.prize-counter-carousel[data-direction="previous"] .prize-counter-card[data-offset="1"] { --card-from-offset: 0; --card-from-scale: 1; --card-from-opacity: 1; --card-from-brightness: 1; }
.prize-counter-carousel[data-direction="previous"] .prize-counter-card[data-offset="2"] { --card-from-offset: 1; --card-from-scale: .78; --card-from-opacity: .68; --card-from-brightness: .62; }
.prize-counter-carousel[data-direction] .prize-counter-card {
  animation: prize-card-hard-snap 220ms steps(5, end) both;
}
@keyframes prize-card-hard-snap {
  from {
    transform: translate(calc(-50% + (var(--card-from-offset) * min(32vw, 390px))), -50%) scale(var(--card-from-scale));
    opacity: var(--card-from-opacity);
    filter: brightness(var(--card-from-brightness));
  }
}
.prize-counter-carousel[data-direction]::after {
  content: '';
  position: absolute;
  z-index: 9;
  left: 50%;
  bottom: 8px;
  width: min(230px, 44vw);
  height: 5px;
  transform: translateX(-50%) scaleX(.3);
  background: var(--pc-yellow);
  box-shadow: 0 0 12px var(--pc-cyan);
  animation: prize-carousel-detent 220ms steps(4, end) both;
}
@keyframes prize-carousel-detent {
  50% { transform: translateX(-50%) scaleX(1); background: var(--pc-cyan); }
}
.prize-counter-stage[data-direction="next"] .prize-carousel-arrow.next,
.prize-counter-stage[data-direction="previous"] .prize-carousel-arrow.previous {
  animation: prize-arrow-clack 220ms steps(3, end);
}
@keyframes prize-arrow-clack {
  45% { transform: translateY(5px); color: #00110e; background: var(--pc-yellow); box-shadow: inset 0 5px #0008; }
}
.prize-counter-carousel[data-dragging="true"] .prize-counter-card { transition: none; }
.prize-counter-carousel[data-snapback="true"] .prize-counter-card { transition-duration: 150ms; }
.prize-counter-card[data-type="theme"] { --card-accent: #20f5dc; }
.prize-counter-card[data-type="trail"], .prize-counter-card[data-type="death-effect"] { --card-accent: #ff4f91; }
.prize-counter-card[data-type="food-set"] { --card-accent: #ffb83f; }
.prize-counter-card[data-type="arcade-title"], .prize-counter-card[data-type="player-frame"] { --card-accent: #55a7ff; }
.prize-counter-card[data-type="avatar"] { --card-accent: #bd78ff; }
.prize-card-hanger {
  position: absolute;
  top: -17px;
  left: 50%;
  width: 76px;
  height: 21px;
  transform: translateX(-50%);
  border: 4px solid #071713;
  border-bottom: 0;
  background: var(--card-accent);
}
.prize-counter-card header { position: relative; padding: 15px 58px 8px 14px; border-bottom: 4px solid #081b18; background: var(--card-accent); }
.prize-counter-card header small { display: block; margin-bottom: 6px; font-size: var(--pc-type-min); letter-spacing: .13em; }
.prize-counter-card header strong { display: block; overflow: hidden; font-size: clamp(16px, 2vw, 1.25rem); line-height: 1; text-overflow: ellipsis; white-space: nowrap; }
.prize-card-emblem {
  position: absolute;
  top: 50%;
  right: 9px;
  width: 42px;
  height: 42px;
  transform: translateY(-50%);
  image-rendering: pixelated;
  image-rendering: crisp-edges;
  filter: drop-shadow(3px 3px 0 #00110e);
}
.prize-card-art { position: relative; min-height: 0; padding: 10px; background: #071c18; }
.prize-counter-card[data-equipping="true"] { outline-color: var(--pc-yellow); }
.prize-counter-card[data-equipping="true"] .prize-card-art::after {
  content: '';
  position: absolute;
  z-index: 7;
  left: 7px;
  right: 7px;
  top: 8%;
  height: 7px;
  background: var(--pc-yellow);
  box-shadow: 0 0 14px var(--pc-cyan), 0 7px #00110e;
  animation: prize-equip-scan 620ms steps(5, end) infinite;
}
@keyframes prize-equip-scan { to { top: 88%; } }
.prize-equipped-stamp {
  position: absolute;
  z-index: 8;
  left: 50%;
  top: 47%;
  transform: translate(-50%, -50%) rotate(-4deg);
  padding: 9px 12px 7px;
  border: 5px solid var(--pc-lime);
  background: #00110ee8;
  color: var(--pc-lime);
  font-size: clamp(12px, 1.8vw, .9rem);
  letter-spacing: .08em;
  text-shadow: 3px 3px #005f50;
  box-shadow: 5px 5px #000, 0 0 18px #97ff2288;
}
.prize-counter-card[data-equip-impact="true"] .prize-card-art {
  animation: prize-equip-impact 760ms steps(6, end) both;
}
.prize-counter-card[data-equip-impact="true"] .prize-equipped-stamp {
  animation: prize-equip-stamp 760ms steps(6, end) both;
}
@keyframes prize-equip-impact {
  0% { box-shadow: inset 0 0 0 0 var(--pc-cyan); filter: brightness(2.2); }
  35% { box-shadow: inset 0 0 0 9px var(--pc-cyan), 0 0 30px var(--pc-lime); filter: brightness(1.45); }
  70% { box-shadow: inset 0 0 0 5px var(--pc-lime), 0 0 18px var(--pc-cyan); }
}
@keyframes prize-equip-stamp {
  0% { transform: translate(-50%, -50%) rotate(-4deg) scale(2.2); opacity: 0; }
  32% { transform: translate(-50%, -50%) rotate(-4deg) scale(.82); opacity: 1; }
  52% { transform: translate(-50%, -50%) rotate(-4deg) scale(1.12); }
}
.prize-counter-stage[data-equip-state="equipped"] {
  animation: prize-equip-cabinet-pulse 760ms steps(5, end);
}
@keyframes prize-equip-cabinet-pulse {
  18%, 55% { box-shadow: inset 0 0 0 8px var(--pc-lime), inset 0 0 45px #20f5dc88; }
}
.prize-counter-card footer { padding: 9px 12px; border-top: 4px solid #081b18; }
.prize-counter-card footer span { display: block; color: #006c5d; font-size: var(--pc-type-label); }
.prize-counter-card footer em { display: -webkit-box; margin-top: 5px; overflow: hidden; font-size: var(--pc-type-min); font-style: normal; line-height: 1.25; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }

.prize-counter-poster {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 110px;
  overflow: hidden;
  background: radial-gradient(circle at 50% 46%, #0cae84 0 6%, #04382f 7% 35%, #001513 36%);
  image-rendering: pixelated;
}
.prize-counter-poster[data-approved-art="true"] { background: #010403; }
.prize-counter-poster[data-approved-art="true"] > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
}
.prize-counter-poster::before,
.prize-counter-poster::after,
.prize-counter-poster i,
.prize-counter-poster b { content: ''; position: absolute; display: block; }
.prize-counter-poster::before { inset: 8% 13%; border: 7px solid #7dff22; box-shadow: inset 0 0 0 7px #073c34, 0 0 18px #7dff2288; transform: rotate(8deg); }
.prize-counter-poster::after { width: 42%; height: 42%; left: 29%; top: 28%; background: #9cff20; clip-path: polygon(0 20%,70% 20%,70% 0,100% 30%,70% 60%,70% 42%,30% 42%,30% 100%,0 75%); filter: drop-shadow(7px 7px 0 #001b18); }
.prize-counter-poster i:nth-child(1) { inset: 12%; border: 4px dashed #20f5dc; }
.prize-counter-poster i:nth-child(2) { width: 8px; height: 8px; left: 18%; top: 22%; background: #ffe66d; box-shadow: 142px 18px #ff4f91, 30px 128px #20f5dc, 164px 104px #97ff22; }
.prize-counter-poster i:nth-child(3) { left: 0; right: 0; bottom: 0; height: 18%; background: repeating-linear-gradient(90deg, #002d27 0 12px, #07594c 12px 24px); }
.prize-counter-poster b { left: 50%; bottom: 10%; width: 52%; height: 7px; transform: translateX(-50%); background: #20f5dc; box-shadow: 0 -16px #7dff22, 0 -32px #ff4f91; opacity: .8; }
.prize-counter-poster[data-approved-art="true"]::before {
  inset: 4px;
  border: 2px solid #20f5dc73;
  box-shadow: inset 0 0 0 2px #00110e99;
  transform: none;
  pointer-events: none;
}
.prize-counter-poster[data-approved-art="true"]::after { display: none; }
.prize-counter-poster[data-art="food"]::after { background: #ff6b42; clip-path: polygon(20% 20%,40% 20%,40% 0,60% 0,60% 20%,80% 20%,100% 40%,100% 80%,80% 100%,20% 100%,0 80%,0 40%); }
.prize-counter-poster[data-art="burst"]::after { background: #ff4f91; clip-path: polygon(40% 0,55% 32%,85% 10%,70% 42%,100% 50%,67% 62%,88% 94%,55% 72%,42% 100%,35% 68%,0 85%,28% 55%,0 35%,35% 38%); }
.prize-counter-poster[data-art="frame"]::after { inset: 23%; width: auto; height: auto; background: transparent; border: 10px solid #55a7ff; clip-path: none; }
.prize-counter-poster[data-art="title"]::after { left: 18%; top: 36%; width: 64%; height: 28%; background: #ffe66d; clip-path: polygon(0 0,100% 0,100% 75%,85% 75%,85% 100%,15% 100%,15% 75%,0 75%); }

.prize-preview {
  position: absolute;
  left: 50%;
  bottom: 20px;
  transform: translateX(-50%);
  padding: 9px 15px;
  border-color: #fff;
  background: #00110ee6;
  color: var(--pc-yellow);
  font-size: var(--pc-type-label);
  cursor: pointer;
}
.prize-preview:focus-visible { outline: 3px solid var(--pc-yellow); outline-offset: 4px; }
.prize-carousel-arrow { position: absolute; z-index: 10; top: 44%; width: 46px; height: 58px; cursor: pointer; color: var(--pc-cyan); font-size: 1.2rem; }
.prize-carousel-arrow.previous { left: clamp(8px, 4vw, 48px); }
.prize-carousel-arrow.next { right: clamp(8px, 4vw, 48px); }
.prize-carousel-arrow:hover,
.prize-carousel-arrow:focus-visible { background: var(--pc-cyan); color: #00110e; outline: 3px solid #fff; }

.prize-counter-action {
  width: min(620px, 88%);
  min-height: 86px;
  margin: 6px auto 10px;
  display: grid;
  grid-template-columns: 1fr minmax(180px, auto);
  align-items: center;
  gap: 5px 16px;
  padding: 9px 13px;
  border: 3px solid #0d8175;
  background: #001411eF;
  box-shadow: 0 5px #000, inset 0 0 18px #00bca91a;
}
.prize-counter-action span { display: flex; flex-direction: column; gap: 4px; }
.prize-counter-action small { color: var(--pc-yellow); font-size: var(--pc-type-min); }
.prize-counter-action strong { color: var(--pc-cyan); font-size: var(--pc-type-action); }
.prize-counter-action button { grid-column: 2; grid-row: 1 / span 2; min-height: 48px; padding: 8px 15px; border-color: var(--pc-lime); color: var(--pc-lime); font-size: var(--pc-type-label); }
.prize-counter-action button:not(:disabled) { cursor: pointer; }
.prize-counter-action button:disabled { color: #7ba59e; border-color: #315b54; opacity: .85; }
.prize-counter-action[data-state="equip"] { border-color: var(--pc-lime); }
.prize-counter-action[data-state="equip"] button { color: #00110e; background: var(--pc-lime); box-shadow: 0 4px #004b3e; }
.prize-counter-action[data-state="equipped"] { border-color: var(--pc-cyan); box-shadow: 0 5px #000, inset 0 0 0 2px #20f5dc55, 0 0 18px #20f5dc38; }
.prize-counter-action[data-state="equipped"] strong,
.prize-counter-action[data-state="equipped"] button { color: var(--pc-cyan); }
.prize-counter-action[data-state="equipping"] { animation: prize-equip-link 620ms steps(3, end) infinite; }
@keyframes prize-equip-link {
  50% { border-color: var(--pc-yellow); box-shadow: 0 5px #000, inset 0 0 0 4px #ffe66d66, 0 0 22px #20f5dc66; }
}
.prize-counter-action em { color: #6fa99f; font-size: var(--pc-type-min); font-style: normal; line-height: 1.3; }
.prize-counter-action > i { height: 6px; border: 1px solid #19756a; background: #00100e; }
.prize-counter-action > i b { display: block; width: calc(var(--progress) * 100%); height: 100%; background: var(--pc-yellow); }

.prize-redemption-stage {
  position: relative;
  min-height: 0;
  overflow: hidden;
  display: grid;
  grid-template-rows: auto minmax(0, 1fr) auto auto auto;
  place-items: center;
  gap: 8px;
  padding: 12px clamp(12px, 5vw, 64px) 10px;
  background: #00110e;
  isolation: isolate;
}
.prize-redemption-stage::before {
  content: '';
  position: absolute;
  z-index: -2;
  inset: 0;
  background:
    linear-gradient(90deg, transparent 0 12%, #20f5dc12 12% 13%, transparent 13% 87%, #20f5dc12 87% 88%, transparent 88%),
    repeating-linear-gradient(0deg, #00110e 0 18px, #02231d 18px 20px);
}
.prize-redemption-signal { text-align: center; text-transform: uppercase; }
.prize-redemption-signal small { display: block; color: var(--pc-cyan); font-size: var(--pc-type-min); letter-spacing: .15em; }
.prize-redemption-signal strong { display: block; margin-top: 5px; color: var(--pc-yellow); font-size: clamp(16px, 2.5vw, 1.6rem); letter-spacing: .08em; text-shadow: 3px 3px #6f4200; }
.prize-redemption-card {
  position: relative;
  align-self: stretch;
  width: min(360px, 78vw);
  min-height: 0;
}
.prize-redemption-card .prize-counter-card {
  top: 50%;
  width: 100%;
  height: min(94%, 430px);
  transform: translate(-50%, -50%);
}
.prize-redemption-ticket {
  width: min(660px, 94%);
  min-height: 60px;
  display: grid;
  grid-template-columns: 1.25fr .8fr 1fr;
  align-items: center;
  border: 3px solid var(--pc-cyan);
  background: #001a16;
  box-shadow: 0 5px #000, inset 0 0 0 3px #073c35;
}
.prize-redemption-ticket span { min-width: 0; padding: 8px 13px; border-right: 2px dashed #17675e; }
.prize-redemption-ticket span:last-child { border-right: 0; }
.prize-redemption-ticket small { display: block; color: #72afa5; font-size: var(--pc-type-min); }
.prize-redemption-ticket strong { display: block; margin-top: 5px; overflow: hidden; color: var(--pc-yellow); font-size: var(--pc-type-label); text-overflow: ellipsis; white-space: nowrap; }
.prize-redemption-actions, .prize-claim-actions { display: flex; justify-content: center; gap: 10px; }
.prize-redemption-actions button, .prize-claim-actions button {
  min-height: 43px;
  padding: 8px 15px;
  border: 3px solid var(--pc-cyan);
  border-radius: 0;
  background: #001a16;
  color: var(--pc-cyan);
  font: inherit;
  font-size: var(--pc-type-label);
  box-shadow: 0 5px #000;
}
.prize-redemption-actions button:first-child, .prize-claim-actions button:first-child { border-color: var(--pc-lime); background: var(--pc-lime); color: #00110e; }
.prize-redemption-actions button:focus-visible, .prize-claim-actions button:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.prize-redemption-actions button:disabled { color: #739a94; border-color: #315b54; background: #00110e; }
.prize-redemption-status { min-height: 1.4em; color: #77aaa2; font-size: var(--pc-type-min); font-style: normal; line-height: 1.4; text-align: center; }
.prize-redemption-stage[data-state="purchasing"] .prize-redemption-card { animation: prize-redemption-verify 620ms steps(4, end) infinite; }
@keyframes prize-redemption-verify { 50% { filter: brightness(1.5); transform: translateY(3px); } }

.prize-redemption-stage[data-state="claimed"] { grid-template-rows: auto minmax(0, 1fr) auto auto; background: #001a14; }
.prize-redemption-stage[data-state="claimed"]::after {
  content: '';
  pointer-events: none;
  position: absolute;
  z-index: 8;
  inset: 0;
  border: 10px solid var(--pc-yellow);
  opacity: 0;
  animation: prize-claim-impact 900ms steps(5, end);
}
.prize-redemption-stage[data-state="claimed"] .prize-redemption-signal { z-index: 4; }
.prize-redemption-stage[data-state="claimed"] .prize-redemption-signal strong { color: #fff37b; font-size: clamp(1.2rem, 4vw, 2.6rem); text-shadow: 4px 4px #8b5200, 0 0 20px #ffe66d; }
.prize-redemption-stage[data-state="claimed"] .prize-redemption-card { z-index: 3; }
.prize-redemption-stage[data-state="claimed"] .prize-counter-card { animation: prize-claim-drop-slam 900ms steps(9, end) both; }
.prize-owned-stamp {
  position: absolute;
  z-index: 10;
  left: 50%;
  top: 49%;
  transform: translate(-50%, -50%) rotate(-5deg);
  padding: 10px 14px 8px;
  border: 6px solid var(--pc-yellow);
  background: #00110ef2;
  color: var(--pc-yellow);
  font-size: clamp(12px, 2vw, 1rem);
  letter-spacing: .1em;
  text-shadow: 3px 3px #7b4500;
  box-shadow: 6px 6px #000, 0 0 24px #ffe66d;
  animation: prize-owned-stamp 900ms steps(7, end) both;
}
.prize-claim-rays { pointer-events: none; position: absolute; z-index: 1; inset: 4% 8%; overflow: hidden; }
.prize-claim-rays i { position: absolute; left: 50%; top: 48%; width: 8px; height: 48%; transform-origin: 50% 0; background: var(--pc-cyan); box-shadow: 0 0 12px var(--pc-cyan); animation: prize-claim-ray 900ms steps(6, end) both; }
.prize-claim-rays i:nth-child(1) { transform: rotate(0deg); }
.prize-claim-rays i:nth-child(2) { transform: rotate(60deg); background: var(--pc-yellow); }
.prize-claim-rays i:nth-child(3) { transform: rotate(120deg); background: var(--pc-lime); }
.prize-claim-rays i:nth-child(4) { transform: rotate(180deg); background: var(--pc-yellow); }
.prize-claim-rays i:nth-child(5) { transform: rotate(240deg); background: var(--pc-lime); }
.prize-claim-rays i:nth-child(6) { transform: rotate(300deg); }
.prize-claim-rays b { position: absolute; width: 10px; height: 10px; background: var(--pc-pink); animation: prize-claim-confetti 1100ms steps(8, end) both; }
.prize-claim-rays b:nth-of-type(1) { left: 16%; top: 19%; box-shadow: 34px 88px var(--pc-yellow), 122px 20px var(--pc-cyan); }
.prize-claim-rays b:nth-of-type(2) { right: 17%; top: 24%; background: var(--pc-yellow); box-shadow: -46px 110px var(--pc-lime), -104px 33px var(--pc-pink); }
.prize-claim-rays b:nth-of-type(3) { left: 25%; bottom: 17%; background: var(--pc-cyan); box-shadow: 78px -24px var(--pc-yellow); }
.prize-claim-rays b:nth-of-type(4) { right: 23%; bottom: 14%; background: var(--pc-lime); box-shadow: -88px -35px var(--pc-pink); }
.prize-claim-copy { z-index: 3; margin: 0; color: #8ac6bb; font-size: var(--pc-type-min); letter-spacing: .1em; text-align: center; }
@keyframes prize-claim-drop-slam {
  0% { opacity: 1; transform: translate(-50%, -50%) scale(1); }
  32% { opacity: .45; transform: translate(-50%, 45%) scale(.72); }
  43% { opacity: 0; transform: translate(-50%, 85%) scale(.62); }
  54% { opacity: 0; transform: translate(-50%, -115%) scale(1.18); }
  72% { opacity: 1; transform: translate(-50%, -43%) scale(1.12); }
  84% { transform: translate(-50%, -54%) scale(.96); }
  100% { opacity: 1; transform: translate(-50%, -50%) scale(1); }
}
@keyframes prize-owned-stamp {
  0%, 68% { opacity: 0; transform: translate(-50%, -50%) rotate(-5deg) scale(2.5); }
  82% { opacity: 1; transform: translate(-50%, -50%) rotate(-5deg) scale(.82); }
  100% { opacity: 1; transform: translate(-50%, -50%) rotate(-5deg) scale(1); }
}
@keyframes prize-claim-impact { 65% { opacity: 0; } 72% { opacity: 1; } 100% { opacity: 0; } }
@keyframes prize-claim-ray { 0%, 52% { opacity: 0; height: 0; } 70% { opacity: 1; height: 48%; } }
@keyframes prize-claim-confetti { 0%, 58% { opacity: 0; transform: translateY(-24px); } 72% { opacity: 1; } 100% { opacity: .8; transform: translateY(18px); } }

.prize-counter-controls[data-locked="true"] { filter: brightness(.45); }

.prize-counter-controls {
  min-height: 116px;
  padding: 10px clamp(10px, 5vw, 70px) 12px;
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: clamp(5px, 1vw, 12px);
  border-top: 5px solid #073c35;
  background: #021c18;
  box-shadow: inset 0 4px #11b5a3;
}
.prize-counter-controls button { min-width: 0; min-height: 92px; padding: 8px 4px 7px; cursor: pointer; color: #9bd8cf; font-size: var(--pc-type-min); line-height: 1.25; }
.prize-category-emblem {
  display: block;
  width: 56px;
  height: 56px;
  margin: 0 auto 7px;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
  filter: drop-shadow(3px 3px 0 #000);
}
.prize-counter-controls button.active,
.prize-counter-controls button:hover,
.prize-counter-controls button:focus-visible { color: #071410; background: var(--category-accent, var(--pc-yellow)); border-color: #fff; outline: 2px solid var(--category-accent, var(--pc-yellow)); outline-offset: 2px; }
.prize-counter-deck { position: relative; border-top: 5px solid #0fa18f; background: linear-gradient(#0b554a, #01221d); }
.prize-counter-deck::before { content: ''; position: absolute; inset: 12px 8% auto; height: 7px; background: #00110e; box-shadow: 0 10px #138a79; }
.prize-counter-deck i,
.prize-counter-deck b { position: absolute; top: 15px; width: 22px; height: 22px; border: 4px solid #00110e; background: var(--pc-pink); box-shadow: 0 5px #000; }
.prize-counter-deck i:first-child { left: 16%; }
.prize-counter-deck i:last-child { right: 16%; background: var(--pc-yellow); }
.prize-counter-deck b { left: 50%; width: 48px; transform: translateX(-50%); background: var(--pc-lime); }

.prize-demo {
  position: relative;
  min-height: 0;
  overflow: hidden;
  background: radial-gradient(circle, #075b48 0, #001c18 55%, #000 100%);
}
.prize-demo > .prize-counter-poster { position: absolute; inset: 0; opacity: .42; min-height: 0; }
.prize-demo-canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  image-rendering: pixelated;
  image-rendering: crisp-edges;
  background: transparent;
}
.prize-demo[data-live="true"] {
  background:
    linear-gradient(90deg, color-mix(in srgb, var(--demo-accent, #4ecca3) 12%, transparent) 1px, transparent 1px),
    linear-gradient(color-mix(in srgb, var(--demo-accent, #4ecca3) 8%, transparent) 1px, transparent 1px),
    linear-gradient(115deg, transparent 0 18%, color-mix(in srgb, var(--demo-food, #ff6b6b) 10%, transparent) 18% 19%, transparent 19% 81%, color-mix(in srgb, var(--demo-accent, #4ecca3) 12%, transparent) 81% 82%, transparent 82%),
    var(--demo-bg, #010403);
  background-size: 32px 32px, 32px 32px, auto, auto;
}
.prize-demo[data-live="true"]::after {
  content: '';
  pointer-events: none;
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, #0008, transparent 20% 80%, #0008);
}
.prize-demo-snake { position: absolute; left: 50%; top: 48%; transform: translate(-50%, -50%) rotate(-18deg); filter: drop-shadow(0 0 15px #9cff20); }
.prize-demo-snake i { display: inline-block; width: clamp(34px, 7vw, 76px); aspect-ratio: 1; margin-left: -5px; border: clamp(4px, .6vw, 8px) solid #00231d; background: #9cff20; box-shadow: inset 0 -10px #31c83f; }
.prize-demo-snake i:first-child { background: #ffe66d; transform: scale(1.18); }
.prize-demo-copy { position: absolute; left: 6%; bottom: 10%; padding: 15px; border-left: 7px solid var(--pc-yellow); background: #00110ed9; }
.prize-demo-copy small { color: var(--pc-cyan); font-size: var(--pc-type-min); }
.prize-demo-copy strong { display: block; margin-top: 8px; color: var(--pc-yellow); font-size: clamp(1.1rem, 4vw, 2.5rem); }
.prize-demo-copy p { max-width: 40ch; margin: 8px 0 0; color: #b8ded6; font-size: var(--pc-type-label); line-height: 1.5; }
.prize-demo > button { position: absolute; right: 6%; bottom: 10%; min-height: 48px; padding: 10px 16px; cursor: pointer; color: var(--pc-cyan); }
.prize-demo[data-player-identity="true"] {
  display: grid;
  place-items: center;
  background:
    linear-gradient(90deg, rgba(37,220,255,.045) 1px, transparent 1px),
    linear-gradient(rgba(37,220,255,.035) 1px, transparent 1px),
    radial-gradient(circle at 50% 42%, rgba(37,220,255,.13), transparent 45%),
    #01050a;
  background-size: 24px 24px, 24px 24px, auto, auto;
}
.prize-demo-identity-host {
  position: absolute;
  inset: 4% 18% 25%;
  z-index: 2;
  display: grid;
  place-items: center;
}
.prize-demo-identity-stage { width: min(100%, 360px); height: 100%; min-height: 0; }
.prize-demo[data-player-identity="true"] .prize-demo-copy { z-index: 4; }
.prize-demo[data-player-identity="true"] > button { z-index: 4; }

@media (max-width: 640px) {
  .prize-counter-cabinet { grid-template-rows: auto minmax(0, 1fr) auto 42px; border-inline-width: 5px; }
  .prize-counter-marquee { min-height: 76px; padding: max(8px, env(safe-area-inset-top)) 8px 8px; grid-template-columns: 76px 1fr 84px; gap: 5px; }
  .prize-counter-marquee h2 { font-size: clamp(1.05rem, 6vw, 1.55rem); }
  .prize-counter-marquee > div:nth-child(2) small { display: none; }
  .prize-counter-back { min-height: 38px; padding: 0 7px; font-size: var(--pc-type-min); }
  .prize-counter-wallet { gap: 4px; padding: 4px 5px; }
  .prize-counter-wallet img { width: 23px; height: 23px; }
  .prize-counter-wallet small { font-size: var(--pc-type-min); }
  .prize-counter-wallet strong { font-size: var(--pc-type-label); }
  .prize-counter-stage { grid-template-rows: 25px minmax(0, 1fr) auto; }
  .prize-counter-breadcrumb { padding-inline: 10px; font-size: var(--pc-type-min); overflow: hidden; text-overflow: ellipsis; }
  .prize-counter-card { width: min(70vw, 270px); height: min(94%, 390px); grid-template-rows: 64px minmax(0, 1fr) 70px; }
  .prize-counter-card[data-offset="-1"], .prize-counter-card[data-offset="1"] { --card-scale: .77; --card-opacity: .55; }
  .prize-counter-card header { padding: 11px 46px 6px 10px; }
  .prize-card-emblem { right: 7px; width: 34px; height: 34px; }
  .prize-counter-card footer { padding: 7px 9px; }
  .prize-counter-card footer em { font-size: var(--pc-type-min); }
  .prize-carousel-arrow { top: 42%; width: 34px; height: 48px; font-size: .78rem; }
  .prize-carousel-arrow.previous { left: 2px; }
  .prize-carousel-arrow.next { right: 2px; }
  .prize-counter-action { width: calc(100% - 18px); min-height: 68px; margin: 3px auto 6px; grid-template-columns: 1fr minmax(128px, 42%); padding: 7px 8px; gap: 3px 8px; }
  .prize-counter-action strong { font-size: var(--pc-type-label); }
  .prize-counter-action button { min-height: 44px; padding: 5px; font-size: var(--pc-type-min); }
  .prize-counter-action em { font-size: var(--pc-type-min); }
  .prize-redemption-stage { gap: 5px; padding: 8px 6px 6px; }
  .prize-redemption-card { width: min(68vw, 250px); }
  .prize-redemption-card .prize-counter-card { min-height: 214px; height: min(96%, 330px); }
  .prize-redemption-signal small { font-size: var(--pc-type-min); }
  .prize-redemption-signal strong { margin-top: 3px; font-size: 1rem; }
  .prize-redemption-ticket { width: calc(100% - 8px); min-height: 56px; }
  .prize-redemption-ticket span { padding: 6px 7px; }
  .prize-redemption-ticket small { font-size: var(--pc-type-min); }
  .prize-redemption-ticket strong { font-size: var(--pc-type-label); }
  .prize-redemption-actions button, .prize-claim-actions button { min-height: 42px; padding: 6px 9px; font-size: var(--pc-type-min); }
  .prize-redemption-status, .prize-claim-copy { font-size: var(--pc-type-min); }
  .prize-redemption-stage[data-state="claimed"] .prize-redemption-signal strong { font-size: 1.15rem; }
  .prize-counter-controls { min-height: 102px; padding: 8px 5px max(8px, env(safe-area-inset-bottom)); gap: 4px; }
  .prize-counter-controls button { min-height: 86px; font-size: var(--pc-type-min); }
  .prize-category-emblem { width: 48px; height: 48px; margin-bottom: 5px; }
  .prize-counter-deck::before { top: 8px; height: 5px; }
  .prize-counter-deck i, .prize-counter-deck b { top: 10px; width: 15px; height: 15px; border-width: 3px; }
  .prize-counter-deck b { width: 34px; }
  .prize-demo-copy { left: 4%; right: 4%; bottom: 82px; }
  .prize-demo > button { right: 4%; bottom: 22px; }
  .prize-demo-identity-host { inset: 4% 14% 31%; }
  .prize-demo[data-player-identity="true"] .prize-demo-copy { padding: 10px; }
  .prize-demo[data-player-identity="true"] .prize-demo-copy strong { font-size: 1rem; }
}

@media (max-height: 700px) {
  .prize-counter-marquee { min-height: 64px; }
  .prize-counter-controls { min-height: 94px; }
  .prize-counter-controls button { min-height: 80px; }
  .prize-counter-cabinet { grid-template-rows: auto minmax(0, 1fr) auto 34px; }
  .prize-counter-card { min-height: 230px; }
  .prize-counter-action { min-height: 58px; }
  .prize-redemption-stage { padding-block: 5px; }
  .prize-redemption-card .prize-counter-card { min-height: 205px; }
  .prize-redemption-ticket { min-height: 52px; }
}

@media (prefers-reduced-motion: reduce) {
  .prize-counter-card { transition: none; }
  .prize-counter-carousel[data-direction] .prize-counter-card,
  .prize-counter-carousel[data-direction]::after,
  .prize-counter-stage[data-direction] .prize-carousel-arrow,
  .prize-counter-card[data-equipping="true"] .prize-card-art::after,
  .prize-counter-card[data-equip-impact="true"] .prize-card-art,
  .prize-counter-card[data-equip-impact="true"] .prize-equipped-stamp,
  .prize-counter-stage[data-equip-state="equipped"] { animation: none; }
  .prize-counter-empty i { animation: none; }
  .prize-counter-action[data-state="equipping"] { animation: none; }
  .prize-redemption-stage[data-state="purchasing"] .prize-redemption-card,
  .prize-redemption-stage[data-state="claimed"] .prize-counter-card,
  .prize-owned-stamp,
  .prize-claim-rays i,
  .prize-claim-rays b,
  .prize-redemption-stage[data-state="claimed"]::after { animation: none; }
}
