*{margin:0;padding:0;box-sizing:border-box}#loadingScreen{position:fixed;top:0;left:0;width:100vw;height:100vh;background:linear-gradient(135deg,#1e1e1e,#2d2d2d);display:flex;justify-content:center;align-items:center;z-index:9999;transition:opacity .5s ease-out}#loadingScreen.fadeOut{opacity:0;pointer-events:none}.loadingContent{text-align:center;color:#f1f3f4;max-width:600px;padding:40px}.loadingTitle{font-size:72px;font-weight:700;margin-bottom:10px;background:linear-gradient(45deg,#4a9eff,#00d4ff);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-shadow:0 4px 10px rgba(74,158,255,.3);font-family:myFont,Times New Roman,serif;animation:titlePulse 2s ease-in-out infinite}@keyframes titlePulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.loadingSubtitle{font-size:24px;color:#aaa;margin-bottom:15px;font-family:Microsoft YaHei,sans-serif}.loadingLink{display:inline-block;color:#4a9eff;text-decoration:none;font-size:18px;margin-bottom:40px;padding:8px 16px;border:2px solid #4a9eff;border-radius:5px;transition:all .3s}.loadingLink:hover{background-color:#4a9eff;color:#fff;transform:scale(1.05);box-shadow:0 0 15px #4a9eff80}.progressBarContainer{width:100%;height:30px;background-color:#ffffff1a;border-radius:15px;overflow:hidden;margin-bottom:20px;border:2px solid rgba(255,255,255,.2);box-shadow:0 4px 8px #0000004d}.progressBar{height:100%;background:linear-gradient(90deg,#4a9eff,#00d4ff);width:0%;transition:width .3s ease;border-radius:15px;box-shadow:0 0 10px #4a9effb3;position:relative;overflow:hidden}.progressBar:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:shimmer 1.5s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.loadingText{font-size:16px;color:#999;font-family:Microsoft YaHei,sans-serif}@font-face{font-family:myFont;src:url(/fonts/%E5%BA%9E%E9%97%A8%E6%AD%A3%E9%81%93%E6%A0%87%E9%A2%98%E4%BD%93.ttf)}body{overflow:hidden}body .gameApp{width:100%;height:100vh;left:0;top:0;position:absolute}body .gameApp .interface{overflow:hidden;width:100%;height:100%;left:0;top:0;background-image:url("/imgs/background%20(3).jpg");background-size:cover}body .gameApp .interface h1{width:100%;top:15%;position:absolute;text-align:center;font-weight:lighter;font-family:myFont,Times New Roman,serif;text-shadow:white 0 0 10px;font-size:60px}body .gameApp .interface h2{width:100%;position:absolute;text-align:center;font-weight:lighter;font-family:myFont,Times New Roman,serif;text-shadow:white 0 0 10px;top:25%;font-size:40px}body .gameApp .interface .leftTopArea{width:100px;height:100px;padding:30px}body .gameApp .interface .leftTopArea button{background-color:#1e1e1e;color:#f1f3f4;width:400px;display:block;padding:10px;transition:all .2s;cursor:pointer;border:none;border-radius:100px;margin:0}body .gameApp .interface .leftTopArea button:hover{transform:scale(1.1)}body .gameApp .interface .btnList{width:300px;position:absolute;left:50%;top:40%;transform:translate(-150px)}body .gameApp .interface .btnList button{background-color:#1e1e1e;color:#f1f3f4;width:400px;display:block;margin:30px auto;transition:all .2s;cursor:pointer;border:none;border-radius:100px;font-size:30px;padding:25px 50px;font-family:myFont,Times New Roman,serif}body .gameApp .interface .btnList button:hover{transform:scale(1.1)}body .gameApp .modeChoice-interface{overflow-y:scroll}body .gameApp .modeChoice-interface .note{background-color:#000;color:#ff4500}body .gameApp .modeChoice-interface h1,body .gameApp .modeChoice-interface h2{position:static;margin-top:60px}body .gameApp .modeChoice-interface .leftTopArea{position:absolute;left:0;top:0}body .gameApp .modeChoice-interface .btnList{position:absolute;outline:solid 1px white;left:50%;top:30%;width:800px;height:520px;overflow-y:scroll;transform:translate(-400px);text-align:center;padding-top:50px;display:flex;flex-wrap:wrap;justify-content:center}body .gameApp .modeChoice-interface .btnList .btnArea{outline:solid 1px white}body .gameApp .modeChoice-interface .btnList .btnArea button{margin:15px auto;font-size:20px;width:250px;padding:10px}body .gameApp .modeChoice-interface .btnList .btnArea p{margin:10px;text-align:center}body .gameApp .modeChoice-interface .btnList .importSaveBtn{background-color:#1e1e1e;color:#f1f3f4;width:400px;display:block;transition:all .2s;cursor:pointer;border:none;border-radius:100px;margin:15px auto;font-size:20px;width:250px;padding:10px}body .gameApp .modeChoice-interface .btnList .importSaveBtn:hover{transform:scale(1.1)}body .gameApp .war-interface{background-image:url("/imgs/background%20(2).jpg")}body .gameApp .war-interface .rightTopArea{width:100px;position:absolute;right:12%;top:0}body .gameApp .war-interface .rightTopArea .backPage,body .gameApp .war-interface .rightTopArea .pause,body .gameApp .war-interface .rightTopArea .exportSaveBtn{background-color:#1e1e1e;color:#f1f3f4;width:400px;display:block;margin:30px auto;padding:10px;transition:all .2s;cursor:pointer;border:none;border-radius:100px;width:100px}body .gameApp .war-interface .rightTopArea .backPage:hover,body .gameApp .war-interface .rightTopArea .pause:hover,body .gameApp .war-interface .rightTopArea .exportSaveBtn:hover{transform:scale(1.1)}body .gameApp .help-interface{overflow-y:scroll}body .gameApp .help-interface .leftTopArea{position:absolute;left:0;top:0}body .gameApp .help-interface .content{width:80%;margin:0 auto;padding-top:50px;padding-bottom:100px;text-align:center;background-color:#ffffff80}body .gameApp .help-interface .content h2.helpTitle{text-align:center;position:static;line-height:2em}body .gameApp .help-interface .content .helpPrimaryBtn{background-color:#1e1e1e;color:#f1f3f4;padding:10px 16px;border:none;border-radius:10px;cursor:pointer;transition:transform .2s;font-size:16px}body .gameApp .help-interface .content .helpPrimaryBtn:hover{transform:scale(1.05)}body .gameApp .help-interface .content .helpHint{margin-top:6px;color:#000000b3;font-size:14px}body .gameApp .help-interface .content .helpList{text-align:left;max-width:900px;margin:0 auto 18px;padding-left:22px}body .gameApp .help-interface .content .helpList li{margin:6px 0;line-height:1.6em}body .gameApp .help-interface .content h3{margin-top:26px}body .gameApp .main-interface .btnList{width:600px;position:absolute;left:50%;top:40%;transform:translate(-300px)}body .gameApp .main-interface .version-info{position:absolute;left:50%;top:33%;transform:translate(-50%);color:#ffffffd9;font-size:18px;font-family:myFont,Times New Roman,serif}body .gameApp .main-interface .openSourceInfo{position:absolute;left:50%;bottom:90px;transform:translate(-50%);color:#e20303;font-size:25px;text-align:center;border:2px solid #071ff5;padding:10px 20px;border-radius:5px;font-family:myFont,Times New Roman,serif}body .gameApp .main-interface .openSourceInfo a{color:#4a9eff;text-decoration:underline;transition:all .2s}body .gameApp .main-interface .openSourceInfo a:hover{color:#00d4ff;text-shadow:0 0 8px rgba(74,158,255,.6)}body .gameApp .main-interface .previewNotice{position:absolute;left:50%;bottom:20px;transform:translate(-50%);color:#ff9800;font-size:16px;text-align:center;padding:8px 16px;border-radius:5px;background:#ff980026;border:1px solid rgba(255,152,0,.4);font-family:myFont,Times New Roman,serif}body .gameApp .main-interface .previewNotice a{color:#4a9eff;text-decoration:underline;transition:all .2s}body .gameApp .main-interface .previewNotice a:hover{color:#00d4ff;text-shadow:0 0 8px rgba(74,158,255,.6)}body .gameApp .cannon-interface,body .gameApp .monsters-interface{overflow-y:scroll}body .gameApp .cannon-interface h1,body .gameApp .monsters-interface h1,body .gameApp .cannon-interface h2,body .gameApp .monsters-interface h2{position:static}body .gameApp .cannon-interface .content,body .gameApp .monsters-interface .content{width:90%;margin:0 auto;overflow:hidden;display:flex;flex-wrap:wrap;justify-content:center}body .gameApp .cannon-interface .content .tower,body .gameApp .monsters-interface .content .tower,body .gameApp .cannon-interface .content .monster,body .gameApp .monsters-interface .content .monster{float:left;width:200px;height:400px;padding:10px;margin:5px;background-color:#ffffff80;transition:all .2s}body .gameApp .cannon-interface .content .tower:hover,body .gameApp .monsters-interface .content .tower:hover,body .gameApp .cannon-interface .content .monster:hover,body .gameApp .monsters-interface .content .monster:hover{background-color:#fffc}body .gameApp .cannon-interface .content .tower h3,body .gameApp .monsters-interface .content .tower h3,body .gameApp .cannon-interface .content .monster h3,body .gameApp .monsters-interface .content .monster h3{text-align:center;line-height:2em;font-family:myFont,Times New Roman,serif;font-weight:lighter}body .gameApp .cannon-interface .content .tower .tower-shape,body .gameApp .monsters-interface .content .tower .tower-shape,body .gameApp .cannon-interface .content .monster .tower-shape,body .gameApp .monsters-interface .content .monster .tower-shape,body .gameApp .cannon-interface .content .tower .monster-shape,body .gameApp .monsters-interface .content .tower .monster-shape,body .gameApp .cannon-interface .content .monster .monster-shape,body .gameApp .monsters-interface .content .monster .monster-shape{width:100px;height:100px;margin:0 auto;border-radius:50%;outline:solid 1px red}body .gameApp .cannon-interface .content .tower p,body .gameApp .monsters-interface .content .tower p,body .gameApp .cannon-interface .content .monster p,body .gameApp .monsters-interface .content .monster p{font-size:10px}body .gameApp .cannon-interface .leftTopArea,body .gameApp .monsters-interface .leftTopArea{position:absolute;right:10%;top:0}body .gameApp .cannon-interface .leftTopArea .backPage,body .gameApp .monsters-interface .leftTopArea .backPage{width:100px}body .gameApp #mainCanvas{left:0;top:0;outline:solid 1px}body .choiceBtn{width:200px;height:100vh;position:absolute;right:0;top:0;overflow-y:scroll}body .choiceBtn .Battery{color:#9cdcfe}body .choiceBtn .Building{color:gold}body .choiceBtn button{width:100px;display:block;margin:5px auto;padding:3px;font-size:14px;background-color:#1e1e1e;text-shadow:#88844b;transition:all .2s}body .choiceBtn button:disabled{opacity:.5}body .choiceBtn button:hover{color:#fff;transform:scale(1.1)}body .choiceBtn button:active{transform:scale(.9)}#smallLevelUpPanel{position:absolute;width:400px;height:150px;right:20%;bottom:5%;padding:5px;border-radius:5px;background-color:#ffffff80}#smallLevelUpPanel .levelUpItems .levelUpItem{float:left;width:60px;margin:2px;transition:all .2s;cursor:pointer;-webkit-user-select:none;user-select:none;background-color:#ffffff80;border-radius:5px;font-size:12px;padding:3px}#smallLevelUpPanel .levelUpItems .levelUpItem:hover{transform:scale(1.1)}#smallLevelUpPanel .levelUpItems .levelUpItem .name{height:35px;font-size:10px}#smallLevelUpPanel .levelUpItems .levelUpItem .icon{margin:0 auto}#smallLevelUpPanel .levelUpItems .levelUpItem .price{text-align:center;font-size:12px;font-weight:700}#smallLevelUpPanel .otherItems .item{float:left;width:60px;margin:2px;transition:all .2s;cursor:pointer;-webkit-user-select:none;user-select:none;background-color:#ffffff80;border-radius:5px;font-size:12px;padding:3px}#smallLevelUpPanel .otherItems .item:hover{transform:scale(1.1)}#smallLevelUpPanel .otherItems .levelDown .icon,#smallLevelUpPanel .otherItems .sell .icon{width:50px;height:50px;margin:0 auto;background-image:url(/icon/down.png);background-size:50px 50px}#smallLevelUpPanel .otherItems .levelDown .inner-text,#smallLevelUpPanel .otherItems .sell .inner-text{text-align:center;font-weight:bolder}#smallLevelUpPanel .otherItems .sell .icon{background-image:url(/icon/sell.png)}#spawnerPanel{position:absolute;min-width:250px;max-width:320px;padding:8px;border-radius:5px;background-color:#ffffff80;z-index:1000}#spawnerPanel .spawner-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid rgba(0,0,0,.2)}#spawnerPanel .spawner-header .spawner-title{color:#333;font-weight:700;font-size:14px}#spawnerPanel .spawner-header .spawner-close{cursor:pointer;color:#666;font-size:18px;line-height:1;transition:all .2s}#spawnerPanel .spawner-header .spawner-close:hover{color:#333;transform:scale(1.1)}#spawnerPanel .spawner-target-section{margin-bottom:8px}#spawnerPanel .spawner-target-section label{color:#333;font-size:12px;margin-right:8px}#spawnerPanel .spawner-target-section .spawner-target-select{padding:4px 8px;border-radius:5px;border:none;background-color:#ffffff80;color:#333;font-size:12px;cursor:pointer}#spawnerPanel .spawner-target-section .spawner-target-select:focus{outline:none}#spawnerPanel .spawner-monster-list{max-height:200px;overflow-y:auto}#spawnerPanel .spawner-monster-list .spawner-monster-item{display:flex;justify-content:space-between;align-items:center;padding:6px 8px;margin-bottom:3px;border-radius:5px;background-color:#ffffff80;transition:all .2s}#spawnerPanel .spawner-monster-list .spawner-monster-item .monster-name{color:#333;font-size:12px;font-weight:700;flex:1}#spawnerPanel .spawner-monster-list .spawner-monster-item .monster-cost{color:#b8860b;font-size:11px;margin:0 10px;font-weight:700}#spawnerPanel .spawner-monster-list .spawner-monster-item .monster-status{color:#666;font-size:10px;text-align:right;min-width:70px}#spawnerPanel .spawner-monster-list .spawner-monster-item.available{cursor:pointer}#spawnerPanel .spawner-monster-list .spawner-monster-item.available:hover{transform:scale(1.05);background-color:#ffffffb3}#spawnerPanel .spawner-monster-list .spawner-monster-item.available .monster-status{color:#228b22}#spawnerPanel .spawner-monster-list .spawner-monster-item.disabled{opacity:.6;cursor:not-allowed}#spawnerPanel .spawner-monster-list .spawner-monster-item.disabled .monster-name{color:#666}#spawnerPanel .spawner-hint{color:#c00;font-size:12px;text-align:center;padding:10px;display:none}#manualCannonPanel{position:absolute;min-width:220px;max-width:280px;padding:8px;border-radius:5px;background-color:#ffffff80;z-index:1000}#manualCannonPanel .cannon-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid rgba(0,0,0,.2)}#manualCannonPanel .cannon-header .cannon-title{color:#333;font-weight:700;font-size:14px}#manualCannonPanel .cannon-header .cannon-close{cursor:pointer;color:#666;font-size:18px;line-height:1;transition:all .2s}#manualCannonPanel .cannon-header .cannon-close:hover{color:#333;transform:scale(1.1)}#manualCannonPanel .cannon-stats{margin-bottom:8px}#manualCannonPanel .cannon-stats .cannon-stat{display:flex;justify-content:space-between;align-items:center;padding:3px 0;font-size:12px}#manualCannonPanel .cannon-stats .cannon-stat .stat-label{color:#555}#manualCannonPanel .cannon-stats .cannon-stat .cannon-ammo{color:#b8860b;font-weight:700}#manualCannonPanel .cannon-stats .cannon-stat .cannon-damage{color:#c00;font-weight:700}#manualCannonPanel .cannon-stats .cannon-stat .cannon-range{color:#228b22}#manualCannonPanel .cannon-reload-bar{height:4px;background-color:#0003;border-radius:2px;margin-bottom:8px;overflow:hidden}#manualCannonPanel .cannon-reload-bar .cannon-reload-progress{height:100%;width:0%;background-color:#4a9eff;border-radius:2px;transition:width .1s ease}#manualCannonPanel .cannon-actions{display:flex;flex-direction:column;gap:4px}#manualCannonPanel .cannon-actions .cannon-btn{padding:6px 10px;border:none;border-radius:5px;font-size:12px;cursor:pointer;transition:all .2s;color:#333;background-color:#ffffff80}#manualCannonPanel .cannon-actions .cannon-btn:hover:not(:disabled){transform:scale(1.05);background-color:#ffffffb3}#manualCannonPanel .cannon-actions .cannon-btn.cannon-fire-btn,#manualCannonPanel .cannon-actions .cannon-btn.cannon-semi-btn{font-weight:700}#manualCannonPanel .cannon-actions .cannon-btn.cannon-clear-btn{display:none;color:#c00}#manualCannonPanel .cannon-actions .cannon-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}#manualCannonPanel .cannon-hint{color:#666;font-size:11px;text-align:center;padding:6px 0 0;font-style:italic}button{color:#fff}#speedControlPanel{position:fixed;right:20px;bottom:20px;min-width:280px;min-height:100px;max-width:90vw;max-height:90vh;background-color:#1e1e1e99;padding:8px;border-radius:8px;border:1px solid rgba(255,255,255,.2);box-shadow:0 4px 6px #0000004d;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);z-index:1000;-webkit-user-select:none;user-select:none;overflow:auto;resize:both}#speedControlPanel:hover{background-color:#1e1e1ebf}#speedControlPanel.dragging{opacity:.85;cursor:grabbing}#speedControlPanel .dragHandle{color:#f1f3f4;font-size:13px;text-align:center;padding:4px 8px;margin-bottom:6px;background-color:#0000004d;border-radius:4px;font-weight:700;cursor:grab}#speedControlPanel .dragHandle:active{cursor:grabbing}#speedControlPanel .speedButtons{display:flex;gap:4px;justify-content:center}#speedControlPanel .speedBtn{background-color:#2a2a2acc;color:#f1f3f4;border:2px solid rgba(68,68,68,.6);padding:5px 8px;cursor:pointer;border-radius:4px;font-size:12px;transition:all .2s;width:38px}#speedControlPanel .speedBtn:hover{background-color:#3a3a3ae6;transform:scale(1.08);border-color:#646464cc}#speedControlPanel .speedBtn.active{background-color:#4a9effe6;border-color:#2080ffcc;font-weight:700;box-shadow:0 0 8px #4a9eff80}#speedControlPanel .panelSection{margin:8px 0;padding:6px 0;border-top:1px solid rgba(255,255,255,.1)}#speedControlPanel .panelSection:first-child{border-top:none;padding-top:0}#speedControlPanel .sectionTitle{color:#aaa;font-size:11px;text-align:center;margin-bottom:4px;font-weight:700}#speedControlPanel .viewButtons{display:flex;flex-direction:column;gap:6px;align-items:center}#speedControlPanel .zoomButtons{display:flex;align-items:center;gap:8px}#speedControlPanel .zoomButtons #zoomLevel{color:#f1f3f4;font-size:12px;min-width:45px;text-align:center}#speedControlPanel .zoomBtn{background-color:#2a2a2acc;color:#f1f3f4;border:2px solid rgba(68,68,68,.6);padding:4px 10px;cursor:pointer;border-radius:4px;font-size:14px;font-weight:700;transition:all .2s}#speedControlPanel .zoomBtn:hover{background-color:#3a3a3ae6;transform:scale(1.08);border-color:#646464cc}#speedControlPanel .homeBtn{background-color:#2a2a2acc;color:#f1f3f4;border:2px solid rgba(68,68,68,.6);padding:5px 12px;cursor:pointer;border-radius:4px;font-size:11px;transition:all .2s}#speedControlPanel .homeBtn:hover{background-color:#3a3a3ae6;transform:scale(1.05);border-color:#646464cc}.toggleCheatBtn{width:100%;background-color:#ff6400b3;color:#fff;border:2px solid rgba(255,100,0,.9);padding:6px 12px;cursor:pointer;border-radius:4px;font-size:12px;font-weight:700;transition:all .2s}.toggleCheatBtn:hover{background-color:#ff6400e6;transform:scale(1.05);box-shadow:0 0 10px #ff640099}.toggleCheatBtn.active{background-color:#f00c;border-color:red}.cheatButtons{display:flex;gap:4px;justify-content:center;flex-wrap:wrap}.cheatButtons.multiline{max-width:200px;margin:0 auto}.cheatBtn{background-color:#2a2a2acc;color:#f1f3f4;border:2px solid rgba(68,68,68,.6);padding:4px 8px;cursor:pointer;border-radius:3px;font-size:11px;transition:all .2s;min-width:40px}.cheatBtn:hover{background-color:#3a3a3ae6;transform:scale(1.05);border-color:#646464cc}.cheatBtn.active{background-color:#ffa500cc;border-color:#ff8c00e6;font-weight:700}.toggleOption{text-align:center;padding:4px}.toggleOption label{display:flex;align-items:center;justify-content:center;gap:6px;color:#f1f3f4;font-size:11px;cursor:pointer}.toggleOption input[type=checkbox]{width:16px;height:16px;cursor:pointer}.customDialog,.confirmDialog{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#000000b3;display:flex;justify-content:center;align-items:center;z-index:10000;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.customDialog .dialogContent,.confirmDialog .dialogContent{background-color:#1e1e1ef2;padding:24px;border-radius:12px;border:2px solid rgba(255,255,255,.3);box-shadow:0 8px 32px #00000080;min-width:320px;text-align:center}.customDialog h3,.confirmDialog h3{color:#f1f3f4;margin-bottom:16px;font-size:20px}.confirmDialog p{color:#ddd;margin-bottom:12px;font-size:16px}.confirmDialog p.warning{color:#ff6b6b;font-weight:700;font-size:14px}.customDialog input[type=number]{width:100%;padding:10px;margin-bottom:16px;background-color:#ffffff1a;border:2px solid rgba(255,255,255,.3);border-radius:6px;color:#f1f3f4;font-size:16px;text-align:center}.customDialog input[type=number]:focus{outline:none;border-color:#4a9eff}.dialogButtons{display:flex;gap:12px;justify-content:center}.dialogBtn{padding:10px 24px;border:none;border-radius:6px;font-size:14px;font-weight:700;cursor:pointer;transition:all .2s;background-color:#4a9eff;color:#fff}.dialogBtn:hover{background-color:#3080df;transform:scale(1.05)}.dialogBtn.cancel{background-color:#666}.dialogBtn.cancel:hover{background-color:#555}#cheatModeIndicator{position:fixed;left:0;bottom:0;background-color:red;color:#000;padding:8px 16px;font-size:16px;font-weight:700;z-index:9998;border-top-right-radius:8px;box-shadow:0 -2px 10px #ff000080;animation:cheatPulse 2s ease-in-out infinite}@keyframes cheatPulse{0%,to{opacity:1}50%{opacity:.7}}.speedBoostIndicator{position:fixed;bottom:60px;left:50%;transform:translate(-50%);background:linear-gradient(135deg,#0096ffe6,#0064c8e6);padding:12px 24px;border-radius:30px;z-index:9999;box-shadow:0 4px 20px #0096ff80;animation:speedBoostAppear .2s ease-out}.speedBoostIndicator .speedBoostContent{display:flex;align-items:center;gap:10px;color:#fff;font-weight:700;font-size:18px}.speedBoostIndicator .speedBoostIcon{font-size:20px;animation:speedBoostIconPulse .5s ease-in-out infinite}.speedBoostIndicator .speedBoostText{text-shadow:0 2px 4px rgba(0,0,0,.3)}.speedBoostIndicator .speedBoostBar{margin-top:8px;height:4px;background:#ffffff4d;border-radius:2px;overflow:hidden}.speedBoostIndicator .speedBoostProgress{height:100%;background:#fff;border-radius:2px;animation:speedBoostProgressAnim 1s linear infinite}.mobileControlsToggle,.mobilePauseBtn{display:none}@media(orientation:landscape)and (max-width:900px){body,body .gameApp{width:100vw;height:100dvh;overflow:hidden}body .gameApp .war-interface{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100dvh;touch-action:none}body .gameApp .war-interface #mainCanvas{display:block;width:100vw!important;height:100dvh!important;max-width:none;touch-action:none}body .gameApp .war-interface .rightTopArea{z-index:1100;right:max(8px,env(safe-area-inset-right));top:max(8px,env(safe-area-inset-top));width:auto;display:flex;gap:6px}body .gameApp .war-interface .rightTopArea .backPage,body .gameApp .war-interface .rightTopArea .pause,body .gameApp .war-interface .rightTopArea .exportSaveBtn{width:auto;min-width:44px;min-height:44px;margin:0;padding:8px 12px}body .gameApp .war-interface .mobileControlsToggle{display:block;position:fixed;z-index:1200;right:max(8px,env(safe-area-inset-right));bottom:max(8px,env(safe-area-inset-bottom));min-width:56px;min-height:44px;padding:8px 14px;border:1px solid rgba(255,255,255,.35);border-radius:8px;background:#1e1e1ed9;color:#fff;font-size:15px;touch-action:manipulation}body .gameApp .war-interface #speedControlPanel{z-index:1150;left:8px!important;right:8px!important;top:auto!important;bottom:calc(60px + max(8px,env(safe-area-inset-bottom)))!important;width:auto!important;min-width:0;max-width:none;max-height:min(70dvh,420px);padding:8px;resize:none;transform:translateY(calc(100% + 70px));opacity:0;pointer-events:none;transition:transform .16s ease,opacity .16s ease}body .gameApp .war-interface #speedControlPanel.mobileControlsOpen{transform:translateY(0);opacity:1;pointer-events:auto}body .gameApp .war-interface #speedControlPanel .dragHandle,body .gameApp .war-interface #speedControlPanel button,body .gameApp .war-interface #speedControlPanel label{min-height:44px}body .gameApp .war-interface #speedControlPanel .mobilePauseBtn{display:block;width:100%;margin:4px 0;padding:8px;border:1px solid rgba(255,255,255,.25);border-radius:4px;background:#2a2a2acc;color:#fff}body .gameApp .war-interface #speedControlPanel .dragHandle{padding:12px 8px;touch-action:none}body .choiceBtn{z-index:1050;width:min(190px,30vw);height:100dvh;right:max(0px,env(safe-area-inset-right));padding:max(8px,env(safe-area-inset-top)) 4px max(8px,env(safe-area-inset-bottom));touch-action:pan-y}body .choiceBtn button{width:min(160px,calc(100% - 8px));min-height:44px;padding:8px 4px;margin:6px auto;touch-action:manipulation}body .gameApp #smallLevelUpPanel{z-index:1180;right:calc(min(190px,30vw) + 8px);bottom:calc(60px + max(8px,env(safe-area-inset-bottom)));width:min(400px,calc(100vw - min(190px,30vw) - 24px));max-width:calc(100vw - 24px);overflow-x:auto}}@keyframes speedBoostAppear{0%{opacity:0;transform:translate(-50%) translateY(20px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes speedBoostIconPulse{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}@keyframes speedBoostProgressAnim{0%{width:0%}to{width:100%}}.main-interface .rightTopArea{position:absolute;right:30px;top:30px}.main-interface .rightTopArea .noteBtn{position:relative;background-color:#1e1e1e;color:#f1f3f4;border:none;border-radius:100px;padding:10px 25px;font-size:16px;cursor:pointer;transition:all .2s}.main-interface .rightTopArea .noteBtn:hover{transform:scale(1.1);box-shadow:0 0 15px #4a9eff80}.main-interface .rightTopArea .noteBtn .noteBtnBadge{position:absolute;top:-5px;right:-5px;background-color:#f44;color:#fff;font-size:12px;min-width:18px;height:18px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-weight:700}.multiplayer-connect-interface .leftTopArea,.multiplayer-lobby-interface .leftTopArea,.multiplayer-waiting-interface .leftTopArea{position:absolute;left:0;top:0}.multiplayer-connect-interface .multiplayer-content{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:400px;padding:30px;background-color:#1e1e1ed9;border-radius:20px}.multiplayer-connect-interface .input-group{margin-bottom:20px}.multiplayer-connect-interface .input-group label{display:block;color:#ffffffb3;font-size:14px;margin-bottom:8px;font-family:myFont,Times New Roman,serif}.multiplayer-connect-interface .input-group input{width:100%;padding:12px 16px;background-color:#ffffff1a;border:2px solid rgba(255,255,255,.2);border-radius:100px;color:#f1f3f4;font-size:16px;transition:all .2s}.multiplayer-connect-interface .input-group input:focus{outline:none;border-color:#ffffff80}.multiplayer-connect-interface .input-group input::placeholder{color:#666}.multiplayer-connect-interface .connect-btn{background-color:#1e1e1e;color:#f1f3f4;display:block;padding:14px 32px;transition:all .2s;cursor:pointer;border:none;border-radius:100px;font-family:myFont,Times New Roman,serif;font-size:18px;font-weight:700;width:100%;margin-top:10px}.multiplayer-connect-interface .connect-btn:hover:not(:disabled){transform:scale(1.1)}.multiplayer-connect-interface .connect-btn:disabled{opacity:.5;cursor:not-allowed}.multiplayer-connect-interface .connection-status{text-align:center;margin-top:16px;padding:8px;border-radius:100px;font-size:14px;font-family:myFont,Times New Roman,serif}.multiplayer-connect-interface .connection-status.info{color:#aaa}.multiplayer-connect-interface .connection-status.success{color:#6bff6b;background-color:#6bff6b1a}.multiplayer-connect-interface .connection-status.error{color:#ff6b6b;background-color:#ff6b6b1a}.multiplayer-lobby-interface .lobby-header{position:absolute;right:30px;top:30px;color:#f1f3f4;font-size:16px;font-family:myFont,Times New Roman,serif}.multiplayer-lobby-interface .lobby-header .lobby-player-label{background-color:#1e1e1ecc;padding:8px 20px;border-radius:100px}.multiplayer-lobby-interface .lobby-content{position:absolute;left:50%;top:55%;transform:translate(-50%,-50%);width:500px;max-height:70vh}.multiplayer-lobby-interface .room-list-section{background-color:#1e1e1ed9;border-radius:20px;overflow:hidden;margin-bottom:20px}.multiplayer-lobby-interface .room-list-header{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;background-color:#0000004d;color:#f1f3f4;font-weight:700;font-family:myFont,Times New Roman,serif}.multiplayer-lobby-interface .room-list-header .refresh-btn{background-color:#1e1e1e;color:#f1f3f4;display:block;transition:all .2s;cursor:pointer;border:none;border-radius:100px;font-family:myFont,Times New Roman,serif;font-size:18px;font-weight:700;padding:6px 16px;font-size:12px}.multiplayer-lobby-interface .room-list-header .refresh-btn:hover:not(:disabled){transform:scale(1.1)}.multiplayer-lobby-interface .room-list-header .refresh-btn:disabled{opacity:.5;cursor:not-allowed}.multiplayer-lobby-interface .room-list-container{max-height:300px;overflow-y:auto;padding:10px}.multiplayer-lobby-interface .empty-room-list{text-align:center;color:#888;padding:40px 20px;font-size:16px;font-family:myFont,Times New Roman,serif}.multiplayer-lobby-interface .room-item{display:flex;align-items:center;padding:12px 16px;margin-bottom:8px;background-color:#ffffff0d;border-radius:100px;transition:all .2s}.multiplayer-lobby-interface .room-item:hover{background-color:#ffffff1a}.multiplayer-lobby-interface .room-item.room-full{opacity:.6}.multiplayer-lobby-interface .room-item .room-icon{font-size:20px;margin-right:12px}.multiplayer-lobby-interface .room-item .room-name{flex:1;color:#f1f3f4;font-size:14px;font-family:myFont,Times New Roman,serif}.multiplayer-lobby-interface .room-item .room-players{color:#aaa;font-size:12px;margin-right:12px}.multiplayer-lobby-interface .room-item .join-room-btn{background-color:#1e1e1e;color:#f1f3f4;display:block;transition:all .2s;cursor:pointer;border:none;border-radius:100px;font-family:myFont,Times New Roman,serif;font-size:18px;font-weight:700;padding:6px 20px;font-size:12px}.multiplayer-lobby-interface .room-item .join-room-btn:hover:not(:disabled){transform:scale(1.1)}.multiplayer-lobby-interface .room-item .join-room-btn:disabled{opacity:.5;cursor:not-allowed}.multiplayer-lobby-interface .lobby-actions{display:flex;gap:12px;margin-bottom:16px}.multiplayer-lobby-interface .lobby-btn{background-color:#1e1e1e;color:#f1f3f4;display:block;padding:14px 32px;transition:all .2s;cursor:pointer;border:none;border-radius:100px;font-family:myFont,Times New Roman,serif;font-size:18px;font-weight:700;flex:1;text-align:center}.multiplayer-lobby-interface .lobby-btn:hover:not(:disabled){transform:scale(1.1)}.multiplayer-lobby-interface .lobby-btn:disabled{opacity:.5;cursor:not-allowed}.multiplayer-lobby-interface .lobby-btn.searching{background-color:#ff9800;animation:searchPulse 1.5s ease-in-out infinite}.multiplayer-lobby-interface .match-status{text-align:center;color:#aaa;font-size:14px;font-family:myFont,Times New Roman,serif}.multiplayer-lobby-interface .match-status.success{color:#6bff6b}.multiplayer-lobby-interface .match-status.error{color:#ff6b6b}@keyframes searchPulse{0%,to{opacity:1}50%{opacity:.7}}.multiplayer-dialog{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#000000b3;display:flex;justify-content:center;align-items:center;z-index:10000;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.multiplayer-dialog .dialog-content{background-color:#1e1e1ef2;padding:28px;border-radius:20px;min-width:380px}.multiplayer-dialog .dialog-content h3{color:#f1f3f4;text-align:center;margin-bottom:20px;font-size:20px;font-family:myFont,Times New Roman,serif}.multiplayer-dialog .dialog-body{margin-bottom:20px}.multiplayer-dialog .input-group{margin-bottom:16px}.multiplayer-dialog .input-group label{display:block;color:#ffffffb3;font-size:14px;margin-bottom:8px;font-family:myFont,Times New Roman,serif}.multiplayer-dialog .input-group input[type=text]{width:100%;padding:10px 16px;background-color:#ffffff1a;border:2px solid rgba(255,255,255,.2);border-radius:100px;color:#f1f3f4;font-size:14px}.multiplayer-dialog .input-group input[type=text]:focus{outline:none;border-color:#ffffff80}.multiplayer-dialog .map-size-group{margin-bottom:16px}.multiplayer-dialog .map-size-group>label{display:block;color:#ffffffb3;font-size:14px;margin-bottom:10px;font-family:myFont,Times New Roman,serif}.multiplayer-dialog .map-size-group .radio-options{display:flex;flex-direction:column;gap:8px}.multiplayer-dialog .map-size-group .radio-option{display:flex;align-items:center;padding:10px 16px;background-color:#ffffff0d;border-radius:100px;cursor:pointer;transition:all .2s}.multiplayer-dialog .map-size-group .radio-option:hover{background-color:#ffffff1a}.multiplayer-dialog .map-size-group .radio-option input[type=radio]{margin-right:10px;accent-color:#f1f3f4}.multiplayer-dialog .map-size-group .radio-option span{color:#ddd;font-size:14px;font-family:myFont,Times New Roman,serif}.multiplayer-dialog .checkbox-group label{display:flex;align-items:center;color:#ddd;font-size:14px;cursor:pointer;font-family:myFont,Times New Roman,serif}.multiplayer-dialog .checkbox-group label input[type=checkbox]{margin-right:10px;accent-color:#f1f3f4}.multiplayer-dialog .dialog-buttons{display:flex;gap:12px;justify-content:center}.multiplayer-dialog .dialog-buttons .dialog-btn{background-color:#1e1e1e;color:#f1f3f4;display:block;transition:all .2s;cursor:pointer;border:none;border-radius:100px;font-family:myFont,Times New Roman,serif;font-size:18px;font-weight:700;padding:10px 28px;font-size:14px}.multiplayer-dialog .dialog-buttons .dialog-btn:hover:not(:disabled){transform:scale(1.1)}.multiplayer-dialog .dialog-buttons .dialog-btn:disabled{opacity:.5;cursor:not-allowed}.multiplayer-dialog .dialog-buttons .dialog-btn.cancel{background-color:#444}.multiplayer-waiting-interface .waiting-room-info{position:absolute;left:50%;top:28%;transform:translate(-50%);color:#aaa;font-size:16px;font-family:myFont,Times New Roman,serif;background-color:#1e1e1ecc;padding:8px 24px;border-radius:100px}.multiplayer-waiting-interface .waiting-content{position:absolute;left:50%;top:55%;transform:translate(-50%,-50%);width:450px;text-align:center}.multiplayer-waiting-interface .waiting-player-list{margin-bottom:24px}.multiplayer-waiting-interface .player-slot{margin-bottom:16px;padding:16px 20px;background-color:#1e1e1ed9;border-radius:20px}.multiplayer-waiting-interface .player-slot.filled.ready{box-shadow:0 0 10px #6bff6b4d}.multiplayer-waiting-interface .player-slot .player-number{color:#888;font-size:12px;text-align:left;margin-bottom:8px;font-family:myFont,Times New Roman,serif}.multiplayer-waiting-interface .player-slot .player-card{display:flex;align-items:center;gap:16px}.multiplayer-waiting-interface .player-slot .player-avatar{width:50px;height:50px;border-radius:50%;flex-shrink:0}.multiplayer-waiting-interface .player-slot .player-avatar.empty{opacity:.3}.multiplayer-waiting-interface .player-slot .player-info{flex:1;text-align:left}.multiplayer-waiting-interface .player-slot .player-info .player-name{color:#f1f3f4;font-size:16px;font-weight:700;font-family:myFont,Times New Roman,serif}.multiplayer-waiting-interface .player-slot .player-info .host-badge{display:inline-block;margin-left:8px;padding:2px 10px;background-color:#ffd7004d;color:gold;font-size:10px;border-radius:100px;font-family:myFont,Times New Roman,serif}.multiplayer-waiting-interface .player-slot .player-status{font-size:14px;font-family:myFont,Times New Roman,serif}.multiplayer-waiting-interface .player-slot .player-status.ready{color:#6bff6b}.multiplayer-waiting-interface .player-slot .player-status.waiting{color:#888}.multiplayer-waiting-interface .ready-btn{background-color:#1e1e1e;color:#f1f3f4;display:block;padding:14px 32px;transition:all .2s;cursor:pointer;border:none;border-radius:100px;font-family:myFont,Times New Roman,serif;font-size:18px;font-weight:700;width:200px;margin:0 auto}.multiplayer-waiting-interface .ready-btn:hover:not(:disabled){transform:scale(1.1)}.multiplayer-waiting-interface .ready-btn:disabled{opacity:.5;cursor:not-allowed}.multiplayer-waiting-interface .ready-btn.ready{background-color:#2d5a2d}.multiplayer-waiting-interface .game-countdown{display:inline-block;margin-top:16px;padding:12px 28px;background-color:#ff980033;color:#ff9800;font-size:18px;font-weight:700;font-family:myFont,Times New Roman,serif;border-radius:100px;animation:countdownPulse 1s ease-in-out infinite}.multiplayer-waiting-interface .waiting-hint{margin-top:16px;color:#888;font-size:14px;font-family:myFont,Times New Roman,serif}.multiplayer-waiting-interface .waiting-hint.error{color:#ff6b6b}@keyframes countdownPulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.notePanel{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#000000b3;display:flex;justify-content:center;align-items:stretch;z-index:10000;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.notePanel .notePanelContent{position:relative;background-color:#1e1e1ef2;width:50vw;height:100vh;border-radius:0;border:none;border-left:2px solid rgba(255,255,255,.3);border-right:2px solid rgba(255,255,255,.3);box-shadow:0 0 32px #00000080;overflow:hidden;display:flex;flex-direction:column}@media(max-width:800px){.notePanel .notePanelContent{width:100vw;border:none}}.notePanel .noteCloseBtn{position:absolute;top:10px;right:15px;background:none;border:none;color:#aaa;font-size:28px;cursor:pointer;z-index:1;transition:all .2s}.notePanel .noteCloseBtn:hover{color:#fff;transform:scale(1.2)}.notePanel .notePanelTitle{color:#f1f3f4;text-align:center;padding:20px;margin:0;font-size:24px;border-bottom:1px solid rgba(255,255,255,.1)}.notePanel .noteListView{display:flex;flex-direction:column;flex:1;min-height:0}.notePanel .noteListContainer{flex:1;min-height:0;overflow-y:auto;padding:10px 20px}.notePanel .noteListItem{padding:15px;margin:8px 0;background-color:#ffffff0d;border-radius:8px;cursor:pointer;transition:all .2s;display:flex;justify-content:space-between;align-items:center}.notePanel .noteListItem:hover{background-color:#ffffff26;transform:translate(5px)}.notePanel .noteListItem.unread{border-left:3px solid #ff4444}.notePanel .noteListItem .noteTitle{color:#f1f3f4;font-size:16px}.notePanel .noteListItem .unreadBadge{color:#f44;font-size:14px;font-weight:700}.notePanel .noteListBtns,.notePanel .noteContentBtns{display:flex;gap:10px;margin:15px 20px;justify-content:center}.notePanel .noteIgnoreAllBtn,.notePanel .noteUnreadAllBtn{flex:1;padding:12px 24px;background-color:#666;color:#fff;border:none;border-radius:6px;font-size:14px;cursor:pointer;transition:all .2s}.notePanel .noteIgnoreAllBtn:hover,.notePanel .noteUnreadAllBtn:hover{background-color:#555;transform:scale(1.02)}.notePanel .noteUnreadAllBtn{background-color:#555}.notePanel .noteUnreadAllBtn:hover{background-color:#444}.notePanel .noteContentView{display:flex;flex-direction:column;flex:1;min-height:0}.notePanel .noteBackBtn{align-self:flex-start;margin:15px 20px 0;padding:8px 16px;background-color:transparent;color:#4a9eff;border:1px solid #4a9eff;border-radius:4px;font-size:14px;cursor:pointer;transition:all .2s}.notePanel .noteBackBtn:hover{background-color:#4a9eff1a}.notePanel .noteContentTitle{color:#f1f3f4;text-align:center;padding:15px 20px;margin:0;font-size:22px}.notePanel .noteContentBody{flex:1;min-height:0;max-height:calc(100vh - 280px);overflow-y:auto;padding:0 25px 20px;color:#ddd;line-height:1.8}.notePanel .noteContentBody h1,.notePanel .noteContentBody h2,.notePanel .noteContentBody h3{color:#f1f3f4;margin:15px 0 10px}.notePanel .noteContentBody h1{font-size:20px}.notePanel .noteContentBody h2{font-size:18px}.notePanel .noteContentBody h3{font-size:16px}.notePanel .noteContentBody p{margin:10px 0}.notePanel .noteContentBody ul{padding-left:20px;margin:10px 0}.notePanel .noteContentBody li{margin:5px 0}.notePanel .noteContentBody code{background-color:#ffffff1a;padding:2px 6px;border-radius:3px;font-family:monospace}.notePanel .noteContentBody strong{color:#fff}.notePanel .noteContentBody a{color:#4a9eff;text-decoration:none;transition:color .2s}.notePanel .noteContentBody a:hover{color:#6bb3ff;text-decoration:underline}.notePanel .noteNavBtns{display:flex;gap:10px;margin:15px 20px 0;justify-content:space-between}.notePanel .noteNavBtn{flex:1;padding:10px 20px;background-color:#444;color:#ddd;border:1px solid #555;border-radius:6px;font-size:14px;cursor:pointer;transition:all .2s}.notePanel .noteNavBtn:hover:not(:disabled){background-color:#555;border-color:#666}.notePanel .noteNavBtn:disabled{opacity:.4;cursor:not-allowed}.notePanel .noteReadBtn,.notePanel .noteUnreadBtn{flex:1;padding:12px 24px;background-color:#4a9eff;color:#fff;border:none;border-radius:6px;font-size:14px;font-weight:700;cursor:pointer;transition:all .2s}.notePanel .noteReadBtn:hover,.notePanel .noteUnreadBtn:hover{background-color:#3080df;transform:scale(1.02)}.notePanel .noteUnreadBtn{background-color:#666;font-weight:400}.notePanel .noteUnreadBtn:hover{background-color:#555}.game-end-modal{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#000000d9;display:flex;justify-content:center;align-items:center;z-index:10000;opacity:0;transition:opacity .3s ease}.game-end-modal.show{opacity:1}.game-end-content{background:linear-gradient(135deg,#2d2d2d,#1e1e1e);border-radius:20px;padding:50px 60px;text-align:center;box-shadow:0 10px 40px #00000080;border:2px solid rgba(74,158,255,.3);transform:scale(.8);animation:modalAppear .3s ease forwards}@keyframes modalAppear{to{transform:scale(1)}}.game-end-icon{font-size:80px;margin-bottom:20px;animation:iconBounce .6s ease}.game-end-icon.victory{filter:drop-shadow(0 0 20px rgba(255,215,0,.6))}.game-end-icon.defeat{filter:drop-shadow(0 0 20px rgba(255,69,58,.6))}@keyframes iconBounce{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.game-end-title{font-size:48px;font-weight:700;margin-bottom:15px;background:linear-gradient(45deg,#4a9eff,#00d4ff);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;font-family:Microsoft YaHei,sans-serif}.game-end-message{font-size:20px;color:#ccc;margin-bottom:40px;font-family:Microsoft YaHei,sans-serif}.game-end-buttons{display:flex;gap:20px;justify-content:center}.game-end-btn{padding:15px 40px;font-size:18px;border:none;border-radius:10px;cursor:pointer;font-family:Microsoft YaHei,sans-serif;transition:all .3s ease;font-weight:700}.game-end-btn.primary{background:linear-gradient(135deg,#4a9eff,#00d4ff);color:#fff;box-shadow:0 4px 15px #4a9eff66}.game-end-btn.primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #4a9eff99}.game-end-btn.secondary{background:#ffffff1a;color:#4a9eff;border:2px solid #4a9eff}.game-end-btn.secondary:hover{background:#4a9eff33;transform:translateY(-2px)}.game-end-btn:active{transform:translateY(0)}
