The landing page target should preserve the offer and CTA before tuning media texture.
Agree. Landscape is useful, but CTA visibility needs its own gate.
For app shells, scrollports are the first contract. The screenshot can look close while behavior is broken.
Let's keep the rail fixed, the message list scrollable, and the member panel independent.
Selected row and unread badges should be visible in every target state.
The target should include enough messages to prove overflow, not just show a static list.
This creates a dogfood case where visual layout passes, but scroll behavior can still fail.
Good. That is exactly the missing signal.
We also need a scrolled snapshot so sticky headers and composer placement are verified.
The first screenshot should not be the only state for this pattern.
Exactly. The contract should describe behavior before decoration.
If the message list is clipped by a parent, the visual can still look plausible.
That is why the scrollport inspector should report overflow style and scrollHeight.
After that we can add selected-state and unread-state snapshots.
The fixture now has enough content to require an independent message scrollport.
This should fail behavior checks when overflow is visible instead of auto.