Changed headerView from var to func with width parameter, matching LegacyView. Added .frame(width: width, height: headerHeight) to constrain header image width. This was the root cause of content overflow - without explicit width on the header image, the entire ZStack and its children (including title and webview) could grow beyond viewport width. Now matches LegacyView implementation exactly.