/* Final visual layer: shared rhythm, clean engraved symbols and readable editorial pages. */
.launcher-nav{gap:clamp(14px,2vw,30px);overflow-x:auto;scrollbar-width:thin}.launcher-nav button{flex-shrink:0}
.game-icon{fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;overflow:visible}
.action-btn,.text-link,.codex-tabs button{transition:background-color .16s,border-color .16s,color .16s}.action-btn:focus-visible,.text-link:focus-visible,.codex-tabs button:focus-visible{outline:2px solid #efce8a;outline-offset:3px}
.hero-gallery{grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:16px}.hero-story-actions{display:flex;flex-wrap:wrap;align-items:center;gap:18px}.hero-story-actions .action-btn{white-space:normal}
.codex-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 25px;border-bottom:1px solid #b49a6340;padding-bottom:14px}.codex-tabs button{min-height:44px;padding:10px 20px;border:1px solid #71818a55;border-radius:6px;background:#13212d;color:#b8c6cd;font:700 14px Nunito,sans-serif;cursor:pointer}.codex-tabs button[aria-pressed=true]{background:#3b3325;border-color:#c6a56c;color:#f1d8a7}
.codex-prologue{max-width:900px;padding:32px clamp(20px,4vw,45px);border:1px solid #b79d6240;background:radial-gradient(ellipse at top right,#68542c24,transparent),#101c28;border-radius:10px}.codex-prologue h2{font:600 clamp(23px,3vw,34px)/1.4 Cinzel,Georgia,serif;color:#ead4a6;margin:12px 0 22px}.codex-prologue p,.codex-factions p,.codex-timeline p,.codex-heroes p{font-size:16px;line-height:1.85;color:#c4cbd0;max-width:76ch}
.codex-section-title{font:600 24px Cinzel,serif;color:#dfc897;margin:36px 0 20px}.codex-factions{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:20px}.codex-factions article,.codex-timeline article{padding:24px;border:1px solid #8c805138;background:linear-gradient(145deg,#182631,#101a24);border-radius:8px}.codex-factions h3,.codex-timeline h3{font:600 20px/1.5 Cinzel,serif;color:#e3cca1;margin:10px 0}.codex-factions blockquote{font:italic 15px/1.7 Georgia,serif;color:#c6b78e;margin:20px 0 0;padding-left:15px;border-left:2px solid #b89b60}
.codex-timeline{display:grid;gap:16px;max-width:970px}.codex-timeline article{border-left:3px solid #b1965f}.codex-heroes{display:grid;gap:24px}.codex-heroes article{display:grid;grid-template-columns:210px minmax(0,1fr);background:#101d29;border:1px solid #ab935543;border-radius:10px;overflow:hidden}.codex-heroes img{width:100%;height:100%;max-height:470px;object-fit:cover;object-position:top}.codex-heroes article>div{padding:28px}.codex-heroes h2{font:600 28px Cinzel,serif;color:#e5cfa0;margin:10px 0}.codex-heroes h3{font:700 13px Nunito,sans-serif;text-transform:uppercase;letter-spacing:1px;color:#bda878;margin:22px 0 5px}.codex-heroes p{margin:8px 0}
.codex-filters{display:grid;grid-template-columns:minmax(160px,1fr) minmax(160px,300px);gap:16px}.codex-filters label{display:grid;gap:7px;color:#b8c4cc;font-size:13px}.codex-filters input,.codex-filters select{box-sizing:border-box;width:100%;min-width:0;min-height:44px;font:inherit;font-size:15px;background:#101d29;border:1px solid #74838a80;border-radius:6px;padding:11px;color:#ece4d4}.codex-count{color:#9dabb7;font-size:13px;margin:22px 0}.codex-card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:18px}.codex-card-grid article{display:flex;gap:15px;align-items:flex-start;border:1px solid #85774e40;background:#111e2a;border-radius:8px;padding:16px;min-width:0}.codex-card-grid img{width:70px;height:100px;object-fit:cover;border-radius:5px;flex-shrink:0}.codex-card-grid h3{font:600 17px/1.45 Cinzel,serif;color:#e4d1a6;margin:7px 0}.codex-card-grid p{font:italic 15px/1.75 Georgia,serif;color:#bdc9cf;margin:9px 0}.codex-card-grid .launcher-kicker{font-size:9px;letter-spacing:1px}
.codex-card-grid .codex-annotation{font:400 13px/1.75 Nunito,sans-serif;color:#9eafb9;border-top:1px solid #ab945b30;padding-top:10px}.codex-card-grid article>div{min-width:0;overflow-wrap:anywhere}
.cosmetic-progress{font-size:14px;line-height:1.7;color:#afbbc5;max-width:85ch;margin-bottom:25px}.cosmetic-grid article.equipped{border-color:#cfad6f;box-shadow:inset 0 0 24px #cfa75f0e}.cosmetic-copy{display:flex;flex-direction:column;flex:1}.cosmetic-unlock{font-size:12px;color:#a5b3be;display:block;margin:0 0 12px}.cosmetic-copy .action-btn{margin-top:auto!important}.cosmetic-copy .text-link{min-height:44px;margin-bottom:10px}#launcher-content .arena-skin-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr))}#launcher-content .arena-skin-grid article{padding:0;overflow:hidden;display:flex;flex-direction:column;text-align:left}#launcher-content .arena-skin-grid .cosmetic-copy{padding:20px}#launcher-content .arena-skin-grid h3{font-size:20px;margin:0 0 8px}.arena-skin-preview{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}.arena-art-dialog{width:min(1100px,92vw);max-height:92dvh;box-sizing:border-box;overflow:auto;padding:22px;background:#0f1b26;border:1px solid #bda16a;border-radius:12px;color:#ddd2bc;text-align:center}.arena-art-dialog::backdrop{background:#030711df}.arena-art-dialog img{width:100%;max-height:66dvh;object-fit:contain;border-radius:6px}.arena-art-dialog h2{font:600 24px Cinzel,serif}.arena-art-dialog p{line-height:1.7;font-size:14px}
body[data-arena-skin]:not([data-arena-skin=wanderer]) .battle-shell{background-image:radial-gradient(ellipse at center,#04071015,#04071070),var(--arena-art);background-position:center;background-size:cover;background-repeat:no-repeat}
@media(max-width:700px){.codex-tabs button{padding:10px 13px;flex:1}.codex-heroes article{grid-template-columns:1fr}.codex-heroes img{height:260px;object-position:center 24%}.codex-heroes article>div{padding:22px}.codex-filters{grid-template-columns:1fr}.codex-prologue{padding:24px 20px}.codex-card-grid article{padding:14px}.hero-gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.hero-gallery-card span{padding:10px 6px;font-size:10px}.hero-gallery-card strong{font-size:16px}.launcher-nav{gap:22px}.arena-art-dialog{padding:15px}.arena-art-dialog h2{font-size:20px}}
@media(prefers-reduced-motion:reduce){.action-btn,.text-link,.codex-tabs button{transition:none}}
