
/* momo-game.css – Momo Cart Rush mini game */

#momo-game {
  font-family: "Poppins", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: #f8faf5;
  padding: 4rem 1.5rem;
  background: radial-gradient(circle at top, #232f26 0, #050806 55%, #020302 100%);
}

.mg-wrapper {
  max-width: 1100px;
  margin: 0 auto;
}

.mg-eyebrow {
  letter-spacing: 0.16em;
  text-transform: uppercase;
  font-size: 0.8rem;
  color: #a7b38a;
}

.mg-title {
  font-size: clamp(2rem, 3vw, 2.4rem);
  font-weight: 700;
  margin-top: 0.3rem;
}

.mg-subtitle {
  margin-top: 0.7rem;
  max-width: 560px;
  font-size: 0.95rem;
  color: #c3ccb2;
}

.mg-layout {
  margin-top: 2.5rem;
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr);
  gap: 1.8rem;
}

.mg-play-shell {
  background: radial-gradient(circle at top left, #1b231c 0, #050706 60%);
  border-radius: 1.7rem;
  padding: 1.5rem 1.5rem 1.2rem;
  box-shadow:
    0 0 0 1px rgba(255,255,255,0.02),
    0 22px 45px rgba(0,0,0,0.8);
  position: relative;
}

.mg-play-inner {
  border-radius: 1.3rem;
  background: radial-gradient(circle at top, #151b16 0, #020403 60%, #000000 100%);
  border: 1px solid #141a14;
  height: 320px;
  position: relative;
  overflow: hidden;
}

/* tap zones */
.mg-tap-zone {
  position: absolute;
  bottom: 1.6rem;
  padding: 0.75rem 1.35rem;
  border-radius: 999px;
  border: 1px solid rgba(193, 207, 165, 0.2);
  background: radial-gradient(circle at top left, rgba(166, 186, 128, 0.18), rgba(14, 21, 12, 0.85));
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: #c6d1ad;
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  backdrop-filter: blur(16px);
  cursor: pointer;
  user-select: none;
}

.mg-tap-zone::after {
  content: "▶";
  font-size: 0.65rem;
  opacity: 0.7;
}

.mg-tap-zone.left {
  left: 1.7rem;
}

.mg-tap-zone.left::after {
  content: "◀";
}

.mg-tap-zone.right {
  right: 1.7rem;
}

/* transparent large click zones for mobile */
.mg-touch-area {
  position: absolute;
  inset: 0;
  display: flex;
}

.mg-touch-area > div {
  flex: 1;
}

.mg-touch-area > div:nth-child(1) {
  cursor: pointer;
}

.mg-touch-area > div:nth-child(2) {
  cursor: pointer;
}

/* cart */
.mg-cart {
  position: absolute;
  bottom: 0.9rem;
  left: 50%;
  transform: translateX(-50%);
  width: 210px;
  height: 120px;
  background: linear-gradient(180deg, #ffcf73 0, #ffae38 55%, #d4741c 100%);
  border-radius: 999px;
  box-shadow:
    0 6px 15px rgba(0,0,0,0.7),
    inset 0 1px 0 rgba(255,255,255,0.35);
  display: flex;
  align-items: center;
  justify-content: center;
}

.mg-cart::before,
.mg-cart::after {
  content: "";
  position: absolute;
  bottom: -9px;
  width: 22px;
  height: 22px;
  border-radius: 999px;
  background: radial-gradient(circle at 30% 30%, #585858 0, #202020 55%, #050505 100%);
  box-shadow: 0 2px 4px rgba(0,0,0,0.7);
}

.mg-cart::before {
  left: 16px;
}

.mg-cart::after {
  right: 16px;
}

.mg-cart img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

/* falling momo */
.mg-momo {
  position: absolute;
  width: 38px;
  height: 38px;
  border-radius: 999px;
  background: radial-gradient(circle at 30% 20%, #ffe7b6 0, #f6c878 40%, #e8993b 100%);
  box-shadow:
    0 6px 12px rgba(0,0,0,0.75),
    inset 0 1px 0 rgba(255,255,255,0.35);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.mg-momo img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

/* sidebar */
.mg-sidebar {
  border-radius: 1.7rem;
  background: radial-gradient(circle at top right, #1f291f 0, #050806 60%);
  padding: 1.6rem 1.8rem 1.4rem;
  box-shadow:
    0 0 0 1px rgba(255,255,255,0.02),
    0 18px 40px rgba(0,0,0,0.9);
  display: flex;
  flex-direction: column;
  gap: 1.3rem;
}

.mg-metrics {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 0.9rem;
}

.mg-metric {
  border-radius: 999px;
  border: 1px solid rgba(171, 188, 140, 0.28);
  padding: 0.7rem 1rem;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.mg-metric-label {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.14em;
  color: #a0ad83;
}

.mg-metric-value {
  margin-top: 0.25rem;
  font-size: 1.4rem;
  font-weight: 600;
}

.mg-progress {
  margin-top: 0.3rem;
  border-radius: 999px;
  background: radial-gradient(circle at left, rgba(188, 211, 150, 0.35), rgba(11,18,9,0.9));
  border: 1px solid rgba(125, 143, 98, 0.65);
  padding: 0.65rem 1rem;
  font-size: 0.8rem;
  color: #dbe7c5;
}

.mg-start-btn {
  margin-top: 0.5rem;
  border-radius: 999px;
  border: none;
  width: 100%;
  padding: 0.9rem 1.2rem;
  font-size: 0.95rem;
  font-weight: 500;
  background: #f8faf5;
  color: #111310;
  cursor: pointer;
  box-shadow:
    0 18px 26px rgba(0,0,0,0.65),
    0 0 0 1px rgba(255,255,255,0.55);
  transition: transform 0.12s ease, box-shadow 0.12s ease, background 0.12s ease;
}

.mg-start-btn:hover {
  transform: translateY(-1px);
  box-shadow:
    0 20px 30px rgba(0,0,0,0.75),
    0 0 0 1px rgba(255,255,255,0.6);
}

.mg-start-btn:active {
  transform: translateY(0);
  box-shadow:
    0 14px 22px rgba(0,0,0,0.7),
    0 0 0 1px rgba(255,255,255,0.55);
}

.mg-start-btn.is-running {
  background: linear-gradient(135deg, #d3f28a, #7bd35b);
}

/* status / helper text */
.mg-note {
  font-size: 0.78rem;
  color: #aab691;
}

.mg-note strong {
  font-weight: 600;
}

.mg-instructions {
  margin-top: 0.2rem;
  font-size: 0.78rem;
  color: #8f9a7a;
}

/* result banner */
.mg-result {
  margin-top: 0.2rem;
  font-size: 0.86rem;
  font-weight: 500;
  color: #fefce8;
}

/* responsiveness */
@media (max-width: 900px) {
  #momo-game {
    padding: 3rem 1.25rem;
  }

  .mg-layout {
    grid-template-columns: minmax(0, 1fr);
  }

  .mg-play-inner {
    height: 280px;
  }
}

@media (max-width: 640px) {
  #momo-game {
    padding: 2.5rem 1.1rem;
  }

  .mg-play-shell {
    padding-inline: 1.1rem;
  }

  .mg-play-inner {
    height: 300px;
  }

  .mg-tap-zone.left {
    left: 1rem;
  }

  .mg-tap-zone.right {
    right: 1rem;
  }

  .mg-cart {
    width: 150px;
    height: 90px;
  }
}
