/* Photo remains full-size; cosmetic artwork extends beyond the system avatar. */
.avatar-frame{position:relative;display:inline-grid;place-items:center;width:100%;height:100%;border-radius:12%;isolation:isolate;vertical-align:middle;flex:none;overflow:visible}
.avatar-frame .frame-content{position:absolute;inset:0;display:grid;place-items:center;border-radius:inherit;overflow:hidden;background:linear-gradient(135deg,#40543c,#102219);z-index:1}
.avatar-frame>.frame-art{position:absolute!important;inset:auto!important;left:-30%!important;top:-38%!important;width:160%!important;height:160%!important;min-width:0!important;min-height:0!important;max-width:none!important;max-height:none!important;transform:none!important;pointer-events:none;z-index:2;filter:drop-shadow(0 1px 1px #0009)!important}
.avatar-frame .frame-content .player-photo{border-radius:inherit;width:100%;height:100%}.avatar-frame .frame-content>svg:not(.frame-art){max-width:100%;max-height:100%;transform:none}
:is(.avatar,.account-nav-avatar,.profile-avatar,.lobby-pawn,.rank-avatar,.rank-user-avatar,.audience-avatar,.ts-preview-avatar):has(>.avatar-frame){overflow:visible!important;border-radius:12%!important}
/* Reserve space for the crown and wings instead of squeezing the image. */
.account-nav-avatar:has(.avatar-frame){margin:5px 6px 2px;font-size:20px}
.profile-avatar:has(.avatar-frame){margin:14px 12px 6px}
.rank-user-avatar:has(.avatar-frame),.audience-avatar:has(.avatar-frame){margin:8px 7px 4px}
.lobby-pawn:has(.avatar-frame){margin:10px 8px 4px}
.event-card-owner:has(.avatar-frame){overflow:visible}
.event-card-owner>.avatar:has(.avatar-frame){margin:8px 5px 3px}
.auction-quote-player:has(.avatar-frame){padding:8px 4px 3px}
.game-table .seat-header>.avatar:has(.avatar-frame){margin:7px 5px 3px}
/* Override pawn SVG sizing without shrinking the full photograph. */
.game-table .seat-header .avatar .avatar-frame>.frame-art{width:160%!important;height:160%!important;min-width:0!important;min-height:0!important}
/* Higher rank emblems stay over the card corner while the avatar remains visible. */
.game-table .seat-card:has(.avatar-frame):has(.seat-rank-badge.rank-platinum){--frame-rank-shift:5px}
.game-table .seat-card:has(.avatar-frame):has(.seat-rank-badge.rank-diamond){--frame-rank-shift:10px}
.game-table .seat-card:has(.avatar-frame):has(.seat-rank-badge.rank-stellar){--frame-rank-shift:16px}
.game-table .seat-card:has(.avatar-frame):has(.seat-rank-badge.rank-king){--frame-rank-shift:22px}
.game-table .seat-card:has(.avatar-frame) .seat-header{padding-left:calc(var(--frame-seat-inset,28px) + var(--frame-rank-shift,0px)*var(--frame-rank-factor,1))!important}
@container seat (max-height:270px){.game-table .seat-card:has(.avatar-frame) .seat-header{--frame-seat-inset:21px;--frame-rank-factor:.85}}
@container seat (max-width:220px){.game-table .seat-card:has(.avatar-frame) .seat-header{--frame-seat-inset:17px;--frame-rank-factor:.65}}
@container seat (max-height:140px){.game-table .seat-card:has(.avatar-frame) .seat-header{--frame-seat-inset:17px;--frame-rank-factor:.5}}
@container seat (max-height:90px){.game-table .seat-card:has(.avatar-frame) .seat-header{--frame-seat-inset:13px;--frame-rank-factor:.35}}
