/* nunito-cyrillic-ext-800-normal */
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-display: swap;
  font-weight: 800;
  src: url(/play/crowd-rush/assets/nunito-cyrillic-ext-800-normal-B-cvGohL.woff2) format('woff2'), url(/play/crowd-rush/assets/nunito-cyrillic-ext-800-normal-pjRatrRO.woff) format('woff');
  unicode-range: U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;
}

/* nunito-cyrillic-800-normal */
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-display: swap;
  font-weight: 800;
  src: url(/play/crowd-rush/assets/nunito-cyrillic-800-normal-D3igD7Kl.woff2) format('woff2'), url(/play/crowd-rush/assets/nunito-cyrillic-800-normal-DymMgApb.woff) format('woff');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}

/* nunito-vietnamese-800-normal */
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-display: swap;
  font-weight: 800;
  src: url(/play/crowd-rush/assets/nunito-vietnamese-800-normal-D_CZYdm9.woff2) format('woff2'), url(/play/crowd-rush/assets/nunito-vietnamese-800-normal-Dz0hZPb5.woff) format('woff');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}

/* nunito-latin-ext-800-normal */
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-display: swap;
  font-weight: 800;
  src: url(/play/crowd-rush/assets/nunito-latin-ext-800-normal-CtU8tJOV.woff2) format('woff2'), url(/play/crowd-rush/assets/nunito-latin-ext-800-normal-CDcxIxx8.woff) format('woff');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* nunito-latin-800-normal */
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-display: swap;
  font-weight: 800;
  src: url(/play/crowd-rush/assets/nunito-latin-800-normal-Dz8SOQK_.woff2) format('woff2'), url(/play/crowd-rush/assets/nunito-latin-800-normal-D-J0wlBY.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}/* nunito-cyrillic-ext-900-normal */
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-display: swap;
  font-weight: 900;
  src: url(/play/crowd-rush/assets/nunito-cyrillic-ext-900-normal-BLeVovcl.woff2) format('woff2'), url(/play/crowd-rush/assets/nunito-cyrillic-ext-900-normal-DKFql_-q.woff) format('woff');
  unicode-range: U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;
}

/* nunito-cyrillic-900-normal */
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-display: swap;
  font-weight: 900;
  src: url(/play/crowd-rush/assets/nunito-cyrillic-900-normal-CWPcV0_V.woff2) format('woff2'), url(/play/crowd-rush/assets/nunito-cyrillic-900-normal-Dr1fjxoU.woff) format('woff');
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}

/* nunito-vietnamese-900-normal */
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-display: swap;
  font-weight: 900;
  src: url(/play/crowd-rush/assets/nunito-vietnamese-900-normal-D6LWQAy_.woff2) format('woff2'), url(/play/crowd-rush/assets/nunito-vietnamese-900-normal-WV2-fBew.woff) format('woff');
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}

/* nunito-latin-ext-900-normal */
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-display: swap;
  font-weight: 900;
  src: url(/play/crowd-rush/assets/nunito-latin-ext-900-normal-Dllsvgjo.woff2) format('woff2'), url(/play/crowd-rush/assets/nunito-latin-ext-900-normal-CTBZd6bf.woff) format('woff');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* nunito-latin-900-normal */
@font-face {
  font-family: 'Nunito';
  font-style: normal;
  font-display: swap;
  font-weight: 900;
  src: url(/play/crowd-rush/assets/nunito-latin-900-normal-BVB1fGs6.woff2) format('woff2'), url(/play/crowd-rush/assets/nunito-latin-900-normal-CVn49sIn.woff) format('woff');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}:root {
  font-family: Nunito, sans-serif;
  color: #fff;
  font-weight: 900;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  --purple: #554c98;
  --blue: #4c99e9;
  --white: #fff;
  --ink: #37304f;
  --green: #45d33c;
}
* {
  box-sizing: border-box;
}
html,
body {
  margin: 0;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: #131313;
}
body {
  padding: 10px 9px;
}
button,
input,
select {
  font: inherit;
}
button {
  cursor: pointer;
  color: inherit;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}
