3b77a132be
MainViewModel.Chat.cs (194 lines) takes the YouTube chat overlay: ChatMessages (+500 cap, clear-on-fade), OnChatMessageReceived (dispatcher marshal, mock→real preview switch), chat fade timer (ResetChatFadeTimer), the ChatBox render paths (RenderChatBox for the live compositor, UpdateChatBoxPreview for the editor preview), the mock preview loop (MockChatMessages/StartMockChatPreview/ StopMockChatPreview/RunMockChatPreviewAsync/_mockChatCts), UpdateActiveChatBoxPreviews, CanAddYouTubeChat (one-per-layout gate) and ShowChatInactiveMessage. Core drops 1119 -> 940 lines. Ctor wiring (MessageReceived hookup, ChatBoxRenderer ctor, LoadLayout preview start, dispose) stays in core; ResolveOutputFrame (core) still calls RenderChatBox cross-partial. Zero behavior change; build 0 warnings; 246 pass, only the 2 known failures. Docs: index.md Chat row added + core row trimmed in the same commit.