/* V13 — game-specific stage pieces */
html.av2 .av3-center { height: 190px; }
html.av2 .av3-game-tag {
  font-family: var(--av2-ui);
  font-size: 7px;
  font-weight: 800;
  letter-spacing: .14em;
  color: var(--av2-dim);
  margin-top: 6px;
}
html.av2 .av3-gvs { font-family: var(--av2-num); color: var(--av2-dim); font-size: 18px; }

/* coin with two sides */
html.av2 .av3-coin3d {
  width: 118px;
  height: 118px;
  position: relative;
  transform-style: preserve-3d;
  transition: transform 4.8s cubic-bezier(.12,.78,.18,1);
  filter: drop-shadow(0 18px 30px rgba(0,0,0,.55));
}
html.av2 .av3-coin-face {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  backface-visibility: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: var(--av2-num);
  font-size: 48px;
  border: 5px solid #c99411;
  background: radial-gradient(circle at 34% 28%, #fff9cf, #ffd358 48%, #d99b00 78%, #875d00);
  color: #6d4a00;
  box-shadow: inset 0 2px 0 rgba(255,255,255,.7), 0 0 24px rgba(255,200,60,.22);
}
html.av2 .av3-coin-face.back {
  transform: rotateY(180deg);
  background: radial-gradient(circle at 34% 28%, #e8fbff, #68e5ff 48%, #1186a6 80%, #064656);
  border-color: #168fa8;
  color: #04313a;
}
html.av2 .av3-stage-card.done .av3-coin3d { filter: drop-shadow(0 0 24px rgba(198,255,74,.25)); }

/* dice */
html.av2 .av3-dicewrap {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
}
html.av2 .av3-diecol { display: flex; flex-direction: column; align-items: center; gap: 3px; }
html.av2 .av3-diecol span { font-family: var(--av2-num); font-size: 21px; color: var(--av2-cyan); }
html.av2 .av3-diecol small { font-family: var(--av2-ui); font-size: 7px; font-weight: 800; letter-spacing: .1em; color: var(--av2-muted); }
html.av2 .av3-die2 {
  width: 68px; height: 68px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 15px;
  background: linear-gradient(145deg, #fbf7ec, #d6dde5);
  border: 1px solid rgba(0,0,0,.35);
  color: #101722;
  font-family: var(--av2-display);
  font-size: 31px;
  font-weight: 700;
  box-shadow: 0 12px 26px rgba(0,0,0,.42), inset 0 2px 0 #fff;
  animation: av3diceTumble 1.9s ease-in-out infinite;
}
html.av2 .av3-die2.settled {
  animation: none !important;
  border-color: rgba(198,255,74,.5);
  box-shadow: 0 0 0 2px rgba(198,255,74,.16), 0 12px 26px rgba(0,0,0,.42), inset 0 2px 0 #fff;
}
@keyframes av3diceTumble {
  50% { transform: translateY(-12px) rotate(9deg); }
}

/* player wheel: 12 alternating tiles */
html.av2 .av3-wheel-stage { position: relative; width: 166px; height: 166px; }
html.av2 .av3-wheel-pointer {
  position: absolute; left: 50%; top: -12px; transform: translateX(-50%);
  width: 0; height: 0; z-index: 5;
  border-left: 9px solid transparent; border-right: 9px solid transparent; border-top: 18px solid var(--av2-lime);
  filter: drop-shadow(0 3px 4px rgba(0,0,0,.6));
}
html.av2 .av3-playerwheel {
  position: absolute; inset: 0;
  border-radius: 50%;
  border: 5px solid #b88d19;
  box-shadow: 0 0 0 2px rgba(255,255,255,.13), 0 18px 36px rgba(0,0,0,.5), inset 0 0 26px rgba(0,0,0,.4);
  background: repeating-conic-gradient(from 0deg, #2bd0f0 0deg 30deg, #ff3d8b 30deg 60deg);
  transform: rotate(0deg);
}
html.av2 .av3-playerwheel::after {
  content: "";
  position: absolute; inset: 0;
  border-radius: 50%;
  background: radial-gradient(circle, transparent 58%, rgba(0,0,0,.22) 100%);
  pointer-events: none;
}
html.av2 .av3-wheel-label {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 2;
  font-family: var(--av2-num);
  font-size: 19px;
  color: #071014;
  text-shadow: 0 1px 0 rgba(255,255,255,.45);
  transform: translate(-50%,-50%) rotate(calc(var(--i) * 30deg + 15deg)) translateY(-70px) rotate(calc((var(--i) * -30deg) - 15deg));
}
html.av2 .av3-wheel-hub {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%);
  width: 46px; height: 46px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: radial-gradient(circle at 35% 30%, #fff9cf, #ffd358 52%, #9a6b00);
  border: 2px solid #6f4d00;
  font-family: var(--av2-num); font-size: 17px; color: #5c3b00;
  z-index: 4;
}
html.av2 .av3-wheel-stage .av3-game-tag { position: absolute; bottom: -18px; left: 0; right: 0; }

/* team scoreboard */
html.av2 .av3-teamstage {
  display: flex;
  align-items: stretch;
  justify-content: center;
  gap: 8px;
  width: 100%;
}
html.av2 .av3-team-side {
  flex: 1;
  min-width: 0;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.12);
  padding: 8px 6px;
  background: rgba(255,255,255,.035);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
}
html.av2 .av3-team-side.red { border-color: rgba(255,61,139,.32); background: rgba(255,61,139,.06); }
html.av2 .av3-team-side.blue { border-color: rgba(67,231,255,.32); background: rgba(67,231,255,.06); }
html.av2 .av3-team-side h5 {
  margin: 0; font-family: var(--av2-display); font-size: 8px; letter-spacing: .08em;
  color: var(--av2-text);
}
html.av2 .av3-team-side.red h5 { color: #ff9bc4; }
html.av2 .av3-team-side.blue h5 { color: #8ef2ff; }
html.av2 .av3-roster { display: flex; flex-direction: column; gap: 2px; width: 100%; }
html.av2 .av3-roster i {
  font-style: normal; font-family: var(--av2-ui); font-size: 7px; color: var(--av2-muted);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis; text-align: center;
}
html.av2 .av3-team-side b { font-family: var(--av2-num); font-size: 30px; color: #fff; line-height: 1; }
html.av2 .av3-team-side.red b { color: var(--av2-pink); }
html.av2 .av3-team-side.blue b { color: var(--av2-cyan); }
