html,body{width:100%;height:100%;overflow:hidden;background:var(--bg-base);font-family:Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}#game-container{position:fixed;top:0;left:0;width:100vw;height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-base)}canvas{display:block;image-rendering:auto;cursor:none;max-width:100vw;max-height:100vh;touch-action:manipulation}#ui-overlay{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}#ui-overlay>*{pointer-events:auto}#hud{position:absolute;inset:0;display:none;pointer-events:none;font-size:13px;color:var(--white);text-shadow:0 0 4px rgba(0,0,0,.8)}#hud>*{pointer-events:auto}.hud-top{position:absolute;left:8px;right:8px;top:calc(8px + env(safe-area-inset-top,0px));display:flex;justify-content:space-between;align-items:flex-start;gap:8px}.hud-top-left{display:flex;flex-direction:column;gap:2px;background:#00000080;border-radius:6px;padding:4px 8px}.hud-top-center{position:absolute;left:50%;transform:translate(-50%);top:0;text-align:center}.hud-top-right{display:flex;flex-direction:column;align-items:flex-end;gap:2px;background:#00000080;border-radius:6px;padding:4px 8px}.hud-level{font-size:14px;font-weight:700;color:var(--gold)}.hud-xp-bar{width:100px;height:4px;background:#ffffff26;border-radius:2px;overflow:hidden;position:relative}.hud-xp-bar:after{content:"";position:absolute;inset:0;border-radius:2px;background-image:repeating-linear-gradient(90deg,transparent 0 9px,rgba(0,0,0,.45) 9px 10px);pointer-events:none}.hud-xp-fill{height:100%;background:linear-gradient(90deg,#4488ff,var(--blue));transition:width .3s;box-shadow:0 0 6px #44aaff80}.hud-xp-fill.xp-pulse{animation:xpPulse .6s ease-out}@keyframes xpPulse{0%{filter:brightness(1)}50%{filter:brightness(2.2)}to{filter:brightness(1)}}.hud-wave{font-size:20px;font-weight:700;color:var(--white);text-shadow:0 0 4px rgba(0,0,0,.8);opacity:0;transition:opacity .5s;background:#00000080;border-radius:8px;padding:4px 16px}.hud-wave.active{opacity:1}.hud-wave-progress{position:absolute;top:42px;left:50%;transform:translate(-50%);width:200px;height:6px;border-radius:3px;overflow:hidden;background:#00000080;padding:2px}.hud-wave-progress-fill{height:100%;background:linear-gradient(90deg,#4af,#4fa);border-radius:2px;transition:width .3s}.game-timer-hud{font-size:14px;color:var(--white);text-shadow:0 0 4px rgba(0,0,0,.8);background:#00000080;padding:2px 10px;border-radius:4px}.hud-coins{font-size:14px}.hud-kills{font-size:12px;color:#ccc}.hud-hp-container{position:absolute;left:50%;transform:translate(-50%);bottom:calc(80px + env(safe-area-inset-bottom,0px));width:min(300px,60vw);display:flex;align-items:center;gap:6px;background:#00000080;border-radius:6px;padding:4px 8px}.hud-hp-bar{flex:1;height:10px;background:#fff3;border-radius:5px;overflow:hidden;border:1px solid rgba(255,255,255,.3)}.hud-hp-fill{height:100%;border-radius:4px;transition:width .3s;background:linear-gradient(180deg,#66ff88,var(--green) 60%,#22cc33);box-shadow:0 0 8px #44ff448c,inset 0 0 4px #ffffff59}.hud-hp-fill.hp-yellow{background:linear-gradient(180deg,#ffe44d,var(--gold) 60%,#ffaa00);box-shadow:0 0 8px rgb(from var(--gold) r g b / .55),inset 0 0 4px #ffffff59}.hud-hp-fill.hp-red{background:linear-gradient(180deg,#ff6666,var(--red) 60%,#cc0000);box-shadow:0 0 8px #f449,inset 0 0 4px #ffffff4d;animation:hpFlash .5s infinite}.hud-hp-fill.hp-damage{animation:hpDamage .3s ease-out}.hud-hp-text{font-size:11px;min-width:60px;text-align:right}@keyframes hpFlash{0%,to{opacity:1}50%{opacity:.5}}@keyframes hpDamage{0%{transform:translate(0)}20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-3px)}80%{transform:translate(2px)}to{transform:translate(0)}}.hud-boss-bar{position:absolute;top:0;left:0;right:0;display:none;flex-direction:column;align-items:center;background:#000000b3;padding:3px 8px;border-bottom:1px solid rgba(255,68,68,.5)}.hud-boss-name{font-size:11px;font-weight:700;color:#f66;margin-bottom:2px}.hud-boss-hp-bar{width:100%;height:20px;background:#ffffff26;border-radius:3px;overflow:hidden;position:relative}.hud-boss-hp-fill{height:100%;border-radius:2px;transition:width .2s;background:repeating-linear-gradient(-45deg,rgba(255,255,255,.14) 0 4px,transparent 4px 8px),linear-gradient(180deg,#66ff88,var(--green) 60%,#22cc33);box-shadow:0 0 10px #4f49}.hud-boss-hp-fill.boss-yellow{background:repeating-linear-gradient(-45deg,rgba(255,255,255,.14) 0 4px,transparent 4px 8px),linear-gradient(180deg,#ffe44d,var(--gold) 60%,#cccc00);box-shadow:0 0 10px rgb(from var(--gold) r g b / .55)}.hud-boss-hp-fill.boss-orange{background:repeating-linear-gradient(-45deg,rgba(255,255,255,.14) 0 4px,transparent 4px 8px),linear-gradient(180deg,#ffaa44,var(--gold-deep) 60%,#ff6600);box-shadow:0 0 10px rgb(from var(--gold-deep) r g b / .55)}.hud-boss-hp-fill.boss-red{background:repeating-linear-gradient(-45deg,rgba(255,255,255,.14) 0 4px,transparent 4px 8px),linear-gradient(180deg,#ff6666,var(--red) 60%,#cc0000);box-shadow:0 0 12px #f44c;animation:bossDangerPulse .6s infinite}@keyframes bossDangerPulse{0%,to{box-shadow:0 0 8px #ff444480;filter:brightness(1)}50%{box-shadow:0 0 18px #ff4444f2;filter:brightness(1.35)}}.hud-boss-hp-pct{position:absolute;right:6px;top:50%;transform:translateY(-50%);font-size:10px;font-weight:700;color:var(--white);text-shadow:0 0 3px rgba(0,0,0,.8)}.combo-text{position:absolute;top:40%;left:50%;transform:translate(-50%,-50%);font-size:28px;font-weight:700;color:var(--gold);text-shadow:0 0 15px rgb(from var(--gold) r g b / .8),0 2px 4px rgba(0,0,0,.5);opacity:0;transition:opacity .4s;pointer-events:none}.combo-text.active{opacity:1}.combo-text.combo-decay{opacity:.5;transition:opacity .8s}.combo-text.combo-pop{animation:comboPop .35s ease-out}@keyframes comboPop{0%{transform:translate(-50%,-50%) scale(.6)}60%{transform:translate(-50%,-50%) scale(1.15)}to{transform:translate(-50%,-50%) scale(1)}}.hud-skill-bar{position:absolute;inset:50% 8px auto auto;transform:translateY(-50%);display:none;flex-direction:column;align-items:flex-end;gap:4px;pointer-events:none;z-index:5}.hud-skill-row{display:flex;flex-direction:column;gap:4px;align-items:center}.hud-skill-slot{width:44px;height:44px;background:#0000008c;border:1px solid rgba(255,255,255,.25);border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:20px;position:relative;overflow:hidden;pointer-events:auto;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);transition:border-color .2s,box-shadow .2s}.hud-skill-slot.skill-ready{border-color:#4f8;animation:skillReadyPulse 1.6s ease-in-out infinite}@keyframes skillReadyPulse{0%,to{box-shadow:0 0 0 2px #44ff8840,0 0 8px #44ff8859}50%{box-shadow:0 0 0 2px #44ff888c,0 0 16px #44ff88b3}}.hud-skill-slot .skill-cooldown-overlay{position:absolute;bottom:0;left:0;right:0;background:#000000b3;transition:height .08s linear;pointer-events:none}.hud-skill-slot .skill-level-badge{position:absolute;bottom:1px;right:2px;font-size:8px;font-weight:700;color:var(--gold);text-shadow:0 0 2px #000}.hud-skill-label{font-size:9px;color:var(--muted);text-align:center;width:44px}.hud-weapon-bar{position:absolute;inset:50% auto auto 8px;transform:translateY(-50%);display:none;flex-direction:column;align-items:center;gap:4px;background:#0000008c;border-radius:8px;padding:6px 4px;pointer-events:auto;z-index:5;border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.hud-weapon-bar-label{font-size:9px;color:var(--muted);text-align:center;width:44px;line-height:1.1}.hud-weapon-grid{display:grid;gap:4px;align-items:center}.hud-weapon-slot{width:48px;min-height:52px;background:#0006;border:2px solid rgba(255,255,255,.28);border-radius:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:18px;position:relative;overflow:hidden;cursor:pointer;flex-shrink:0;padding:2px 1px 1px;transition:border-color .2s,box-shadow .2s,transform .15s,background .2s}.hud-weapon-slot .weapon-name{font-size:8px;color:#acf;line-height:1.1;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;pointer-events:none}.hud-skill-slot .skill-name-label{font-size:7px;color:#cdf;line-height:1;margin-top:1px;pointer-events:none}.hud-weapon-slot:hover{border-color:#ffffff8c;transform:translateY(-1px)}.hud-weapon-slot.rarity-1{border-color:#6cf;box-shadow:0 0 8px #66ccff73}.hud-weapon-slot.rarity-2{border-color:#c6f;box-shadow:0 0 10px #cc66ff8c}.hud-weapon-slot.rarity-3{border-color:#fa0;box-shadow:0 0 12px #ffaa00a6,0 0 24px #ffaa0040}.hud-weapon-slot.active-weapon{border-color:var(--blue);box-shadow:0 0 4px rgb(from var(--blue) r g b / .35)}.hud-weapon-slot.active-weapon:hover{border-color:#6ef}.hud-weapon-slot.empty{border:2px dashed rgba(255,255,255,.12);background:#ffffff05;opacity:.45;cursor:default}.hud-weapon-slot .weapon-level-badge{position:absolute;bottom:1px;right:2px;font-size:8px;font-weight:700;color:#4fa;text-shadow:0 0 2px #000;pointer-events:none}.hud-weapon-slot .weapon-cooldown-overlay{position:absolute;bottom:0;left:0;right:0;background:#000000a6;transition:height .08s linear;pointer-events:none}.hud-weapon-slot.fusion-glow{border-color:#fa0;box-shadow:0 0 6px #ffaa0073}.hud-weapon-passive-row{display:none;flex-direction:column;gap:4px;align-items:center;margin-top:2px}.hud-weapon-slot.passive{width:36px;height:36px;font-size:16px;border-color:#fff3;background:var(--surface);cursor:default}.menu-screen{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--bg-panel);color:var(--white);z-index:20;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);overflow-y:auto}.menu-screen h1{font-size:36px;font-weight:700;margin-bottom:8px;background:linear-gradient(180deg,var(--gold),var(--gold-deep));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-shadow:none}.menu-screen .subtitle{font-size:14px;color:#88c;margin-bottom:40px;letter-spacing:4px}.menu-btn{width:220px;padding:14px 0;margin:6px 0;border:2px solid rgba(255,255,255,.3);border-radius:8px;background:#ffffff14;color:var(--white);font-size:16px;cursor:pointer;text-align:center;transition:all .2s;letter-spacing:2px}.menu-btn:hover,.menu-btn:active{background:rgb(from var(--gold) r g b / .15);border-color:var(--gold);transform:scale(1.03)}.menu-btn.highlight{border-color:var(--gold);background:rgb(from var(--gold) r g b / .1)}#character-select{display:none;flex-wrap:wrap;gap:12px;justify-content:center;max-width:440px;padding:20px}.character-card{width:130px;padding:14px 10px;border:2px solid rgba(255,255,255,.2);border-radius:10px;background:var(--surface);cursor:pointer;text-align:center;transition:all .2s}.character-card:hover,.character-card:active{border-color:var(--gold);background:rgb(from var(--gold) r g b / .1);transform:scale(1.05)}.character-card.locked{opacity:.5;cursor:not-allowed;border-color:#ffffff1a}.character-card.locked:hover{transform:none;border-color:#ffffff1a;background:var(--surface)}.character-card .char-icon{font-size:32px;margin-bottom:6px}.character-card .char-name{font-size:14px;font-weight:700;margin-bottom:4px}.character-card .char-desc{font-size:10px;color:var(--muted-light);margin-bottom:6px}.character-card .char-unlock{font-size:9px;color:#f88}#char-select-screen{justify-content:flex-start;height:100%;overflow:hidden;padding-top:16px;padding-bottom:16px}#char-select-screen .subtitle{margin-bottom:12px}#char-select{display:flex;flex-direction:column;align-items:stretch;gap:10px;width:min(96vw,720px);max-width:720px;flex:1 1 auto;min-height:0;overflow:hidden;padding:4px 8px 12px}.faction-tabs{display:flex;gap:6px;flex-wrap:nowrap;overflow-x:auto;padding:2px 0 6px;width:100%;scrollbar-width:thin;-webkit-overflow-scrolling:touch}.faction-tab{flex:0 0 auto;min-height:30px;padding:4px 12px;border:2px solid rgba(255,255,255,.2);border-radius:999px;background:#ffffff0f;color:var(--white);font-size:13px;cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:4px;transition:all .2s}.faction-tab:hover,.faction-tab:active{border-color:var(--gold);color:var(--gold)}.faction-tab.active{border-color:var(--gold);background:rgb(from var(--gold) r g b / .18);color:var(--gold);font-weight:700}.faction-tab .ft-count{font-size:10px;padding:0 5px;border-radius:999px;background:#ffffff26;line-height:1.5}.faction-tab.active .ft-count{background:rgb(from var(--gold) r g b / .35)}.faction-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;width:100%;padding-right:4px;-webkit-overflow-scrolling:touch}.faction-count-label{font-size:13px;color:var(--muted-light);margin-bottom:8px}.char-card{width:auto;min-width:0;padding:8px 6px;border:2px solid rgba(255,255,255,.2);border-radius:10px;background:var(--surface);cursor:pointer;text-align:center;transition:all .2s}.char-card:hover,.char-card:active{border-color:var(--gold);background:rgb(from var(--gold) r g b / .1);transform:scale(1.05)}.char-card .icon{font-size:24px;margin-bottom:4px}.char-card .name{font-size:11px;font-weight:700;line-height:1.2}.char-card .desc{font-size:9px;color:var(--muted-light);margin-top:2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.25}.faction-char-section{width:100%;margin-bottom:16px}.faction-char-label{font-size:16px;font-weight:700;color:var(--gold);text-align:center;margin-bottom:10px;text-shadow:0 0 8px rgb(from var(--gold) r g b / .4)}.faction-char-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px;width:100%}.faction-char-card{width:auto;min-width:0;padding:10px;border:2px solid rgba(255,255,255,.2);border-radius:10px;background:var(--surface);cursor:pointer;text-align:center;transition:all .2s}.faction-char-card:hover,.faction-char-card:active{border-color:var(--gold);background:rgb(from var(--gold) r g b / .1);transform:scale(1.05)}.faction-char-card.selected{border-color:var(--gold);background:rgb(from var(--gold) r g b / .15);box-shadow:0 0 12px rgb(from var(--gold) r g b / .4)}.faction-char-card.locked{opacity:.5;cursor:not-allowed;border-color:#ffffff1a}.faction-char-card.locked:hover{transform:none;border-color:#ffffff1a;background:var(--surface)}.faction-char-card .fc-icon{font-size:28px;margin-bottom:4px}.faction-char-card .fc-name{font-size:12px;font-weight:700}.faction-char-card .fc-desc{font-size:10px;color:var(--muted-light);margin-top:2px}.faction-char-card .fc-unlock{font-size:9px;color:#f88;margin-top:4px}@media(min-width:1024px){#char-select-screen{justify-content:flex-start;padding:28px 24px 32px}#char-select-screen h1{font-size:42px;margin-bottom:6px}#char-select-screen .subtitle{font-size:15px;margin-bottom:20px;letter-spacing:6px}#char-select{width:min(960px,92vw);gap:14px;padding:8px 12px 16px}.faction-tab{font-size:14px;padding:6px 16px;min-height:36px}.faction-scroll{padding-right:8px}.faction-char-section{margin-bottom:20px}.faction-char-label{font-size:18px;margin-bottom:14px}.faction-count-label{font-size:14px;margin-bottom:10px}.faction-char-row{gap:16px;grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.faction-char-card{width:auto;min-width:0;padding:14px 12px;min-height:120px}.faction-char-card .fc-icon{font-size:32px}.faction-char-card .fc-name{font-size:14px}.faction-char-card .fc-desc{font-size:11px;line-height:1.35}#char-select .faction-row{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}#char-select .char-card{min-height:96px;padding:12px 10px;border-radius:12px}#char-select .char-card .icon{font-size:26px}#char-select .char-card .name{font-size:13px}#char-select .char-card .desc{font-size:10px;-webkit-line-clamp:2;line-height:1.35}}@media(min-width:481px)and (max-width:1023px){#char-select .faction-row,.faction-char-row{grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}}.faction-section{width:100%}.faction-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:8px;width:100%}.faction-row .char-card{width:auto;min-width:0}#level-up{display:none;position:absolute;top:0;left:0;width:100%;height:100%;background:#000c;z-index:30;flex-direction:column;align-items:center;justify-content:center;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}#level-up h2{font-size:28px;color:var(--gold);margin-bottom:20px;text-shadow:0 0 20px rgb(from var(--gold) r g b / .5)}#level-up .skill-choices{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;max-width:440px}#level-up .level-up-timer{margin-top:16px;font-size:16px;color:#f84;text-shadow:0 0 10px rgba(255,136,68,.6)}.skill-card{width:130px;padding:14px 10px;border:2px solid rgba(255,255,255,.3);border-radius:10px;background:#141432e6;cursor:pointer;text-align:center;transition:all .2s}.skill-card:hover,.skill-card:active{border-color:var(--gold);transform:scale(1.05)}.skill-card .skill-name{font-size:13px;font-weight:700;color:var(--white);margin-bottom:4px}.skill-card .skill-desc{font-size:10px;color:#ccc}.skill-card .skill-rarity{font-size:10px;margin-top:4px}.rarity-common .skill-rarity{color:#aaa}.rarity-uncommon .skill-rarity{color:#4d4}.rarity-rare .skill-rarity{color:#48f}.rarity-epic .skill-rarity{color:#a4f}.rarity-legendary .skill-rarity{color:#fa0}.rarity-common{border-color:#aaaaaa80}.rarity-uncommon{border-color:#44dd4480}.rarity-rare{border-color:#4488ff80}.rarity-epic{border-color:#aa44ff80}.rarity-legendary{border-color:#ffaa0080}.rarity-common{box-shadow:0 0 8px #aaaaaa4d}.rarity-uncommon{box-shadow:0 0 10px #4d46}.rarity-rare{box-shadow:0 0 12px #4488ff73}.rarity-epic{box-shadow:0 0 15px #aa44ff8c}.rarity-legendary{box-shadow:0 0 20px #fa09}.rarity-common:hover,.rarity-common:active{box-shadow:0 0 12px #aaaaaa80}.rarity-uncommon:hover,.rarity-uncommon:active{box-shadow:0 0 14px #4d49}.rarity-rare:hover,.rarity-rare:active{box-shadow:0 0 16px #4488ffa6}.rarity-epic:hover,.rarity-epic:active{box-shadow:0 0 20px #aa44ffbf}.rarity-legendary:hover,.rarity-legendary:active{box-shadow:0 0 26px #fa0c}.weapon-card{background:#141e3cf2;box-shadow:inset 0 0 15px #6496ff1a}.weapon-card:hover,.weapon-card:active{transform:scale(1.08);box-shadow:inset 0 0 20px #6496ff33,0 0 12px var(--border)}.weapon-card .skill-icon{filter:drop-shadow(0 0 4px currentColor)}.skill-card{position:relative;animation:skillCardIn .35s ease-out backwards}@keyframes skillCardIn{0%{opacity:0;transform:translateY(14px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.skill-card .skill-icon{font-size:24px;margin-bottom:4px}.skill-card .skill-type{font-size:9px;margin-top:2px}.skill-card .skill-type.weapon-upgrade{color:#fd4}.skill-card .skill-type.weapon-new{color:#4df}.skill-card .skill-type.stack-badge{color:#fa4}.weapon-upgrade-info{font-size:9px;color:#8f8;margin-top:2px}.skill-key-badge{position:absolute;top:-7px;left:-7px;width:22px;height:22px;border-radius:50%;background:#14142a;border:2px solid var(--gold);color:var(--gold);font-size:12px;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 0 6px rgb(from var(--gold) r g b / .4);z-index:2}.skill-card.disabled{pointer-events:none;opacity:.5}.fusion-card{background:linear-gradient(135deg,#643296e6,#326496e6)!important;border:2px solid #ff44ff!important;box-shadow:0 0 20px #ff44ff4d,inset 0 0 15px #ff44ff1a;animation:fusionPulse 1.5s ease-in-out infinite}.fusion-card:hover,.fusion-card:active{border-color:#f8f!important;box-shadow:0 0 30px #ff44ff80,inset 0 0 20px #f4f3}@keyframes fusionPulse{0%,to{box-shadow:0 0 20px #ff44ff4d,inset 0 0 15px #ff44ff1a}50%{box-shadow:0 0 30px #ff44ff80,inset 0 0 20px #f4f3}}.fusion-card .fusion-ingredients{font-size:9px;color:#d8f;margin-top:4px}.fusion-card .skill-type{color:#f8f!important}#fusion-notification{display:none;position:absolute;top:60px;left:50%;transform:translate(-50%);background:linear-gradient(135deg,#643296f2,#326496f2);border:2px solid #ff44ff;border-radius:12px;padding:12px 20px;z-index:25;text-align:center;box-shadow:0 0 30px #f4f6;animation:fusionSlideIn .5s ease-out;cursor:pointer;pointer-events:auto}#fusion-notification .fusion-title{font-size:16px;font-weight:700;color:#f8f;text-shadow:0 0 10px rgba(255,136,255,.6)}#fusion-notification .fusion-desc{font-size:11px;color:#caf;margin-top:4px}@keyframes fusionSlideIn{0%{transform:translate(-50%) translateY(-20px);opacity:0}to{transform:translate(-50%) translateY(0);opacity:1}}@media(max-width:768px){#fusion-notification{top:calc(64px + env(safe-area-inset-top,0px))}}@media(min-width:769px){#fusion-notification{top:60px}}#game-over{display:none;padding:20px 16px}#game-over .settlement-title{font-size:32px;font-weight:700;color:var(--red);text-shadow:0 0 20px rgba(255,68,68,.6);margin-bottom:4px;animation:settlementPulse 2s ease-in-out infinite}@keyframes settlementPulse{0%,to{text-shadow:0 0 20px rgba(255,68,68,.6)}50%{text-shadow:0 0 30px rgba(255,68,68,.9),0 0 50px rgba(255,68,68,.3)}}#game-over .settlement-subtitle{font-size:12px;color:var(--muted);margin-bottom:20px;letter-spacing:4px}#game-over .final-score{font-size:48px;font-weight:700;color:var(--gold);text-shadow:0 0 30px rgb(from var(--gold) r g b / .6);margin-bottom:8px}#game-over .star-coin-earned{font-size:16px;color:var(--gold);margin-bottom:16px}#game-over .settlement-stats{width:min(320px,85vw);display:flex;flex-direction:column;gap:8px;margin-bottom:24px}#game-over .stat-row{display:flex;justify-content:space-between;align-items:center;padding:8px 14px;background:#ffffff0a;border-radius:6px;border-left:3px solid var(--border);opacity:0;transform:translate(-20px);transition:opacity .4s,transform .4s}#game-over .stat-row.visible{opacity:1;transform:translate(0)}#game-over .stat-row.is-record{border-left-color:var(--gold);background:rgb(from var(--gold) r g b / .08)}#game-over .stat-row .stat-label{font-size:13px;color:var(--muted-light);display:flex;align-items:center;gap:6px}#game-over .stat-row .stat-value{font-size:16px;font-weight:700;color:var(--white)}#game-over .stat-row.is-record .stat-label,#game-over .stat-row.is-record .stat-value{color:var(--gold)}#game-over .stat-row .record-badge{font-size:10px;color:var(--gold);background:rgb(from var(--gold) r g b / .2);padding:1px 6px;border-radius:8px;margin-left:6px}#game-over .settlement-buttons{display:flex;flex-direction:column;gap:10px;align-items:center}#game-over .settlement-buttons .menu-btn{width:min(240px,70vw)}#game-over .settlement-buttons .btn-row{display:flex;gap:10px}#game-over .settlement-buttons .btn-row .menu-btn{width:min(115px,33vw);font-size:13px;padding:10px 0}#game-over .stats{font-size:14px;color:var(--muted-light);margin-bottom:30px;text-align:center;line-height:1.8}#leaderboard{display:none}#leaderboard .lb-list{width:min(340px,88vw);max-height:300px;overflow-y:auto;margin:20px 0}.lb-entry{display:flex;justify-content:space-between;padding:8px 12px;border-bottom:1px solid rgba(255,255,255,.1);font-size:14px}.lb-entry .rank{color:var(--gold);width:30px}.lb-entry .score{color:var(--blue)}@media(max-width:480px){#leaderboard .lb-list{width:min(340px,88vw);max-height:42vh}}@media(min-width:481px)and (max-width:768px){#leaderboard .lb-list{width:min(340px,88vw);max-height:45vh}}@media(min-width:769px){#leaderboard .lb-list{width:340px;max-height:300px}}.toast{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:20px;font-weight:700;color:var(--gold);text-shadow:0 0 10px rgb(from var(--gold) r g b / .8);pointer-events:none;opacity:0;transition:opacity .3s;z-index:35}.toast.show{opacity:1}.hud-toolbar{position:absolute;z-index:55;display:flex;gap:4px;box-sizing:border-box;pointer-events:auto}.hud-toolbar .toolbar-btn{pointer-events:auto;touch-action:manipulation}@media(min-width:769px){.hud-toolbar{top:50%;right:4px;transform:translateY(-50%);flex-direction:column;align-items:center;padding:6px 4px;background:#00000080;border:1px solid rgba(255,255,255,.1);border-radius:10px}}@media(max-width:768px){.hud-toolbar{bottom:0;left:0;right:0;width:100%;flex-direction:row;align-items:center;justify-content:space-around;padding:4px 4px calc(4px + env(safe-area-inset-bottom,0px));background:#000000d9;border-top:1px solid var(--border);z-index:100;min-height:var(--hud-toolbar-h)}.toolbar-btn{flex:1;min-width:0;max-width:72px;min-height:44px;padding:4px 2px}.toolbar-btn .tb-label{font-size:9px}.fs-toggle{top:calc(6px + env(safe-area-inset-top,0px));bottom:auto;right:6px;left:auto}#backpack-screen,#fusion-screen,#status-panel{z-index:9000!important;justify-content:flex-start;padding-top:calc(12px + env(safe-area-inset-top,0px));padding-bottom:calc(12px + env(safe-area-inset-bottom,0px))}}@media(min-width:769px){#backpack-screen,#fusion-screen{padding:16px 12px}}.toolbar-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;padding:6px 8px;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);border-radius:6px;color:#ddd;font-size:18px;cursor:pointer;transition:all .15s;-webkit-tap-highlight-color:transparent}@media(min-width:769px){.toolbar-btn{width:44px;padding:8px 4px}}.toolbar-btn:active{background:#ffffff26;transform:scale(.95)}.toolbar-btn .tb-label{font-size:9px;color:#999;line-height:1}.toolbar-btn:hover{border-color:#ffffff4d;color:var(--white)}.hud-item-bar{position:absolute;left:8px;top:calc(180px + env(safe-area-inset-top,0px));display:none;flex-direction:row;gap:6px;padding:4px;background:#0000008c;border:1px solid rgba(255,255,255,.15);border-radius:8px;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:40;pointer-events:auto}.hud-item-slot{width:48px;height:48px;background:#00000080;border:1px solid rgba(255,255,255,.25);border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:22px;position:relative;overflow:hidden;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:border-color .2s,box-shadow .2s}.hud-item-slot .item-key-hint{position:absolute;top:0;left:0;font-size:8px;line-height:1;padding:1px 3px;color:#999;text-shadow:0 0 2px #000;background:#0006;border-bottom-right-radius:4px}.hud-item-slot .item-icon{line-height:1;pointer-events:none}.hud-item-slot .item-count{position:absolute;bottom:1px;right:2px;font-size:10px;font-weight:700;color:var(--gold);text-shadow:0 0 2px #000;line-height:1}.hud-item-slot .item-cooldown-overlay{position:absolute;bottom:0;left:0;right:0;height:0;background:#000000b8;transition:height .1s linear;pointer-events:none}.hud-item-slot.item-ready{border-color:#4f8;animation:skillReadyPulse 1.6s ease-in-out infinite}.hud-item-slot.item-empty{opacity:.5}.hud-item-slot.item-empty .item-icon{filter:grayscale(1)}.hud-item-slot:active{transform:scale(.94)}@media(max-width:480px){.hud-item-bar{left:8px;top:calc(184px + env(safe-area-inset-top,0px))}.hud-item-slot{width:48px;height:48px;font-size:22px}}@media(min-width:481px)and (max-width:768px){.hud-item-bar{left:8px;top:calc(184px + env(safe-area-inset-top,0px))}.hud-item-slot{width:48px;height:48px;font-size:22px}}@media(min-width:769px){.hud-item-bar{left:16px;top:calc(104px + env(safe-area-inset-top,0px))}.hud-item-slot{width:44px;height:44px;font-size:20px}}.bp-title{color:var(--gold);font-size:22px;margin-bottom:4px;text-shadow:0 0 10px rgb(from var(--gold) r g b / .4)}.bp-subtitle{font-size:11px;color:var(--muted);margin-bottom:10px}.bp-label{font-size:13px;color:#ccc;margin-bottom:6px}.bp-label.mt{margin-top:8px}.bp-label.center{text-align:center}.bp-panel{background:#ffffff0a;border:1px solid #333;border-radius:8px;padding:10px;margin-bottom:12px}.bp-panel-title{font-size:12px;color:var(--gold);margin-bottom:6px;font-weight:700}.bp-stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px 12px;font-size:11px;color:var(--muted-light)}.bp-layout-row{display:flex;gap:14px;align-items:flex-start;margin-bottom:12px;flex-wrap:wrap}.bp-equip-col{flex:0 0 auto;min-width:72px}.bp-inv-col{flex:1;min-width:200px}.bp-slots-row{display:flex;flex-direction:column;gap:6px;align-items:center}.bp-hint{font-size:11px;color:var(--muted);margin-bottom:6px}.bp-hint.selected{color:var(--gold)}.bp-inv-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(68px,1fr));gap:6px;max-height:32vh;overflow-y:auto;padding:4px}.bp-weapon-item{padding:6px;border:2px solid #334;border-radius:8px;cursor:pointer;text-align:center;transition:border-color .12s,background .12s;background:#ffffff0a}.bp-weapon-item.equipped{border-color:var(--blue)}.bp-weapon-item.selected{border-color:var(--gold);background:rgb(from var(--gold) r g b / .12)}.bp-weapon-icon{font-size:22px}.bp-weapon-name{font-size:9px;color:#fff;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bp-weapon-lvl{font-size:9px;color:#4fa}.bp-slot{width:52px;height:52px;border:2px solid #444;border-radius:8px;display:flex;align-items:center;justify-content:center;background:#ffffff08;cursor:pointer;font-size:20px;position:relative}.bp-slot.filled{border-color:var(--blue);background:#44ddff1f}.bp-slot.empty{opacity:.4}.bp-slot-lvl{position:absolute;bottom:0;right:2px;font-size:8px;color:#4fa;text-shadow:0 0 2px #000}.bp-passive-row{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;margin-bottom:16px}.bp-passive-slot{width:48px;height:48px;border:2px solid #444;border-radius:8px;display:flex;align-items:center;justify-content:center;background:#ffffff08;font-size:18px;position:relative}.bp-passive-slot.filled{border-color:#d8f;background:#dd88ff1f}.bp-passive-lvl{position:absolute;bottom:0;right:2px;font-size:8px;color:#c8f;text-shadow:0 0 2px #000}.bp-skill-grid{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:12px}.bp-skill-chip{width:42px;height:42px;border:1px solid #555;border-radius:6px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#ffffff0a;font-size:16px;position:relative}.bp-skill-chip-name{font-size:7px;color:var(--muted-light);line-height:1}.bp-item-row{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}.bp-item-chip{padding:6px 10px;border:1px solid #558;border-radius:6px;display:flex;flex-direction:column;gap:4px;background:#ffffff0a;font-size:12px;min-width:120px;cursor:pointer}.bp-item-top{display:flex;align-items:center;gap:6px}.bp-item-name{color:#ddd}.bp-item-hint{font-size:9px;color:var(--muted);line-height:1.2}.bp-fusion-section{margin-top:8px;border-top:1px solid #333;padding-top:10px}.bp-cat-label{font-size:12px;color:#f8c;margin-bottom:6px}.bp-fusion-hint{font-size:11px;color:#a6f;margin-bottom:6px}.bp-fusion-btn{display:block;width:100%;padding:8px;margin-bottom:4px;border:1px solid #8844cc;border-radius:6px;background:#8844cc1a;color:#dbf;cursor:pointer;font-size:12px;text-align:left}.bp-fusion-btn .bp-fusion-cost{float:right;color:#fd4}.bp-muted{font-size:11px;color:#666;margin-bottom:6px}.bp-empty-state{font-size:11px;color:#666;padding:8px}.bp-close{margin-top:12px}.fs-title{color:#a6f;font-size:22px;margin-bottom:4px}.fs-subtitle{font-size:11px;color:var(--muted);margin-bottom:12px}.fs-core{font-size:14px;color:var(--gold);margin-bottom:4px}.fs-cat{font-size:13px;color:#f8c;margin-bottom:14px}.fs-hint{color:#f8c;font-size:11px;margin-bottom:10px}.fs-empty{color:#666;font-size:12px}.fs-nofus{color:var(--muted);font-size:12px;padding:12px;border:1px dashed #444;border-radius:8px}.fs-warn{color:#fa4;font-size:11px;margin-bottom:10px}.fs-card{display:block;width:100%;max-width:480px;margin:0 auto 10px;padding:12px 14px;border:1px solid #8844cc;border-radius:10px;background:#8844cc1f;color:#eee;cursor:pointer;text-align:left;font-size:13px}.fs-card:disabled{opacity:.5;cursor:not-allowed}.fs-card-title{font-weight:700;color:#dbf;margin-bottom:4px}.fs-card-recipe{font-size:11px;color:var(--muted-light)}.fs-card-recipe b{color:#4fa}.fs-card-cost{font-size:10px;color:#fd4;margin-top:6px}.fs-close{margin-top:16px}.fs-toggle{position:absolute;z-index:30;display:flex;align-items:center;justify-content:center;cursor:pointer}@media(max-width:480px){.menu-screen h1{font-size:28px}.menu-btn{width:180px;padding:12px 0;font-size:14px;min-height:44px}.char-card{width:100px;padding:8px;min-height:44px}.skill-card{width:110px;padding:10px 8px;min-height:44px}.toolbar-btn{min-height:44px;padding:6px 4px}.toolbar-btn .tb-label{font-size:10px}#hud{font-size:13px}.hud-hp-container{position:absolute;top:calc(8px + env(safe-area-inset-top,0px));left:50%;transform:translate(-50%);bottom:auto;width:min(280px,55vw);background:#0009;border-radius:8px;padding:6px 10px;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.1)}.hud-hp-bar{height:12px;border-radius:6px}.hud-hp-fill{border-radius:5px}.hud-hp-text{font-size:12px;min-width:50px}.hud-top{position:absolute;top:calc(70px + env(safe-area-inset-top,0px));left:8px;right:8px;flex-direction:column;align-items:center;gap:4px}.hud-top-left,.hud-top-right{flex-direction:row;gap:8px;background:#0009;border-radius:8px;padding:4px 10px;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.1)}.hud-wave{font-size:16px;padding:3px 12px;background:#0009;border-radius:8px;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.1)}.hud-wave-progress{width:160px;height:5px;top:44px;background:#0009;border-radius:8px;padding:2px}.hud-level{font-size:13px}.hud-xp-bar{width:80px;height:4px}.hud-coins{font-size:13px}.hud-kills{font-size:12px}.game-timer-hud{font-size:12px;background:#0009;border-radius:8px;padding:2px 8px;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.1)}.hud-boss-bar{background:#000000b3;border-radius:8px;margin:0 8px;padding:4px 10px;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border:1px solid rgba(255,68,68,.3)}.hud-boss-name,.hud-boss-hp-pct{font-size:12px}.hud-skill-bar{position:absolute;left:auto;right:8px;top:auto;transform:none;bottom:calc(var(--hud-toolbar-h) + env(safe-area-inset-bottom,0px) + 8px);align-items:flex-end;z-index:50}.hud-skill-row{display:grid;grid-template-columns:repeat(4,60px);gap:4px}.hud-skill-slot{width:60px;height:60px;background:#0009;border-radius:8px;font-size:24px;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.2)}.hud-skill-slot .skill-level-badge{font-size:10px}.hud-skill-label{font-size:10px;text-align:right}.hud-weapon-bar{top:auto;bottom:calc(var(--hud-toolbar-h) + 80px + env(safe-area-inset-bottom,0px));left:8px;right:auto;z-index:50;background:#0009;border-radius:8px;padding:4px 8px;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);border:1px solid rgba(255,255,255,.1)}.hud-weapon-grid{grid-template-columns:repeat(3,44px)}.hud-weapon-slot{width:44px;height:44px;font-size:20px;background:#00000080;border-radius:8px}.hud-weapon-slot.passive{width:30px;height:30px;font-size:15px}.hud-buff-bar{top:calc(140px + env(safe-area-inset-top,0px));bottom:auto}.fs-toggle{bottom:calc(8px + env(safe-area-inset-bottom,0px));left:8px;right:auto;width:44px;height:44px;background:#0009;border:1px solid rgba(255,255,255,.3);border-radius:8px;color:var(--white);font-size:18px;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}.fs-toggle:active{background:#fff3}.pause-btn{min-height:44px;min-width:44px;font-size:14px}.character-card{min-height:44px}.codex-tab,.shop-item-btn{min-height:44px;font-size:14px}.setting-item label{font-size:14px}.toggle{width:50px;height:28px}.toggle-slider:before{height:22px;width:22px}.toggle input:checked+.toggle-slider:before{transform:translate(22px)}.combo-text{font-size:22px}.tutorial-content{bottom:20%}.tutorial-icon{font-size:40px}.tutorial-text{font-size:16px}.tutorial-hint{font-size:12px}.setting-item input[type=range]{width:min(160px,40vw)}.settings-content .menu-btn{min-height:44px}}@media(max-width:768px)and (orientation:landscape){.hud-hp-container{top:calc(4px + env(safe-area-inset-top,0px));left:8px;bottom:auto;transform:none;width:min(180px,25vw);padding:3px 8px;gap:4px}.hud-hp-bar{height:8px}.hud-hp-text{font-size:10px;min-width:40px}.hud-top{top:calc(4px + env(safe-area-inset-top,0px));left:208px;right:8px;flex-direction:row;align-items:flex-start;gap:4px}.hud-top-left,.hud-top-right{flex-direction:row;gap:6px;padding:2px 8px}.hud-level{font-size:12px}.hud-xp-bar{width:70px;height:3px}.hud-coins{font-size:12px}.hud-kills{font-size:10px}.game-timer-hud{font-size:11px;padding:1px 6px}.hud-wave{font-size:14px;padding:2px 10px}.hud-wave-progress{width:120px;height:4px;top:30px}.hud-skill-bar{top:auto;left:auto;right:6px;bottom:calc(var(--hud-toolbar-h) + env(safe-area-inset-bottom,0px) + 4px);transform:none;align-items:flex-end;z-index:50}.hud-skill-label{font-size:9px;text-align:right}.hud-skill-row{display:flex;flex-direction:column;gap:3px}.hud-skill-slot{width:36px;height:36px;font-size:16px;border-radius:6px}.hud-skill-slot .skill-level-badge{font-size:8px}.hud-weapon-bar{top:auto;bottom:calc(var(--hud-toolbar-h) + env(safe-area-inset-bottom,0px) + 4px);left:6px;right:auto;z-index:50;padding:3px 6px}.hud-weapon-grid{grid-template-columns:repeat(6,38px);gap:3px}.hud-weapon-slot{width:38px;height:38px;font-size:17px;border-radius:5px}.hud-boss-bar{padding:2px 8px}.hud-boss-name{font-size:10px}.hud-boss-hp-bar{height:14px}.hud-boss-hp-pct{font-size:9px}.fs-toggle{width:36px;height:36px;font-size:14px;top:calc(4px + env(safe-area-inset-top,0px));bottom:auto;right:6px;left:auto}.hud-toolbar{inset:50% 0 auto auto;width:auto;transform:translateY(-50%);flex-direction:column;padding:6px 4px calc(6px + env(safe-area-inset-right,0px));border-top:none;border-left:1px solid var(--border);min-height:0}.hud-toolbar .toolbar-btn{flex:none;width:44px;max-width:none}.hud-skill-bar{right:calc(52px + env(safe-area-inset-right,0px));bottom:calc(6px + env(safe-area-inset-bottom,0px))}.hud-weapon-bar{left:6px;bottom:calc(6px + env(safe-area-inset-bottom,0px))}.menu-screen h1{font-size:22px}.menu-btn{width:160px;padding:10px 0;font-size:13px;min-height:38px}.skill-card{width:100px;padding:8px 6px}}@media(min-width:481px)and (max-width:768px){:root{--hud-toolbar-h: 56px}.hud-skill-bar{top:auto;right:8px;bottom:calc(var(--hud-toolbar-h) + env(safe-area-inset-bottom,0px) + 10px)}.hud-weapon-bar{top:auto;left:8px;bottom:calc(var(--hud-toolbar-h) + 10px + 64px + env(safe-area-inset-bottom,0px))}.toolbar-btn{min-height:48px}.toolbar-btn .tb-label{font-size:11px}.hud-weapon-slot,.hud-skill-slot{width:48px;height:48px;font-size:22px}.menu-btn{min-height:48px;font-size:15px;padding:14px 0}.char-card{min-height:48px;width:130px;padding:12px}.character-card{min-height:48px}.skill-card{min-height:48px;width:130px;padding:12px 10px}.codex-tab{min-height:48px;font-size:15px;padding:8px 16px}.shop-item-btn,.meta-shop-buy{min-height:48px;font-size:14px}.upgrade-btn,.faction-char-card{min-height:48px}.codex-content{grid-template-columns:repeat(2,1fr);max-width:600px}.codex-card-boss{grid-column:span 2}.meta-shop-tab{flex:1 1 calc(50% - 8px);min-width:120px;font-size:12px;padding:10px 8px}#settlement-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;width:min(450px,85vw)}.hud-hp-container{top:calc(8px + env(safe-area-inset-top,0px));bottom:auto;width:min(350px,50vw);padding:6px 12px}.hud-hp-bar{height:12px}.hud-hp-text{font-size:13px;min-width:70px}.hud-wave-progress{top:48px}.hud-top{top:calc(78px + env(safe-area-inset-top,0px));gap:12px}.hud-level{font-size:15px}.hud-xp-bar{width:120px;height:5px}.hud-coins{font-size:14px}.hud-kills{font-size:13px}.hud-weapon-grid{grid-template-columns:repeat(6,48px);gap:6px}.hud-skill-row{display:grid;grid-template-columns:repeat(4,48px);gap:6px}.hud-buff-bar{top:calc(140px + env(safe-area-inset-top,0px));bottom:auto}.hud-boss-bar{padding:4px 12px}.hud-boss-name{font-size:12px}.hud-boss-hp-bar{height:22px}.hud-boss-hp-pct{font-size:11px}#game-over .final-score{font-size:52px}.stat-row{font-size:14px}}@media(min-width:769px){#hud{font-size:14px}.hud-top{top:calc(16px + env(safe-area-inset-top,0px));left:16px;right:16px;gap:16px}.hud-top-left,.hud-top-right{padding:8px 16px;border-radius:10px;gap:6px}.hud-level{font-size:16px}.hud-xp-bar{width:160px;height:6px;border-radius:3px}.hud-coins{font-size:15px}.hud-kills{font-size:13px}.hud-wave{font-size:28px;padding:6px 24px}.hud-wave-progress{width:280px;height:8px;top:50px}.hud-hp-container{width:min(400px,35vw);padding:6px 14px;gap:8px}.hud-hp-bar{height:14px;border-radius:7px}.hud-hp-text{font-size:14px;min-width:80px}.hud-skill-bar{top:auto;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:none;flex-direction:row;right:8px}.hud-skill-row{flex-direction:row;align-items:center}.hud-skill-slot{width:44px;height:44px;font-size:22px;border-radius:6px}.hud-weapon-grid{grid-template-columns:repeat(6,50px);gap:6px}.hud-weapon-slot{width:50px;height:50px;font-size:24px;border-radius:8px}.hud-weapon-slot.passive{width:32px;height:32px;font-size:16px}.game-timer-hud{font-size:15px;padding:4px 14px}.hud-boss-bar{padding:6px 20px}.hud-boss-name{font-size:14px}.hud-boss-hp-bar{height:26px}.hud-boss-hp-pct{font-size:13px}.combo-text{font-size:36px}.menu-screen h1{font-size:42px}.menu-btn{width:260px;padding:16px 0;font-size:17px;letter-spacing:3px;margin:8px 0}.char-card{width:140px;padding:14px}.skill-card,.character-card{width:150px;padding:16px 12px}.faction-char-card{width:auto;min-width:0;padding:12px}.codex-content{grid-template-columns:repeat(3,1fr);max-width:750px;max-height:50vh;gap:12px}.codex-card-boss{grid-column:span 3}#settlement-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;width:min(500px,40vw)}#game-over .final-score{font-size:64px}.stat-row{padding:10px 18px;font-size:14px}.fs-toggle{width:36px;height:36px;font-size:16px}.hud-weapon-bar{border-radius:10px;padding:6px 14px}.pause-title{font-size:42px}.pause-btn{min-width:240px;padding:16px 50px;font-size:17px}}@media(display-mode:fullscreen){body,#game-container{background:var(--bg-base)}}@media(min-width:481px){.fs-toggle{bottom:calc(8px + env(safe-area-inset-bottom,0px));right:calc(8px + env(safe-area-inset-right,0px));width:32px;height:32px;background:#0000004d;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:var(--muted);font-size:14px;opacity:.5;transition:opacity .2s}.fs-toggle:hover{opacity:1;color:var(--white)}}@media(min-width:769px){.fs-toggle{bottom:calc(72px + env(safe-area-inset-bottom,0px))}}#low-hp-warning{position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:9;opacity:0;transition:opacity .3s}#low-hp-warning.active{opacity:.3;background:radial-gradient(ellipse at center,transparent 40%,rgba(255,0,0,.3) 70%,rgba(255,0,0,.6) 100%);animation:lowHpPulse .5s ease-in-out infinite}#low-hp-warning.active.critical{animation:lowHpPulseFast .3s ease-in-out infinite}@keyframes lowHpPulse{0%,to{background:radial-gradient(ellipse at center,transparent 40%,rgba(255,0,0,.2) 70%,rgba(255,0,0,.5) 100%)}50%{background:radial-gradient(ellipse at center,transparent 40%,rgba(255,0,0,.35) 70%,rgba(255,0,0,.8) 100%)}}@keyframes lowHpPulseFast{0%,to{background:radial-gradient(ellipse at center,transparent 40%,rgba(255,0,0,.3) 70%,rgba(255,0,0,.6) 100%)}50%{background:radial-gradient(ellipse at center,transparent 40%,rgba(255,0,0,.5) 70%,rgba(255,0,0,.9) 100%)}}.hud-buff-bar{position:absolute;left:50%;transform:translate(-50%);bottom:calc(104px + env(safe-area-inset-bottom,0px));display:flex;gap:4px;flex-wrap:wrap;justify-content:center;max-width:min(320px,65vw);pointer-events:auto}.buff-icon{width:32px;height:32px;position:relative;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:16px;cursor:default;background:#00000080;border:2px solid rgba(68,255,68,.6);box-shadow:0 0 4px #4f43}.buff-icon.debuff{border-color:#f449;box-shadow:0 0 4px #f443}.buff-icon canvas{display:none}.buff-icon:before{content:"";position:absolute;inset:-2px;border-radius:5px;background:conic-gradient(var(--ring-color, var(--green)) var(--ring-pct, 100%),rgba(255,255,255,.14) 0);-webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 3px));mask:radial-gradient(farthest-side,transparent calc(100% - 3px),#000 calc(100% - 3px));pointer-events:none}@media(max-width:768px)and (orientation:landscape){.hud-buff-bar{top:auto;bottom:calc(80px + env(safe-area-inset-bottom,0px))}}@media(min-width:769px){.hud-buff-bar{bottom:calc(120px + env(safe-area-inset-bottom,0px))}}.dps-bar-row{display:flex;align-items:center;gap:8px;padding:6px 10px;margin:4px 0;border-radius:4px;background:#ffffff0a;font-size:11px}.dps-bar-icon{font-size:16px;width:24px;text-align:center;flex-shrink:0}.dps-bar-label{width:80px;color:var(--white);font-weight:700;text-align:left;flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dps-bar-track{flex:1;height:12px;background:#ffffff1a;border-radius:3px;overflow:hidden;min-width:40px}.dps-bar-fill{height:100%;border-radius:3px;transition:width .3s}.dps-bar-value{width:70px;text-align:right;color:#ccc;font-size:10px;flex-shrink:0}.dps-bar-pct{width:40px;text-align:right;color:var(--muted);font-size:10px;flex-shrink:0}.fs-ios-fallback #game-container{position:fixed!important;top:0!important;left:0!important;width:100%!important;height:100%!important;z-index:9999!important}.fs-ios-fallback canvas{max-width:100%!important;max-height:100%!important}#upgrade-shop{display:none}#upgrade-shop .shop-header{display:flex;align-items:center;justify-content:space-between;width:100%;max-width:400px;margin-bottom:16px}#upgrade-shop .star-coins-display{font-size:18px;color:var(--gold);text-shadow:0 0 10px rgb(from var(--gold) r g b / .5)}#upgrade-shop .upgrade-list{display:flex;flex-direction:column;gap:10px;width:100%;max-width:400px;max-height:60vh;overflow-y:auto;padding:0 10px}.upgrade-item{display:flex;align-items:center;gap:12px;padding:12px 16px;border:2px solid var(--border);border-radius:10px;background:var(--surface);transition:all .2s}.upgrade-item:hover{border-color:rgb(from var(--gold) r g b / .3);background:#ffffff14}.upgrade-icon{font-size:28px;flex-shrink:0}.upgrade-info{flex:1;text-align:left}.upgrade-name{font-size:14px;font-weight:700;color:var(--white)}.upgrade-level{font-size:11px;color:var(--muted);margin-top:2px}.upgrade-effect{font-size:11px;color:var(--blue);margin-top:2px}.upgrade-btn{padding:8px 16px;border:2px solid var(--gold);border-radius:6px;background:rgb(from var(--gold) r g b / .15);color:var(--gold);font-size:13px;cursor:pointer;transition:all .2s;flex-shrink:0;min-width:90px;text-align:center}.upgrade-btn:hover:not(:disabled){background:rgb(from var(--gold) r g b / .3);transform:scale(1.05)}.upgrade-btn:disabled{border-color:#fff3;color:#ffffff4d;background:var(--surface);cursor:not-allowed}.upgrade-btn.max-level{border-color:#4d4;color:#4d4;background:#44dd441a;cursor:default}.star-coin-earned{font-size:20px;color:var(--gold);margin-top:8px;text-shadow:0 0 15px rgb(from var(--gold) r g b / .6)}#countdown-overlay{display:none;position:absolute;top:0;left:0;width:100%;height:100%;z-index:55;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}.countdown-number{font-size:120px;font-weight:700;color:var(--gold);text-shadow:0 0 40px rgb(from var(--gold) r g b / .8),0 0 80px rgb(from var(--gold-deep) r g b / .4);animation:countdownPop .8s ease-out forwards}.countdown-go{font-size:80px;font-weight:700;color:var(--green);text-shadow:0 0 40px rgba(68,255,68,.8),0 0 80px rgba(68,255,68,.4);animation:countdownPop .6s ease-out forwards}@keyframes countdownPop{0%{transform:scale(2.5);opacity:0}30%{transform:scale(.9);opacity:1}50%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}#pause-overlay{display:none;position:absolute;top:0;left:0;width:100%;height:100%;background:#00000080;z-index:50;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.pause-title{font-size:36px;color:var(--gold);font-weight:700;text-shadow:0 0 20px rgb(from var(--gold) r g b / .5)}.pause-buttons{display:flex;flex-direction:column;gap:12px;margin-top:20px}.pause-btn{padding:14px 40px;border:2px solid rgba(255,255,255,.3);border-radius:8px;background:#ffffff14;color:var(--white);font-size:16px;cursor:pointer;transition:all .2s;min-width:200px;text-align:center}.pause-btn:hover{border-color:var(--gold);background:rgb(from var(--gold) r g b / .15);color:var(--gold);transform:scale(1.05)}.pause-sub-content{max-width:340px;max-height:50vh;overflow-y:auto;padding:10px;text-align:center}.pause-sub-content h3{font-size:20px;color:var(--gold);margin-bottom:12px;text-shadow:0 0 10px rgb(from var(--gold) r g b / .4)}.pause-sub-item{display:flex;align-items:center;gap:10px;padding:10px 14px;margin:6px 0;border:1px solid var(--border);border-radius:8px;background:var(--surface);text-align:left}.pause-sub-item .item-icon{font-size:24px;flex-shrink:0}.pause-sub-item .item-name{font-size:13px;font-weight:700;color:var(--white)}.pause-sub-item .item-desc{font-size:11px;color:var(--muted-light);margin-top:2px}.pause-sub-empty{font-size:14px;color:var(--muted);padding:20px}@media(min-width:481px)and (max-width:768px){#pause-overlay{gap:12px}.pause-btn{width:min(260px,60vw)}}#in-run-shop{position:absolute;top:0;left:0;width:100%;height:100%;background:var(--bg-elevated);z-index:60;flex-direction:column;align-items:center;overflow-y:auto;padding:calc(20px + env(safe-area-inset-top,0px)) calc(20px + env(safe-area-inset-right,0px)) calc(20px + env(safe-area-inset-bottom,0px)) calc(20px + env(safe-area-inset-left,0px))}.shop-header{text-align:center;margin-bottom:20px}.shop-title{font-size:28px;color:var(--gold);font-weight:700;text-shadow:0 0 15px rgb(from var(--gold) r g b / .5)}.shop-gold{font-size:20px;color:var(--gold);margin-top:8px}.shop-items{display:flex;flex-direction:column;gap:12px;width:100%;max-width:400px;margin-bottom:20px}.shop-item{display:flex;align-items:center;gap:12px;padding:12px 16px;border:2px solid var(--border);border-radius:10px;background:var(--surface);transition:all .2s}.shop-item:hover{border-color:rgb(from var(--gold) r g b / .3);background:#ffffff14}.shop-item-icon{font-size:28px;flex-shrink:0}.shop-item-info{flex:1;text-align:left}.shop-item-name{font-size:14px;font-weight:700;color:var(--white)}.shop-item-level{font-size:11px;color:var(--muted);margin-top:2px}.shop-item-desc{font-size:11px;color:var(--blue);margin-top:2px}.shop-item-btn{padding:8px 16px;border:2px solid var(--gold);border-radius:6px;background:rgb(from var(--gold) r g b / .15);color:var(--gold);font-size:13px;cursor:pointer;transition:all .2s;flex-shrink:0;min-width:90px;text-align:center;min-height:44px}.shop-item-btn:hover:not(:disabled){background:rgb(from var(--gold) r g b / .3);transform:scale(1.05)}.shop-item-btn:disabled{border-color:#fff3;color:#ffffff4d;background:var(--surface);cursor:not-allowed}.shop-item-btn.max-level{border-color:#4d4;color:#4d4;background:#44dd441a;cursor:default}.shop-item-actions{display:flex;flex-direction:column;gap:4px;align-items:flex-end}.shop-item-type{font-size:10px;color:var(--muted)}.shop-item-sold{color:#4d4;font-size:12px}.shop-item.locked{border-color:#4af;box-shadow:0 0 8px #44aaff4d}.shop-lock-btn{background:none;border:none;cursor:pointer;font-size:16px;padding:0;min-width:40px;min-height:40px;display:inline-flex;align-items:center;justify-content:center}.shop-lock-btn.locked{color:#4af}.shop-lock-btn.unlocked{color:#666}.shop-lock-btn.unlocked:hover{color:var(--muted-light)}.shop-item-btn.unaffordable,.shop-item-btn.unaffordable:disabled{border-color:#f55;color:#f66;background:#ff55551f}.shop-item-btn.unaffordable:hover:not(:disabled){background:#ff555538}#shop-action-row{display:flex;gap:12px;align-items:center;justify-content:center;margin-top:4px}#shop-reroll-btn{width:auto;padding:10px 20px;font-size:13px;min-width:160px}#shop-reroll-btn:disabled{opacity:.45;cursor:not-allowed;border-color:#fff3;color:#ffffff59;background:#ffffff0d}#shop-reroll-btn:disabled:hover,#shop-reroll-btn:disabled:active{transform:none;border-color:#fff3;background:#ffffff0d}#shop-wave-buttons{display:none;flex-direction:column;gap:8px;align-items:center;margin-top:16px}#shop-wave-continue,#shop-wave-skip{width:200px}#shop-wave-skip{padding:8px;font-size:13px}#shop-inflation-display{font-size:12px;color:#fa0;margin-top:4px}#shop-inflation-display.high{color:#f55}@media(max-width:480px){#in-run-shop{padding:calc(12px + env(safe-area-inset-top,0px)) 12px calc(12px + env(safe-area-inset-bottom,0px)) 12px}.shop-items{display:grid;grid-template-columns:1fr}}@media(min-width:481px)and (max-width:768px){.shop-items{display:grid;grid-template-columns:repeat(2,1fr);max-width:min(600px,94vw)}}@media(min-width:769px){#in-run-shop{padding:calc(24px + env(safe-area-inset-top,0px)) 24px calc(24px + env(safe-area-inset-bottom,0px)) 24px}.shop-items{display:flex;flex-direction:column;max-width:400px}.shop-item-btn{min-height:44px}}.codex-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:15px 0;justify-content:center}.codex-tab{padding:6px 14px;border:2px solid rgba(255,255,255,.3);border-radius:6px;background:var(--surface);color:var(--white);cursor:pointer;transition:all .2s;font-size:13px}.codex-tab:hover{border-color:var(--gold)}.codex-tab.active{border-color:var(--gold);background:rgb(from var(--gold) r g b / .2);color:var(--gold)}.codex-content{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;max-width:500px;max-height:45vh;overflow-y:auto;padding:10px}.codex-card{padding:10px;border:2px solid rgba(255,255,255,.2);border-radius:8px;background:var(--surface);text-align:center;transition:all .2s}.codex-card:hover{border-color:var(--gold);transform:scale(1.05)}.codex-card-icon{font-size:24px;margin-bottom:5px}.codex-card-name{font-size:12px;font-weight:700;color:var(--white)}.codex-card-desc{font-size:10px;color:var(--muted-light);margin-top:4px}.codex-card.codex-locked{opacity:.55;border-color:#333!important}.codex-card.codex-locked:hover{transform:none;border-color:#444!important}.codex-card-badge{font-size:9px;padding:2px 6px;border-radius:4px;margin-bottom:4px;display:inline-block}.codex-card-badge.discovered{color:#6fa;background:#44ffaa1f}.codex-card-badge.undiscovered{color:#fa6;background:#ffaa661f}.codex-card-fusion{font-size:9px;color:var(--gold);margin-top:3px}.codex-card-stats{font-size:9px;color:#8ac;margin-top:3px}.codex-card-boss{grid-column:span 2}.codex-card-phases{margin-top:6px;text-align:left}.codex-phase{font-size:9px;color:var(--muted-light);padding:2px 0;display:flex;gap:6px;align-items:center}.codex-phase-hp{color:#f66;font-weight:700;min-width:42px}.codex-phase-name{color:#caf}.settings-divider{width:200px;height:1px;background:#ffffff26;margin:20px 0}.settings-content{max-width:300px;width:100%}.setting-item{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.1)}.setting-item label{font-size:14px;color:var(--white)}.setting-item input[type=range]{width:120px;accent-color:var(--gold)}.toggle{position:relative;display:inline-block;width:50px;height:24px}.toggle input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;inset:0;background-color:#fff3;transition:.3s;border-radius:24px}.toggle-slider:before{position:absolute;content:"";height:18px;width:18px;left:3px;bottom:3px;background-color:#fff;transition:.3s;border-radius:50%}.toggle input:checked+.toggle-slider{background-color:#4d4}.toggle input:checked+.toggle-slider:before{transform:translate(26px)}.setting-select{padding:4px 10px;border:1px solid rgba(255,255,255,.3);border-radius:6px;background:#ffffff14;color:var(--white);font-size:13px;cursor:pointer;outline:none;accent-color:var(--gold)}.setting-select option{background:var(--bg-select);color:var(--white)}@media(min-width:481px){.toggle{height:44px}.toggle-slider:before{height:34px;width:34px}.toggle input:checked+.toggle-slider:before{transform:translate(10px)}.setting-item label{font-size:15px}.setting-item input[type=range]{width:min(200px,40vw)}.settings-content .menu-btn{min-height:44px}}.meta-shop-layout{justify-content:flex-start;padding:max(16px,env(safe-area-inset-top)) 16px max(16px,env(safe-area-inset-bottom));overflow:hidden}.meta-shop-panel{width:min(1100px,100%);flex:1;min-height:0;display:flex;flex-direction:column;align-items:stretch;gap:12px}.meta-shop-header{text-align:center;flex-shrink:0}.meta-shop-balance{font-size:20px;color:var(--gold);margin:12px 0 4px;text-shadow:0 0 12px rgb(from var(--gold) r g b / .5)}.meta-shop-tabs{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;flex-shrink:0}.meta-shop-tab{padding:10px 18px;border:2px solid rgba(255,255,255,.3);border-radius:8px;background:var(--surface);color:var(--white);cursor:pointer;transition:all .2s;font-size:13px;min-height:44px}.meta-shop-tab:hover{border-color:var(--gold)}.meta-shop-tab.active{border-color:var(--gold);background:rgb(from var(--gold) r g b / .2);color:var(--gold)}.meta-shop-items{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;width:100%;flex:1;min-height:0;max-height:none;overflow-y:auto;padding:4px 4px 12px;margin-bottom:0;-webkit-overflow-scrolling:touch}.meta-shop-back{flex-shrink:0;width:min(280px,100%);margin:0 auto 8px}.meta-shop-card{display:flex;align-items:center;gap:12px;padding:14px 16px;border:2px solid rgba(255,255,255,.12);border-radius:10px;background:#ffffff0a;transition:all .25s;min-height:88px}.meta-shop-card:hover{border-color:rgb(from var(--gold) r g b / .35);background:#ffffff14;transform:translateY(-1px)}.meta-shop-card.owned{border-color:#4d46;background:#44dd440f}.meta-shop-icon{font-size:30px;flex-shrink:0;width:40px;text-align:center}.meta-shop-info{flex:1;text-align:left}.meta-shop-name{font-size:14px;font-weight:700;color:var(--white)}.meta-shop-desc{font-size:11px;color:#8cf;margin-top:3px;line-height:1.3}.meta-shop-category{font-size:10px;color:#666;margin-top:2px}.meta-shop-buy{padding:8px 14px;border:2px solid var(--gold);border-radius:6px;background:rgb(from var(--gold) r g b / .12);color:var(--gold);font-size:13px;cursor:pointer;transition:all .2s;flex-shrink:0;min-width:80px;text-align:center;white-space:nowrap}.meta-shop-buy:hover:not(:disabled){background:rgb(from var(--gold) r g b / .3);transform:scale(1.05)}.meta-shop-buy:disabled{border-color:#fff3;color:#ffffff4d;background:var(--surface);cursor:not-allowed}.meta-shop-buy.owned-btn{border-color:#4d4;color:#4d4;background:#44dd441a;cursor:default}@media(min-width:1100px){.meta-shop-items{grid-template-columns:repeat(3,1fr)}}@media(min-width:481px)and (max-width:768px){.meta-shop-items{grid-template-columns:1fr}}@media(min-width:769px)and (max-width:1099px){.meta-shop-items{grid-template-columns:repeat(2,1fr)}}#loading-screen{position:fixed;top:0;left:0;width:100%;height:100%;background:var(--bg-deep);z-index:1000;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity .5s}#loading-screen.fade-out{opacity:0;pointer-events:none}#loading-canvas{position:absolute;top:0;left:0;width:100%;height:100%}.loading-content{position:relative;z-index:1;text-align:center}.loading-title{font-size:32px;font-weight:700;margin-bottom:8px;background:linear-gradient(180deg,var(--gold),var(--gold-deep));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.loading-subtitle{font-size:14px;color:#666;margin-bottom:30px}.loading-bar-container{width:200px;height:4px;background:#ffffff1a;border-radius:2px;overflow:hidden;margin:0 auto}.loading-bar{height:100%;width:0%;background:linear-gradient(90deg,var(--gold),var(--gold-deep));border-radius:2px;transition:width .3s}.loading-text{font-size:12px;color:#555;margin-top:12px}#error-screen{position:fixed;top:0;left:0;width:100%;height:100%;background:var(--bg-error);z-index:2000;display:none;flex-direction:column;align-items:center;justify-content:center;color:var(--white);text-align:center;padding:20px}#error-screen .error-icon{font-size:48px;margin-bottom:16px}#error-screen .error-msg{font-size:16px;color:#ccc;margin-bottom:24px;max-width:300px}#error-screen .error-btn{padding:12px 32px;border:2px solid var(--gold);border-radius:8px;background:rgb(from var(--gold) r g b / .15);color:var(--gold);font-size:15px;cursor:pointer}.version-info{font-size:11px;color:#555;margin-top:16px;text-align:center}.welcome-back{position:absolute;top:60px;left:50%;transform:translate(-50%);background:linear-gradient(135deg,rgb(from var(--gold) r g b / .2),rgb(from var(--gold-deep) r g b / .2));border:1px solid rgb(from var(--gold) r g b / .4);border-radius:10px;padding:12px 24px;z-index:25;text-align:center;animation:welcomeFadeIn .5s ease-out,welcomeFadeOut .5s ease-in 4.5s forwards}.welcome-back .wb-title{font-size:18px;color:var(--gold);font-weight:700}.welcome-back .wb-desc{font-size:12px;color:var(--muted-light);margin-top:4px}@keyframes welcomeFadeIn{0%{opacity:0;transform:translate(-50%) translateY(-10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes welcomeFadeOut{0%{opacity:1}to{opacity:0}}#talent-screen{flex-direction:column;align-items:center;gap:12px;max-height:100vh;overflow-y:auto;padding:20px 10px;-webkit-overflow-scrolling:touch}.talent-points-display{font-size:16px;color:var(--gold);font-weight:700;background:rgb(from var(--gold) r g b / .1);border:1px solid rgb(from var(--gold) r g b / .3);border-radius:8px;padding:6px 16px}.talent-branches{display:flex;gap:6px;flex-wrap:wrap;justify-content:center}.talent-branch-tab{padding:6px 14px;border-radius:6px;font-size:13px;cursor:pointer;border:2px solid transparent;background:#ffffff14;color:#ccc;transition:all .2s}.talent-branch-tab.active{border-color:var(--branch-color, var(--gold));background:#ffffff26;color:var(--white);font-weight:700}.talent-tree{width:100%;max-width:500px;display:flex;flex-direction:column;gap:8px}.talent-layer{display:flex;flex-direction:column;gap:6px}.talent-layer-header{display:flex;align-items:center;justify-content:space-between;width:100%}.talent-layer-label{font-size:12px;font-weight:700;color:var(--muted-light)}.talent-layer-label.locked{color:#555}.talent-layer-status{font-size:11px;color:var(--muted)}.talent-layer-status.has-points{color:var(--branch-color, var(--gold))}.talent-layer-status.locked{color:#555}.talent-layer-progress{height:3px;background:#ffffff0f;border-radius:2px;overflow:hidden;width:100%}.talent-layer-progress-fill{height:100%;width:0%;background:var(--branch-color, var(--gold));border-radius:2px;transition:width .4s ease}.talent-layer-progress-fill.filled{width:100%}.talent-nodes-row{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;width:100%}.talent-connector{width:2px;height:12px;margin:2px auto;border-radius:1px;background:linear-gradient(180deg,#ffffff0a,#ffffff1f);transition:background .3s}.talent-connector.unlocked{background:linear-gradient(180deg,transparent,var(--branch-color, var(--gold)) 40%,var(--branch-color, var(--gold)) 60%,transparent)}.talent-node{position:relative;width:110px;padding:10px 6px;border-radius:10px;text-align:center;background:#ffffff0f;border:2px solid rgba(255,255,255,.12);cursor:pointer;transition:all .2s;font-size:11px;color:#bbb;display:flex;flex-direction:column;align-items:center;gap:2px}.talent-node:hover:not(.locked):not(.selected){background:#ffffff1f;border-color:#ffffff40}.talent-node.selected{border-color:var(--branch-color, var(--gold));background:#ffffff24;background:color-mix(in srgb,var(--branch-color, var(--gold)) 16%,transparent);color:var(--white);font-weight:700;box-shadow:0 0 12px var(--branch-color, var(--gold))}.talent-node.can-select{border-color:var(--branch-color, var(--gold));opacity:.85;cursor:pointer}.talent-node.locked{opacity:.35;cursor:not-allowed}.talent-node.locked .talent-node-icon{opacity:.3}.talent-node.ultimate{border-color:var(--branch-color, var(--gold));animation:talentUltimatePulse 2.6s ease-in-out infinite}.talent-node.selected.ultimate{box-shadow:0 0 12px var(--branch-color, var(--gold))}@keyframes talentUltimatePulse{0%,to{box-shadow:0 0 8px color-mix(in srgb,var(--branch-color, var(--gold)) 40%,transparent)}50%{box-shadow:0 0 18px color-mix(in srgb,var(--branch-color, var(--gold)) 85%,transparent)}}@media(prefers-reduced-motion:reduce){.talent-node.ultimate{animation:none}}.talent-node-icon{font-size:24px;line-height:1}.talent-node-name{font-size:12px;line-height:1.2}.talent-node-stack{position:absolute;top:2px;right:3px;min-width:14px;height:14px;padding:0 3px;border-radius:8px;background:var(--branch-color, var(--gold));color:#000;font-size:9px;font-weight:700;line-height:14px;text-align:center;display:none;pointer-events:none}.talent-node-stack.visible{display:block}.talent-node-lock{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:16px;opacity:.7;display:none;pointer-events:none}.talent-node-lock.visible{display:block}.talent-node-desc{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);z-index:50;width:130px;padding:5px 7px;background:#0a0e16f5;border:1px solid rgba(255,255,255,.2);border-radius:6px;box-shadow:0 2px 10px #00000080;font-size:10px;color:#bbb;line-height:1.3;text-align:center;white-space:normal;display:none;pointer-events:none}.talent-node.selected .talent-node-desc,.talent-node:hover .talent-node-desc{display:block}.talent-footer{display:flex;gap:12px;margin-top:8px}@media(max-width:480px){#talent-screen{padding:12px 4px}.talent-tree{max-width:min(500px,96vw)}.talent-node{width:min(100px,42vw)}}@media(min-width:481px)and (max-width:768px){.talent-tree{max-width:500px}.talent-node{width:110px}}@media(min-width:769px){#talent-screen{padding:20px 10px}.talent-tree{max-width:500px}.talent-node{width:110px}}#tutorial-overlay{display:none;position:absolute;top:0;left:0;width:100%;height:100%;z-index:55;pointer-events:auto}.tutorial-backdrop{position:absolute;top:0;left:0;width:100%;height:100%;background:#0009}.tutorial-skip-btn{position:absolute;top:12px;right:12px;padding:6px 16px;border:1px solid rgba(255,255,255,.4);border-radius:6px;background:#ffffff1a;color:#ffffffb3;font-size:13px;cursor:pointer;transition:all .2s;z-index:2}.tutorial-skip-btn:hover{background:#fff3;color:var(--white)}.tutorial-content{position:absolute;left:50%;bottom:25%;transform:translate(-50%);text-align:center;z-index:2;width:90%;max-width:320px;animation:tutorialFadeIn .4s ease-out}@keyframes tutorialFadeIn{0%{opacity:0;transform:translate(-50%) translateY(10px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.tutorial-step-indicator{font-size:12px;color:#ffffff80;margin-bottom:6px}.tutorial-icon{font-size:48px;margin-bottom:8px;filter:drop-shadow(0 0 12px rgba(255,255,255,.3))}.tutorial-text{font-size:18px;font-weight:700;color:var(--white);text-shadow:0 0 10px rgba(255,255,255,.3);margin-bottom:4px}.tutorial-hint{font-size:13px;color:var(--muted-light)}.tutorial-highlight{position:absolute;z-index:1;border:2px solid rgb(from var(--gold) r g b / .8);border-radius:8px;box-shadow:0 0 15px rgb(from var(--gold) r g b / .4),inset 0 0 15px rgb(from var(--gold) r g b / .1);pointer-events:none;animation:tutorialPulse 1.5s ease-in-out infinite}@keyframes tutorialPulse{0%,to{box-shadow:0 0 15px rgb(from var(--gold) r g b / .4),inset 0 0 15px rgb(from var(--gold) r g b / .1)}50%{box-shadow:0 0 25px rgb(from var(--gold) r g b / .7),inset 0 0 20px rgb(from var(--gold) r g b / .2)}}@media(min-width:481px){#tutorial-overlay{align-items:center}.tutorial-content{bottom:25%}.tutorial-icon{font-size:48px}.tutorial-text{font-size:18px}.tutorial-hint{font-size:13px}}@media(max-width:768px){#tutorial-overlay{align-items:center}}@media(hover:none)and (pointer:coarse),(max-width:768px){.hud-skill-slot,.hud-weapon-bar,.hud-hp-container,.hud-top-left,.hud-top-right,.hud-wave,.hud-wave-progress,.game-timer-hud,.hud-boss-bar,.fs-toggle{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}}:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.season-claim-btn,.tutorial-skip-btn,.shop-lock-btn{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}@media(max-width:480px){.faction-char-card{min-height:44px;min-width:44px}.faction-char-row{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px}}.loading-bar{position:relative;overflow:hidden}.loading-bar:after{content:"";position:absolute;top:0;left:0;height:100%;width:40px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);animation:loadingSweep 1.1s ease-in-out infinite}@keyframes loadingSweep{0%{transform:translate(-40px)}to{transform:translate(200px)}}@media(prefers-reduced-motion:reduce){.loading-bar:after{animation:none}}.menu-footer{margin-top:20px;font-size:11px;color:var(--muted);text-align:center;line-height:1.8}.menu-footer .menu-hint{color:#777}#loadout-screen{left:0;right:0;width:auto;max-width:min(720px,94vw);margin:0 auto}.loadout-title{font-size:24px;font-weight:700;background:linear-gradient(180deg,var(--gold),var(--gold-deep));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:4px}#loadout-screen .loadout-title{font-size:24px;margin-bottom:4px}.loadout-counter{color:var(--gold);font-size:14px;margin:8px 0}.loadout-grid{display:grid;gap:8px;grid-template-columns:repeat(2,1fr);max-height:55vh;overflow-y:auto;padding:4px;width:100%}.loadout-card{display:flex;align-items:center;gap:8px;padding:10px 12px;border-radius:8px;cursor:pointer;border:2px solid #334;background:#ffffff0a;transition:border-color .15s,background .15s;text-align:left;min-height:44px}.loadout-card:hover{border-color:rgb(from var(--gold) r g b / .4)}.loadout-card.selected{border-color:var(--gold);background:rgb(from var(--gold) r g b / .12)}.loadout-icon{font-size:24px;flex-shrink:0}.loadout-info{flex:1;min-width:0;text-align:left}.loadout-name{font-size:13px;font-weight:700;color:var(--white)}.loadout-desc{font-size:10px;color:#8cf;margin-top:2px;line-height:1.3}.loadout-check{color:var(--gold);font-size:18px;flex-shrink:0}@media(max-width:480px){#loadout-screen .loadout-grid{grid-template-columns:1fr}}@media(min-width:481px)and (max-width:768px){#loadout-screen .loadout-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:769px){#loadout-screen .loadout-grid{grid-template-columns:repeat(3,1fr)}}.confirm-overlay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;max-width:min(320px,86vw);box-sizing:border-box;padding:24px 20px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;z-index:35;display:flex;flex-direction:column;align-items:center;box-shadow:0 0 0 9999px #000000d9;pointer-events:auto}.confirm-title{font-size:22px;font-weight:700;color:var(--white);margin-bottom:12px;text-align:center}.confirm-title.danger{color:#f66;text-shadow:0 0 15px rgba(255,68,68,.5)}.confirm-name{font-size:16px;font-weight:700;color:var(--white);margin-bottom:8px;text-align:center}.confirm-desc{font-size:14px;color:#ccc;margin-bottom:24px;text-align:center;max-width:280px;line-height:1.6}.confirm-btn-row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;width:100%}.confirm-btn-row .menu-btn{flex:1;min-width:0;max-width:170px;width:auto;margin:0;min-height:44px;padding:12px 8px;font-size:14px}.confirm-btn{min-height:44px}.confirm-btn.danger{border-color:#f44;color:#f44}.confirm-btn.danger:hover{background:#ff444426;border-color:#f66;color:#f66}@media(max-width:480px){.confirm-overlay{padding:20px 14px}}@media(min-width:481px)and (max-width:768px){.confirm-overlay{padding:24px 18px}}@media(min-width:769px){.confirm-overlay{padding:28px 24px}}.dps-item{display:flex;align-items:center;gap:8px;padding:6px 0;border-bottom:1px solid rgba(255,255,255,.08)}.dps-icon{font-size:18px;width:28px;text-align:center;flex-shrink:0}.dps-info{flex:1;min-width:0}.dps-name{font-size:13px;color:#ddd;margin-bottom:3px}.dps-item .dps-bar-track{height:8px}.dps-item .dps-bar-fill{background:linear-gradient(90deg,#48f,#6af);border-radius:4px}.dps-num{text-align:right;font-size:12px;color:var(--white);font-weight:700;flex-shrink:0;min-width:60px}.dps-pct{text-align:right;font-size:11px;color:var(--muted);margin-top:1px}.dps-total{text-align:center;margin-top:10px;font-size:13px;color:#aaa}.dps-total span{color:var(--gold);font-weight:700}:root{--gold: #ffdd00;--gold-deep: #ff8800;--blue: #44ddff;--green: #44ff44;--red: #ff4444;--muted: #888;--muted-light: #aaa;--surface: rgba(255,255,255,.05);--border: rgba(255,255,255,.15);--white: #fff;--bg-base: #000;--bg-deep: #050515;--bg-panel: rgba(5,5,30,.92);--bg-elevated: rgba(5,5,30,.95);--bg-error: #0a0a1a;--bg-select: #1a1a3a;--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 20px;--s6: 24px;--r-sm: 6px;--r-md: 8px;--r-lg: 12px;--t-fast: .12s;--t-med: .2s;--t-slow: .4s;--hud-toolbar-h: 52px}#season-pass-screen{display:none;flex-direction:column;align-items:center;padding:20px;overflow-y:auto}.season-pass-header{text-align:center;margin-bottom:16px}.season-pass-header h1{font-size:28px;color:var(--gold);margin-bottom:4px}.season-pass-free-badge{display:inline-block;font-size:12px;color:#4f8;border:1px solid rgba(68,255,136,.5);border-radius:12px;padding:2px 10px;margin-bottom:8px}.season-pass-timer{font-size:12px;color:#acf;margin:6px 0 10px;text-align:center}.season-pass-progress{width:min(400px,90vw);margin-bottom:16px}.season-pass-progress-bar{height:8px;background:#ffffff26;border-radius:4px;overflow:hidden}.season-pass-progress-fill{height:100%;background:linear-gradient(90deg,var(--gold),var(--gold-deep));width:0%;transition:width .3s}.season-pass-stats{display:flex;justify-content:space-between;font-size:13px;color:var(--muted-light);margin-top:6px}#season-pass-list{width:min(440px,95vw);max-height:55vh;overflow-y:auto;display:flex;flex-direction:column;gap:8px}.season-reward-row{display:flex;align-items:center;gap:8px;padding:10px 12px;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:#ffffff0a;font-size:13px}.season-reward-row.unlocked{border-color:rgb(from var(--gold) r g b / .35)}.season-reward-row.claimed{opacity:.55}.season-reward-lv{width:42px;color:var(--gold);font-weight:700}.season-reward-icon{font-size:20px;width:28px;text-align:center}.season-reward-label{flex:1;color:var(--white)}.season-reward-xp{font-size:11px;color:var(--muted);width:56px;text-align:right}.season-claim-btn{padding:4px 10px;min-height:44px;border:1px solid var(--gold);border-radius:6px;background:rgb(from var(--gold) r g b / .12);color:var(--gold);font-size:11px;cursor:pointer}.season-claim-btn:disabled{opacity:.45;cursor:default;border-color:#fff3;color:var(--muted)}@media(max-width:480px){.season-reward-row{flex-direction:column;align-items:stretch;gap:6px}.season-reward-lv,.season-reward-icon,.season-reward-xp{width:auto}.season-reward-xp{text-align:left}.season-claim-btn{width:100%}}@media(min-width:481px)and (max-width:768px){.season-pass-progress{width:min(520px,90vw)}#season-pass-list{width:min(560px,95vw)}.season-reward-row{gap:10px;padding:12px}}
