a35067f80a
Switch picks a lerped AbgrCache during the 300ms crossfade window (ReduceMotion bypass keeps the snap path). Plugin-load init path switches to SwitchSilent so opening the plugin no longer fades from the default theme. WindowBg/ChildBg RGBA path stays bound to the user's per-window opacity override and never fades. PushGlobal takes the ThemeRegistry as a parameter -- it is an instance member on Plugin, not static, so the single Plugin.Draw call-site threads it through alongside the active theme.