.emotion-avatar-frame{position:relative;width:var(--eaf-size);height:var(--eaf-size);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;vertical-align:middle;overflow:visible}.emotion-avatar-frame__particles{z-index:1;width:var(--eaf-canvas-size);height:var(--eaf-canvas-size);max-width:none;max-height:none}.emotion-avatar-frame__particles,.emotion-avatar-frame__ring{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none}.emotion-avatar-frame__ring{border-radius:50%;transition:all .6s ease}.emotion-avatar-frame__ring--outer{width:calc(var(--eaf-size) + 8px);height:calc(var(--eaf-size) + 8px);background:conic-gradient(from 0deg,transparent,var(--eaf-primary),var(--eaf-secondary),transparent,var(--eaf-secondary),var(--eaf-primary),transparent);opacity:calc(.4 * var(--eaf-intensity));z-index:2}.emotion-avatar-frame__ring--middle{width:calc(var(--eaf-size) + 6px);height:calc(var(--eaf-size) + 6px);background:linear-gradient(135deg,var(--eaf-primary),var(--eaf-accent),var(--eaf-secondary));opacity:calc(.6 * var(--eaf-intensity));z-index:3}.emotion-avatar-frame__ring--inner{width:calc(var(--eaf-size) + 2px);height:calc(var(--eaf-size) + 2px);background:linear-gradient(45deg,var(--eaf-accent),var(--eaf-primary));opacity:calc(.8 * var(--eaf-intensity));z-index:4}.emotion-avatar-frame__glow{width:calc(var(--eaf-size) + 12px);height:calc(var(--eaf-size) + 12px);background:radial-gradient(circle,var(--eaf-glow) 0,var(--eaf-glow-secondary) 40%,transparent 70%);opacity:calc(.5 * var(--eaf-intensity));z-index:0;filter:blur(8px);transition:all .6s ease}.emotion-avatar-frame__avatar,.emotion-avatar-frame__glow{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);border-radius:50%}.emotion-avatar-frame__avatar{width:var(--eaf-size);height:var(--eaf-size);overflow:hidden;z-index:5;background:linear-gradient(180deg,rgba(255,255,255,.1),rgba(255,255,255,0));box-shadow:inset 0 1px 2px rgba(255,255,255,.2),inset 0 -1px 2px rgba(0,0,0,.1)}.emotion-avatar-frame__avatar img,.emotion-avatar-frame__avatar>*,.emotion-avatar-frame__avatar>*>img{position:absolute!important;top:50%!important;left:50%!important;transform:translate(-50%,-50%)!important;width:100%!important;max-width:100%!important;height:100%!important;max-height:100%!important;object-fit:cover!important;object-position:center!important}.emotion-avatar-frame--pulse .emotion-avatar-frame__ring--outer{animation:emotionPulse calc(1.5s * var(--eaf-animation-speed)) ease-in-out infinite}.emotion-avatar-frame--pulse .emotion-avatar-frame__ring--middle{animation:emotionPulse calc(1.2s * var(--eaf-animation-speed)) ease-in-out infinite .1s}.emotion-avatar-frame--rotate .emotion-avatar-frame__ring--outer{animation:emotionRotate calc(8s * var(--eaf-animation-speed)) linear infinite}.emotion-avatar-frame--rotate .emotion-avatar-frame__ring--middle{animation:emotionRotate calc(6s * var(--eaf-animation-speed)) linear infinite reverse}.emotion-avatar-frame--rotate .emotion-avatar-frame__glow{animation:emotionRotate calc(10s * var(--eaf-animation-speed)) linear infinite}.emotion-avatar-frame--breathe .emotion-avatar-frame__ring--outer{animation:emotionBreathe calc(4s * var(--eaf-animation-speed)) ease-in-out infinite}.emotion-avatar-frame--breathe .emotion-avatar-frame__ring--middle{animation:emotionBreathe calc(4s * var(--eaf-animation-speed)) ease-in-out infinite .3s}.emotion-avatar-frame--breathe .emotion-avatar-frame__ring--inner{animation:emotionBreathe calc(4s * var(--eaf-animation-speed)) ease-in-out infinite .6s}.emotion-avatar-frame--breathe .emotion-avatar-frame__glow{animation:emotionGlowBreathe calc(4s * var(--eaf-animation-speed)) ease-in-out infinite}.emotion-avatar-frame--breathe .emotion-avatar-frame__avatar{animation:emotionAvatarBreathe calc(4s * var(--eaf-animation-speed)) ease-in-out infinite .15s}.emotion-avatar-frame--breathe .emotion-avatar-frame__particles{animation:emotionParticleBreathe calc(4s * var(--eaf-animation-speed)) ease-in-out infinite .45s}.emotion-avatar-frame--ripple .emotion-avatar-frame__ring--outer{animation:emotionRipple calc(2s * var(--eaf-animation-speed)) ease-out infinite}.emotion-avatar-frame--ripple .emotion-avatar-frame__ring--middle{animation:emotionRipple calc(2s * var(--eaf-animation-speed)) ease-out infinite .3s}.emotion-avatar-frame--shimmer .emotion-avatar-frame__ring--outer{animation:emotionShimmer calc(2s * var(--eaf-animation-speed)) ease-in-out infinite}.emotion-avatar-frame--shimmer .emotion-avatar-frame__ring--middle{animation:emotionShimmer calc(2s * var(--eaf-animation-speed)) ease-in-out infinite .1s}.emotion-avatar-frame--glow-pulse .emotion-avatar-frame__glow{animation:emotionGlowPulse calc(2s * var(--eaf-animation-speed)) ease-in-out infinite}.emotion-avatar-frame--sparkles:after{content:"";position:absolute;width:4px;height:4px;background:var(--eaf-accent);border-radius:50%;top:10%;right:10%;box-shadow:0 0 4px var(--eaf-accent),0 0 8px var(--eaf-primary);animation:emotionSparkle calc(1.5s * var(--eaf-animation-speed)) ease-in-out infinite;z-index:6}.emotion-avatar-frame--sparkles:before{content:"";position:absolute;width:3px;height:3px;background:var(--eaf-primary);border-radius:50%;bottom:15%;left:15%;box-shadow:0 0 3px var(--eaf-primary),0 0 6px var(--eaf-secondary);animation:emotionSparkle calc(2s * var(--eaf-animation-speed)) ease-in-out infinite .5s;z-index:6}.emotion-avatar-frame--trails .emotion-avatar-frame__ring--outer:after{content:"";position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 0deg,transparent 0,var(--eaf-primary) 20%,transparent 40%,transparent 60%,var(--eaf-secondary) 80%,transparent 100%);opacity:.3;animation:emotionRotate calc(4s * var(--eaf-animation-speed)) linear infinite}@keyframes emotionPulse{0%,to{transform:scale(1);opacity:calc(.4 * var(--eaf-intensity))}50%{transform:scale(1.08);opacity:calc(.7 * var(--eaf-intensity))}}@keyframes emotionRotate{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes emotionBreathe{0%,to{transform:translate(-50%,-50%) scale(1);opacity:calc(.2 * var(--eaf-intensity));filter:brightness(.7) saturate(.8)}50%{transform:translate(-50%,-50%) scale(1.05);opacity:calc(1 * var(--eaf-intensity));filter:brightness(1.4) saturate(1.2)}}@keyframes emotionRipple{0%{transform:scale(1);opacity:calc(.6 * var(--eaf-intensity))}to{transform:scale(1.2);opacity:0}}@keyframes emotionShimmer{0%,to{opacity:calc(.4 * var(--eaf-intensity))}50%{opacity:calc(.8 * var(--eaf-intensity))}}@keyframes emotionGlowBreathe{0%,to{opacity:calc(.2 * var(--eaf-intensity));filter:blur(6px) brightness(.7);transform:translate(-50%,-50%) scale(.95)}50%{opacity:calc(1 * var(--eaf-intensity));filter:blur(16px) brightness(1.5);transform:translate(-50%,-50%) scale(1.1)}}@keyframes emotionAvatarBreathe{0%,to{transform:translate(-50%,-50%) scale(1);filter:brightness(.9);box-shadow:inset 0 1px 2px rgba(255,255,255,.2),inset 0 -1px 2px rgba(0,0,0,.1),0 0 0 0 transparent}50%{transform:translate(-50%,-50%) scale(1.02);filter:brightness(1.15);box-shadow:inset 0 1px 2px rgba(255,255,255,.4),inset 0 -1px 2px rgba(0,0,0,.1),0 0 20px 4px var(--eaf-glow)}}@keyframes emotionParticleBreathe{0%,to{opacity:.4;transform:translate(-50%,-50%) scale(.95)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.05)}}@keyframes emotionGlowPulse{0%,to{opacity:calc(.5 * var(--eaf-intensity));transform:scale(1)}50%{opacity:calc(.8 * var(--eaf-intensity));transform:scale(1.1)}}@keyframes emotionSparkle{0%,to{opacity:0;transform:scale(.5)}50%{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.emotion-avatar-frame--sparkles:after,.emotion-avatar-frame--sparkles:before,.emotion-avatar-frame__glow,.emotion-avatar-frame__ring{animation:none!important}}@media (prefers-color-scheme:dark){.emotion-avatar-frame__glow{opacity:calc(.6 * var(--eaf-intensity))}}