/* Spielerkarte: Mittelpunkt sitzt auf der gespeicherten Position, Größe über --s. */
.pcard {
  position: absolute; transform: translate(-50%, -50%) scale(var(--s, 1));
  display: flex; flex-direction: column; align-items: center; gap: 6px;
  user-select: none; transition: filter 0.2s, opacity 0.2s;
}
.pbuzz { position: relative; width: 150px; }
.pbuzz img { display: block; width: 100%; pointer-events: none; }
.pbuzz .base { position: relative; z-index: 2; }
.pbuzz .dome { position: absolute; top: 0; left: 0; z-index: 1; transition: transform 0.1s ease-out; }

.pplate {
  display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 14px; min-width: 250px;
  padding: 8px 16px 8px 14px; border-radius: 14px;
  background: rgba(231, 245, 234, 0.95); border: 3px solid #a3d1b2; border-left: 10px solid var(--pc);
  box-shadow: 0 6px 18px rgba(16, 41, 29, 0.25); color: #163a2a;
}
.pname { font-family: var(--display); font-weight: 800; font-size: 28px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 230px; }
.ppts { font-family: var(--mono); font-size: 30px; color: #2b7a50; }

/* Quiz: freigegeben / Erster / gesperrt */
.pcard.armed .pbuzz { filter: drop-shadow(0 0 16px #f5a524); }
.pcard.armed .dome { animation: pc-pulse 1.2s ease-in-out infinite; }
.pcard.won .pbuzz { filter: drop-shadow(0 0 18px var(--pc)) drop-shadow(0 0 34px var(--pc)); }
.pcard.won .dome, .pcard.stopped .dome { transform: translateY(7%); }
.pcard.won .pplate { border-color: var(--pc); }
.pcard.lost { filter: grayscale(0.7); opacity: 0.55; }
/* Stop at exact time */
.pcard.running .pbuzz { filter: drop-shadow(0 0 16px #2b7a50); }
.pcard.running .dome { animation: pc-pulse 0.6s ease-in-out infinite; }
@keyframes pc-pulse { 50% { filter: brightness(1.2); } }
