/* 派对桌游共用：米宝小人、宝石、木筹码（纯 CSS/SVG，无外部图） */

.meeple {
  --m: #4dabf7;
  display: inline-flex;
  flex-direction: column;
  align-items: center;
  gap: 0.15rem;
  vertical-align: middle;
  filter: drop-shadow(0 2px 0 rgba(0, 0, 0, 0.35));
  transition: transform 0.2s ease;
}
.meeple-fig {
  width: 1.7rem;
  height: 2.05rem;
  background: var(--m);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 52'%3E%3Cpath fill='%23000' d='M20 3.5c4.7 0 8.5 3.8 8.5 8.5S24.7 20.5 20 20.5 11.5 16.7 11.5 12 15.3 3.5 20 3.5zm-11.2 20.2c2.2-1.2 6.1-2.2 11.2-2.2s9 1 11.2 2.2c1.4.7 2.3 2.1 2.3 3.6v4.2l3.8 16.4c.2.9-.5 1.8-1.4 1.8h-6.2c-.7 0-1.3-.5-1.4-1.2L26.2 34l-1.5 13.3c-.1.7-.7 1.2-1.4 1.2h-8.6c-.7 0-1.3-.5-1.4-1.2L13.8 34l-2.1 14.5c-.1.7-.7 1.2-1.4 1.2H4.1c-.9 0-1.6-.9-1.4-1.8l3.8-16.4v-4.2c0-1.5.9-2.9 2.3-3.6z'/%3E%3C/svg%3E")
    center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 52'%3E%3Cpath fill='%23000' d='M20 3.5c4.7 0 8.5 3.8 8.5 8.5S24.7 20.5 20 20.5 11.5 16.7 11.5 12 15.3 3.5 20 3.5zm-11.2 20.2c2.2-1.2 6.1-2.2 11.2-2.2s9 1 11.2 2.2c1.4.7 2.3 2.1 2.3 3.6v4.2l3.8 16.4c.2.9-.5 1.8-1.4 1.8h-6.2c-.7 0-1.3-.5-1.4-1.2L26.2 34l-1.5 13.3c-.1.7-.7 1.2-1.4 1.2h-8.6c-.7 0-1.3-.5-1.4-1.2L13.8 34l-2.1 14.5c-.1.7-.7 1.2-1.4 1.2H4.1c-.9 0-1.6-.9-1.4-1.8l3.8-16.4v-4.2c0-1.5.9-2.9 2.3-3.6z'/%3E%3C/svg%3E")
    center / contain no-repeat;
  position: relative;
}
.meeple-fig::after {
  content: "";
  position: absolute;
  inset: 8% 18% 42% 18%;
  border-radius: 50%;
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.45), transparent 55%);
  pointer-events: none;
}
.meeple-name {
  max-width: 3.6rem;
  font-size: 0.68rem;
  font-weight: 800;
  line-height: 1.1;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: #fff;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.55);
}
.meeple.big .meeple-fig { width: 2.15rem; height: 2.55rem; }
.meeple.big .meeple-name { font-size: 0.78rem; max-width: 4.5rem; }
.meeple.current {
  animation: meepleBounce 0.9s ease-in-out infinite;
  filter: drop-shadow(0 0 6px rgba(255, 255, 255, 0.55)) drop-shadow(0 2px 0 rgba(0, 0, 0, 0.35));
}
.meeple.returning .meeple-fig {
  transform: scaleX(-1);
}
@keyframes meepleBounce {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}

