.framed-avatar{position:relative;display:inline-grid;place-items:center;width:100%;height:100%;isolation:isolate}.framed-avatar-photo{display:grid;place-items:center;width:100%;height:100%;overflow:hidden;border-radius:50%}.framed-avatar-photo>*{width:100%;height:100%}.framed-avatar-photo img{width:100%;height:100%;object-fit:cover}.framed-avatar>.framed-avatar-frame{--reach: var(--frame-reach, 1.388889);position:absolute;top:calc((1 - var(--reach)) * 50%);left:calc((1 - var(--reach)) * 50%);z-index:1;width:calc(var(--reach) * 100%);height:calc(var(--reach) * 100%);object-fit:contain;pointer-events:none}.framed-avatar-ring{position:absolute;top:-6%;right:-6%;bottom:-6%;left:-6%;z-index:1;border-radius:50%;box-shadow:0 0 0 3px var(--frame-accent, #8ed0f2),0 0 12px color-mix(in srgb,var(--frame-accent, #8ed0f2) 55%,transparent);pointer-events:none}.frame-motion{position:absolute;top:-14%;right:-14%;bottom:-14%;left:-14%;z-index:2;pointer-events:none}.framed-avatar[data-live=false] .frame-motion,.framed-avatar[data-live=false] .frame-motion *{animation-play-state:paused!important}.frame-motion-fall i,.frame-motion-rise i{position:absolute;width:4px;height:4px;border-radius:50%;background:#f2f8ff;opacity:0}.frame-motion-fall i:nth-child(1){left:18%;top:6%;animation:frame-fall 4.2s linear infinite}.frame-motion-fall i:nth-child(2){left:72%;top:0;width:3px;height:3px;animation:frame-fall 5.1s linear 1.3s infinite}.frame-motion-fall i:nth-child(3){left:46%;top:2%;width:2px;height:2px;animation:frame-fall 3.6s linear 2.4s infinite}@keyframes frame-fall{0%{opacity:0;transform:translateZ(0)}15%{opacity:.9}to{opacity:0;transform:translate3d(6px,300%,0)}}.frame-motion-rise i{background:#ffb36b;box-shadow:0 0 6px #ff8a4c}.frame-motion-rise i:nth-child(1){left:22%;bottom:4%;animation:frame-rise 3.4s ease-out infinite}.frame-motion-rise i:nth-child(2){left:64%;bottom:0;width:3px;height:3px;animation:frame-rise 4s ease-out 1.1s infinite}.frame-motion-rise i:nth-child(3){left:44%;bottom:8%;width:2px;height:2px;animation:frame-rise 2.9s ease-out 2s infinite}@keyframes frame-rise{0%{opacity:0;transform:translateZ(0)}20%{opacity:1}to{opacity:0;transform:translate3d(-5px,-260%,0) scale(.6)}}.frame-motion-glint{animation:frame-glint-spin 4.8s cubic-bezier(.6,0,.3,1) infinite}.frame-motion-glint i{position:absolute;left:50%;top:2%;width:16%;height:5%;margin-left:-8%;border-radius:999px;background:#fff;box-shadow:0 0 10px 2px #ffffffb3;opacity:0;animation:frame-glint 4.8s ease-in-out infinite}@keyframes frame-glint-spin{0%{transform:rotate(-40deg)}to{transform:rotate(320deg)}}@keyframes frame-glint{0%,55%,to{opacity:0}70%{opacity:.95}85%{opacity:0}}.frame-motion-pulse{top:-8%;right:-8%;bottom:-8%;left:-8%;border-radius:50%;box-shadow:0 0 18px 4px var(--frame-accent, #8ed0f2);opacity:0;animation:frame-pulse 4.2s ease-in-out infinite}@keyframes frame-pulse{0%,to{opacity:.08;transform:scale(.97)}50%{opacity:.6;transform:scale(1.02)}}.frame-motion-hearts{animation:frame-orbit 6s linear infinite}.frame-motion-hearts i{position:absolute;left:50%;top:0;width:9%;height:9%;margin-left:-4.5%;background:#ea4c89;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 21c-.3 0-.6-.1-.9-.3C7.6 18.4 2 14.3 2 8.9 2 6 4.3 3.6 7.1 3.6c1.9 0 3.6 1 4.9 2.6 1.3-1.6 3-2.6 4.9-2.6C19.7 3.6 22 6 22 8.9c0 5.4-5.6 9.5-9.1 11.8-.3.2-.6.3-.9.3z'/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 21c-.3 0-.6-.1-.9-.3C7.6 18.4 2 14.3 2 8.9 2 6 4.3 3.6 7.1 3.6c1.9 0 3.6 1 4.9 2.6 1.3-1.6 3-2.6 4.9-2.6C19.7 3.6 22 6 22 8.9c0 5.4-5.6 9.5-9.1 11.8-.3.2-.6.3-.9.3z'/%3E%3C/svg%3E") center / contain no-repeat}.frame-motion-hearts i:nth-child(2){top:auto;bottom:0;background:#f6b3cf}@keyframes frame-orbit{to{transform:rotate(360deg)}}.season-badge-mark{position:relative;display:inline-grid;place-items:center;flex:0 0 auto}.season-badge-mark img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 2px 4px rgba(0,0,0,.45))}.season-badge-fallback{width:80%;height:80%;border-radius:30%;background:var(--badge-accent, #8ed0f2);transform:rotate(45deg)}.has-season-badge{display:inline-flex;align-items:center;gap:8px}.profile-overview-avatar .framed-avatar{width:100%;height:100%}@media(prefers-reduced-motion:reduce){.frame-motion{display:none}}.framed-avatar-particles{position:absolute;top:-22%;right:-22%;bottom:-22%;left:-22%;z-index:2;width:144%;height:144%;pointer-events:none}.season-badge-particles{position:absolute;top:-30%;right:-30%;bottom:-30%;left:-30%;width:160%;height:160%;pointer-events:none}@media(prefers-reduced-motion:reduce){.framed-avatar-particles,.season-badge-particles{display:none}}
