*,*::before,*::after{box-sizing:border-box}
html,body{margin:0;padding:0;width:100%;height:100%;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;background:#0d0916;color:#e8eaf0;overflow-x:hidden;-webkit-font-smoothing:antialiased}
button{font-family:inherit;outline:none;border:none;background:none;cursor:pointer;padding:0}
button:disabled{cursor:not-allowed;opacity:.5}
#game-wrap{position:relative;width:100vw;min-height:100vh;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 30%,#2c2050 0%,#171029 55%,#0a0714 100%);padding:12px}
#stage{position:relative;width:min(100%,calc((100dvh - 24px) * 1000 / 580));aspect-ratio:1000/580;box-shadow:0 20px 60px rgba(0,0,0,.75),0 0 0 1px rgba(255,255,255,.05);overflow:hidden;background:#0d0916;border-radius:4px}
@supports not (aspect-ratio: 1000 / 580){#stage{height:0;padding-bottom:calc(100% * 580 / 1000)}}
#gameCanvas{display:block;width:100%;height:100%}

#zbGameHud{position:absolute;top:0;left:0;right:0;height:64px;padding:6px 10px;display:none;align-items:center;gap:8px;pointer-events:none;z-index:20;background:linear-gradient(180deg,rgba(8,6,16,.92) 0%,rgba(8,6,16,0) 100%)}
#zbGameHud.is-active{display:flex;justify-content: space-between;}
.zb-hud-side{display:flex;align-items:center;gap:6px;pointer-events:auto;padding:5px 10px;border-radius:12px;background:rgba(18,14,32,.86);border:1px solid rgba(255,255,255,.09);min-width:0;flex-shrink:0}
.zb-hud-side.zb-left{flex-direction:row}
.zb-hud-side.zb-right{flex-direction:row-reverse}
.zb-hud-side .zb-avatar{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,#4ec0ff,#2a8ad4);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;box-shadow:0 0 10px rgba(80,180,255,.35)}
.zb-hud-side.zb-right .zb-avatar{background:linear-gradient(135deg,#ff8a5a,#e85a3a);box-shadow:0 0 10px rgba(255,120,80,.35)}
.zb-hud-side .zb-info{display:flex;flex-direction:column;gap:2px;min-width:0}
.zb-hud-side.zb-right .zb-info{text-align:right}
.zb-hud-side .zb-name{font-size:11.5px;font-weight:800;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:80px}
.zb-lives-row{display:flex;gap:1px;flex-wrap:nowrap}
.zb-hud-side.zb-right .zb-lives-row{justify-content:flex-end}
.zb-life-dot{width:5px;height:5px;border-radius:50%;background:#ff5a6e;box-shadow:0 0 3px rgba(255,90,110,.6);flex-shrink:0}
.zb-life-dot.lost{background:#3a3248;box-shadow:none}
.zb-hud-side .zb-stats{display:flex;gap:6px;align-items:center;flex-shrink:0;margin-left:4px}
.zb-hud-side.zb-right .zb-stats{margin-left:0;margin-right:4px}
.zb-hud-stat{display:flex;align-items:center;gap:2px;font-size:11px;font-weight:700;color:#ffe27a;white-space:nowrap}
.zb-hud-stat .gi{font-size:9.5px;opacity:.85}

#zbHudSlots{display:flex;gap:3px;pointer-events:auto;flex-shrink:0;align-items:center}
.zb-slot{position:relative;width:46px;height:50px;border-radius:8px;background:rgba(60,48,30,.92);border:1.4px solid rgba(255,211,90,.35);display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:all .15s;flex-shrink:0;overflow:visible}
.zb-slot:hover{transform:translateY(-2px);border-color:rgba(255,211,90,.7);box-shadow:0 4px 12px rgba(255,180,60,.25)}
.zb-slot.is-selected{border-color:#ffd35a;background:rgba(255,211,90,.28);box-shadow:0 0 12px rgba(255,211,90,.6)}
.zb-slot.is-cooling,.zb-slot.is-poor{background:rgba(40,30,50,.9);border-color:rgba(255,255,255,.08);opacity:.65}
.zb-slot .zb-num{position:absolute;top:1px;left:3px;font-size:9px;font-weight:800;color:#ffe27a;background:rgba(0,0,0,.7);padding:0 3px;border-radius:2px;line-height:1.3}
.zb-slot .zb-icon{font-size:17px;line-height:1}
.zb-slot .zb-cost{font-size:9px;font-weight:800;color:#ffe27a;margin-top:1px}
.zb-slot.is-cooling .zb-cost,.zb-slot.is-poor .zb-cost{color:#888}
.zb-slot .zb-cd-overlay{position:absolute;left:0;right:0;bottom:0;background:rgba(8,6,16,.7);color:#fff;font-size:11px;font-weight:800;text-align:center}
.zb-slot .zb-tip{position:absolute;bottom:calc(100% + 8px);left:50%;transform:translateX(-50%) translateY(4px);min-width:180px;max-width:240px;padding:10px 12px;border-radius:10px;background:rgba(20,16,32,.98);border:1px solid rgba(255,211,90,.35);box-shadow:0 8px 24px rgba(0,0,0,.6);color:#e8eaf0;font-size:12px;line-height:1.6;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s,transform .18s,visibility .18s;z-index:50;white-space:normal;text-align:left}
.zb-slot .zb-tip::after{content:'';position:absolute;top:100%;left:50%;transform:translateX(-50%);border:6px solid transparent;border-top-color:rgba(20,16,32,.98)}
.zb-slot:hover .zb-tip{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.zb-tip .zb-tip-name{font-weight:800;color:#ffd77a;font-size:13px;margin-bottom:4px;display:block}
.zb-tip .zb-tip-cost{display:inline-block;background:rgba(255,211,90,.18);color:#ffe27a;padding:1px 6px;border-radius:4px;font-size:11px;margin-bottom:6px;font-weight:700}
.zb-tip .zb-tip-desc{font-size:11.5px;color:#b3bad0}

.zb-hud-center{display:flex;align-items:center;justify-content:center;flex-shrink:0;padding:0 2px}
.zb-vs{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#ff6a4a,#e84a2a);color:#fff;font-size:12px;font-weight:900;display:flex;align-items:center;justify-content:center;box-shadow:0 0 18px rgba(255,100,60,.6);animation:zbVsPulse 2s ease-in-out infinite}
@keyframes zbVsPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}

@media (max-width:860px){
    .zb-hud-side .zb-stats .zb-hud-stat.zb-optional{display:none}
    .zb-slot{width:40px;height:46px}
    .zb-slot .zb-icon{font-size:15px}
    .zb-hud-side .zb-name{max-width:60px;font-size:10.5px}
}
@media (max-width:640px){
    .zb-hud-side .zb-stats{display:none}
    .zb-slot{width:34px;height:40px}
    .zb-slot .zb-icon{font-size:13px}
    .zb-slot .zb-cost{font-size:8px}
    .zb-vs{width:28px;height:28px;font-size:10px}
    .zb-hud-side .zb-avatar{width:24px;height:24px;font-size:13px}
    .zb-hud-side .zb-name{max-width:48px;font-size:10px}
    #zbGameHud{height:56px;padding:4px 6px;gap:4px}
    .zb-slot .zb-tip{min-width:150px;max-width:200px;font-size:11px;padding:8px 10px}
}
@media (max-width:460px){
    .zb-hud-side .zb-info{display:none}
    #zbHudSlots{gap:2px}
    .zb-slot{width:30px;height:36px}
    .zb-slot .zb-icon{font-size:12px}
    .zb-slot .zb-cost{font-size:7px}
}

#zbControlBar{position:absolute;bottom:0;left:0;right:0;height:56px;z-index:18;display:none;align-items:center;justify-content:center;gap:10px;padding:0 14px;background:linear-gradient(0deg,rgba(8,6,16,.96) 0%,rgba(8,6,16,.5) 100%);backdrop-filter:blur(10px)}
#zbControlBar.is-active{display:flex}
.zb-mode-switch{display:flex;gap:3px;padding:6px;background:rgba(255,255,255,.06);border-radius:8px;flex-shrink:0}
.zb-mode-btn{display:flex;align-items:center;gap:5px;padding:6px 11px;border-radius:6px;color:#888;font-size:12px;font-weight:700;transition:all .2s;white-space:nowrap}
.zb-mode-btn .gi{font-size:11px}
.zb-mode-btn small{font-size:9px;opacity:.7;margin-left:2px}
.zb-mode-btn.active{background:rgba(255,211,90,.15);color:#ffd77a}
.zb-mode-btn.active.zb-defense{background:rgba(110,200,255,.22);color:#8ad0ff}
.zb-mode-btn.active.zb-attack{background:rgba(255,120,80,.22);color:#ffb38a}
.zb-attack-word{flex:1;max-width:320px;min-width:140px;border-radius:8px;background:rgba(180,60,60,.18);border:1.5px solid rgba(255,120,80,.4);font-family:ui-monospace,Menlo,monospace;font-size:24px;font-weight:800;color:#fff;text-align:center;letter-spacing:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.zb-attack-word .typed{color:#ffd35a}
.zb-attack-word .cd{font-size:18px;background:rgba(0,0,0,.45);padding:1px 5px;border-radius:4px;margin-left:4px;color:#ffb0a0}
.zb-attack-word.cooling{opacity:.5}
.zb-attack-word.empty{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.1);color:#666}
.zb-pvp-hint{font-size:11px;color:#8a91a8;padding:5px 10px;border-radius:6px;background:rgba(255,255,255,.04);white-space:nowrap;flex-shrink:0}
.zb-pvp-hint kbd{padding:1px 5px;background:rgba(255,255,255,.15);border-radius:3px;font-family:ui-monospace,Menlo,monospace;color:#fff;font-size:10px;margin:0 1px}

#zbHintBar{position:absolute;bottom:66px;left:50%;transform:translateX(-50%);z-index:15;padding:6px 16px;border-radius:16px;background:rgba(10,8,20,.9);border:1px solid rgba(255,255,255,.08);backdrop-filter:blur(8px);font-size:12px;color:#cfd4e6;white-space:nowrap;opacity:0;transition:opacity .35s;pointer-events:none;max-width:calc(100% - 24px);overflow:hidden;text-overflow:ellipsis}
#zbHintBar.is-visible{opacity:1}
#zbHintBar .gi{margin-right:4px;color:#ffd77a}
#zbHintBar kbd{display:inline-block;padding:0 4px;margin:0 1px;border-radius:3px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);font-size:10px;font-family:ui-monospace,Menlo,monospace;color:#fff}
#zbFlashTip{position:absolute;left:50%;top:34%;transform:translate(-50%,-50%) scale(.85);z-index:16;padding:10px 20px;border-radius:12px;background:rgba(255,211,90,.95);color:#2b1c00;font-size:14px;font-weight:800;letter-spacing:1px;box-shadow:0 10px 28px rgba(255,180,60,.5);opacity:0;pointer-events:none;transition:opacity .22s,transform .22s;max-width:90%;text-align:center}
#zbFlashTip.is-visible{opacity:1;transform:translate(-50%,-50%) scale(1)}
#zbFlashTip .gi{margin-right:5px}

.zb-mask{position:fixed;top:0;left:0;right:0;bottom:0;z-index:100;display:grid;place-items:center;padding:16px;background:rgba(6,4,12,.88);backdrop-filter:blur(10px);opacity:0;visibility:hidden;transition:opacity .28s,visibility .28s;overflow-y:auto}
.zb-mask.is-visible{opacity:1;visibility:visible}
.zb-panel{width:100%;max-width:480px;max-height:calc(100dvh - 32px);overflow-y:auto;padding:20px 22px 16px;border-radius:18px;background:linear-gradient(165deg,#251d3e 0%,#171128 100%);border:1px solid rgba(255,255,255,.10);box-shadow:0 24px 64px rgba(0,0,0,.75);transform:translateY(12px) scale(.97);transition:transform .3s;align-self:center}
.zb-mask.is-visible .zb-panel{transform:translateY(0) scale(1)}
.zb-panel::-webkit-scrollbar{width:5px}
.zb-panel::-webkit-scrollbar-thumb{background:rgba(255,255,255,.14);border-radius:3px}
.zb-panel-head{text-align:center;margin-bottom:14px}
.zb-emblem{width:56px;height:56px;margin:0 auto 8px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:28px;background:linear-gradient(150deg,#54437f,#2a2048);border:1px solid rgba(255,226,122,.3);box-shadow:0 10px 26px rgba(0,0,0,.5)}
.zb-panel-title{margin:0 0 3px;font-size:21px;font-weight:800;letter-spacing:1px;background:linear-gradient(180deg,#fff 20%,#ffd77a 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.zb-panel-sub{margin:0;font-size:12px;color:#9aa2bb}
.zb-opt-block{margin-bottom:11px}
.zb-opt-label{display:flex;align-items:center;gap:6px;margin-bottom:7px;font-size:12px;font-weight:700;color:#b9c0d6}
.zb-opt-label .gi{font-size:12px;color:#ffd77a}
.zb-opt-row{display:flex;gap:7px;flex-wrap:wrap}
.zb-opt-btn{flex:1 1 0;min-width:70px;padding:8px 6px 7px;border-radius:10px;border:1.5px solid rgba(255,255,255,.10);background:rgba(255,255,255,.04);color:#cfd4e6;text-align:center;transition:all .18s;display:flex;flex-direction:column;align-items:center;gap:2px}
.zb-opt-btn .nm{font-size:13px;font-weight:700}
.zb-opt-btn .nt{font-size:10px;color:#7d849c}
.zb-opt-btn:hover:not(:disabled){background:rgba(255,255,255,.08);border-color:rgba(255,226,122,.28)}
.zb-opt-btn.active{background:linear-gradient(160deg,rgba(255,206,84,.20),rgba(255,160,60,.10));border-color:#ffce54;color:#ffe9a8}
.zb-btn-primary{width:100%;margin-top:12px;padding:11px 18px;border-radius:11px;font-size:14.5px;font-weight:800;letter-spacing:3px;color:#2b1c00;background:linear-gradient(180deg,#ffe08a 0%,#ffc23c 55%,#f0a81e 100%);box-shadow:0 10px 24px rgba(240,168,30,.32),inset 0 1px 0 rgba(255,255,255,.6);transition:all .16s;display:flex;align-items:center;justify-content:center;gap:8px}
.zb-btn-primary:hover{filter:brightness(1.07);transform:translateY(-1px)}
.zb-btn-ghost{width:100%;padding:10px 14px;border-radius:11px;border:1.5px solid rgba(255,255,255,.14);background:rgba(255,255,255,.04);color:#c4cadd;font-size:13px;font-weight:700;transition:all .16s;display:flex;align-items:center;justify-content:center;gap:6px}
.zb-btn-ghost:hover{background:rgba(255,255,255,.09);color:#fff}
.zb-btn-row{display:flex;gap:8px;margin-top:12px}
.zb-btn-row .zb-btn-primary,.zb-btn-row .zb-btn-ghost{flex:1 1 0;min-width:0;margin-top:0;padding:10px;font-size:13px}

#zbMatchOverlay,#zbCountdownOverlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:110;display:grid;place-items:center;padding:20px;opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s}
#zbMatchOverlay{background:rgba(6,4,12,.94)}
#zbMatchOverlay.is-visible{opacity:1;visibility:visible}
.zb-match-panel{background:linear-gradient(165deg,#251d3e,#171128);border:1px solid rgba(255,255,255,.10);border-radius:20px;padding:32px 36px;text-align:center;box-shadow:0 24px 64px rgba(0,0,0,.8);max-width:400px;width:100%;align-self:center}
.zb-match-panel .gi.big{font-size:44px;color:#ffd77a;display:block;margin-bottom:16px;animation:zbFloatY 3s ease-in-out infinite}
@keyframes zbFloatY{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
.zb-match-title{font-size:20px;font-weight:800;margin-bottom:6px}
.zb-match-sub{font-size:13px;color:#9aa2bb;margin-bottom:16px}
.zb-match-countdown{font-size:44px;font-weight:900;color:#ffd77a;margin:16px 0;font-variant-numeric:tabular-nums;letter-spacing:2px}
.zb-match-progress{width:100%;height:6px;background:rgba(255,255,255,.08);border-radius:3px;overflow:hidden;margin:14px 0 20px}
#zbMatchProgressBar{height:100%;width:100%;background:linear-gradient(90deg,#5fd05f,#b6f07a);transition:width 1s linear}
.zb-btn-cancel{padding:8px 22px;border-radius:10px;border:1.5px solid rgba(255,255,255,.14);color:#c4cadd;font-size:13px}
#zbCountdownOverlay{background:rgba(6,4,12,.72);z-index:115}
#zbCountdownOverlay.is-visible{opacity:1;visibility:visible}
#zbCountdownNum{font-size:160px;font-weight:900;color:#ffd77a;text-shadow:0 0 60px rgba(255,211,90,.6),0 0 120px rgba(255,180,60,.4);font-variant-numeric:tabular-nums;animation:zbCountPulse 1s ease-in-out infinite}
@keyframes zbCountPulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.15);opacity:.8}}

.zb-compare-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:stretch;margin-bottom:8px}
.zb-compare-side{padding:12px 10px;border-radius:12px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.07)}
.zb-compare-side.win{background:linear-gradient(165deg,rgba(255,206,84,.15),rgba(255,160,60,.05));border-color:rgba(255,206,84,.4)}
.zb-compare-side.lose{background:rgba(255,90,110,.06);border-color:rgba(255,90,110,.2)}
.zb-cs-name{font-size:13px;font-weight:800;color:#ffe27a;margin-bottom:6px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.zb-cs-row{display:flex;justify-content:space-between;padding:2.5px 0;font-size:11.5px;color:#b3bad0}
.zb-cs-row .v{color:#fff;font-weight:700}
.zb-cs-vs{display:flex;align-items:center;justify-content:center;color:#ff6a4a;font-size:16px;font-weight:900;padding:0 2px}
.zb-result-badge{display:flex;align-items:center;justify-content:center;gap:7px;margin-bottom:11px;padding:8px 14px;border-radius:10px;font-size:13.5px;font-weight:800}
.zb-result-badge.win{background:rgba(110,224,110,.13);color:#8ff08f;border:1px solid rgba(110,224,110,.3)}
.zb-result-badge.lose{background:rgba(255,90,110,.12);color:#ff8a9a;border:1px solid rgba(255,90,110,.28)}

@media (max-width:720px){
    #game-wrap{padding:6px}
    .zb-panel{padding:16px 14px 12px}
    .zb-panel-title{font-size:18px}
    .zb-emblem{width:48px;height:48px;font-size:24px}
    .zb-compare-grid{gap:5px}
    .zb-cs-row{font-size:10.5px}
    #zbCountdownNum{font-size:100px}
    #zbHintBar{bottom:56px;font-size:10.5px}
}