Em-based container math
The visual scale follows the type size because the page shell uses em units. On desktop the content column resolves to about 714px wide inside the centered shell.
Website Visual Archive / hsla0001
hsla0001 is a compact product studio site with the visual logic of an iOS settings pane and the restraint of a launch index. The proof object is the column: hero image, logo row, dim description, and app rows that carry most of the page's structure.
This report turns the hsla0001 parity lab into the first WVA v2 specimen. The exact mirror lives under /preview/hsla0001/. This page explains what the mirror preserves and why the site works.
Browse the archived mirror in place: click through routes and use back and forward. Preserved outbound links point at live sites and may refuse to load in a frame. Open sends the current route to a full tab.
The exact mirror covers the homepage, terms, privacy pages, two app privacy pages, and product pages for Rams, Void, Protocol, Loop, Stack, Framework, Slate, Crown, and Soho.
Google Tag Manager and Next runtime references were stripped from the static mirror. The mirror and annotated preview use noindex headers and fresh-cache headers.
A centered column sets the entire site. The container maxes at 34em with 1.5em side padding. The hero image fills that measure, then the brand row and product list continue the same axis.
The type is regular-weight system UI throughout. Hierarchy comes from size, spacing, and opacity. Secondary text sits at white with 40 percent opacity, which gives the page its quiet ranking system.
The field is pure black. Text is white, secondary text is dim white, and icons supply the main surface contrast. The bundle icon uses a dark iOS-like tile color.
The row is the core unit: app icon, title block, and trailing state glyph. Desktop rows are tall enough to feel like product tiles. Mobile rows compress to a tighter app-list cadence.
Objects enter with one-second fade and translate animation using a soft easing curve. Delays advance in 0.09 second steps from hero through footer. In-progress rows use a slow spinner.
At the mobile breakpoint the hero starts at the viewport top, body text drops to 14px, platform metadata hides, and the row system becomes more like a native app list.
The visual scale follows the type size because the page shell uses em units. On desktop the content column resolves to about 714px wide inside the centered shell.
The parity pass found that product-row wrappers needed display contents behavior. The visible row looked right before that fix, but computed row measurements were wrong.
The remaining numeric QA discrepancy came from spinner geometry sampled at different rotation angles. The layout metrics and row positions matched, so the spinner diff was classified as animation sampling.
Internal links route within the mirror. Product and App Store links remain live where the exact mirror needs them. Scripts that would hydrate or track against the source site were removed.
Use one proportional column when the product set is small and each item has enough identity to stand alone. The column works because there are nine products, not dozens.
Dim secondary text instead of adding heavy labels. This works best on a dark ground with very few competing states.
Let product icons carry color, detail, and brand energy while the surrounding interface stays quiet.
Use a small, consistent delay ladder when the page needs one paced reveal. Keep reduced-motion behavior explicit.