/* Effects never participate in grid sizing or expand the scrolling bounds. */
.poker-table>.poker-chip-layer{position:absolute;inset:0;overflow:clip;contain:strict;pointer-events:none;border-radius:inherit;z-index:35}
/* 칩·금액·카드 노드는 다시 쓰려고 층에 남겨 둔다. 움직이지 않을 때는 보이지 않는다. */
.poker-flying-chip,.poker-bet-amount,.poker-dealing-card{opacity:0}
.poker-flying-chip{position:absolute;left:0;top:0;width:19px;height:19px;margin:-9px;border:3px dashed #f0f1e9;border-radius:50%;box-sizing:border-box;background:radial-gradient(circle,#d44c64 0 43%,#8a243e 47% 58%,#d44c64 62%);box-shadow:0 2px 0 #601c30,0 4px 6px #0005}
.poker-flying-chip:nth-child(even){background:radial-gradient(circle,#568fe2 0 43%,#284f92 47% 58%,#568fe2 62%);box-shadow:0 2px 0 #3f4352,0 4px 6px #0005}
.poker-flying-chip.gold{background:radial-gradient(circle,#e6bd64 0 43%,#967029 47% 58%,#e6bd64 62%);border-color:#fff4cc;box-shadow:0 2px 0 #78521e,0 4px 6px #0005}
.poker-bet-amount{position:absolute;left:0;top:0;width:140px;margin-left:-70px;text-align:center;color:#ffe7a2;font-size:13px;font-weight:800;text-shadow:0 2px 5px #000;white-space:nowrap}
.poker-dealing-card{position:absolute;left:0;top:0;width:28px;height:40px;margin:-20px 0 0 -14px;border:2px solid #ebd7a1;border-radius:5px;box-sizing:border-box;background:repeating-linear-gradient(45deg,#6d344b 0 3px,#452b48 3px 6px);box-shadow:inset 0 0 0 2px #332637,0 4px 9px #0005}
.poker-dealing-card::after{content:'◆';position:absolute;inset:0;display:grid;place-items:center;color:#efd8a3;font-size:16px}
body.poker-active #poker-play-area .poker-player>.poker-dealer-disc{position:absolute;bottom:9px;right:10px;display:grid;place-items:center;width:19px;height:19px;border-radius:50%;background:#f1ecdb;border:2px solid #c8b783;color:#364037;font:bold 10px Georgia,serif;font-style:normal;box-shadow:0 2px 0 #8c815e}
body.poker-active #poker-play-area .poker-card-reveal{animation:poker-table-card-turn .42s ease-out both;animation-delay:var(--deal-delay,0ms);backface-visibility:hidden}
@keyframes poker-table-card-turn{0%{opacity:.4;transform:rotateY(85deg);filter:brightness(1.2)}100%{opacity:1;transform:rotateY(0);filter:brightness(1)}}
@media(prefers-reduced-motion:reduce){body.poker-active #poker-play-area .poker-card-reveal{animation:none}}
@media(prefers-reduced-motion:reduce){.poker-chip-layer{display:none}}

/* Keep the all-in cue readable without a full-table flash. */
.poker-allin-flare{background:radial-gradient(ellipse at center,#e9b94a20,transparent 68%);box-shadow:none}
.poker-allin-flare::before{animation:poker-allin-rays-soft .96s linear both}
.poker-allin-flare::after{height:clamp(64px,11vw,120px);opacity:.65;box-shadow:0 0 12px #ffcc4938;filter:brightness(.85)}
.poker-allin-flare strong{font-size:clamp(34px,6vw,76px);filter:none;-webkit-text-stroke:1px #78522b;animation:poker-allin-text-soft 1s ease-out both}
.poker-allin-flare strong,.poker-allin-flare span{text-shadow:0 2px 5px #321e16}
.poker-player.all-in{box-shadow:0 0 0 1px #ffd45d38,0 0 12px #ffc34335,0 5px 16px #0006}
.poker-player.all-in::before{box-shadow:0 0 5px #ffcd4b55}
/* 판이 끝나면 올인 자리의 금색 배경은 가라앉히고, 팟을 딴 자리를 가장 눈에 띄게 한다(PC · 모바일 공통). */
.poker-table[data-phase="ended"] .poker-player.all-in:not(.winner){border-color:#f3d27b3d;background:linear-gradient(145deg,#0b2119e8,#07120eda);box-shadow:0 6px 17px #0006;animation:none}
.poker-table[data-phase="ended"] .poker-player.all-in:not(.winner)::before{box-shadow:none}
.poker-player.winner{border-color:#ffd75e;background:linear-gradient(145deg,#574410ee,#1d2c13ec);box-shadow:0 0 0 2px #ffd75ecc,0 0 20px #ffcf4b80,0 6px 17px #0006}
@keyframes poker-allin-rays-soft{from{transform:rotate(0deg) scale(.65);opacity:0}25%{opacity:.18}to{transform:rotate(45deg) scale(.95);opacity:0}}
@keyframes poker-allin-text-soft{0%{opacity:0;transform:scale(.94)}22%,75%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.poker-allin-flare{display:none}}
