A section in the header set to #ffffff00 for the scrolled page still looked white: the sticky header element paints its own white surface and a shadow line underneath, so a transparent section showed that surface instead of the page, and the line could be neither recoloured nor removed. When a top-level header section defines a background of its own - normal, hover or scrolled - the header element now gets `has-own-surface` and paints nothing. A header without its own design keeps the white surface, so it does not turn see-through over the content. A text colour alone is not a surface, and a boxed column is not the whole header. The check is a Twig function rather than a controller variable because four paths render the header: page, archive, editor preview and area preview. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>