/* ============================================================
   Bộ nhân vật Club — Panda Meme kiểu DJ Bar (đầu to, thân nhỏ)
   ============================================================ */

.mc {
  position: relative;
  width: 110px;
  height: 168px;
  transform: scale(var(--s, 1));
  transform-origin: center bottom;
  user-select: none;
}

.mc__rig {
  position: absolute;
  inset: 0;
  transform-origin: center bottom;
  animation: var(--move, mcshuffle) calc(var(--beat, 0.55s) * 2.2) cubic-bezier(0.45, 0.05, 0.55, 0.95) infinite;
  animation-delay: var(--delay, 0s);
}

.mc__label {
  position: absolute;
  bottom: -18px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 12px;
  font-weight: 800;
  color: #fff;
  text-shadow: 0 1px 3px #000;
  white-space: nowrap;
}

/* ---------- Thân nhỏ que (đầu chiếm ~55% chiều cao) ---------- */
.mc__body {
  position: absolute;
  left: 50%;
  bottom: 20px;
  width: 30px;
  height: 34px;
  margin-left: -15px;
  border-radius: 7px 7px 4px 4px;
  background: var(--main, #1a1a1a);
  border: 2px solid rgba(0, 0, 0, 0.45);
  z-index: 2;
}

.mc__body--suit {
  background:
    linear-gradient(180deg, #f5f5f5 0 20%, transparent 20%),
    linear-gradient(90deg, #111 44%, #eee 44% 56%, #111 56%);
}

.mc__body--stripe {
  background:
    repeating-linear-gradient(
      90deg,
      #111 0 4px,
      #f0f0f0 4px 8px
    );
}

.mc__body--dress {
  width: 34px;
  margin-left: -17px;
  height: 40px;
  border-radius: 9px 9px 14px 14px;
  background: linear-gradient(180deg, var(--main), var(--body));
}

.mc__body--casual {
  background: linear-gradient(180deg, var(--main), var(--body));
}

.mc__arm {
  position: absolute;
  bottom: 36px;
  width: 9px;
  height: 32px;
  border-radius: 5px;
  background: #ffe8d2;
  border: 1px solid rgba(0, 0, 0, 0.25);
  transform-origin: top center;
  z-index: 1;
}

.mc__arm--l {
  left: 28px;
  animation: mcArmL var(--beat, 0.55s) ease-in-out infinite;
  animation-delay: var(--delay, 0s);
}

.mc__arm--r {
  right: 28px;
  animation: mcArmR var(--beat, 0.55s) ease-in-out infinite;
  animation-delay: var(--delay, 0s);
}

/* Ống tay áo phủ nửa cánh tay */
.mc__arm::before {
  content: "";
  position: absolute;
  top: 0;
  left: -1px;
  right: -1px;
  height: 12px;
  background: var(--main, #1a1a1a);
  border-radius: 4px 4px 0 0;
}

.mc__leg {
  position: absolute;
  bottom: 0;
  width: 10px;
  height: 20px;
  border-radius: 4px 4px 2px 2px;
  background: #1a1a1a;
  border: 1px solid rgba(0, 0, 0, 0.4);
  transform-origin: top center;
}

.mc__leg--l {
  left: 40px;
  animation: mcLegL var(--beat, 0.55s) ease-in-out infinite;
  animation-delay: var(--delay, 0s);
}

.mc__leg--r {
  right: 40px;
  animation: mcLegR var(--beat, 0.55s) ease-in-out infinite;
  animation-delay: var(--delay, 0s);
}

/* ---------- Đầu TO — Baozi / panda meme ---------- */
.mc__head {
  position: absolute;
  left: 50%;
  bottom: 46px;
  width: 86px;
  height: 86px;
  margin-left: -43px;
  z-index: 4;
}

.mc__face {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: #ffffff;
  border: 2.5px solid #1a1a1a;
  box-shadow: 0 2px 0 rgba(0, 0, 0, 0.15);
  overflow: hidden;
}

/* Vệt đen mắt panda (trong vòng mặt tròn) */
.mc__patch {
  position: absolute;
  top: 32px;
  width: 24px;
  height: 28px;
  border-radius: 50%;
  background: #0d0d0d;
  z-index: 1;
}
.mc__patch--l { left: 8px; }
.mc__patch--r { right: 8px; }

.mc--panda .mc__face .mc__eye {
  z-index: 5;
  top: 40px;
  width: 10px;
  height: 12px;
  background: #111;
}
.mc--panda .mc__face .mc__eye::after {
  top: 2px;
  left: 2px;
  width: 3px;
  height: 3px;
  background: #fff;
}
.mc--panda .mc__brow { z-index: 6; }

/* Tóc đen mái bằng kiểu bowl-cut */
.mc__hair {
  position: absolute;
  left: 1px;
  right: 1px;
  top: -2px;
  height: 34px;
  background: #151515;
  border-radius: 44px 44px 8px 8px;
  border: 2px solid #0a0a0a;
  border-bottom: none;
  z-index: 2;
}

/* Mái che trán */
.mc__bang {
  position: absolute;
  left: 12px;
  right: 12px;
  top: 22px;
  height: 16px;
  background: #151515;
  border-radius: 0 0 40% 40%;
  z-index: 3;
  clip-path: polygon(0 0, 100% 0, 92% 100%, 75% 70%, 50% 100%, 25% 70%, 8% 100%);
}

.mc__brow {
  position: absolute;
  top: 34px;
  width: 14px;
  height: 3px;
  background: #1a1a1a;
  border-radius: 2px;
}

.mc__brow--l { left: 20px; transform: rotate(8deg); }
.mc__brow--r { right: 20px; transform: rotate(-8deg); }

.mc__eye {
  position: absolute;
  top: 40px;
  width: 10px;
  height: 12px;
  background: #111;
  border-radius: 50%;
}

.mc__eye--l { left: 22px; }
.mc__eye--r { right: 22px; }

/* Điểm sáng mắt */
.mc__eye::after {
  content: "";
  position: absolute;
  top: 2px;
  left: 2px;
  width: 3px;
  height: 3px;
  background: #fff;
  border-radius: 50%;
}

.mc__mouth {
  position: absolute;
  left: 50%;
  bottom: 16px;
  width: 18px;
  height: 10px;
  margin-left: -9px;
  border: 2.5px solid #1a1a1a;
  border-top: none;
  border-radius: 0 0 12px 12px;
}

.mc__blush {
  position: absolute;
  top: 50px;
  width: 10px;
  height: 6px;
  border-radius: 50%;
  background: rgba(255, 130, 150, 0.45);
}

.mc__blush--l { left: 10px; }
.mc__blush--r { right: 10px; }

/* Biểu cảm Baozi */
.mc__face--cool .mc__eye {
  height: 3px;
  top: 46px;
  border-radius: 2px;
}
.mc__face--cool .mc__eye::after { display: none; }
.mc__face--cool .mc__brow--l { transform: rotate(16deg); }
.mc__face--cool .mc__brow--r { transform: rotate(-16deg); }

.mc__face--wow .mc__mouth {
  width: 16px;
  height: 16px;
  margin-left: -8px;
  border-radius: 50%;
  border: 2.5px solid #1a1a1a;
  background: #3a2030;
  bottom: 14px;
}
.mc__face--wow .mc__eye {
  height: 14px;
  top: 38px;
}

.mc__face--smug .mc__mouth {
  border: none;
  height: 3px;
  width: 20px;
  margin-left: -10px;
  background: #1a1a1a;
  border-radius: 2px;
  transform: rotate(-12deg);
}
.mc__face--smug .mc__brow--l { transform: rotate(-6deg); top: 36px; }
.mc__face--smug .mc__brow--r { transform: rotate(10deg); }

.mc__face--sideeye .mc__eye--l { left: 28px; }
.mc__face--sideeye .mc__eye--r { right: 14px; }
.mc__face--sideeye .mc__mouth {
  border: none;
  height: 2px;
  width: 14px;
  margin-left: -4px;
  background: #1a1a1a;
  border-radius: 1px;
}

.mc__face--flat .mc__eye {
  height: 2px;
  top: 46px;
  border-radius: 1px;
}
.mc__face--flat .mc__eye::after { display: none; }
.mc__face--flat .mc__mouth {
  border: none;
  height: 2px;
  width: 16px;
  margin-left: -8px;
  background: #1a1a1a;
  bottom: 20px;
}

.mc__face--happy .mc__mouth {
  border-radius: 0 0 14px 14px;
  height: 11px;
}

/* Tai nghe DJ */
.mc__phones {
  position: absolute;
  left: 50%;
  top: 18px;
  width: 96px;
  height: 40px;
  margin-left: -48px;
  z-index: 5;
  pointer-events: none;
  background: transparent;
  border-top: 3px solid #222;
  border-radius: 40px 40px 0 0;
}
.mc__phones::before,
.mc__phones::after {
  content: "";
  position: absolute;
  top: 8px;
  width: 18px;
  height: 28px;
  border-radius: 8px;
  background: #111;
  border: 2px solid #00e5ff;
  box-shadow: 0 0 8px #00e5ff;
}
.mc__phones::before { left: 0; }
.mc__phones::after { right: 0; }

/* Prop cầm tay */
.mc__prop {
  position: absolute;
  z-index: 6;
  pointer-events: none;
}
.mc__prop--guitar {
  right: 8px;
  bottom: 34px;
  width: 10px;
  height: 48px;
  background: linear-gradient(180deg, #e11d48, #7f1d1d);
  border-radius: 3px;
  transform: rotate(18deg);
  box-shadow: 0 0 6px rgba(225, 29, 72, 0.6);
}
.mc__prop--guitar::before {
  content: "";
  position: absolute;
  top: -10px;
  left: -6px;
  width: 22px;
  height: 16px;
  border-radius: 40% 40% 30% 30%;
  background: #b91c1c;
  border: 1px solid #450a0a;
}
.mc__prop--mic {
  right: 22px;
  bottom: 52px;
  width: 8px;
  height: 22px;
  background: #333;
  border-radius: 4px 4px 2px 2px;
  border: 1px solid #111;
}
.mc__prop--mic::before {
  content: "";
  position: absolute;
  top: -8px;
  left: -3px;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: #555;
  box-shadow: 0 0 6px #00e5ff;
}

/* Cánh VIP neon — giống ảnh mẫu, rõ hơn */
.mc__wings {
  position: absolute;
  left: 50%;
  bottom: 50px;
  width: 170px;
  height: 72px;
  margin-left: -85px;
  z-index: 0;
  background:
    radial-gradient(ellipse at 16% 50%, rgba(0, 220, 255, 1), transparent 55%),
    radial-gradient(ellipse at 84% 50%, rgba(0, 220, 255, 1), transparent 55%);
  filter: drop-shadow(0 0 14px rgba(0, 229, 255, 1));
  animation: mcWings 1.2s ease-in-out infinite;
  opacity: 0.95;
}

.mc__wings--gold {
  background:
    radial-gradient(ellipse at 18% 50%, rgba(255, 210, 70, 0.95), transparent 52%),
    radial-gradient(ellipse at 82% 50%, rgba(255, 210, 70, 0.95), transparent 52%);
  filter: drop-shadow(0 0 10px rgba(255, 210, 70, 0.85));
}

.mc__wings--cyan {
  background:
    radial-gradient(ellipse at 18% 50%, rgba(0, 200, 255, 0.95), transparent 52%),
    radial-gradient(ellipse at 82% 50%, rgba(0, 200, 255, 0.95), transparent 52%);
}

@keyframes mcWings {
  0%, 100% { opacity: 0.65; transform: scaleX(0.92); }
  50% { opacity: 1; transform: scaleX(1.1); }
}

/* Huy hiệu trên ngực */
.mc__badge {
  position: absolute;
  left: 50%;
  bottom: 48px;
  width: 14px;
  height: 14px;
  margin-left: 6px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, #fff, #00e5ff 40%, #0369a1);
  border: 1.5px solid #fff;
  box-shadow: 0 0 8px #00e5ff;
  z-index: 5;
}

.mc__crown {
  position: absolute;
  top: -16px;
  left: 50%;
  width: 30px;
  height: 16px;
  margin-left: -15px;
  background: linear-gradient(180deg, #ffe14d, #d9a521);
  clip-path: polygon(0 100%, 0 35%, 20% 65%, 50% 0, 80% 65%, 100% 35%, 100% 100%);
  z-index: 6;
  filter: drop-shadow(0 0 6px rgba(255, 225, 77, 0.9));
}

.mc--glow .mc__face {
  box-shadow:
    0 0 16px rgba(0, 229, 255, 0.75),
    inset 0 -8px 0 rgba(0, 0, 0, 0.03);
}

/* ============================================================
   Chibi / Pixel / Cat
   ============================================================ */
.mc--chibi .mc__head { width: 64px; height: 64px; margin-left: -32px; }
.mc--chibi .mc__face { background: #ffe8d6; }
.mc--chibi .mc__hair--chibi {
  position: absolute; left: 4px; right: 4px; top: -2px; height: 30px;
  background: linear-gradient(180deg, #2a1a10, #1a1008);
  border-radius: 30px 30px 8px 8px; z-index: 2;
}
.mc--chibi .mc__eye {
  width: 11px; height: 13px;
  background: radial-gradient(circle at 35% 35%, #fff 0 28%, #222 30%);
}
.mc--chibi .mc__eye::after { display: none; }

.mc--pixel { image-rendering: pixelated; }
.mc--pixel .mc__body,
.mc--pixel .mc__arm,
.mc--pixel .mc__leg,
.mc--pixel .mc__head,
.mc--pixel .mc__face { border-radius: 0 !important; }
.mc--pixel .mc__face--pixel {
  background:
    linear-gradient(#222, #222) 16px 22px / 8px 8px no-repeat,
    linear-gradient(#222, #222) 42px 22px / 8px 8px no-repeat,
    linear-gradient(#222, #222) 26px 42px / 14px 5px no-repeat,
    #ffd7b5;
}
.mc--pixel .mc__head { width: 56px; height: 56px; margin-left: -28px; }

.mc--cat .mc__face { background: #f5d7a1; }
.mc--cat .mc__ear {
  position: absolute; top: -10px; width: 0; height: 0;
  border-left: 11px solid transparent;
  border-right: 11px solid transparent;
  border-bottom: 20px solid #f5d7a1;
  z-index: 2;
}
.mc--cat .mc__ear--l { left: 6px; transform: rotate(-12deg); }
.mc--cat .mc__ear--r { right: 6px; transform: rotate(12deg); }
.mc--cat .mc__nose {
  position: absolute; left: 50%; top: 38px; width: 8px; height: 5px;
  margin-left: -4px; background: #ff7aa2; border-radius: 50%;
}

/* ============================================================
   Vũ đạo — bounce idle (nhún nhảy liên tục) + các move khác
   ============================================================ */
/* ============================================================
   Meme Gấu Trúc — đầu panda đen trắng + mặt người ghép
   ============================================================ */
.mc--pandahead .ph {
  position: absolute;
  left: 50%;
  bottom: 58px;
  width: 72px;
  height: 70px;
  margin-left: -36px;
  z-index: 5;
}

/* Tay/chân THÒ RA ngoài đầu — nhảy kiểu video DJ Bar */
.mc--pandahead .mc__arm {
  width: 13px;
  height: 42px;
  bottom: 42px;
  z-index: 6;
  background: linear-gradient(180deg, var(--main, #c0392b) 0 38%, #ffe0c2 38%);
  border: 2px solid #111;
  border-radius: 8px;
  box-shadow: 0 2px 0 rgba(0, 0, 0, 0.35);
}
.mc--pandahead .mc__arm::before {
  height: 16px;
  background: var(--main, #c0392b);
  border-radius: 6px 6px 0 0;
}
.mc--pandahead .mc__arm::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -8px;
  width: 14px;
  height: 14px;
  margin-left: -7px;
  border-radius: 50%;
  background: #ffe0c2;
  border: 2px solid #111;
}
.mc--pandahead .mc__arm--l { left: -6px; }
.mc--pandahead .mc__arm--r { right: -6px; }
.mc--pandahead .mc__leg {
  width: 14px;
  height: 28px;
  background: linear-gradient(180deg, #1a1a1a 0 70%, #333 70%);
  border: 2px solid #111;
  border-radius: 5px 5px 3px 8px;
  z-index: 1;
}
.mc--pandahead .mc__leg--l { left: 36px; }
.mc--pandahead .mc__leg--r { right: 36px; }
.mc--pandahead .mc__body {
  width: 38px;
  height: 44px;
  margin-left: -19px;
  bottom: 26px;
  border: 2px solid #111;
  border-radius: 10px 10px 8px 8px;
  box-shadow: inset 0 -8px 0 rgba(0, 0, 0, 0.15);
  z-index: 3;
}
.mc--pandahead .mc__body--dress {
  width: 44px;
  margin-left: -22px;
  height: 48px;
  border-radius: 12px 12px 18px 18px;
}
.mc--pandahead .mc__body--suit {
  box-shadow: inset 0 -10px 0 rgba(255, 255, 255, 0.08);
}

.ph__ear {
  position: absolute;
  top: -10px;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: #0a0a0a;
  border: 3px solid #111;
  z-index: 1;
  box-shadow: inset 0 0 0 7px #1c1c1c, 0 2px 0 rgba(0, 0, 0, 0.35);
}
.ph__ear--l { left: -2px; }
.ph__ear--r { right: -2px; }

.ph__head {
  position: absolute;
  left: 50%;
  top: 4px;
  width: 66px;
  height: 66px;
  margin-left: -33px;
  border-radius: 50%;
  background: #fafaf6;
  border: 3px solid #111;
  box-shadow: inset 0 -12px 0 rgba(0, 0, 0, 0.05), 0 3px 0 rgba(0, 0, 0, 0.25);
  overflow: hidden;
  z-index: 2;
}

.ph__patch {
  position: absolute;
  top: 18px;
  width: 26px;
  height: 30px;
  border-radius: 50%;
  background: #151515;
  z-index: 1;
}
.ph__patch--l { left: 4px; transform: rotate(-18deg); }
.ph__patch--r { right: 4px; transform: rotate(18deg); }

.ph__face {
  position: absolute;
  left: 50%;
  top: 14px;
  width: 48px;
  height: 52px;
  margin-left: -24px;
  border-radius: 42% 42% 48% 48%;
  z-index: 3;
  overflow: hidden;
  background: #f0d5b8;
  border: 1.5px solid rgba(0, 0, 0, 0.2);
}

.ph__face--photo {
  width: 54px;
  height: 54px;
  margin-left: -27px;
  top: 12px;
  border-radius: 50%;
  background: #222;
}

.ph__photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.ph__eye {
  position: absolute;
  top: 16px;
  width: 9px;
  height: 11px;
  background: #111;
  border-radius: 50%;
}
.ph__eye--l { left: 9px; }
.ph__eye--r { right: 9px; }
.ph__eye::after {
  content: "";
  position: absolute;
  top: 2px;
  left: 2px;
  width: 3px;
  height: 3px;
  background: #fff;
  border-radius: 50%;
}

.ph__brow {
  position: absolute;
  top: 10px;
  width: 12px;
  height: 3px;
  background: #1a1a1a;
  border-radius: 2px;
}
.ph__brow--l { left: 7px; transform: rotate(10deg); }
.ph__brow--r { right: 7px; transform: rotate(-10deg); }

.ph__nose {
  position: absolute;
  left: 50%;
  top: 28px;
  width: 7px;
  height: 5px;
  margin-left: -3.5px;
  background: #c48a6a;
  border-radius: 50%;
}

.ph__mouth {
  position: absolute;
  left: 50%;
  bottom: 8px;
  width: 14px;
  height: 8px;
  margin-left: -7px;
  border: 2px solid #1a1a1a;
  border-top: none;
  border-radius: 0 0 12px 12px;
}

.ph__shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 50%, rgba(0, 0, 0, 0.08));
  pointer-events: none;
}

/* Jacky-ish: kính + cười nhẹ */
.ph__face--jacky {
  background: linear-gradient(180deg, #f2d2b0, #e8b892);
}
.ph__face--jacky .ph__eye {
  height: 4px;
  top: 18px;
  border-radius: 2px;
  width: 14px;
  background: #111;
}
.ph__face--jacky .ph__eye::after { display: none; }
.ph__face--jacky .ph__eye--l { left: 5px; }
.ph__face--jacky .ph__eye--r { right: 5px; }
.ph__face--jacky .ph__mouth {
  width: 18px;
  margin-left: -9px;
  height: 6px;
  border-width: 2.5px;
}

/* Choi-ish: mắt sắc, miệng nghiêm */
.ph__face--choi {
  background: linear-gradient(180deg, #e8c4a0, #d4a07a);
}
.ph__face--choi .ph__brow--l { transform: rotate(-12deg); top: 9px; }
.ph__face--choi .ph__brow--r { transform: rotate(12deg); top: 9px; }
.ph__face--choi .ph__eye { height: 13px; width: 8px; }
.ph__face--choi .ph__mouth {
  border: none;
  height: 3px;
  width: 12px;
  margin-left: -6px;
  background: #1a1a1a;
  border-radius: 2px;
  bottom: 10px;
}

.ph__face--cool .ph__eye {
  height: 3px;
  top: 20px;
  border-radius: 2px;
}
.ph__face--cool .ph__eye::after { display: none; }

.ph__face--shock .ph__mouth {
  width: 12px;
  height: 12px;
  margin-left: -6px;
  border-radius: 50%;
  border: 2px solid #1a1a1a;
  background: #3a2030;
  bottom: 6px;
}
.ph__face--shock .ph__eye { height: 14px; top: 14px; }

.ph__face--smug .ph__mouth {
  border: none;
  height: 3px;
  width: 16px;
  margin-left: -8px;
  background: #1a1a1a;
  transform: rotate(-12deg);
  bottom: 11px;
}

.mc--pandahead.mc--glow .ph__head {
  box-shadow: 0 0 18px rgba(0, 229, 255, 0.7), inset 0 -10px 0 rgba(0, 0, 0, 0.04);
}

/* Nhún nhảy kiểu video DJ Bar — biên độ lớn, squash/stretch */
@keyframes mcbounce {
  0%, 100% {
    transform: translateY(0) scaleY(1) scaleX(1) rotate(0deg);
  }
  15% {
    transform: translateY(-22px) scaleY(1.12) scaleX(0.9) rotate(-4deg);
  }
  30% {
    transform: translateY(-4px) scaleY(0.86) scaleX(1.12) rotate(3deg);
  }
  50% {
    transform: translateY(-20px) scaleY(1.1) scaleX(0.92) rotate(4deg);
  }
  70% {
    transform: translateY(-2px) scaleY(0.9) scaleX(1.1) rotate(-2deg);
  }
  85% {
    transform: translateY(-14px) scaleY(1.06) scaleX(0.95) rotate(2deg);
  }
}

.mc--biaoqing .mc__rig,
.mc--pandahead .mc__rig {
  animation: mcbounce calc(var(--beat, 0.48s) * 1.55) cubic-bezier(0.35, 0.02, 0.45, 1) infinite;
  animation-delay: var(--delay, 0s);
}

/* hey — nhún lấy đà, bật cao hẳn lên rồi xoay hai vòng quanh trục đứng
   (xoay ngang như con quay, không phải lộn nhào) — comment "hey" / "1" / "2" */
@keyframes mchey {
  0% { transform: perspective(760px) translateY(0) rotateY(0deg) scale(1, 1); }
  10% { transform: perspective(760px) translateY(8px) rotateY(0deg) scale(1.2, 0.78); }
  28% { transform: perspective(760px) translateY(-104px) rotateY(200deg) scale(0.88, 1.18); }
  46% { transform: perspective(760px) translateY(-146px) rotateY(430deg) scale(0.95, 1.07); }
  64% { transform: perspective(760px) translateY(-108px) rotateY(620deg) scale(1, 1); }
  82% { transform: perspective(760px) translateY(0) rotateY(720deg) scale(1.22, 0.78); }
  92% { transform: perspective(760px) translateY(-14px) rotateY(720deg) scale(0.97, 1.05); }
  100% { transform: perspective(760px) translateY(0) rotateY(720deg) scale(1, 1); }
}
.mc.is-hey .mc__rig,
.mc--sticker.is-hey .mc__rig,
.mc--biaoqing.is-hey .mc__rig,
.iso-actor.is-hey .mc__rig {
  animation: mchey 1.06s cubic-bezier(0.3, 0.02, 0.32, 1) infinite !important;
  /* Nhảy ngay khi vừa gõ, không chờ nhịp lệch của đám đông */
  animation-delay: 0s !important;
  transform-origin: 50% 100%;
  backface-visibility: visible;
}
.iso-actor.is-hey {
  filter: drop-shadow(0 0 14px rgba(255, 46, 136, 0.85)) drop-shadow(0 0 8px rgba(0, 229, 255, 0.6));
  z-index: 40 !important;
}

/* Đầu bob riêng — giống clip meme nhảy */
.mc--pandahead .ph,
.mc--biaoqing .mc__head {
  animation: mcHeadBob calc(var(--beat, 0.48s) * 1.55) ease-in-out infinite;
  animation-delay: var(--delay, 0s);
  transform-origin: center bottom;
}

@keyframes mcHeadBob {
  0%, 100% { transform: translateY(0) rotate(-5deg); }
  25% { transform: translateY(-8px) rotate(4deg); }
  50% { transform: translateY(-2px) rotate(6deg); }
  75% { transform: translateY(-9px) rotate(-3deg); }
}

/* Áo / váy đung đưa */
.mc--pandahead .mc__body,
.mc--biaoqing .mc__body {
  animation: mcCloth calc(var(--beat, 0.48s) * 1.55) ease-in-out infinite;
  animation-delay: var(--delay, 0s);
  transform-origin: center top;
}

@keyframes mcCloth {
  0%, 100% { transform: skewX(-7deg) scaleY(1) rotate(-2deg); }
  50% { transform: skewX(8deg) scaleY(1.06) rotate(2deg); }
}

.mc__body--dress {
  animation-name: mcSkirt !important;
}
@keyframes mcSkirt {
  0%, 100% { transform: skewX(-12deg) rotate(-5deg) scaleX(1.05); }
  50% { transform: skewX(12deg) rotate(5deg) scaleX(0.95); }
}

@keyframes mcshuffle {
  0%, 100% { transform: translate(-4px, 0) rotate(-2deg); }
  50% { transform: translate(4px, -6px) rotate(2deg); }
}
@keyframes mcwave {
  0%, 100% { transform: translateY(0) rotate(-3deg); }
  50% { transform: translateY(-8px) rotate(3deg); }
}
@keyframes mcspin {
  0%, 100% { transform: rotateY(-25deg) translateY(0); }
  50% { transform: rotateY(25deg) translateY(-6px); }
}
@keyframes mcrobot {
  0%, 40% { transform: translateX(-3px); }
  41%, 80% { transform: translateY(-6px); }
  81%, 100% { transform: translateX(3px); }
}
@keyframes mchips {
  0%, 100% { transform: rotate(-6deg); }
  50% { transform: rotate(6deg); }
}
@keyframes mcjumpstyle {
  0%, 100% { transform: translateY(0); }
  40% { transform: translateY(-16px); }
  60% { transform: translateY(-2px); }
}

/* Go-go trong lồng — thân nhún loạn */
@keyframes mcgogo {
  0%, 100% { transform: translateY(0) scaleY(1) scaleX(1) rotate(-3deg); }
  12% { transform: translateY(-18px) scaleY(1.14) scaleX(0.88) rotate(8deg); }
  24% { transform: translateY(-2px) scaleY(0.82) scaleX(1.16) rotate(-10deg); }
  36% { transform: translateY(-20px) scaleY(1.12) scaleX(0.9) rotate(6deg); }
  48% { transform: translateY(0) scaleY(0.88) scaleX(1.14) rotate(-4deg); }
  60% { transform: translateY(-16px) scaleY(1.1) scaleX(0.92) rotate(10deg); }
  72% { transform: translateY(-4px) scaleY(0.9) scaleX(1.1) rotate(-8deg); }
  86% { transform: translateY(-14px) scaleY(1.08) scaleX(0.94) rotate(5deg); }
}
@keyframes mcGogoArmL {
  0% { transform: rotate(70deg) translateY(0); }
  20% { transform: rotate(-110deg) translateY(-16px); }
  40% { transform: rotate(95deg) translateY(6px); }
  60% { transform: rotate(-95deg) translateY(-18px); }
  80% { transform: rotate(120deg) translateY(-4px); }
  100% { transform: rotate(70deg) translateY(0); }
}
@keyframes mcGogoArmR {
  0% { transform: rotate(-70deg) translateY(0); }
  20% { transform: rotate(110deg) translateY(-16px); }
  40% { transform: rotate(-95deg) translateY(6px); }
  60% { transform: rotate(95deg) translateY(-18px); }
  80% { transform: rotate(-120deg) translateY(-4px); }
  100% { transform: rotate(-70deg) translateY(0); }
}
@keyframes mcGogoLegL {
  0%, 100% { transform: rotate(35deg) translateY(0); }
  25% { transform: rotate(-40deg) translateY(-8px); }
  50% { transform: rotate(45deg) translateY(2px); }
  75% { transform: rotate(-30deg) translateY(-6px); }
}
@keyframes mcGogoLegR {
  0%, 100% { transform: rotate(-35deg) translateY(0); }
  25% { transform: rotate(40deg) translateY(-8px); }
  50% { transform: rotate(-45deg) translateY(2px); }
  75% { transform: rotate(30deg) translateY(-6px); }
}

.mc--gogo .mc__rig {
  animation: mcgogo calc(var(--beat, 0.3s) * 1.35) cubic-bezier(0.3, 0.02, 0.4, 1) infinite !important;
}
.mc--gogo .mc__arm--l {
  animation: mcGogoArmL calc(var(--beat, 0.3s) * 0.85) linear infinite !important;
  transform-origin: top center;
}
.mc--gogo .mc__arm--r {
  animation: mcGogoArmR calc(var(--beat, 0.3s) * 0.85) linear infinite !important;
  transform-origin: top center;
}
.mc--gogo .mc__leg--l {
  animation: mcGogoLegL calc(var(--beat, 0.3s) * 0.9) ease-in-out infinite !important;
  transform-origin: top center;
}
.mc--gogo .mc__leg--r {
  animation: mcGogoLegR calc(var(--beat, 0.3s) * 0.9) ease-in-out infinite !important;
  transform-origin: top center;
}
.mc--gogo .bq__head {
  animation: mcHeadBob calc(var(--beat, 0.3s) * 1.1) ease-in-out infinite !important;
}

/* Bikini go-go */
.mc--bikini .bq__body--bikini {
  position: absolute;
  left: 50%;
  bottom: 34px;
  width: 34px;
  height: 42px;
  margin-left: -17px;
  background: linear-gradient(180deg, var(--body, #ffe0c2), #f0c3a6);
  border: 2.5px solid #111;
  border-radius: 12px 12px 8px 8px;
  z-index: 3;
}
.bq__mesh {
  position: absolute;
  inset: -2px -4px 8px;
  border: 2px solid rgba(255, 255, 255, 0.35);
  border-bottom: none;
  border-radius: 10px 10px 0 0;
  background:
    repeating-linear-gradient(90deg, transparent 0 3px, rgba(255, 255, 255, 0.12) 3px 4px),
    repeating-linear-gradient(0deg, transparent 0 3px, rgba(255, 255, 255, 0.08) 3px 4px);
  opacity: 0.75;
  pointer-events: none;
}
.bq__bi-top {
  position: absolute;
  top: 4px;
  left: 50%;
  width: 28px;
  height: 14px;
  margin-left: -14px;
  background:
    linear-gradient(90deg, transparent 8%, var(--bikini, #facc15) 8% 92%, transparent 92%) center 1px / 100% 2.5px no-repeat,
    radial-gradient(circle at 28% 65%, var(--bikini, #facc15) 0 48%, transparent 49%),
    radial-gradient(circle at 72% 65%, var(--bikini, #facc15) 0 48%, transparent 49%);
  filter: drop-shadow(0 0 1px #111);
  z-index: 2;
}
.mc--bikini-male .bq__bi-top,
.mc--bikini-male .bq__mesh { display: none; }
.bq__bi-bottom {
  position: absolute;
  left: 3px;
  right: 3px;
  bottom: 2px;
  height: 11px;
  background: linear-gradient(180deg, var(--bikini, #facc15), color-mix(in srgb, var(--bikini, #facc15) 70%, #000));
  border: 2px solid #111;
  border-radius: 3px 3px 8px 8px;
  clip-path: polygon(0 0, 100% 0, 78% 100%, 22% 100%);
  z-index: 2;
}
.mc--bikini .mc__arm--bare {
  background: linear-gradient(180deg, var(--body, #ffe0c2), #f0c3a6);
  border: 2.5px solid #111;
  border-radius: 8px;
  width: 12px;
  height: 42px;
}
.mc--bikini .mc__arm--bare .bq__sleeve { display: none; }
.mc--bikini .mc__arm--bare .bq__hand {
  background: var(--body, #ffe0c2);
}
.mc--bikini .mc__leg--bare {
  background: linear-gradient(180deg, var(--body, #ffe0c2) 0 55%, #f5f5f5 55%);
  border: 2.5px solid #111;
  height: 30px;
}
.bq__boot {
  position: absolute;
  bottom: 0;
  width: 16px;
  height: 22px;
  background:
    linear-gradient(180deg, #f8fafc 0 70%, #e2e8f0 70%);
  border: 2.5px solid #111;
  border-radius: 5px 5px 3px 8px;
  z-index: 2;
  box-shadow: inset 0 -4px 0 rgba(0, 0, 0, 0.12);
}
.bq__boot--l { left: 36px; }
.bq__boot--r { right: 36px; transform: scaleX(-1); }
.mc--bikini .bq__shoe { display: none; }
/* Tay vẫy cao kiểu quẩy club / video mẫu */
@keyframes mcArmL {
  0%, 100% { transform: rotate(45deg) translateY(0); }
  25% { transform: rotate(-75deg) translateY(-10px); }
  50% { transform: rotate(55deg) translateY(4px); }
  75% { transform: rotate(-90deg) translateY(-14px); }
}
@keyframes mcArmR {
  0%, 100% { transform: rotate(-45deg) translateY(0); }
  25% { transform: rotate(75deg) translateY(-10px); }
  50% { transform: rotate(-55deg) translateY(4px); }
  75% { transform: rotate(90deg) translateY(-14px); }
}
@keyframes mcLegL {
  0%, 100% { transform: rotate(22deg) translateY(0); }
  50% { transform: rotate(-28deg) translateY(-4px); }
}
@keyframes mcLegR {
  0%, 100% { transform: rotate(-22deg) translateY(0); }
  50% { transform: rotate(28deg) translateY(-4px); }
}

/* Tăng nhịp tay/chân cho pack meme */
.mc--pandahead .mc__arm--l,
.mc--biaoqing .mc__arm--l {
  animation: mcArmL calc(var(--beat, 0.48s) * 0.92) ease-in-out infinite;
  animation-delay: var(--delay, 0s);
}
.mc--pandahead .mc__arm--r,
.mc--biaoqing .mc__arm--r {
  animation: mcArmR calc(var(--beat, 0.48s) * 0.92) ease-in-out infinite;
  animation-delay: calc(var(--delay, 0s) + 0.08s);
}
.mc--pandahead .mc__leg--l,
.mc--biaoqing .mc__leg--l {
  animation: mcLegL calc(var(--beat, 0.48s) * 0.92) ease-in-out infinite;
  animation-delay: var(--delay, 0s);
}
.mc--pandahead .mc__leg--r,
.mc--biaoqing .mc__leg--r {
  animation: mcLegR calc(var(--beat, 0.48s) * 0.92) ease-in-out infinite;
  animation-delay: calc(var(--delay, 0s) + 0.08s);
}

/* ============================================================
   Sticker meme (từ /meme) — sprite webp đã cắt nền
   ============================================================ */
.mc--sticker {
  /* Khung cố định — sprite chuẩn hóa chiều cao 220px khi cắt */
  width: 150px;
  height: 210px;
}
.mc--sticker .bq__sprite-wrap {
  position: absolute;
  left: 50%;
  bottom: 6px;
  width: 144px;
  height: 196px;
  margin-left: -72px;
  z-index: 4;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  isolation: isolate;
  filter: drop-shadow(0 3px 2px rgba(0, 0, 0, 0.5));
}
.mc--sticker .bq__sprite {
  /* Nới bề ngang cho panda dang tay / meme nhóm khỏi bị bóp lùn, nhưng vẫn
     phải chặn: bỏ hẳn thì meme bán thân sẽ thành cái đầu to tướng. */
  max-width: 178px;
  max-height: 192px;
  width: auto;
  height: auto;
  object-fit: contain;
  object-position: bottom center;
  image-rendering: auto;
  pointer-events: none;
  user-select: none;
  /* Không boost contrast/brightness — giữ mắt mũi xám trên mặt trắng */
  filter: drop-shadow(0 0 0.4px rgba(0, 0, 0, 0.55));
  -webkit-backface-visibility: hidden;
  opacity: 1;
}
.mc--sticker .bq__ground {
  position: absolute;
  left: 50%;
  bottom: 2px;
  width: 76px;
  height: 16px;
  margin-left: -38px;
  border-radius: 50%;
  background: radial-gradient(ellipse, rgba(0, 0, 0, 0.5), transparent 70%);
  z-index: 1;
}
/* ---- Động tác theo tư thế tay sẵn có của meme ---- */
.mc--sticker[class*="mc--pose-"] .mc__rig {
  transform-origin: 50% 100%;
  animation-delay: var(--delay, 0s);
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
}

/* Giơ tay lên trời — quẩy cao, phất qua lại */
.mc--sticker.mc--pose-up .mc__rig {
  animation-name: mcPoseUp;
  animation-duration: calc(var(--beat, 0.48s) * 2.6);
}
@keyframes mcPoseUp {
  0%, 100% { transform: translateY(0) rotate(-3.5deg); }
  25% { transform: translateY(-17px) rotate(3.5deg) scale(1.035); }
  50% { transform: translateY(-3px) rotate(4.5deg); }
  75% { transform: translateY(-13px) rotate(-4.5deg) scale(1.025); }
}

/* Dang tay / xoay tay — xoay thân qua lại quanh gót chân */
.mc--sticker.mc--pose-wide .mc__rig {
  animation-name: mcPoseWide;
  animation-duration: calc(var(--beat, 0.48s) * 3.1);
}
@keyframes mcPoseWide {
  0%, 100% { transform: rotate(-8deg) translateY(0); }
  30% { transform: rotate(2deg) translateY(-8px); }
  50% { transform: rotate(8deg) translateY(-2px); }
  80% { transform: rotate(-2deg) translateY(-7px); }
}

/* Khoanh tay / chéo tay — lắc vai tại chỗ, không nhảy cao */
.mc--sticker.mc--pose-cross .mc__rig {
  animation-name: mcPoseCross;
  animation-duration: calc(var(--beat, 0.48s) * 2.2);
}
@keyframes mcPoseCross {
  0%, 100% { transform: translateX(-5px) rotate(-2.5deg); }
  50% { transform: translateX(5px) rotate(2.5deg) translateY(-5px); }
}

/* Vỗ tay — nhún đôi theo nhịp */
.mc--sticker.mc--pose-clap .mc__rig {
  animation-name: mcPoseClap;
  animation-duration: calc(var(--beat, 0.48s) * 2);
}
@keyframes mcPoseClap {
  0%, 100% { transform: translateY(0) scaleY(1); }
  14% { transform: translateY(-12px) scaleY(1.05); }
  28% { transform: translateY(0) scaleY(0.96); }
  42% { transform: translateY(-10px) scaleY(1.04); }
  56% { transform: translateY(0) scaleY(0.97); }
  70% { transform: translateY(-4px) scaleY(1.01); }
}

/* Panda 熊猫头 — clip đã nhảy sẵn, chỉ nhún nhẹ theo nhịp cho khớp nền nhạc */
.mc--sticker.mc--pose-panda .mc__rig {
  animation-name: mcPosePanda;
  animation-duration: calc(var(--beat, 0.48s) * 2.4);
}
@keyframes mcPosePanda {
  0%, 100% { transform: translateY(0) rotate(-1.5deg); }
  50% { transform: translateY(-7px) rotate(1.5deg); }
}
.mc--panda .bq__ground {
  width: 88px;
}

/* Tay thu — nhún cơ bản */
.mc--sticker.mc--pose-tuck .mc__rig {
  animation-name: mcPoseTuck;
  animation-duration: calc(var(--beat, 0.48s) * 1.7);
}
@keyframes mcPoseTuck {
  0%, 100% { transform: translateY(0) scaleY(1) rotate(-1deg); }
  50% { transform: translateY(-11px) scaleY(1.03) rotate(1deg); }
}

/* Nhà sư ngồi thiền — không nhảy, chỉ đưa người theo nhịp */
.mc--sticker.mc--pose-sit .mc__rig {
  animation-name: mcPoseSit;
  animation-duration: calc(var(--beat, 0.48s) * 4.4);
}
@keyframes mcPoseSit {
  0%, 100% { transform: translateY(0) rotate(-2.5deg); }
  50% { transform: translateY(-4px) rotate(2.5deg); }
}

/* Cặp ôm nhau / màn đánh nhau — lắc mạnh hơn, có nhịp giật */
.mc--sticker.mc--pose-duo .mc__rig {
  animation-name: mcPoseDuo;
  animation-duration: calc(var(--beat, 0.48s) * 2);
}
@keyframes mcPoseDuo {
  0%, 100% { transform: translateX(-4px) rotate(-4deg); }
  18% { transform: translateX(3px) rotate(3deg) translateY(-9px); }
  40% { transform: translateX(-2px) rotate(-2deg) translateY(-2px); }
  62% { transform: translateX(5px) rotate(4.5deg) translateY(-10px) scale(1.03); }
}

.mc--sticker.mc--glow .bq__sprite-wrap {
  filter:
    drop-shadow(0 0 10px rgba(0, 229, 255, 0.75))
    drop-shadow(0 2px 0 rgba(0, 0, 0, 0.4));
}
.mc--sticker .mc__crown--sticker {
  position: absolute;
  left: 50%;
  top: -4px;
  width: 28px;
  height: 20px;
  margin-left: -14px;
  z-index: 8;
  background: linear-gradient(180deg, #facc15, #eab308);
  border: 2px solid #111;
  clip-path: polygon(10% 100%, 0 35%, 25% 55%, 50% 0, 75% 55%, 100% 35%, 90% 100%);
}
.mc--sticker .mc__wings {
  bottom: 40px;
}

/* ============================================================
   表情包 Biaoqing CSS fallback — đầu nấm + quần áo sticker
   ============================================================ */
.mc--biaoqing {
  width: 120px;
  height: 178px;
}
.mc--biaoqing.mc--sticker {
  width: 130px;
  height: 190px;
}

.mc--biaoqing .bq__head {
  position: absolute;
  left: 50%;
  bottom: 48px;
  width: 102px;
  height: 98px;
  margin-left: -51px;
  z-index: 5;
}

/* Tóc nấm (蘑菇头) — khối đen tròn trên đầu, đặc trưng 表情包 */
.bq__hair {
  position: absolute;
  left: -2px;
  right: -2px;
  top: -14px;
  height: 52px;
  background: #0e0e0e;
  border: 3.5px solid #050505;
  border-bottom: none;
  border-radius: 54px 54px 18px 18px;
  z-index: 2;
  box-shadow:
    inset 0 -8px 0 rgba(255, 255, 255, 0.05),
    0 4px 0 rgba(0, 0, 0, 0.25);
}
.bq__hair--spiky {
  clip-path: polygon(0 40%, 8% 0, 18% 28%, 30% 0, 42% 26%, 50% 0, 58% 26%, 70% 0, 82% 28%, 92% 0, 100% 40%, 100% 100%, 0 100%);
  height: 46px;
  top: -10px;
}
.bq__hair--side {
  border-radius: 40px 52px 14px 8px;
}

.bq__bang {
  position: absolute;
  left: 14px;
  right: 14px;
  top: 24px;
  height: 18px;
  background: #121212;
  z-index: 3;
  clip-path: polygon(0 0, 100% 0, 94% 100%, 78% 62%, 50% 100%, 22% 62%, 6% 100%);
}
.bq__bang--spiky {
  clip-path: polygon(0 0, 100% 0, 90% 100%, 70% 40%, 50% 100%, 30% 40%, 10% 100%);
}

.bq__face {
  position: absolute;
  inset: 4px 4px 2px;
  border-radius: 50%;
  /* Mặt meme full trắng */
  background: #ffffff;
  border: 3px solid #111;
  box-shadow: 0 3px 0 rgba(0, 0, 0, 0.2);
  overflow: hidden;
  z-index: 1;
}
.bq__face--photo {
  background: #222;
}
.bq__photo {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.bq__brow {
  position: absolute;
  top: 36px;
  width: 16px;
  height: 4px;
  background: #111;
  border-radius: 2px;
  z-index: 4;
}
.bq__brow--l { left: 18px; transform: rotate(10deg); }
.bq__brow--r { right: 18px; transform: rotate(-10deg); }

.bq__eye {
  position: absolute;
  top: 44px;
  width: 12px;
  height: 14px;
  background: #111;
  border-radius: 50%;
  z-index: 4;
}
.bq__eye--l { left: 22px; }
.bq__eye--r { right: 22px; }
.bq__eye::after {
  content: "";
  position: absolute;
  top: 2px;
  left: 2px;
  width: 4px;
  height: 4px;
  background: #fff;
  border-radius: 50%;
}

.bq__nose {
  position: absolute;
  left: 50%;
  top: 56px;
  width: 6px;
  height: 4px;
  margin-left: -3px;
  background: #e8b4a0;
  border-radius: 50%;
  z-index: 4;
}

.bq__mouth {
  position: absolute;
  left: 50%;
  bottom: 14px;
  width: 20px;
  height: 11px;
  margin-left: -10px;
  border: 3px solid #111;
  border-top: none;
  border-radius: 0 0 14px 14px;
  z-index: 4;
}

.bq__blush {
  position: absolute;
  top: 54px;
  width: 12px;
  height: 7px;
  border-radius: 50%;
  background: rgba(255, 120, 140, 0.45);
  z-index: 3;
}
.bq__blush--l { left: 10px; }
.bq__blush--r { right: 10px; }

/* Biểu cảm sticker */
.bq__face--cool .bq__eye {
  height: 3px;
  top: 50px;
  border-radius: 2px;
}
.bq__face--cool .bq__eye::after { display: none; }
.bq__face--cool .bq__brow--l { transform: rotate(18deg); }
.bq__face--cool .bq__brow--r { transform: rotate(-18deg); }

.bq__face--wow .bq__mouth {
  width: 18px;
  height: 18px;
  margin-left: -9px;
  border-radius: 50%;
  border: 3px solid #111;
  background: #3a2030;
  bottom: 12px;
}
.bq__face--wow .bq__eye { height: 16px; top: 40px; }

.bq__face--smug .bq__mouth {
  border: none;
  height: 3px;
  width: 22px;
  margin-left: -11px;
  background: #111;
  transform: rotate(-14deg);
  bottom: 18px;
}
.bq__face--smug .bq__brow--l { transform: rotate(-8deg); top: 34px; }
.bq__face--smug .bq__brow--r { transform: rotate(12deg); }

.bq__face--sideeye .bq__eye--l { left: 30px; }
.bq__face--sideeye .bq__eye--r { right: 12px; }
.bq__face--sideeye .bq__mouth {
  border: none;
  height: 3px;
  width: 14px;
  margin-left: -2px;
  background: #111;
}

.bq__face--flat .bq__eye {
  height: 3px;
  top: 50px;
  border-radius: 1px;
}
.bq__face--flat .bq__eye::after { display: none; }
.bq__face--flat .bq__mouth {
  border: none;
  height: 3px;
  width: 18px;
  margin-left: -9px;
  background: #111;
  bottom: 18px;
}

.bq__face--happy .bq__mouth {
  height: 12px;
  border-radius: 0 0 16px 16px;
}
.bq__face--happy .bq__eye {
  height: 6px;
  border-radius: 0 0 8px 8px;
  top: 46px;
}
.bq__face--happy .bq__eye::after { display: none; }

.bq__face--angry .bq__brow--l { transform: rotate(-18deg); top: 34px; }
.bq__face--rage .bq__brow--r { transform: rotate(18deg); top: 34px; }
.bq__face--rage .bq__mouth {
  border: none;
  width: 22px;
  height: 10px;
  margin-left: -11px;
  background: #3a2030;
  border: 2px solid #111;
  border-radius: 4px 4px 10px 10px;
  bottom: 12px;
}

.bq__face--cry .bq__eye {
  height: 10px;
  width: 10px;
  top: 46px;
}
.bq__face--cry .bq__mouth {
  width: 14px;
  height: 14px;
  margin-left: -7px;
  border-radius: 50%;
  background: #3a2030;
  bottom: 12px;
}
.bq__face--cry .bq__blush {
  width: 3px;
  height: 14px;
  border-radius: 2px;
  background: #5eb8ff;
  top: 58px;
}

/* Thân + quần áo sticker viền dày */
.mc--biaoqing .bq__body {
  position: absolute;
  left: 50%;
  bottom: 26px;
  width: 40px;
  height: 44px;
  margin-left: -20px;
  background: linear-gradient(180deg, var(--main), var(--body));
  border: 3px solid #111;
  border-radius: 12px 12px 10px 10px;
  z-index: 3;
  box-shadow: inset 0 -10px 0 rgba(0, 0, 0, 0.12);
}

.bq__hood {
  position: absolute;
  left: -8px;
  right: -8px;
  top: -10px;
  height: 18px;
  background: var(--main);
  border: 3px solid #111;
  border-bottom: none;
  border-radius: 16px 16px 0 0;
  z-index: 0;
}
.bq__hood::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -2px;
  width: 22px;
  height: 10px;
  margin-left: -11px;
  border: 2px solid #111;
  border-top: none;
  border-radius: 0 0 10px 10px;
  background: var(--body);
}

.bq__stripe {
  position: absolute;
  left: 0;
  right: 0;
  top: 12px;
  height: 8px;
  background: var(--trim);
  border-top: 2px solid #111;
  border-bottom: 2px solid #111;
}
.bq__num {
  position: absolute;
  left: 50%;
  top: 22px;
  transform: translateX(-50%);
  font-size: 14px;
  font-weight: 900;
  color: var(--trim);
  text-shadow: 0 1px 0 #111;
  line-height: 1;
}

.bq__skirt {
  position: absolute;
  left: -6px;
  right: -6px;
  bottom: -10px;
  height: 18px;
  background: linear-gradient(180deg, var(--main), var(--body));
  border: 3px solid #111;
  border-top: none;
  border-radius: 0 0 16px 16px;
  animation: mcSkirt calc(var(--beat, 0.48s) * 1.5) ease-in-out infinite;
  transform-origin: top center;
}

.bq__collar {
  position: absolute;
  left: 4px;
  right: 4px;
  top: 2px;
  height: 10px;
  background: var(--trim);
  border: 2px solid #111;
  border-radius: 2px;
  clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%);
}
.bq__tie {
  position: absolute;
  left: 50%;
  top: 10px;
  width: 8px;
  height: 18px;
  margin-left: -4px;
  background: #e11d48;
  border: 2px solid #111;
  clip-path: polygon(20% 0, 80% 0, 100% 100%, 0 100%);
}

.bq__strap {
  position: absolute;
  top: 0;
  width: 8px;
  height: 14px;
  background: var(--trim);
  border: 2px solid #111;
}
.bq__strap--l { left: 4px; }
.bq__strap--r { right: 4px; }

.mc--biaoqing .bq__body--skirt {
  border-radius: 12px 12px 4px 4px;
  height: 38px;
}
.mc--biaoqing .bq__body--tank {
  width: 36px;
  margin-left: -18px;
  border-radius: 10px 10px 8px 8px;
}

/* Tay / chân / giày kiểu sticker */
.mc--biaoqing .mc__arm {
  width: 14px;
  height: 40px;
  bottom: 40px;
  background: transparent;
  border: none;
  z-index: 6;
}
.mc--biaoqing .mc__arm--l { left: -4px; }
.mc--biaoqing .mc__arm--r { right: -4px; }
.mc--biaoqing .mc__arm::before { display: none; }
.mc--biaoqing .mc__arm::after { display: none; }

.bq__sleeve {
  position: absolute;
  left: 0;
  top: 0;
  width: 14px;
  height: 22px;
  background: var(--main);
  border: 2.5px solid #111;
  border-radius: 7px 7px 4px 4px;
  display: block;
}
.bq__hand {
  position: absolute;
  left: 0;
  bottom: 0;
  width: 14px;
  height: 14px;
  background: #ffe0c2;
  border: 2.5px solid #111;
  border-radius: 50%;
  display: block;
}

.mc--biaoqing .mc__leg {
  width: 14px;
  height: 26px;
  background: #1a1a1a;
  border: 2.5px solid #111;
  border-radius: 5px;
  z-index: 1;
}
.mc--biaoqing .mc__leg--l { left: 38px; }
.mc--biaoqing .mc__leg--r { right: 38px; }

.bq__shoe {
  position: absolute;
  bottom: 0;
  width: 18px;
  height: 10px;
  background: #111;
  border: 2px solid #0a0a0a;
  border-radius: 4px 8px 4px 4px;
  z-index: 2;
}
.bq__shoe--l { left: 34px; }
.bq__shoe--r { right: 34px; transform: scaleX(-1); }

/* Glowstick cầm tay — giống clip DJ Bar */
.bq__stick {
  position: absolute;
  bottom: 70px;
  width: 6px;
  height: 28px;
  border-radius: 3px;
  border: 2px solid #111;
  z-index: 7;
  animation: bqStick 0.45s ease-in-out infinite;
}
.bq__stick--l {
  left: 2px;
  background: linear-gradient(180deg, #ff2e88, #ff9ed0);
  box-shadow: 0 0 10px #ff2e88;
  animation-delay: var(--delay, 0s);
}
.bq__stick--r {
  right: 2px;
  background: linear-gradient(180deg, #facc15, #fde047);
  box-shadow: 0 0 10px #facc15;
  animation-delay: calc(var(--delay, 0s) + 0.1s);
}
@keyframes bqStick {
  0%, 100% { transform: rotate(-25deg) translateY(0); }
  50% { transform: rotate(35deg) translateY(-8px); }
}

.mc--biaoqing .bq__head {
  animation: mcHeadBob calc(var(--beat, 0.48s) * 1.55) ease-in-out infinite;
  animation-delay: var(--delay, 0s);
  transform-origin: center bottom;
}
.mc--biaoqing .bq__body {
  animation: mcCloth calc(var(--beat, 0.48s) * 1.55) ease-in-out infinite;
  animation-delay: var(--delay, 0s);
  transform-origin: center top;
}
.mc--biaoqing.mc--glow .bq__face {
  box-shadow: 0 0 18px rgba(0, 229, 255, 0.75), inset 0 -12px 0 rgba(0, 0, 0, 0.03);
}
