.character-picker{grid-column:1/-1;min-width:0}
.character-preview{margin:14px 0}
.character-preview .player-card{min-height:165px;padding-bottom:16px}
.character-preview .player-card-avatar{bottom:0;width:165px}
.character-preview .player-card-avatar img{height:165px}
.character-preview .player-collection-link,.character-preview .player-trophy-shelf{display:none}
.character-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:16px 0}
.identity-dialog button.character-choice{min-width:0;display:flex;flex-direction:column;align-items:center;padding:10px 6px;background:linear-gradient(135deg,#fff,#f0f7ff);border:1px solid #d6e6fa;border-radius:16px;color:#142e50;overflow:hidden}
.character-choice .identity-art{width:100%;margin:0}
.character-choice .identity-art img,.character-choice .player-sprite{height:155px;width:100%;object-fit:contain}
.character-choice .player-sprite{height:auto;aspect-ratio:1}
.character-choice>span{display:block;padding:8px 4px;width:100%;box-sizing:border-box;border-radius:20px;background:#e7f2ff;font-size:13px;font-weight:800;margin-top:auto}
.identity-dialog .character-choice[aria-pressed=true]{border:2px solid #ecc12b;background:#fffdf1}
.character-choice[aria-pressed=true]>span{background:#ffe36a}
.character-choice canvas{width:100%;height:155px;object-fit:contain;image-rendering:pixelated;opacity:.72}
.character-choice small{font-size:11px;margin-top:6px;text-decoration:underline}
.character-picker>[data-character-save]{min-height:48px;margin-top:8px}
.character-picker>[data-character-save]:disabled{background:#e7eef7;color:#51677e}
.identity-dialog .identity-tabs{flex-wrap:wrap}
.identity-tabs button{min-height:44px}
.character-choice:focus-visible{outline:3px solid #4b82e8;outline-offset:2px}
.character-atlas.atlas-row-1.character-g03,.character-atlas.atlas-row-1.character-b03{clip-path:inset(6% 0 0)}
.character-atlas.atlas-row-1.character-g04,.character-atlas.atlas-row-1.character-b02{clip-path:inset(4% 0 0)}
.character-atlas.atlas-row-1.character-g02{clip-path:inset(2% 0 0)}
.character-picker>[data-character-save]{position:sticky;bottom:0;z-index:4;box-shadow:0 -5px 12px #ffffffdb}
.identity-dialog:has(.character-picker) [data-status]:not(:empty){position:static;margin:12px 0;padding:10px}
.player-card.stage-practice,.player-card.stage-uniform,.player-preview.stage-practice,.player-preview.stage-uniform{background:url('../assets/volleyball-court.png') center/cover}
/* Title presentation only: earned rules and progress are unchanged. */
.identity-dialog article.title-reward{position:relative;overflow:hidden;isolation:isolate;border:1px solid #dae7f5;background:linear-gradient(145deg,#fff,#f3f8ff);padding:14px 10px}
.title-reward:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(130deg,transparent 55%,#ffffff99 56%,transparent 66%);pointer-events:none}
.title-emblem{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;margin:0 auto 12px;background:#eaf3ff;border:1px solid #c8defa;color:#4175bb;font-size:25px}
.identity-dialog article.title-reward h3{text-align:center;color:#173657;font-size:14px;font-weight:850}
.identity-dialog article.title-tier-blue{border-top:3px solid #4b82e8;background:linear-gradient(145deg,#fff,#eaf4ff)}
.title-tier-blue .title-emblem{background:#dceeff;color:#2564bd;border-color:#a9cff8}
.identity-dialog article.title-tier-silver{border:1px solid #b6cce5;box-shadow:inset 0 0 0 2px #f4f9ff;background:linear-gradient(125deg,#fff,#e6f0fc 45%,#fff 65%,#dfeafa)}
.title-tier-silver .title-emblem{background:linear-gradient(130deg,#c1d3eb,#fff,#c9ddf3);border-color:#9fbada;color:#315a8a}
.identity-dialog article.title-tier-gold{border:1px solid #e2bf56;box-shadow:inset 0 0 0 2px #fff9dd;background:linear-gradient(135deg,#fffdf5,#fff0bb 48%,#fffdf3 70%)}
.title-tier-gold .title-emblem{background:linear-gradient(135deg,#ffe68a,#fff8db,#f5cc58);border-color:#d8ae3d;color:#8c6414}
.identity-dialog article.title-tier-champion{border:2px solid #dfbf63;background:linear-gradient(135deg,#173858,#102643);box-shadow:inset 0 0 0 2px #fff1ae22}
.identity-dialog article.title-tier-champion h3,.identity-dialog article.title-tier-champion p,.identity-dialog article.title-tier-champion small{color:#f5f8ff}
.title-tier-champion .title-emblem{background:linear-gradient(135deg,#e6ba46,#fff4b7,#cf9b29);color:#173657;border-color:#ffeab0}
.identity-dialog article.title-tier-champion button{background:#fff3c5;border-color:#ecd386;color:#173657}
.identity-dialog article.title-reward.locked .title-emblem{opacity:.45}
.identity-dialog article.title-reward.locked{box-shadow:none}
/* Initial series picker: image and sprite use the same square stage. */
.identity-dialog .identity-options [data-group]{display:flex;flex-direction:column;align-items:center;gap:8px}
.identity-dialog .identity-options [data-group] .identity-art{width:100%;aspect-ratio:1;height:auto;margin:0;display:flex;align-items:center;justify-content:center}
.identity-dialog .identity-options [data-group] .identity-art img{width:100%;height:100%;aspect-ratio:1;object-fit:contain}
.identity-dialog .identity-options [data-group] .player-sprite{width:100%;height:auto;aspect-ratio:1;max-width:none;margin:0}