.meeple.c0, .meeple.m0 { --m: #e03131; }
.meeple.c1, .meeple.m1 { --m: #1c7ed6; }
.meeple.c2, .meeple.m2 { --m: #2f9e44; }
.meeple.c3, .meeple.m3 { --m: #e8590c; }
.meeple.c4, .meeple.m4 { --m: #7048e8; }
.meeple.c5, .meeple.m5 { --m: #c2255c; }
.meeple.c6, .meeple.m6 { --m: #0c8599; }
.meeple.c7, .meeple.m7 { --m: #f59f00; }

.meeple-sm {
  display: inline-block;
  width: 1rem;
  height: 1.2rem;
  vertical-align: -0.15rem;
  background: var(--m, #4dabf7);
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 52'%3E%3Cpath fill='%23000' d='M20 3.5c4.7 0 8.5 3.8 8.5 8.5S24.7 20.5 20 20.5 11.5 16.7 11.5 12 15.3 3.5 20 3.5zm-11.2 20.2c2.2-1.2 6.1-2.2 11.2-2.2s9 1 11.2 2.2c1.4.7 2.3 2.1 2.3 3.6v4.2l3.8 16.4c.2.9-.5 1.8-1.4 1.8h-6.2c-.7 0-1.3-.5-1.4-1.2L26.2 34l-1.5 13.3c-.1.7-.7 1.2-1.4 1.2h-8.6c-.7 0-1.3-.5-1.4-1.2L13.8 34l-2.1 14.5c-.1.7-.7 1.2-1.4 1.2H4.1c-.9 0-1.6-.9-1.4-1.8l3.8-16.4v-4.2c0-1.5.9-2.9 2.3-3.6z'/%3E%3C/svg%3E")
    center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 52'%3E%3Cpath fill='%23000' d='M20 3.5c4.7 0 8.5 3.8 8.5 8.5S24.7 20.5 20 20.5 11.5 16.7 11.5 12 15.3 3.5 20 3.5zm-11.2 20.2c2.2-1.2 6.1-2.2 11.2-2.2s9 1 11.2 2.2c1.4.7 2.3 2.1 2.3 3.6v4.2l3.8 16.4c.2.9-.5 1.8-1.4 1.8h-6.2c-.7 0-1.3-.5-1.4-1.2L26.2 34l-1.5 13.3c-.1.7-.7 1.2-1.4 1.2h-8.6c-.7 0-1.3-.5-1.4-1.2L13.8 34l-2.1 14.5c-.1.7-.7 1.2-1.4 1.2H4.1c-.9 0-1.6-.9-1.4-1.8l3.8-16.4v-4.2c0-1.5.9-2.9 2.3-3.6z'/%3E%3C/svg%3E")
    center / contain no-repeat;
}

/* 宝石 */
.gem {
  --g1: #7dffb3;
  --g2: #2f9e44;
  display: inline-block;
  width: 0.85rem;
  height: 1.05rem;
  margin: 0 1px;
  background: linear-gradient(145deg, var(--g1), var(--g2));
  clip-path: polygon(50% 0%, 100% 28%, 82% 100%, 18% 100%, 0% 28%);
  box-shadow: 0 2px 0 rgba(0, 0, 0, 0.25);
  vertical-align: middle;
  position: relative;
}
.gem::after {
  content: "";
  position: absolute;
  left: 28%;
  top: 18%;
  width: 28%;
  height: 35%;
  background: rgba(255, 255, 255, 0.55);
  clip-path: polygon(0 0, 100% 0, 60% 100%, 0 70%);
}
.gem.gold { --g1: #ffe08a; --g2: #c4922a; }
.gem.ruby { --g1: #ff8a7a; --g2: #c4452a; }
.gem.sapphire { --g1: #7ec8ff; --g2: #1c7ed6; }
.gem.amethyst { --g1: #d0bfff; --g2: #7048e8; }
.gem.lg { width: 1.35rem; height: 1.65rem; }

.gem-pile {
  display: inline-flex;
  align-items: flex-end;
  gap: 0;
  min-height: 1.2rem;
}
.gem-pile .gem { margin-left: -0.2rem; }
.gem-pile .gem:first-child { margin-left: 0; }

/* 木制圆筹码 / 不点 */
.disk {
  display: inline-block;
  width: 1.15rem;
  height: 1.15rem;
  border-radius: 50%;
  background:
    radial-gradient(circle at 32% 28%, #ffe08a, #e0a020 52%, #a86e10 78%);
  border: 2px solid #fff3c0;
  box-shadow: 0 2px 0 rgba(0, 0, 0, 0.3), inset 0 0 0 2px rgba(120, 70, 0, 0.25);
  vertical-align: middle;
}
.disk-stack {
  display: inline-flex;
  align-items: center;
  position: relative;
  height: 1.4rem;
  min-width: 1.4rem;
}
.disk-stack .disk {
  position: absolute;
  left: 0;
}
.disk-stack .disk:nth-child(1) { top: 0.2rem; z-index: 1; }
.disk-stack .disk:nth-child(2) { top: 0.1rem; left: 0.12rem; z-index: 2; }
.disk-stack .disk:nth-child(3) { top: 0; left: 0.24rem; z-index: 3; }
.disk-stack .disk:nth-child(n + 4) { display: none; }

/* 海底宝藏砖 */
.treasure-orb {
  width: 2.4rem;
  height: 2.4rem;
  border-radius: 50%;
  margin: 0.15rem auto;
  display: grid;
  place-items: center;
  font-weight: 800;
  font-size: 0.85rem;
  color: #06304a;
  box-shadow:
    inset 0 -6px 10px rgba(0, 0, 0, 0.25),
    inset 0 4px 8px rgba(255, 255, 255, 0.35),
    0 4px 0 rgba(0, 0, 0, 0.3);
  border: 2px solid rgba(255, 255, 255, 0.35);
}
.treasure-orb.blank {
  background: linear-gradient(160deg, #8a96a3, #5a6570);
  color: rgba(255, 255, 255, 0.7);
  box-shadow: inset 0 0 0 2px rgba(0, 0, 0, 0.15), 0 3px 0 rgba(0, 0, 0, 0.25);
}
.treasure-orb.stack {
  border-radius: 12px;
  background: linear-gradient(160deg, #c9a44a, #7a5a20);
  color: #fff8e0;
}

/* 神庙神器小偶像 */
.idol {
  display: inline-block;
  width: 1.5rem;
  height: 1.8rem;
  background: linear-gradient(160deg, #ffe08a, #c4922a);
  clip-path: polygon(50% 0%, 78% 22%, 70% 100%, 30% 100%, 22% 22%);
  box-shadow: 0 2px 0 rgba(0, 0, 0, 0.25);
  vertical-align: middle;
}
