/* 이름 뽑기 */
.pk-layout { display: grid; gap: 24px; grid-template-columns: 1fr; align-items: start; }
@media (min-width: 860px) { .pk-layout { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); } }
.pk-layout.is-busy .pk-right { opacity: .55; pointer-events: none; }

/* 슬롯 창 */
.pk-reel {
  --row: 64px;
  position: relative; height: calc(var(--row) * 3); overflow: hidden; border-radius: var(--radius-lg);
  background: #1c1f2b; color: #f3f4f8;
  box-shadow: inset 0 0 0 4px #2b3042, 0 14px 34px rgba(0,0,0,.18);
}
.pk-reel::before, .pk-reel::after {
  content: ""; position: absolute; left: 0; right: 0; height: var(--row); z-index: 2; pointer-events: none;
}
.pk-reel::before { top: 0; background: linear-gradient(#1c1f2b 10%, rgba(28,31,43,.35)); }
.pk-reel::after { bottom: 0; background: linear-gradient(rgba(28,31,43,.35), #1c1f2b 90%); }
.pk-strip { will-change: transform; }
.pk-row {
  height: var(--row); line-height: var(--row); padding: 0 44px; text-align: center;
  font-size: clamp(22px, 6.4vw, 36px); font-weight: 900; letter-spacing: -0.02em;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.pk-row.is-win { color: #ffd66b; animation: pk-win .6s cubic-bezier(.2, 1.4, .4, 1); }
.pk-mark {
  position: absolute; left: 10px; right: 10px; top: var(--row); height: var(--row); z-index: 3; pointer-events: none;
  border-radius: 14px; border: 2px solid rgba(255, 214, 107, .75);
  background: rgba(255, 255, 255, .05);
}
.pk-mark::before, .pk-mark::after {
  content: ""; position: absolute; top: 50%; width: 0; height: 0; transform: translateY(-50%);
  border-top: 9px solid transparent; border-bottom: 9px solid transparent;
}
.pk-mark::before { left: 8px; border-left: 12px solid #ffd66b; }
.pk-mark::after { right: 8px; border-right: 12px solid #ffd66b; }
.pk-reel.pk-bump { animation: pk-bump .4s ease-out; }

.pk-live { margin: 0; text-align: center; font-weight: 700; color: var(--text-2); min-height: 1.5em; }

/* 당첨자 목록 */
.pk-winbox .row-between { gap: 6px; }
.pk-wtools { gap: 4px; }
.pk-winners { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 6px; max-height: 340px; overflow: auto; }
.pk-winners li {
  display: flex; align-items: center; gap: 10px; padding: 8px 12px; min-width: 0;
  background: var(--surface); border: 1px solid var(--border); border-radius: 12px; font-weight: 700;
}
.pk-winners li.is-new { animation: bb-pop .35s cubic-bezier(.2, 1.4, .4, 1); border-color: var(--primary); }
.pk-rank {
  flex: none; min-width: 28px; height: 28px; padding: 0 6px; border-radius: 999px; display: grid; place-items: center;
  background: var(--primary); color: #fff; font-size: 13px; font-weight: 900; font-family: var(--font-num);
}
.pk-wname { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

/* 명단 입력 */
.pk-ta { min-height: 168px; font-size: 15px; }
.pk-tools { display: flex; flex-wrap: wrap; gap: 6px; }
.pk-over { color: var(--danger); font-size: 13px; font-weight: 700; }

@keyframes pk-win { 0% { transform: scale(1); } 45% { transform: scale(1.16); } 100% { transform: scale(1); } }
@keyframes pk-bump { 0% { transform: scale(1); } 40% { transform: scale(1.025); } 100% { transform: scale(1); } }
@media (max-width: 520px) {
  .pk-reel { --row: 56px; }
  .pk-row { padding: 0 38px; }
}
.game-shell.is-full .pk-reel { --row: 84px; }
.game-shell.is-full .pk-row { font-size: clamp(28px, 6vw, 48px); }
