.hand{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;cursor:grab;overflow:visible}
.hand.dragging{cursor:grabbing}.hand.dragging .card{transition:none}.hand[aria-disabled=true]{cursor:default}
.hand:empty::after{content:'开局后，手牌会发到这里';color:#99b3a1;font-size:12px;letter-spacing:2px;border:1px dashed #d6bc7240;border-radius:12px;padding:18px 35px;align-self:center}
.hand[data-deal-phase=dealing] .card:last-child{animation:card-arrive .25s ease-out both}
.hand.dealing{pointer-events:none}.hand.dealing .card:hover{transform:none}
@keyframes card-arrive{from{opacity:0;transform:translate(24px,-35px) rotate(7deg)}to{opacity:1;transform:none}}
.play-enter{animation:play-arrive .24s ease-out both}
@keyframes play-arrive{from{opacity:.1;transform:translateY(16px) scale(.85)}to{opacity:1;transform:none}}
.effects{position:absolute;inset:0;z-index:12;pointer-events:none;overflow:hidden;contain:layout paint}
.flying-card{position:absolute;display:grid;place-items:center;width:36px;height:51px;border:1px solid #e7c887;border-radius:4px;color:#e7c887;background:repeating-linear-gradient(45deg,#19463c,#19463c 4px,#235344 5px);box-shadow:0 4px 12px #001e2280;font:25px Georgia}
.combo-effect{position:absolute;left:50%;top:43%;transform:translate(-50%,-50%);width:min(390px,65%);padding:20px 35px;text-align:center;color:#ffe2a0;filter:drop-shadow(0 5px 14px #001a16);border-radius:50%;background:radial-gradient(ellipse,#183f35f5 10%,#12392de6 45%,#12392d00 73%);white-space:nowrap}
.combo-effect strong{position:relative;display:block;font:900 clamp(28px,4vw,60px)/1.3 'Songti SC',serif;letter-spacing:8px;text-shadow:0 2px #754b22,0 0 24px #edc36e80}
.combo-effect small{position:relative;display:block;margin-top:5px;color:#f5e9be;font-size:12px;letter-spacing:3px}
.combo-icon{position:relative;display:block;font:75px/1.1 Georgia,sans-serif;filter:drop-shadow(0 0 12px #ffc95e88)}
.combo-bomb,.combo-rocket{background:radial-gradient(ellipse,#6b372be6,#45352cda 35%,#183f35aa 55%,transparent 73%)}
.combo-bomb::before,.combo-rocket::before{content:'';position:absolute;inset:5% 18%;border:4px solid #ffc46f;box-shadow:0 0 25px #ffb14c,inset 0 0 25px #ffb14c;border-radius:50%;animation:blast-ring .95s ease-out both}
@keyframes blast-ring{from{transform:scale(.2);opacity:1}to{transform:scale(1.65);opacity:0}}
.combo-plane .combo-icon{display:inline-block;transform:rotate(-12deg);color:#e1f5f4;text-shadow:-16px 4px #c4e9d066,-34px 8px #c4e9d033}
.combo-plane{background:radial-gradient(ellipse,#205d51ef,#173e34bb 50%,transparent 72%)}
.combo-straight .combo-icon{letter-spacing:6px}.combo-pair_straight .combo-icon{color:#f5d292}
@media(max-width:1000px) and (orientation:landscape){.flying-card{width:24px;height:34px;font-size:17px}.combo-effect{top:40%;padding:8px 24px;width:270px}.combo-effect strong{font-size:30px;letter-spacing:5px}.combo-icon{font-size:48px}.combo-effect small{font-size:10px;letter-spacing:2px}.hand:empty::after{font-size:10px;padding:12px 25px}}
@media(prefers-reduced-motion:reduce){.hand.dealing .card:last-child,.play-enter,.combo-bomb::before,.combo-rocket::before{animation:none}.card{transition:none}}