button:disabled {
  cursor: default;
}
button:focus-visible,
a:focus-visible,
input:focus-visible,
select:focus-visible {
  outline: 4px solid #ffe438;
  outline-offset: 4px;
}
button:active:not(:disabled) {
  filter: brightness(0.93);
}
button:hover:not(:disabled) {
  filter: brightness(1.06);
}
::selection {
  background: #ffdf41;
  color: #3d345c;
}
#game {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  border-radius: 13px;
  background: #f3cf7b;
  isolation: isolate;
  touch-action: none;
  user-select: none;
}
#world,
#ui {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
#world {
  display: block;
  outline: none;
}
#ui {
  pointer-events: none;
}
#ui button,
#ui input,
#ui select,
#ui a {
  pointer-events: auto;
}
h1,
h2,
p {
  margin: 0;
}
button {
  border: 0;
}
svg {
  display: inline-block;
}
.icon {
  width: 26px;
  height: 26px;
  vertical-align: middle;
}
.coin {
  width: 32px;
  height: 34px;
  vertical-align: middle;
  flex-shrink: 0;
}
.hud {
  position: absolute;
  inset: 0;
  z-index: 4;
  pointer-events: none;
}
.square {
  width: 64px;
  height: 64px;
  border: 4px solid white;
  border-radius: 12px;
  background: #4c91dd;
  box-shadow: inset 0 -6px 0 #3b79bc;
}
.square .icon {
  width: 40px;
  height: 40px;
}
.settings-button {
  position: absolute;
  left: 20px;
  top: 22px;
  display: grid;
  place-items: center;
}
.wallet {
  position: absolute;
  right: 14px;
  top: 27px;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  min-width: 116px;
  height: 33px;
  padding: 0 48px 0 18px;
  border-radius: 13px;
  background: #554c98;
  font-size: 22px;
  letter-spacing: 1px;
}
.wallet .coin {
  position: absolute;
  right: -4px;
  width: 42px;
  height: 44px;
}
.level-header {
  position: absolute;
  top: 56px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  background: none;
  min-width: 240px;
  gap: 4px;
}
.level-header > b {
  font-size: 25px;
  text-shadow: 0 2px 1px #5f5767;
  letter-spacing: 1px;
}
.chapter {
  position: relative;
  display: flex;
  align-items: center;
  gap: 9px;
  height: 65px;
  padding: 8px 58px 8px 10px;
  border: 4px solid white;
  border-radius: 13px;
  background: #321c46;
}
.chapter > i {
  width: 22px;
  height: 42px;
  background: #fff;
  border-radius: 15px;
}
.chapter > i:nth-child(4) {
  background: #fff;
}
.boss-icon {
  position: absolute;
  right: -20px;
  bottom: -5px;
  width: 76px;
  height: 79px;
  background: #970920;
  border: 4px solid white;
  border-radius: 15px;
}
.boss-icon > .icon {
  position: absolute;
  top: -23px;
  left: 22px;
  width: 28px;
  height: 28px;
}
.boss-icon .figure {
  position: absolute;
  left: 13px;
  bottom: 3px;
  width: 43px;
  height: 66px;
  filter: drop-shadow(0 0 1px white);
}
.boss-icon strong {
  position: absolute;
  bottom: -17px;
  left: 0;
  font-size: 22px;
  color: #f15b31;
  -webkit-text-stroke: 4px white;
  paint-order: stroke fill;
  text-shadow: 0 2px 1px #4d1422;
}
.progress {
  position: absolute;
  left: 50%;
  top: 28px;
  transform: translateX(-50%);
  width: 310px;
  height: 34px;
  border: 5px solid var(--purple);
  background: var(--purple);
  border-radius: 9px;
}
.progress > div {
  height: 100%;
  width: 0;
  background: #3bb9f1;
  border-radius: 3px;
  min-width: 14px;
}
.finish-icon {
  position: absolute;
  right: -5px;
  top: -5px;
  width: 34px;
  height: 34px;
  background: #fff;
  border: 4px solid var(--purple);
  border-radius: 9px;
  color: var(--purple);
}
.finish-icon .icon {
  width: 24px;
  height: 24px;
}
.menu-shade {
  position: absolute;
  inset: 0;
  background: #17171d99;
  z-index: 2;
}
.upgrades {
  position: absolute;
  top: 42%;
  left: 50%;
  transform: translateX(-50%);
  z-index: 5;
  display: flex;
  gap: 40px;
}
.upgrade-wrap {
  width: 136px;
}
.upgrade-wrap h2 {
  text-align: center;
  font-size: 22px;
  margin: 0 0 18px;
  letter-spacing: 0.5px;
}
.upgrade {
  position: relative;
  display: block;
  width: 136px;
  height: 163px;
  border: 5px solid white;
  border-radius: 28px 28px 7px 7px;
  background: #ffb926;
  overflow: visible;
  box-shadow: inset 0 -6px 0 #dc8f17;
}
.upgrade-level {
  position: absolute;
  left: 9px;
  top: 29px;
  text-align: left;
  font-size: 16px;
  line-height: 1.15;
}
.upgrade-level b {
  display: block;
  margin-top: 5px;
  padding: 1px 7px;
  width: fit-content;
  font-size: 25px;
  background: #b88412;
  border-radius: 5px;
}
.figure {
  display: block;
  width: 70px;
  height: 115px;
  color: var(--person);
  filter: drop-shadow(1px 1px 0 white) drop-shadow(-1px -1px 0 white);
}
.figure > .icon {
  width: 100%;
  height: 100%;
  stroke: #a9e5fd;
  stroke-width: 0.5;
}
.upgrade > .figure {
  position: absolute;
  right: 0;
  top: -20px;
  width: 78px;
  height: 135px;
}
.price {
  position: absolute;
  bottom: -1px;
  left: -1px;
  right: -1px;
  height: 40px;
  border-top: 4px solid white;
  background: #3ad132;
  border-radius: 0 0 3px 3px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 10px;
  font-size: 24px;
}
.price .coin {
  width: 29px;
  height: 31px;
}
.magnet-art {
  position: absolute;
  right: -8px;
  top: 14px;
  transform: rotate(32deg);
  filter: drop-shadow(3px 3px 0 white) drop-shadow(-2px -2px 0 white);
}
.magnet-art .icon {
  width: 83px;
  height: 83px;
  stroke-width: 1;
  stroke: #fff;
}
.unaffordable {
  background: #cacaca;
  box-shadow: none;
}
.unaffordable .price {
  background: #a5a5a5;
}
.unaffordable .upgrade-level b {
  background: #999;
}
.side-actions {
  position: absolute;
  z-index: 5;
  right: -6px;
  top: 25%;
  display: flex;
  flex-direction: column;
  gap: 32px;
}
.side-button {
  position: relative;
  width: 111px;
  height: 96px;
  border: 4px solid white;
  border-radius: 18px 0 0 18px;
  background: #00e000;
  box-shadow: inset 0 -9px 0 #00bf00;
  display: flex;
  align-items: center;
  justify-content: center;
}
.side-button > .icon {
  width: 64px;
  height: 64px;
  stroke: #dcfaff;
  stroke-width: 0.6;
  color: #39bbf7;
  margin-top: -10px;
}
.side-button small {
  position: absolute;
  bottom: 5px;
  left: 0;
  right: 0;
  font-size: 11px;
  letter-spacing: 1px;
}
.skins-button {
  background: #af20db;
  box-shadow: inset 0 -8px 0 #8613b4;
}
.skins-button > .icon {
  width: 44px;
  margin-left: -25px;
}
.skin-swap {
  color: #76ee3c;
  position: absolute;
  right: 11px;
  top: 18px;
  transform: scale(0.85);
}
.skin-swap .icon {
  width: 39px;
  height: 45px;
  stroke: #fff;
  stroke-width: 0.7;
}
.account-button {
  height: 61px;
  background: #398fe0;
  box-shadow: inset 0 -6px 0 #2874bd;
}
.account-button > .icon {
  width: 32px;
  height: 32px;
  color: white;
}
.start-prompt {
  position: absolute;
  z-index: 5;
  bottom: 7%;
  left: 50%;
  transform: translateX(-50%);
  width: max-content;
  max-width: 85%;
  background: none;
  font-size: 18px;
  letter-spacing: 0.6px;
  text-align: center;
  padding: 10px;
}
.start-prompt small {
  display: block;
  margin-top: 15px;
  color: #fff;
  font-size: 11px;
  letter-spacing: 1px;
  opacity: 0.85;
}
kbd {
  display: inline-block;
  background: white;
  color: #555;
  min-width: 110px;
  padding: 2px 16px;
  border-radius: 8px;
  margin: 0 9px;
  font: 1000 19px Nunito;
}
.mobile-start {
  display: none;
}
.floating-count {
  position: absolute;
  top: 0;
  left: 0;
  padding: 3px 12px 5px;
  background: #2f65ac;
  border-radius: 7px;
  z-index: 1;
  font-size: 17px;
  line-height: 1.1;
  will-change: transform;
  min-width: 38px;
  text-align: center;
}
.floating-count:after {
  content: "";
  position: absolute;
  left: calc(50% - 5px);
  bottom: -4px;
  width: 10px;
  height: 10px;
  background: inherit;
  transform: rotate(45deg);
  z-index: -1;
}
.red {
  background: #ce1e29;
}
.health {
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  width: 110px;
  height: 20px;
  border: 3px solid white;
  background: #d7d3db;
  border-radius: 5px;
  overflow: hidden;
}
.health i {
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  background: #64e600;
  width: 100%;
  transform-origin: left center;
  transition: transform 160ms ease-out;
}
.health b {
  position: relative;
  display: block;
  text-align: center;
  font-size: 13px;
  line-height: 15px;
}
.boss-health i {
  background: #f32909;
}
[hidden] {
  display: none !important;
}
.tap-prompt {
  position: absolute;
  z-index: 1;
  left: 50%;
  bottom: 10%;
  transform: translateX(-50%);
  background: none;
  color: #111;
  font-size: 36px;
  letter-spacing: 1px;
  padding: 25px;
  width: 90%;
}
.tap-prompt span {
  display: block;
  font-size: 11px;
  letter-spacing: 1px;
  margin-top: 10px;
}
.stair-multiplier {
  position: absolute;
  left: 50%;
  top: 20%;
  transform: translateX(-50%);
  font-size: 60px;
  -webkit-text-stroke: 6px #4b3e87;
  paint-order: stroke fill;
}
.result {
  position: absolute;
  z-index: 5;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.result-banner {
  position: absolute;
  top: 3%;
  left: 50%;
  transform: translateX(-50%);
  width: 580px;
  max-width: 90%;
  background: #34c91ac7;
  border-radius: 32px;
  text-align: center;
  padding: 15px 18px 20px;
}
.result-banner h1 {
  font-size: 45px;
  line-height: 1.2;
  letter-spacing: 1px;
  -webkit-text-stroke: 5px #275d20;
  paint-order: stroke fill;
  margin-bottom: 16px;
}
.result-banner > div {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #15911399;
  border-radius: 14px;
  width: 65%;
  margin: auto;
  font-size: 25px;
  padding: 4px 10px;
  gap: 6px;
}
.result-banner small {
  display: block;
  width: fit-content;
  border-radius: 10px;
  padding: 3px 12px;
  background: #15911388;
  margin: 10px auto 0;
  font-size: 15px;
}
.bonus-zone {
  position: absolute;
  top: 43%;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  flex-direction: column;
  gap: 14px;
}
.bonus-meter {
  position: relative;
  border: 5px solid white;
  border-radius: 18px;
  display: flex;
  width: 412px;
  height: 72px;
  margin-bottom: 23px;
}
.bonus-meter span {
  width: 20%;
  background: #fc6400;
  color: #a23500;
  font-size: 33px;
  display: grid;
  place-items: center;
}
.bonus-meter span:first-child {
  border-radius: 12px 0 0 12px;
}
.bonus-meter span:last-of-type {
  border-radius: 0 12px 12px 0;
}
.bonus-meter span:nth-child(2),
.bonus-meter span:nth-child(4) {
  background: #fffe08;
  color: #7f8500;
}
.bonus-meter span:nth-child(3) {
  background: #3ed72a;
  color: #137220;
}
.bonus-meter i {
  position: absolute;
  bottom: -17px;
  width: 27px;
  height: 27px;
  border-radius: 4px;
  background: white;
  transform: translateX(-50%) rotate(45deg);
}
.bonus-button {
  width: 290px;
  min-height: 90px;
  padding: 10px 12px;
  border: 5px solid white;
  border-radius: 20px;
  background: #559ae8;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 36px;
  -webkit-text-stroke: 3px #365784;
  paint-order: stroke fill;
}
.bonus-button .icon {
  width: 49px;
  height: 40px;
  background: #284d79;
  border: 5px solid white;
  border-radius: 7px;
  padding: 2px;
}
.bonus-button .coin {
  width: 43px;
  height: 46px;
}
.bonus-button:disabled {
  font-size: 19px;
  background: #587d72;
}
.bonus-note {
  font-size: 10px;
  letter-spacing: 1px;
  margin-top: -7px;
}
.continue-button {
  display: block;
  background: #66638e;
  border: 5px solid white;
  border-radius: 19px;
  padding: 14px 20px;
  font-size: 34px;
  min-width: 290px;
  min-height: 90px;
  -webkit-text-stroke: 4px #35354f;
  paint-order: stroke fill;
  letter-spacing: 0.5px;
}
.loss-panel {
  position: absolute;
  z-index: 5;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
  width: 470px;
  max-width: 90%;
}
.loss-panel h1 {
  font-size: 49px;
  color: #fff;
  -webkit-text-stroke: 6px #a21335;
  paint-order: stroke fill;
  margin-bottom: 18px;
}
.loss-panel p {
  font-size: 18px;
  margin-bottom: 18px;
}
.loss-panel > b {
  display: block;
  font-size: 21px;
  color: #ffe642;
  margin-bottom: 30px;
}
.loss-panel .continue-button {
  margin: 0 auto 15px;
  background: #4a9ae6;
}
.text-button {
  background: none;
  padding: 12px;
  letter-spacing: 1px;
}
.dialog-shade {
  position: absolute;
  inset: 0;
  z-index: 10;
  background: #171220a8;
  display: grid;
  place-items: center;
  pointer-events: auto;
  padding: 20px;
}
.dialog {
  width: 470px;
  max-width: 100%;
  max-height: 92%;
  overflow-y: auto;
  overscroll-behavior: contain;
  background: #70638f;
  border: 5px solid white;
  border-radius: 24px;
  padding: 23px;
  color: white;
  box-shadow: 0 12px 40px #15102344;
  user-select: text;
  touch-action: pan-y;
  scrollbar-color: #aa9fc4 #514565;
  scrollbar-width: thin;
}
.dialog header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
  gap: 15px;
}
.dialog h1 {
  font-size: 27px;
  letter-spacing: 0.5px;
  line-height: 1.1;
}
.close-button {
  display: grid;
  place-items: center;
  background: #ad3862;
  border: 3px solid white;
  border-radius: 10px;
  width: 40px;
  height: 40px;
  flex-shrink: 0;
}
.setting-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 13px 0;
  border-bottom: 1px solid #8c7da6;
  font-size: 17px;
}
.setting-row input {
  appearance: none;
  width: 52px;
  height: 29px;
  border-radius: 16px;
  background: #4c405d;
  position: relative;
  cursor: pointer;
  flex-shrink: 0;
}
.setting-row input:after {
  content: "";
  position: absolute;
  width: 21px;
  height: 21px;
  background: white;
  border-radius: 50%;
  top: 4px;
  left: 4px;
  transition: left 0.12s;
}
.setting-row input:checked {
  background: #3bcb42;
}
.setting-row input:checked:after {
  left: 27px;
}
.setting-row select {
  background: #4d415f;
  color: white;
  border: 2px solid #b7a8ca;
  border-radius: 8px;
  padding: 5px;
}
.controls-help {
  margin-top: 22px;
  padding: 14px 0;
}
.controls-help b {
  font-size: 13px;
  letter-spacing: 1px;
  color: #ffe36a;
}
.controls-help p {
  margin-top: 8px;
  line-height: 1.55;
  font-size: 14px;
  font-weight: 800;
}
.dialog-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 9px;
  margin-top: 10px;
}
.dialog-links button {
  border-radius: 8px;
  background: #514365;
  padding: 10px;
  font-size: 12px;
}
.local-status {
  display: block;
  text-align: center;
  font-size: 10px;
  margin-top: 22px;
  color: #e4d9ed;
}
.compact {
  min-height: 58px;
  min-width: 0;
  width: 100%;
  font-size: 25px;
  margin-bottom: 10px;
}
.dialog-intro {
  text-align: center;
  font-size: 12px;
  color: #fff3b4;
  letter-spacing: 0.5px;
  margin-bottom: 22px;
}
.level-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 10px;
}
.level-tile {
  height: 62px;
  background: #4f9ee7;
  border: 3px solid #d4eafa;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  font-size: 26px;
}
.level-tile > .icon {
  width: 20px;
  height: 20px;
  position: absolute;
  right: -7px;
  top: -9px;
}
.level-tile.selected {
  background: #f3b12e;
  border-color: #fff8d7;
}
.level-tile.complete {
  background: #43b762;
}
.level-tile:disabled {
  background: #5b4e70;
  border-color: #89799f;
  color: #bdb0cb;
}
.skin-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
.skin-tile {
  min-height: 174px;
  background: #5b4d74;
  border: 3px solid #9586ac;
  border-radius: 16px;
  padding: 10px 3px;
  display: flex;
  align-items: center;
  flex-direction: column;
  gap: 6px;
}
.skin-tile.selected {
  border-color: #ffdb30;
  background: #87733d;
}
.skin-tile .figure {
  width: 46px;
  height: 83px;
}
.skin-tile > b {
  font-size: 12px;
}
.skin-tile > span:last-child {
  display: flex;
  align-items: center;
  gap: 3px;
  font-size: 13px;
}
.skin-tile .coin {
  width: 20px;
  height: 22px;
}
#toast {
  position: absolute;
  z-index: 30;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  background: #37284e;
  color: #fff;
  border: 2px solid #fff3bb;
  border-radius: 12px;
  padding: 13px 20px;
  max-width: 90%;
  width: max-content;
  text-align: center;
  pointer-events: none;
  font-size: 14px;
}
.fatal {
  display: grid;
  place-content: center;
  min-height: 100%;
  padding: 30px;
  text-align: center;
  color: #4b365c;
  background: #f3d894;
  pointer-events: auto;
  gap: 20px;
}
.fatal button {
  padding: 15px;
  background: #645086;
  border-radius: 10px;
}
.platform-dialog {
  width: 550px;
}
.platform-form {
  display: grid;
  gap: 12px;
}
.platform-form label {
  display: grid;
  gap: 5px;
  font-size: 13px;
}
.platform-form input {
  width: 100%;
  border: 2px solid #b2a4c4;
  border-radius: 9px;
  background: #f9f5ff;
  color: #322140;
  padding: 11px;
  user-select: text;
  caret-color: #7160a9;
  font-weight: 800;
}
.platform-form button,
.platform-action {
  padding: 12px;
  background: #4e9ae4;
  border: 3px solid white;
  border-radius: 11px;
  font-size: 16px;
}
.platform-tabs {
  display: flex;
  gap: 5px;
  margin-bottom: 20px;
  flex-wrap: wrap;
}
.platform-tabs button {
  background: #514365;
  padding: 9px 11px;
  border-radius: 8px;
  font-size: 12px;
}
.platform-tabs button.active {
  background: #e9bb42;
  color: #473817;
}
.platform-copy {
  font-size: 14px;
  line-height: 1.55;
  margin: 12px 0;
  color: #fbf6ff;
}
.platform-error {
  background: #9f244b;
  padding: 10px;
  border-radius: 8px;
  font-size: 13px;
  margin: 10px 0;
}
.platform-success {
  background: #287b55;
  padding: 10px;
  border-radius: 8px;
  font-size: 13px;
  margin: 10px 0;
}
.platform-buttons {
  display: grid;
  gap: 9px;
  margin: 15px 0;
}
.platform-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 0;
  border-bottom: 1px solid #8c7ca5;
  font-size: 14px;
}
.platform-row small {
  font-size: 11px;
}
.platform-status {
  font-size: 12px;
  color: #fff4b7;
}
.danger-action {
  background: #a13a57;
}
.platform-links {
  display: flex;
  gap: 20px;
  flex-wrap: wrap;
  font-size: 12px;
  margin-top: 20px;
}
.platform-links a {
  color: #ffed9a;
  text-underline-offset: 4px;
}
.platform-form .text-button {
  background: none;
  border: 0;
  font-size: 12px;
}
.platform-form .check-label {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 8px;
  font-size: 11px;
  line-height: 1.5;
}
.check-label input {
  width: 18px;
  height: 18px;
  flex-shrink: 0;
}
.empty-state {
  padding: 25px 5px;
  text-align: center;
  font-size: 14px;
  line-height: 1.6;
}
.platform-scroll {
  max-height: 260px;
  overflow: auto;
}
.platform-warning {
  font-size: 11px;
  line-height: 1.6;
  color: #fff0bf;
}
@media (max-width: 700px) {
  body {
    padding: 0;
  }
  #game {
    border-radius: 0;
  }
  .settings-button {
    top: max(16px, env(safe-area-inset-top));
    left: 14px;
    width: 47px;
    height: 47px;
    border-width: 3px;
    border-radius: 10px;
  }
  .square .icon {
    width: 29px;
    height: 29px;
  }
  .wallet {
    right: 13px;
    top: max(23px, env(safe-area-inset-top));
    min-width: 91px;
    height: 28px;
    padding-right: 35px;
    font-size: 18px;
  }
  .wallet .coin {
    width: 34px;
    height: 36px;
  }
  .level-header {
    top: 65px;
    min-width: 200px;
  }
  .level-header > b {
    font-size: 22px;
  }
  .chapter {
    height: 53px;
    gap: 6px;
    padding: 7px 44px 7px 8px;
    border-width: 3px;
  }
  .chapter > i {
    height: 33px;
    width: 16px;
  }
  .boss-icon {
    width: 60px;
    height: 67px;
    border-width: 3px;
  }
  .boss-icon .figure {
    width: 34px;
    height: 54px;
    left: 10px;
  }
  .boss-icon > .icon {
    left: 15px;
  }
  .boss-icon strong {
    font-size: 18px;
    bottom: -14px;
  }
  .upgrades {
    top: 43%;
    gap: 22px;
  }
  .upgrade-wrap {
    width: 108px;
  }
  .upgrade-wrap h2 {
    font-size: 18px;
    margin-bottom: 15px;
  }
  .upgrade {
    width: 108px;
    height: 137px;
    border-width: 4px;
    border-radius: 23px 23px 6px 6px;
  }
  .upgrade-level {
    left: 6px;
    top: 23px;
    font-size: 12px;
  }
  .upgrade-level b {
    font-size: 21px;
    padding: 3px 6px;
  }
  .upgrade > .figure {
    width: 63px;
    height: 113px;
    top: -19px;
    right: -3px;
  }
  .price {
    height: 33px;
    font-size: 21px;
    gap: 7px;
    border-top-width: 3px;
  }
  .price .coin {
    width: 24px;
    height: 26px;
  }
  .magnet-art {
    top: 17px;
    right: -3px;
  }
  .magnet-art .icon {
    width: 64px;
    height: 64px;
  }
  .side-actions {
    top: 24%;
    gap: 23px;
    right: -5px;
  }
  .side-button {
    width: 68px;
    height: 70px;
    border-width: 3px;
    border-radius: 13px 0 0 13px;
  }
  .side-button > .icon {
    width: 46px;
    height: 46px;
    margin-top: -8px;
  }
  .side-button small {
    font-size: 8px;
    bottom: 4px;
  }
  .skins-button > .icon {
    width: 33px;
    margin-left: -19px;
  }
  .skin-swap {
    right: 1px;
    top: 9px;
  }
  .skin-swap .icon {
    width: 29px;
    height: 40px;
  }
  .account-button {
    height: 57px;
  }
  .account-button > .icon {
    width: 27px;
    height: 27px;
  }
  .start-prompt {
    bottom: max(6%, env(safe-area-inset-bottom));
    font-size: 22px;
    width: 90%;
    max-width: 95%;
  }
  .desktop-start {
    display: none;
  }
  .mobile-start {
    display: block;
  }
  .start-prompt small {
    font-size: 9px;
    margin-top: 13px;
    letter-spacing: 0.5px;
  }
  .progress {
    top: 24px;
    width: 180px;
    height: 27px;
    border-width: 4px;
    left: 48%;
  }
  .finish-icon {
    width: 27px;
    height: 27px;
    top: -4px;
    right: -4px;
    border-width: 3px;
  }
  .finish-icon .icon {
    width: 20px;
    height: 20px;
  }
  .floating-count {
    font-size: 15px;
    padding: 3px 9px;
    min-width: 30px;
  }
  .tap-prompt {
    font-size: 32px;
    bottom: 12%;
  }
  .tap-prompt span {
    font-size: 9px;
  }
  .result-banner {
    top: 9%;
    padding: 18px 10px;
    border-radius: 23px;
    max-width: 92%;
  }
  .result-banner h1 {
    font-size: 28px;
    -webkit-text-stroke-width: 4px;
    margin-bottom: 15px;
  }
  .result-banner > div {
    width: 80%;
    font-size: 21px;
  }
  .result-banner small {
    font-size: 12px;
  }
  .bonus-zone {
    top: 45%;
    gap: 12px;
  }
  .bonus-meter {
    width: 310px;
    height: 60px;
    border-width: 4px;
    margin-bottom: 22px;
  }
  .bonus-meter span {
    font-size: 28px;
  }
  .bonus-button {
    min-height: 76px;
    width: 246px;
    font-size: 29px;
    border-width: 4px;
  }
  .bonus-button .icon {
    width: 40px;
    height: 34px;
  }
  .bonus-button .coin {
    width: 36px;
    height: 39px;
  }
  .continue-button {
    min-height: 75px;
    min-width: 246px;
    font-size: 29px;
    border-width: 4px;
    padding: 12px;
  }
  .bonus-note {
    font-size: 8px;
  }
  .loss-panel h1 {
    font-size: 38px;
  }
  .loss-panel p {
    font-size: 15px;
  }
  .dialog-shade {
    padding: 14px;
  }
  .dialog {
    padding: 18px;
    border-width: 4px;
    border-radius: 20px;
    max-height: 90%;
  }
  .dialog h1 {
    font-size: 23px;
  }
  .level-grid {
    gap: 8px;
  }
  .level-tile {
    height: 54px;
    font-size: 23px;
  }
  .skin-grid {
    gap: 8px;
  }
  .skin-tile {
    min-height: 150px;
  }
  .skin-tile .figure {
    height: 72px;
    width: 40px;
  }
  .skin-tile > b {
    font-size: 10px;
  }
  .skin-tile > span:last-child {
    font-size: 10px;
  }
  .health {
    width: 75px;
    height: 16px;
    border-width: 2px;
  }
  .health b {
    font-size: 10px;
    line-height: 12px;
  }
  .compact {
    min-width: 0;
    min-height: 55px;
    font-size: 24px;
  }
  .platform-tabs button {
    font-size: 11px;
    padding: 9px;
  }
  .platform-dialog {
    max-height: 92%;
  }
}
@media (max-height: 500px) and (min-width: 600px) {
  body {
    padding: 0;
  }
  .settings-button {
    top: 12px;
    left: 14px;
    width: 44px;
    height: 44px;
  }
  .square .icon {
    width: 29px;
    height: 29px;
  }
  .wallet {
    top: 18px;
    right: 18px;
    height: 27px;
    font-size: 18px;
  }
  .wallet .coin {
    width: 35px;
    height: 37px;
  }
  .level-header {
    top: 17px;
    transform: translateX(-50%) scale(0.72);
    transform-origin: top center;
  }
  .upgrades {
    top: 36%;
    transform: translateX(-50%) scale(0.75);
    transform-origin: top center;
  }
  .side-actions {
    top: 17%;
    gap: 12px;
    transform: scale(0.7);
    transform-origin: right top;
  }
  .start-prompt {
    bottom: 4%;
    font-size: 14px;
    padding: 5px;
  }
  .start-prompt small {
    font-size: 8px;
    margin-top: 5px;
  }
  .progress {
    top: 18px;
    height: 27px;
    width: 240px;
    border-width: 4px;
  }
  .finish-icon {
    height: 27px;
    width: 27px;
    top: -4px;
    right: -4px;
    border-width: 3px;
  }
  .finish-icon .icon {
    width: 20px;
    height: 20px;
  }
  .result-banner {
    top: 4%;
    padding: 10px;
    max-width: 450px;
  }
  .result-banner h1 {
    font-size: 29px;
    margin-bottom: 5px;
  }
  .result-banner > div {
    font-size: 18px;
  }
  .result-banner small {
    font-size: 11px;
    margin-top: 5px;
  }
  .bonus-zone {
    top: 41%;
    gap: 7px;
  }
  .bonus-meter {
    height: 45px;
    width: 270px;
    border-width: 3px;
    margin-bottom: 12px;
  }
  .bonus-meter span {
    font-size: 22px;
  }
  .bonus-meter i {
    width: 20px;
    height: 20px;
    bottom: -12px;
  }
  .bonus-button {
    min-height: 54px;
    width: 230px;
    font-size: 26px;
    border-width: 3px;
    padding: 4px 10px;
    border-radius: 13px;
  }
  .bonus-button .icon {
    width: 34px;
    height: 28px;
    border-width: 3px;
  }
  .bonus-button .coin {
    width: 30px;
    height: 33px;
  }
  .bonus-note {
    font-size: 8px;
  }
  .continue-button {
    min-height: 53px;
    min-width: 230px;
    padding: 7px;
    font-size: 25px;
    border-width: 3px;
    border-radius: 13px;
  }
  .tap-prompt {
    bottom: 4%;
    font-size: 29px;
    padding: 12px;
  }
  .tap-prompt span {
    font-size: 8px;
  }
  .loss-panel h1 {
    font-size: 33px;
    margin-bottom: 10px;
  }
  .loss-panel p {
    font-size: 14px;
    margin-bottom: 10px;
  }
  .loss-panel > b {
    margin-bottom: 15px;
  }
  .dialog {
    max-height: 94%;
    padding: 17px;
  }
  .dialog h1 {
    font-size: 23px;
  }
}
@media (prefers-reduced-motion: reduce) {
  * {
    transition: none !important;
    animation: none !important;
  }
}
#game-effects {
  position: absolute;
  inset: 0;
  z-index: 6;
  pointer-events: none;
  overflow: hidden;
}
.exit-snapshot {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.exit-snapshot * {
  pointer-events: none !important;
  animation: none !important;
}
.number-pop,
.flying-coin {
  position: absolute;
  left: 0;
  top: 0;
  pointer-events: none;
}
.number-pop {
  font-size: 30px;
  line-height: 1;
  -webkit-text-stroke: 4px #37446a;
  paint-order: stroke fill;
  text-shadow: 0 3px 0 #0002;
}
.number-pop.positive {
  color: #a8ff6a;
}
.number-pop.negative {
  color: #ff7c70;
}
.flying-coin .coin {
  width: 25px;
  height: 27px;
}
.merge-caption {
  position: absolute;
  bottom: 9%;
  left: 50%;
  translate: -50% 0;
  white-space: nowrap;
  font-size: clamp(20px, 4vw, 34px);
  color: #fff;
  -webkit-text-stroke: 4px #554c98;
  paint-order: stroke fill;
  animation: merge-callout 600ms ease-out both;
}
.tap-hand {
  display: inline-block;
  font-style: normal;
  font-size: 42px;
  line-height: 1;
  rotate: -35deg;
  position: absolute;
  left: calc(50% + 110px);
  top: 20px;
  animation: tap-beat 750ms ease-in-out infinite;
}
button {
  transition:
    scale 110ms ease-out,
    filter 110ms ease-out;
}
button:active:not(:disabled) {
  scale: 0.96;
}
.dialog-shade {
  animation: shade-in 180ms ease-out;
}
.dialog {
  animation: dialog-arrive 250ms cubic-bezier(0.16, 1, 0.3, 1);
}
#ui[data-enter="true"] .upgrades {
  animation: menu-arrive 350ms cubic-bezier(0.16, 1, 0.3, 1);
}
#ui[data-enter="true"] .side-actions {
  animation: actions-arrive 300ms cubic-bezier(0.16, 1, 0.3, 1);
}
#ui[data-enter="true"] .start-prompt {
  animation: shade-in 400ms ease-out;
}
#ui[data-enter="true"] .result-banner {
  animation: reward-unfold 430ms cubic-bezier(0.16, 1, 0.3, 1);
}
#ui[data-enter="true"] .bonus-zone {
  animation: menu-arrive 400ms cubic-bezier(0.16, 1, 0.3, 1) 120ms both;
}
#ui[data-enter="true"] .loss-panel {
  animation: dialog-arrive 300ms cubic-bezier(0.16, 1, 0.3, 1);
}
.menu-shade {
  animation: shade-in 250ms ease-out;
}
.stair-multiplier {
  transition: scale 150ms ease-out;
}
.stair-multiplier small, .stair-multiplier em {
  display: block;
  font-size: 14px;
  font-style: normal;
  text-align: center;
  -webkit-text-stroke: 2px #4b3e87;
  line-height: 1.3;
}
.stair-multiplier em { font-size: 21px; color: #ffe260; }
.bonus-zone[data-ready="false"] { visibility: hidden; opacity: 0; pointer-events: none; }
.bonus-zone[data-ready="true"] { transition: opacity 220ms ease-out; }
.bonus-meter span { transition: filter 100ms ease-out, scale 100ms ease-out; }
.bonus-meter span.active { filter: brightness(1.18); scale: 1 1.08; }
.result-banner .earned-bonus { background: #146e2388; font-size: 14px; }
@keyframes shade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes dialog-arrive {
  from {
    opacity: 0;
    scale: 0.94;
    translate: 0 10px;
  }
  to {
    opacity: 1;
    scale: 1;
    translate: 0 0;
  }
}
@keyframes menu-arrive {
  from {
    opacity: 0;
    translate: 0 18px;
  }
  to {
    opacity: 1;
    translate: 0 0;
  }
}
@keyframes actions-arrive {
  from {
    opacity: 0;
    translate: 25px 0;
  }
  to {
    opacity: 1;
    translate: 0 0;
  }
}
@keyframes reward-unfold {
  from {
    opacity: 0.2;
    scale: 0.88;
    clip-path: inset(0 35% round 22px);
  }
  to {
    opacity: 1;
    scale: 1;
    clip-path: inset(0 0 round 22px);
  }
}
@keyframes merge-callout {
  from {
    opacity: 0;
    scale: 0.8;
  }
  35% {
    opacity: 1;
    scale: 1.06;
  }
  to {
    opacity: 1;
    scale: 1;
  }
}
@keyframes tap-beat {
  0%,
  100% {
    translate: 0 0;
    scale: 1;
  }
  50% {
    translate: -8px 6px;
    scale: 0.9;
  }
}
#game[data-reduced="true"] *,
#game[data-reduced="true"] *::before,
#game[data-reduced="true"] *::after {
  animation: none !important;
  transition: none !important;
}
.figure > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.magnet-art {
  transform: rotate(18deg);
  filter: none;
}
.magnet-art > img {
  display: block;
  width: 88px;
  height: 88px;
  object-fit: contain;
}
.boss-icon {
  background: #970920 url("/play/crowd-rush/assets/boss-icon-BUoO_JVe.webp") center 0 / contain
    no-repeat;
}
.boss-icon > .figure,
.boss-icon > .icon {
  visibility: hidden;
}
@media (max-width: 700px) {
  .magnet-art > img {
    width: 69px;
    height: 69px;
  }
}

/* Keep the finish readout clear of the climbing shoulder formation. */
.stair-multiplier { left: 21%; top: 16%; font-size: 48px; line-height: 1.15; }
@media (max-aspect-ratio: 4/5) {
  .stair-multiplier { left: 50%; top: 9%; font-size: 44px; }
  .stair-multiplier small { font-size: 11px; }
  .stair-multiplier em { font-size: 17px; }
}

/* Platform controls reuse the game's toy-plaque language and stay inside scrollable menus. */
.platform-form select { width:100%; min-height:44px; border:2px solid #aaa0cb; border-radius:10px; padding:8px; color:#443679; background:#fff; font:inherit; }
.platform-form h2 { font-size:17px; margin:16px 0 4px; }
.platform-form p { font-size:14px; line-height:1.45; }
.platform-action[href] { display:block; text-align:center; text-decoration:none; }
.platform-ad-reward { min-height:44px; border:3px solid #fff; border-radius:12px; background:#5a8bdb; color:#fff; font:inherit; font-size:14px; padding:8px 14px; }
.platform-tabs { overflow-x:auto; flex-wrap:nowrap; }
.platform-tabs button { flex-shrink:0; }
.platform-dialog { overscroll-behavior:contain; }
