/* ====== 炸弹猫游戏 ====== */
.ek-page{position:fixed;inset:0;background:linear-gradient(160deg,#0f0c29,#302b63,#24243e);display:none;flex-direction:column;z-index:220}
.ek-page.active{display:flex}
.ek-setup-wrap{width:100%;max-width:400px;padding:24px;margin:0 auto;overflow-y:auto;flex:1}
.ek-logo-icon{font-size:56px;display:block;text-align:center;animation:logoBounce 2s ease-in-out infinite}
@keyframes logoBounce{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.ek-setup-card{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:20px;margin-bottom:16px;backdrop-filter:blur(20px)}
.ek-setup-label{font-size:11px;font-weight:700;color:rgba(255,255,255,.4);text-transform:uppercase;letter-spacing:1.5px;margin-bottom:12px}
.ek-count-row{display:flex;gap:8px}
.ek-count-btn{flex:1;padding:10px;border-radius:12px;border:1.5px solid rgba(255,255,255,.15);background:transparent;color:rgba(255,255,255,.6);font-size:16px;font-weight:700;cursor:pointer;transition:all .2s;font-family:inherit}
.ek-count-btn.active{border-color:#FFD60A;background:rgba(255,214,10,.15);color:#FFD60A}
.ek-char-slot{display:flex;align-items:center;gap:10px;padding:10px 12px;background:rgba(255,255,255,.05);border-radius:12px;margin-bottom:8px;border:1.5px solid transparent;cursor:pointer;transition:all .2s}
.ek-char-slot.teammate{border-color:rgba(52,199,89,.5);background:rgba(52,199,89,.08)}
.ek-char-slot.enemy{border-color:rgba(255,59,48,.3);background:rgba(255,59,48,.05)}
.ek-char-slot-av{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;flex-shrink:0;overflow:hidden}
.ek-char-slot-av img{width:100%;height:100%;object-fit:cover}
.ek-start-btn{width:100%;padding:16px;background:linear-gradient(135deg,#FFD60A,#FF9500);border:none;border-radius:16px;color:#1a1a2e;font-size:17px;font-weight:800;cursor:pointer;font-family:inherit;box-shadow:0 4px 20px rgba(255,214,10,.3)}
.ek-start-btn:active{transform:scale(.97)}
.ek-opp-chip{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 10px;border-radius:14px;background:rgba(255,255,255,.06);border:1.5px solid transparent;transition:all .3s;min-width:64px}
.ek-opp-chip.current-turn{border-color:#FFD60A;background:rgba(255,214,10,.1);animation:ekTurnGlow .8s ease-in-out infinite alternate}
@keyframes ekTurnGlow{from{box-shadow:0 0 8px rgba(255,214,10,.3)}to{box-shadow:0 0 16px rgba(255,214,10,.6)}}
.ek-opp-chip.dead{opacity:.3;filter:grayscale(1)}
.ek-opp-chip.teammate-chip{border-color:rgba(52,199,89,.4)}
.ek-opp-av{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:700;position:relative;overflow:hidden}
.ek-opp-av img{width:100%;height:100%;object-fit:cover;border-radius:50%}
.ek-team-dot{position:absolute;bottom:-1px;right:-1px;width:10px;height:10px;border-radius:50%;background:#34C759;border:1.5px solid #0f0c29}
.ek-msg-area{flex:1;overflow-y:auto;padding:8px 12px;display:flex;flex-direction:column;gap:6px;-webkit-overflow-scrolling:touch}
.ek-msg-area::-webkit-scrollbar{display:none}
.ek-game-msg{display:flex;align-items:flex-end;gap:8px;animation:msgIn .25s ease-out}
.ek-game-msg.system{justify-content:center}
.ek-game-msg.me{flex-direction:row-reverse}
.ek-msg-av{width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;flex-shrink:0;overflow:hidden}
.ek-msg-av img{width:100%;height:100%;object-fit:cover}
.ek-msg-bubble{max-width:75%;min-width:60px;padding:8px 12px;border-radius:14px;font-size:13px;line-height:1.4;word-break:break-word;color:rgba(255,255,255,.85);white-space:pre-wrap}
.ek-game-msg.other .ek-msg-bubble{background:rgba(255,255,255,.1);border-bottom-left-radius:3px}
.ek-game-msg.me .ek-msg-bubble{background:#007AFF;color:white;border-bottom-right-radius:3px}
.ek-game-msg.system .ek-msg-bubble{background:rgba(255,255,255,.08);color:rgba(255,255,255,.5);font-size:12px;border-radius:10px;text-align:center}
.ek-deck-area{display:flex;align-items:center;justify-content:center;gap:20px;padding:8px 12px;flex-shrink:0}
.ek-hand-card{flex-shrink:0;width:68px;cursor:pointer;transition:transform .2s;position:relative}
.ek-hand-card:active{transform:scale(.95)}
.ek-hand-card.selected{transform:translateY(-12px)}
.ek-hand-card-name{font-size:9px;text-align:center;margin-top:3px;color:rgba(255,255,255,.6);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ek-play-btn{width:100%;padding:12px;background:linear-gradient(135deg,#007AFF,#AF52DE);border:none;border-radius:14px;color:white;font-size:15px;font-weight:700;cursor:pointer;font-family:inherit;margin-top:8px;display:none}
.ek-play-btn.show{display:block}
.ek-draw-btn{width:100%;padding:12px;background:linear-gradient(135deg,#FFD60A,#FF9500);border:none;border-radius:14px;color:#1a1a2e;font-size:15px;font-weight:700;cursor:pointer;font-family:inherit;margin-top:8px}
.ek-draw-btn:disabled{opacity:.4;cursor:not-allowed}
.ek-action-overlay{position:fixed;inset:0;z-index:230;background:rgba(0,0,0,.6);backdrop-filter:blur(10px);display:none;align-items:flex-end;justify-content:center}
.ek-action-overlay.show{display:flex}
.ek-action-panel{background:#1e1a3a;border-radius:24px 24px 0 0;width:100%;max-width:480px;padding:20px;padding-bottom:max(20px,env(safe-area-inset-bottom));animation:slideUp .3s ease-out}
.ek-action-option{padding:13px 16px;border-radius:14px;border:1.5px solid rgba(255,255,255,.1);cursor:pointer;display:flex;align-items:center;gap:12px;transition:all .2s;background:rgba(255,255,255,.05);margin-bottom:8px}
.ek-action-option:active{transform:scale(.98)}
.ek-action-cancel{width:100%;padding:13px;border:none;border-radius:14px;background:rgba(255,255,255,.08);color:rgba(255,255,255,.6);font-size:16px;font-weight:600;cursor:pointer;font-family:inherit;margin-top:4px}
.ek-future-overlay{position:fixed;inset:0;z-index:240;background:rgba(0,0,0,.7);backdrop-filter:blur(15px);display:none;align-items:center;justify-content:center;flex-direction:column;gap:16px}
.ek-future-overlay.show{display:flex}
.ek-bomb-overlay{position:fixed;inset:0;z-index:250;background:rgba(0,0,0,.9);display:none;align-items:center;justify-content:center;flex-direction:column;gap:12px}
.ek-bomb-overlay.show{display:flex}
.ek-bomb-icon{font-size:80px;animation:bombShake .3s ease-in-out infinite}
@keyframes bombShake{0%,100%{transform:rotate(-5deg)}50%{transform:rotate(5deg)}}
.ek-result-overlay{position:fixed;inset:0;z-index:260;background:rgba(0,0,0,.8);backdrop-filter:blur(15px);display:none;align-items:center;justify-content:center;padding:20px}
.ek-result-overlay.show{display:flex}
.ek-result-card{background:linear-gradient(145deg,#1e1a3a,#252050);border:1px solid rgba(255,255,255,.1);border-radius:24px;padding:28px 24px;max-width:360px;width:100%;text-align:center;animation:resultPop .5s cubic-bezier(.34,1.56,.64,1)}
.ek-teammate-hint{position:fixed;top:100px;left:50%;transform:translateX(-50%);background:rgba(52,199,89,.9);color:white;padding:10px 18px;border-radius:14px;z-index:270;font-size:13px;font-weight:600;pointer-events:none;opacity:0;transition:opacity .3s;white-space:nowrap;backdrop-filter:blur(10px)}
.ek-teammate-hint.show{opacity:1}
.ek-nope-flash{position:fixed;inset:0;z-index:245;background:rgba(255,59,48,.3);pointer-events:none;opacity:0;transition:opacity .2s}
.ek-nope-flash.show{opacity:1}
.ek-rules-overlay{position:fixed;inset:0;z-index:280;background:rgba(0,0,0,.7);backdrop-filter:blur(15px);display:none;align-items:flex-end;justify-content:center}
.ek-rules-overlay.show{display:flex}
.ek-rules-panel{background:#1e1a3a;border-radius:24px 24px 0 0;width:100%;max-width:480px;max-height:85vh;overflow-y:auto;padding:20px;padding-bottom:max(20px,env(safe-area-inset-bottom));animation:slideUp .3s ease-out}
