.table-area{position:relative}
.pile-slot{position:relative;overflow:visible}
.pile-slot>.card{position:absolute;inset:0}
.pile--draw{isolation:isolate}
.pile--draw>span,.pile--draw>small{position:relative;z-index:2}
.pile--draw::before{display:none}
.pile--draw.pile--stacked::before{position:absolute;inset:-.04rem;z-index:1;display:block;border:.25rem solid var(--color-card-light);border-radius:inherit;background:var(--color-wild);box-shadow:-.14rem .14rem 0 var(--color-wild),-.14rem .14rem 0 .25rem var(--color-card-light),-.28rem .28rem 0 var(--color-wild),-.28rem .28rem 0 .25rem var(--color-card-light),-.42rem .42rem 0 var(--color-wild),-.42rem .42rem 0 .25rem var(--color-card-light),-.56rem .56rem 0 var(--color-wild),-.56rem .56rem 0 .25rem var(--color-card-light),0 .85rem 1.45rem var(--color-shadow);content:"";pointer-events:none}
body>.card-motion{position:fixed!important;right:auto!important;bottom:auto!important;z-index:120;display:block;margin:0;pointer-events:none;transform-origin:center;will-change:transform,opacity;animation:card-flight var(--animation-card-motion-ms) cubic-bezier(.2,.75,.25,1) var(--motion-delay,0ms) both}
body>.card-motion.card--disabled{filter:none}
body>.card-motion.card-motion--draw{box-shadow:0 .8rem 1.6rem var(--color-shadow)}
body>.card-motion.card-motion--draw .card__face{font-size:clamp(.8rem,2vw,1.2rem)}
.shuffle-overlay{position:absolute;inset:var(--space-md);z-index:8;display:grid;place-items:center;overflow:hidden;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--surface-shadow);color:var(--color-text);font-weight:950;letter-spacing:.08em;pointer-events:none;animation:shuffle-overlay-fade var(--animation-shuffle-ms) ease both}
.shuffle-overlay::before,.shuffle-overlay::after{position:absolute;width:clamp(3rem,12vw,5rem);height:clamp(4.5rem,18vw,7rem);border:.22rem solid var(--color-card-light);border-radius:var(--radius-md);background:var(--color-wild);box-shadow:0 .55rem 1rem var(--color-shadow);content:"";animation:shuffle-cards .52s ease-in-out infinite alternate}
.shuffle-overlay::before{transform:translateX(-3.6rem) rotate(-12deg)}
.shuffle-overlay::after{transform:translateX(3.6rem) rotate(12deg);animation-delay:.13s}
.shuffle-overlay>span{position:relative;z-index:1;padding:var(--space-sm) var(--space-md);border-radius:var(--radius-pill);background:var(--color-surface-raised)}
.uno-alert,.effect-alert{position:fixed;inset:0;display:grid;place-items:center;padding:var(--space-xl);background:var(--color-overlay);pointer-events:none}
.uno-alert{z-index:100;animation:uno-alert-fade var(--animation-uno-alert-ms) ease both}
.effect-alert{z-index:105;animation:effect-alert-fade var(--animation-effect-alert-ms) ease both}
.uno-alert[hidden],.effect-alert[hidden]{display:none}
.uno-alert__content,.effect-alert__content{text-align:center}
.uno-alert__content{animation:uno-alert-pop var(--animation-uno-alert-ms) cubic-bezier(.2,.85,.25,1) both}
.effect-alert__content{animation:effect-alert-pop var(--animation-effect-alert-ms) cubic-bezier(.2,.85,.25,1) both}
.uno-alert__content p{margin:0;font-size:clamp(1rem,4vw,1.8rem);font-weight:900}
.uno-alert__content strong{display:block;color:var(--color-primary);font-size:clamp(5rem,24vw,15rem);font-weight:1000;line-height:.85;letter-spacing:-.08em;text-shadow:var(--surface-shadow)}
.effect-alert__content strong{display:block;color:var(--color-primary);font-size:clamp(4rem,20vw,12rem);font-weight:1000;line-height:.9;letter-spacing:-.06em;text-shadow:var(--surface-shadow)}
.effect-alert__content p{max-width:48rem;margin:var(--space-lg) auto 0;font-size:clamp(1.25rem,4vw,2.2rem);font-weight:950}
.game-view .table-area.table-area--my-turn{border-color:var(--color-primary);box-shadow:0 0 0 .2rem var(--color-primary),var(--surface-shadow)}
.game-view .table-area.table-area--turn-enter{animation:table-turn-pulse 1.8s ease-in-out both}
@keyframes card-flight{0%{opacity:.45;transform:translate3d(0,0,0) rotate(-8deg) scale(.86)}18%{opacity:1}75%{transform:translate3d(var(--motion-x),var(--motion-y),0) rotate(5deg) scale(1.04)}100%{opacity:1;transform:translate3d(var(--motion-x),var(--motion-y),0) rotate(0) scale(1)}}
@keyframes shuffle-overlay-fade{0%,100%{opacity:0}10%,88%{opacity:1}}
@keyframes shuffle-cards{to{transform:translateX(0) rotate(0)}}
@keyframes uno-alert-fade{0%,100%{opacity:0}10%,82%{opacity:1}}
@keyframes uno-alert-pop{0%{opacity:0;transform:scale(.25) rotate(-12deg)}18%{opacity:1;transform:scale(1.08) rotate(2deg)}28%,75%{opacity:1;transform:scale(1) rotate(0)}100%{opacity:0;transform:scale(1.35)}}
@keyframes effect-alert-fade{0%,100%{opacity:0}10%,84%{opacity:1}}
@keyframes effect-alert-pop{0%{opacity:0;transform:scale(.25) rotate(-10deg)}18%{opacity:1;transform:scale(1.08) rotate(2deg)}30%,78%{opacity:1;transform:scale(1) rotate(0)}100%{opacity:0;transform:scale(1.25)}}
@keyframes table-turn-pulse{0%,30%,60%,90%,100%{box-shadow:0 0 0 .2rem var(--color-primary),var(--surface-shadow)}15%,45%,75%{box-shadow:0 0 0 .55rem var(--color-primary),var(--surface-shadow)}}
