/* 아바타 사진(avatarPhoto.js) — 머리글자 칩 위에 덮는다. 로드 전엔 투명이라 깨진 아이콘이 보이지 않는다. */
.has-avatar-photo { position: relative; overflow: hidden; }
.has-avatar-photo > .avatar-photo {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; border-radius: inherit; opacity: 0;
  transition: opacity 160ms ease;
}
.has-avatar-photo.is-photo-loaded > .avatar-photo { opacity: 1; }
/* 사진이 선 칩은 머리글자 색 바탕이 테두리로 새지 않게 투명 처리 */
.has-avatar-photo.is-photo-loaded { color: transparent; }
/* 익명 아바타(spec_anon_profile) — 바탕은 avatarPhoto.js 가 시드 색으로 칠한다. 머리글자는 숨기고 동물 글리프를 가운데 덮는다. */
.is-anon-avatar { position: relative; overflow: hidden; }
/* 칩의 머리글자(텍스트 노드)만 감춘다 — 포스터는 이름·역할 글자가 같은 색을 물려받는다.
 *   important: 칩마다 `body.shell-v2 .profile-avatar { color }` 처럼 더 센 선택자가 글자색을 정해 머리글자가 글리프 뒤로 비친다(10-12 캡처). */
.is-anon-avatar:not(.ev-poster) { color: transparent !important; }
.is-anon-avatar > .profile-avatar-initial, .is-anon-avatar > .ev-poster-initial { visibility: hidden; }
.is-anon-avatar > .anon-avatar-glyph {
  position: absolute; inset: 0; display: grid; place-items: center;
  color: var(--ink, #fff); font-size: 1.15em; line-height: 1;
  border-radius: inherit; pointer-events: none;
}
/* 팀 모집 포스터 타일(eventPoster.js) — 이니셜 자리에 크게(포스터는 container-type: size) */
.ev-poster.is-anon-avatar > .anon-avatar-glyph { z-index: 0; padding-bottom: 18%; font-size: 36cqmin; }
