02231ea1f9
The Avatar component was initializing maskUrl as '' and loading it in a useEffect. Since hasCustomShape was true immediately, rounded-full was removed on the first render, but the mask wasn't applied until after the effect fired — causing a visible square flash for one frame. getAvatarMaskUrl is already synchronous (renders emoji to canvas, caches the data-URL), so compute it inline during render instead of deferring to an effect. The mask is now applied on the very first paint.