.avatar-display{position:relative;display:inline-flex;flex-direction:column;align-items:center;vertical-align:middle;width:var(--avatar-size);max-width:100%;flex-shrink:0}
.avatar-css-sparkle{position:absolute;right:10%;top:20%;color:#b38015;font-size:clamp(12px,calc(var(--avatar-size)*.09),24px);animation:avatar-sparkle 1s ease-out 1;pointer-events:none}
@keyframes avatar-sparkle{0%,100%{transform:scale(.85)}50%{transform:scale(1.2)}}
.avatar-image{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:contain}
.avatar-title{font-size:var(--fs-caption);line-height:1.35;text-align:center;overflow-wrap:anywhere;max-width:100%;color:var(--muted,#637087)}
.avatar-arrive{animation:avatar-arrive .7s ease-out 1}
@keyframes avatar-arrive{from{transform:translateY(8px) scale(.94);opacity:.5}to{transform:none;opacity:1}}
.avatar-editor{display:grid;gap:var(--sp-4);max-width:var(--content-max);margin:auto}
.avatar-editor h1{font-size:var(--fs-title)}.avatar-editor p{line-height:1.6}
.avatar-hero{display:grid;grid-template-columns:1fr 224px;gap:var(--sp-4);align-items:center}.avatar-summary{grid-column:1/-1}
.avatar-preview{display:flex;justify-content:center;align-items:center;min-height:224px;border-radius:var(--r-lg);border:1px solid var(--line)}
.avatar-preview.light{background:#f3f5fa}.avatar-preview.dark{background:#182033}.avatar-preview.dark .avatar-title{color:#f1f4f9}
.avatar-character-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:var(--sp-2)}
.avatar-choice{display:flex;flex-direction:column;align-items:center;gap:var(--sp-1);min-height:136px;background:var(--surface,#fff);color:var(--text,#1b2130);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--sp-2);cursor:pointer}
.avatar-choice>span:last-child{font-size:var(--fs-caption)}.avatar-options{display:flex;flex-wrap:wrap;gap:var(--sp-2);margin-top:var(--sp-3);border:0;padding:0}
.avatar-options legend{margin-bottom:var(--sp-2)}.avatar-editor .btn{min-height:var(--h-md)}
.avatar-editor [aria-pressed=true]{outline:2px solid var(--primary,#4f6df5);outline-offset:1px;background:var(--surface,#fff)}
.avatar-editor button:focus-visible{outline:3px solid var(--primary,#4f6df5);outline-offset:3px}
.avatar-growth-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:var(--sp-2)}
.avatar-growth-grid .btn{display:flex;flex-direction:column;gap:var(--sp-1);white-space:normal;padding:var(--sp-3)}.avatar-growth-grid small{font-size:var(--fs-caption)}
.avatar-items{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--sp-2);margin-top:var(--sp-4)}
.avatar-item{display:flex;flex-direction:column;gap:var(--sp-2);text-align:left;min-height:112px;padding:var(--sp-3);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface,#fff);color:var(--text,#1b2130);cursor:pointer}
.avatar-item small{font-size:var(--fs-caption);line-height:1.5}.avatar-item>span{font-size:var(--fs-label)}.avatar-item.rarity-rare{border-style:dashed}.avatar-item.rarity-epic{border-width:2px}.avatar-item.rarity-legendary{border:2px double #b38015}
.avatar-workspace .avatar-item:disabled{opacity:1;cursor:not-allowed;border-style:dashed;color:var(--muted)}
.avatar-save{position:sticky;bottom:var(--sp-2);z-index:2;box-shadow:var(--shadow-2)}
.avatar-save .avatar-options{gap:var(--sp-3)}.avatar-save .btn{min-height:var(--h-lg)}
.avatar-profile{display:flex;flex-wrap:wrap;gap:var(--sp-4);align-items:center}.avatar-profile>div{flex:1;min-width:180px}
.home-rank-row .avatar-display{grid-row:1/3}.ranking-table .avatar-display{margin-right:var(--sp-2)}.rank-result .avatar-display{float:left;margin-right:var(--sp-2)}
@media(max-width:600px){.avatar-hero{grid-template-columns:1fr}.avatar-preview{justify-self:center;width:224px}.avatar-editor h1{font-size:var(--fs-title)}.avatar-character-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.avatar-items{grid-template-columns:repeat(2,minmax(0,1fr))}.avatar-save{position:static}.avatar-growth-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){.avatar-arrive,.avatar-css-sparkle{animation:none}}
@media(max-height:500px){.avatar-save{position:static}}

/* 긴 저장 문구는 줄이지 않고, 휴대폰에서 주 조작을 맨 위 전폭으로 둔다. */
@media(max-width:600px){.avatar-save .avatar-options{flex-direction:column;align-items:stretch}.avatar-save .btn{width:100%}.avatar-save .primary{order:-1}}

.avatar-history summary{min-height:var(--h-md);display:flex;align-items:center;cursor:pointer}.avatar-history li{line-height:1.6;margin-bottom:var(--sp-2)}

.battle-summary .name .avatar-display{display:flex;margin:0 auto var(--sp-2)}

/* 편집 화면만 고정한다. 나머지 화면의 공통 아바타 표시에는 적용하지 않는다. */
.avatar-workspace{position:fixed;z-index:3;grid-template-rows:auto minmax(0,1fr);gap:var(--sp-2);max-width:var(--content-max);overflow:hidden;padding-left:env(safe-area-inset-left,0px);padding-right:env(safe-area-inset-right,0px)}
.avatar-workspace .card{margin:0;padding:var(--sp-3)}
.avatar-workspace .avatar-hero{position:sticky;top:0;display:flex;flex-direction:column;align-items:stretch;gap:var(--sp-2);min-height:0}
.avatar-editor-heading{display:flex;align-items:center;gap:var(--sp-2)}
.avatar-workspace .avatar-editor-heading h1{margin:0;font-size:var(--fs-title-sm)}
.avatar-preview-row{display:flex;align-items:center;justify-content:center;gap:var(--sp-3);min-height:0}
.avatar-workspace .avatar-preview{min-height:0;width:192px;max-width:55%;padding:var(--sp-1);flex:none}
.avatar-workspace .avatar-preview .avatar-display{width:100%}
.avatar-workspace .avatar-summary{display:flex;flex-direction:column;gap:var(--sp-2);min-width:0;flex:1;font-size:var(--fs-label)}
.avatar-preview-state{font-size:var(--fs-caption);font-weight:700;color:var(--primary)}
.avatar-workspace .avatar-preview .avatar-title{font-size:var(--fs-caption)}
.avatar-workspace .avatar-save{position:static;box-shadow:none}
.avatar-workspace .avatar-save p{margin:0 0 var(--sp-1);font-size:var(--fs-caption);line-height:1.35}
.avatar-workspace .avatar-save .avatar-options{display:flex;flex-direction:row;gap:var(--sp-2);margin:0}
.avatar-workspace .avatar-save .btn{flex:1;width:auto;min-height:var(--h-lg);font-size:var(--fs-label);padding:var(--sp-2)}
.avatar-workspace .avatar-save .primary{order:0}
.avatar-selection{min-height:0;min-width:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior-y:contain;scroll-padding:var(--sp-2);display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-1)}
.avatar-selection>.card{flex:none}
.avatar-compact .avatar-preview{width:128px}
.avatar-wide{grid-template-columns:minmax(224px,40%) minmax(0,1fr);grid-template-rows:minmax(0,1fr)}
.avatar-wide .avatar-hero{justify-content:space-between}
.avatar-wide .avatar-preview-row{flex:1}
.avatar-wide .avatar-preview{width:128px;max-width:50%}
.avatar-wide .avatar-editor-heading h1{font-size:var(--fs-body)}
.avatar-short .avatar-hero{padding:var(--sp-2);gap:var(--sp-1)}
.avatar-short .avatar-preview-row{gap:var(--sp-2)}
.avatar-short .avatar-preview{width:96px;padding:0}
.avatar-short .avatar-summary{gap:var(--sp-1);font-size:var(--fs-caption)}
.avatar-short .avatar-summary .btn{font-size:var(--fs-caption);padding:var(--sp-1)}
.avatar-short .avatar-save .btn{min-height:var(--h-md);font-size:var(--fs-caption);padding:var(--sp-1)}
/* 키보드처럼 세로 공간이 줄면 미리보기 옆에 저장 묶음을 놓는다. 목록은 아래에 남긴다. */
.avatar-short .avatar-hero{display:grid;grid-template-columns:96px minmax(0,1fr);grid-template-rows:auto auto}
.avatar-short .avatar-editor-heading{grid-column:1;grid-row:1}
.avatar-short .avatar-editor-heading h1{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.avatar-short .avatar-preview-row{display:contents}
.avatar-short .avatar-summary{grid-column:2;grid-row:1}
.avatar-short .avatar-preview{grid-column:1;grid-row:2;max-width:100%;align-self:center}
.avatar-short .avatar-save{grid-column:2;grid-row:2;align-self:center}
