*{box-sizing:border-box;-webkit-user-select:none;user-select:none;margin:0;padding:0;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}body,html{touch-action:none;background-color:#1a1612;width:100vw;height:100dvh;position:fixed;inset:0;overflow:hidden}#gameContainer{cursor:crosshair;width:100%;height:100%;position:relative;overflow:hidden}#gameCanvas{width:100%;height:100%;display:block}.top-bar{z-index:10;background:#0f141ef2;border-bottom:2px solid #334155;justify-content:space-between;align-items:center;gap:8px;width:100%;padding:4px 8px;display:flex;position:absolute;top:0;left:0}.hud-single-main{flex-direction:column;flex:1;gap:4px;min-width:0;max-width:680px;display:flex}.hud-player-top-row{align-items:stretch;gap:6px;display:flex}.hud-unit-card.player-card{background:#0f172aeb;border:1.5px solid #f43f5e;border-radius:7px;flex:1;align-items:center;gap:6px;min-width:0;padding:3px 6px;display:flex}.hud-role-badge{color:#fff;border:1.5px solid #ffffffd9;border-radius:6px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:flex-start;width:68px;min-width:56px;height:34px;padding:2px 6px;display:flex;overflow:hidden}.player-avatar{background:linear-gradient(135deg,#e11d48,#9f1239)}.role-tag{color:#fde047;text-transform:uppercase;font-size:8.5px;font-weight:900;line-height:1.05}.unit-name{color:#fff;white-space:nowrap;text-overflow:ellipsis;width:100%;font-size:10px;font-weight:800;line-height:1.15;overflow:hidden}.bars-container{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.bar-track{background:#090d16;border:1px solid #475569;border-radius:3px;width:100%;height:9.5px;position:relative;overflow:hidden}.bar-fill{width:100%;height:100%;transition:width .1s ease-out}.hp-fill{background:linear-gradient(90deg,#22c55e,#a3e635)}.sp-fill{background:linear-gradient(90deg,#38bdf8,#818cf8)}.bar-value{color:#fff;text-shadow:1px 1px 2px #000;font-variant-numeric:tabular-nums;font-size:8.5px;font-weight:800;position:absolute;top:50%;right:5px;transform:translateY(-50%)}.fixed-buff-bar{background:#0f172ad9;border:1px solid #334155;border-radius:7px;flex-shrink:0;grid-template-columns:repeat(3,1fr);align-items:center;gap:4px;width:150px;padding:4px;display:grid}.buff-slot{opacity:.35;filter:grayscale();background:#0f172a80;border:1px dashed #94a3b847;border-radius:5px;flex-direction:column;justify-content:center;align-items:center;gap:1px;height:100%;min-height:26px;transition:opacity .15s,border-color .15s;display:flex}.buff-slot.active{opacity:1;filter:none;background:#1e293bf2;border-style:solid;border-color:#38bdf8;box-shadow:0 0 6px #38bdf866}.buff-icon{font-size:10px;line-height:1}.buff-time{color:#f8fafc;font-size:8px;font-weight:800;line-height:1}.defense-info-strip{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.def-badge{color:#fff;font-variant-numeric:tabular-nums;white-space:nowrap;background:#1e293beb;border:1.5px solid #475569;border-radius:6px;align-items:center;gap:5px;padding:3px 9px;font-size:12px;font-weight:900;display:flex}.wave-badge{color:#bae6fd;border-color:#38bdf8}.wave-badge span{color:#38bdf8;font-size:13px}.zombie-badge{color:#fecaca;background:#450a0abf;border-color:#ef4444}.zombie-badge span{color:#4ade80;font-size:13px}.valkyrie-badge{color:#fef08a;border-color:#eab308;flex:1;min-width:145px;max-width:220px}.valk-mini-track{background:#090d16;border:1px solid #ca8a04;border-radius:4px;flex:1;min-width:65px;height:12px;position:relative;overflow:hidden}.valk-mini-fill{background:linear-gradient(90deg,#eab308,#fde047);width:100%;height:100%;transition:width .15s ease-out}.valk-mini-val{color:#fff;text-shadow:1px 1px 2px #000;justify-content:center;align-items:center;font-size:9px;font-weight:900;display:flex;position:absolute;inset:0}.score-badge{color:#fef08a;background:#422006cc;border-color:#facc15}.score-badge span{color:#fde047;font-size:13.5px}.score-time-group{color:#fff;flex-direction:column;flex-shrink:0;justify-content:space-between;align-items:flex-end;gap:4px;display:flex}.top-ctrl-row,.bottom-ctrl-row{flex-wrap:nowrap;align-items:center;gap:4px;display:flex}.quick-mute-btn{color:#fff;cursor:pointer;background:#1e293be6;border:1px solid #475569;border-radius:6px;padding:3px 7px;font-size:11px}.timer-box{color:#e2e8f0;font-variant-numeric:tabular-nums;background:#1e293bd9;border:1px solid #475569;border-radius:6px;padding:3px 8px;font-size:11px;font-weight:800}.room-mode-pill{color:#cbd5e1;white-space:nowrap;background:#1e293bbf;border:1px solid #334155;border-radius:6px;padding:3px 7px;font-size:10px;font-weight:700}.exit-top-btn{color:#fff;cursor:pointer;background:#dc2626;border:1px solid #f87171;border-radius:6px;padding:3px 8px;font-size:10px;font-weight:800}.cast-banner{color:#fde047;z-index:15;pointer-events:none;white-space:nowrap;background:#0f172aeb;border:1.5px solid #fbbf24;border-radius:20px;padding:5px 14px;font-size:12px;font-weight:700;display:none;position:absolute;top:88px;left:50%;transform:translate(-50%)}.minimap-wrapper{z-index:10;pointer-events:none;background:#0f141cd9;border:2px solid #64748b;border-radius:8px;width:115px;height:115px;position:absolute;top:88px;right:6px;overflow:hidden;box-shadow:0 4px 12px #00000080}#miniMapCanvas{width:100%;height:100%;display:block}.minimap-label{color:#ffffff73;font-size:7.5px;font-weight:700;position:absolute;bottom:2px;right:4px}.skills-panel{bottom:6px!important;right:6px!important}#aimJoystickGhost{overflow:visible}#aimJoystickKnob{margin:0!important;position:absolute!important;top:50%!important;left:50%!important}.armor-track.empty-armor{opacity:.45;background:#ffffff0a!important;border:1px dashed #ffffff2e!important}.armor-track.has-armor{opacity:1;box-shadow:0 0 10px #ffffff8c;background:#0f172ad9!important;border:1px solid #fff!important}.armor-fill{background:linear-gradient(90deg,#e2e8f0,#fff,#f8fafc);width:0%;transition:width .15s ease-out}.skill-btn.locked{filter:grayscale()brightness(.42);opacity:.65;pointer-events:none;border-color:#334155!important}.skill-lock-overlay{border-radius:inherit;z-index:6;pointer-events:none;background:#020617ad;justify-content:center;align-items:center;font-size:18px;display:flex;position:absolute;inset:0}#joystickZone{bottom:max(18px, env(safe-area-inset-bottom,14px));left:max(20px, env(safe-area-inset-left,16px));z-index:9;pointer-events:none;background:#1e2430ad;border:2.5px solid #ffffff47;border-radius:50%;justify-content:center;align-items:center;width:112px;height:112px;display:flex;position:absolute}#joystickZone.floating-active{background:#1e243073;border:2px dashed #38bdf8bf;margin-top:-56px;margin-left:-56px;bottom:auto}#joystickKnob{pointer-events:none;background:radial-gradient(circle at 30% 30%,#fff,#cbd5e1);border-radius:50%;width:42px;height:42px;position:absolute;box-shadow:0 4px 10px #00000080}.joystick-label{color:#ffffff8c;pointer-events:none;font-size:9.5px;position:absolute;bottom:6px}.aim-joystick-ghost{z-index:9;pointer-events:none;background:#facc1524;border:2px dashed #facc15cc;border-radius:50%;justify-content:center;align-items:center;width:128px;height:128px;margin-top:-64px;margin-left:-64px;display:none;position:absolute}.aim-joystick-knob{background:radial-gradient(circle at 30% 30%,#fde047,#f59e0b);border-radius:50%;width:34px;height:34px;position:absolute;box-shadow:0 0 12px #facc15d9}.aim-joystick-label{color:#fde047;font-size:9px;font-weight:700;position:absolute;bottom:6px}.skills-panel{bottom:max(10px, env(safe-area-inset-bottom,8px));right:max(10px, env(safe-area-inset-right,8px));z-index:10;grid-template-rows:repeat(2,46px);grid-template-columns:repeat(3,86px);gap:6px;display:grid;position:absolute}.skill-btn{color:#fff;cursor:pointer;background:#141b28e0;border:1.5px solid #94a3b8;border-radius:8px;flex-direction:column;justify-content:space-between;align-items:center;padding:4px 4px 3px;transition:transform 80ms,border-color .12s;display:flex;position:relative;overflow:hidden;box-shadow:0 3px 8px #00000073}.skill-btn:active{transform:scale(.95)}.skill-btn.aiming-active{border-color:#fde047;box-shadow:0 0 12px #fde047d9}.skill-key{color:#94a3b8;font-size:8px;font-weight:700;line-height:1;position:absolute;top:2px;left:4px}.skill-name{z-index:2;white-space:nowrap;text-overflow:ellipsis;max-width:100%;margin-top:5px;font-size:10.5px;font-weight:700;line-height:1.1;overflow:hidden}.skill-divider{z-index:2;background:#ffffff29;width:82%;height:1px}.skill-cost{color:#38bdf8;z-index:2;font-size:9.5px;font-weight:700;line-height:1}.skill-btn.no-sp{opacity:.45;border-color:#ef4444}.cooldown-overlay{color:#fbbf24;z-index:3;background:#0a0e16d6;justify-content:center;align-items:center;font-size:13px;font-weight:800;display:none;position:absolute;inset:0}.ult-btn{background:#2d2014eb;border-color:#f59e0b}.ult-btn.ready{border-color:#fbbf24;box-shadow:0 0 12px #fbbf24b3}.overlay-screen{z-index:100;-webkit-overflow-scrolling:touch;background:radial-gradient(circle,#0f172ad9,#020617f5);justify-content:center;align-items:center;padding:12px;display:flex;position:fixed;inset:0;overflow-y:auto}.start-card{color:#f8fafc;background-color:#0f172a;background-image:linear-gradient(#090d1673 0%,#090d16ad 55%,#090d16e6 100%),url(/assets/bg_3.png);background-position:50% 18%;background-repeat:no-repeat;background-size:cover;border:2px solid #f43f5e8c;border-radius:16px;flex-direction:column;gap:14px;width:100%;max-width:540px;margin:auto;padding:18px;display:flex;box-shadow:0 20px 50px #000000d9,0 0 25px #e11d4840}.start-card-header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.title-wrap{flex-direction:column;gap:3px;display:flex}.game-title{color:#facc15;letter-spacing:.6px;text-shadow:0 2px 8px #000000f2;font-size:21px;font-weight:900}.game-subtitle{color:#e2e8f0;text-shadow:0 1px 4px #000000f2;font-size:12px}.lobby-fs-btn{color:#f8fafc;cursor:pointer;white-space:nowrap;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172ad1;border:1px solid #64748b;border-radius:8px;flex-shrink:0;padding:6px 10px;font-size:12px;font-weight:700}.lobby-fs-btn:hover{background:#1e293bf2;border-color:#facc15}.char-custom-box{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#090d169e;border:1px solid #94a3b84d;border-radius:12px;grid-template-columns:98px minmax(0,1fr);align-items:center;gap:12px 14px;padding:12px;display:grid}.char-inputs-col{display:contents}.preview-frame{background:radial-gradient(circle,#1e293bd9 0%,#090d16f2 100%);border:2px solid #64748b;border-radius:12px;flex-shrink:0;grid-area:1/1;justify-content:center;align-items:center;width:98px;height:98px;display:flex;position:relative;overflow:hidden}#charPreviewCanvas{width:96px;height:96px;display:block}.preview-caption{color:#e2e8f0;pointer-events:none;background:#020617c7;border-radius:4px;padding:1px 5px;font-size:10px;font-weight:700;position:absolute;bottom:4px;right:6px}.char-Current-bar{flex-direction:column;grid-area:1/2;justify-content:center;align-items:flex-start;gap:8px;min-width:0;display:flex}.change-char-btn{color:#0f172a;cursor:pointer;white-space:nowrap;background:linear-gradient(135deg,#f59e0b,#d97706);border:none;border-radius:8px;order:-1;padding:7px 14px;font-size:13px;font-weight:800;box-shadow:0 3px 10px #f59e0b66}.char-current-info{flex-direction:column;gap:2px;min-width:0;display:flex}#currentCharBadge{color:#facc15;text-shadow:0 2px 4px #000000e6;font-size:18px;font-weight:800;line-height:1.2}#selectedCharStatsText{color:#e2e8f0;font-size:13px;font-weight:600}.setting-row{grid-column:1/-1;align-items:center;gap:10px;width:100%;display:flex}.setting-row label{color:#f8fafc;white-space:nowrap;font-size:13px;font-weight:700}#playerNameInput{color:#fff;background:#0f172ae0;border:1px solid #475569;border-radius:8px;outline:none;flex:1;min-width:0;padding:7px 12px;font-size:14px;font-weight:700}#playerNameInput:focus{border-color:#facc15}.lobby-section{flex-direction:column;gap:8px;display:flex}.lobby-title{color:#f8fafc;text-shadow:0 1px 4px #000000f2;font-size:13px;font-weight:800}.bot-modes-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.room-item{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);cursor:pointer;background:#0f172ac2;border:1.5px solid #64748b8c;border-radius:10px;flex-direction:column;gap:3px;padding:9px 11px;transition:border-color .15s,background .15s;display:flex}.room-item:hover{border-color:#94a3b8}.room-item.selected{background:#1e293be0;border-color:#facc15;box-shadow:0 0 14px #facc1547}.room-name{color:#f8fafc;font-size:13px;font-weight:800}.room-status{color:#cbd5e1;font-size:11px}.start-btn{color:#0f172a;cursor:pointer;background:linear-gradient(135deg,#facc15,#eab308);border:none;border-radius:10px;width:100%;padding:12px;font-size:15px;font-weight:900;box-shadow:0 4px 16px #eab30873}.modal-overlay{z-index:120;background:#020617d9;justify-content:center;align-items:center;padding:12px;display:none;position:fixed;inset:0}.modal-box{color:#f8fafc;background:#0f172a;border:2px solid #334155;border-radius:14px;flex-direction:column;gap:12px;width:100%;max-width:480px;padding:16px;display:flex;box-shadow:0 16px 40px #000c}.modal-title{color:#facc15;text-align:center;font-size:17px;font-weight:800}.modal-desc,.char-modal-sub{color:#cbd5e1;text-align:center;font-size:12px}.char-select-grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.char-card{cursor:pointer;background:#1e293bbf;border:2px solid #334155;border-radius:10px;align-items:center;gap:10px;padding:10px;display:flex}.char-card.selected{background:#facc151f;border-color:#facc15}.char-card-icon{font-size:26px}.char-card-info{flex-direction:column;gap:2px;display:flex}.char-card-name{color:#f8fafc;font-size:13px;font-weight:800}.char-card-role{color:#94a3b8;font-size:11px}.modal-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.modal-btn{cursor:pointer;border:none;border-radius:8px;flex:1;min-width:120px;padding:9px 12px;font-size:13px;font-weight:800}.cancel-btn{color:#e2e8f0;background:#334155}.confirm-btn{color:#fff;background:#dc2626}.char-confirm-btn{color:#052e16;background:#22c55e}#endScreen{z-index:90;background:#020617e0;flex-direction:column;justify-content:center;align-items:center;gap:16px;padding:16px;display:none;position:fixed;inset:0}#endTitle{letter-spacing:2px;font-size:42px;font-weight:900}#endSub{color:#cbd5e1;text-align:center;font-size:14px}.end-buttons{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.lobby-btn{color:#0f172a;cursor:pointer;background:linear-gradient(135deg,#facc15,#eab308);border:2px solid #facc15;border-radius:10px;padding:12px 26px;font-size:15px;font-weight:900;box-shadow:0 4px 16px #eab30873}@media (width<=960px){.top-bar{gap:4px;padding:3px 6px}.hud-slots-grid{gap:4px}.hud-unit-card{gap:4px;padding:2px 4px}.hud-role-badge{width:54px;min-width:44px;height:30px;padding:1px 4px}.skills-panel{right:max(6px, env(safe-area-inset-right,6px))!important;bottom:max(6px, env(safe-area-inset-bottom,6px))!important;grid-template-rows:repeat(2,40px)!important;grid-template-columns:repeat(3,72px)!important;gap:5px!important;margin:0!important}.skill-btn{border-radius:7px;padding:3px 3px 2px}.skill-key{font-size:7px;top:1.5px;left:3.5px}.skill-name{margin-top:4px;font-size:9.5px}.skill-cost{font-size:8.5px}.cooldown-overlay{font-size:11.5px}#joystickZone{width:100px;height:100px;bottom:max(12px, env(safe-area-inset-bottom,10px));left:max(14px, env(safe-area-inset-left,12px))}#joystickZone.floating-active{margin-top:-50px;margin-left:-50px}#joystickKnob{width:38px;height:38px}.minimap-wrapper{width:88px!important;height:88px!important;top:76px!important;right:4px!important}.cast-banner{text-overflow:ellipsis;max-width:74vw;padding:3px 10px;font-size:10.5px;overflow:hidden;top:74px!important}}@media (width<=640px){.start-card{gap:10px;padding:12px}.char-custom-box{grid-template-columns:92px minmax(0,1fr)!important;gap:8px 12px!important;padding:10px!important;display:grid!important}.char-inputs-col{display:contents!important}.rooms-grid{grid-template-columns:repeat(2,1fr)!important}.char-select-grid{grid-template-columns:1fr}}@media (height<=500px) and (orientation:landscape){.top-bar{padding:2px 6px}.hud-slots-grid{gap:3px}.hud-unit-card{gap:3px;padding:2px 4px}.hud-role-badge{width:50px;min-width:42px;height:27px}.bar-track{height:7.5px}.bar-value{font-size:7.5px}.fixed-buff-bar{gap:2px;padding:1px 3px}.buff-slot{height:17px}.buff-icon{font-size:8.5px}.buff-time{font-size:7.5px}.skills-panel{right:max(6px, env(safe-area-inset-right,6px))!important;bottom:max(5px, env(safe-area-inset-bottom,5px))!important;grid-template-rows:repeat(2,36px)!important;grid-template-columns:repeat(3,66px)!important;gap:4px!important;margin:0!important}.skill-btn{border-width:1.5px;border-radius:6px;padding:2px 3px}.skill-key{font-size:6.5px;top:1px;left:3px}.skill-name{margin-top:3px;font-size:8.8px}.skill-cost{font-size:8px}.cooldown-overlay{font-size:11px}.skill-lock-overlay{font-size:14px}#joystickZone{width:92px;height:92px;bottom:max(10px, env(safe-area-inset-bottom,8px));left:max(12px, env(safe-area-inset-left,10px))}#joystickZone.floating-active{margin-top:-46px;margin-left:-46px}#joystickKnob{width:34px;height:34px}.minimap-wrapper{width:78px!important;height:78px!important;top:66px!important;right:4px!important}.cast-banner{padding:3px 10px;font-size:10px;top:64px!important}}
