/* Party card games: playing cards, the projector table, and the phone controls. */
.pcard { display: block; width: 100%; height: auto; filter: drop-shadow(0 .4vh .6vh rgba(0,0,0,.45)); }
.pcard-wrap { display: inline-block; }
.pcard-wrap.is-new { animation: bj-deal .45s cubic-bezier(.2,.9,.3,1.2) both; animation-delay: var(--d, 0ms); }
@keyframes bj-deal { from { transform: translateY(-40%) rotate(-12deg) scale(.6); opacity: 0; } to { transform: none; opacity: 1; } }

/* ---------- projector ---------- */
#sc-games { padding: 15vh 2vw 2vh; }
.bj { display: grid; grid-template-columns: 1fr 22vw; gap: 2vw; height: 100%; }
.bj-main { display: grid; grid-template-rows: auto auto 1fr; gap: 1.6vh; min-height: 0; }
.bj-dealer { display: flex; align-items: center; gap: 2vw; padding: 1.4vh 2vw; border-radius: 14px;
    background: radial-gradient(ellipse at center, color-mix(in srgb, var(--ecto) 45%, #0b3d25) 0%, #0a2a1a 100%);
    border: .4vh solid color-mix(in srgb, var(--gold) 70%, transparent); box-shadow: inset 0 0 4vh rgba(0,0,0,.5); }
.bj-dealer-label { font-family: Rubik, Inter, sans-serif; font-weight: 900; font-size: 4vh; color: #fff; min-width: 16vw; display: grid; gap: .6vh; }
.bj-dealer-label b { font-size: 7vh; color: var(--gold); line-height: 1; }
.bj-rule { font-size: 1.7vh; font-weight: 700; color: color-mix(in srgb, #fff 70%, transparent); letter-spacing: .02em; }
.bj-cards { display: flex; gap: .6vw; }
.bj-cards.is-dealer .pcard-wrap { width: 9vh; }
.bj-banner { text-align: center; font-family: Rubik, Inter, sans-serif; font-weight: 900; font-size: 4.2vh; padding: 1vh 1vw; border-radius: 12px;
    background: var(--panel-2, #24242B); border: .3vh solid var(--pumpkin); }
.bj-banner.is-bet { border-color: var(--gold); }
.bj-banner.is-dealer { border-color: var(--violet); }
.bj-banner.is-done { border-color: var(--ecto); }
.bj-clock { display: inline-grid; place-items: center; min-width: 6vh; height: 6vh; margin-left: 1vw; border-radius: 50%; background: var(--pumpkin); color: #fff; font-size: 3.4vh; vertical-align: middle; }
.bj-next { font-size: 2.6vh; color: var(--muted, #A7A2B0); margin-left: 1vw; }
.bj-seats { display: grid; gap: 1.2vh 1vw; grid-template-columns: repeat(auto-fill, minmax(17vw, 1fr)); align-content: start; overflow: hidden; }
.bj-seat { background: var(--panel, #1C1C21); border-radius: 12px; padding: 1vh .8vw; border: .25vh solid transparent; display: grid; gap: .8vh; }
.bj-seat.is-playing { border-color: var(--gold); box-shadow: 0 0 2vh color-mix(in srgb, var(--gold) 35%, transparent); }
.bj-seat.res-win, .bj-seat.res-blackjack { border-color: var(--ecto); }
.bj-seat.res-lose, .bj-seat.is-busted { opacity: .75; filter: grayscale(.5); }
.bj-seat-top { display: flex; justify-content: space-between; align-items: center; font-size: 2.2vh; }
.bj-seat-top b { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bj-chip { color: var(--gold); font-weight: 800; }
.bj-seat .bj-cards .pcard-wrap { width: 5.6vh; margin-right: -1.4vh; }
.bj-seat-foot { display: flex; justify-content: space-between; align-items: center; }
.bj-total { font-family: Rubik, Inter, sans-serif; font-weight: 900; font-size: 3.2vh; }
.bj-badge { font-size: 1.8vh; font-weight: 800; padding: .3vh .6vw; border-radius: 6px; background: var(--panel-3, #2E2E37); }
.bj-badge.is-win, .bj-badge.is-blackjack { background: var(--ecto); color: #fff; }
.bj-badge.is-lose { background: var(--blood); color: #fff; }
.bj-badge.is-push { background: var(--violet); color: #fff; }
.bj-badge.is-thinking { background: var(--gold); color: #1a1400; animation: bj-pulse 1.2s ease-in-out infinite; }
@keyframes bj-pulse { 50% { opacity: .55; } }
.bj-empty { grid-column: 1 / -1; text-align: center; font-size: 3vh; color: var(--muted, #A7A2B0); padding: 6vh 0; }
.bj-leaders { background: var(--panel, #1C1C21); border-radius: 14px; padding: 2vh 1.2vw; overflow: hidden; }
.bj-leaders h3 { margin: 0 0 1.4vh; font-family: Rubik, Inter, sans-serif; font-weight: 900; font-size: 3vh; }
.bj-leaders ol { list-style: none; margin: 0; padding: 0; display: grid; gap: 1vh; }
.bj-leaders li { display: grid; grid-template-columns: 3.4vh 1fr auto; gap: .6vw; align-items: center; font-size: 2.3vh; }
.bj-rank { display: grid; place-items: center; width: 3.4vh; height: 3.4vh; border-radius: 50%; background: var(--panel-3, #2E2E37); font-weight: 800; font-size: 1.8vh; }
.bj-leaders li:nth-child(1) .bj-rank { background: var(--gold); color: #1a1400; }
.bj-lname { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.bj-leaders b { color: var(--gold); }

/* ---------- phone ---------- */
.bj-phone { text-align: center; display: grid; gap: .9rem; }
.bj-stack { font-size: 1rem; color: var(--muted, #A7A2B0); }
.bj-stack b { color: var(--gold); font-size: 1.2rem; }
.bj-say { margin: 0; font-weight: 700; font-size: 1.05rem; }
.bj-phone .bj-clock { width: 2.2rem; height: 2.2rem; min-width: 0; font-size: 1rem; margin-left: .4rem; }
.bj-bet-amt { font-family: Rubik, Inter, sans-serif; font-weight: 900; font-size: 3rem; color: var(--gold); line-height: 1; }
.bj-chip-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: .5rem; }
.bj-chip-btn { aspect-ratio: 1; border-radius: 50%; border: .3rem dashed rgba(255,255,255,.75); font-weight: 900; font-size: 1rem; color: #fff; cursor: pointer; }
.bj-chip-btn.c10 { background: #2E7BD6; } .bj-chip-btn.c50 { background: #C8102E; } .bj-chip-btn.c100 { background: #15151A; } .bj-chip-btn.c500 { background: #7A3FC4; }
.bj-chip-btn:disabled { opacity: .35; }
.bj-row { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.bj-big { font-size: 1.25rem; padding: .9rem; }
.bj-moves { display: grid; grid-template-columns: repeat(auto-fit, minmax(6rem, 1fr)); gap: .5rem; }
.bj-moves .is-double { background: var(--gold); color: #1a1400; }
.bj-my-cards { display: flex; justify-content: center; }
.bj-my-cards .pcard-wrap { width: 5.2rem; margin-right: -1.2rem; }
.bj-my-cards .pcard-wrap:last-child { margin-right: 0; }
.bj-my-total { font-family: Rubik, Inter, sans-serif; font-weight: 900; font-size: 2rem; }
.bj-result { font-family: Rubik, Inter, sans-serif; font-weight: 900; font-size: 1.8rem; padding: .8rem; border-radius: 10px; background: var(--panel-3, #2E2E37); display: grid; }
.bj-result span { font-size: 1rem; font-weight: 700; }
.bj-result.is-win, .bj-result.is-blackjack { background: var(--ecto); }
.bj-result.is-lose { background: var(--blood); }
.bj-result.is-push { background: var(--violet); }
@media (prefers-reduced-motion: reduce) { .pcard-wrap.is-new, .bj-badge.is-thinking { animation: none; } }
.bj-bust { font-size: 3.2vh; color: var(--blood); vertical-align: middle; }

/* ---------- Chip Leaders (projector) ---------- */
#sc-chips { padding: 15vh 6vw 3vh; }
.cb { max-width: 1400px; margin: 0 auto; }
.cb-head { display: flex; align-items: center; gap: 1.5vw; margin-bottom: 3vh; }
.cb-icon { font-size: 8vh; animation: bj-coin 2.4s ease-in-out infinite; }
.cb-head h2 { margin: 0; font-family: Rubik, Inter, sans-serif; font-weight: 900; font-size: 7vh; letter-spacing: -.02em; }
.cb-sub { margin-left: auto; font-size: 2.6vh; font-weight: 800; color: var(--muted); text-transform: uppercase; letter-spacing: .1em; }
.cb-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.2vh; }
.cb-row { display: grid; grid-template-columns: 7vh minmax(0, 22vw) 1fr 14vh; gap: 2vw; align-items: center; padding: 1.1vh 2vw; border-radius: 14px; background: var(--panel, #1C1C21); animation: cb-in .6s cubic-bezier(.2, .9, .3, 1.2) both; animation-delay: var(--d); }
.cb-row.is-top { background: color-mix(in srgb, var(--gold) 14%, var(--panel, #1C1C21)); }
.cb-rank { font-size: 4.4vh; font-weight: 900; text-align: center; }
.cb-name { font-weight: 900; font-size: 3.6vh; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cb-bar { height: 2.4vh; border-radius: 99px; background: rgba(255, 255, 255, .07); overflow: hidden; }
.cb-bar span { display: block; height: 100%; width: var(--w); border-radius: 99px; background: repeating-linear-gradient(90deg, var(--gold) 0 2.4vh, color-mix(in srgb, var(--gold) 70%, #fff) 2.4vh 2.8vh); animation: cb-grow 1.2s cubic-bezier(.2, .9, .3, 1) both; animation-delay: calc(var(--d) + 200ms); }
.cb-chips { font-family: Rubik, Inter, sans-serif; font-size: 4vh; font-weight: 900; color: var(--gold); text-align: right; }
.cb-empty { font-size: 3.4vh; color: var(--muted); text-align: center; padding: 10vh 0; }
@keyframes cb-in { from { transform: translateX(-4vw); opacity: 0; } to { transform: none; opacity: 1; } }
@keyframes cb-grow { from { width: 0; } }
@keyframes bj-coin { 50% { transform: rotateY(180deg); } }
@media (prefers-reduced-motion: reduce) { .cb-row, .cb-bar span, .cb-icon { animation: none; } }
