:root{--bg1: #06111f;--bg2: #0d203a;--grid: #38bdf8;--player: #60a5fa;--enemy: #fb7185;--bullet: #fde047;--text: #dbeafe;--good: #86efac;--warn: #fca5a5;--card: #c084fc;--card2: #8b5cf6}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{margin:0;width:100%;height:100%;overflow:hidden;background:radial-gradient(circle at top,#163457 0%,var(--bg1) 55%,#02060d 100%);font-family:Arial,sans-serif;color:var(--text)}body{touch-action:none}#game{position:relative;width:100vw;height:100vh;overflow:hidden;touch-action:none;-webkit-user-select:none;user-select:none}canvas#canvas{position:absolute;inset:0;width:100%;height:100%;display:block}.hud{position:absolute;left:0;right:0;top:0;display:flex;justify-content:space-between;gap:12px;padding:14px;pointer-events:none;font-weight:700;text-shadow:0 0 10px rgba(0,0,0,.6)}.panel{background:#0814288c;border:1px solid rgba(125,211,252,.35);border-radius:12px;padding:8px 12px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-shadow:0 0 20px #0ea5e91f inset}#ecosystemHud{position:absolute;z-index:12;top:64px;left:50%;transform:translate(-50%);display:flex;gap:9px;align-items:center;width:max-content;max-width:96vw;padding:6px 10px;border:1px solid rgba(192,132,252,.55);border-radius:10px;background:#020617db;box-shadow:0 0 18px #c084fc33;color:#cbd5e1;font-size:clamp(8px,2.3vw,11px);letter-spacing:.06em;white-space:nowrap;pointer-events:none}#ecosystemHud b{color:#fff}.ecosystemTitle{color:#c084fc;font-weight:900}.fusionActive{color:#f472b6;text-shadow:0 0 8px #f472b6;animation:ecosystemPulse .8s ease-in-out infinite alternate}@keyframes ecosystemPulse{to{transform:scale(1.08)}}@media(max-width:520px){#ecosystemHud{top:60px;gap:6px;padding:5px 7px}.ecosystemTitle{display:none}}#shieldChargesDisplay{display:block;margin-top:4px;font-size:13px;letter-spacing:1px;color:#93c5fde6;line-height:1}#message{position:absolute;left:50%;transform:translate(-50%);bottom:50px;padding:8px 12px;border-radius:999px;background:#020617b3;border:1px solid rgba(125,211,252,.28);font-size:14px;pointer-events:none;opacity:.95;white-space:nowrap;max-width:90vw;overflow:hidden;text-overflow:ellipsis;z-index:20}#controls{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-between;padding:14px;pointer-events:none;z-index:10}.control-btn{background:#081428b3;border:2px solid rgba(125,211,252,.5);border-radius:12px;color:var(--text);font-weight:700;font-size:14px;padding:10px 16px;pointer-events:auto;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;user-select:none;transition:all .15s}.control-btn:active{transform:scale(.95);background:#3b82f64d}#busterBtn{background:#fb718540;border-color:var(--enemy);border-radius:50%;width:80px;height:80px;font-size:12px;display:flex;align-items:center;justify-content:center}#busterBtn:active{background:#fb718580}#autoToggle.on{background:#22c55e40;border-color:var(--good)}#autoToggle.off{background:#fca5a540;border-color:var(--warn)}#rotateHandBtn{align-self:flex-start;font-size:12px;font-weight:800;letter-spacing:.06em;padding:6px 14px;pointer-events:auto;background:#8b5cf633;border-color:#c4b5fd80;color:#ede9fe}#rotateHandBtn:active{background:#8b5cf673;border-color:#c4b5fdd9}#rotateHandBtn:disabled{opacity:.35;cursor:not-allowed;background:#8b5cf614;border-color:#c4b5fd33}#dpad{display:block;position:absolute;bottom:80px;left:50%;transform:translate(-50%);width:150px;height:150px;pointer-events:auto;z-index:10;background:#00000026;border-radius:20px}.dpad-btn{position:absolute;width:50px;height:50px;background:#3b82f64d;border:2px solid rgba(125,211,252,.5);border-radius:12px;pointer-events:auto;touch-action:manipulation}.dpad-btn:active{background:#3b82f699}#dpadUp{top:0;left:50px}#dpadDown{bottom:0;left:50px}#dpadLeft{top:50px;left:0}#dpadRight{top:50px;right:0}#dpadCenter{top:50px;left:50px;width:50px;height:50px;background:#7dd3fc26;border-color:#7dd3fc4d;border-radius:50%}#skillBtn{position:absolute;left:14px;bottom:110px;z-index:13;min-width:68px;padding:10px 8px;display:flex;flex-direction:column;gap:2px;align-items:center;color:#f5f3ff;background:#6d28d94d;border-color:#c4b5fdb8;box-shadow:0 0 18px #8b5cf633}#skillBtn small{color:#e9d5ffb3;font-size:9px;letter-spacing:.08em}#skillBtn:active{background:#8b5cf694;transform:scale(.96)}.skillFxWrap{position:absolute;z-index:18;transform:translate(-50%,-50%);pointer-events:none;animation:skillSmokeHandoff 1.53s linear forwards}.skillFxWrap img{width:100%;height:100%;display:block;object-fit:contain;image-rendering:pixelated}@keyframes skillSmokeHandoff{0%,68%{opacity:1}86%{opacity:.42}to{opacity:0}}.skillPlayerFx{position:absolute;z-index:19;transform:translate(-50%,-50%);pointer-events:none;animation:skillCasterMaterialize .9s steps(6,end) forwards}.skillPlayerFx img{width:100%;height:100%;display:block;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 0 4px rgba(224,242,254,.8))}@keyframes skillCasterMaterialize{0%{opacity:0;transform:translate(-50%,-50%) scale(.62)}18%{opacity:1;transform:translate(-50%,-50%) scale(1.08)}34%,72%{opacity:1;transform:translate(-50%,-50%) scale(1)}86%{opacity:.9;transform:translate(-50%,-50%) scale(.94)}to{opacity:0;transform:translate(-50%,-50%) scale(.72)}}.cloneAvatar{position:absolute;z-index:17;transform:translate(-50%,-50%);pointer-events:none;display:flex;align-items:center;justify-content:center}.cloneAvatar.materializing{animation:cloneMaterializeHandoff 1.53s ease-out forwards}@keyframes cloneMaterializeHandoff{0%,62%{opacity:0;transform:translate(-50%,-50%) scale(.92)}84%{opacity:.72;transform:translate(-50%,-50%) scale(.98)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.cloneAvatar img{width:100%;height:100%;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 2px 0 rgba(15,23,42,.8))}.cloneBaseFrame.hidden{visibility:hidden}.cloneAttackFrames{position:absolute;inset:-12%;pointer-events:none}.cloneAttackFrames img{position:absolute;inset:0;opacity:0;width:100%;height:100%;object-fit:contain;image-rendering:pixelated;animation:cloneEloAttackFrame .48s steps(1,end) forwards}.cloneAttackFrames img:nth-child(2){animation-delay:.12s}.cloneAttackFrames img:nth-child(3){animation-delay:.26s}.cloneAttackFrames.sustained img{animation-duration:.65s;animation-delay:0ms;animation-iteration-count:infinite}.cloneAttackFrames.sustained img:nth-child(1){animation-name:cloneAutoAttackFrameOne}.cloneAttackFrames.sustained img:nth-child(2){animation-name:cloneAutoAttackFrameTwo}.cloneAttackFrames.sustained img:nth-child(3){animation-name:cloneAutoAttackFrameThree}@keyframes cloneEloAttackFrame{0%{opacity:1}36%{opacity:1}37%,to{opacity:0}}@keyframes cloneAutoAttackFrameOne{0%,32%{opacity:1}33%,to{opacity:0}}@keyframes cloneAutoAttackFrameTwo{0%,32%{opacity:0}33%,65%{opacity:1}66%,to{opacity:0}}@keyframes cloneAutoAttackFrameThree{0%,65%{opacity:0}66%,to{opacity:1}}.cloneAvatar.controlled img{filter:drop-shadow(0 0 2px #fff) drop-shadow(0 0 5px rgba(56,189,248,.72))}.cloneAvatar.defending img{filter:drop-shadow(0 0 4px #fff) drop-shadow(0 0 11px rgba(96,165,250,.95))}.cloneAvatar.defending:before{content:"";position:absolute;z-index:-1;left:-12%;top:-8%;width:124%;height:116%;border:2px solid rgba(125,211,252,.58);border-left-width:4px;border-radius:48% 28% 28% 48%;background:linear-gradient(90deg,#38bdf824,#3b82f605);box-shadow:inset 5px 0 #e0f2fe47,0 0 8px #38bdf885;transform-origin:0 50%;animation:cloneDefenseBarrier .48s steps(3,end) forwards}.cloneAvatar.attacking{animation:cloneAttackCommit .52s ease-out forwards}.cloneAvatar.dispersing{animation:cloneDisperse .36s steps(4,end) forwards}@keyframes cloneDefenseBarrier{0%{opacity:0;transform:scaleX(0)}34%{opacity:1;transform:scaleX(.38)}67%{opacity:.62;transform:scaleX(1.08)}to{opacity:1;transform:scaleX(1)}}#cloneActionControls{position:absolute;left:50%;transform:translate(-50%);z-index:26;width:min(92vw,420px);padding:8px;display:grid;grid-template-columns:repeat(3,1fr);gap:7px;pointer-events:auto;background:#050d1df5;border:1px solid rgba(125,211,252,.5);border-radius:14px;box-shadow:0 0 26px #0ea5e92e}.cloneActionBtn{min-height:54px;padding:7px 4px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;color:#e0f2fe;background:#1e40af40;border:1px solid rgba(125,211,252,.55);border-radius:10px;font-size:10px;font-weight:900;letter-spacing:.06em;touch-action:manipulation}.cloneActionBtn b{font-size:15px;line-height:1}.cloneActionBtn.attack{border-color:#fb7185b8}.cloneActionBtn.switch{border-color:#facc15b8}.cloneActionBtn.defend{border-color:#60a5facc}.cloneActionBtn:active{transform:scale(.96);filter:brightness(1.25)}.cloneActionBtn:disabled{opacity:.3;transform:none}@keyframes cloneAttackCommit{0%{transform:translate(-50%,-50%) scale(1);opacity:1}80%{transform:translate(-50%,-50%) scale(1);opacity:1}to{transform:translate(-50%,-50%) scale(.82);opacity:0}}@keyframes cloneDisperse{0%{transform:translate(-50%,-50%) scale(1);opacity:1}to{transform:translate(-50%,-58%) scale(1.35);opacity:0}}#cardUiWrapper{position:absolute;left:50%;transform:translate(-50%);width:min(92vw,420px);display:flex;flex-direction:column;gap:8px;z-index:10}#cardUi{display:flex;flex-direction:column;gap:8px;pointer-events:none}#cardCharge{background:#081428c2;border:1px solid rgba(192,132,252,.45);border-radius:14px;padding:10px 12px;box-shadow:0 0 20px #8b5cf624 inset}#cardChargeLabel{font-size:12px;font-weight:700;margin-bottom:8px;color:#ede9fe}#cardBarTrack{width:100%;height:10px;border-radius:999px;background:#ffffff1a;overflow:hidden}#cardBarFill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--card),var(--card2));box-shadow:0 0 14px #c084fc99;transition:width .3s linear}#cardChoices{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;pointer-events:auto}.card-btn{background:linear-gradient(180deg,#4c1d95eb,#1e1b4bf2);border:2px solid rgba(196,181,253,.55);border-radius:14px;color:#f5f3ff;padding:10px 8px;min-height:76px;font-size:11px;font-weight:700;line-height:1.2;text-align:center;pointer-events:auto;touch-action:manipulation;box-shadow:0 0 18px #8b5cf640;cursor:pointer}.card-btn:active{transform:scale(.96)}.card-btn:disabled{cursor:not-allowed}.card-btn.used{opacity:.42;background:linear-gradient(180deg,#1e143cd9,#0f0c28e6);border-color:#8b5cf638;box-shadow:none}.card-btn:disabled:not(.used){opacity:.5;background:linear-gradient(180deg,#281450b3,#140f32cc);border-color:#8b5cf64d}#mainMenu{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;background:#020617b8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:50;overflow-y:auto;padding:24px 16px}#menuCard{margin:auto 0}#menuCard{background:#081428f0;border:2px solid rgba(125,211,252,.45);border-radius:24px;padding:48px 52px 40px;text-align:center;box-shadow:0 0 80px #0ea5e92e,0 0 160px #0ea5e912;display:flex;flex-direction:column;align-items:center;gap:20px;max-width:min(92vw,420px)}#menuTitle{font-size:clamp(32px,8vw,48px);font-weight:900;letter-spacing:.08em;line-height:1.1;color:var(--grid);text-shadow:0 0 24px rgba(56,189,248,.7),0 0 60px rgba(56,189,248,.3)}#menuTagline{font-size:14px;color:#dbeafe8c;letter-spacing:.04em;margin-top:-8px;margin-bottom:6px}#preEvoLabel{color:#a78bfa;font-size:11px;letter-spacing:.18em;font-weight:700;margin-bottom:16px;opacity:.9}#menuPlayBtn{background:linear-gradient(135deg,#0ea5e9d9,#2563ebf2);border:2px solid rgba(125,211,252,.7);border-radius:16px;color:#fff;font-size:22px;font-weight:900;letter-spacing:.1em;padding:16px 56px;cursor:pointer;touch-action:manipulation;box-shadow:0 0 32px #0ea5e973;transition:transform .12s,box-shadow .12s;margin:4px 0}#menuPlayBtn:active{transform:scale(.96);box-shadow:0 0 48px #0ea5e9a6}.pressureState{padding:2px 7px;border-radius:999px;font-weight:900;letter-spacing:.08em}.pressureState.steady{color:#7dd3fc;border:1px solid rgba(125,211,252,.3)}.pressureState.critical{color:#fecdd3;border:1px solid rgba(251,113,133,.6);background:#9f123933}.pressureState.recovery{color:#bbf7d0;border:1px solid rgba(74,222,128,.55);background:#14532d33}#rotateLandscapeBtn{display:none}.gamepad-selected{outline:3px solid #f8fafc!important;outline-offset:4px;filter:brightness(1.16);transform:scale(1.025);box-shadow:0 0 0 2px #38bdf8a6,0 0 34px #38bdf8b8!important}#menuCustomBtn,#menuBestiaryBtn,#menuOptionsBtn{background:#08142899;border:2px solid rgba(125,211,252,.35);border-radius:12px;color:#dbeafebf;font-size:15px;font-weight:700;letter-spacing:.06em;padding:10px 28px;cursor:pointer;touch-action:manipulation;transition:all .15s;width:100%}#menuCustomBtn:active,#menuBestiaryBtn:active,#menuOptionsBtn:active{transform:scale(.97);background:#0ea5e926;border-color:#7dd3fc99;color:#fff}.customization-card{width:min(92vw,480px);max-width:min(92vw,480px)!important;padding-left:20px!important;padding-right:20px!important;overflow-x:hidden;flex-shrink:0}.customization-card>*{min-width:0;max-width:100%;flex-shrink:0}.customization-card #skinPickerRow .skin-btn{padding-left:8px;padding-right:8px}#customSubtitle{font-size:13px;color:#dbeafe73;margin-top:-12px}#skinPickerRow{display:flex;flex-direction:row;gap:12px;width:100%;margin-bottom:4px;overflow-x:auto;overflow-y:hidden;min-height:118px;overscroll-behavior-inline:contain;scroll-padding-inline:8px;padding-bottom:6px}#assemblySkillPicker{width:100%;max-width:100%;min-width:0;overflow-x:auto!important;overflow-y:hidden!important;min-height:64px;overscroll-behavior-inline:contain;scroll-padding-inline:8px}.skin-btn{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 14px;border-radius:12px;border:2px solid rgba(125,211,252,.2);background:#08142880;cursor:pointer;touch-action:manipulation;transition:all .15s;flex:1;min-width:92px}.skin-btn.selected{border-color:#7dd3fcbf;background:linear-gradient(180deg,#0e749073,#081428b3);box-shadow:0 0 14px #38bdf840}.skin-btn:active{transform:scale(.95)}.skin-preview{width:48px;height:48px;image-rendering:pixelated;object-fit:contain}.skin-default-icon{font-size:36px;line-height:48px}.skin-label{font-size:11px;font-weight:800;letter-spacing:.06em;color:#dbeafe}#abilityToggleGrid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;width:100%}.ability-toggle-btn{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:10px 10px 8px;border-radius:12px;border:2px solid;cursor:pointer;touch-action:manipulation;text-align:left;transition:all .15s;position:relative}.ability-toggle-btn.enabled{background:linear-gradient(180deg,#4c1d95bf,#1e1b4bd9);border-color:#c4b5fd99;box-shadow:0 0 14px #8b5cf633}.ability-toggle-btn.disabled{background:#08142880;border-color:#7dd3fc26;opacity:.5}.ability-toggle-btn:active{transform:scale(.95)}.ability-toggle-name{font-size:11px;font-weight:800;letter-spacing:.05em;color:#f5f3ff}.ability-toggle-desc{font-size:10px;color:#dbeafe80;line-height:1.2}.ability-toggle-badge{font-size:10px;font-weight:800;letter-spacing:.08em;margin-top:2px}.ability-toggle-btn.enabled .ability-toggle-badge{color:#a78bfa}.ability-toggle-btn.disabled .ability-toggle-badge{color:#dbeafe4d}#learnedLoadoutEmpty{padding:12px;color:#dbeafe94;background:#0f172a7a;border:1px dashed rgba(125,211,252,.24);border-radius:10px;font-size:10px;line-height:1.45}.skin-skill-label{max-width:86px;min-height:22px;color:#67e8f9;font-size:8px;font-weight:800;line-height:1.15;letter-spacing:.04em}.rivalSkillControls .rivalSkillTitle{grid-column:1 / -1;display:flex;justify-content:space-between;align-items:center;color:#e0f2fe;font-size:11px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}.rivalSkillControls .rivalSkillTitle small{color:#67e8f9}.rivalPlayerSprite{animation:rivalIdle 1.15s steps(2,end) infinite;transform-origin:50% 80%}@keyframes rivalIdle{0%,to{margin-top:0;filter:drop-shadow(0 3px 2px rgba(2,6,23,.75))}50%{margin-top:-3px;filter:drop-shadow(0 5px 4px rgba(34,211,238,.28))}}@media(prefers-reduced-motion:reduce){.rivalPlayerSprite{animation:none}}#learnedLoadoutGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px}#abilityArchitectureHelp{margin:-2px 0 10px;color:#dbeafe9e;font-size:9px;line-height:1.45}.skillGuidePanel{margin:12px 0 4px;padding:12px;border:1px solid rgba(56,189,248,.38);border-radius:12px;background:linear-gradient(135deg,#082f49b8,#2e106585),#020817e0;color:#dbeafe}.skillGuidePanel header{display:flex;justify-content:space-between;gap:10px;align-items:baseline}.skillGuidePanel header strong{color:#67e8f9;font-size:12px;letter-spacing:.06em;text-transform:uppercase}.skillGuidePanel header span,.skillGuidePanel p{color:#dbeafeb8;font-size:9px;line-height:1.45}.skillGuidePanel p{margin:7px 0 9px}.skillGuideCommands{display:grid;gap:6px}.skillGuideCommands>div{display:grid;grid-template-columns:26px 1fr;gap:7px;align-items:start;font-size:9px;line-height:1.4}.skillGuideCommands kbd{display:grid;place-items:center;min-height:22px;border:1px solid rgba(167,139,250,.75);border-radius:6px;background:#4c1d95b8;color:#fff;font:800 10px/1 system-ui}.signatureSkillFx{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:4}#abilityPresetControls{display:grid;gap:7px;margin-bottom:11px;padding:9px;border:1px solid rgba(103,232,249,.25);border-radius:11px;background:#0814289e}#abilityPresetHeader{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#c4b5fd;font-size:9px;letter-spacing:.1em}#abilityPresetHeader button{padding:5px 8px;border:1px solid rgba(125,211,252,.35);border-radius:7px;color:#dbeafeb8;background:#0f172ac7;font-size:7px;font-weight:900}#abilityPresetHeader button.enabled{color:#86efac;border-color:#86efacb3;background:#14532d61}#abilityPresetPicker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}#abilityPresetPicker button{min-width:0;padding:6px 4px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:4px;color:#dbeafea6;border:1px solid rgba(125,211,252,.2);border-radius:8px;background:#0f172ab8}#abilityPresetPicker button.selected{color:#f5d0fe;border-color:#a78bfa;background:linear-gradient(135deg,#4338ca7a,#7e22ce6b);box-shadow:0 0 10px #8b5cf633}#abilityPresetPicker button.custom{border-style:dashed}#abilityPresetPicker button.custom.selected{border-style:solid;border-color:#67e8f9;background:linear-gradient(135deg,#0891b266,#4338ca6b)}#abilityPresetPicker b{color:#67e8f9;font-size:9px}#abilityPresetPicker span{overflow:hidden;font-size:7px;font-weight:900;letter-spacing:.04em;text-overflow:ellipsis}#abilityPresetPicker small{min-width:17px;padding:2px;color:#86efac;border-radius:999px;background:#15803d33;font-size:7px}#abilityPresetControls p{margin:0;color:#dbeafe85;font-size:7px;line-height:1.35}#avatarWorkshop{display:grid;grid-template-columns:88px minmax(0,1fr);gap:10px;align-items:start;width:100%;max-width:100%;min-width:0}@media(max-width:520px){.customization-card{width:calc(100vw - 24px);max-width:calc(100vw - 24px)!important;padding:28px 14px 24px!important;gap:16px!important}#skinPickerRow{gap:8px}.skin-btn{min-width:84px;padding:8px 7px}#assemblySkillPicker .learned-ability-btn{min-width:132px!important;max-width:156px}#avatarWorkshop{grid-template-columns:78px minmax(0,1fr);gap:8px}#avatarWorkshopPreview{width:78px!important;height:148px}.avatarSlotRow strong{width:38px!important;flex-basis:38px!important}.avatarSlotRow button{max-width:126px!important}}#avatarWorkshopPreview{position:relative;width:88px;height:148px;overflow:hidden;border:1px solid rgba(125,211,252,.35);border-radius:12px;background:radial-gradient(circle,#3b82f633,#020617e6)}#avatarWorkshopPreview .avatarAssemblyPreview{top:50%}#assemblyFitReadout{position:static;width:100%;display:flex;align-items:center;gap:7px;padding:7px 9px;color:#dbeafeb8;background:#0206177a;border:1px solid rgba(103,232,249,.24);border-radius:8px;font-size:7px;line-height:1.25;text-transform:uppercase}#assemblyFitReadout b{flex:0 0 auto;color:#67e8f9;font-size:7px;letter-spacing:.06em}.avatarBaseSilhouette{position:absolute;left:50%;top:14px;width:24px;height:72px;transform:translate(-50%);border-radius:10px 10px 6px 6px;background:#e2e8f04d}.avatarBaseSilhouetteGameplay{left:50%;top:8%;width:38%;height:82%;transform:translate(-50%);background:#e2e8f0d1;border:2px solid rgba(15,23,42,.85);box-shadow:inset 3px 3px #ffffff47}.assemblySkinPreview{position:relative;display:block;width:48px;height:48px}.assemblySkinPreview:before{content:"";position:absolute;left:18px;top:3px;width:12px;height:12px;border:2px solid #dbeafe;border-radius:3px;background:#dbeafe33}.assemblySkinPreview i{position:absolute;left:15px;top:17px;width:18px;height:25px;border:2px solid #dbeafe;clip-path:polygon(18% 0,82% 0,100% 45%,76% 50%,72% 100%,54% 100%,50% 58%,46% 100%,28% 100%,24% 50%,0 45%);background:#dbeafe38}.avatarAssembly{position:absolute;left:50%;top:50%;width:64px;height:88px;transform:translate(-50%,-50%);pointer-events:none}.avatarAssemblyGameplay{width:92%;height:108%;z-index:2;filter:drop-shadow(0 0 3px rgba(125,211,252,.65))}.avatarAssemblySkinIcon,.avatarAssemblyThumbnail{position:relative;left:auto;top:auto;transform:none}.avatarAssemblySkinIcon{width:38px;height:46px;margin:1px auto}.avatarAssemblyThumbnail{width:27px;height:31px;flex:0 0 27px}.avatarAssemblyCanvas{display:block;width:100%;height:100%;object-fit:contain;image-rendering:pixelated}.avatarPart{position:absolute;image-rendering:pixelated;background:transparent}.avatarPart-head{left:27%;top:-1%;width:46%;height:33%;z-index:4}.avatarPart-torso{left:23%;top:22%;width:54%;height:45%;z-index:2}.avatarPart-arms{left:5%;top:22%;width:90%;height:43%;z-index:1}.avatarPart-legs{left:20%;top:55%;width:60%;height:45%;z-index:1}.avatarPart-core{left:38%;top:33%;width:24%;height:23%;z-index:5}.avatarPart-accent{left:12%;top:-5%;width:76%;height:43%;z-index:3;opacity:.9}.avatarPart.variant-1{filter:saturate(1.25) brightness(1.12)}.avatarPart.variant-2{filter:contrast(1.15) hue-rotate(8deg)}.avatarPart.variant-3{filter:saturate(1.15) drop-shadow(0 0 3px rgba(255,255,255,.45))}#avatarComponentSlots{display:grid;gap:6px;min-width:0}.avatarSlotRow{display:flex;gap:5px;align-items:center;overflow-x:auto;padding-bottom:2px}.avatarSlotRow strong{width:44px;flex:0 0 44px;color:#c4b5fd;font-size:8px;text-transform:uppercase}.avatarSlotRow button{display:inline-flex;gap:4px;align-items:center;flex:0 0 auto;max-width:145px;padding:5px 7px;color:#dbeafeb8;background:#0f172ab3;border:1px solid rgba(125,211,252,.24);border-radius:7px;font-size:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.avatarSlotRow button.selected{color:#fff;border-color:#a78bfa;background:#6d28d957}.avatarSlotRow button i{width:9px;height:9px;flex:0 0 9px;border:1px solid rgba(255,255,255,.5)}.avatarPart.avatarPartThumbnail{position:static;width:24px;height:24px;flex:0 0 24px;object-fit:contain;filter:none;opacity:1}.avatarSlotRow>span{color:#dbeafe66;font-size:7px}.learned-ability-btn{min-width:0;padding:9px;display:grid;gap:3px;text-align:left;color:#e0f2fe;background:linear-gradient(145deg,#082f49bd,#2e1065b3);border:1px solid rgba(103,232,249,.3);border-radius:10px}.learned-ability-btn.disabled{opacity:.58;filter:saturate(.55)}.learned-ability-btn.locked{cursor:not-allowed;opacity:.46;border-style:dashed;background:linear-gradient(145deg,#0f172ac7,#1e1b4b8f)}.learned-ability-btn strong{color:#f5d0fe;font-size:11px}.learned-ability-btn>span:not(.learned-ability-source){color:#dbeafea8;font-size:8px;line-height:1.35}.learned-ability-btn .ability-rank{color:#c4b5fd;font-weight:800;letter-spacing:.05em}.learned-ability-source{width:fit-content;padding:2px 5px;color:#86efac;background:#15803d2e;border-radius:999px;font-size:7px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}.learned-ability-btn b{color:#7dd3fc;font-size:7px;letter-spacing:.1em}#menuBackBtn{background:#08142899;border:2px solid rgba(125,211,252,.35);border-radius:12px;color:#dbeafebf;font-size:15px;font-weight:700;letter-spacing:.06em;padding:10px 28px;cursor:pointer;touch-action:manipulation;transition:all .15s;align-self:flex-start}#menuBackBtn:active{transform:scale(.97);background:#0ea5e926;border-color:#7dd3fc99;color:#fff}#menuControls{display:flex;flex-direction:column;gap:8px;width:100%;border-top:1px solid rgba(125,211,252,.15);padding-top:16px;margin-top:4px}.menu-control-row{display:flex;justify-content:space-between;font-size:13px;gap:16px}.menu-control-row span:first-child{color:var(--grid);font-weight:700;min-width:60px;text-align:left}.menu-control-row span:last-child{color:#dbeafe99;text-align:right}#pauseOverlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#020617bf;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:45}#pauseCard{background:#081428eb;border:2px solid rgba(125,211,252,.5);border-radius:20px;padding:36px 56px;text-align:center;box-shadow:0 0 60px #0ea5e933,0 0 120px #0ea5e914;display:flex;flex-direction:column;align-items:stretch;gap:14px}#pauseTitle{font-size:32px;font-weight:900;letter-spacing:.15em;color:var(--grid);text-shadow:0 0 20px rgba(56,189,248,.7);margin-bottom:10px}#upgradeOverlay{position:absolute;inset:0;z-index:44;display:flex;align-items:flex-end;justify-content:center;padding:12px;background:#02061714}#upgradePrompt{position:absolute;top:108px;left:50%;z-index:35;transform:translate(-50%);width:min(88vw,340px);padding:9px 14px;display:flex;flex-direction:column;gap:2px;color:#f5d0fe;background:#26103bf0;border:1px solid rgba(216,180,254,.7);border-radius:11px;box-shadow:0 0 26px #c084fc57;animation:upgradePromptPulse .9s ease-in-out infinite alternate}#upgradePrompt strong{font-size:12px;letter-spacing:.12em}#upgradePrompt span{color:#dbeafeb8;font-size:9px}@keyframes upgradePromptPulse{to{border-color:#e879f9;box-shadow:0 0 34px #e879f97a}}#upgradeCard{position:relative;width:min(94vw,720px);padding:14px;text-align:center;background:linear-gradient(145deg,#081428e8,#231137e8);border:2px solid rgba(192,132,252,.64);border-radius:20px;box-shadow:0 0 70px #a855f747}#upgradeClose{position:absolute;top:7px;right:9px;width:34px;height:34px;padding:0;border:1px solid rgba(216,180,254,.62);border-radius:50%;color:#f5d0fe;background:#1e0f30d1;font-size:25px;line-height:30px;font-weight:700}#upgradeClose:active{transform:scale(.92)}#upgradeEyebrow{color:#7dd3fc;font-size:11px;font-weight:900;letter-spacing:.16em}#upgradeTitle{margin-top:2px;color:#f5d0fe;font-size:clamp(20px,4vw,28px);font-weight:900;letter-spacing:.12em}#upgradeSubtitle{margin:2px 0 10px;color:#dbeafead;font-size:13px}#upgradeChoices{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.upgradeChoice{min-height:106px;padding:10px;display:flex;flex-direction:column;justify-content:center;gap:6px;color:#e0f2fe;background:linear-gradient(155deg,#0e3752d1,#3e1954d1);border:1px solid rgba(125,211,252,.42);border-radius:13px;cursor:pointer}.upgradeChoice strong{color:#f0abfc;font-size:16px;letter-spacing:.06em}.upgradeChoice>span:last-child{color:#dbeafeb8;font-size:11px;line-height:1.4}.upgradeLevel{color:#86efac;font-size:10px;font-weight:900}#upgradeHint{margin-top:9px;color:#c4b5fdad;font-size:10px;letter-spacing:.1em}@media(max-width:620px){#upgradeOverlay{align-items:flex-end;padding:8px}#upgradeCard{padding:10px}#upgradeChoices{grid-template-columns:1fr;gap:8px}.upgradeChoice{min-height:70px;padding:7px 12px}}#optionsCard{width:min(92vw,460px);padding:24px;display:flex;flex-direction:column;gap:16px;background:#081428f5;border:2px solid rgba(125,211,252,.5);border-radius:18px;box-shadow:0 0 54px #0ea5e933}#optionsTitle{text-align:center;color:#e0f2fe;font-size:25px;font-weight:900;letter-spacing:.14em}.optionToggleBtn{padding:14px;display:flex;align-items:center;justify-content:space-between;gap:18px;text-align:left;color:#e0f2fe;background:#0e3752b8;border:1px solid rgba(125,211,252,.46);border-radius:12px}.optionToggleBtn span{display:flex;flex-direction:column;gap:3px}.optionToggleBtn strong{font-size:14px;letter-spacing:.06em}.optionToggleBtn small{color:#dbeafe9e;font-size:10px}.optionToggleBtn b{min-width:46px;color:#86efac;font-size:14px;text-align:right}#bestiaryCard{width:min(94vw,920px);max-height:calc(100dvh - 32px);padding:18px;overflow:hidden;display:flex;flex-direction:column;gap:12px;background:linear-gradient(145deg,#081428fa,#140a26f7);border:2px solid rgba(192,132,252,.58);border-radius:18px;box-shadow:0 0 54px #a855f738}#bestiaryHeader{display:flex;align-items:center;justify-content:space-between;gap:16px}#bestiaryTitle{color:#e9d5ff;font-size:25px;font-weight:900;letter-spacing:.16em}#bestiaryCount{margin-top:3px;color:#dbeafea3;font-size:12px;letter-spacing:.08em;text-transform:uppercase}#abilityMatrixCount{margin-top:2px;color:#86efacc2;font-size:8px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.bestiaryBackBtn{flex:0 0 auto;padding:9px 14px;color:#e0f2fe;font-weight:800;background:#0ea5e91f;border:1px solid rgba(125,211,252,.5);border-radius:9px}#bestiaryLegend{display:flex;flex-wrap:wrap;gap:7px}#bestiaryLegend span{padding:3px 7px;color:#e9d5ffd1;font-size:9px;font-weight:800;letter-spacing:.12em;border:1px solid rgba(192,132,252,.28);border-radius:999px}#bestiaryEmpty{padding:54px 20px;text-align:center;color:#dbeafe9e}#bestiaryGrid{min-height:0;overflow-y:auto;overscroll-behavior:contain;display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;padding:2px 4px 6px 2px}.bestiaryEntry{min-width:0;padding:10px;display:grid;grid-template-columns:116px minmax(0,1fr);grid-template-areas:"sprite identity" "sprite meta" "traits traits" "components components" "synchrony synchrony" "lineage lineage";gap:6px 10px;background:linear-gradient(145deg,#0e243dd1,#2a1238c7);border:1px solid rgba(125,211,252,.24);border-radius:12px}.bestiarySprite{grid-area:sprite;align-self:center;width:116px;height:78px;object-fit:contain;image-rendering:pixelated;filter:drop-shadow(0 5px 7px rgba(0,0,0,.5))}.bestiaryIdentity{grid-area:identity;align-self:end;overflow-wrap:anywhere;color:#f5d0fe;font-size:11px;font-weight:900;line-height:1.3}.bestiaryMeta{grid-area:meta;display:grid;gap:2px;color:#dbeafe9e;font-size:9px}.bestiaryMeta b{color:#bae6fd}.bestiaryTraits{grid-area:traits;min-height:14px;color:#c4b5fd;font-size:9px;line-height:1.35}.bestiaryComponents{grid-area:components;display:flex;flex-wrap:wrap;gap:5px}.bestiaryComponents span{padding:3px 7px;color:#bae6fd;background:#0e749033;border:1px solid rgba(103,232,249,.28);border-radius:999px;font-size:8px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.bestiarySynchrony{grid-area:synchrony;display:flex;justify-content:space-between;gap:8px;padding:5px 7px;color:#d8b4fec7;background:#581c8729;border-left:2px solid rgba(192,132,252,.5);font-size:8px}.bestiarySynchrony strong{color:#e9d5ff;white-space:nowrap}.bestiarySynchrony.synchronized{color:#bbf7d0;background:#15803d29;border-left-color:#4ade80}.bestiarySynchrony.synchronized strong{color:#86efac}.bestiaryLineage{grid-area:lineage;padding-top:5px;color:#f0abfc;font-size:10px;font-weight:800;border-top:1px solid rgba(192,132,252,.18)}@media(max-width:560px){#bestiaryCard{width:min(94vw,430px);max-height:calc(100dvh - 20px);padding:13px}#bestiaryGrid{grid-template-columns:1fr}#bestiaryTitle{font-size:20px}}#pauseResumeBtn,#pauseBestiaryBtn,#pauseOptionsBtn,#pauseMenuBtn{background:linear-gradient(135deg,var(--grid),#0284c7);color:#fff;border:none;border-radius:10px;padding:12px 32px;font-size:16px;font-weight:800;letter-spacing:.08em;cursor:pointer;transition:opacity .15s}#pauseBestiaryBtn,#pauseOptionsBtn,#pauseMenuBtn{background:#081428bf;border:2px solid rgba(125,211,252,.45);color:#dbeafee6}#pauseResumeBtn:active,#pauseBestiaryBtn:active,#pauseOptionsBtn:active,#pauseMenuBtn:active{opacity:.7}#pauseBtn{position:absolute;bottom:22px;left:50%;transform:translate(-50%);padding-top:0;padding-bottom:0;font-size:11px;line-height:1;height:22px;z-index:10}#gameOverOverlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#020617cc;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:50}#gameOverCard{background:#081428eb;border:2px solid rgba(125,211,252,.5);border-radius:20px;padding:36px 48px;text-align:center;box-shadow:0 0 60px #0ea5e933,0 0 120px #0ea5e914}#gameOverTitle{font-size:28px;font-weight:900;letter-spacing:.1em;color:var(--enemy);text-shadow:0 0 20px rgba(251,113,133,.6);margin-bottom:16px}#gameOverScore{font-size:20px;font-weight:700;color:var(--text);margin-bottom:6px}#gameOverWave{font-size:16px;color:#dbeafe99;margin-bottom:28px}#playAgainBtn{background:linear-gradient(135deg,#3b82f6cc,#2563ebe6);border:2px solid rgba(125,211,252,.6);border-radius:14px;color:#fff;font-size:18px;font-weight:800;letter-spacing:.08em;padding:14px 36px;cursor:pointer;touch-action:manipulation;box-shadow:0 0 24px #3b82f666;transition:all .15s}#playAgainBtn:active{transform:scale(.96);background:linear-gradient(135deg,#60a5fae6,#3b82f6)}#gameOverOverlay.victory{background:#02140cd1}#gameOverCard.victory{border-color:#34d39999;box-shadow:0 0 60px #34d39933,0 0 120px #34d39914}#gameOverCard.victory #gameOverTitle{color:#34d399;text-shadow:0 0 20px rgba(52,211,153,.7)}#menuVsBtn{background:linear-gradient(135deg,#10643cd9,#052d1ef2);border:2px solid rgba(52,211,153,.7);border-radius:16px;color:#fff;font-size:20px;font-weight:900;letter-spacing:.1em;padding:14px 48px;cursor:pointer;touch-action:manipulation;box-shadow:0 0 28px #34d39959;transition:transform .12s,box-shadow .12s;width:100%}#menuVsBtn:active{transform:scale(.96);box-shadow:0 0 44px #34d39999}#npcHpPanel{color:#34d399;border-color:#34d39973;text-shadow:0 0 8px rgba(52,211,153,.4);transition:color .3s,text-shadow .3s,border-color .3s}#npcHpPanel[data-overheal=true]{color:#fbbf24;border-color:#fbbf2499;text-shadow:0 0 12px rgba(251,191,36,.7)}#npcShieldDisplay{display:block;margin-top:4px;font-size:13px;letter-spacing:1px;line-height:1}@media(orientation:landscape){body:has(#game.menu-open),#game.menu-open{touch-action:pan-y}#mainMenu{position:fixed;inset:0;width:100vw;height:100svh;max-height:100dvh;min-height:0;justify-content:flex-start;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;touch-action:pan-y;scrollbar-gutter:stable;padding-top:max(14px,env(safe-area-inset-top));padding-right:max(16px,env(safe-area-inset-right));padding-bottom:max(24px,env(safe-area-inset-bottom));padding-left:max(16px,env(safe-area-inset-left))}#mainMenu>#menuCard{margin:0 auto;flex:0 0 auto}#dpad{left:auto;right:max(18px,env(safe-area-inset-right));top:50%;bottom:auto;transform:translateY(-60%)}#pauseBtn{left:auto;right:max(55px,calc(env(safe-area-inset-right) + 37px));top:calc(50% + 80px);bottom:auto;transform:none;width:76px}#rotateHandBtn{display:none}#rotateLandscapeBtn{display:block;position:absolute;left:14px;bottom:126px;padding:7px 12px;font-size:11px;letter-spacing:.05em;background:#8b5cf633;border-color:#c4b5fd80;color:#ede9fe}#skillBtn{bottom:94px;width:94px;min-height:28px;padding:4px 8px}#skillBtn small{display:none}}
