:root{font-family:Inter,Arial,sans-serif;color:#e5e8df;background:#0c151b;font-synthesis:none;--gold: #d6b570;--line: #37433f}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input,select{font:inherit}button{cursor:pointer;color:#14201e;background:linear-gradient(#ebd69a,#bd9959);border:1px solid #ddc17e;border-radius:7px;padding:11px 16px;font-weight:600}button:disabled{opacity:.45;cursor:default}button:hover:enabled{filter:brightness(1.12)}button:focus-visible,select:focus-visible{outline:2px solid #fff3c4;outline-offset:2px}.secondary{color:#e0dfd1;background:#1a292b;border-color:#43504b}h1,h2,.brand{font-family:Cinzel,Georgia,serif}h1,h2,p{margin:0}small{color:#a5b2af;font-size:11px}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--gold)}.brand{color:var(--gold);font-size:19px;letter-spacing:3px}.game-shell{height:100vh;height:100dvh;max-width:1600px;margin:auto;display:grid;grid-template-rows:54px minmax(0,1fr) 70px;background:#101e23}header{display:flex;align-items:center;gap:16px;padding:0 20px;border-bottom:1px solid var(--line)}header .wallet{margin-left:auto;color:var(--gold)}header button{padding:6px 14px;font-size:12px}.screens{position:relative;min-height:0}.pane{position:absolute;inset:0;visibility:hidden;pointer-events:none;display:flex;flex-direction:column;min-height:0}.pane.current{visibility:visible;pointer-events:auto}.battle-top{height:42px;flex:none;display:flex;align-items:center;gap:12px;padding:0 18px;font-size:11px;background:#18282a}.battle-top select{max-width:52%;background:none;border:0;color:#e6d8b4;font-size:12px}.battle-top select option{background:#142225}.battle-top #status{margin-left:auto;color:#afc8ba}.battle-top #timer{font-variant-numeric:tabular-nums;color:var(--gold)}.field{position:relative;flex:1;min-height:0;overflow:hidden}#arena{position:absolute;inset:0}#arena canvas{display:block}.field-caption{position:absolute;top:12px;left:0;right:0;text-align:center;font-size:9px;letter-spacing:2px;color:#d6ded5;text-shadow:0 2px 5px #000;pointer-events:none}#result{position:absolute;bottom:12px;left:50%;transform:translate(-50%);width:max-content;max-width:90%;text-align:center;background:#0a191ee8;border-radius:7px;color:#f1d89f;font-size:12px;pointer-events:none}#result:not(:empty){padding:10px 16px}.controls{display:flex;gap:8px;align-items:center;padding:8px 16px;flex:none;border-top:1px solid var(--line)}.controls button{padding:9px 14px;font-size:12px}.controls #fight{margin-left:auto;min-width:160px}.squad{display:flex;justify-content:center;gap:8px;padding:4px 16px 10px;flex:none}.hero-card{width:clamp(52px,12vw,110px);height:80px;position:relative;overflow:hidden;padding:0;border-color:#4b5653;background:radial-gradient(at 50% 30%,#374a4a,#162428);color:#eee}.hero-card img{height:120px;max-width:100%;object-fit:contain;object-position:top;transform:translateY(-5px)}.hero-card>span{position:absolute;bottom:0;left:0;right:0;padding:5px 1px 3px;background:linear-gradient(transparent,#09141eee 25%);font-size:11px}.hero-card small{display:block;font-size:9px}.hero-card.chosen{border-color:var(--hero);box-shadow:0 0 7px color-mix(in srgb,var(--hero) 30%,transparent)}.bottom-nav{display:flex;border-top:1px solid #576254;background:linear-gradient(#293732,#152321);padding-bottom:env(safe-area-inset-bottom)}.bottom-nav button{flex:1;background:none;color:#94a6a0;border:0;border-radius:0;padding:6px;font-size:12px}.bottom-nav span{display:block;font-size:25px;line-height:29px;font-weight:400}.bottom-nav .selected{color:#f0d99d;background:linear-gradient(#d6b57022,transparent);box-shadow:inset 0 2px var(--gold)}.section-title{padding:20px 24px 12px}.section-title h1{font-size:25px;margin-top:6px}.hero-detail{display:flex;flex:1;min-height:0;align-items:center;justify-content:center;gap:clamp(20px,5vw,90px);padding:8px 24px 20px;background:radial-gradient(ellipse at 35% 60%,#31433b,transparent 65%)}.full-portrait{height:100%;max-height:580px;width:40%;display:flex;justify-content:center;align-items:center;min-height:0}.full-portrait img{height:100%;max-width:100%;object-fit:contain;filter:drop-shadow(0 14px 15px #0008)}.hero-description{max-width:350px;display:flex;flex-direction:column;gap:16px}.hero-description h2{font-size:29px;color:#eed6a5}.hero-description h2 small{font-family:Inter,sans-serif}.hero-description p{font-size:13px;color:#b4c9bf}.hero-description .skill{padding:14px;border:1px solid #64745a;background:#1d312b;border-radius:7px;color:#e2dcc4}dl{display:flex;gap:25px;margin:0}dt{font-size:11px;color:#9eb3a7}dd{margin:5px 0 0;color:#f3ddb1}.challenges{align-items:center;justify-content:center;gap:20px;text-align:center;padding:20px}.challenges .section-title{position:absolute;top:0;left:0;text-align:left}.challenge-art{color:#d1b674;font-size:100px;text-shadow:0 0 40px #c99949;background:radial-gradient(#364536,transparent 70%);line-height:1}.challenges p{font-size:13px;color:#b8c8bc;line-height:1.6}.challenges small{line-height:1.6}.auth{height:100dvh;display:flex;flex-direction:column;justify-content:center;max-width:430px;padding:24px;margin:auto;gap:15px}.auth h1{font-size:36px;color:#e7d4a7}.auth p{color:#a9bfb5;font-size:13px}.auth form{display:flex;flex-direction:column;gap:10px}.auth label{font-size:12px;display:flex;flex-direction:column;gap:6px}.auth input{padding:11px;border-radius:6px;border:1px solid #4b5c53;background:#172729;color:#fff}.auth #error{color:#ef9c8d}#notice:not(:empty){position:fixed;bottom:85px;left:50%;transform:translate(-50%);max-width:90%;padding:12px 20px;background:#3c2827;border:1px solid #bb8f72;border-radius:8px;z-index:10;color:#ffe2c6;font-size:13px}@media(max-width:600px){.game-shell{grid-template-rows:48px minmax(0,1fr) 66px}header{padding:0 12px}.brand{font-size:16px}.battle-top{padding:0 8px;gap:5px;font-size:9px;height:36px}.battle-top select{font-size:10px}.field-caption{font-size:7px;letter-spacing:1.3px}.controls{padding:7px 10px}.controls #fight{min-width:130px}.squad{gap:6px;padding:2px 10px 8px}.hero-card{width:calc((100vw - 44px)/5);height:73px}.hero-card img{height:110px}.section-title{padding:14px 18px 10px}.hero-detail{flex-direction:column;gap:8px;padding:0 18px 14px}.full-portrait{width:100%;height:45%;flex:1}.hero-description{width:100%;max-width:none;gap:9px;flex:none}.hero-description h2{font-size:23px}.hero-description .skill{padding:10px;font-size:12px}.hero-description p{font-size:11px}.hero-description dl{justify-content:space-between}.challenges{gap:15px}.challenge-art{font-size:80px}}@media(max-height:540px){.game-shell{grid-template-rows:40px minmax(0,1fr) 48px}.bottom-nav button{font-size:10px;padding:3px}.bottom-nav span{font-size:19px;line-height:22px}.battle-top{height:28px}.controls{padding:4px 10px}.controls button{padding:6px 12px}.squad{position:absolute;bottom:40px;left:8px;padding:0;gap:4px}.hero-card{width:47px;height:49px}.hero-card img{height:80px}.hero-card>span{font-size:9px}.field-caption{top:5px}.field{margin-bottom:0}#hero-picker{position:static;justify-content:flex-start;padding-left:18px}.section-title{padding:6px 18px}.section-title h1{font-size:18px;margin-top:2px}.hero-detail{flex-direction:row;padding:0 18px 8px;gap:20px;position:absolute;inset:55px 0 0 280px}.full-portrait{height:100%;width:35%;flex:1}.hero-description{width:60%;gap:7px}.hero-description h2{font-size:20px}.hero-description p{font-size:11px}.hero-description .skill{padding:6px}.hero-description button{padding:7px}.hero-description small{font-size:9px}dl{gap:12px}dd{margin-top:2px;font-size:13px}.challenge-art{font-size:40px}.challenges{gap:8px}.challenges h2{font-size:20px}.challenges p{font-size:11px}.challenges .section-title{position:static;padding:0}.challenges small{font-size:9px}.auth{gap:7px}.auth h1{font-size:23px}.auth input{padding:6px}.auth form{gap:6px}.auth button{padding:7px}}:root{--gold: #8cbdff;--line: #314564;color:#e7efff;background:#0b1325}h1,h2,.brand{font-family:Arial,Inter,sans-serif}.brand{font-weight:800;letter-spacing:3px;color:#afcbff}button{background:linear-gradient(135deg,#9ed8ff,#7b90ff);border:1px solid #9bb9ff;color:#111f44;border-radius:12px}.secondary{background:#182843;color:#d4e4ff;border-color:#385579}.game-shell{background:#0e1b30}header{background:#111e34}header .wallet{color:#ffd67e}.battle-top{background:#172942;color:#c4d7f2}.battle-top #status{color:#acdbf5}.battle-top #stage-label{font-size:11px}.battle-top #map-return{padding:4px 8px;font-size:10px}.bottom-nav{background:linear-gradient(#182a48,#101e36);border-color:#44668d}.bottom-nav button{color:#96adcc}.bottom-nav .selected{color:#badeff;background:linear-gradient(#679dff22,transparent);box-shadow:inset 0 2px #9ec9ff}.bottom-nav [data-tab=campaign] span{font-size:28px}.hero-card{border-radius:12px;background:radial-gradient(at 50% 20%,#405879,#15283e);border-color:#44628c}.hero-card>span{background:linear-gradient(transparent,#122038ee 25%)}.hero-card.chosen{box-shadow:0 0 12px #91bcff40}.hero-description h2{color:#beddff}.hero-description p{color:#bccfe8}.hero-description .skill{background:#233455;border-color:#5875a2;color:#e0eaff}.hero-detail{background:radial-gradient(ellipse at 35% 50%,#253d69,transparent 65%)}.full-portrait img{filter:drop-shadow(0 15px 22px #4979bc55)}.auth{background:radial-gradient(ellipse at 50% 40%,#23375666,transparent 70%)}.auth h1{color:#cde7ff}.auth input{background:#172740;border-color:#415879}.campaign-map{position:absolute;inset:0;z-index:3;background:linear-gradient(180deg,#15355677,#12234599),url(/assets/astral-field-v04.png) center/cover}.campaign-map .map-heading{position:absolute;top:16px;left:24px;right:24px;text-shadow:0 2px 6px #0a193f}.map-heading h1{margin:7px 0;font-size:24px;color:#fff}.map-heading p{font-size:12px;color:#d5e9ff}.map-route{position:absolute;inset:20px 0 35px;max-width:520px;margin:auto}.map-route>svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.map-route>svg path{fill:none;stroke:#bce5ff;stroke-width:1;stroke-dasharray:2 1.7;filter:drop-shadow(0 0 2px #6b8fff)}.map-node{position:absolute;transform:translate(-50%,-50%);width:72px;height:72px;padding:4px;border:2px solid #c1ddff;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-direction:column;background:linear-gradient(145deg,#84c8fc,#7b81e9);color:#112853;box-shadow:0 8px 25px #14244899;font-size:16px}.map-node .node-icon{font-size:22px;line-height:23px}.map-node .node-name{position:absolute;top:calc(100% + 8px);font-size:11px;width:145px;color:#fff;text-shadow:0 1px 4px #001633;padding:4px 6px;background:#132a46c9;border-radius:6px}.map-node small{display:block;font-size:8px;margin-top:4px;color:#bfdbff;letter-spacing:1px}.map-node.locked{opacity:1;background:linear-gradient(#425778,#2c3b5c);border-color:#7890b1;color:#8aa3c4}.map-node.cleared{background:linear-gradient(#81e6da,#66b5de)}.map-node.picked{outline:3px solid #ffffff8c;outline-offset:5px}.map-node.current-stage{box-shadow:0 0 0 10px #9ccaff22,0 0 30px #759eff99}.chapter-switch{position:absolute;bottom:8px;left:0;right:0;display:flex;justify-content:center;gap:15px;align-items:center;font-size:11px}.chapter-switch button{padding:2px 11px;font-size:20px;background:#172b49cc;color:#dbeaff}.pane:not(.on-map) .campaign-map{visibility:hidden;pointer-events:none}.on-map #arena,.on-map .field-caption{visibility:hidden}.field-caption{color:#123559;background:#e1f4ff99;padding:4px;top:0}#result{background:#112442e8;color:#cbe9ff}.controls #fight{min-width:160px}.challenges .challenge-art{color:#b4bcff;text-shadow:0 0 40px #8397ff}.challenge-art{background:radial-gradient(#263d6c,transparent 70%)}.challenges p{color:#bccbe2}@media(min-width:850px){.map-heading{max-width:270px}.map-heading h1{font-size:30px}}@media(max-width:600px){.campaign-map .map-heading{top:12px;left:16px}.map-heading h1{font-size:20px}.map-heading p{font-size:11px}.map-route{top:80px;bottom:40px}.map-node{width:64px;height:64px;font-size:14px}.map-node .node-name{font-size:10px;width:126px}.battle-top #stage-label{font-size:9px}.battle-top #status{font-size:8px}.hero-description .skill{font-size:11px;padding:8px}.controls #fight{min-width:140px}.hero-card img{height:103px}.full-portrait{height:40%}}@media(max-height:540px){.map-heading h1{font-size:17px;margin:4px 0}.map-heading p{font-size:10px}.campaign-map .map-heading{top:8px;left:16px;max-width:180px}.map-route{inset:15px 0 27px;max-width:420px;margin-left:30%}.map-node{height:40px;width:40px;font-size:10px}.map-node .node-icon{font-size:14px;line-height:14px}.map-node .node-name{top:calc(100% + 3px);width:110px;font-size:8px;padding:2px}.map-node small{font-size:6px;margin-top:1px}.map-node.picked{outline-offset:2px;outline-width:2px}.chapter-switch{bottom:2px}.chapter-switch button{font-size:14px}.hero-description .skill{padding:5px;font-size:10px}.field-caption{font-size:7px}.controls #fight{min-width:140px}}.hero-card img{position:absolute;left:50%;top:0;width:160px;height:160px;max-width:none;object-fit:contain;transform:translate(-50%,-30px)}@media(max-height:540px){.hero-card img{width:105px;height:105px;transform:translate(-50%,-22px)}}@media(max-width:600px)and (max-height:620px){.map-route{top:65px;bottom:38px}.map-node{width:48px;height:48px;font-size:12px}.map-node .node-icon{font-size:16px;line-height:17px}.map-node .node-name{top:calc(100% + 5px);width:116px;font-size:9px;padding:3px 4px}.map-node small{font-size:7px;margin-top:2px}.map-heading h1{font-size:18px}.chapter-switch{font-size:10px}}.account-level{white-space:nowrap;font-size:11px}.hero-description{gap:12px}.hero-summary{justify-content:space-between;gap:18px}.hero-summary dd{color:#d7eaff;font-size:20px;font-weight:700}.hero-actions{display:flex;gap:8px}.hero-actions button{flex:1;padding:9px 12px;font-size:12px}.hero-modal{width:min(460px,calc(100vw - 24px));max-height:calc(100dvh - 32px);padding:20px;border:1px solid #587bac;border-radius:20px;color:#e7efff;background:linear-gradient(150deg,#203758,#101d32);box-shadow:0 18px 80px #0008}.hero-modal::backdrop{background:#071226b8}.modal-heading{display:flex;align-items:center;gap:12px;margin-bottom:18px}.modal-heading h2{flex:1;font-size:21px}.modal-heading button{padding:4px 10px;font-size:24px}.attribute-list{display:grid;gap:0}.attribute-list>div{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:11px 0;border-bottom:1px solid #38516e}.attribute-list dt{font-size:12px;color:#b5cbe6}.attribute-list dd{margin:0;text-align:right;font-size:13px;color:#e6f2ff;font-variant-numeric:tabular-nums}.ability-card{padding:15px;border:1px solid #6384b2;border-radius:12px;background:#294465;margin-bottom:10px}.ability-card.passive{background:#192c45;border-color:#3c577c}.ability-card h3{font-size:17px;margin:8px 0}.ability-card p{font-size:13px;line-height:1.5;margin-bottom:8px}.panel-note{font-size:11px;line-height:1.6;color:#acc1dc;margin-top:14px}@media(max-width:600px){header{gap:8px}header .account-level{font-size:10px;padding:5px 7px}.hero-description{gap:8px}.hero-summary dd{font-size:17px}.hero-actions button{padding:8px}.hero-modal{padding:16px}.modal-heading h2{font-size:18px}}@media(max-height:620px)and (max-width:600px){.hero-description h2{font-size:20px}.hero-description p{font-size:10px}.hero-description>small{font-size:9px}.hero-description #upgrade{padding:8px}.hero-description .hero-summary dd{font-size:15px}}@media(max-height:540px){.hero-description{gap:6px}.hero-description .hero-summary dd{font-size:15px}.hero-actions button{padding:6px;font-size:11px}.hero-description>small{font-size:9px}.hero-modal{max-height:calc(100dvh - 20px)}}@media(max-width:600px)and (max-height:620px){.hero-detail{flex-direction:row;padding:4px 12px 12px;gap:10px}.full-portrait{width:34%;height:100%;flex:0 0 34%}.hero-description{width:auto;min-width:0;flex:1}.hero-actions button{padding:8px 5px;font-size:11px}.hero-description .hero-summary{gap:8px}.hero-description .hero-summary dt{font-size:10px}}#heroes .section-title{display:flex;align-items:center;justify-content:space-between;flex:none;padding:14px 22px 8px}#faction-info{font-size:11px;padding:7px 11px}#hero-detail{position:static;inset:auto;display:grid;grid-template-columns:minmax(200px,280px) minmax(0,1fr) 78px;align-items:stretch;gap:22px;padding:8px 28px 14px;overflow:hidden;flex:1;min-height:0}#hero-detail .hero-description{width:auto;max-width:none;min-width:0;display:flex;flex-direction:column;justify-content:center;gap:12px}.hero-heading h2{margin:7px 0;font-size:28px}.hero-heading p{font-size:11px}#hero-detail .hero-summary{gap:15px;justify-content:space-between}#hero-detail .hero-summary dd{margin:4px 0 0;font-size:20px}#hero-attributes{font-size:12px;padding:8px}.hero-experience{display:flex;flex-direction:column;gap:4px;font-size:11px;color:#b4cbe7}.hero-experience strong{color:#dcecff;font-weight:600}.hero-equipment h3{margin:0 0 7px;font-size:11px;font-weight:500;color:#b4cbe7}.equipment-slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.equipment-slot{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px 2px;border:1px solid #405b7e;background:#15273f;border-radius:10px;font-size:9px;color:#bad2f1;min-width:0}.equipment-slot svg{width:25px;height:25px;color:#6585b0}.equipment-slot small{font-size:8px;color:#819abc}#upgrade{font-size:11px;padding:9px}.hero-display{min-width:0;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) 36px;gap:6px}#hero-detail .full-portrait{height:100%;width:100%;max-height:none;min-height:0;transform:scaleX(1);transition:transform .25s ease;touch-action:pan-y}#hero-detail .full-portrait[data-facing=left]{transform:scaleX(-1)}.hero-idle{width:100%;height:100%;display:flex;align-items:center;justify-content:center;transform-origin:50% 95%;animation:hero-breathe 3.8s ease-in-out infinite;animation-play-state:paused}#heroes.current .hero-idle{animation-play-state:running}.document-hidden #heroes .hero-idle{animation-play-state:paused}#hero-detail .full-portrait img{position:static;width:auto;height:auto;max-width:94%;max-height:94%;object-fit:contain;filter:none;transform:none}@keyframes hero-breathe{0%,to{transform:translateY(0) scaleY(1) rotate(-.35deg)}50%{transform:translateY(-2px) scaleY(1.012) rotate(.35deg)}}.facing-controls{display:flex;justify-content:center;gap:10px}.facing-controls button{width:46px;padding:3px 8px;font-size:19px}.facing-controls button[aria-pressed=true]{background:#365b86;border-color:#9fcfff}.skill-rail{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-width:0}.skill-rail>span{font-size:10px;color:#b6cdeb}.skill-icon{width:62px;height:69px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;padding:6px;border-radius:14px;background:linear-gradient(135deg,#304b7e,#25325a);color:#dfeaff;border-color:#658ac1}.skill-icon svg{width:29px;height:29px}.skill-icon small{color:#c7daf9;font-size:10px}.skill-icon.passive{background:#1d304b;border-color:#425c7f;color:#8ba6cd}#hero-picker{position:static;flex:none;justify-content:center;padding:8px 18px 12px;gap:10px;border-top:1px solid #2b4363;background:#12213a;overflow-x:auto;min-height:0}#hero-picker .hero-card{flex:0 0 auto;width:86px;height:100px;display:grid;grid-template-rows:minmax(0,1fr) 29px;overflow:hidden;border-radius:12px}#hero-picker .hero-card img{position:static;display:block;width:100%;height:100%;max-width:100%;object-fit:contain;transform:none;padding:2px 3px}#hero-picker .hero-card>span{position:static;display:block;font-size:11px;line-height:12px;padding:2px 0;background:#102039}#hero-picker .hero-card small{font-size:9px}@media(max-width:600px){#heroes .section-title{padding:10px 14px 6px}#heroes .section-title h1{font-size:21px;margin-top:3px}#hero-detail{grid-template-columns:minmax(0,1fr) 66px;grid-template-rows:minmax(0,1fr) auto;gap:8px;padding:2px 14px 10px}.hero-display{grid-column:1;grid-row:1}.skill-rail{grid-column:2;grid-row:1;gap:8px}.skill-rail>span{font-size:9px}.skill-icon{width:54px;height:60px}.skill-icon svg{width:25px;height:25px}#hero-detail .hero-description{grid-column:1/-1;grid-row:2;display:grid;grid-template-columns:1fr 1fr;gap:7px 12px;justify-content:normal}.hero-heading{grid-column:1/-1}.hero-heading h2{font-size:23px;margin:3px 0}.hero-heading p{display:none}#hero-detail .hero-summary{grid-column:1/-1}.hero-experience{font-size:10px;align-self:center}.hero-equipment{grid-column:1/-1}.hero-equipment h3{display:none}.equipment-slot{padding:5px 2px;gap:2px}.equipment-slot svg{width:21px;height:21px}#upgrade{grid-column:1/-1;padding:6px}#hero-picker{gap:6px;padding:6px 10px 8px}#hero-picker .hero-card{width:calc((100vw - 48px)/5);height:86px;grid-template-rows:minmax(0,1fr) 25px}#hero-picker .hero-card>span{font-size:10px;line-height:11px}}@media(max-width:600px)and (max-height:650px){#heroes .section-title{padding:5px 12px}#heroes .section-title h1{font-size:18px}.section-title .eyebrow{font-size:8px}#hero-detail{padding:0 10px 5px;gap:4px;grid-template-columns:minmax(0,1fr) 54px}#hero-detail .hero-description{gap:4px 8px}.hero-heading .eyebrow{font-size:8px}.hero-heading h2{font-size:18px;margin:2px 0}#hero-detail .hero-summary dd{font-size:15px;margin-top:1px}#hero-detail .hero-summary dt{font-size:9px}#hero-attributes{padding:5px;font-size:10px}.hero-experience{font-size:9px;gap:2px}.equipment-slot{padding:3px 1px;font-size:8px}.equipment-slot svg{width:17px;height:17px}.equipment-slot small{font-size:7px}#upgrade{padding:4px;font-size:10px}.hero-display{grid-template-rows:minmax(0,1fr) 28px;gap:2px}.facing-controls button{height:26px;font-size:16px;padding:1px}.skill-rail{gap:3px}.skill-rail>span{font-size:8px}.skill-icon{width:44px;height:38px;gap:1px;padding:3px;border-radius:10px}.skill-icon svg{width:19px;height:19px}.skill-icon small{font-size:8px}#hero-picker .hero-card{height:72px;grid-template-rows:minmax(0,1fr) 23px}#hero-picker{padding:5px 10px;gap:6px}}@media(min-width:601px)and (max-height:540px){#heroes .section-title{padding:4px 18px}#heroes .section-title h1{font-size:17px}#hero-detail{grid-template-columns:minmax(200px,270px) minmax(0,1fr) 60px;gap:14px;padding:0 22px 5px}#hero-detail .hero-description{gap:4px}.hero-heading h2{font-size:19px;margin:2px 0}.hero-heading p{display:none}.hero-heading .eyebrow{font-size:8px}#hero-detail .hero-summary dd{font-size:15px;margin-top:1px}#hero-attributes,#upgrade{padding:4px;font-size:10px}.hero-experience{font-size:9px;flex-direction:row;justify-content:space-between}.hero-equipment h3{display:none}.equipment-slot{padding:3px 1px;gap:1px;font-size:8px}.equipment-slot svg{width:18px;height:18px}.hero-display{grid-template-rows:minmax(0,1fr) 28px;gap:2px}.facing-controls button{font-size:16px;padding:1px}.skill-rail{gap:6px}.skill-icon{width:47px;height:46px;gap:2px;padding:3px}.skill-icon svg{width:22px;height:22px}.skill-icon small{font-size:8px}.skill-rail>span{font-size:8px}#hero-picker{padding:4px 16px;gap:8px}#hero-picker .hero-card{width:61px;height:64px;grid-template-rows:minmax(0,1fr) 22px}#hero-picker .hero-card>span{font-size:9px;line-height:10px}}@media(prefers-reduced-motion:reduce){.hero-idle{animation:none}#hero-detail .full-portrait{transition:none}}.auth .remember-account{flex-direction:row;align-items:center;gap:8px;font-size:11px}.auth .remember-account input{width:16px;height:16px;margin:0;accent-color:#93b9ff}.auth form>small{font-size:10px;line-height:1.5}.auth #auth-message{color:#a7e8cd;font-size:12px}.auth #auth-message:empty,.auth #error:empty{display:none}.hero-filters{display:flex;gap:10px;align-items:end;padding:0 28px 8px;flex:none}.hero-filters label{display:flex;flex-direction:column;gap:3px;font-size:10px;color:#b4cbe7}.hero-filters select{color:#ddecff;background:#182d48;border:1px solid #405c80;border-radius:7px;padding:6px;max-width:180px;font-size:11px}.hero-filters button{padding:5px 10px}.faction-icon{width:20px;height:20px;vertical-align:middle;flex:none;margin-right:5px}.hero-heading .eyebrow{display:flex;align-items:center;letter-spacing:1px}.ability-card h3 .faction-icon{width:24px;height:24px}#hero-picker .hero-card>.card-faction{position:absolute;inset:3px 3px auto auto;padding:2px;border-radius:6px;background:#10233bdf;display:block;width:22px;height:22px;z-index:1}.card-faction .faction-icon{width:16px;height:16px;margin:0;color:#c8e8ff}#hero-detail[hidden],#hero-empty[hidden]{display:none!important}#hero-empty{flex:1;display:grid;place-items:center;text-align:center;padding:24px;color:#b4cbe7;font-size:13px}#hero-detail .full-portrait{position:relative;transform:none;transition:none;overflow:hidden;flex:auto}#hero-detail .hero-idle{position:absolute;inset:0;display:block}.hero-idle canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.art-loading{font-size:11px;color:#b4cbe7}.weapon-glow{animation:weapon-emission 2.8s ease-in-out infinite;mix-blend-mode:screen}.armor-glow{animation:armor-emission 4.1s ease-in-out infinite;mix-blend-mode:screen}.weapon-glow,.armor-glow{animation-play-state:paused}#heroes.current .weapon-glow,#heroes.current .armor-glow{animation-play-state:running}.document-hidden #heroes .weapon-glow,.document-hidden #heroes .armor-glow{animation-play-state:paused}@keyframes weapon-emission{0%,to{opacity:.18}50%{opacity:.85}}@keyframes armor-emission{0%,to{opacity:.06}55%{opacity:.55}}.facing-controls{align-items:center;gap:8px}.facing-controls small{font-size:9px;color:#a8c7e7}.facing-controls button{touch-action:none;user-select:none;-webkit-user-select:none}.facing-controls button.is-held{background:#365b86;border-color:#9fcfff}@media(max-width:600px){.hero-filters{padding:0 14px 5px;gap:7px}.hero-filters label{flex:1;min-width:0}.hero-filters select{width:100%;max-width:none}.hero-heading .faction-icon{width:15px;height:15px}.facing-controls small{font-size:8px}}@media(max-height:620px){.hero-filters{padding-bottom:3px;gap:5px}.hero-filters label{font-size:8px;gap:1px}.hero-filters select{padding:3px;font-size:9px}.hero-filters button{padding:2px 8px}.facing-controls small{display:none}}@media(prefers-reduced-motion:reduce){.weapon-glow,.armor-glow{animation:none;opacity:.3}}@media(min-width:601px)and (max-height:540px){#hero-detail{grid-template-rows:minmax(0,1fr)}#hero-detail .hero-description{gap:2px;min-height:0;justify-content:space-between}.hero-heading h2{font-size:17px;margin:1px 0}.hero-heading .faction-icon{width:12px;height:12px}#hero-detail .hero-summary{margin:0}#hero-detail .hero-summary dt{font-size:8px}#hero-detail .hero-summary dd{font-size:13px;margin:1px 0 0}#hero-attributes,#upgrade{font-size:9px;padding:2px}.hero-experience{font-size:8px;gap:1px}.equipment-slot{padding:2px 1px;gap:0;font-size:7px}.equipment-slot svg{width:13px;height:13px}.equipment-slot small{font-size:7px}.skill-rail{gap:4px}.skill-icon{height:38px}.skill-icon svg{width:18px;height:18px}.skill-rail>span{font-size:7px}}@media(min-width:601px)and (min-height:541px){#hero-detail{grid-template-rows:minmax(0,1fr)}#hero-detail .hero-description{min-height:0;gap:8px}}#hero-detail .full-portrait{touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}#hero-detail .full-portrait.is-dragging{cursor:grabbing}@media(max-height:650px){.auth{gap:10px;padding:18px}.auth h1{font-size:30px}.auth form{gap:8px}}@media(max-height:540px){.auth{gap:4px;padding:10px 18px}.auth .brand{font-size:16px}.auth h1{font-size:21px}.auth p{font-size:11px}.auth form{gap:5px}.auth input{padding:5px}.auth label{gap:3px;font-size:11px}.auth button{padding:6px}.auth form>small,.auth>small{font-size:9px}.auth #auth-message{font-size:10px}}.game-shell{position:relative;grid-template-rows:76px minmax(0,1fr) 70px}.player-header{gap:14px;background:linear-gradient(110deg,#162f46,#10213b);border-bottom:1px solid #7398b766;padding:8px 20px;z-index:5}.profile-avatar{width:54px;height:54px;flex:none;padding:0;border:0;background:none;border-radius:50%}.profile-avatar svg{display:block;width:100%;height:100%}.player-identity{position:relative;width:clamp(180px,28vw,350px);min-width:0;display:grid;grid-template-columns:minmax(0,1fr);gap:4px 10px;align-items:center}.player-identity .player-name-line>strong{font-size:16px;color:#f4e4b8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-identity .account-level{font-size:11px;padding:3px 7px;background:none;border:0}.account-exp{position:relative;grid-column:1/-1;height:15px;border:1px solid #a08450;border-radius:20px;background:#081829;overflow:hidden}.account-exp .exp-fill{position:absolute;inset:0 auto 0 0;width:0;background:#e7bb58}.account-exp small{position:absolute;inset:0;text-align:center;font-size:9px;line-height:13px;color:#e3d3a9}.wallet{display:flex;align-items:center;gap:7px;font-size:19px;white-space:nowrap}.wallet>span{font-size:24px}.wallet small{font-size:10px;color:#efcea0}.utility-menu{position:absolute;top:96px;right:12px;display:flex;flex-direction:column;gap:14px;z-index:6}.utility-menu button{display:flex;flex-direction:column;align-items:center;gap:4px;width:72px;font-size:11px;background:linear-gradient(#293d53ee,#162d47ee);border-color:#b4945a;color:#efd6a5;padding:8px 4px;border-radius:12px;box-shadow:0 4px 12px #00122955}.utility-menu span{font-size:27px;line-height:30px;font-weight:400}#heroes,#city{padding-right:88px}.skill-tooltip{position:fixed;z-index:25;width:265px;max-width:calc(100vw - 16px);padding:12px 14px;border:1px solid #92a7d1;border-radius:12px;color:#e8f3ff;background:#152b46f5;box-shadow:0 8px 28px #0006;pointer-events:none;font-size:12px;line-height:1.45}.skill-tooltip[hidden]{display:none}.skill-tooltip strong{display:block;font-size:14px;color:#edd8a8}.skill-tooltip small{display:block;margin:4px 0 7px;color:#aabedb;font-size:10px}.skill-icon{user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;touch-action:none}.profile-preview{width:90px;height:90px;margin:4px auto}.profile-preview svg{width:100%;height:100%}.profile-setup h1{font-size:30px}.profile-setup .profile-preview{margin:0;width:75px;height:75px}.profile-setup p{line-height:1.5}.campaign-map{background:linear-gradient(90deg,#0c263be8,transparent 35%,transparent 70%,#10233b99),url(/assets/campaign-aether-v09.png) center/auto 100% no-repeat,#123342}.on-map .battle-top{display:none}.on-map .controls{position:absolute;z-index:4;bottom:10px;left:0;right:0;border:0;padding:10px;background:none;justify-content:center;pointer-events:none}.on-map .controls #speed{display:none}.on-map .controls #fight{pointer-events:auto;margin:0;min-width:250px;padding:16px 24px;border:2px solid #f6dfa4;background:linear-gradient(135deg,#bbf8ec,#71d2ec 55%,#859fff);border-radius:20px;color:#123654;font-size:18px;box-shadow:0 5px #0d4862,0 8px 24px #06263d90}.on-map .controls #fight:disabled{background:#29415a;box-shadow:none;color:#cde1ec;border-color:#8199b0;opacity:1;font-size:15px}.campaign-map .map-heading{top:22px;left:24px;right:90px;max-width:280px;background:linear-gradient(120deg,#102b46e0,#102b461a);padding:16px;border-left:2px solid #d6b570;border-radius:0 12px 12px 0}.map-heading .eyebrow{color:#e5c789}.map-heading h1{font-size:30px;color:#f4ead4}.map-heading p{color:#def0f6;line-height:1.5}.map-route{inset:74px 75px 100px 0;width:min(540px,calc((100dvh - 100px)*.67));max-width:calc(100% - 75px);margin:auto}.map-route>svg{opacity:.5}.map-route>svg path{stroke:#ebddaa;stroke-width:.8;stroke-dasharray:1.2 1.4;filter:none}.map-node{width:58px;height:58px;font-size:12px;border-color:#c2ac78;box-shadow:0 5px 10px #05232a66}.map-node.current-stage{width:76px;height:76px;border:3px solid #ffe4a0;background:#172d47;box-shadow:0 0 0 7px #ead89433,0 0 28px #c4efffaa;outline:none}.map-node.current-stage .node-icon{width:65px;height:65px;line-height:1}.node-icon svg{width:100%;height:100%}.map-node.current-stage>strong{position:absolute;top:100%;margin-top:5px;padding:3px 13px;background:#102638e8;border:1px solid #a7976a;border-radius:9px;color:#fff1c9;font-size:17px}.map-node.current-stage .node-name{top:calc(100% + 37px);color:#e9f3ff}.map-node .node-name{font-size:10px;background:#102638d9}.map-node.cleared{background:#18382fe8;color:#9ddec6}.map-node.locked{background:#233d4ee8;color:#adc1c7}.map-node:disabled{opacity:1}.map-node small{color:#efdea0;font-size:7px}.chapter-switch{bottom:93px;color:#e9e2d1}.chapter-switch button{border-color:#9d8a67;background:#0e2b42dd}.in-battle{grid-template-rows:minmax(0,1fr)}.in-battle>.player-header,.in-battle>.utility-menu,.in-battle>.bottom-nav{display:none}.in-battle .battle-top #map-return{display:none}.in-battle .battle-top{background:#102942}.in-battle .field-caption{background:#122e4788;color:#d5efff}.in-battle .controls{justify-content:center;min-height:50px}.in-battle .controls #fight{margin-left:0}.city{background:#173543}.city-backdrop{position:absolute;inset:0;background:linear-gradient(90deg,#0f2c40ce,transparent 38%,transparent 70%,#132b4066),url(/assets/city-aether-v0108.png) center/auto 100% no-repeat,#173543}.city-heading{position:absolute;top:24px;left:24px;z-index:1;padding:12px 16px;background:#112b43c9;border-left:2px solid #c7ae74;border-radius:0 12px 12px 0}.city-heading h1{font-size:30px;color:#f7e9ca;margin:5px 0}.city-heading .eyebrow{color:#d9c48e;font-size:9px}.city-buildings{position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%);width:calc((100dvh - 146px)*.6667);max-width:100%;pointer-events:none}.city-buildings button{position:absolute;transform:translate(-50%,-50%);pointer-events:auto;display:flex;flex-direction:column;align-items:center;gap:4px;background:#173149d9;border:1px solid #e7c78a;color:#fff0c6;box-shadow:0 5px 16px #10212c77;padding:7px 12px;font-size:12px;border-radius:12px;white-space:nowrap}.city-buildings span{font-size:24px;line-height:26px}.city-buildings button:first-child{background:linear-gradient(#474579ed,#263355ed);border-color:#d3b6ff}.summoning-portal{margin:12px auto;font-size:94px;line-height:1.2;color:#ceb3ff;text-align:center;text-shadow:0 0 35px #b585ff}.summoning-description{text-align:center;font-size:14px;color:#e2d2ff}#summon{display:block;margin:20px auto 0}@media(max-width:600px){.game-shell{grid-template-rows:66px minmax(0,1fr) 66px}.player-header{padding:6px 9px;gap:7px}.profile-avatar{width:42px;height:42px}.player-identity{width:auto;flex:1;gap:3px 1px}.player-identity .player-name-line>strong{font-size:12px}.player-identity .account-level{font-size:8px;padding:1px}.account-exp{height:13px}.account-exp small{font-size:8px;line-height:11px}.wallet{font-size:13px;gap:3px}.wallet>span{font-size:17px}.wallet small{display:none}.player-header #logout{padding:4px 6px;font-size:9px}.utility-menu{top:81px;right:6px;gap:9px}.utility-menu button{width:47px;font-size:8px;padding:5px 1px;gap:1px;border-radius:9px}.utility-menu span{font-size:22px;line-height:26px}#heroes,#city{padding-right:57px}.campaign-map .map-heading{top:10px;left:10px;right:60px;max-width:none;padding:8px 10px}.map-heading h1{font-size:21px;margin:4px 0}.map-heading p{font-size:10px}.map-heading .eyebrow{font-size:8px}.map-route{inset:105px 54px 125px 0;max-width:calc(100% - 54px);width:auto}.map-node{width:40px;height:40px;font-size:9px}.map-node .node-icon{font-size:16px;line-height:17px}.map-node .node-name{width:109px;font-size:8px;top:calc(100% + 5px)}.map-node.current-stage{width:58px;height:58px}.map-node.current-stage .node-icon{width:48px;height:48px}.map-node.current-stage>strong{font-size:13px;padding:2px 9px}.map-node.current-stage .node-name{top:calc(100% + 30px)}.map-node small{font-size:6px;margin:2px 0}.chapter-switch{bottom:85px;font-size:10px}.on-map .controls{bottom:7px}.on-map .controls #fight{padding:13px 20px;font-size:17px;min-width:220px}.skill-tooltip{width:235px;padding:10px;font-size:11px}.skill-tooltip strong{font-size:13px}#hero-picker{gap:4px;padding:5px 6px}#hero-picker .hero-card{width:calc((100vw - 88px)/5);height:78px}.hero-filters{padding-left:10px;padding-right:10px;gap:4px}.hero-filters select{font-size:9px}#hero-detail{padding-left:10px;padding-right:8px;gap:6px}.hero-heading h2{font-size:21px}.facing-controls{gap:4px}.facing-controls button{width:36px}.facing-controls small{font-size:7px}.city-heading{left:10px;top:12px;padding:8px 12px}.city-heading h1{font-size:22px}.city-heading .eyebrow{font-size:7px}.city-buildings{width:100%;left:0;transform:none;right:0;max-width:calc(100% - 57px)}.city-buildings button{font-size:10px;padding:6px 8px;gap:2px}.city-buildings span{font-size:22px}.in-battle{grid-template-rows:minmax(0,1fr)}}@media(max-height:540px)and (min-width:601px){.game-shell{grid-template-rows:52px minmax(0,1fr) 48px}.player-header{padding:3px 14px}.profile-avatar{width:42px;height:42px}.player-identity .player-name-line>strong{font-size:13px}.utility-menu{top:64px;gap:6px}.utility-menu button{width:65px;padding:4px;font-size:9px}.utility-menu span{font-size:22px;line-height:23px}#heroes,#city{padding-right:80px}.campaign-map .map-heading{left:16px;top:12px;padding:10px;max-width:220px}.map-heading h1{font-size:21px}.map-route{inset:30px 70px 98px 0;width:290px}.map-node{width:34px;height:34px;font-size:9px}.map-node.current-stage{width:45px;height:45px}.map-node.current-stage .node-icon{width:38px;height:38px}.map-node.current-stage>strong{font-size:10px;padding:1px 8px}.map-node.current-stage .node-name{top:calc(100% + 25px);font-size:8px}.map-node .node-name{font-size:8px;top:calc(100% + 4px)}.map-node .node-icon{font-size:14px}.chapter-switch{bottom:73px;font-size:9px}.on-map .controls #fight{padding:10px 20px;min-width:230px;font-size:15px}.on-map .controls{bottom:5px}.in-battle{grid-template-rows:minmax(0,1fr)}.city-heading{top:10px;left:14px;padding:8px 12px}.city-heading h1{font-size:21px}.city-buildings{width:calc((100dvh - 100px)*.6667)}.city-buildings button{font-size:10px;padding:4px 8px}.city-buildings span{font-size:20px;line-height:22px}}@media(max-width:600px)and (max-height:650px){.map-route{bottom:150px}.map-node:not(.current-stage) .node-name{display:none}}.game-shell{max-width:none;width:100%}.campaign-map{background:linear-gradient(90deg,#0a253b45,transparent 55%,#11273b22),url(/assets/campaign-panorama-v091.png) center/cover no-repeat}#campaign-scenery{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.campaign-map .map-heading{z-index:2;background:#102b46bb;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.map-route{z-index:1}.map-node.current-stage:before,.map-node.current-stage:after{content:"";position:absolute;pointer-events:none}.map-node.current-stage:before{inset:-9px;border:2px solid #fff2b5;border-radius:50%;animation:stage-pulse 2.3s ease-out infinite}.map-node.current-stage:after{width:15px;height:15px;border:solid #fff4c7;border-width:0 4px 4px 0;transform:rotate(45deg);top:-35px;animation:stage-pointer 1.3s ease-in-out infinite;filter:drop-shadow(0 0 5px #dbb65e)}@keyframes stage-pulse{0%{transform:scale(.94);opacity:.9}to{transform:scale(1.35);opacity:0}}@keyframes stage-pointer{0%,to{translate:0 -4px}50%{translate:0 4px}}.heroes-menu>.utility-menu{display:none}#heroes{padding-right:0}.framed-avatar{position:relative;display:block;width:100%;height:100%;overflow:visible}.avatar-art{position:absolute;inset:14%;border-radius:50%;overflow:hidden;background:#19334a}.avatar-art svg{display:block;width:100%;height:100%}.framed-avatar>.avatar-frame{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.frame-3>.avatar-frame,.frame-4>.avatar-frame{filter:none}.frame-5>.avatar-frame,.frame-6>.avatar-frame,.frame-7>.avatar-frame{filter:none;animation:frame-shine 3.5s ease-in-out infinite}.frame-7>.avatar-frame{animation-duration:2.3s}@keyframes frame-shine{0%,to{opacity:.8}50%{opacity:1}}.document-hidden .avatar-frame,.document-hidden .map-node.current-stage:before,.document-hidden .map-node.current-stage:after{animation-play-state:paused}@media(max-width:600px){.campaign-map{background-image:linear-gradient(90deg,#0a253b33,transparent 55%,#11273b22),url(/assets/campaign-aether-v09.png)}}@media(prefers-reduced-motion:reduce){.map-node.current-stage:before,.map-node.current-stage:after,.avatar-frame{animation:none!important}}.profile-edit-avatar{display:block;padding:0;background:none;border:0;width:112px;height:112px}.profile-hint{text-align:center;font-size:10px;color:#b5c7dd;margin-bottom:16px}.profile-preview .avatar-art img{width:100%;height:100%;object-fit:cover}.appearance-tabs{display:flex;gap:8px;margin-bottom:12px}.appearance-tabs button{flex:1}.appearance-tabs [aria-pressed=true]{border-color:#eed7a4;color:#eed7a4}.appearance-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:16px 0}.appearance-options button{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0;padding:7px 4px;background:#18304a;color:#deebff;border-color:#3d5879;font-size:10px}.appearance-options button>.framed-avatar{width:78px;height:78px;max-width:100%;flex:none}.appearance-options [aria-pressed=true]{border-color:#ffe4a8;background:#2b455b;box-shadow:0 0 12px #dbbf7540}.appearance-options .avatar-art img{width:100%;height:100%;object-fit:cover}#appearance-error,#pause-error{color:#ffd1be;font-size:12px;margin:10px 0}#appearance-error:empty,#pause-error:empty{display:none}#profile-edit-frame{margin:12px 0}.battle-pause-modal{width:min(570px,calc(100vw - 24px));max-height:calc(100dvh - 24px);padding:26px 14px;background:#102641eb;border:1px solid #a68c5b;border-radius:20px;color:#fff1ce;text-align:center;box-shadow:0 12px 40px #0005}.battle-pause-modal::backdrop{background:#071326a9;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.battle-pause-modal h2{font-size:25px;color:#ffe7af}.battle-pause-modal>p{font-size:12px;margin:10px 0 18px;color:#c7d8e5}.pause-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.pause-actions button{background:none;border:0;color:#f7dfad;display:flex;flex-direction:column;align-items:center;gap:8px;font-size:13px;padding:12px 0}.pause-actions span{position:relative;display:grid;place-items:center;width:60px;height:60px;font-size:35px;margin:8px;z-index:0;color:#ffedae}.pause-actions span:before{content:"";position:absolute;inset:2px;border:2px solid #c5a164;background:linear-gradient(135deg,#886331,#35281e);transform:rotate(45deg);z-index:-1;box-shadow:0 0 16px #e3b76c40}#pause-exit span{color:#ffad8e}#pause-continue span{color:#a8f0e9}#battle-pause{font-size:11px;padding:5px 10px}.map-node .avatar-art svg{position:static;overflow:visible}@media(max-width:600px){.appearance-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.appearance-options button>.framed-avatar{width:66px;height:66px}.pause-actions{gap:3px}.pause-actions button{font-size:10px}.pause-actions span{width:48px;height:48px;font-size:29px}.battle-pause-modal h2{font-size:21px}}@media(max-height:440px){.battle-pause-modal{padding:12px}.battle-pause-modal>p{margin:5px 0}.pause-actions button{padding:4px 0}}.city-backdrop{background:url(/assets/city-panorama-v091.png) center/cover no-repeat;filter:none}#city-scenery{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.city-buildings{inset:0;width:100%;max-width:none;transform:none}.city-buildings button{z-index:1}@media(max-width:600px){.city-backdrop{background-image:url(/assets/city-aether-v0108.png)}}.battle-pause-modal{inset:0;margin:0;width:100vw;max-width:none;height:100dvh;max-height:none;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:hidden;color:#e8f4ff}.battle-pause-modal::backdrop{background:#02101970;-webkit-backdrop-filter:none;backdrop-filter:none}.battle-pause-modal .pause-actions{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(510px,94vw);gap:18px;align-items:start}.pause-actions button{padding:12px 0;gap:10px;font-size:13px;color:#eaf8ff;text-shadow:0 2px 6px #000}.pause-actions button svg{width:100px;height:100px;max-width:100%;filter:drop-shadow(0 4px 12px #0008)}.pause-actions .action-core{fill:#12344adc;stroke:#b6d9e5}.pause-actions .action-orbit{stroke:#b6d9e5;opacity:.7}.pause-actions button>span{width:auto;height:auto;margin:0;font-size:inherit;color:inherit;display:block}.pause-actions button>span:before{display:none}#pause-exit{color:#ffc1a9}#pause-retry{color:#edd4ff}#pause-continue{color:#a9ffe2}#pause-exit .action-core{fill:#492b30dc;stroke:#ffa895}#pause-retry .action-core{fill:#302a50dc;stroke:#c7aeff}#pause-continue .action-core{fill:#17453edc;stroke:#98f1d1}#pause-error{grid-column:1/-1;text-align:center;background:#351f26d9;padding:8px;border-radius:10px}#battle-pause{position:absolute;z-index:6;left:16px;bottom:112px;width:54px;height:54px;border-radius:17px;padding:0;display:grid;place-items:center;background:#112d42d9;color:#e0f9ff;border:1px solid #8bb4c7;font-size:32px;line-height:1;box-shadow:0 4px 16px #07182855}.on-map #battle-pause,.on-map #battle-party{display:none}#battle-party{position:absolute;z-index:5;bottom:12px;left:50%;transform:translate(-50%);display:flex;justify-content:center;gap:12px;max-width:calc(100% - 20px)}.combat-hero{width:78px;flex:none;position:relative;border-radius:15px;padding:4px;background:#10273de0;border:1px solid #80a7bb;box-shadow:0 3px 12px #0004}.combat-portrait{height:65px;border-radius:11px;overflow:hidden;background:#183449}.combat-portrait svg{width:100%;height:100%;display:block}.combat-hero .hud-bar{height:6px;background:#061526;border-radius:5px;overflow:hidden;margin-top:4px}.hud-bar>span{display:block;width:100%;height:100%;background:linear-gradient(90deg,#1d9d74,#79efd1)}.hud-bar.energy>span{width:0;background:linear-gradient(90deg,#5a6cef,#85dbff)}.combat-hero.ultimate-ready{border-color:#ede6aa;box-shadow:0 0 15px #ecdaa34d}.combat-hero.defeated{filter:grayscale(1);opacity:.45}.combat-hero.defeated:after{content:"×";position:absolute;top:20px;left:0;right:0;text-align:center;font-size:32px;color:#eff4ff}.in-battle .controls{position:absolute;z-index:6;right:16px;bottom:112px;padding:0;border:0;background:none}.in-battle .controls #fight{display:none}.in-battle .controls #speed{margin:0;width:54px;height:54px;padding:0;font-size:18px;background:#112d42d9;color:#e0f9ff}#battle-outcome{position:absolute;z-index:8;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:20px;background:#09071400;animation:defeat-darken 1.5s ease-out forwards;text-align:center;gap:20px}#battle-outcome[hidden]{display:none}.defeat-title{position:relative;font-family:Georgia,serif;font-size:clamp(46px,9vw,108px);font-weight:900;letter-spacing:.07em;color:#d84b4b;text-shadow:0 4px 0 #4e111b,0 9px 26px #000b;animation:defeat-title .9s ease-out both}.defeat-title:before{content:"";position:absolute;inset:-12px -26px;pointer-events:none;background:radial-gradient(ellipse at 16% 46%,#a62938aa 0 3px,transparent 4px),radial-gradient(ellipse at 82% 71%,#a6293888 0 5px,transparent 6px),radial-gradient(ellipse at 73% 24%,#a62938aa 0 2px,transparent 3px),radial-gradient(ellipse at 29% 82%,#a6293899 0 3px,transparent 4px)}.defeat-title:after{content:"";position:absolute;left:21%;right:14%;top:83%;height:27px;pointer-events:none;background:linear-gradient(#921c2dbb,#921c2d00);clip-path:polygon(0 0,7% 0,8% 62%,10% 0,29% 0,30% 100%,32% 0,69% 0,70% 72%,73% 0,92% 0,94% 85%,96% 0,100% 0)}.outcome-actions{display:flex;gap:12px;margin-top:8px}.outcome-actions button{min-width:160px;padding:13px 18px;background:#512932e8;color:#ffddd6;border-color:#b3696d}.outcome-actions .secondary{background:#142b3ce8;color:#dcebf5;border-color:#69879b}.defeat-tip{max-width:420px;font-size:13px;line-height:1.5;color:#d6dce7;text-shadow:0 2px 4px #000}@keyframes defeat-darken{to{background:#090714b5}}@keyframes defeat-title{0%{opacity:0;transform:scale(.88) translateY(-12px)}to{opacity:1;transform:none}}#heroes .hero-filters{flex-direction:column;align-items:center;padding:0 16px 12px;gap:8px;position:relative}#heroes .hero-filters select[hidden]{display:none}.filter-icons{display:flex;gap:7px;justify-content:center;flex-wrap:wrap}.filter-icons button{width:40px;height:40px;padding:7px;display:grid;place-items:center;background:#152d46;border-color:#456285;color:#bfd5ef}.filter-icons svg{width:24px;height:24px;margin:0}.filter-icons [aria-pressed=true]{background:#315375;border-color:#d7c694;color:#fff2be;box-shadow:0 0 8px #8dbed633}#clear-filters{position:absolute;right:16px;bottom:12px;padding:5px 8px}#hero-picker.hero-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));align-content:start;gap:14px;padding:18px;overflow:auto;flex:1;min-height:0;max-width:980px;width:100%;margin:0 auto;background:none;border:0}#hero-picker.hero-grid .hero-card{width:100%;height:auto;aspect-ratio:1;border-radius:15px;border:2px solid #527590;overflow:hidden;padding:0;background:#142e47}#hero-picker.hero-grid img{width:100%;height:100%;max-width:none;object-fit:cover;transform:none}#hero-picker.hero-grid .hero-card .card-faction{inset:5px auto auto 5px;padding:3px;background:#10283dcc;width:24px;height:24px;border-radius:9px}#hero-picker.hero-grid .card-faction svg{width:100%;height:100%}.card-level{position:absolute;top:5px;right:5px;font-size:10px;color:#f8ebbb;background:#10283ddd;padding:3px;border-radius:5px}.hero-card .card-rarity,.hero-card .card-evolution{position:absolute;bottom:4px;font-size:9px;color:#d5dfeb;background:#10283ddd;padding:3px 4px;border-radius:4px}.card-rarity{left:4px}.card-evolution{right:4px}#heroes.hero-detail-open>.section-title,#heroes.hero-detail-open>.hero-filters{display:none}#hero-picker[hidden],#hero-detail[hidden],#hero-list-back[hidden]{display:none}#hero-list-back{align-self:flex-start;margin:10px 16px 0;padding:6px 12px;font-size:12px;flex:none}#heroes:not(.hero-detail-open) #hero-empty{text-align:center;margin:16px}@media(max-width:600px){#hero-picker.hero-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;padding:12px 8px}#hero-picker.hero-grid .hero-card{border-radius:10px}.card-level{font-size:8px;padding:2px;top:3px;right:2px}#hero-picker.hero-grid .hero-card .card-faction{width:17px;height:17px;top:3px;left:2px;padding:2px}.hero-card .card-rarity,.hero-card .card-evolution{font-size:6px;padding:2px;bottom:3px}.card-rarity{left:2px}.card-evolution{right:2px}.filter-icons{gap:5px}.filter-icons button{width:33px;height:33px;padding:5px}#heroes .hero-filters{gap:6px;padding-bottom:8px}#clear-filters{right:6px;bottom:6px;padding:4px}.combat-hero{width:clamp(48px,14vw,66px);border-radius:10px;padding:3px}.combat-portrait{height:50px;border-radius:8px}#battle-party{gap:6px;bottom:8px}.combat-hero .hud-bar{height:5px;margin-top:3px}#battle-pause{left:10px;bottom:93px;width:47px;height:47px}.in-battle .controls{right:10px;bottom:93px}.in-battle .controls #speed{width:47px;height:47px}.pause-actions button svg{width:80px;height:80px}.pause-actions button{font-size:11px}.battle-pause-modal .pause-actions,.outcome-actions{gap:8px}.outcome-actions button{min-width:0;padding:12px;font-size:12px}.defeat-tip{font-size:11px}}@media(max-height:440px){#hero-picker.hero-grid{grid-template-columns:repeat(auto-fill,minmax(74px,1fr));padding:8px;gap:8px}#heroes .section-title{padding:8px 16px}.section-title h1{font-size:21px}#heroes .hero-filters{flex-direction:row;gap:12px;padding:0 45px 6px 12px}.filter-icons button{width:28px;height:28px;padding:4px}#clear-filters{bottom:6px}.combat-hero{width:48px}.combat-portrait{height:38px}#battle-party{bottom:6px;gap:7px}.combat-hero .hud-bar{height:4px;margin-top:2px}#battle-pause{left:12px;bottom:12px;width:44px;height:44px}.in-battle .controls{bottom:12px;right:12px}.in-battle .controls #speed{width:44px;height:44px}.pause-actions button svg{width:76px;height:76px}#battle-outcome{gap:9px;padding:10px}.defeat-title{font-size:48px}.defeat-tip{font-size:11px}.outcome-actions button{padding:8px 12px}#hero-list-back{margin:5px 12px 0;padding:3px 9px}}@media(prefers-reduced-motion:reduce){#battle-outcome{animation:none;background:#090714b5}.defeat-title{animation:none}}.team-modal{width:min(640px,calc(100vw - 20px))}.team-instructions{font-size:12px;line-height:1.5;color:#c5d7e5;margin-bottom:16px}.team-slots{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:12px 0 20px}.team-slots button{position:relative;aspect-ratio:1;min-width:0;padding:6px;border:1px dashed #67859d;background:#10283e;color:#a9c7da}.team-slots .filled{border-style:solid;border-color:#a3d8cf;background:#214555}.team-slots svg{display:block;width:100%;height:100%}.team-slots button>span{font-size:29px}.team-slots button>small{position:absolute;bottom:3px;right:5px;border-radius:50%;background:#081e31;color:#e2e9ef;padding:2px 5px}.team-collection{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;max-height:40dvh;overflow:auto;padding:4px}.team-collection button{position:relative;min-width:0;padding:5px;background:#132d45;color:#d7e8f5;border-color:#405d79;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11px}.team-collection svg{width:100%;aspect-ratio:1;display:block}.team-collection [aria-pressed=true]{background:#264d60;border-color:#baebd9;box-shadow:0 0 9px #83e2c133}.team-order{position:absolute;top:3px;right:3px;background:#b2efdc;color:#17344a;border-radius:50%;padding:3px 6px;font-size:10px}#team-start{display:block;width:100%;margin-top:14px}#team-error{font-size:12px;color:#ffb9a9;margin-top:8px}#team-error:empty{display:none}@media(max-width:600px){.team-instructions{font-size:10px;margin-bottom:8px}.team-slots{gap:5px;margin:8px 0 12px}.team-slots button{padding:2px;border-radius:8px}.team-collection{gap:4px;padding:2px}.team-collection button{font-size:9px;padding:2px;border-radius:8px}.team-collection small{font-size:8px}.team-modal .modal-heading h2{font-size:20px}#team-start{font-size:12px;padding:10px}}@media(max-height:440px){.team-modal{width:min(600px,calc(100vw - 20px));padding:12px}.team-modal .modal-heading{margin-bottom:6px}.team-modal .modal-heading h2{font-size:20px}.team-instructions{margin-bottom:4px}.team-slots{width:310px;max-width:100%;margin:4px auto 8px;gap:6px}.team-slots button{padding:2px}.team-collection{grid-template-columns:repeat(auto-fill,minmax(60px,1fr));max-height:95px}.team-collection svg{height:42px}#team-start{margin-top:8px;padding:7px;font-size:12px}}.battle-ended #battle-pause,.battle-ended #speed{display:none}.in-battle.battle-ended .controls #fight{display:block;min-width:140px;padding:12px}.in-battle #result{bottom:125px}#hero-picker.hero-grid .hero-card{display:block}#hero-picker.hero-grid img{padding:0}#hero-picker.hero-grid .hero-card .card-faction{position:absolute}#hero-picker.hero-grid .card-rarity,#hero-picker.hero-grid .card-evolution{font-size:9px}@media(max-width:600px){#hero-picker.hero-grid .card-rarity,#hero-picker.hero-grid .card-evolution{font-size:6px}}.screens{overflow:hidden}.has-defeat .controls,.has-defeat #battle-party{display:none}.pause-actions button:focus-visible{outline:none}.pause-actions button:focus-visible svg{filter:drop-shadow(0 0 9px currentColor)}.press-tooltip{position:fixed;z-index:40;max-width:min(270px,calc(100vw - 16px));padding:10px 13px;border:1px solid #83afc6;border-radius:12px;background:#0c2339f5;color:#e1eff8;box-shadow:0 6px 22px #0007;pointer-events:none;font-size:12px;line-height:1.45;text-align:left}.press-tooltip[hidden]{display:none}.press-tooltip strong{display:block;color:#fff0c8;font-size:13px}.press-tooltip p{margin-top:5px;color:#c7ddeb}.filter-icons button{touch-action:none;user-select:none;-webkit-user-select:none}.hero-power{display:block;color:#ffe2a0;font-weight:700;margin:5px 0}.team-modal{width:min(960px,calc(100vw - 32px));height:min(880px,calc(100dvh - 32px));max-height:calc(100dvh - 32px);padding:16px;overflow:hidden;display:flex;flex-direction:column;background:linear-gradient(155deg,#203a55,#0c2134);border-color:#799ba8}.team-modal:not([open]){display:none}.team-modal .modal-heading{flex:none;margin:0 0 8px}.team-modal .modal-heading h2{font-size:21px}.team-modal #hero-modal-content{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.formation-power{display:grid;grid-template-columns:1fr 50px 1fr;align-items:center;flex:none;padding:7px 12px 12px;gap:12px}.formation-power>div{display:grid;grid-template-columns:auto auto;gap:2px 8px;align-items:baseline;background:#0b203bb8;border:1px solid #3f7486;border-radius:12px;padding:8px 13px}.formation-power>div:last-child{border-color:#9a5262;text-align:right}.formation-power small{grid-column:1/-1;font-size:10px;color:#cce3ed}.formation-power strong{font-size:25px;font-variant-numeric:tabular-nums;color:#9ce9e7}.formation-power>div:last-child strong{color:#ffb8a5}.formation-power span{font-size:10px;color:#b5c9d7}.formation-power .power-versus{text-align:center;font:700 23px Georgia;color:#ffe7b4}.formation-field{position:relative;flex:1;min-height:190px;max-height:510px;overflow:hidden;border:1px solid #577c8c;border-radius:16px;background:linear-gradient(#16314a44,#1a334629),url(/assets/astral-field-v04.png) center 65%/cover no-repeat}.formation-divider{position:absolute;top:8%;bottom:5%;left:50%;border-left:1px dashed #e5f7f779;pointer-events:none}.formation-side-label{position:absolute;top:6px;font-size:8px;letter-spacing:1.8px;color:#e0fbfb;text-shadow:0 1px 4px #000}.formation-side-label.ally{left:12px}.formation-side-label.foe{right:12px;color:#ffe0d3}.formation-unit{position:absolute;transform:translate(-50%,-50%);width:18%;height:28%;padding:0;border:0;background:none;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;isolation:isolate;touch-action:none;user-select:none;-webkit-user-select:none;color:#ddf6ff}.formation-unit img{height:calc(100% - 14px);max-width:100%;width:100%;object-fit:contain;pointer-events:none;filter:drop-shadow(0 4px 4px #10242f77)}.formation-unit.foe img{transform:scaleX(-1);height:calc(100% + 4px);margin-bottom:-18px}.formation-unit .unit-level{position:relative;z-index:1;font-size:10px;border:1px solid #599e9c;border-radius:12px;padding:2px 8px;background:#0b2943de;color:#edfffc;white-space:nowrap;pointer-events:none}.formation-unit.foe .unit-level{border-color:#bc7776;color:#ffe7df}.formation-unit:before{content:"";position:absolute;bottom:8px;width:54%;height:15px;border:1px solid #8debd38f;border-radius:50%;background:#89e9d524;z-index:-1}.formation-unit.foe:before{border-color:#ed8a968f;background:#ed8a9624}.formation-unit.dragging{z-index:10;opacity:.85}.formation-unit.position-selected:before{border-color:#ffefad;box-shadow:0 0 8px #ffed9955}.formation-unit:hover{filter:none}.empty-position{display:flex;align-items:center;gap:3px;padding:5px 9px;border:1px dashed #b8dfd6;border-radius:50%;background:#1b4459ac;font-size:20px;color:#d6f6ed;margin-bottom:10px}.empty-position small{font-size:10px;color:#ebf8ef}.formation-help{flex:none;font-size:10px;text-align:center;line-height:1.4;color:#c0d9e5;margin:7px 0}.formation-roster-heading{display:flex;justify-content:space-between;align-items:center;flex:none;font-size:12px;padding:5px 2px 7px}.formation-roster-heading small{font-size:10px}.team-modal .team-collection{flex:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));align-content:start;max-height:190px;min-height:112px;overflow:auto;overscroll-behavior:contain;touch-action:pan-y;scrollbar-width:thin;scrollbar-color:#6192aa #112a3e;padding:6px;gap:8px;background:#091f3399;border:1px solid #385e7b;border-radius:12px}.team-collection button{height:110px;min-height:0;font-size:10px;gap:1px;padding:4px;user-select:none;-webkit-user-select:none}.team-collection button svg{height:69px;max-width:90px;aspect-ratio:1;pointer-events:none}.team-collection button small{font-size:8px;color:#d2e4ef}.team-order{font-size:9px;border-radius:8px;padding:2px 4px}.team-modal #team-start{flex:none;margin-top:8px;padding:12px;font-size:14px;background:linear-gradient(110deg,#92ece5,#90a6ff);border-color:#bbe9e8;color:#16364d}.team-modal #team-error{margin:3px 0 0;font-size:10px}.pause-actions button svg{width:116px;height:116px}.pause-actions .action-inlay{filter:drop-shadow(0 0 2px currentColor)}.pause-actions button:hover svg{translate:0 -3px}.pause-actions button svg{transition:translate .15s ease}.battle-pause-modal .pause-actions{width:min(560px,96vw);gap:20px}.defeat-reaper{position:absolute;left:50%;top:47%;transform:translate(-50%,-50%);width:min(510px,82vw);height:min(550px,78%);object-fit:contain;opacity:.5;pointer-events:none;animation:skull-darkness 6s ease-in-out infinite}.defeat-title{font-family:Georgia,serif;font-weight:900;text-shadow:0 2px 0 #6e1221,0 5px 0 #380c17,0 0 20px #a11b3644,0 14px 32px #000;color:#ec4859;isolation:isolate}.defeat-title>span:first-child{background:linear-gradient(#ff7373,#d72a43 64%,#67152c);color:transparent;background-clip:text;-webkit-background-clip:text}.defeat-title:after{display:none}.blood-streams{position:absolute;left:5%;right:3%;top:83%;height:80px;display:flex;justify-content:space-between;pointer-events:none;z-index:-1}.blood-streams i{display:block;position:relative;width:clamp(2px,.5vw,6px);height:var(--length);background:linear-gradient(#b5223a,#77122d);border-radius:0 0 70% 70%;transform-origin:top;animation:blood-flow 4s ease-in-out infinite;animation-delay:calc(var(--drop)*-.43s);box-shadow:1px 0 2px #4a081766}.blood-streams i:after{content:"";position:absolute;left:0;bottom:-7px;width:100%;height:10px;background:#9d1a34;border-radius:60% 60% 70% 70%;animation:blood-drop 4s ease-in infinite;animation-delay:calc(var(--drop)*-.43s)}.outcome-actions,.defeat-tip{position:relative;z-index:1}.outcome-actions{margin-top:40px}@keyframes blood-flow{0%,to{transform:scaleY(.45)}65%{transform:scaleY(1)}}@keyframes blood-drop{0%,60%{translate:0 0;opacity:1}95%,to{translate:0 28px;opacity:0}}@keyframes skull-darkness{0%,to{transform:translate(-50%,-50%) scale(.97)}50%{transform:translate(-50%,-50%) scale(1.02)}}@media(min-width:901px){#hero-detail{width:min(1180px,calc(100% - 48px));max-height:700px;margin:auto;grid-template-columns:280px minmax(0,1fr) 78px;border:1px solid #385575;border-radius:24px;padding:22px 26px;background:radial-gradient(ellipse at 58% 55%,#2b466d66,transparent 65%),linear-gradient(120deg,#152b4399,#10203966)}#hero-list-back{margin-left:max(24px,calc((100% - 1180px)/2));margin-top:12px;margin-bottom:10px}#heroes .section-title,#heroes .hero-filters{width:min(1180px,100%);margin:0 auto}.player-header{padding-left:max(20px,calc((100% - 1440px)/2));padding-right:max(20px,calc((100% - 1440px)/2))}.utility-menu{right:max(12px,calc((100% - 1440px)/2))}.campaign-map .map-heading,.city-heading{left:max(24px,calc((100% - 1440px)/2))}}@media(max-width:600px){.team-modal{inset:0;margin:0;width:100vw;max-width:none;height:100dvh;max-height:100dvh;border:0;border-radius:0;padding:max(10px,env(safe-area-inset-top)) 8px max(10px,env(safe-area-inset-bottom))}.team-modal .modal-heading{margin-bottom:5px}.team-modal .modal-heading h2{font-size:18px}.team-modal .modal-heading button{font-size:22px;padding:3px 10px}.formation-power{padding:2px 0 7px;gap:5px;grid-template-columns:1fr 28px 1fr}.formation-power>div{padding:5px 8px;gap:1px 4px}.formation-power strong{font-size:19px}.formation-power small{font-size:9px}.formation-power span{font-size:8px}.formation-power .power-versus{font-size:17px}.formation-field{min-height:205px;max-height:none;border-radius:12px;flex:1.4}.formation-unit{width:23%;height:28%}.formation-unit .unit-level{font-size:8px;padding:2px 5px}.formation-side-label{font-size:6px;letter-spacing:.8px}.formation-help{font-size:9px;margin:6px 0}.team-modal .team-collection{grid-template-columns:repeat(5,minmax(0,1fr));max-height:27dvh;min-height:88px;gap:4px;padding:4px}.team-collection button{height:87px;font-size:8px;padding:2px}.team-collection button svg{height:52px}.team-collection button small{font-size:6px}.team-modal #team-start{padding:11px;font-size:12px}.formation-roster-heading{font-size:10px;padding:3px 2px 5px}.formation-roster-heading small{font-size:8px}.battle-pause-modal .pause-actions{gap:5px}.pause-actions button svg{width:88px;height:88px}.blood-streams{height:45px}.blood-streams i{height:calc(var(--length)*.6)}.outcome-actions{margin-top:27px}.defeat-reaper{height:65%;width:94vw}.hero-power{font-size:10px;margin:2px 0}}@media(max-height:440px)and (min-width:601px){.team-modal{height:calc(100dvh - 12px);max-height:calc(100dvh - 12px);padding:8px 12px}.team-modal .modal-heading{margin-bottom:4px}.team-modal .modal-heading h2{font-size:16px}.team-modal #hero-modal-content{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(220px,1fr);grid-template-rows:50px 24px minmax(0,1fr) 39px;gap:4px 12px}.formation-power{grid-column:1;grid-row:1;padding:0;gap:6px}.formation-power>div{padding:4px 9px}.formation-power strong{font-size:17px}.formation-power small{font-size:8px}.formation-field{grid-column:1;grid-row:2/5;min-height:0;height:100%;max-height:none}.formation-help{display:none}.formation-roster-heading{grid-column:2;grid-row:1;margin:0;font-size:10px}.formation-roster-heading small{font-size:8px}.team-modal .team-collection{grid-column:2;grid-row:2/4;min-height:0;max-height:none;height:100%;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.team-collection button{height:89px}.team-collection button svg{height:52px}.team-modal #team-start{grid-column:2;grid-row:4;margin:0;padding:7px;font-size:11px}.formation-unit .unit-level{font-size:8px}.team-modal #team-error{grid-column:2;grid-row:1}.defeat-reaper{height:95%;width:350px}.blood-streams i{height:calc(var(--length)*.5)}.outcome-actions{margin-top:20px}.hero-power{font-size:9px;margin:2px 0}}@media(prefers-reduced-motion:reduce){.blood-streams i,.blood-streams i:after,.defeat-reaper{animation:none}.pause-actions button svg{transition:none}}.document-hidden .blood-streams i,.document-hidden .blood-streams i:after,.document-hidden .defeat-reaper{animation-play-state:paused}.route-switch{position:absolute;bottom:126px;left:0;right:0;z-index:2;display:flex;align-items:center;justify-content:center;gap:14px;color:#f2e9d6;font-size:11px}.route-switch button{padding:2px 11px;font-size:18px;background:#0e2b42dd;color:#e9e2d1;border-color:#9d8a67}.map-route{bottom:140px}@media(max-width:600px){.route-switch{bottom:113px;font-size:9px}.route-switch button{font-size:15px;padding:1px 10px}.map-route{bottom:153px}}@media(max-height:540px){.route-switch{bottom:98px;font-size:9px}.route-switch button{font-size:13px}.map-route{bottom:124px}}.route-switch>span,.chapter-switch>span{padding:4px 8px;border-radius:8px;background:#102638dc;text-shadow:0 1px 2px #000}@media(min-width:901px){#heroes>.section-title,#heroes>.hero-filters,#hero-picker.hero-grid{width:min(1180px,calc(100% - 48px));margin-left:auto;margin-right:auto}}.campaign-map{background:none;overflow:hidden}.campaign-landscape{position:absolute;left:0;right:0;top:0;height:140%;background-position:center;background-size:cover;background-repeat:no-repeat;pointer-events:none;will-change:transform}.campaign-scroll{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;touch-action:pan-y;scrollbar-width:thin;scrollbar-color:#d8bd7d77 #10263e22;z-index:1}.map-scroll-surface{position:relative;min-height:100%}.campaign-map .map-route{position:absolute;inset:0 0 auto;width:min(540px,calc(100% - 65px));height:100%;max-width:none;margin:0 auto}.map-route>svg{inset:0;width:100%;height:100%;opacity:1;overflow:visible}.map-route>svg path{fill:none;stroke-width:3;stroke-dasharray:7 8;filter:none}.map-route>svg .pending-link{stroke:#d6e6ec55;stroke-dasharray:none;stroke-width:1}.map-route>svg .completed-link{stroke:#ffe5a1;filter:none}.campaign-map .map-heading{pointer-events:none;-webkit-backdrop-filter:none;backdrop-filter:none}.campaign-map .chapter-switch{bottom:94px;z-index:3;gap:8px}.chapter-switch #campaign-current{font-size:20px}.campaign-map .map-node{visibility:inherit;width:52px;height:52px;font-size:11px}.map-node .node-name{font-size:9px;width:125px}.campaign-map .map-node.current-stage{width:68px;height:68px}.campaign-map .map-node.current-stage .node-icon{width:57px;height:57px}.campaign-map .map-node.current-stage .node-name{display:block;top:calc(100% + 33px)}.campaign-map .map-node.current-stage>strong{font-size:14px}.campaign-map .map-node.picked:not(.current-stage){outline:2px solid #f7e2a3;outline-offset:4px}.formation-nature{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.empty-position{width:46px;height:46px;padding:0;justify-content:center;font-size:36px;font-weight:700;color:#fff2c1;border:2px dashed #fff0b6;background:#174761d9;box-shadow:0 0 15px #8bead960;margin-bottom:4px}.formation-unit.position-selected .empty-position{background:#26667bcf;box-shadow:0 0 0 5px #dfd78430,0 0 20px #ffd77e60}.defeat-reaper{width:min(620px,95vw);height:90%;top:47%;opacity:.5}@media(max-width:600px){.campaign-map .map-route{width:calc(100% - 54px);margin-left:0}.campaign-map .map-heading{max-width:270px}.campaign-map .map-node{width:42px;height:42px;font-size:9px}.campaign-map .map-node.current-stage{width:56px;height:56px}.campaign-map .map-node.current-stage .node-icon{width:46px;height:46px}.campaign-map .map-node.current-stage>strong{font-size:12px}.campaign-map .map-node.current-stage .node-name{top:calc(100% + 29px)}.campaign-map .chapter-switch{bottom:85px;font-size:9px}.campaign-map .map-node .node-name{display:block;width:100px;font-size:8px}.team-modal{margin:8px;width:calc(100vw - 16px);height:calc(100dvh - 16px);max-height:calc(100dvh - 16px);border:1px solid #597185;border-radius:14px}.empty-position{width:40px;height:40px;font-size:30px}.defeat-reaper{height:86%}}@media(max-height:540px){.campaign-map .chapter-switch{bottom:75px}.campaign-map .map-heading{max-width:220px}.map-heading h1{font-size:19px}}.pane:not(.on-map) .campaign-map{display:none}.on-map .controls{display:none!important}.auth{overflow-y:auto;justify-content:safe center}.on-map .chapter-switch{bottom:20px}.campaign-scroll{cursor:grab;user-select:none;-webkit-user-select:none;overscroll-behavior:contain}.campaign-scroll.drag-scrolling,.team-collection.drag-scrolling{cursor:grabbing}.profile-actions{display:flex;gap:10px;margin-top:18px}.profile-actions button{flex:1}.settings-toggle{display:flex;align-items:center;gap:12px;min-height:44px}.settings-toggle input{width:22px;height:22px}#hero-modal-content>button,#password-change button{margin-top:10px;min-height:44px}#password-change{display:grid;gap:12px}#password-change label{display:grid;gap:6px;font-size:13px}#password-change input{width:100%;min-height:44px}#password-change small{font-size:11px;color:#b9cce5;line-height:1.5}#password-change input{padding:10px 12px;border:1px solid #6384aa;border-radius:8px;background:#11253d;color:#eff6ff;font-size:16px}.profile-actions button{min-height:44px}.social-modal{width:min(620px,calc(100vw - 24px));max-height:calc(100dvh - 28px)}.social-modal #hero-modal-content{overflow:auto}.friend-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 0;border-bottom:1px solid #3b546b}.friend-identity{display:flex;align-items:center;gap:10px;padding:0;border:0;background:none;color:#e4efff;text-align:left;min-width:0}.friend-identity:disabled{opacity:1}.friend-avatar{display:block;flex:none;width:48px;height:48px}.friend-identity>span:last-child{display:flex;flex-direction:column;gap:4px;min-width:0}.friend-identity strong{overflow-wrap:anywhere}.friend-online{color:#83e3a4}.friend-offline{color:#f6a0a4}.friend-actions{display:flex;gap:5px;flex-wrap:wrap}.friend-actions button{font-size:10px;padding:6px 8px}.friend-profile{text-align:center}.friend-profile button{display:block;margin:18px auto 0}#social-friends h3{font-size:15px;margin:18px 0 4px}#friend-add-form{margin-top:12px}#social-error{font-size:12px;color:#f6d3a7;margin:9px 0}.chat-channel-label{display:inline-flex;align-items:center;gap:8px}.chat-color-label{display:inline-flex;align-items:center;gap:8px;float:right;font-size:11px}.chat-color-label input{width:40px;height:32px;padding:2px}.chat-messages{height:min(42dvh,390px);min-height:110px;overflow:auto;overscroll-behavior:contain;background:#091b2e;border:1px solid #385978;border-radius:10px;padding:10px;margin:8px 0}.chat-messages article{padding:7px 0;border-bottom:1px solid #31465b55}.chat-messages header{display:flex;gap:9px;align-items:center;font-size:11px}.chat-messages time{color:#a5bdd3;font-size:10px}.chat-messages p{margin:5px 0 0;font-size:13px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}#chat-form{display:flex;gap:7px}#chat-form input{min-width:0;flex:1}#chat-form button{flex:none;padding:9px 14px}#chat-older{font-size:10px;padding:5px 8px;display:block;clear:both}#chat-muted{color:#f4c79b;font-size:11px}.utility-menu small{font-size:8px}.utility-menu #chat-open span{font-size:27px}.team-modal{height:min(690px,calc(100dvh - 32px))}.formation-field{flex:none;height:clamp(150px,27dvh,280px);min-height:150px;max-height:280px}.team-modal .team-collection{flex:1;max-height:none;min-height:112px}.formation-unit .unit-level{font-size:9px}.formation-unit{height:29%}.formation-help{margin:5px 0}@media(max-width:600px){.team-modal{height:min(690px,calc(100dvh - 16px));max-height:calc(100dvh - 16px)}.formation-field{height:clamp(145px,27dvh,240px);min-height:145px;max-height:240px;flex:none}.team-modal .team-collection{min-height:88px;max-height:none;flex:1}.friend-row{align-items:flex-start}.friend-avatar{width:40px;height:40px}.friend-identity{gap:6px;font-size:12px}.friend-actions{max-width:112px}.friend-online,.friend-offline{font-size:9px}.social-modal{padding:14px;width:calc(100vw - 22px)}.chat-messages{height:36dvh}.chat-color-label{float:none;display:flex;margin:8px 0}.chat-messages p{font-size:12px}#chat-form button{padding:7px 10px;font-size:12px}.utility-menu{gap:6px}.utility-menu button{padding-top:4px;padding-bottom:4px}}.game-shell:not(.in-battle){grid-template-rows:calc(76px + env(safe-area-inset-top)) minmax(0,1fr) calc(70px + env(safe-area-inset-bottom))}.player-header{padding-top:calc(8px + env(safe-area-inset-top))}@media(max-width:600px){.game-shell:not(.in-battle){grid-template-rows:calc(66px + env(safe-area-inset-top)) minmax(0,1fr) calc(66px + env(safe-area-inset-bottom))}.player-header{padding-top:calc(6px + env(safe-area-inset-top))}}@media(max-height:540px){.game-shell:not(.in-battle){grid-template-rows:calc(52px + env(safe-area-inset-top)) minmax(0,1fr) calc(48px + env(safe-area-inset-bottom))}.player-header{padding-top:calc(3px + env(safe-area-inset-top))}}#password-error{color:#ffb4b4}#password-message{color:#b3f5d6}.environment-off #campaign-scenery,.environment-off #city-scenery,.environment-off #challenges-scenery,.environment-off .formation-nature{visibility:hidden}@media(max-width:600px){.on-map .chapter-switch{bottom:max(14px,env(safe-area-inset-bottom))}}#heroes>.hero-filters{width:fit-content;max-width:calc(100% - 16px);flex-direction:row;flex-wrap:wrap;justify-content:center;gap:5px;padding:0 40px 8px 5px}#heroes .filter-icons{gap:3px;flex-wrap:nowrap}#heroes .filter-icons button{width:33px;height:33px;padding:5px}#heroes .filter-icons svg{width:22px;height:22px}#heroes .rarity-filters>button>span{display:flex;align-items:center;gap:2px;color:#efcf79;font-size:16px}.rarity-filters small{font-size:10px}#heroes #clear-filters{right:2px;bottom:9px;width:32px;height:32px}.hero-stars{color:#ffe59c;letter-spacing:1px;white-space:nowrap;text-shadow:0 1px 3px #271606;font-size:12px;line-height:1.2}.hero-card .card-rarity{background:#10283ddd;padding:3px 5px}.hero-card .card-rarity .hero-stars{font-size:12px}.hero-rarity{display:flex;gap:7px;align-items:center}.hero-display{position:relative}.hero-heading p.hero-rarity{display:flex;font-size:10px;line-height:12px}.hero-switch{position:absolute;top:44%;transform:translateY(-50%);width:44px;height:50px;padding:0;font-size:32px;background:#17334bcc;border:1px solid #aac4d1;border-radius:14px;z-index:3;color:#ffe8b8}.hero-switch.previous{left:2px}.hero-switch.next{right:2px}.hero-switch:disabled{opacity:.25}.team-collection .hero-stars{display:block;flex:none;font-size:11px}.formation-unit .unit-level .hero-stars{font-size:10px}@media(max-width:600px){#heroes>.hero-filters{gap:3px;padding:0 34px 6px 0}#heroes .filter-icons button{width:32px;height:32px;padding:4px}.hero-card .card-rarity .hero-stars{font-size:9px;letter-spacing:0}.hero-switch{width:38px;height:44px;font-size:28px}.hero-switch.previous{left:0}.hero-switch.next{right:0}.team-collection .hero-stars,.formation-unit .unit-level .hero-stars{font-size:8px}}#password-code{display:grid;gap:12px;margin-top:16px}#password-code label{display:grid;gap:8px}#email-code{min-height:48px;background:#10283f;border:1px solid #80a4be;border-radius:10px;color:#fff;font-size:24px;letter-spacing:8px;width:100%;padding:10px 16px}#code-countdown{font-size:13px;color:#ffe5a2;margin-top:12px;font-variant-numeric:tabular-nums}#code-error{color:#ffb4b4}#code-success{color:#b3f5d6}#password-code button{min-height:44px}#heroes>.hero-filters{width:420px;max-width:calc(100% - 24px);display:flex;flex-direction:column;flex-wrap:nowrap;align-items:stretch;gap:12px;padding:0 0 12px;margin:0 auto}#heroes>.hero-filters .filter-icons{width:100%;justify-content:flex-start;align-items:center;flex-wrap:nowrap;gap:8px}#heroes>.hero-filters .filter-label{flex:0 0 56px;color:#b4cbe7;font-size:11px;line-height:1.2;font-weight:600}#heroes>.hero-filters .filter-icons button{flex:0 0 36px;width:36px;height:36px;padding:6px}#heroes>.hero-filters .rarity-filters{padding-right:44px}#heroes #clear-filters{right:0;bottom:12px;width:36px;height:36px}@media(max-width:600px){#heroes>.hero-filters{width:340px;gap:10px;padding-bottom:10px}#heroes>.hero-filters .filter-icons{gap:5px}#heroes>.hero-filters .filter-label{flex-basis:42px;font-size:10px}#heroes>.hero-filters .filter-icons button{flex-basis:32px;width:32px;height:32px;padding:4px}#heroes>.hero-filters .rarity-filters{padding-right:36px}#heroes #clear-filters{bottom:10px;width:30px;height:30px}}@media(max-width:379px){#heroes>.hero-filters .filter-icons button{flex-basis:28px;width:28px;height:28px;padding:3px}#heroes>.hero-filters .filter-icons svg{width:20px;height:20px}#heroes #clear-filters{width:28px;height:28px}#heroes>.hero-filters .rarity-filters{padding-right:34px}}@media(max-height:440px){#heroes>.hero-filters{gap:6px;padding-bottom:6px}#heroes>.hero-filters .filter-icons button{flex-basis:28px;width:28px;height:28px;padding:3px}#heroes #clear-filters{bottom:6px;width:28px;height:28px}}#chat-form .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}#social-friends input,#chat-form input,#social-chat select{color:#e5efff;background:#10283f;border:1px solid #577995;border-radius:8px;padding:8px}@media(max-height:440px){.formation-field{height:100%;min-height:0;max-height:none}.team-modal .team-collection{min-height:0}}:root{--menu-top: calc(76px + env(safe-area-inset-top)) ;--menu-bottom: calc(70px + env(safe-area-inset-bottom)) }.login-scene{position:fixed;inset:0;overflow:hidden;background:#101c30;pointer-events:none}.login-art{position:absolute;inset:0;background:linear-gradient(90deg,#06162955,#11193522,#07102299),url(/assets/campaign-crystal-v094.png) center/cover}.login-scene:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 60%,transparent,#07112177)}#login-scenery{position:absolute;inset:0;width:100%;height:100%}.login-runes{position:absolute;inset:0;overflow:hidden}.login-runes i{position:absolute;left:50%;top:46%;width:650px;height:650px;translate:-50% -50%;border:1px solid #c6a7ff33;border-radius:50%;box-shadow:0 0 80px #a992ff26,inset 0 0 80px #9ae8ff20;animation:login-orbit 70s linear infinite}.login-runes i:before{content:"";position:absolute;inset:30px;border:1px dashed #dcbdff70;border-radius:50%}.login-runes i:nth-child(2){width:750px;height:750px;animation-direction:reverse}.login-runes i:nth-child(3){width:840px;height:840px;border-color:#8ddcf125;animation-duration:110s}@keyframes login-orbit{to{rotate:360deg}}.auth.login-panel{position:relative;z-index:1;height:auto;min-height:100dvh;width:100%;max-width:410px;padding:32px 26px;gap:30px;background:transparent;border:0;box-shadow:none}.login-panel h1.brand{font-family:Georgia,serif;font-size:clamp(32px,8vw,44px);color:#ffe3a3;letter-spacing:5px;text-align:center;text-shadow:0 2px 2px #031524,0 0 30px #bb81ff90}.login-panel form{gap:17px}.login-panel input{min-width:0;min-height:45px}.login-panel button[name=mode]{min-height:48px}.password-field{position:relative;display:flex}.password-field input{width:100%;padding-right:48px}.password-field button{position:absolute;right:4px;top:4px;bottom:4px;width:38px;padding:8px;border:0;background:transparent;color:#c5e9f4}.password-field button svg{width:100%;height:100%}.password-field button[aria-pressed=true]:after{content:"";position:absolute;left:8px;right:8px;top:50%;border-top:2px solid currentColor;rotate:-40deg}.login-language{position:fixed;top:calc(16px + env(safe-area-inset-top));right:16px;z-index:5;display:flex;align-items:flex-start;gap:8px}#language-globe{width:44px;height:44px;padding:9px;border:0;background:transparent;color:#e9f7ff;filter:drop-shadow(0 1px 3px #071121)}#language-globe svg{width:100%;height:100%}.login-language select,.settings-language select{background:#10273e;color:#e8f4ff;border:1px solid #658ba8;border-radius:10px;padding:12px;max-width:100%}.settings-language{display:flex;flex-direction:column;gap:8px;margin-bottom:20px;font-size:13px}.utility-menu button{position:relative}.utility-menu button>span svg{display:block;width:30px;height:30px;margin:0 auto 3px;filter:drop-shadow(0 0 4px #8bd7ee40)}.request-badge{position:absolute;top:-5px;right:-5px;background:#df5361;border:1px solid #ffd1be;color:#fff;border-radius:20px;min-width:18px;height:18px;display:grid;place-items:center;font-weight:700}.request-badge[hidden]{display:none}.hero-modal.full-workspace{position:fixed;inset:var(--menu-top) 0 var(--menu-bottom);margin:0;width:100vw;max-width:none;height:auto;max-height:none;border:0;border-radius:0;background:radial-gradient(ellipse at 80% 0,#315270,#12283d 65%);padding:20px max(18px,calc((100vw - 1120px)/2));display:flex;flex-direction:column;overflow:hidden}.hero-modal.full-workspace:not([open]){display:none}.full-workspace::backdrop{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}.full-workspace .modal-heading{flex:none;margin:0 0 12px}.full-workspace .modal-heading h2{font-size:23px}.full-workspace #hero-modal-content{flex:1;min-height:0;overflow:auto}.social-modal:not(.full-workspace){background:linear-gradient(135deg,#243e58,#101f34);border-color:#81acbf}.friend-row{padding:13px 12px;margin:6px 0;border:1px solid #b1d4e622;border-radius:12px;background:linear-gradient(120deg,#34576b66,#162b4166);box-shadow:0 3px 9px #07172333}.friend-actions button{min-height:35px}#social-friends{max-width:960px;margin:auto;padding-bottom:25px}#social-friends>button{background:linear-gradient(120deg,#b2eadd,#8bc1e9);padding:12px 20px}.friend-avatar{width:55px;height:55px}.friend-identity strong{font-size:15px}.friend-online,.friend-offline{font-size:11px}.arena-defense{padding:14px;margin:16px 0;border:1px solid #66829750;border-radius:12px}.arena-defense h4{margin:0 0 8px}.arena-defense p{font-size:12px;color:#bbccdf}#chat-preview{position:fixed;left:max(10px,calc((100vw - 1600px)/2 + 12px));bottom:calc(var(--menu-bottom) + 8px);width:min(430px,calc(100vw - 100px));max-height:95px;padding:5px 8px;text-align:left;border:0;border-radius:9px;color:#e6f6ff;background:linear-gradient(100deg,#07182660,#07182610);font-weight:400;z-index:9;text-shadow:0 1px 3px #000,0 0 3px #000;overflow:hidden}.preview-line{display:flex;gap:5px;align-items:center;min-width:0;padding:2px 0;font-size:10px;line-height:1.3}.preview-avatar{flex:none;width:24px;height:24px}.preview-line strong{font-size:10px;white-space:nowrap}.preview-line time{color:#c6d3df;font-size:9px}.preview-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.in-battle #chat-preview{display:none}#social-chat{display:flex;flex-direction:column;height:100%;min-height:0;max-width:1060px;margin:auto}.social-modal.full-workspace #hero-modal-content:has(#social-chat){overflow:hidden}#social-chat .appearance-tabs{flex:none;display:flex;flex-wrap:wrap;gap:7px;margin-bottom:12px}#social-chat .appearance-tabs button{min-width:90px;font-size:13px}#chat-general-content{min-height:0;flex:1;display:flex;flex-direction:column;gap:6px}#chat-general-content[hidden],#chat-guild-content[hidden]{display:none}.chat-channel-label,.chat-color-label{float:none;flex:none;font-size:12px;display:flex}.chat-channel-label[hidden]{display:none}.chat-channel-label select{background:#153044;color:#e7f5ff;border-radius:8px;padding:6px}.chat-messages{height:auto;flex:1;min-height:70px;background:linear-gradient(#0d223c88,#0d1c2f88);margin:0;overflow:auto}.chat-messages article{padding:10px 3px}.chat-messages article header{padding:0;background:none;border:0;justify-content:space-between}.message-author{display:flex;align-items:center;gap:8px;padding:0;border:0;background:none;color:#d1f4ff;text-align:left;max-width:85%}.message-author strong{overflow-wrap:anywhere;font-size:13px}.message-author small{font-size:10px;color:#a2bbce}.message-avatar{display:inline-block;flex:none;width:35px;height:35px}.chat-messages p{padding-left:43px}.chat-messages time{white-space:nowrap}.chat-color-label input{width:32px;height:26px}#chat-older{align-self:flex-start}#chat-muted:empty,#social-error:empty{display:none}#chat-form{flex:none;min-height:44px}#private-conversations{display:flex;gap:6px;overflow:auto;flex:none;padding:4px 0}#private-conversations[hidden]{display:none}#private-conversations button{display:flex;align-items:center;gap:7px;padding:4px 8px;flex:none;background:#17354b;color:#e1edff;border-color:#496c8a;font-size:12px}#private-conversations button[aria-pressed=true]{border-color:#aaeed7;background:#2e5363}.team-modal.full-workspace{padding:0;background:#102235}.team-modal.full-workspace .modal-heading{position:absolute;right:12px;top:10px;z-index:5;margin:0}.team-modal.full-workspace .modal-heading h2{display:none}.team-modal.full-workspace #hero-modal-content{display:flex;flex-direction:column;overflow:hidden;gap:0}.team-modal.full-workspace .formation-field{position:relative;flex:1;min-height:200px;max-height:none;height:auto;border:0;border-radius:0;background-position:center 60%;background-size:cover}.formation-field .formation-power{position:absolute;top:10px;left:6%;right:6%;z-index:2;display:grid;grid-template-columns:1fr 35px 1fr;padding:0;pointer-events:none;gap:5px;color:#edfaff;text-shadow:0 2px 4px #001227}.formation-field .formation-power>div{border:0;background:none;box-shadow:none;display:flex;flex-direction:column;align-items:center;padding:0;gap:2px}.formation-field .formation-power strong{font-size:26px;color:#a8f0e5}.formation-field .formation-power>div:last-child strong{color:#ffb39c}.formation-field .formation-power small{font-size:10px;color:#e9f7ff}.formation-field .formation-power>div>span{display:none}.formation-field .formation-power .power-versus{font-family:Georgia,serif;font-size:22px;color:#f3deb0;align-self:center}.formation-side-label{display:none}.formation-divider{top:20%;opacity:.3}.formation-unit{height:25%;width:19%}.formation-unit img{filter:drop-shadow(0 3px 3px #09162390)}.formation-roster-heading{margin:0;padding:9px 16px;background:#142d43}.team-modal.full-workspace .team-collection{flex:none;min-height:95px;height:clamp(100px,22dvh,180px);max-height:none;border-radius:0;border:0;border-top:1px solid #729ca455;grid-template-columns:repeat(auto-fill,minmax(65px,80px));padding:9px 14px;gap:8px;background:#0d2439}.team-collection button{position:relative;height:84px;border:1px solid #5b8798;border-radius:8px;padding:3px;background:linear-gradient(#3c566a,#15293a)}.team-collection button svg{height:65px;max-width:70px;width:100%;object-fit:contain}.team-collection .hero-stars{position:absolute;bottom:2px;left:0;right:0;text-align:center;pointer-events:none}.team-collection .roster-level{position:absolute;top:3px;right:3px;font-size:9px;text-shadow:0 1px 3px #000;color:#fff;background:#0b2336a0;padding:1px 3px;border-radius:3px}.team-collection .team-order{position:absolute;top:24px;right:3px;font-size:12px;padding:0 3px}.team-modal.full-workspace #team-start{margin:0;min-height:47px;align-self:center;width:min(420px,calc(100% - 24px));padding:12px;font-size:14px;margin-block:8px}.team-modal.full-workspace #team-error:empty{display:none}@media(min-width:1000px){.team-modal.full-workspace #hero-modal-content{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(270px,.7fr);grid-template-rows:40px minmax(0,1fr) 65px;padding:20px max(22px,calc((100vw - 1280px)/2));gap:0 15px}.team-modal.full-workspace .formation-field{grid-row:1/4;grid-column:1;height:100%;min-height:0;border-radius:16px;border:1px solid #7a9aad55}.formation-roster-heading{grid-column:2;grid-row:1;padding:8px 4px;background:none}.team-modal.full-workspace .team-collection{grid-column:2;grid-row:2;height:100%;min-height:0;border:0;border-radius:10px}.team-modal.full-workspace #team-start{grid-column:2;grid-row:3;width:100%}.team-modal.full-workspace #team-error{grid-column:2;grid-row:3;align-self:start}.formation-unit{height:22%;width:20%}}@media(max-width:600px){:root{--menu-top: calc(66px + env(safe-area-inset-top)) ;--menu-bottom: calc(66px + env(safe-area-inset-bottom)) }.hero-modal.full-workspace{padding:12px 10px}.hero-modal.full-workspace.team-modal{padding:0}.full-workspace .modal-heading h2{font-size:20px}.friend-row{padding:10px 7px}.friend-avatar{width:44px;height:44px}.friend-identity strong{font-size:12px}.friend-identity{gap:7px}.friend-actions button{font-size:10px;padding:7px}.friend-online,.friend-offline{font-size:9px}.social-modal.full-workspace .chat-messages{height:auto}.chat-messages p{font-size:12px;padding-left:37px}.message-avatar{width:29px;height:29px}.message-author{gap:5px}.message-author strong{font-size:11px}.message-author small{font-size:9px}#social-chat .appearance-tabs{gap:4px}#social-chat .appearance-tabs button{min-width:0;flex:1;padding:8px 5px;font-size:11px}.team-modal.full-workspace .formation-field{min-height:180px;flex:1}.formation-field .formation-power{left:2%;right:9%;top:10px}.formation-field .formation-power strong{font-size:23px}.formation-unit{height:26%;width:24%}.formation-unit .unit-level{font-size:9px}.team-modal.full-workspace .team-collection{height:clamp(100px,22dvh,155px);min-height:95px;grid-template-columns:repeat(auto-fill,minmax(57px,1fr));gap:5px;padding:7px}.team-collection button{height:77px;padding:2px}.team-collection button svg{height:61px}.team-collection .roster-level{font-size:8px}.team-collection .hero-stars{font-size:9px}.formation-roster-heading{font-size:10px;padding:7px 10px}.team-modal.full-workspace #team-start{font-size:13px;min-height:43px;margin-block:6px}.auth.login-panel{max-width:380px;padding:28px 23px}.login-language{top:calc(12px + env(safe-area-inset-top));right:12px}.login-runes i{width:500px;height:500px}.login-runes i:nth-child(2){width:600px;height:600px}.login-runes i:nth-child(3){width:700px;height:700px}#chat-preview{font-size:9px;max-height:82px}.preview-line,.preview-line strong{font-size:9px}.preview-line time{font-size:8px}.preview-avatar{width:21px;height:21px}}@media(max-height:540px){:root{--menu-top: calc(52px + env(safe-area-inset-top)) ;--menu-bottom: calc(48px + env(safe-area-inset-bottom)) }.login-panel form{gap:7px}.auth.login-panel{gap:12px;padding:15px 25px}.login-panel button[name=mode]{min-height:35px}.login-panel input{min-height:32px}.team-modal.full-workspace #hero-modal-content{display:flex}.team-modal.full-workspace .formation-field{flex:1;min-height:100px}.team-modal.full-workspace .team-collection{height:88px;min-height:0}.formation-field .formation-power strong{font-size:16px}.formation-field .formation-power small{font-size:8px}.formation-roster-heading{display:none}.team-modal.full-workspace #team-start{min-height:30px;padding:6px;margin:4px}#chat-preview{max-height:55px}}@media(prefers-reduced-motion:reduce){.login-runes i{animation:none}}.language-choices{display:flex;flex-wrap:wrap;gap:6px}.language-choices button{display:flex;align-items:center;gap:9px;min-height:40px;padding:8px 10px;font-size:12px;background:#15304a;color:#e9f5ff;border-color:#547f95}.language-choices button[aria-pressed=true]{border-color:#b8eddb;background:#2b5265}.language-flag{display:block;width:30px;height:20px;flex:none;border-radius:2px;box-shadow:0 1px 4px #0007}.login-language .language-choices{width:225px;flex-direction:column;padding:0;border:0;border-radius:0;background:transparent}.login-language .language-choices button{width:100%;text-align:left;border:0;border-radius:0;background:transparent;text-shadow:0 1px 3px #000,0 0 6px #071121}.login-language .language-choices button[aria-pressed=true]{background:transparent;color:#ffe3a3}.login-panel label{color:#f0f6ff;text-shadow:0 1px 3px #000,0 0 6px #071121}@media(max-width:1100px){.campaign-map .chapter-switch{left:auto;right:14px;transform:none;display:grid;grid-template-columns:28px 28px;gap:4px 8px;bottom:20px;max-width:80px;justify-content:center}.chapter-switch #chapter-label{grid-column:1/3;grid-row:1;font-size:9px;padding:4px;white-space:nowrap}.chapter-switch #chapter-prev{grid-column:1;grid-row:2}.chapter-switch #chapter-next{grid-column:2;grid-row:2}.chapter-switch #campaign-current{grid-column:1/3;grid-row:3;justify-self:center}.chapter-switch button{min-width:28px;width:28px;padding:3px}}.player-name-line{display:flex;align-items:center;gap:8px;min-width:0}.player-name-line>strong,.friend-profile-name h3{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-level{display:inline-flex;align-items:center;gap:4px;flex:none;color:#b7ddff;font-variant-numeric:tabular-nums}.account-level svg{width:21px;height:21px;flex:none;filter:none}.player-identity .account-level{padding:0;font-size:12px}.friend-profile-name{justify-content:center}.friend-profile-name h3{margin:12px 0;font-size:19px}.friend-profile-name .account-level{font-size:15px}.login-language #login-language-options{position:absolute;top:48px;right:0}.login-language{gap:0;-webkit-tap-highlight-color:transparent}@media(max-width:600px){.player-name-line{gap:5px}.player-identity .account-level{font-size:10px;padding:0}.player-identity .account-level svg{width:17px;height:17px}}.login-language .language-choices{gap:3px}.login-language .language-choices button{min-height:28px;padding:4px 8px;line-height:16px}.login-language .language-flag{width:24px;height:16px}.utility-menu button{background:transparent;border:0;box-shadow:none;text-shadow:0 1px 3px #071121}.login-language .language-choices button{justify-content:flex-end;text-align:right}#chat-preview{max-height:145px}.team-modal.full-workspace .team-collection{height:clamp(150px,27.5dvh,230px)}.formation-unit.filled img{animation:formation-ready 3.2s ease-in-out infinite;transform-origin:50% 100%}.formation-unit.filled:nth-of-type(2n) img{animation-delay:-1.3s}.formation-unit.dragging img{animation-play-state:paused}@keyframes formation-ready{0%,to{transform:translateY(0) rotate(-.3deg)}50%{transform:translateY(-3px) rotate(.4deg)}}@media(max-width:600px){.team-modal.full-workspace .team-collection{height:clamp(125px,27.5dvh,194px)}#chat-preview{max-height:119px}}@media(prefers-reduced-motion:reduce){.formation-unit.filled img{animation:none}}.server-selection{position:relative;z-index:1;width:min(520px,calc(100vw - 36px));max-height:calc(100dvh - 48px);overflow:auto}.server-selection .brand{font-size:clamp(28px,6vw,46px);margin-bottom:22px}.server-selection h2{font:600 20px Georgia;text-align:center;color:#ffe5ad}#server-list{display:flex;flex-direction:column;gap:22px;margin:26px 0}.server-entry{display:flex;align-items:center;gap:18px;text-align:left;padding:15px 8px;background:transparent;border:0;border-radius:0;color:#edf4ff;border-bottom:1px solid #d4bd6a40;text-shadow:0 2px 5px #000}.server-entry[aria-pressed=true]{color:#ffde96;border-bottom-color:#ffde96;filter:drop-shadow(0 0 6px #e9c07140)}.server-entry:disabled{opacity:.5}.server-description{display:flex;flex-direction:column;gap:11px}.server-description>strong{font-size:17px}.server-character{display:flex;align-items:center;gap:10px;font-size:12px}.server-avatar{width:38px;height:38px;display:inline-flex}.server-avatar>svg,.server-avatar>img{width:100%;height:100%;object-fit:contain}.server-character .account-level{display:inline-flex;gap:5px}.server-character .account-level svg{width:18px}.server-selection #server-enter{width:100%}.bottom-nav [data-tab=challenges] svg{width:24px;height:24px}.city-buildings button:has(.building-art){background:transparent;border:0;box-shadow:none;padding:0;text-shadow:0 2px 4px #000,0 0 8px #000}.building-art{width:clamp(82px,10vw,135px);height:100px;object-fit:contain;filter:drop-shadow(0 5px 7px #06132080)}.challenges .building-art{width:clamp(145px,20vw,240px);height:clamp(145px,24vh,240px)}@media(max-width:600px)and (max-height:650px){#city .building-art{height:75px;width:78px}}.challenges-backdrop{background-image:url(/assets/challenges-marsh-v0108.png)}#challenges-scenery{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.server-selection #server-back{display:block;margin:14px auto;background:none;border:0;text-shadow:0 2px 4px #000}.hero-modal:has(#profile-options){width:min(410px,calc(100vw - 36px));border:0;border-radius:0;background:linear-gradient(90deg,#100c1688,#100c1640),url(/assets/profile-study-v0103.png) center/cover;box-shadow:0 15px 55px #0009}#profile-options{display:flex;flex-direction:column;gap:5px}#profile-options .profile-preview{margin:0 auto;width:72px;height:72px}#profile-options .profile-name{justify-content:center}#profile-options h4{margin:8px 0 2px;color:#e8cf93;font-size:12px;letter-spacing:1px}#profile-options>button:not(.profile-preview){background:transparent;border:0;border-radius:0;border-bottom:1px solid #c9d5e52b;text-align:left;min-height:36px;color:#e7efff;padding:7px 4px}#profile-options>button:disabled{opacity:.5}#profile-options .settings-toggle{padding:10px 4px;margin:0}#profile-options .profile-setting{display:flex;align-items:center;gap:12px}#profile-options .profile-setting svg{width:23px;height:23px}#profile-options .profile-setting span:last-child{margin-left:auto;font-size:11px;color:#e8cf93}#profile-options .account-level{display:flex;align-items:center;gap:5px;font-size:13px}#profile-options .account-level svg{width:22px;height:22px}#profile-options #settings-message:empty{display:none}.hero-modal.full-workspace:has(#social-friends){background:linear-gradient(90deg,#071526df,#10232cd4),url(/assets/city-panorama-v091.png) center/cover;border:0}#social-friends{width:min(780px,100%);margin:0 auto}#social-friends h3{color:#e8cf93;font-family:Georgia;font-size:17px;letter-spacing:.5px}.friend-row{border-bottom-color:#b6c6ce32}.friend-actions button,.friend-icon{display:inline-flex;align-items:center;justify-content:center;background:transparent;border:0;border-radius:0;width:44px;height:44px;padding:7px;color:#d9eaf2;box-shadow:none}.friend-actions button svg,.friend-icon svg{width:28px;height:28px}.friend-actions button[data-friend-action=remove]{color:#e39d9d}.friend-actions button[data-friend-action=accept]{color:#a3e5c9}.friend-icon:hover,.friend-actions button:hover{filter:drop-shadow(0 0 5px #92e5d9)}.friend-actions button[data-friend-action=remove] svg{width:26px}#friend-add-form:not([hidden]){display:flex;align-items:end;gap:12px}#friend-add-form label{flex:1}.formation-unit{--ready-facing: 1}.formation-unit.foe{--ready-facing: -1}.formation-unit.filled img{animation:formation-ready 3.2s ease-in-out infinite}@keyframes formation-ready{0%,to{transform:scaleX(var(--ready-facing)) translateY(0) rotate(-.3deg)}50%{transform:scaleX(var(--ready-facing)) translateY(-3px) rotate(.4deg)}}@media(max-width:600px){.hero-modal:has(#profile-options){padding:16px;max-height:calc(100dvh - 24px)}.server-entry{gap:12px}.server-description>strong{font-size:15px}.friend-actions{flex-wrap:nowrap}}@media(prefers-reduced-motion:reduce){.formation-unit.filled img{animation:none;transform:scaleX(var(--ready-facing))}}#social-friends>button.friend-icon{background:transparent;border:0;padding:7px;color:#e6d6a6;width:48px;height:48px}#social-friends .friend-row{background:none;box-shadow:none;border:0;border-bottom:1px solid #b6c6ce32;border-radius:0;padding:13px 0}#profile-options .profile-name h3{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#profile-options .profile-name .account-level{flex:none}.server-character{min-width:0}.server-character b{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.server-character .account-level{flex:none}.server-description{min-width:0;flex:1}@media(min-width:1000px){.team-modal.full-workspace .team-collection{height:100%;min-height:0}}@media(min-width:601px)and (max-width:999px)and (max-height:540px){.team-modal.full-workspace #hero-modal-content{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(200px,1fr);grid-template-rows:35px minmax(0,1fr) 42px;gap:5px 12px;padding:0 12px}.team-modal.full-workspace .formation-power{grid-column:1;grid-row:1}.team-modal.full-workspace .formation-field{grid-column:1;grid-row:2/4;height:100%;min-height:0;max-height:none}.team-modal.full-workspace .team-collection{grid-column:2;grid-row:2;height:100%;min-height:0;padding:5px}.team-modal.full-workspace #team-start{grid-column:2;grid-row:3;min-height:0;margin:0;padding:7px}.team-modal.full-workspace #team-error{grid-column:2;grid-row:1;margin:0}}#city .city-buildings button,#challenges .city-buildings button{transform:none;display:block;padding:0;background:transparent;border:0;border-radius:0;box-shadow:none;touch-action:manipulation}#city .city-buildings .building-art,#challenges .city-buildings .building-art{display:block;width:100%;height:100%;object-fit:contain}.building-label{position:absolute;transform:translate(-50%);font:600 clamp(11px,2.7vw,15px) Georgia,serif;color:#fff0cf;opacity:.84;text-align:center;white-space:nowrap;background:transparent;padding:0;text-shadow:0 2px 3px #050715,0 0 6px #050715;pointer-events:none}.game-shell>.utility-menu{top:calc((var(--menu-top) + 100dvh - var(--menu-bottom))/2);right:max(8px,env(safe-area-inset-right));transform:translateY(-50%);gap:10px}.game-shell>.utility-menu button{background:none;border:0;box-shadow:none;color:#ffe3aa;text-shadow:0 1px 2px #030714,0 0 5px #030714,1px 0 2px #030714}.game-shell>.utility-menu button>span svg{filter:drop-shadow(0 1px 1px #050714) drop-shadow(0 0 3px #050714)}.hero-modal:has(#profile-options){padding:16px 20px;max-height:min(620px,calc(100dvh - 36px));color:#fff0db;text-shadow:0 1px 3px #100912}#profile-servers.server-selection{width:100%;max-height:none}#profile-servers h2{font-size:19px}.hero-modal:has(#profile-servers){width:min(430px,calc(100vw - 36px));background:linear-gradient(#100c16a0,#100c1655),url(/assets/profile-study-v0103.png) center/cover;border:0}.story-intro{position:fixed;inset:0;background:linear-gradient(#0b091533,#0b091544),url(/assets/campaign-aurora-v094.png) center/cover}#story-continue{width:100%;height:100%;padding:24px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:none;border:0;border-radius:0;color:#ffe1a1;text-shadow:0 2px 8px #000}#story-continue .brand{font-size:clamp(24px,6vw,44px)}#story-continue h1{font:600 clamp(42px,9vw,72px) Georgia,serif}#story-skip{position:absolute;top:max(20px,env(safe-area-inset-top));right:20px;background:none;border:0;color:#ffe1a1;text-shadow:0 2px 6px #000;animation:story-skip-glow 1.8s ease-in-out infinite}#story-error{position:absolute;bottom:25px;left:20px;right:20px;color:#ffc2bd;text-align:center}@keyframes story-skip-glow{50%{opacity:.55;text-shadow:0 0 12px #ffe1a1}}#chat-preview{max-height:175px}.preview-line,.preview-line strong{font-size:12px}.preview-line{padding:3px 0}.preview-line time{font-size:10px}@media(max-width:600px){.game-shell>.utility-menu{gap:8px;right:max(5px,env(safe-area-inset-right))}.game-shell>.utility-menu button{font-size:9px;min-height:48px}#chat-preview{max-height:163px}.preview-line,.preview-line strong{font-size:11px}}@media(prefers-reduced-motion:reduce){#story-skip{animation:none}}.login-language .language-choices button{display:grid;grid-template-columns:24px minmax(0,1fr);gap:10px;width:100%;justify-content:initial;text-align:right}.login-language .language-choices{width:145px}.game-shell.heroes-menu #chat-preview{display:none}.hero-modal:has(#profile-options),.hero-modal:has(#social-friends),.hero-modal:has(#character-deletion){border:1px solid #c8a46fc9;border-radius:16px;box-shadow:0 0 0 2px #18111ac9,0 15px 45px #0009}.hero-modal:has(#profile-options):before,.hero-modal:has(#social-friends):before{content:"";position:absolute;inset:5px;border:1px solid #d1b37b50;border-radius:12px;pointer-events:none}.hero-modal:has(#profile-options) #hero-modal-close,.hero-modal:has(#social-friends) #hero-modal-close,.hero-modal:has(#character-deletion) #hero-modal-close{background:none;border:0;box-shadow:none;color:#ffe5b5;font-size:22px}.hero-modal.social-modal:has(#social-friends){width:min(390px,calc(100vw - 26px));height:min(500px,calc(100dvh - var(--menu-top) - var(--menu-bottom) - 24px));max-height:calc(100dvh - var(--menu-top) - var(--menu-bottom) - 24px);padding:18px 16px;background:linear-gradient(#0b132657,#0b132677),url(/assets/friends-chamber-v0104.png) center/cover;color:#f0e8d6;text-shadow:0 1px 3px #000;overflow:hidden}.hero-modal.social-modal:has(#social-friends) #hero-modal-content{max-height:calc(100% - 55px);overflow:auto}#social-friends{width:100%}#social-friends h3{margin:12px 0 7px}#social-friends .friend-row{padding:9px 0}#city .city-buildings button,#challenges .city-buildings button{-webkit-tap-highlight-color:transparent;outline:0}#city .city-buildings button:hover,#city .city-buildings button:active,#challenges .city-buildings button:hover,#challenges .city-buildings button:active{filter:none;background:none;box-shadow:none}.building-label{transform:translate(-50%,-100%)}.city-heading{background:none;border:0;padding:0;text-shadow:0 2px 4px #000}.city-heading .eyebrow{display:none}.campaign-map .map-heading{background:none;border:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none;text-shadow:0 2px 4px #000}.map-node .node-name{background:none!important;border:0;box-shadow:none;text-shadow:0 2px 3px #000,0 0 5px #000}.campaign-return{position:absolute;z-index:4;right:12px;top:114px;max-width:165px;padding:8px 4px;background:none;border:0;box-shadow:none;color:#ffe3a0;font-size:12px;text-align:right;text-shadow:0 2px 4px #000;animation:return-current-glow 1.8s ease-in-out infinite}.campaign-return[hidden]{display:none}@keyframes return-current-glow{50%{opacity:.6;text-shadow:0 0 8px #f3d491,0 2px 3px #000}}.hero-modal:has(#character-deletion){width:min(390px,calc(100vw - 30px));background:linear-gradient(#100b1599,#100b1566),url(/assets/profile-study-v0103.png) center/cover}.deletion-warning{color:#ffdbbb;line-height:1.5;font-size:13px;margin-bottom:15px}#character-delete-form{display:flex;flex-direction:column;gap:12px}#character-delete-form label{display:flex;flex-direction:column;gap:7px;font-size:12px}#character-delete-form input{width:100%}#profile-options #profile-delete{color:#ffc2b7}#delete-confirm{background:linear-gradient(#b86158,#833e40);color:#fff0dc}#delete-back{margin-top:14px;background:none;border:0;color:#ffe3ac}@media(prefers-reduced-motion:reduce){.campaign-return{animation:none}}.report-message{background:none!important;border:0!important;color:#ddc787;padding:8px;min-width:44px;min-height:44px;flex-shrink:0}.report-message svg{width:20px;height:20px}.moderation-report{padding:16px 0;border-bottom:1px solid #c8aa5940;overflow-wrap:anywhere}.moderation-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.moderation-actions button{min-height:44px}.moderation-actions label{width:100%}.community-rules{padding-left:20px;line-height:1.5}.community-rules li{margin:12px 0}#report-form textarea{box-sizing:border-box;width:100%;padding:10px;font:inherit;resize:vertical}#registration-code-form .settings-toggle{align-items:center;text-align:left}#registration-code-form .settings-toggle input{width:22px;min-width:22px;min-height:22px}#profile-delete-global{color:#ffc6c6}:is(#global-delete-request,#global-delete-code,#privacy-export,#report-form,#community-accept){display:grid;gap:12px;margin-block:16px}:is(#global-delete-request,#global-delete-code,#privacy-export,#report-form) label{display:grid;gap:7px;font-size:13px}:is(#global-delete-request,#global-delete-code,#privacy-export,#report-form) input,:is(#report-form,.moderation-actions) select{box-sizing:border-box;width:100%;min-height:44px;padding:10px 12px;border:0;border-bottom:1px solid #c8aa5980;border-radius:0;background:#101420ad;color:#f6efe1;font:inherit;font-size:16px}:is(#global-delete-request,#global-delete-code,#privacy-export,#report-form,#community-accept) button{min-height:48px;width:100%}#hero-modal-content:has(#global-delete-code)>button{display:block;width:100%;margin-top:12px}.hero-modal:has(:is(#global-delete-request,#global-delete-code,#privacy-export,#moderation-reports,#report-form,#community-accept)){background:linear-gradient(#100c16bc,#100c16c9),url(/assets/profile-study-v0103.png) center/cover;text-shadow:0 1px 3px #000}.hero-modal:has(:is(#global-delete-request,#global-delete-code,#privacy-export,#moderation-reports,#report-form,#community-accept)) #hero-modal-close{background:none;border:0;box-shadow:none;color:#ffe5b5}.login-panel:has(#registration-code-form){gap:12px;padding-block:20px}.login-panel:has(#registration-code-form) .brand{font-size:clamp(27px,8vw,40px);margin:8px 0}.login-panel:has(#registration-code-form) :is(h2,p){margin-block:4px}#registration-code-form .settings-toggle,#community-accept .settings-toggle{display:flex;flex-direction:row;gap:12px}#registration-code-form .settings-toggle input{box-sizing:border-box;height:22px;padding:0;flex-shrink:0}#registration-back{min-height:44px}.player-header,.bottom-nav{background:repeating-linear-gradient(112deg,#fff3 0 1px,transparent 1px 27px),linear-gradient(110deg,#1a1b20,#25242a 48%,#17191e);border-color:#b39860a0;color:#f4e2b6;box-shadow:0 2px 9px #0007}.player-header{background:repeating-linear-gradient(112deg,#ffffff03 0 1px,transparent 1px 27px),linear-gradient(110deg,#1a1b20,#25242a 48%,#17191e);border-bottom:1px solid #b39860a0}.bottom-nav{background:repeating-linear-gradient(112deg,#ffffff04 0 1px,transparent 1px 27px),linear-gradient(#2b292c,#181a1f);border-top:1px solid #b39860a0}.bottom-nav button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-align:center}.bottom-nav button>span{display:flex;align-items:center;justify-content:center;margin:0 auto}.bottom-nav button,.bottom-nav button.selected{background:none;border:0;box-shadow:none;color:#b9b4a7}.bottom-nav button.selected{color:#ffdea0;box-shadow:inset 0 2px #edca83;text-shadow:0 0 12px #ba86385c}.game-shell>.utility-menu,.game-shell>.utility-menu button,.game-shell>.utility-menu button>span,.game-shell>.utility-menu button>span svg{filter:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}.game-shell>.utility-menu button{color:#ffe3aa;text-shadow:0 1px 2px #14100b;isolation:isolate}.game-shell>.utility-menu button>span{color:#ffe3aa}.request-badge{position:absolute;top:0;right:0;background:#e4b858!important;color:#23140b!important;border:1px solid #fff0bd;border-radius:50%;min-width:18px;padding:2px 4px;line-height:16px;box-sizing:border-box;font-size:12px;font-weight:800;animation:request-alert 1.35s ease-in-out infinite}.request-badge[hidden]{display:none!important}@keyframes request-alert{50%{opacity:.45}}#server-list{gap:5px;margin:12px 0}.server-entry{padding:9px 10px;min-height:58px;filter:none;border-bottom-color:#dac69f35;position:relative}.server-description{gap:5px}.server-entry[aria-pressed=true]{color:#ffedb4;border-left:3px solid #f4cf70;border-bottom:1px solid #f4cf70;filter:none;text-shadow:0 0 8px #ab8135,0 1px 2px #000}.server-entry[aria-pressed=true]:after{content:"✓";color:#fff1c6;margin-left:auto;font-size:22px}.login-language .language-choices{width:150px}.login-language .language-choices button{grid-template-columns:24px max-content;justify-content:start;text-align:left;gap:7px;padding-inline:6px}.hero-modal:has(:is(#profile-options,#profile-account-options,#password-change,#password-code,#settings-language,#profile-appearance-options,#character-deletion,#global-delete-request,#global-delete-code)){width:min(390px,calc(100vw - 30px));border:1px solid #c8a46fc9;border-radius:16px;background:linear-gradient(#100c163d,#100c1690),var(--profile-image,url(/assets/profile-hearth-v0106.png)) center/cover;box-shadow:0 0 0 2px #18111ac9,0 15px 45px #0009;color:#fff0db;text-shadow:0 1px 3px #000;max-height:calc(100dvh - 30px)}.hero-modal:has(:is(#profile-options,#profile-account-options,#password-change,#password-code,#settings-language,#profile-appearance-options)):before{content:"";position:absolute;inset:5px;border:1px solid #d1b37b50;border-radius:12px;pointer-events:none}.hero-modal:has(:is(#profile-options,#profile-account-options,#password-change,#password-code,#settings-language,#profile-appearance-options,#friend-removal,.friend-profile,#blocked-players)) #hero-modal-close{background:none;border:0;box-shadow:none;color:#ffe5b5}#profile-account-options{display:flex;flex-direction:column;gap:14px}#profile-account-options button,.appearance-tabs button,#appearance-back,#password-back,#code-back,#settings-back{background:none;border:0;color:#ffe8c0;min-height:44px;box-shadow:none}#profile-account-options #profile-delete,#profile-account-options #profile-delete-global{color:#ffc2b7}.appearance-tabs{gap:6px}.appearance-tabs button{padding:8px 9px;flex:1}.appearance-tabs button[aria-pressed=true]{border-bottom:2px solid #e2bd76}.appearance-options button{background:none;border:0;box-shadow:none;position:relative;min-height:96px}.appearance-options button:is(:hover,:active,:focus){background:none;border:0;box-shadow:none;filter:none}.appearance-options button[aria-pressed=true]{outline:none;color:#ffe4a4;background:none;border:0;box-shadow:none;filter:none}.appearance-options button[aria-pressed=true]:after{content:"✓";position:absolute;left:6px;top:8px;color:#ffe4a4}.appearance-options .cosmetic-locked>:is(.framed-avatar,span:not(.cosmetic-lock)){opacity:.32;filter:none}.cosmetic-lock{position:absolute;right:6px;top:8px;color:#c9b98b;font-size:20px}.background-thumb{width:100%;height:85px;object-fit:cover;border-radius:4px}#profile-appearance-options:has(.background-thumb) .appearance-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}#appearance-lock-hint{color:#ffe2a0;font-size:14px;text-align:center}.hero-modal.social-modal:has(:is(#social-friends,#friend-removal,#blocked-players,.friend-profile)){width:min(390px,calc(100vw - 26px));border:1px solid #c8a46fc9;border-radius:16px;background:linear-gradient(#0b13264d,#0b132688),url(/assets/friends-chamber-v0104.png) center/cover;color:#f0e8d6;box-shadow:0 0 0 2px #18111ac9,0 15px 45px #0009;text-shadow:0 1px 3px #000}.hero-modal.social-modal#hero-modal:has(.friend-profile){background:linear-gradient(#100c164d,#100c1688),var(--player-profile-image,url(/assets/profile-hearth-v0106.png)) center/cover}.hero-modal.social-modal:has(:is(#friend-removal,#blocked-players,.friend-profile)):before{content:"";position:absolute;inset:5px;border:1px solid #d1b37b50;border-radius:12px;pointer-events:none}.friends-toolbar{display:flex;align-items:center;justify-content:space-between;gap:4px;margin-bottom:12px}.friends-toolbar .friend-icon{position:relative;min-width:44px;min-height:44px;filter:none;color:#e6d6a6}.friends-toolbar .friend-icon[aria-pressed=true]{color:#fff3cd;border-bottom:2px solid #e2bd76}.friends-toolbar svg{width:25px;height:25px}:is(#friend-removal,.friend-profile) .profile-actions button,#blocks-back,#blocked-players button{background:none;border:0;box-shadow:none;color:#f1dab2;min-height:44px}.friend-profile .profile-actions{flex-wrap:wrap}.campaign-return{top:50%;right:calc(max(8px,env(safe-area-inset-right)) + 52px);transform:translateY(-50%);width:90px;max-width:25vw;padding:10px 5px;background:linear-gradient(#27212bd6,#16121cba);border:1px solid #e2bd76;border-radius:8px;box-shadow:0 0 0 2px #241926a0;color:#ffe9b5;font:700 14px/1.3 Georgia,serif;text-align:center}@media(prefers-reduced-motion:reduce){.request-badge{animation:none}}.cosmetic-lock svg{width:18px;height:18px}.bottom-nav button>span svg{width:25px;height:25px;display:block;overflow:visible}.bottom-nav button.selected>span{animation:nav-emblem 2.4s ease-in-out infinite}.bottom-nav .nav-sword-a,.bottom-nav .nav-sword-b{transform-origin:12px 16px}.bottom-nav .selected .nav-sword-a{animation:nav-sword-left 1.7s ease-in-out infinite}.bottom-nav .selected .nav-sword-b{animation:nav-sword-right 1.7s ease-in-out infinite}@keyframes nav-emblem{50%{transform:translateY(-2px);opacity:.75}}@keyframes nav-sword-left{0%,to{transform:rotate(-12deg)}50%{transform:rotate(8deg)}}@keyframes nav-sword-right{0%,to{transform:rotate(12deg)}50%{transform:rotate(-8deg)}}.document-hidden .bottom-nav :is(span,.nav-sword-a,.nav-sword-b){animation-play-state:paused!important}@media(prefers-reduced-motion:reduce){.bottom-nav :is(span,.nav-sword-a,.nav-sword-b){animation:none!important}}#game-news{background:none;border:0;box-shadow:none;color:#f2d69c;font-size:10px;padding:5px;flex:none;min-height:44px}.news-modal{background:linear-gradient(#101626db,#101626ec),url(/assets/profile-observatory-v0106.png) center/cover}#release-notes article{padding:8px 0 14px;border-bottom:1px solid #d5b3774a}#release-notes h3{font:700 21px Georgia,serif;color:#ffdfa1}#release-notes ul{padding-left:20px;font-size:13px;line-height:1.7;color:#f1e2cb}.hero-modal.archive-modal{background:linear-gradient(#111725aa,#111725dd),url(/assets/profile-observatory-v0106.png) center/cover;color:#fff0cc}.archive-modal button{background:none;border:0;box-shadow:none;color:#f2d79c;filter:none}#atlas-menu{display:flex;justify-content:center;align-items:center;min-height:45dvh}#atlas-archive{font:700 28px Georgia,serif;min-height:64px}#hero-archive{height:100%;display:flex;flex-direction:column;gap:12px}.archive-filters{flex:none;display:flex;flex-direction:column;gap:14px}.archive-filters .filter-icons{flex-wrap:wrap;gap:5px}.archive-filters .filter-label{width:100%;font-size:12px}.archive-filters button{min-width:36px;min-height:38px;padding:4px}.archive-filters button[aria-pressed=true]{color:#fff2c4;border-bottom:2px solid #dfb76d}.archive-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;overflow-y:auto;align-content:start;min-height:0;padding:8px 0}.archive-card{display:flex;flex-direction:column;align-items:center;gap:5px;padding:4px;min-height:106px;font-size:12px}.archive-card>svg{width:100%;max-width:78px;height:auto}.archive-card.unobtained>svg{opacity:.3}.archive-card.unobtained>strong{color:#adadaf}#archive-detail{display:flex;flex-direction:column;min-height:100%}.archive-hero-heading{display:flex;align-items:center;justify-content:center;gap:8px;font-size:12px}.archive-hero-heading>svg{width:24px;height:24px}.archive-display{height:38dvh;min-height:220px;flex:none}.archive-display .full-portrait{position:relative;width:100%;height:100%;max-height:none;min-height:0;flex:auto;touch-action:pan-y;overflow:hidden}.archive-display .full-portrait canvas{position:absolute;inset:0;width:100%;height:100%}.archive-display .hero-idle{position:absolute;inset:0;display:block;animation-play-state:running}.archive-display :is(.weapon-glow,.armor-glow){animation-play-state:running}.document-hidden .archive-display :is(.hero-idle,.weapon-glow,.armor-glow){animation-play-state:paused}#archive-detail p{font-size:14px;line-height:1.65}#archive-detail h3{font-size:15px;color:#ffe4a6}.hero-modal.pvp-modal{background:linear-gradient(#131620bb,#141621ec),url(/assets/friends-chamber-v0104.png) center/cover;color:#fcecc8}.pvp-modal button{background:none;border:0;box-shadow:none;color:#ffe0a5;min-height:44px;filter:none}#arena-modes{display:flex;align-items:center;justify-content:center;min-height:45dvh}#arena-main-mode{font:700 25px Georgia,serif}.arena-standing,.arena-actions{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:10px 0 18px}.arena-standing{font:700 20px Georgia,serif}.arena-opponents{display:flex;flex-direction:column;gap:10px}.arena-opponent{display:flex;align-items:center;gap:12px;width:100%;text-align:left;border-bottom:1px solid #d2b8774a!important;padding:12px 0}.arena-opponent-avatar{width:46px;height:46px;flex:none}.arena-opponent-info{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}.arena-opponent-info strong{font-size:15px;overflow:hidden;text-overflow:ellipsis}.arena-opponent-info small{font-size:12px}.arena-defense-preview{display:flex;justify-content:center;gap:7px;min-height:150px;align-items:center}.arena-defense-preview>span{display:flex;flex-direction:column;align-items:center;width:18%}.arena-defense-preview img{width:100%;height:130px;object-fit:contain}.defense-formation .formation-power>.power-versus,.defense-formation .formation-power>div:last-child{visibility:hidden}.arena-defense{display:flex;gap:7px;justify-content:center}.defense-portrait{display:flex;flex-direction:column;align-items:center;width:48px;gap:4px}.defense-portrait svg{width:48px;height:48px}.defense-portrait small{font-size:10px}.hero-modal.arena-result-modal{width:calc(100vw - 26px);max-height:calc(100dvh - 24px);border:1px solid #d7b875;border-radius:14px}.arena-point-change{font-size:20px;color:#ffe3a1;text-align:center}.arena-stat-team{padding:10px 0}.arena-stat-team+.arena-stat-team{border-top:1px solid #c6a65f77}.arena-stat-row{display:grid;grid-template-columns:55px 1fr;gap:10px;align-items:center;margin:10px 0}.arena-stat-portrait{display:flex;flex-direction:column;align-items:center;gap:3px;text-align:center}.arena-stat-portrait>svg,.arena-stat-portrait>img{width:48px;height:48px;object-fit:contain}.arena-stat-portrait small{font-size:10px}.arena-stat{display:grid;grid-template-columns:1fr auto;gap:3px;font-size:10px;margin:4px 0}.arena-stat meter{grid-column:1/-1;width:100%;height:8px}.arena-stat meter::-webkit-meter-bar{background:#292634;border:0;border-radius:3px}.arena-stat.damage meter::-webkit-meter-optimum-value{background:#eeab75}.arena-stat.received meter::-webkit-meter-optimum-value{background:#cf7983}.arena-stat.healing meter::-webkit-meter-optimum-value{background:#83d3b4}.arena-stat.damage meter::-moz-meter-bar{background:#eeab75}.arena-stat.received meter::-moz-meter-bar{background:#cf7983}.arena-stat.healing meter::-moz-meter-bar{background:#83d3b4}#arena-result-confirm{display:block;margin:12px auto 0}.rank-badge{display:inline-flex;width:32px;height:32px;flex:none;vertical-align:middle;align-items:center;justify-content:center}.rank-badge svg{display:block;width:100%;height:100%;overflow:visible;filter:none}#player-rank{display:flex;flex:none;align-items:center;margin-right:0}#player-rank .rank-badge{width:26px;height:26px}.player-name-line{gap:4px;align-items:center}.player-identity{min-width:0}.player-name-line #player-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rank-spark{transform-box:fill-box;transform-origin:center;animation:rank-glint 2s ease-in-out infinite}.spark-1{animation-delay:.4s}.spark-2{animation-delay:.8s}.spark-3{animation-delay:1.2s}.podium-1 svg{animation:rank-radiance 2.8s ease-in-out infinite}.rank-rays{transform-origin:40px 40px;animation:rank-rays 18s linear infinite}.rank-aura{animation:rank-glint 2.5s ease-in-out infinite;transform-origin:40px 40px}@keyframes rank-rays{to{transform:rotate(360deg)}}.podium-2 .rank-spark{animation-duration:3s}.podium-3 .rank-spark{animation-duration:4s}.rank-diamante .rank-gem{animation:rank-glint 3s ease-in-out infinite}@keyframes rank-glint{50%{opacity:.3;transform:scale(.65)}}@keyframes rank-radiance{50%{opacity:.72;transform:scale(1.08)}}.document-hidden :is(.rank-badge svg,.rank-spark,.rank-gem,.rank-rays,.rank-aura){animation-play-state:paused!important}@media(prefers-reduced-motion:reduce){.rank-badge :is(svg,path,g,circle){animation:none!important}}.arena-standing>strong,.arena-nick{display:flex;gap:5px;align-items:center}.arena-standing{margin-bottom:5px}.arena-position{margin:0 0 16px;font-size:13px;color:#ffe6ac}#arena-defense-warning{color:#ffe1a0;font-weight:800;font-size:16px;text-align:center;text-shadow:0 2px 3px #000;margin:12px 0}#formation-back{position:absolute;right:14px;top:6px;z-index:8;min-height:44px;font-size:17px;font-weight:700;color:#ffdf9e;background:none;border:0;box-shadow:none;text-shadow:0 2px 4px #000}.hero-modal.team-modal:has(.defense-formation) #hero-modal-close{visibility:hidden;pointer-events:none}#hero-modal-content.inspecting-hero{overflow:auto;position:relative;display:block!important}#hero-modal-content.inspecting-hero>:not(.formation-inspection){display:none!important}.formation-inspection{min-height:100%;padding:8px 14px 22px;color:#fff0d1;background:linear-gradient(#111828aa,#131928aa),url(/assets/profile-observatory-v0106.png) center/cover}.formation-inspection h2{font:700 25px Georgia,serif;text-align:center;margin:8px 0}.inspection-level{text-align:center;font-size:13px}.formation-inspection .archive-display{height:30dvh;min-height:180px}.formation-inspection h3{color:#ffe0a0;font-size:17px;margin-top:20px}.formation-inspection h4{font-size:14px;color:#e8d8b5}.formation-inspection p{font-size:13px;line-height:1.5}.formation-inspection button{background:none;border:0;box-shadow:none;min-height:44px;color:#ffe1a0}.formation-inspection .equipment-slots button{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0;opacity:.7}.formation-inspection .equipment-slots svg{width:26px;height:26px}.hero-modal.arena-result-modal{width:min(430px,calc(100vw - 22px));max-height:calc(100dvh - 30px);padding:12px 10px}.arena-result-modal #hero-modal-title{font-size:20px}.arena-result-modal .arena-point-change{font-size:15px;margin:4px 0 8px}.arena-result-teams{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}.arena-stat-team{padding:0;min-width:0}.arena-stat-team+.arena-stat-team{border:0;border-left:1px solid #c6a65f55;padding-left:8px}.arena-result-player{display:grid;grid-template-columns:28px minmax(0,1fr);gap:3px;align-items:center;min-height:54px;background:none;border:0;box-shadow:none;padding:0}.arena-result-player .rank-badge{grid-row:1/3;width:28px;height:28px}.arena-result-player strong{font-size:12px;overflow-wrap:anywhere}.arena-result-player small{font-size:10px}.arena-stat-row{grid-template-columns:32px minmax(0,1fr);gap:5px;margin:7px 0}.arena-stat-portrait>svg,.arena-stat-portrait>img{width:30px;height:30px}.arena-stat-portrait small{font-size:8px}.arena-stat{grid-template-columns:1fr;gap:0;font-size:9px;margin:2px 0}.arena-stat strong{font-size:9px;font-weight:600}.arena-stat .stat-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.arena-stat meter{height:5px}.arena-stat-legend{display:flex;justify-content:center;gap:8px;font-size:9px;margin-bottom:6px}.arena-stat-legend span:nth-child(1){color:#eeab75}.arena-stat-legend span:nth-child(2){color:#cf7983}.arena-stat-legend span:nth-child(3){color:#83d3b4}#chat-preview{max-height:calc((100dvh - var(--menu-top) - var(--menu-bottom)) * .2);overflow:hidden}
