@import"https://fonts.googleapis.com/css2?family=MedievalSharp&display=swap";@import"https://fonts.googleapis.com/css2?family=MedievalSharp&family=Almendra:wght@400;700&display=swap";#title-menu{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .5s ease}#title-menu.visible{opacity:1}#title-menu.fading{opacity:0;transition:opacity .5s ease-in}.title-bg{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 30%,rgba(50,30,10,.7) 0%,transparent 60%),linear-gradient(180deg,#0a0808,#1a120e 40%,#0e0a08)}.title-bg:before{content:"";position:absolute;inset:0;background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="4" height="4"><rect width="1" height="1" fill="rgba(255,255,255,0.02)"/></svg>');animation:title-grain .4s steps(4) infinite}@keyframes title-grain{0%{transform:translate(0)}25%{transform:translate(-1px,1px)}50%{transform:translate(1px,-1px)}75%{transform:translate(-1px,-1px)}to{transform:translate(0)}}.title-content{position:relative;z-index:1;text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px}.title-logo{font-family:MedievalSharp,serif;font-size:clamp(42px,8vw,72px);color:#ffe066;letter-spacing:.12em;text-shadow:0 0 30px rgba(255,200,50,.5),0 0 80px rgba(255,150,30,.25),0 2px 4px rgba(0,0,0,.9);margin-bottom:4px;animation:title-glow 3s ease-in-out infinite alternate}@keyframes title-glow{0%{text-shadow:0 0 30px rgba(255,200,50,.5),0 0 80px rgba(255,150,30,.2),0 2px 4px rgba(0,0,0,.9)}to{text-shadow:0 0 40px rgba(255,200,50,.7),0 0 100px rgba(255,150,30,.35),0 2px 4px rgba(0,0,0,.9)}}.title-sub{font-family:MedievalSharp,serif;font-size:clamp(13px,2.5vw,18px);color:#975;letter-spacing:.15em;margin-bottom:32px}.title-buttons{display:flex;flex-direction:column;gap:12px;min-width:260px}.title-btn{position:relative;display:flex;align-items:center;justify-content:center;gap:10px;padding:14px 32px;font-family:MedievalSharp,serif;font-size:clamp(16px,2.5vw,20px);color:#ddc894;background:linear-gradient(180deg,#281e14e6,#19120cf2);border:1px solid rgba(180,140,60,.4);border-radius:6px;cursor:pointer;transition:all .2s ease;text-shadow:0 1px 3px rgba(0,0,0,.8);box-shadow:0 2px 10px #00000080,inset 0 1px #ffc85014;letter-spacing:.06em}.title-btn:hover{background:linear-gradient(180deg,#3c2d19f2,#23190ff2);border-color:#dcb45099;color:#ffe8a0;box-shadow:0 2px 20px #b48c3233,inset 0 1px #ffc85026;transform:translateY(-1px)}.title-btn:active{transform:translateY(0);background:#322314f2}.btn-icon{font-size:1.1em}.title-ver{margin-top:28px;font-size:12px;color:#543;letter-spacing:.1em}.options-modal{margin-top:20px;padding:20px;background:#140e0af2;border:1px solid rgba(180,140,60,.3);border-radius:8px;text-align:left;min-width:260px}.options-modal h2{font-family:MedievalSharp,serif;color:#ddc894;font-size:18px;margin-bottom:16px;text-align:center}.opt-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;color:#986;font-size:14px}.opt-row label{min-width:60px}.opt-row input[type=range]{flex:1;accent-color:#c9a84c}.opt-hint{font-size:11px;color:#654}.options-modal .opt-close{margin-top:8px;width:100%;padding:10px;font-size:15px}.tuto-prompt{margin-top:20px;padding:24px;background:#140e0af2;border:1px solid rgba(180,140,60,.4);border-radius:8px;text-align:center;min-width:280px;animation:tuto-pop-center .3s ease-out}.tuto-prompt h2{font-family:MedievalSharp,serif;color:#ffe066;font-size:18px;margin-bottom:8px}.tuto-prompt p{color:#986;font-size:13px;margin-bottom:16px}.tuto-prompt-btns{display:flex;flex-direction:column;gap:10px}#tutorial-overlay{position:fixed;inset:0;z-index:50000;pointer-events:none;opacity:0;transition:opacity .4s ease}#tutorial-overlay.visible{opacity:1}#tutorial-overlay.fading{opacity:0;transition:opacity .5s ease-in}.tuto-backdrop{position:fixed;inset:0;background:#04020099;pointer-events:none;opacity:0;transition:opacity .35s ease;z-index:50000}.tuto-backdrop.active{opacity:1;pointer-events:auto}.tuto-ring{position:fixed;pointer-events:none;border:2px solid rgba(255,200,60,.85);border-radius:8px;box-shadow:0 0 14px #ffc83c80,0 0 28px #ffc83c40,inset 0 0 10px #ffc83c1a;z-index:50003;transition:left .3s,top .3s,width .3s,height .3s;animation:tuto-pulse 1.5s ease-in-out infinite}@keyframes tuto-pulse{0%,to{border-color:#ffc83cd9;box-shadow:0 0 14px #ffc83c80,0 0 28px #ffc83c40}50%{border-color:#ffc83c66;box-shadow:0 0 8px #ffc83c33,0 0 16px #ffc83c1a}}.tuto-ring-done{border-color:#64ee64e6!important;box-shadow:0 0 20px #64ee6499,0 0 40px #64ee644d!important;animation:none!important;transition:border-color .3s,box-shadow .3s}.tuto-arrow-svg{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:50003;overflow:visible}.tuto-arrow-svg line{stroke:#ffc83c99;stroke-width:2;stroke-dasharray:6 4}.tuto-card{position:fixed;pointer-events:auto;background:linear-gradient(180deg,#140f0af5,#0a0705f5);border:1px solid rgba(200,160,60,.55);border-radius:10px;padding:14px 20px 12px;max-width:340px;width:88vw;text-align:center;box-shadow:0 4px 30px #000c,0 0 20px #b48c3c1f;overflow:hidden;z-index:50004}.tuto-card.pos-top{top:12px;left:50%;transform:translate(-50%)}.tuto-card.pos-bottom{bottom:12px;left:50%;transform:translate(-50%)}.tuto-card.pos-left{top:50%;left:12px;transform:translateY(-50%)}.tuto-card.pos-right{top:50%;right:12px;transform:translateY(-50%)}.tuto-card.explain-mode{top:50%;left:50%;transform:translate(-50%,-50%);max-width:460px;border-color:#dcb44699;box-shadow:0 8px 50px #000000e6,0 0 40px #b48c3c26}.tuto-card.tuto-pop{animation:tuto-pop-generic .3s ease-out}@keyframes tuto-pop-generic{0%{opacity:0}to{opacity:1}}.tuto-card.pos-top.tuto-pop{animation:tuto-pop-top .3s ease-out}@keyframes tuto-pop-top{0%{opacity:0;transform:translate(-50%) translateY(-10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.tuto-card.pos-bottom.tuto-pop{animation:tuto-pop-bottom .3s ease-out}@keyframes tuto-pop-bottom{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.tuto-card.pos-left.tuto-pop{animation:tuto-pop-left .3s ease-out}@keyframes tuto-pop-left{0%{opacity:0;transform:translateY(-50%) translate(-10px)}to{opacity:1;transform:translateY(-50%) translate(0)}}.tuto-card.pos-right.tuto-pop{animation:tuto-pop-right .3s ease-out}@keyframes tuto-pop-right{0%{opacity:0;transform:translateY(-50%) translate(10px)}to{opacity:1;transform:translateY(-50%) translate(0)}}.tuto-card.explain-mode.tuto-pop{animation:tuto-pop-center .3s ease-out}@keyframes tuto-pop-center{0%{opacity:.3;transform:translate(-50%,-50%) scale(.95)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.tuto-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}.tuto-step-num{font-size:11px;color:#986;letter-spacing:.08em;font-weight:600}.tuto-skip-x{background:none;border:1px solid rgba(100,80,50,.3);border-radius:4px;color:#876;font-size:11px;cursor:pointer;padding:2px 8px;transition:all .2s;font-family:MedievalSharp,serif}.tuto-skip-x:hover{color:#ca8;border-color:#b48c3c66}.tuto-progress{position:absolute;top:0;left:0;height:3px;background:linear-gradient(90deg,#c9a84c,#ffe066);border-radius:0 3px 3px 0;transition:width .4s ease;box-shadow:0 0 6px #c8a84c4d}.tuto-title{font-family:MedievalSharp,serif;font-size:clamp(16px,3vw,20px);color:#ffe066;margin-bottom:8px;text-shadow:0 0 12px rgba(255,200,50,.3)}.tuto-text{font-size:clamp(12px,2vw,14px);color:#cb9;line-height:1.65;white-space:pre-line;margin-bottom:10px;text-align:left}.tuto-text b{color:#ddd}.tuto-text i{color:#9bd;font-style:normal;font-size:.9em}.t-gold{color:#ffe066!important}.t-ally{color:#6c8!important}.t-enemy{color:#f66!important}.t-zombie{color:#8c4!important}.t-cost{display:inline-block;background:#c8a03c33;border:1px solid rgba(200,160,60,.35);border-radius:3px;padding:0 5px;font-size:.85em;color:#ed8;margin:0 4px}.t-row{display:block;padding:2px 0 2px 4px;border-left:2px solid rgba(200,160,60,.25);margin:2px 0}.t-tip{display:block;margin-top:6px;padding:6px 8px;background:#ffc83c0f;border-radius:4px;color:#ba7;font-size:.92em}.t-faction-header{display:block;margin-top:8px;padding:4px 8px;border-radius:4px;font-size:1.05em;font-weight:700}.t-faction-header.t-ally{background:#50c8781a;border-left:3px solid rgba(80,200,120,.6)}.t-faction-header.t-enemy{background:#ff50501a;border-left:3px solid rgba(255,80,80,.6)}.t-faction-header.t-zombie{background:#88cc441a;border-left:3px solid rgba(136,204,68,.6)}.tuto-hint{min-height:20px;font-size:13px;color:#8cf;font-weight:700;margin-bottom:8px;transition:color .3s;text-shadow:0 0 8px rgba(100,180,255,.3)}.tuto-hint.tuto-done{color:#6e6;text-shadow:0 0 8px rgba(100,255,100,.3);animation:tuto-check .35s ease}@keyframes tuto-check{0%{transform:scale(1.15)}to{transform:scale(1)}}.tuto-buttons{display:flex;gap:10px;justify-content:center}.tuto-btn{font-family:MedievalSharp,serif;font-size:14px;padding:8px 24px;color:#ffe8a0;background:linear-gradient(180deg,#3c2d14f2,#23190cf2);border:1px solid rgba(200,160,60,.5);border-radius:6px;cursor:pointer;transition:all .2s;letter-spacing:.04em}.tuto-btn:hover{border-color:#f0c850b3;color:#fff;transform:translateY(-1px);box-shadow:0 2px 12px #c8a03c4d}.tuto-action-hint{position:fixed;top:14px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:12px;padding:10px 20px;background:linear-gradient(180deg,#0f0c08f0,#080604f0);border:1px solid rgba(200,160,60,.5);border-radius:8px;pointer-events:auto;z-index:50005;box-shadow:0 4px 20px #000c,0 0 16px #b48c3c1f}.tuto-action-hint.tuto-hint-pop{animation:tuto-hint-drop .35s ease-out}@keyframes tuto-hint-drop{0%{opacity:0;transform:translate(-50%) translateY(-12px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.tuto-action-hint-text{font-family:MedievalSharp,serif;font-size:15px;color:#8cf;font-weight:700;white-space:nowrap;text-shadow:0 0 10px rgba(100,180,255,.35);transition:color .3s}.tuto-action-hint-text.tuto-hint-done{color:#6e6;text-shadow:0 0 10px rgba(100,255,100,.4);animation:tuto-check .35s ease}.tuto-action-hint-skip{background:none;border:1px solid rgba(100,80,50,.3);border-radius:4px;color:#765;font-size:11px;cursor:pointer;padding:3px 10px;transition:all .2s;font-family:MedievalSharp,serif}.tuto-action-hint-skip:hover{color:#ca8;border-color:#b48c3c66}#game-ui{position:fixed;inset:0;z-index:1000;pointer-events:none;font-family:Almendra,Segoe UI,serif;color:#d4c4a0;overflow:hidden}#game-ui *{box-sizing:border-box}#game-ui .interactive{pointer-events:auto;cursor:pointer}#game-ui svg{display:inline-block;vertical-align:middle}.status-bar{position:absolute;top:0;left:0;right:0;height:40px;display:flex;align-items:center;gap:12px;padding:0 14px;background:linear-gradient(180deg,#140c08eb,#140c0899);border-bottom:1px solid rgba(120,90,50,.4);font-size:13px;pointer-events:auto}.status-bar .floor-info{display:flex;align-items:center;gap:4px;color:#c9a84c;font-weight:700;font-family:MedievalSharp,serif}.status-bar .floor-dots{display:flex;gap:3px}.status-bar .floor-dot{width:8px;height:8px;border-radius:50%;border:1px solid #c9a84c;background:transparent}.status-bar .floor-dot.filled{background:#c9a84c}.status-bar .turn-count{color:#8a7a60}.status-bar .phase-pill{padding:3px 10px;border-radius:999px;border:1px solid rgba(120,90,50,.35);font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.status-bar .phase-pill.player{color:#9fe09f;background:#50a0502e}.status-bar .phase-pill.enemy{color:#e08f8f;background:#b43c3c2e}.status-bar .phase-pill.zombie{color:#c4b59a;background:#786e5a38}.status-bar .action-count{color:#b8ab8f;font-size:12px}.status-bar .spacer{flex:1}.status-bar .army-badge{display:flex;align-items:center;gap:3px;padding:2px 8px;border-radius:4px;font-weight:600;font-size:12px;border:1px solid transparent}.status-bar .army-badge.player{background:#50a05026;color:#7acc7a;border-color:#50a0504d}.status-bar .army-badge.enemy{background:#b43c3c26;color:#c66;border-color:#b43c3c4d}.status-bar .army-badge.zombie{background:#786e5a26;color:#987;border-color:#786e5a4d}.status-bar .king-safety{font-weight:700;font-size:12px;padding:2px 8px;border-radius:4px;font-family:MedievalSharp,serif}.status-bar .king-safety.safe{color:#7acc7a;background:#50a0501f}.status-bar .king-safety.danger{color:#c44;background:#b43c3c33;animation:pulse-danger 1s infinite}@keyframes pulse-danger{0%,to{opacity:1}50%{opacity:.5}}.piece-info{position:absolute;bottom:80px;left:10px;width:220px;background:#120c08eb;border:1px solid rgba(120,90,50,.5);border-radius:6px;padding:10px 12px;font-size:12px;transition:opacity .2s;box-shadow:0 4px 16px #00000080}.piece-info.hidden{opacity:0;pointer-events:none}.piece-info .pi-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.piece-info .pi-icon{width:32px;height:32px;border-radius:4px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(120,90,50,.3)}.piece-info .pi-name{font-size:16px;font-weight:700;font-family:MedievalSharp,serif}.piece-info .pi-faction{font-size:11px;opacity:.6}.piece-info .pi-stats{display:grid;grid-template-columns:1fr 1fr;gap:4px 12px;margin-bottom:8px}.piece-info .pi-stat{display:flex;justify-content:space-between}.piece-info .pi-stat .label{opacity:.5;font-size:11px}.piece-info .pi-stat .value{font-weight:600;color:#d4c4a0}.piece-info .pi-ct-bar{height:5px;background:#785a3233;border-radius:3px;overflow:hidden;margin-bottom:6px}.piece-info .pi-ct-fill{height:100%;border-radius:3px;transition:width .3s}.piece-info .pi-move-hint{font-size:11px;color:#7a6a50;font-style:italic}.turn-timeline{position:absolute;bottom:10px;left:50%;transform:translate(-50%);display:flex;gap:6px;padding:8px 14px;background:#120c08eb;border:1px solid rgba(120,90,50,.35);border-radius:8px;box-shadow:0 4px 12px #0006}.turn-timeline .tl-slot{width:80px;height:44px;border-radius:6px;display:flex;align-items:center;gap:6px;padding:0 8px;border:2px solid transparent;position:relative;font-size:12px;font-weight:700;transition:all .25s}.turn-timeline .tl-slot.player{background:#50a05014;border-color:#50a05040}.turn-timeline .tl-slot.enemy{background:#b43c3c14;border-color:#b43c3c40}.turn-timeline .tl-slot.zombie{background:#786e5a14;border-color:#786e5a40}.turn-timeline .tl-slot.active{border-color:#c9a84c!important;box-shadow:0 0 12px #c9a84c59;width:110px}.turn-timeline .tl-slot.spent{opacity:.45;filter:saturate(.4);width:70px}.turn-timeline .tl-slot .tl-icon{flex-shrink:0}.turn-timeline .tl-slot .tl-label{font-size:11px;white-space:nowrap}.turn-timeline .tl-slot .tl-ct-bar{position:absolute;bottom:3px;left:6px;right:6px;height:3px;background:#785a3233;border-radius:2px;overflow:hidden}.turn-timeline .tl-slot .tl-ct-fill{height:100%;border-radius:2px;transition:width .3s}.turn-timeline .tl-slot .tl-ap{font-size:10px;font-weight:700;margin-left:auto}.turn-timeline .tl-slot .tl-done{font-size:9px;color:#6b6050;margin-left:auto;letter-spacing:.05em}.action-bar{position:absolute;bottom:72px;left:50%;transform:translate(-50%);display:flex;gap:8px;pointer-events:auto}.action-bar .act-btn{padding:8px 20px;border-radius:4px;border:2px solid;font-size:14px;font-weight:700;font-family:MedievalSharp,serif;cursor:pointer;background:#120c08eb;transition:all .15s;min-width:100px;text-align:center;letter-spacing:1px}.action-bar .act-btn:active{transform:scale(.95)}.action-bar .act-btn.pass{border-color:#9a7a30;color:#c9a84c}.action-bar .act-btn.pass:hover{background:#9a7a3033}.action-bar .act-btn.cancel{border-color:#7a3030;color:#c55}.action-bar .act-btn.cancel:hover{background:#7a303033}.action-bar .act-btn.attack{border-color:#c44;color:#c44;animation:pulse-danger 1s infinite}.action-bar .act-btn.center{border-color:#5a7a50;color:#7acc7a}.action-bar .act-btn.center:hover{background:#5a7a5033}.action-bar .act-btn.disabled{border-color:#3a3028;color:#5a4a38;cursor:default;pointer-events:none}.battle-log{position:absolute;top:48px;right:10px;width:230px;max-height:250px;background:#120c08e0;border:1px solid rgba(120,90,50,.35);border-radius:6px;display:flex;flex-direction:column;overflow:hidden;pointer-events:auto;box-shadow:0 4px 12px #0006}.battle-log .bl-title{padding:4px 10px;font-size:11px;font-weight:700;color:#7a6a50;text-transform:uppercase;letter-spacing:2px;border-bottom:1px solid rgba(120,90,50,.25);flex-shrink:0;font-family:MedievalSharp,serif}.battle-log .bl-entries{flex:1;overflow-y:auto;padding:4px 0;scrollbar-width:thin;scrollbar-color:#3a2a1a transparent}.battle-log .bl-entry{padding:3px 10px;font-size:11px;line-height:1.4;border-left:3px solid transparent}.battle-log .bl-entry.player{border-left-color:#7acc7a;color:#a8cca8}.battle-log .bl-entry.enemy{border-left-color:#c55;color:#caa}.battle-log .bl-entry.zombie{border-left-color:#8a7a60;color:#987}.battle-log .bl-entry.system{border-left-color:#c9a84c;color:#d4c4a0}.battle-log .bl-entry .bl-turn{color:#5a4a38;font-size:10px;margin-right:4px}.objective-tracker{position:absolute;top:48px;left:10px;width:200px;background:#120c08e6;border:1px solid rgba(120,90,50,.35);border-radius:6px;padding:8px 12px;font-size:12px;box-shadow:0 4px 12px #0006}.objective-tracker .obj-title{color:#c9a84c;font-weight:700;font-size:14px;margin-bottom:6px;display:flex;align-items:center;gap:6px;font-family:MedievalSharp,serif}.objective-tracker .obj-distance{margin-bottom:6px;color:#8a7a60}.objective-tracker .obj-bar{height:5px;background:#785a3233;border-radius:3px;overflow:hidden;margin-bottom:4px}.objective-tracker .obj-bar-fill{height:100%;border-radius:3px;transition:width .3s;background:linear-gradient(90deg,#c44,#c9a84c,#7acc7a)}.objective-tracker .obj-floor-progress{display:flex;gap:3px;align-items:center;font-size:11px;color:#7a6a50}.minimap{position:absolute;bottom:10px;right:10px;pointer-events:auto}.minimap canvas{border:1px solid rgba(120,90,50,.4);border-radius:4px}.menu-btn{position:absolute;top:44px;left:10px;width:36px;height:36px;background:#120c08e6;border:1px solid rgba(120,90,50,.4);border-radius:4px;display:none;align-items:center;justify-content:center;pointer-events:auto;cursor:pointer}.setup-overlay{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 30%,#120e0ae0,#040408f0);display:flex;align-items:center;justify-content:center;padding:20px;pointer-events:auto;animation:setupFadeIn .3s ease-out}@keyframes setupFadeIn{0%{opacity:0}to{opacity:1}}.setup-overlay.hidden{display:none;pointer-events:none}.setup-panel{width:min(620px,100%);max-height:calc(100vh - 40px);display:flex;flex-direction:column;background:linear-gradient(170deg,#1c1610f7,#0c0906fa);border:1px solid rgba(201,168,76,.25);border-radius:14px;box-shadow:0 0 0 1px #00000080,0 24px 60px #0000008c,inset 0 1px #c9a84c14;animation:setupSlideUp .35s ease-out;overflow:hidden;overflow-x:hidden}.setup-sticky-top{flex-shrink:0;padding:20px 24px 12px;background:linear-gradient(180deg,#1c1610fc,#14100cf7);border-bottom:1px solid rgba(120,90,50,.2);z-index:2}.setup-body{flex:1;overflow-y:auto;overflow-x:hidden;padding:16px 24px;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:rgba(201,168,76,.35) rgba(14,10,8,.4)}.setup-body::-webkit-scrollbar{width:6px}.setup-body::-webkit-scrollbar-track{background:#0e0a0866;border-radius:3px}.setup-body::-webkit-scrollbar-thumb{background:#c9a84c4d;border-radius:3px}.setup-body::-webkit-scrollbar-thumb:hover{background:#c9a84c80}@keyframes setupSlideUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.setup-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.setup-title{font-family:MedievalSharp,serif;font-size:28px;color:#f0ddb0;letter-spacing:.02em}.setup-steps{display:flex;gap:8px}.setup-step-dot{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;border:2px solid rgba(120,90,50,.35);background:#14100ce6;color:#6e5a3a;transition:all .2s}.setup-step-dot.active{border-color:#c9a84c;background:#78521e66;color:#f0ddb0;box-shadow:0 0 12px #c9a84c40}.setup-step-dot.done{border-color:#7acc7a80;background:#20342299;color:#7acc7a}.setup-sub{color:#8e7a58;font-size:13px;line-height:1.5;margin-bottom:20px}.setup-king-banner{display:flex;align-items:center;gap:12px;padding:12px 16px;background:linear-gradient(90deg,#302618b3,#1e181080);border:1px solid rgba(201,168,76,.3);border-radius:10px;margin-bottom:16px}.setup-king-info{flex:1}.setup-king-name{font-family:MedievalSharp,serif;font-size:18px;color:#f0ddb0;font-weight:700}.setup-king-hint{font-size:11px;color:#8e7a58;margin-top:2px}.setup-king-lock{font-size:10px;font-weight:700;letter-spacing:.12em;color:#c9a84c;background:#c9a84c1f;border:1px solid rgba(201,168,76,.25);border-radius:4px;padding:3px 8px}.setup-cards{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.setup-card{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;border:1px solid rgba(120,90,50,.28);background:#1c1610d9;min-width:0;overflow:hidden;color:#d9c9a5;transition:all .15s ease}.setup-card.selected{border-color:#7acc7a8c;background:linear-gradient(135deg,#182a1af2,#122214f2);box-shadow:0 0 16px #7acc7a14}.setup-card-left{flex-shrink:0}.setup-card-icon{flex-shrink:0;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:8px;background:#00000040}.setup-card.selected .setup-card-icon{background:#7acc7a1a}.setup-card-body{flex:1;min-width:0;overflow:hidden}.setup-card-name-row{display:flex;align-items:baseline;gap:8px}.setup-card-name{font-family:MedievalSharp,serif;font-size:17px;font-weight:700;color:#f0ddb0;line-height:1.2}.setup-card.selected .setup-card-name{color:#bfe3bf}.setup-card-cost{font-size:13px;font-weight:700;color:#c9a84c;background:#c9a84c1f;padding:1px 6px;border-radius:4px}.setup-card.selected .setup-card-cost{color:#7acc7a;background:#7acc7a1f}.setup-card-hint{font-size:12px;color:#8e7a58;margin-top:2px;line-height:1.3}.setup-card.dimmed{opacity:.4;pointer-events:none}.setup-card-counter{flex-shrink:0;display:flex;align-items:center;gap:2px;margin-left:auto}.setup-counter-btn{width:36px;height:36px;border-radius:8px;border:1px solid rgba(120,90,50,.4);background:#0e0a08e6;color:#f0ddb0;font-size:20px;font-weight:700;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .12s;-webkit-tap-highlight-color:transparent}.setup-counter-btn:hover:not(.disabled){border-color:#c9a84c;background:#78521e66}.setup-counter-btn:active:not(.disabled){background:#78521e99;transform:scale(.95)}.setup-counter-btn.disabled{opacity:.3;cursor:default;pointer-events:none}.setup-counter-val{min-width:28px;text-align:center;font-size:18px;font-weight:700;color:#f0ddb0}.setup-gauge{margin-top:8px}.setup-gauge-row{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:6px}.setup-gauge-label{font-size:14px;color:#a99572}.setup-gauge-label b{color:#f0ddb0;font-size:18px}.setup-gauge-count{font-size:13px;color:#8e7a58;font-weight:700}.setup-gauge-bar{height:10px;border-radius:5px;background:#0e0a08cc;border:1px solid rgba(120,90,50,.25);overflow:hidden}.setup-gauge-fill{height:100%;border-radius:4px;background:linear-gradient(90deg,#7acc7a,#c9a84c);transition:width .2s ease}.setup-card-badge{position:absolute;top:8px;right:8px;width:22px;height:22px;border-radius:50%;background:#7acc7a2e;display:flex;align-items:center;justify-content:center}.setup-formation{margin-bottom:20px}.setup-formation-label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:#6e5a3a;margin-bottom:8px}.setup-formation-strip{display:flex;flex-wrap:wrap;gap:6px}.setup-formation-slot{flex:0 1 auto;display:flex;align-items:center;justify-content:center;gap:4px;padding:6px 10px;border-radius:8px;background:#162418b3;border:1px solid rgba(122,204,122,.2);color:#7acc7a;font-size:13px;font-weight:700;min-height:36px;transition:all .15s}.setup-formation-slot.king{background:#282014b3;border-color:#c9a84c4d;color:#c9a84c}.setup-formation-slot.empty{background:#14100c99;border:1px dashed rgba(120,90,50,.25);color:#4a3c28}.setup-formation-name{font-family:MedievalSharp,serif;font-size:13px}.setup-actions{flex-shrink:0;display:flex;justify-content:flex-end;gap:10px;padding:14px 24px;background:linear-gradient(0deg,#0c0906fa,#14100cf7);border-top:1px solid rgba(120,90,50,.2)}.setup-btn{padding:12px 28px;border-radius:8px;border:1px solid rgba(201,168,76,.5);background:linear-gradient(180deg,#8c5f1ef2,#5f3e14f2);color:#fff2c8;font-family:MedievalSharp,serif;font-size:15px;font-weight:700;letter-spacing:.04em;cursor:pointer;transition:all .15s;text-shadow:0 1px 2px rgba(0,0,0,.3)}.setup-btn:hover{background:linear-gradient(180deg,#a06e23f2,#6e4819f2);box-shadow:0 4px 16px #c9a84c33;transform:translateY(-1px)}.setup-btn.disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.setup-btn.secondary{background:#1e1812f2;border-color:#785a3259;color:#b9a57d}.setup-btn.secondary:hover{background:#282018f2;box-shadow:none}.setup-piece-bank{display:flex;gap:8px;margin-bottom:16px}.setup-piece-chip{flex:1;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 12px;border-radius:8px;border:1px solid rgba(120,90,50,.35);background:#18120ee6;color:#d9c9a5;font-weight:700;font-size:13px;cursor:pointer;transition:all .15s}.setup-piece-chip:hover{border-color:#c9a84c66;background:#221a12f2}.setup-piece-chip.selected{border-color:#7acc7a99;background:linear-gradient(135deg,#182a1af2,#122214f2);color:#dff5df;box-shadow:0 0 12px #7acc7a1f}.setup-chip-icon{flex-shrink:0;display:flex;align-items:center}.setup-chip-label{font-family:MedievalSharp,serif}.setup-placement-grid{display:grid;gap:4px;margin-bottom:16px}.setup-cell{aspect-ratio:1 / 1;border-radius:6px;border:1px solid rgba(120,90,50,.22);background:#18120ecc;color:#f2deb4;font-size:12px;font-weight:700;cursor:pointer;transition:all .12s;display:flex;align-items:center;justify-content:center}.setup-cell:hover{border-color:#c9a84c66;background:#241c14e6}.setup-cell.occupied{background:#203422e6;border-color:#7acc7a59}.setup-cell.selected{outline:2px solid rgba(201,168,76,.85);outline-offset:1px;box-shadow:0 0 8px #c9a84c33}.game-overlay{position:absolute;inset:0;background:#000c;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:auto;opacity:0;transition:opacity .5s}.game-overlay.visible{opacity:1}.game-overlay.hidden{pointer-events:none;display:none}.game-overlay .go-title{font-size:40px;font-weight:900;letter-spacing:4px;margin-bottom:12px;text-shadow:0 0 30px currentColor;font-family:MedievalSharp,serif}.game-overlay .go-sub{font-size:16px;color:#8a7a60;margin-bottom:24px;text-align:center;line-height:1.6}.game-overlay .go-btn{padding:14px 40px;font-size:18px;font-weight:700;background:#1e140cf2;border:2px solid #c9a84c;border-radius:4px;color:#d4c4a0;cursor:pointer;font-family:MedievalSharp,serif;letter-spacing:2px;transition:background .2s}.game-overlay .go-btn:hover{background:#3c2814f2}.toast{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);padding:12px 28px;background:#120c08f2;border:1px solid rgba(201,168,76,.5);border-radius:4px;color:#c9a84c;font-size:16px;font-weight:700;text-align:center;transition:opacity .3s;pointer-events:none;font-family:MedievalSharp,serif;text-shadow:0 0 8px rgba(201,168,76,.3)}.toast.hidden{opacity:0}.credit{position:absolute;bottom:2px;left:50%;transform:translate(-50%);font-size:9px;color:#3a2a1a}@media(max-width:600px){.status-bar{font-size:11px;height:34px;gap:6px;padding:0 6px}.piece-info{width:180px;bottom:70px;font-size:11px}.piece-info .pi-name{font-size:14px}.turn-timeline .tl-slot{width:60px;height:36px;padding:0 4px}.turn-timeline .tl-slot.active{width:80px}.turn-timeline .tl-slot.spent{width:52px}.battle-log{display:none}.objective-tracker{width:160px;font-size:11px}.action-bar .act-btn{padding:8px 14px;font-size:13px;min-width:80px}}@media(max-width:600px)and (orientation:portrait){.minimap{display:none}}.piece-popover{position:fixed;z-index:2000;pointer-events:none;min-width:160px;max-width:240px;padding:10px 14px;background:linear-gradient(180deg,#1c1610f7,#0e0a08fa);border:1px solid rgba(201,168,76,.35);border-radius:10px;box-shadow:0 6px 24px #0009,inset 0 1px #c9a84c1a;font-size:13px;color:#d9c9a5;animation:popFadeIn .12s ease-out}.piece-popover.hidden{display:none}@keyframes popFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.pop-header{display:flex;align-items:center;gap:8px;margin-bottom:8px}.pop-icon{display:flex}.pop-name{font-weight:800;font-size:15px;color:#f0e6d2}.pop-faction{font-size:11px;font-weight:700;margin-left:auto}.pop-stats{display:flex;gap:14px;font-size:12px;color:#a89878;margin-bottom:4px}.pop-stats b{color:#d9c9a5;margin-left:2px}.pop-hp{margin-bottom:6px;font-size:14px;letter-spacing:2px}.heart{display:inline-block;vertical-align:middle;margin:0 1px;width:18px;height:18px}.heart img{display:block;width:100%;height:100%;image-rendering:pixelated}.heart.filled img{filter:drop-shadow(0 0 3px rgba(232,48,48,.5))}.heart.empty img{filter:brightness(.2) saturate(0);opacity:.5}.pop-skill{margin-top:6px;padding-top:6px;border-top:1px solid rgba(120,90,50,.2);font-size:11px;color:#8e7a58;line-height:1.4}.pop-skill-name{color:#c9a84c;font-weight:700}.placement-bar{position:absolute;bottom:16px;left:50%;transform:translate(-50%);display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;padding:12px 20px;background:linear-gradient(180deg,#18120ef2,#0c0906f7);border:1px solid rgba(201,168,76,.3);border-radius:12px;box-shadow:0 8px 32px #00000080,inset 0 1px #c9a84c14;pointer-events:auto;z-index:1001;max-width:90vw;animation:setupSlideUp .3s ease-out}.placement-hint{color:#8e7a58;font-size:12px;white-space:nowrap;width:100%;text-align:center}.placement-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}.placement-chip{display:flex;align-items:center;gap:5px;padding:6px 10px;border-radius:8px;border:1px solid rgba(120,90,50,.35);background:#18120ee6;color:#d9c9a5;font-weight:700;font-size:12px;cursor:pointer;transition:all .15s}.placement-chip:hover{border-color:#c9a84c66}.placement-chip.selected{border-color:#7acc7a99;background:linear-gradient(135deg,#182a1af2,#122214f2);color:#dff5df;box-shadow:0 0 10px #7acc7a1f}.placement-bar-actions{display:flex;gap:8px;width:100%;justify-content:center}.turn-banner{position:fixed;top:8%;left:0;right:0;display:flex;flex-direction:column;align-items:center;pointer-events:none;z-index:10000;opacity:0;transition:opacity .3s ease-out}.turn-banner.visible{opacity:1}.turn-banner.fading{opacity:0;transition:opacity .5s ease-in}.banner-line{width:60vw;height:2px;background:currentColor;opacity:.5;box-shadow:0 0 12px currentColor}.banner-label{font-family:MedievalSharp,serif;font-size:clamp(36px,7vw,64px);font-weight:900;letter-spacing:.15em;text-transform:uppercase;margin:8px 0 4px;text-shadow:0 0 20px currentColor,0 0 60px currentColor,0 2px 4px rgba(0,0,0,.8);animation:banner-slide-in .4s ease-out both}.banner-sub{font-family:MedievalSharp,serif;font-size:clamp(14px,2.5vw,20px);opacity:.8;letter-spacing:.08em;text-shadow:0 0 10px currentColor,0 1px 3px rgba(0,0,0,.9);animation:banner-slide-in .4s .1s ease-out both}@keyframes banner-slide-in{0%{opacity:0;transform:translateY(12px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.banner-player{color:#7accff;background:radial-gradient(ellipse at center,rgba(40,80,140,.45) 0%,rgba(0,0,0,.25) 60%,transparent 80%)}.banner-player .banner-label{color:#ffe066}.banner-player .banner-line{background:linear-gradient(90deg,transparent,#ffe066,transparent)}.banner-enemy{color:#f66;background:radial-gradient(ellipse at center,rgba(120,30,30,.4) 0%,rgba(0,0,0,.2) 60%,transparent 80%)}.banner-enemy .banner-label{color:#f44}.banner-enemy .banner-line{background:linear-gradient(90deg,transparent,#ff4444,transparent)}.banner-zombie{color:#9a7;background:radial-gradient(ellipse at center,rgba(60,70,30,.4) 0%,rgba(0,0,0,.2) 60%,transparent 80%)}.banner-zombie .banner-label{color:#ab6}.banner-zombie .banner-line{background:linear-gradient(90deg,transparent,#aabb66,transparent)}.dice-popup{position:fixed;top:55%;left:50%;transform:translate(-50%,-50%) scale(.5);z-index:9999;background:linear-gradient(135deg,#1e140ef7,#140e0af7);border:2px solid rgba(180,140,60,.6);border-radius:16px;padding:24px 36px;text-align:center;opacity:0;transition:all .3s ease;pointer-events:none;box-shadow:0 8px 40px #000000b3,0 0 20px #b48c3c26}.dice-popup.visible{opacity:1;transform:translate(-50%,-50%) scale(1)}.dice-title{font-family:MedievalSharp,serif;font-size:16px;margin-bottom:10px;letter-spacing:2px}.dice-faces{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:12px}.dice-box{width:64px;height:64px;filter:drop-shadow(0 4px 8px rgba(0,0,0,.6));transition:transform .2s ease}.dice-img{width:100%;height:100%;image-rendering:pixelated;display:block}.dice-box.rolling{animation:dice-roll .07s linear infinite}.dice-box.settled{animation:dice-land .35s ease}.dice-plus{font-size:22px;color:#b48c3cb3;font-weight:700}.dice-result{font-family:MedievalSharp,serif;font-size:22px;color:#d4c4a0;letter-spacing:2px}.dice-total{font-size:28px;color:gold;font-weight:700;text-shadow:0 0 8px rgba(255,215,0,.4)}@keyframes dice-roll{0%{transform:rotate(0) scale(1)}25%{transform:rotate(8deg) scale(1.05)}50%{transform:rotate(-6deg) scale(.95)}75%{transform:rotate(4deg) scale(1.02)}to{transform:rotate(0) scale(1)}}@keyframes dice-land{0%{transform:scale(1.2) rotate(-10deg)}40%{transform:scale(.9) rotate(3deg)}70%{transform:scale(1.05) rotate(-1deg)}to{transform:scale(1) rotate(0)}}.ap-label{font-family:MedievalSharp,serif;font-size:14px;color:gold;padding:4px 10px;background:#b48c3c26;border:1px solid rgba(180,140,60,.3);border-radius:6px;white-space:nowrap}.ap-label b{font-size:16px;color:#ffe766}.dice-mini{font-size:11px;color:#b48c3c99}.act-btn.end-turn{background:linear-gradient(135deg,#3c1e14e6,#28140ee6);border-color:#c8643280;color:#fa6}.act-btn.end-turn:hover{background:linear-gradient(135deg,#502819f2,#3c1e12f2);border-color:#dc783cb3}
