Pin the scrollbar layer to the viewport instead of the content master
gpui applies the scroll offset to every child of a scrolled element, and the scrollbar layer was a child of the scrolling container itself (what calling gpui-component's .scrollbar() on the scrolling element builds) - so the whole scrollbar rode away with the content and the thumb tracked nothing. Scroll containers now mirror gpui-component's own Scrollable wrapper: an outer non-scrolling wrapper owns the box styles (size, flex, background, border) and the scrollbar layer, while an inner element scrolls the content and takes the content-shaping styles (direction, padding, gap, alignment). Rendering at rest is pixel-identical; scrolled, the thumb now sits where the scroll offset says it should. Verified interactively: wheel-scrolled a settings screen and watched the thumb hold its proportional position. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>