.mini-game-board.royal-run {
  display: block;
  min-height: clamp(410px, 58vh, 540px);
  padding: 0;
  background: linear-gradient(180deg, #78d8ff 0%, #c6f7ff 46%, #b8f5a8 100%);
}
.mini-game-board.tower-climb {
  display: block;
  min-height: clamp(430px, 62vh, 560px);
  padding: 0;
  overflow: hidden;
  background: #7cc8f5;
}
.tower-climb-viewport {
  position: absolute;
  inset: 0;
  overflow: hidden;
  background: linear-gradient(180deg, #163b87, #8fd8ff 48%, #bde7a4);
}
.tower-climb-map {
  position: absolute;
  left: 50%;
  top: 0;
  width: min(100vw, 760px);
  height: 1960px;
  transform: translate(-50%, 0);
  transform-origin: 50% 0;
  transition: transform 0.12s linear;
  background:
    linear-gradient(180deg, rgba(6, 24, 68, 0.04), rgba(255, 255, 255, 0.08)),
    url("../../data/prince_rescue/tower_heist_map.png") center top / cover no-repeat;
}
.tower-climb-intro {
  position: absolute;
  z-index: 30;
  left: 50%;
  top: 1380px;
  width: min(390px, calc(100vw - 28px));
  min-height: 116px;
  display: grid;
  place-items: center;
  gap: 10px;
  padding: 18px 18px 16px;
  border: 4px solid rgba(255, 216, 107, 0.92);
  border-radius: 18px;
  background: rgba(255, 250, 228, 0.94);
  box-shadow: 0 18px 40px rgba(54, 32, 69, 0.28);
  translate: -50% 0;
  cursor: pointer;
  transition:
    opacity 0.25s ease,
    scale 0.25s ease;
}
.mini-game-board.tower-climb:not(.kidnap-complete) .tower-climb-intro {
  opacity: 0;
  pointer-events: none;
  scale: 0.96;
}
.tower-climb-intro.hide {
  opacity: 0;
  pointer-events: none;
  scale: 0.92;
}
.tower-climb-intro strong,
.tower-climb-intro span {
  grid-column: 1 / -1;
  display: block;
  text-align: center;
}
.tower-climb-intro strong {
  color: #9b2d6a;
  font:
    900 28px/1 "Georgia",
    serif;
}
.tower-climb-intro span {
  color: #5b2142;
  font:
    800 15px/1.2 "Arial Rounded MT Bold",
    "Trebuchet MS",
    Arial,
    sans-serif;
}
.tower-kidnap-ape,
.tower-prince-vine,
.tower-climb-prince,
.tower-climb-princess,
.tower-climb-ape {
  position: absolute;
  z-index: 12;
  background-repeat: no-repeat;
  background-position: center bottom;
  background-size: contain;
  filter: drop-shadow(0 9px 10px rgba(39, 29, 58, 0.28));
  pointer-events: none;
}
.tower-prince-vine {
  z-index: 10;
  width: 38px;
  margin-left: -19px;
  transform-origin: 50% 0;
  opacity: 0;
  transition:
    opacity 0.18s ease,
    height 0.08s linear,
    left 0.08s linear,
    top 0.08s linear;
}
.tower-prince-vine.active {
  opacity: 0.96;
}
.tower-prince-vine::before,
.tower-prince-vine::after,
.tower-prince-vine span {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 7px;
  border-radius: 999px;
  background:
    linear-gradient(90deg, rgba(72, 78, 33, 0.52), transparent 55%),
    repeating-linear-gradient(
      180deg,
      #517532 0 12px,
      #6aa33c 12px 22px,
      #3f642a 22px 32px
    );
  box-shadow:
    0 0 0 2px rgba(255, 243, 176, 0.18),
    0 7px 10px rgba(37, 41, 22, 0.25);
}
.tower-prince-vine::before {
  left: 10px;
}
.tower-prince-vine::after {
  left: 22px;
  opacity: 0.78;
}
.tower-prince-vine span {
  left: 16px;
  width: 5px;
  opacity: 0.7;
  rotate: 5deg;
}
.tower-prince-vine span::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -15px;
  width: 44px;
  height: 21px;
  border: 6px solid rgba(70, 104, 45, 0.98);
  border-top: 0;
  border-radius: 0 0 24px 24px;
  translate: -50% 0;
  opacity: 0.98;
  box-shadow:
    inset 0 -3px 0 rgba(255, 238, 150, 0.22),
    0 5px 8px rgba(35, 41, 24, 0.24);
}
.tower-prince-vine.active::before {
  animation: tower-vine-twist 0.6s ease-in-out infinite alternate;
}
.tower-prince-vine.active::after {
  animation: tower-vine-twist 0.6s ease-in-out infinite alternate-reverse;
}
@keyframes tower-vine-twist {
  to {
    translate: 2px 0;
  }
}
.tower-swing-trail {
  position: absolute;
  z-index: 8;
  width: 230px;
  height: 128px;
  margin-left: -115px;
  margin-top: -64px;
  border-bottom: 8px solid rgba(255, 225, 94, 0.74);
  border-radius: 50%;
  translate: 0 0;
  filter: drop-shadow(0 0 10px rgba(255, 232, 115, 0.7))
    drop-shadow(0 8px 12px rgba(61, 42, 73, 0.18));
  opacity: 0;
  pointer-events: none;
  transition:
    left 0.08s linear,
    top 0.08s linear,
    opacity 0.08s linear,
    scale 0.08s linear,
    rotate 0.08s linear;
}
.tower-swing-trail::before,
.tower-swing-trail::after {
  content: "";
  position: absolute;
  bottom: -12px;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: rgba(255, 246, 176, 0.84);
  box-shadow: 0 0 14px rgba(255, 236, 123, 0.74);
}
.tower-swing-trail::before {
  left: 22px;
}
.tower-swing-trail::after {
  right: 22px;
}
.tower-swing-trail.boost {
  border-bottom-color: rgba(119, 236, 147, 0.78);
  filter: drop-shadow(0 0 12px rgba(119, 236, 147, 0.82))
    drop-shadow(0 10px 14px rgba(61, 42, 73, 0.2));
}
.tower-momentum-meter {
  position: absolute;
  z-index: 17;
  width: 86px;
  height: 14px;
  margin-left: -43px;
  border: 3px solid rgba(91, 33, 66, 0.28);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.76);
  box-shadow: 0 7px 12px rgba(39, 29, 58, 0.18);
  opacity: 0;
  pointer-events: none;
  transition:
    opacity 0.12s ease,
    left 0.08s linear,
    top 0.08s linear;
}
.tower-momentum-meter.active {
  opacity: 0.92;
}
.tower-momentum-meter span {
  display: block;
  width: calc(max(0.12, var(--tower-momentum, 0)) * 100%);
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #ffd86b, #77ec93);
  transition: width 0.08s linear;
}
.tower-momentum-meter.ready {
  border-color: rgba(119, 236, 147, 0.9);
  box-shadow:
    0 7px 12px rgba(39, 29, 58, 0.18),
    0 0 18px rgba(119, 236, 147, 0.72);
}
.tower-rescue-proof {
  position: fixed;
  box-sizing: border-box;
  right: max(14px, env(safe-area-inset-right));
  top: max(62px, calc(env(safe-area-inset-top) + 62px));
  z-index: 318;
  width: min(260px, calc(100vw - 28px));
  display: grid;
  gap: 5px;
  padding: 10px 12px;
  border: 2px solid rgba(119, 236, 147, 0.78);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.9);
  color: #5b2142;
  box-shadow: 0 10px 20px rgba(44, 26, 58, 0.16);
  font:
    900 12px/1.15 "Arial Rounded MT Bold",
    "Trebuchet MS",
    Arial,
    sans-serif;
}
.tower-rescue-proof b {
  color: #2c7a4a;
  text-transform: uppercase;
}
.tower-route-row {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 4px;
  margin: 2px 0 4px;
}
.tower-route-step {
  display: grid;
  justify-items: center;
  gap: 2px;
  min-width: 0;
  padding: 4px 2px;
  border: 1px solid rgba(107, 34, 71, 0.16);
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.62);
  color: #6b2247;
  font-size: 9px;
  line-height: 1.05;
  text-align: center;
}
.tower-route-step i {
  width: 20px;
  height: 20px;
  display: inline-grid;
  place-items: center;
  border-radius: 999px;
  background: rgba(255, 216, 107, 0.34);
  color: #6b2247;
  font-size: 10px;
  font-style: normal;
}
.tower-route-step.current {
  border-color: rgba(255, 216, 107, 0.9);
  background: rgba(255, 250, 228, 0.92);
  color: #8a3b16;
}
.tower-route-step.current i {
  background: #ffd86b;
  box-shadow: 0 0 12px rgba(255, 216, 107, 0.72);
}
.tower-route-step.done {
  border-color: rgba(119, 236, 147, 0.66);
  background: rgba(237, 255, 229, 0.82);
  color: #2c7a4a;
}
.tower-route-step.done i {
  background: rgba(119, 236, 147, 0.36);
  color: #2c7a4a;
}
.tower-rescue-proof span {
  display: flex;
  align-items: center;
  gap: 6px;
  opacity: 0.72;
}
.tower-rescue-proof span.done {
  opacity: 1;
  color: #2c7a4a;
}
.tower-rescue-proof i {
  width: 18px;
  height: 18px;
  display: inline-grid;
  place-items: center;
  border-radius: 999px;
  background: rgba(119, 236, 147, 0.2);
  font-style: normal;
}
.tower-rescue-proof .tower-route-step {
  display: grid;
  justify-items: center;
  gap: 2px;
  opacity: 1;
}
.tower-rescue-proof .tower-route-step i {
  width: 20px;
  height: 20px;
  background: rgba(255, 216, 107, 0.34);
  color: #6b2247;
  font-size: 10px;
}
.tower-rescue-proof .tower-route-step.current i {
  background: #ffd86b;
  box-shadow: 0 0 12px rgba(255, 216, 107, 0.72);
}
.tower-rescue-proof .tower-route-step.done i {
  background: rgba(119, 236, 147, 0.36);
  color: #2c7a4a;
}
.tower-next-action {
  position: fixed;
  box-sizing: border-box;
  left: max(14px, env(safe-area-inset-left));
  top: max(62px, calc(env(safe-area-inset-top) + 62px));
  z-index: 318;
  width: min(286px, calc(100vw - 28px));
  display: grid;
  gap: 5px;
  padding: 12px 14px;
  border: 2px solid rgba(255, 216, 107, 0.88);
  border-radius: 14px;
  background: rgba(255, 250, 228, 0.92);
  color: #5b2142;
  box-shadow: 0 10px 20px rgba(44, 26, 58, 0.16);
  font:
    900 13px/1.15 "Arial Rounded MT Bold",
    "Trebuchet MS",
    Arial,
    sans-serif;
  opacity: 0;
  pointer-events: none;
  transform: translateY(-4px);
  transition:
    opacity 0.16s ease,
    transform 0.16s ease,
    border-color 0.16s ease;
}
.mini-game-board.tower-climb[data-tower-phase="intro"] .tower-next-action,
.mini-game-board.tower-climb[data-tower-phase="play"] .tower-next-action,
.mini-game-board.tower-climb[data-tower-phase="lost"] .tower-next-action {
  opacity: 1;
  transform: translateY(0);
}
.tower-next-action b {
  color: #9b2d6a;
  text-transform: uppercase;
  font-size: 11px;
  letter-spacing: 0.04em;
}
.tower-next-action span {
  display: block;
  color: #5b2142;
  font-size: 16px;
  line-height: 1.1;
}
.tower-next-action small {
  display: block;
  color: #2c7a4a;
  font-size: 12px;
  line-height: 1.15;
}
.tower-next-action[data-tower-action-tone="ready"] {
  border-color: rgba(119, 236, 147, 0.86);
  background: rgba(237, 255, 229, 0.93);
}
.tower-next-action[data-tower-action-tone="recover"] {
  border-color: rgba(255, 158, 107, 0.86);
  background: rgba(255, 244, 232, 0.94);
}
.mini-game-board.tower-climb .tower-momentum-meter,
.mini-game-board.tower-climb .tower-hold-guide,
.mini-game-board.tower-climb .tower-climb-cue {
  display: none;
}
.mini-game-board.tower-climb[data-tower-phase="play"] .tower-momentum-meter,
.mini-game-board.tower-climb[data-tower-phase="play"] .tower-hold-guide,
.mini-game-board.tower-climb[data-tower-phase="play"] .tower-climb-cue {
  display: block;
}
.tower-hold-guide {
  position: absolute;
  z-index: 18;
  min-width: 86px;
  margin-left: -43px;
  padding: 6px 9px;
  border: 3px solid rgba(119, 236, 147, 0.86);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.9);
  color: #237c42;
  font:
    900 12px/1 "Arial Rounded MT Bold",
    "Trebuchet MS",
    Arial,
    sans-serif;
  text-align: center;
  text-transform: uppercase;
  box-shadow:
    0 8px 14px rgba(39, 29, 58, 0.16),
    0 0 18px rgba(119, 236, 147, 0.62);
  opacity: 0;
  pointer-events: none;
  rotate: var(--guide-tilt, 0deg);
  transition:
    opacity 0.14s ease,
    left 0.1s linear,
    top 0.1s linear;
}
.tower-hold-guide.active {
  opacity: 1;
}
.mini-game-board.tower-climb[data-tower-phase="play"] .tower-hold-guide.active {
  opacity: 1;
}
.tower-hold-guide.danger {
  border-color: rgba(255, 114, 114, 0.9);
  color: #a22b4d;
  box-shadow:
    0 8px 14px rgba(39, 29, 58, 0.16),
    0 0 20px rgba(255, 114, 114, 0.72);
}
.tower-hold-guide::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -13px;
  width: 18px;
  height: 18px;
  background: rgba(255, 255, 255, 0.9);
  border-right: 3px solid rgba(119, 236, 147, 0.86);
  border-bottom: 3px solid rgba(119, 236, 147, 0.86);
  transform: translateX(-50%) rotate(45deg);
}
.tower-climb-cue {
  position: absolute;
  z-index: 19;
  min-width: 132px;
  margin-left: -66px;
  padding: 8px 11px;
  border: 3px solid rgba(255, 216, 107, 0.92);
  border-radius: 16px;
  background: rgba(255, 250, 228, 0.94);
  color: #672345;
  font:
    900 13px/1 "Arial Rounded MT Bold",
    "Trebuchet MS",
    Arial,
    sans-serif;
  text-align: center;
  box-shadow:
    0 8px 14px rgba(39, 29, 58, 0.18),
    0 0 18px rgba(255, 216, 107, 0.62);
  opacity: 0;
  pointer-events: none;
  translate: 0 0;
  transition:
    opacity 0.14s ease,
    left 0.1s linear,
    top 0.1s linear;
}
.tower-climb-cue.active {
  opacity: 0.96;
  animation: tower-climb-cue-pulse 0.7s ease-in-out infinite alternate;
}
.mini-game-board.tower-climb[data-tower-phase="play"] .tower-climb-cue.active {
  opacity: 0.96;
}
.tower-climb-cue.steer {
  border-color: rgba(119, 236, 147, 0.88);
  color: #237c42;
}
.tower-climb-cue.ready {
  background: rgba(237, 255, 229, 0.95);
  border-color: rgba(119, 236, 147, 0.94);
}
@keyframes tower-climb-cue-pulse {
  to {
    translate: 0 -5px;
  }
}
.tower-kidnap-trail {
  position: absolute;
  z-index: 5;
  left: 50%;
  top: 260px;
  width: 116px;
  height: 1320px;
  border-left: 7px dotted rgba(255, 216, 107, 0.56);
  border-radius: 50%;
  translate: -2px 0;
  filter: drop-shadow(0 0 10px rgba(255, 237, 143, 0.48));
  opacity: 0.9;
}
.tower-kidnap-bundle {
  position: absolute;
  z-index: 28;
  width: 164px;
  height: 148px;
  margin-left: -82px;
  margin-top: -122px;
  pointer-events: none;
  filter: drop-shadow(0 14px 14px rgba(39, 29, 58, 0.32));
  animation: tower-kidnap-bob 0.52s ease-in-out infinite alternate;
}
.tower-kidnap-bundle.done {
  opacity: 0;
  scale: 0.82;
  transition:
    opacity 0.22s ease,
    scale 0.22s ease;
}
.tower-kidnap-ape {
  left: -2px;
  bottom: -6px;
  width: 176px;
  height: 176px;
  background-image: url("../../data/prince_rescue/ape_action_sheet_v2.png");
  background-size: 400% 300%;
  background-position: 0 0;
  animation: tower-ape-alert 0.34s ease-in-out infinite alternate;
}
.mini-game-board.tower-climb:not(.kidnap-complete) .tower-climb-princess,
.mini-game-board.tower-climb:not(.kidnap-complete) .tower-climb-ape {
  opacity: 0;
}
.mini-game-board.tower-climb.kidnap-complete .tower-kidnap-trail {
  opacity: 0;
  transition: opacity 0.28s ease;
}
@keyframes tower-kidnap-bob {
  to {
    translate: 0 -9px;
    rotate: 2deg;
  }
}
@keyframes tower-princess-worry {
  to {
    translate: 0 -5px;
  }
}
.tower-climb-prince {
  width: 224px;
  height: 224px;
  --prince-hand-x: 110.25;
  --prince-hand-y: 76.13;
  --prince-face: 1;
  margin-left: calc(var(--prince-hand-x) * -1px);
  margin-top: calc(var(--prince-hand-y) * -1px);
  background-image: url("../../data/prince_rescue/prince_vine_swing_sheet_no_vine_runtime.png");
  background-size: 400% 300%;
  background-position: 0 0;
  transform-origin: calc(var(--prince-hand-x) * 1px)
    calc(var(--prince-hand-y) * 1px);
  filter: drop-shadow(0 9px 10px rgba(39, 29, 58, 0.28))
    drop-shadow(0 0 8px rgba(255, 238, 157, 0.24));
  transform: rotate(0deg) scaleX(var(--prince-face));
  will-change: left, top, transform;
  transition:
    left 0.08s linear,
    top 0.08s linear,
    transform 0.08s linear;
}
.tower-climb-prince.swinging {
  animation: prince-dangle 0.5s ease-in-out infinite alternate;
}
.tower-climb-prince.hit {
  animation: prince-hit 0.42s ease;
}
.mini-game-board.tower-falling .tower-climb-prince {
  animation: tower-prince-fall 0.22s ease-in-out infinite alternate;
}
.mini-game-board.tower-landing .tower-climb-prince {
  filter: drop-shadow(0 9px 10px rgba(39, 29, 58, 0.28))
    drop-shadow(0 0 18px rgba(119, 236, 147, 0.86));
}
.tower-climb-prince.shielded {
  filter: drop-shadow(0 9px 10px rgba(39, 29, 58, 0.28))
    drop-shadow(0 0 14px rgba(119, 236, 147, 0.72));
}
.tower-climb-prince.rescued {
  z-index: 16;
  scale: 1.08;
  transition:
    left 0.22s ease,
    top 0.22s ease,
    scale 0.22s ease;
}
@keyframes prince-hit {
  30% {
    translate: -10px 0;
    rotate: -8deg;
  }
  62% {
    translate: 10px 0;
    rotate: 8deg;
  }
}
@keyframes tower-prince-fall {
  to {
    translate: 0 8px;
    rotate: -5deg;
  }
}
@keyframes prince-dangle {
  to {
    translate: 0 5px;
  }
}
.tower-climb-princess {
  width: 138px;
  height: 138px;
  margin-left: -69px;
  margin-top: -112px;
  background-image: url("../../data/prince_rescue/princess_rescue_sheet_v2.png");
  background-size: 400% 300%;
  background-position: 0 0;
  transition: background-position 0.18s steps(1);
}
.tower-climb-ape {
  width: 152px;
  height: 152px;
  margin-left: -76px;
  margin-top: -124px;
  background-image: url("../../data/prince_rescue/ape_action_sheet_v2.png");
  background-size: 400% 300%;
  background-position: 0 0;
  z-index: 11;
  animation: tower-ape-alert 0.42s ease-in-out infinite alternate;
}
.tower-climb-ape-two {
  z-index: 10;
  scale: 0.72;
  filter: drop-shadow(0 9px 10px rgba(39, 29, 58, 0.26))
    saturate(0.92);
  animation-duration: 0.5s;
}
.tower-climb-ape.defeated {
  opacity: 0;
  translate: 0 80px;
  transition:
    opacity 0.24s ease,
    translate 0.24s ease;
}
.tower-climb-goal {
  position: absolute;
  z-index: 6;
  left: 50%;
  top: 196px;
  width: 152px;
  height: 118px;
  border: 4px solid rgba(255, 216, 107, 0.9);
  border-radius: 24px;
  background: radial-gradient(
    circle,
    rgba(255, 248, 190, 0.5),
    transparent 70%
  );
  box-shadow: 0 0 36px rgba(255, 216, 107, 0.8);
  translate: -50% 0;
}
.tower-climb-key {
  position: absolute;
  z-index: 9;
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  margin: -27px 0 0 -27px;
  border: 3px solid rgba(255, 255, 255, 0.9);
  border-radius: 50%;
  background:
    radial-gradient(circle at 35% 28%, #fff, transparent 24%),
    linear-gradient(180deg, #fff3a4, #ffbd39);
  color: #8a3d62;
  font-size: 24px;
  box-shadow:
    0 7px 0 rgba(69, 44, 72, 0.18),
    0 0 20px rgba(255, 216, 107, 0.78);
  animation: tower-anchor-ready 0.82s ease-in-out infinite alternate;
}
.tower-climb-key.near {
  border-color: rgba(119, 236, 147, 0.95);
  box-shadow:
    0 0 0 8px rgba(255, 255, 255, 0.5),
    0 0 22px rgba(119, 236, 147, 0.82),
    0 10px 14px rgba(61, 42, 73, 0.16);
  scale: 1.08;
}
.tower-climb-key.locked {
  opacity: 0.46;
  filter: grayscale(0.25) saturate(0.76);
  animation: none;
}
.tower-climb-key.danger {
  border-color: rgba(255, 114, 114, 0.95);
  box-shadow:
    0 0 0 8px rgba(255, 255, 255, 0.5),
    0 0 24px rgba(255, 114, 114, 0.86),
    0 10px 14px rgba(61, 42, 73, 0.16);
  animation: tower-anchor-danger 0.28s ease-in-out infinite alternate;
}
.tower-climb-key.got {
  opacity: 0.22;
  scale: 0.72;
  transition:
    opacity 0.18s ease,
    scale 0.18s ease;
}
@keyframes tower-anchor-danger {
  to {
    scale: 1.16;
  }
}
.tower-banana-layer {
  position: absolute;
  inset: 0;
  z-index: 13;
  pointer-events: none;
}
.tower-banana-warning {
  position: absolute;
  z-index: 260;
  width: 34px;
  height: 34px;
  display: grid;
  place-items: center;
  margin: -17px 0 0 -17px;
  border: 3px solid rgba(255, 255, 255, 0.92);
  border-radius: 50%;
  background: rgba(255, 114, 114, 0.92);
  color: #fff;
  font:
    900 22px/1 "Arial Rounded MT Bold",
    "Trebuchet MS",
    Arial,
    sans-serif;
  opacity: 0;
  pointer-events: none;
  box-shadow:
    0 8px 12px rgba(39, 29, 58, 0.18),
    0 0 18px rgba(255, 114, 114, 0.74);
  transition:
    opacity 0.12s ease,
    left 0.08s linear,
    top 0.08s linear;
}
.tower-banana-warning.active {
  opacity: 1;
  animation: tower-warning-pulse 0.34s ease-in-out infinite alternate;
}
@keyframes tower-warning-pulse {
  to {
    scale: 1.14;
  }
}
.tower-banana {
  position: absolute;
  width: 46px;
  height: 46px;
  display: grid;
  place-items: center;
  margin: -21px 0 0 -21px;
  border-radius: 50%;
  background: rgba(255, 247, 184, 0.88);
  color: #5d392b;
  font-size: 29px;
  line-height: 1;
  rotate: -18deg;
  box-shadow:
    0 5px 0 rgba(69, 44, 72, 0.14),
    0 0 16px rgba(255, 216, 107, 0.58);
}
.tower-banana.hit {
  opacity: 0;
  scale: 1.7;
  transition:
    opacity 0.2s ease,
    scale 0.2s ease;
}
.tower-climb-controls {
  position: absolute;
  z-index: 24;
  left: 0;
  right: 0;
  bottom: 140px;
  display: grid;
  grid-template-columns: repeat(3, 58px);
  grid-template-rows: repeat(2, 50px);
  justify-content: center;
  gap: 10px;
  padding: 12px;
  background: linear-gradient(
    180deg,
    rgba(255, 255, 255, 0),
    rgba(255, 255, 255, 0.8)
  );
  pointer-events: none;
}
.tower-climb-controls [data-climb-dir="up"] {
  grid-column: 2;
  grid-row: 1;
  border-color: rgba(119, 236, 147, 0.86);
  background: rgba(237, 255, 229, 0.96);
  box-shadow:
    0 5px 0 rgba(107, 34, 71, 0.15),
    0 0 18px rgba(119, 236, 147, 0.55);
}
.tower-climb-controls [data-climb-dir="left"] {
  grid-column: 1;
  grid-row: 2;
}
.tower-climb-controls [data-climb-dir="down"] {
  grid-column: 2;
  grid-row: 2;
  opacity: 0.86;
}
.tower-climb-controls [data-climb-dir="right"] {
  grid-column: 3;
  grid-row: 2;
}
.tower-climb-controls button {
  width: 58px;
  height: 50px;
  border: 3px solid rgba(107, 34, 71, 0.32);
  border-radius: 18px;
  background: rgba(255, 255, 255, 0.94);
  color: #6b2247;
  font:
    900 22px/1 "Arial Rounded MT Bold",
    "Trebuchet MS",
    Arial,
    sans-serif;
  box-shadow: 0 5px 0 rgba(107, 34, 71, 0.15);
  cursor: pointer;
  pointer-events: auto;
  touch-action: none;
  user-select: none;
}
.tower-climb-controls button:active {
  transform: translateY(2px);
  box-shadow: 0 3px 0 rgba(107, 34, 71, 0.15);
}
.tower-climb-controls button.is-recommended {
  border-color: rgba(255, 216, 107, 0.98);
  background: rgba(255, 250, 228, 0.98);
  color: #8a3b16;
  box-shadow:
    0 5px 0 rgba(107, 34, 71, 0.15),
    0 0 0 4px rgba(255, 216, 107, 0.22),
    0 0 18px rgba(255, 216, 107, 0.58);
}
.mini-game-modal:has(.mini-game-board.tower-climb) .mini-game-backdrop,
.mini-game-modal:has(.mini-game-board.tower-climb) .mini-game-card::before,
.mini-game-modal:has(.mini-game-board.tower-climb) .mini-game-kicker,
.mini-game-modal:has(.mini-game-board.tower-climb) .mini-game-title,
.mini-game-modal:has(.mini-game-board.tower-climb) .mini-game-prompt,
.mini-game-modal:has(.mini-game-board.tower-climb) .mini-guidance-toggle,
.mini-game-modal:has(.mini-game-board.tower-climb) .mini-challenge-charm,
.mini-game-modal:has(.mini-game-board.tower-climb) .mini-game-brain,
.mini-game-modal:has(.mini-game-board.tower-climb) .mini-game-coach,
.mini-game-modal:has(.mini-game-board.tower-climb) .mini-game-board::after {
  display: none !important;
}
body:has(.mini-game-board.tower-climb) .mystery-trail-launcher-btn {
  display: none !important;
}
.mini-game-modal:has(.mini-game-board.tower-climb) .mini-game-card {
  padding: 0;
  overflow: hidden;
  background: #78c7f5;
}
.mini-game-modal:has(.mini-game-board.tower-climb) .mini-game-board {
  position: absolute;
  inset: 0;
  width: 100%;
  min-height: 100dvh;
  margin: 0;
  border: 0;
  border-radius: 0;
}
.mini-game-modal:has(.mini-game-board.tower-climb) .mini-game-close {
  position: fixed;
  left: max(12px, env(safe-area-inset-left));
  top: max(12px, env(safe-area-inset-top));
  z-index: 320;
  min-width: 72px;
  height: 44px;
  margin: 0;
  padding: 0 14px;
  border-width: 2px;
  background: rgba(107, 34, 71, 0.86);
  box-shadow: 0 8px 18px rgba(44, 26, 58, 0.18);
  font-size: 14px;
}
.mini-game-modal:has(.mini-game-board.tower-climb) .mini-game-progress {
  position: fixed;
  right: max(14px, env(safe-area-inset-right));
  top: max(14px, env(safe-area-inset-top));
  z-index: 320;
  min-height: 0;
  max-width: min(230px, calc(100vw - 108px));
  margin: 0;
  padding: 8px 12px;
  border: 2px solid rgba(119, 236, 147, 0.78);
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.88);
  color: #5b2142;
  box-shadow: 0 8px 18px rgba(44, 26, 58, 0.16);
  font:
    900 15px/1.05 "Arial Rounded MT Bold",
    "Trebuchet MS",
    Arial,
    sans-serif;
  text-align: center;
}
.mini-game-modal:has(.mini-game-board.tower-climb) .mini-game-feedback {
  position: fixed;
  left: max(14px, env(safe-area-inset-left));
  bottom: max(150px, env(safe-area-inset-bottom));
  z-index: 315;
  min-height: 0;
  max-width: min(360px, calc(100vw - 180px));
  margin: 0;
  padding: 8px 12px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.86);
  color: #2d7a42;
  box-shadow: 0 8px 18px rgba(44, 26, 58, 0.14);
  font:
    900 15px/1.1 "Arial Rounded MT Bold",
    "Trebuchet MS",
    Arial,
    sans-serif;
}
.mini-game-modal:has(.mini-game-board.tower-climb)
  .mini-game-feedback:empty {
  display: none;
}
@media (max-width: 560px) {
  .mini-game-modal:has(.mini-game-board.tower-climb) .mini-game-close {
    min-width: 58px;
    height: 44px;
    padding: 0 11px;
    font-size: 13px;
  }
  .mini-game-modal:has(.mini-game-board.tower-climb) .mini-game-progress {
    max-width: calc(100vw - 92px);
    padding: 7px 10px;
    font-size: 13px;
  }
  .tower-rescue-proof {
    top: max(58px, calc(env(safe-area-inset-top) + 58px));
    width: min(210px, calc(100vw - 162px));
    padding: 8px 9px;
    font-size: 10px;
  }
  .tower-route-row {
    gap: 3px;
  }
  .tower-route-step {
    padding: 3px 1px;
    font-size: 8px;
  }
  .tower-route-step i {
    width: 18px;
    height: 18px;
  }
  .tower-next-action {
    left: 10px;
    top: max(218px, calc(env(safe-area-inset-top) + 218px));
    width: calc(100vw - 20px);
    padding: 9px 10px;
    font-size: 11px;
  }
  .tower-next-action b {
    font-size: 9px;
  }
  .tower-next-action span {
    font-size: 13px;
  }
  .tower-next-action small {
    font-size: 10px;
  }
  .mini-game-modal:has(.mini-game-board.tower-climb) .mini-game-feedback {
    left: 10px;
    right: auto;
    bottom: 154px;
    max-width: min(260px, calc(100vw - 20px));
    width: auto;
    border-radius: 999px;
    font-size: 13px;
    text-align: center;
  }
}
@media (prefers-reduced-motion: reduce) {
  .tower-prince-vine.active::before,
  .tower-prince-vine.active::after,
  .tower-climb-prince.swinging,
  .mini-game-board.tower-falling .tower-climb-prince,
  .tower-climb-ape,
  .tower-kidnap-ape,
  .tower-kidnap-bundle,
  .tower-climb-key,
  .tower-climb-key.danger,
  .tower-banana-warning.active,
  .tower-climb-cue.active,
  .tower-next-action {
    animation: none;
    transition: none;
  }
  .tower-swing-trail {
    opacity: 0 !important;
  }
}
.mini-game-board.royal-run.theme-prince-rescue {
  background: linear-gradient(180deg, #88d8f5 0%, #c9f0da 50%, #f6d486 100%);
}
.mini-game-board.royal-run.theme-prince-rescue .royal-run-bg {
  background:
    radial-gradient(
      circle at 124px 58px,
      rgba(255, 255, 255, 0.92) 0 26px,
      transparent 27px
    ),
    radial-gradient(
      circle at 690px 48px,
      rgba(255, 245, 176, 0.92) 0 34px,
      transparent 35px
    ),
    linear-gradient(180deg, rgba(255, 255, 255, 0.34), transparent 54%),
    linear-gradient(180deg, #77c8ff 0%, #b7e8c6 62%, #f2c772 100%);
}
.mini-game-board.royal-run.theme-prince-rescue .royal-run-bg::before {
  left: 48px;
  bottom: 68px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.26), transparent 40%), #6abf6f;
  box-shadow:
    28px -34px 0 -18px #ffd86b,
    60px -10px 0 -34px #2b8c5a,
    98px -42px 0 -22px #ff8b56;
}
.mini-game-board.royal-run.theme-prince-rescue .royal-run-bg::after {
  left: 1040px;
  bottom: 62px;
  width: 150px;
  height: 190px;
  border-radius: 28px 28px 8px 8px;
  background:
    linear-gradient(
      90deg,
      transparent 0 36%,
      rgba(255, 255, 255, 0.3) 37% 43%,
      transparent 44%
    ),
    linear-gradient(180deg, #cfd0da 0%, #8b8fa6 100%);
  box-shadow:
    0 -42px 0 -16px #6d6f85,
    52px -8px 0 -28px #a5a8bc,
    -48px 8px 0 -28px #a5a8bc;
}
.mini-game-board.royal-run.theme-prince-rescue .royal-run-ground {
  background:
    radial-gradient(circle at 22px 10px, #ffe68a 0 8px, transparent 9px) 0 0 /
      76px 28px,
    linear-gradient(180deg, #69cf71 0%, #43a957 58%, #297941 100%);
  border-top-color: #f7d56b;
}
.mini-game-board.royal-run.theme-prince-rescue .royal-run-platform {
  background: linear-gradient(180deg, #fff6df 0%, #d9d1bd 48%, #9a8f80 100%);
  border-color: rgba(68, 60, 78, 0.28);
}
.mini-game-board.royal-run.theme-prince-rescue .royal-route-prop {
  display: block;
  right: 4px;
  bottom: 92px;
  width: 220px;
  height: 220px;
  background-image: url("../../data/prince_rescue/princess_runtime.png");
  background-size: contain;
  background-position: center;
  transform: scale(0.56);
  opacity: 0.96;
  filter: drop-shadow(0 10px 14px rgba(57, 42, 70, 0.22));
}
.mini-game-board.royal-run.theme-prince-rescue .royal-run-princess {
  width: 68px;
  height: 80px;
  background-image: url("../../data/prince_rescue/chimp_hero_runtime.png");
  background-size: contain;
  background-position: center bottom;
  background-repeat: no-repeat;
}
.mini-game-board.royal-run.theme-prince-rescue .royal-run-princess::before {
  left: 46px;
  top: 22px;
  width: 22px;
  height: 12px;
  border-radius: 999px;
  background: #3bb9a4;
  box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.65);
}
.mini-game-board.royal-run.theme-prince-rescue .royal-run-gem {
  background: radial-gradient(
    circle at 34% 30%,
    #fff9c9 0 13%,
    #ffd65b 14% 50%,
    #f0a12e 51% 100%
  );
  color: #6c4c13;
}
.mini-game-board.royal-run.theme-prince-rescue .royal-run-enemy {
  width: 56px;
  height: 46px;
  border-radius: 45% 45% 42% 42%;
  background:
    radial-gradient(circle at 34% 28%, #d5a06e 0 18%, transparent 19%),
    linear-gradient(180deg, #6b3f2c 0%, #3d241b 100%);
  color: #ffd86b;
}
.mini-game-board.royal-run.theme-prince-rescue .royal-run-crown {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.28), transparent 38%),
    linear-gradient(180deg, #cfd0da, #8b8fa6);
  color: #ffe68a;
  border-color: #ffe68a;
}
.prince-rescue-boss,
.prince-rescue-princess,
.prince-rescue-ally {
  display: none;
}
.mini-game-board.royal-run.theme-prince-rescue .prince-rescue-boss,
.mini-game-board.royal-run.theme-prince-rescue .prince-rescue-princess,
.mini-game-board.royal-run.theme-prince-rescue .prince-rescue-ally {
  display: block;
  position: absolute;
  z-index: 3;
  background-repeat: no-repeat;
  filter: drop-shadow(0 10px 13px rgba(57, 42, 70, 0.24));
  pointer-events: none;
}
.mini-game-board.royal-run.theme-prince-rescue .prince-rescue-boss {
  left: 890px;
  bottom: 72px;
  width: 138px;
  height: 138px;
  background-image: url("../../data/prince_rescue/villain_ape_runtime.png");
  background-size: contain;
  background-position: center bottom;
}
.mini-game-board.royal-run.theme-prince-rescue .prince-rescue-princess {
  left: 1214px;
  bottom: 296px;
  width: 70px;
  height: 96px;
  background-image: url("../../data/prince_rescue/princess_runtime.png");
  background-size: contain;
  background-position: center bottom;
}
.mini-game-board.royal-run.theme-prince-rescue .prince-rescue-ally {
  left: 1132px;
  bottom: 70px;
  width: 72px;
  height: 96px;
  background-image: url("../../data/prince_rescue/human_prince_runtime.png");
  background-size: contain;
  background-position: center bottom;
}
.mini-game-board.royal-run.theme-caramel {
  background: linear-gradient(180deg, #ffd9b8 0%, #fff1cf 48%, #ffc48a 100%);
}
.mini-game-board.royal-run.theme-caramel .royal-run-bg {
  background:
    radial-gradient(
      circle at 116px 70px,
      rgba(255, 255, 255, 0.86) 0 28px,
      transparent 29px
    ),
    radial-gradient(
      circle at 520px 52px,
      rgba(255, 216, 107, 0.8) 0 34px,
      transparent 35px
    ),
    radial-gradient(
      circle at 880px 82px,
      rgba(255, 255, 255, 0.78) 0 25px,
      transparent 26px
    ),
    repeating-linear-gradient(
      90deg,
      rgba(139, 74, 36, 0.08) 0 22px,
      transparent 22px 54px
    );
}
.mini-game-board.royal-run.theme-caramel .royal-run-ground {
  background:
    radial-gradient(circle at 22px 10px, #fff1a6 0 8px, transparent 9px) 0 0 /
      76px 28px,
    linear-gradient(180deg, #ffb36b 0%, #d98242 58%, #9a552b 100%);
  border-top-color: #fff1a6;
}
.mini-game-board.royal-run.theme-caramel .royal-run-platform {
  background: linear-gradient(180deg, #fff1a6 0%, #d98242 54%, #8a4a24 100%);
  border-color: rgba(92, 45, 21, 0.26);
}
.mini-game-board.royal-run.theme-caramel .royal-run-crown {
  background: linear-gradient(180deg, #fff6df 0%, #ffb36b 100%);
  color: #8a4a24;
}
.mini-game-board.royal-run.theme-strawberry {
  background: linear-gradient(180deg, #ffecf5 0%, #ffe6cc 62%, #ffd166 100%);
}
.mini-game-board.royal-run.theme-strawberry .royal-run-bg {
  background:
    radial-gradient(
      circle at 14% 24%,
      rgba(255, 77, 109, 0.42) 0 48px,
      transparent 50px
    ),
    radial-gradient(
      circle at 78% 18%,
      rgba(255, 216, 107, 0.5) 0 72px,
      transparent 75px
    ),
    linear-gradient(180deg, #ffd6e0, #fff1a6);
}
.mini-game-board.royal-run.theme-strawberry .royal-run-ground {
  background:
    repeating-linear-gradient(90deg, #ff4d6d 0 38px, #ff8fb8 38px 76px), #ff4d6d;
  border-top-color: #fff8ee;
}
.mini-game-board.royal-run.theme-strawberry .royal-run-platform {
  background: linear-gradient(180deg, #fff8ee, #ff8fb8);
  border-color: #ff4d6d;
}
.mini-game-board.royal-run.theme-strawberry .royal-run-gem {
  background: radial-gradient(
    circle at 35% 25%,
    #ffffff 0 12%,
    #ff4d6d 32%,
    #c02457 100%
  );
}
.mini-game-board.royal-run.theme-strawberry .royal-run-crown {
  background: linear-gradient(180deg, #ffffff, #ff4d6d);
  color: #fff8ee;
  text-shadow: 0 2px 0 rgba(107, 34, 71, 0.45);
}
.mini-game-board.royal-run.theme-mint {
  background: linear-gradient(180deg, #d8f5dc 0%, #f0fff4 52%, #c4f0a0 100%);
}
.mini-game-board.royal-run.theme-mint .royal-run-bg {
  background:
    radial-gradient(
      circle at 130px 72px,
      rgba(255, 255, 255, 0.86) 0 32px,
      transparent 33px
    ),
    radial-gradient(
      circle at 520px 64px,
      rgba(123, 224, 200, 0.48) 0 42px,
      transparent 43px
    ),
    radial-gradient(
      circle at 880px 86px,
      rgba(196, 240, 160, 0.58) 0 48px,
      transparent 49px
    ),
    linear-gradient(180deg, #d8f5dc, #e9fff0);
}
.mini-game-board.royal-run.theme-mint .royal-run-bg::before,
.mini-game-board.royal-run.theme-mint .royal-run-bg::after {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.36), transparent 40%), #7be0c8;
  box-shadow:
    26px -32px 0 -22px #c4f0a0,
    60px -4px 0 -34px #88d8f5,
    104px -38px 0 -28px #6be07b;
}
.mini-game-board.royal-run.theme-mint .royal-run-ground {
  background:
    radial-gradient(circle at 22px 10px, #fff8ee 0 7px, transparent 8px) 0 0 /
      68px 28px,
    linear-gradient(180deg, #7be0c8 0%, #45c887 58%, #2f9d65 100%);
  border-top-color: #f0fff4;
}
.mini-game-board.royal-run.theme-mint .royal-run-platform {
  background: linear-gradient(180deg, #f0fff4 0%, #c4f0a0 50%, #6be07b 100%);
  border-color: rgba(47, 157, 101, 0.3);
}
.mini-game-board.royal-run.theme-mint .royal-run-gem {
  background: radial-gradient(
    circle at 35% 28%,
    #fff,
    #c4f0a0 45%,
    #6be07b 100%
  );
  color: #2f7c56;
}
.mini-game-board.royal-run.theme-mint .royal-run-crown {
  background: linear-gradient(180deg, #ffffff, #c4f0a0);
  color: #2f7c56;
  border-color: #7be0c8;
}
.mini-game-board.royal-run.theme-blueberry {
  background: linear-gradient(180deg, #cfe9ff 0%, #eaf6ff 50%, #88d8f5 100%);
}
.mini-game-board.royal-run.theme-blueberry .royal-run-bg {
  background:
    radial-gradient(
      circle at 122px 70px,
      rgba(255, 255, 255, 0.88) 0 32px,
      transparent 33px
    ),
    radial-gradient(
      circle at 520px 58px,
      rgba(136, 216, 245, 0.62) 0 40px,
      transparent 41px
    ),
    radial-gradient(
      circle at 870px 88px,
      rgba(123, 224, 200, 0.42) 0 46px,
      transparent 47px
    ),
    linear-gradient(180deg, #cfe9ff, #eefaff);
}
.mini-game-board.royal-run.theme-blueberry .royal-run-bg::before,
.mini-game-board.royal-run.theme-blueberry .royal-run-bg::after {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.42), transparent 40%), #88d8f5;
  box-shadow:
    30px -30px 0 -22px #4dc3ff,
    66px -8px 0 -34px #c89bff,
    108px -40px 0 -28px #7be0c8;
}
.mini-game-board.royal-run.theme-blueberry .royal-run-ground {
  background:
    radial-gradient(circle at 22px 10px, #eaf6ff 0 7px, transparent 8px) 0 0 /
      70px 28px,
    linear-gradient(180deg, #88d8f5 0%, #4dc3ff 58%, #2d8ed0 100%);
  border-top-color: #ffffff;
}
.mini-game-board.royal-run.theme-blueberry .royal-run-platform {
  background: linear-gradient(180deg, #ffffff 0%, #c8e6ff 52%, #88d8f5 100%);
  border-color: rgba(45, 142, 208, 0.28);
}
.mini-game-board.royal-run.theme-blueberry .royal-run-gem {
  background: radial-gradient(
    circle at 35% 28%,
    #fff,
    #88d8f5 45%,
    #4dc3ff 100%
  );
  color: #ffffff;
}
.mini-game-board.royal-run.theme-blueberry .royal-run-crown {
  background: linear-gradient(180deg, #ffffff, #88d8f5);
  color: #2d6fab;
  border-color: #4dc3ff;
}
.mini-game-board.royal-run.theme-grape {
  background: linear-gradient(180deg, #e8d4ff 0%, #f5ebff 45%, #c89bff 100%);
}
.mini-game-board.royal-run.theme-grape .royal-run-bg {
  background:
    radial-gradient(
      circle at 118px 64px,
      rgba(255, 255, 255, 0.86) 0 30px,
      transparent 31px
    ),
    radial-gradient(
      circle at 540px 62px,
      rgba(201, 123, 255, 0.54) 0 42px,
      transparent 43px
    ),
    radial-gradient(
      circle at 900px 88px,
      rgba(255, 216, 107, 0.4) 0 38px,
      transparent 39px
    ),
    linear-gradient(180deg, #e8d4ff, #f5ebff);
}
.mini-game-board.royal-run.theme-grape .royal-run-bg::before,
.mini-game-board.royal-run.theme-grape .royal-run-bg::after {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.38), transparent 40%), #c97bff;
  box-shadow:
    28px -34px 0 -22px #e0b8ff,
    64px -7px 0 -34px #ffd86b,
    106px -42px 0 -30px #a78cff;
}
.mini-game-board.royal-run.theme-grape .royal-run-ground {
  background:
    repeating-linear-gradient(90deg, #c97bff 0 36px, #e0b8ff 36px 72px), #c97bff;
  border-top-color: #ffffff;
}
.mini-game-board.royal-run.theme-grape .royal-run-platform {
  background: linear-gradient(180deg, #ffffff 0%, #e0b8ff 52%, #c97bff 100%);
  border-color: rgba(138, 92, 255, 0.28);
}
.mini-game-board.royal-run.theme-grape .royal-run-gem {
  background: radial-gradient(
    circle at 35% 28%,
    #fff,
    #e0b8ff 45%,
    #8a5cff 100%
  );
  color: #ffffff;
}
.mini-game-board.royal-run.theme-grape .royal-run-crown {
  background: linear-gradient(180deg, #ffffff, #e0b8ff);
  color: #7a3cd8;
  border-color: #c97bff;
}
.mini-game-board.royal-run.theme-bubblegum {
  background: linear-gradient(180deg, #ffd6ec 0%, #fff0f8 46%, #ffb3d6 100%);
}
.mini-game-board.royal-run.theme-bubblegum .royal-run-bg {
  background:
    radial-gradient(
      circle at 100px 70px,
      rgba(255, 255, 255, 0.76) 0 28px,
      transparent 29px
    ),
    radial-gradient(
      circle at 460px 56px,
      rgba(255, 255, 255, 0.58) 0 42px,
      transparent 43px
    ),
    radial-gradient(
      circle at 790px 96px,
      rgba(255, 255, 255, 0.68) 0 34px,
      transparent 35px
    ),
    radial-gradient(
      circle at 980px 46px,
      rgba(255, 216, 235, 0.86) 0 28px,
      transparent 29px
    );
}
.mini-game-board.royal-run.theme-bubblegum .royal-run-bg::before,
.mini-game-board.royal-run.theme-bubblegum .royal-run-bg::after {
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.42), transparent 40%), #ff8ac0;
  border-radius: 999px;
  box-shadow:
    35px -28px 0 -24px #fff,
    70px -4px 0 -34px #ffb3d6,
    104px -36px 0 -30px #c89bff;
}
.mini-game-board.royal-run.theme-bubblegum .royal-run-ground {
  background:
    radial-gradient(
        circle at 22px 10px,
        rgba(255, 255, 255, 0.75) 0 9px,
        transparent 10px
      )
      0 0 / 72px 28px,
    linear-gradient(180deg, #ff9ec7 0%, #ff6fa8 58%, #c0367a 100%);
  border-top-color: #fff;
}
.mini-game-board.royal-run.theme-bubblegum .royal-run-platform {
  background: linear-gradient(180deg, #fff 0%, #ffb3d6 54%, #ff6fa8 100%);
  border-color: rgba(176, 53, 121, 0.25);
}
.mini-game-board.royal-run.theme-bubblegum .royal-run-gem {
  background: radial-gradient(
    circle at 35% 28%,
    #fff,
    #ffc4dc 52%,
    #c89bff 100%
  );
  color: #fff;
  border-radius: 50%;
}
.mini-game-board.royal-run.theme-bubblegum .royal-run-crown {
  background: linear-gradient(180deg, #fff 0%, #ffc4dc 100%);
  color: #b03579;
  border-color: #ff8ac0;
}
.mini-game-board.royal-run.theme-rainbow {
  background: linear-gradient(180deg, #e8d4ff 0%, #d9f7ff 48%, #fff1a6 100%);
}
.mini-game-board.royal-run.theme-rainbow .royal-run-bg {
  background:
    radial-gradient(
      circle at 110px 70px,
      rgba(255, 255, 255, 0.9) 0 30px,
      transparent 31px
    ),
    radial-gradient(
      circle at 510px 48px,
      rgba(255, 111, 168, 0.42) 0 36px,
      transparent 37px
    ),
    radial-gradient(
      circle at 760px 82px,
      rgba(123, 224, 200, 0.46) 0 42px,
      transparent 43px
    ),
    linear-gradient(
      115deg,
      transparent 0 36%,
      rgba(255, 216, 107, 0.42) 36% 42%,
      rgba(255, 111, 168, 0.36) 42% 48%,
      rgba(136, 216, 245, 0.36) 48% 54%,
      transparent 54%
    ),
    linear-gradient(180deg, #e8d4ff, #d9f7ff);
}
.mini-game-board.royal-run.theme-rainbow .royal-run-bg::before,
.mini-game-board.royal-run.theme-rainbow .royal-run-bg::after {
  background:
    radial-gradient(
      circle at 50% 30%,
      rgba(255, 255, 255, 0.65),
      transparent 34%
    ),
    linear-gradient(180deg, #c4a8ff, #88d8f5);
  box-shadow:
    30px -32px 0 -22px #ff6fa8,
    64px -8px 0 -34px #ffd86b,
    102px -38px 0 -30px #7be0c8;
}
.mini-game-board.royal-run.theme-rainbow .royal-run-ground {
  background:
    repeating-linear-gradient(
      90deg,
      #8a5cff 0 34px,
      #ff6fa8 34px 68px,
      #88d8f5 68px 102px,
      #ffd86b 102px 136px
    ),
    #8a5cff;
  border-top-color: #ffffff;
}
.mini-game-board.royal-run.theme-rainbow .royal-run-platform {
  background: linear-gradient(
    90deg,
    #ff6fa8,
    #ffd86b,
    #7be0c8,
    #88d8f5,
    #c4a8ff
  );
  border-color: rgba(138, 92, 255, 0.34);
}
.mini-game-board.royal-run.theme-rainbow .royal-run-gem {
  background: radial-gradient(circle at 35% 28%, #fff, var(--rainbow-color, #ffd86b) 58%, #8a5cff 100%);
  color: #ffffff;
}
.mini-game-board.royal-run.theme-rainbow .royal-run-gem.next-color {
  outline: 4px solid rgba(255, 255, 255, 0.95);
  box-shadow:
    0 0 0 6px rgba(255, 216, 107, 0.72),
    0 0 24px rgba(122, 78, 216, 0.32),
    0 8px 0 rgba(107, 34, 71, 0.14);
}
.mini-game-board.royal-run.theme-rainbow .royal-run-crown {
  background: linear-gradient(180deg, #ffffff, #c4a8ff);
  color: #8a2fd8;
  border-color: #ffd86b;
}
