    /* Coin Catch */
    #mg-coin-arena {
      background: linear-gradient(180deg, #0f1e2e 0%, #1a3048 100%);
      width: 100%;
      height: 280px;
      position: relative;
      overflow: hidden;
    }

    .mg-coin {
      position: absolute;
      width: 28px;
      height: 28px;
      border-radius: 50%;
      background: radial-gradient(circle at 35% 35%, #FFD96B, #E8A92B);
      box-shadow: 0 0 8px rgba(255, 200, 61, .5), inset 0 2px 4px rgba(255, 255, 255, .3);
      display: flex;
      align-items: center;
      justify-content: center;
      font-size: 12px;
      font-weight: 800;
      color: #8B5E10;
      font-family: 'Baloo 2', sans-serif;
      transition: opacity 0.2s;
    }

    .mg-coin.caught {
      opacity: 0;
      transform: scale(0);
    }

    #mg-basket {
      position: absolute;
      bottom: 8px;
      width: 72px;
      height: 32px;
      background: linear-gradient(180deg, #3F7DE0, #2C5BC0);
      border-radius: 8px 8px 16px 16px;
      box-shadow: 0 4px 12px rgba(63, 125, 224, .4);
      cursor: grab;
      transform: translateX(-50%);
    }

    #mg-basket::before {
      content: '';
      position: absolute;
      top: -8px;
      left: 50%;
      transform: translateX(-50%);
      width: 40px;
      height: 10px;
      background: #5599F0;
      border-radius: 5px 5px 0 0;
    }

    .mg-timer-bar {
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      height: 5px;
      background: rgba(255, 255, 255, .1);
    }

    .mg-timer-fill {
      height: 100%;
      background: linear-gradient(90deg, #5BBE6B, #FFC83D);
      transition: width 0.1s linear;
      border-radius: 0 2px 2px 0;
    }

    .mg-catch-count {
      position: absolute;
      top: 10px;
      right: 12px;
      font-family: 'Baloo 2', sans-serif;
      font-size: 15px;
      font-weight: 800;
      color: #FFD96B;
    }

    /* Sort Rush */
    #mg-sort-arena {
      background: linear-gradient(180deg, #1a1040 0%, #2a1a60 100%);
      width: 100%;
      height: 280px;
      position: relative;
      overflow: hidden;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 16px;
    }

    .mg-sort-card {
      background: #EEF3FF;
      border-radius: 18px;
      padding: 20px 24px;
      text-align: center;
      min-width: 200px;
      transition: transform 0.15s, background 0.15s;
      box-shadow: 0 8px 32px rgba(0, 0, 0, .35);
    }

    .mg-sort-card.correct {
      background: #c8f7d8;
    }

    .mg-sort-card.wrong {
      background: #ffd0d0;
    }

    .mg-sort-icon {
      font-size: 26px;
      font-family: 'Baloo 2', sans-serif;
      font-weight: 900;
      margin-bottom: 8px;
      letter-spacing: 1px;
    }

    .mg-sort-label {
      font-family: 'Baloo 2', sans-serif;
      font-size: 18px;
      font-weight: 900;
      color: #1A0A40;
    }

    .mg-sort-progress {
      position: absolute;
      top: 11px;
      right: 14px;
      font-family: 'Baloo 2', sans-serif;
      font-size: 14px;
      font-weight: 800;
      color: rgba(255, 255, 255, .78);
    }

    .mg-sort-btns {
      display: flex;
      gap: 16px;
    }

    .mg-sort-btn {
      flex: 1;
      padding: 12px 20px;
      border: none;
      border-radius: 14px;
      font-family: 'Baloo 2', sans-serif;
      font-size: 16px;
      font-weight: 800;
      cursor: pointer;
      transition: transform 0.1s, box-shadow 0.1s;
    }

    .mg-sort-btn:active {
      transform: scale(.94);
    }

    .mg-sort-btn.need {
      background: linear-gradient(135deg, #5BBE6B, #3E9E4E);
      color: #fff;
      box-shadow: 0 4px 0 #2d7a3a;
    }

    .mg-sort-btn.want {
      background: linear-gradient(135deg, #0EA5E9, #0284C7);
      color: #fff;
      box-shadow: 0 4px 0 #025a87;
    }

    /* Budget Blitz */
    #mg-blitz-arena {
      background: linear-gradient(180deg, #1a0a2e 0%, #2d1060 100%);
      width: 100%;
      height: 280px;
      position: relative;
      overflow: hidden;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 20px;
    }

    .mg-blitz-bar {
      width: 88%;
      height: 44px;
      border-radius: 22px;
      overflow: hidden;
      position: relative;
      border: 2px solid rgba(255, 255, 255, .15);
      background: #0a0520;
    }

    .mg-blitz-zone {
      position: absolute;
      top: 0;
      height: 100%;
    }

    .mg-blitz-zone.cheap {
      left: 0;
      width: 30%;
      background: linear-gradient(90deg, rgba(255, 107, 107, .5), rgba(255, 107, 107, .3));
    }

    .mg-blitz-zone.sweet {
      left: 30%;
      width: 40%;
      background: linear-gradient(90deg, rgba(91, 190, 107, .4), rgba(91, 190, 107, .6), rgba(91, 190, 107, .4));
    }

    .mg-blitz-zone.expensive {
      left: 70%;
      width: 30%;
      background: linear-gradient(90deg, rgba(255, 107, 107, .3), rgba(255, 107, 107, .5));
    }

    .mg-blitz-label {
      position: absolute;
      top: 50%;
      transform: translateY(-50%);
      font-family: 'Fredoka', sans-serif;
      font-size: 11px;
      font-weight: 700;
      color: rgba(255, 255, 255, .7);
      pointer-events: none;
      text-align: center;
      width: 100%;
    }

    .mg-blitz-zone.cheap .mg-blitz-label {
      left: 0;
      width: 100%;
    }

    .mg-blitz-zone.sweet .mg-blitz-label {
      left: 0;
      width: 100%;
      color: #fff;
      font-size: 13px;
      font-weight: 800;
      font-family: 'Baloo 2', sans-serif;
    }

    .mg-blitz-zone.expensive .mg-blitz-label {
      left: 0;
      width: 100%;
    }

    #mg-blitz-needle {
      position: absolute;
      top: -4px;
      bottom: -4px;
      width: 6px;
      background: var(--surface);
      border-radius: 3px;
      box-shadow: 0 0 10px rgba(255, 255, 255, .9);
      transform: translateX(-50%);
      transition: none;
    }

    .mg-blitz-tap-btn {
      width: 110px;
      height: 110px;
      border-radius: 50%;
      background: radial-gradient(circle at 35% 35%, #FFC83D, #E8A92B);
      box-shadow: 0 6px 0 #C08820, 0 0 24px rgba(255, 200, 61, .4);
      border: none;
      cursor: pointer;
      font-family: 'Baloo 2', sans-serif;
      font-size: 20px;
      font-weight: 800;
      color: #5A3A00;
      transition: transform 0.08s, box-shadow 0.08s;
    }

    .mg-blitz-tap-btn:active {
      transform: translateY(4px);
      box-shadow: 0 2px 0 #C08820, 0 0 24px rgba(255, 200, 61, .4);
    }

    .mg-blitz-rounds {
      font-family: 'Fredoka', sans-serif;
      font-size: 13px;
      color: rgba(255, 255, 255, .5);
    }

    /* Stack & Save */
    #mg-stack-arena {
      background: linear-gradient(180deg, #1a0a2e 0%, #1a1040 100%);
      width: 100%;
      height: 280px;
      position: relative;
      overflow: hidden;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 14px;
    }

    #mg-jar-wrap {
      width: 90px;
      height: 130px;
      position: relative;
    }

    #mg-jar-svg {
      width: 100%;
      height: 100%;
    }

    #mg-jar-fill-pct {
      font-family: 'Baloo 2', sans-serif;
      font-size: 22px;
      font-weight: 800;
      color: #FFD96B;
      text-align: center;
    }

    .mg-hold-btn {
      width: 100px;
      height: 100px;
      border-radius: 50%;
      background: radial-gradient(circle at 35% 35%, #0EA5E9, #0284C7);
      box-shadow: 0 6px 0 #025a87, 0 0 24px rgba(14, 165, 233, .35);
      border: none;
      cursor: pointer;
      font-family: 'Baloo 2', sans-serif;
      font-size: 15px;
      font-weight: 800;
      color: #fff;
      user-select: none;
      -webkit-user-select: none;
      touch-action: none;
    }

    .mg-hold-btn:active {
      transform: translateY(3px);
      box-shadow: 0 3px 0 #025a87;
    }

    .mg-target-label {
      font-family: 'Fredoka', sans-serif;
      font-size: 12px;
      color: rgba(255, 255, 255, .4);
    }

    /* ── Color Match ── */
    #mg-cmatch-arena {
      background: linear-gradient(180deg, #0f1e2e 0%, #1a3048 100%);
      width: 100%;
      height: 280px;
      position: relative;
      overflow: hidden;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 10px;
    }

    #cm-swatch {
      width: 80px;
      height: 80px;
      border-radius: 50%;
      border: 4px solid rgba(255, 255, 255, .4);
      box-shadow: 0 0 24px rgba(255, 255, 255, .3);
    }

    #cm-label {
      font-family: 'Baloo 2', sans-serif;
      font-size: 16px;
      font-weight: 800;
      color: #fff;
    }

    #cm-choices {
      display: flex;
      gap: 10px;
      flex-wrap: wrap;
      justify-content: center;
    }

    .cm-choice-btn {
      width: 64px;
      height: 64px;
      border-radius: 16px;
      border: none;
      background: rgba(255, 255, 255, .12);
      font-size: 34px;
      cursor: pointer;
      transition: transform 0.1s, background 0.15s;
      box-shadow: 0 4px 0 rgba(0, 0, 0, .3);
    }

    .cm-choice-btn:active {
      transform: scale(.9);
    }

    /* ── Balloon Pop ── */
    #mg-balloon-arena {
      background: linear-gradient(180deg, #0a1628 0%, #1a2a50 100%);
      width: 100%;
      height: 280px;
      position: relative;
      overflow: hidden;
    }

    .bp-balloon {
      position: absolute;
      font-size: 40px;
      cursor: pointer;
      user-select: none;
      filter: drop-shadow(0 4px 8px rgba(0, 0, 0, .4));
    }

    .bp-balloon:active {
      transform: scale(1.2);
    }

    /* ── Sleep mini-games (Home / rest) ── */
    #mg-sleep-arena {
      background: linear-gradient(180deg, #1b1746 0%, #2a2566 55%, #3a3680 100%);
      width: 100%;
      height: 280px;
      position: relative;
      overflow: hidden;
    }

    #mg-sleep-arena::before {
      content: '';
      position: absolute;
      inset: 0;
      pointer-events: none;
      background-image:
        radial-gradient(1.5px 1.5px at 18% 28%, rgba(255, 255, 255, .75), transparent),
        radial-gradient(1.5px 1.5px at 68% 18%, rgba(255, 255, 255, .55), transparent),
        radial-gradient(1.5px 1.5px at 42% 66%, rgba(255, 255, 255, .5), transparent),
        radial-gradient(2px 2px at 84% 58%, rgba(255, 255, 255, .6), transparent),
        radial-gradient(1.5px 1.5px at 30% 84%, rgba(255, 255, 255, .45), transparent);
    }

    .sl-item {
      position: absolute;
      font-size: 40px;
      cursor: pointer;
      user-select: none;
      line-height: 1;
      filter: drop-shadow(0 3px 7px rgba(0, 0, 0, .35));
      will-change: transform, top, left;
    }

    .sl-item:active {
      transform: scale(1.2);
    }

    #sl-meter {
      position: absolute;
      left: 16px;
      right: 16px;
      bottom: 12px;
      height: 12px;
      border-radius: 8px;
      background: rgba(255, 255, 255, .18);
      overflow: hidden;
      z-index: 5;
    }

    #sl-meter-fill {
      height: 100%;
      width: 0%;
      border-radius: 8px;
      background: linear-gradient(90deg, #8B7BE8, #B9A7FF);
      transition: width .2s var(--ease-out);
    }

    /* ── Bubble Burst ── */
    #mg-bubble-arena {
      background: linear-gradient(180deg, #0d1e3a 0%, #1a3060 100%);
      width: 100%;
      height: 280px;
      position: relative;
      overflow: hidden;
    }

    #bb2-msg {
      position: absolute;
      top: 36px;
      width: 100%;
      text-align: center;
      font-family: 'Fredoka', sans-serif;
      font-size: 14px;
      color: rgba(255, 255, 255, .5);
    }

    .bb2-bubble {
      position: absolute;
      border-radius: 50%;
      cursor: pointer;
      display: flex;
      align-items: center;
      justify-content: center;
      filter: drop-shadow(0 4px 12px rgba(56, 225, 240, .4));
    }

    .bb2-bubble:active {
      transform: scale(1.3) !important;
    }

    /* ── Memory Match ── */
    #mg-mem-arena {
      background: linear-gradient(180deg, #0f1e2e 0%, #1a3048 100%);
      width: 100%;
      height: 280px;
      position: relative;
      overflow: hidden;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 8px;
      padding-top: 32px;
    }

    #mem-grid {
      display: grid;
      grid-template-columns: repeat(4, 52px);
      gap: 8px;
    }

    .mem-card {
      width: 52px;
      height: 52px;
      border-radius: 10px;
      cursor: pointer;
      position: relative;
      transform-style: preserve-3d;
      transition: transform 0.35s;
    }

    .mem-card.flipped,
    .mem-card.matched {
      transform: rotateY(180deg);
    }

    .mem-card.matched .mem-back {
      background: rgba(91, 190, 107, .35);
    }

    .mem-front,
    .mem-back {
      position: absolute;
      inset: 0;
      border-radius: 10px;
      display: flex;
      align-items: center;
      justify-content: center;
      backface-visibility: hidden;
      -webkit-backface-visibility: hidden;
    }

    .mem-front {
      background: linear-gradient(135deg, #38BDF8, #0284C7);
      font-size: 22px;
      font-weight: 900;
      color: #fff;
      box-shadow: 0 3px 0 #025a87;
    }

    .mem-back {
      background: rgba(255, 255, 255, .1);
      font-size: 26px;
      transform: rotateY(180deg);
      border: 2px solid rgba(255, 255, 255, .2);
    }
