---
target: landing + experiences pages
total_score: 17
max_score: 36
na_heuristics: 10
p0_count: 2
p1_count: 6
timestamp: 2026-07-31T20-20-50Z
slug: src-site-pages-home-html
---
Method: dual-agent (A: design review · B: deterministic detector + measurement). Both ran isolated and in parallel.

Caveat, stated up front: the browser pane never composited frames, so **no screenshots were captured**. Assessment A substituted DOM + computed-style instrumentation (every violet use, gradient, shadow, contrast pair, tap target, font stack, spacing value, heading, and link label measured at 1280×800 and 375×812). No detector overlay was injected into the page, so there is nothing to look at in a browser tab — every number below comes from source reads, computed styles, and the CLI detector.

Targets: `/en` (`src/site/pages/home.html`, 6,593 lines) and `/experiences` (`src/site/pages/experiences.html`, 1,397 lines), plus shared `src/site/partials/`. Mode for both: **Persuade**.

---

## Design Health Score

Applicable maximum **36** (9 heuristics scored; #10 `n/a`).

| # | Heuristic | Score | Key issue |
|---|---|---|---|
| 1 | Visibility of System Status | 2 | No progress affordance on a 29,326px page. Press filter chips swap 33 items with no `aria-live`; two 300vh pinned scrubs give no length cue. |
| 2 | Match System / Real World | 3 | Vocabulary is right (PPD, IPD, DFR, 6DOF). But the FOV scrub shows `107°` before `116°` unlabelled, six thousand px after `107g`; "Highend Gaming"; the nav's violet "3" badge is explained only by a `title` attribute. |
| 3 | User Control and Freedom | 2 | Lenis overrides native scroll; two 3,520px pinned scrub sections can't be skipped; 8 autoplaying loops on landing with no pause control. Configurator selections are reversible. |
| 4 | Consistency and Standards | **1** | Four violets in play (`#4D1EF7`, `#4000FF`×12, `#B300FF`, `#9b59b6`). Six different family names for one typeface. 88 distinct off-palette hex values. 426 off-scale spacing values. Sentence case on landing, Title Case on Experiences. `<h2>` used for 15px footer column labels. |
| 5 | Error Prevention | 2 | Configurator can't reach an invalid state and flags "3D Face Scan required". But the Beyond-1-inserts-don't-fit-2e caveat is buried in prose, and the 2-vs-2e price decision lands 7,000px after the distinction is explained. |
| 6 | Recognition Rather Than Recall | 2 | The final chooser restates specs, but asks you to compare against everything learned 27,000px earlier with no sticky summary. |
| 7 | Flexibility and Efficiency | **1** | Scored, not `n/a`: accelerators exist on one page and not the other. Experiences has an 01–04 anchor rail; the landing page, 50% longer, has none. No jump nav, no skip-to-price, no `#choose` anchor from the hero. |
| 8 | Aesthetic and Minimalist Design | 2 | 35 violet instances, 16 gradients, and 14 box-shadows on a page whose system doctrinally has zero shadows. Three separate social-proof modules across 10,600px. |
| 9 | Error Recovery | 2 | The only error surface is the footer newsletter input, which carries `outline: none` with no replacement focus style and no error/success state. |
| 10 | Help and Documentation | **n/a** | Persuade surface; support paths are correctly routed off-page. |
| **Total** | | **17/36** | **47% — Poor band** |

Read that band carefully. It is not saying the page looks bad. It is saying that as a *decision instrument* for a $1,019 purchase, it underperforms: the price appears once at 90% scroll depth with no risk reversal, there is no CTA for 27,000px, and the system's own rules are contradicted often enough that consistency scores a 1.

---

## Design Specificity Verdict

### LLM assessment

**Landing — authored, but only about 60% of it.**
The hero is real design: "Beyond" at 88px beside "2" at 96px, "The world's smallest VR headset" at 64px over full-bleed video. The FOV cinematic scrubs a 96px mono `116°` readout. The OLED bench builds a 7.2 μm pixel-pitch swatch out of layered `repeating-linear-gradient` rather than shipping a JPEG, and pairs it with a live Colorful/Dark scene toggle — the technique matches the subject. The 127g → 107g comparison at 10% depth is the strongest single argument on the site. None of this drops onto another product.

Then roughly 40% is product-agnostic e-commerce furniture. The configurator (y=19,119–20,565) is a light-grey SaaS panel that abandons the black stage for 3,600px. The accessory rail is pasted vendor marketing. There are three testimonial modules. The closing model-chooser is a two-column comparison table. A mattress brand could ship those four sections unchanged.

**Experiences — not authored. It is a template.**
Hero is a gray line over a white line, both 38.4px, over a scrimmed video. Then four identical units: mono eyebrow → 72px H2 → alternating image/text. Then a 20-title game marquee duplicated to 40 DOM nodes. Swap the product name and the page holds perfectly, which is the definition of failure here. The 20-game rail is the anti-reference verbatim: a Steam storefront collection rail. It also breaks voice discipline in a way the landing page mostly doesn't — "game-changer" ×2, "unparalleled" ×4, "cutting-edge", "mesmerizing", "breathtaking", "State-of-the-Art". **The landing page earns the price; Experiences claims it.**

**Combined.** The two pages share nav, model chooser, prefooter, and footer, so the brand holds at the edges and collapses in the middle. Experiences reads as the same design system executed by someone who had the tokens but not the argument.

### Deterministic scan

`detect.mjs` exit **2**, **344 findings** across the five markup files. Weighted honestly:

| Rule | Count | Verdict |
|---|---|---|
| `design-system-font-size` | 156 | **Real at scale.** 58 distinct off-ramp sizes; `11px`×25, `15px`×21, `18px`×14, `10px`×11. ~35 are false positives (`15px`/`18px` are on-ramp); ~121 are genuine drift. |
| `design-system-radius` | 103 | **Mostly false positive.** 72 of them are the committed bevel system (`border-radius: 3px 3px 18px 3px; corner-shape: round round bevel round`) — the detector reads the shorthand's first token. Real subset: `30px`×5, `60px`, `52px`, `38px`, `9px`×4, `22px`. |
| `design-system-font` | 47 | **Mixed.** 42 are documented cut-name variants (FP). Real: `SFProDisplay-Bold` — a third UI typeface — and three parallel names for Neue Haas. |
| `design-system-color` | 28 | **Real, and under-counted.** Independent sweep finds 133 off-palette hex on home, 12 on experiences. |
| `layout-transition` | 2 | **Real.** `transition: height 0.5s ease-out` on `.cfg .customizer` — layout-property animation. |
| `bounce-easing` | 1 | **Real and effectively unguarded.** `.hero-scroll span` runs `heroScrollBounce 1.8s infinite` inside `@media (min-width: 992px)`; only the global `*` duration clamp catches it, which for an infinite keyframe is mitigation, not a stop. |
| `marquee` ×2, `dark-glow`, `broken-image` | 4 | Guarded or false positive. The press-logo drift and hero grain both have reduced-motion `animation:none`; the "dark glow" is a 1px legibility shadow. |
| `marketing-buzzword`, `aphoristic-cadence` | 2 | **Real.** See voice violations below. |

Independent measurements (not from the detector):

- **426 off-scale spacing values** across 5 files — 48% of all px spacing declarations in `home.html`, 38% in `experiences.html`. Values DESIGN.md names as never-ship are all present: **88px, 96px, 112px, 176px** (`experiences.html` alone ships `112px`×2 and `96px`×2).
- **186 off-palette hex literals, 88 distinct.** None declared in `tailwind.config.ts` or `globals.css`. Includes 65 distinct on home alone — an undocumented near-black ramp (`#0b0b0d`×12, `#050507`×5, `#0a0a0b`×4…), a parallel grey ramp beside `#787E81` (`#6b7177`×8, `#9a9ea1`×7, `#b6bbbe`×4…), and off-brand chromatics.
- **Violet is no longer a signal.** 54 `#4D1EF7` occurrences in `home.html` across ~24 distinct at-rest painting rules in 12+ sections, plus a second undocumented brand hue `#4000FF` ×12 as CTA hover, `#B300FF` in the "Buy Beyond 2e" gradient, and `#9b59b6` in a colorway swatch gradient. `experiences.html` is materially more disciplined (5 at-rest uses).
- **`!important` ×284** (235 in `home.html`, 46 in `chrome.css`) — a specificity war against the inherited Builder `styles.css`.
- **Dead font declarations shipping today:** `SFProDisplay-Bold` points at `/fonts/SFProDisplay-Bold.woff2` and `public/fonts/` **does not exist**; three FontAwesome faces point at `/static/media/` which also does not exist. Four `@font-face` rules declare `format('woff2')` for files that are bare OTF/TTF, and `neuehaas-bold.ttf` is actually a WOFF2 with no `format()` hint.
- **2.3 MB of Japanese glyphs are downloaded on both English pages.** `078-asset.ttf` (Zen Kaku Gothic New) has no `unicode-range` — there are **zero** `unicode-range` declarations anywhere in the codebase. Confirmed in the network log.
- **Landing referenced payload: 31.8 MB.** 16.1 MB images, 10.6 MB video, 4.9 MB fonts. Eight images exceed 500 KB, and the three `eyetracking_*.webp` (3.9 MB combined) are fetched eagerly on first load. 315 KB of the 584 KB document is inline, non-cacheable CSS/JS.
- **83% of images ship without width/height** (95/114 landing, 40/47 experiences) — a CLS liability on every fold.
- **~0% CSS reuse between the two pages.** 1,580 page-local rules; exactly **one** identical rule (`from { opacity: 0 }`). The same visual effect is implemented twice under two names (`circuitWake` / `gc-circuitWake`). Shared chrome *is* properly factored; sections are not.

**Where the two assessments agree hardest:** violet discipline, spacing-scale collapse, and the token-bypass scale. Where the detector caught what the review missed: the dead font files, the `format('woff2')` lies, and the 2.3 MB unused-glyph download. Where the review caught what the detector can't: the missing CTA, the missing risk reversal, and the fact that Experiences is a template.

**No visual overlay is available** — script injection was not attempted and the browser pane would not composite. Do not expect highlighted findings in a tab.

---

## Overall Impression

The middle third of the landing page is genuinely excellent — better than most hardware sites ship. The weight comparison, the FOV scrub, and the OLED bench are the real thing: numbers doing the arguing, technique matching subject, one idea per fold. The reduced-motion work (54 guard blocks plus 20+ JS early-returns) is the kind of discipline that almost never gets retrofitted, and it should be protected in every change below.

The problem is that this excellent argument is wrapped in a page that never asks for the sale, and that quietly stopped obeying its own system. **The single biggest opportunity is the last 4,000px.** The final three things a visitor sees before the price are third-party vendor copy, a two-column comparison table, and a violet→magenta gradient button — after which the price appears once, at 90% depth, with no warranty, no return window, and no ship date. Peak-end is inverted: the page ends on its weakest material and then asks for $1,019.

## What's Working

1. **Reduced-motion coverage is exceptional.** 54 `prefers-reduced-motion` blocks in `home.html`, 20+ JS `matchMedia` early-returns, `scrollIntoView` degrading to `behavior:'auto'`. Every canvas scrub, video band, and scroll reveal has a static path. Two gaps only (below), both narrow.
2. **The OLED bench.** Mono caliper readouts (5120×2560, 500,000:1, 7.2 μm, 32 PPD) at 44px on black, with a Colorful/Dark toggle that lets the display argue for itself, and a pixel-pitch swatch drawn in CSS rather than photographed. This is "show the engineering, don't claim it" executed exactly.
3. **The 127g → 107g comparison at 10% scroll depth.** Two numbers, no adjectives, a mono violet `BEYOND 2` label, placed where it does maximum work. Correct content in the correct position.
4. **The build system.** Shared chrome is genuinely single-sourced through `scripts/build-pages.mjs` — nav, footer, prefooter, and model chooser are one file each. The infrastructure for the block migration already exists; only the sections haven't moved.

## Priority Issues

**[P0] 1. Neither page asks for the sale between the hero and ~95% depth.**
Landing: hero "Order now" at y=702, next store link at y=28,348 on a 29,326px page. Experiences: nav CTA only, then "Buy Beyond 2" at y=18,421 of 19,407px — while offering **five outbound Steam links** mid-funnel (`Bigscreen on Steam` y=8,710, `Browse all SteamVR games` y=7,772, `VRChat on Steam` y=13,400). Every one sends a warm visitor away before offering them a checkout.
**Why it matters:** the page argues for 27,000px and never once asks. Anyone convinced at the FOV section must scroll 20,000px more to act.
**Fix:** a slim persistent buy bar (price + "Order now") that fades in after the hero passes, plus one violet CTA at each fold boundary — after `#fov-cine`, after `#fit-comfort`, after `#owner-reviews`. Demote the Steam links to plain text.
*Command:* `/impeccable shape`

**[P0] 2. The price appears once, at 90% depth, with zero risk reversal.**
`From $1019` / `From $1219` in `src/site/partials/model-chooser.html:164,204`. No warranty term, no return window, no ship estimate anywhere on either page. The only adjacent reassurance is a customs modal.
**Why it matters:** every objection the page spent 29,000px overcoming reappears at the exact moment the price does. For a $1,000+ considered purchase this is the largest conversion hole on the site.
**Fix:** one Fragment Mono line under each `mc-price` — return window · warranty · current ship estimate — mirrored in the persistent buy bar.
*Command:* `/impeccable clarify`

**[P1] 3. Violet has stopped signaling, and there are four of them.**
35 violet instances on landing across 12+ sections: two full-bleed gradient washes (1265×545 at y=1,784; 1265×720 at y=3,649) plus a third at y=19,119, all in off-token `#4000FF`; a violet→magenta `#B300FF` gradient on "Buy Beyond 2e"; a `#9b59b6` colorway gradient; violet *body copy* on the 3D-scan card; three violet "New" badges; a violet notification dot on the Blog nav link sitting 40px from the violet "Order now".
**Why it matters:** this is the AI/crypto gradient-slop anti-reference verbatim, and it makes the actual CTA invisible as a signal. The 2e button being a gradient while the 2 button is flat also implies 2e is the recommended path — probably unintended.
**Fix:** delete `#4000FF`, `#B300FF`, `#9b59b6`. Flatten both buy buttons to `#4D1EF7`, differentiating by fill vs. 1px outline. Badges become Hairline-outline; the blog dot becomes Reading Grey. Replace the 82 violet literals with `var(--brand)`.
*Command:* `/impeccable quieter`

**[P1] 4. Experiences is a template, and its hierarchy is inverted.**
`h1.exp-lead` renders at 38.4px in `#9BA1A5`; the four section `h2`s render at 72px in `#FCFCFD`. The page's most important sentence is its fourth-loudest, and the visually dominant hero line is a `<p>`. Below it, four structurally identical image/text units at uniform 80px rhythm — on-scale, but it means nothing reads as more important than anything else.
**Why it matters:** the page converts nobody and teaches nothing the landing page doesn't. If its job is "prove the library is real", a 12-title strip on the landing page does that in 600px.
**Fix:** decide what the page is *for* before restyling it. Then: one hero heading at the Jumbo/XL token, drop the gray/white two-tone split, step section H2s down to 48px, and break the uniform rhythm so one section leads.
*Command:* `/impeccable shape`

**[P1] 5. Copy voice collapses on Experiences and leaks into landing.**
"Step into a realm where the lines between reality and virtual blur" appears twice on Experiences and twice more on landing. Plus "game-changer" ×2, "unparalleled" ×4, "mesmerizing", "breathtaking / heart-pounding", "State-of-the-Art Stereo Microphones", "revolutionize", "next-generation", "cutting-edge". 45 em dashes in `home.html` source, 14 in `experiences.html`. The accessory rail is pasted third-party vendor marketing (`home.html:4599,4609`).
**Why it matters:** CLAUDE.md's voice rule is explicit — confident, specific, technical stated plainly, lead with the number, no hype, no em dashes. This copy is the opposite, and it sits immediately before the price.
**Fix:** rewrite every Experiences H3 to lead with a number or a verifiable mechanism ("Virtually Indistinguishable from Real Life" → "32 PPD at 116°, held through a three-hour stint"). Rewrite the accessory descriptions in-house: one sentence, what it does, what it needs.
*Command:* `/impeccable clarify`

**[P1] 6. The first 5,712px of the landing page have no heading structure.**
The only `<h1>` is `<h1 class="vh">` — visually hidden, placed *before* the nav (`home.html:80`). The next heading is an `<h2>` at y=5,712. "This is Beyond 2", "Every gram matters", "The Lightest PC VR Headset in the World", "Advanced optics. Unbelievable immersion." are all `<p>` inside `builder-text span`.
**Why it matters:** a screen-reader user gets one generic SEO string, then nav, then 5,700px of unstructured prose. The visible hero headline also carries no semantic weight for search.
**Fix:** promote "This is Beyond 2" to the visible `<h1>` and delete the hidden one; promote each section opener to `<h2>`.
*Command:* `/impeccable audit`

**[P1] 7. Accessibility defects with named owners.**
The header logo link has **no accessible name on every page of the site** (`src/site/partials/nav.html:7-9`) — and per the nav-twin rule in CLAUDE.md, the same fix is owed to `bigscreenvr-store-theme/sections/header.liquid`. Five press-quote anchors (UploadVR ×2, The Verge, Forbes, RoadToVR) are image-only links with `alt=""`; two carousel buttons are icon-only with no label. `/experiences` has **no skip link** and **no `og:image`**. Five slider thumbnails carry generic `aria-label="Image 1…5"` on distinct game screenshots.
**Fix:** `aria-label` on the logo and each press anchor, descriptive labels on the thumbnails, port the skip link and OG tag into the experiences page template.
*Command:* `/impeccable audit`

**[P1] 8. Violet-on-black fails contrast at 2.84:1 — including the focus ring.**
27 failing text pairs measured. The global focus indicator is `outline: 2px solid #4D1EF7` on a black stage: 2.84:1, below the 3:1 floor for non-text indicators. Also failing: `.mc-violet` "Beyond?" (48px), `.xs-em` (44px), `.k` "FOV" (13px), `.et-card-link` (14px), the FOV disclaimer at 10.88px `#484B4E` (**2.39:1**), `.bsx-detail-k` (2.61:1), `.bsx-sec-n` step numbers (2.70:1).
**Fix:** focus ring becomes `#FCFCFD` on dark surfaces (violet already passes at 6.7:1 on light). Emphasis text on black carries the emphasis with weight, not hue.
*Command:* `/impeccable audit`

**[P2] 9. The design system is a specification for a page that no longer exists.**
`home.html` alone: **522 raw hex literals, 235 `!important`, 136 inline `style=` attributes, 2,065 px literals** in 6,593 lines. Computed section padding includes `140.8px`, `115.2px`, `89.6px`, `76.8px`, `330px`, `128px`, `104px`. Legacy `<font color="#787e81">` tags still carry color. `home.html:2140` has the comment `/* Orange transition */` above a magenta value.
**Why it matters:** "tokens only, never inline raw hex or magic numbers" is not partially violated, it is inoperative. Nothing here can be re-themed or handed to a CMS, which is the stated reason the rebuild exists.
**Fix:** this is the argument for finishing the `src/components/blocks/` migration, not a cleanup pass. Interim: swap the 82 violet literals for `var(--brand)` and snap the six worst spacing offenders (`20px`, `18px`, `72px`, `28px`, `22px`, `14px`) to tokens.
*Command:* `/impeccable extract`

**[P2] 10. Mobile is desktop with the columns stacked.**
29,334px at 375px wide = **36.1 viewport-heights**, identical to desktop — zero content compression, violating DESIGN.md's Compression Rule at page scale. **62 tap targets under 40px**, including the header "order now" at **86×34px with 11px type** — the most important conversion element on mobile is one of the smallest things on screen. **121 distinct text runs below 12px** (press chips 10px, nav badge 9px, FOV disclaimer 10.88px).
**Fix:** collapse the three testimonial modules into one on mobile; cap the press rail at 6 items behind "See all"; raise the header CTA to 44px minimum with 13px Fragment Mono; floor body and label type at 12px.
*Command:* `/impeccable adapt`

**[P2] 11. Performance: 31.8 MB referenced on landing, and 2.3 MB of it is Japanese glyphs on an English page.**
Eight images over 500 KB, three `eyetracking_*.webp` (3.9 MB) fetched eagerly. 83% of images lack width/height. `052-asset.otf` is requested twice (duplicate `@font-face` in `styles.css:4634` and inline `home.html:87`). Four dead font declarations 404 silently. Six background-video loops ship without posters.
**Fix:** `unicode-range` on the JP faces (or drop them from `/en`), lazy the eyetracking trio, add width/height sitewide, dedupe the OTF, delete the SFPro and FontAwesome declarations, re-encode the eight oversize WebPs.
*Command:* `/impeccable optimize`

**[P2] 12. Two reduced-motion gaps and one flat-stage violation.**
`experiences.html` has **no page-level `*` reduced-motion net** — the `home.html:63-70` block is not mirrored, leaving 29 transitions covered only by four explicit blocks. `experiences.html:219` (`yt-ambient-reveal`) is unguarded. `experiences.html:510` guards `opacity` and `transition` but not `animation`. Separately: real drop shadows on card surfaces at `home.html:4222` (`0 24px 48px`) and `experiences.html:130` (a three-layer shadow), plus `backdrop-filter: blur(10px)` on the shipping modal.
**Fix:** mirror the global net into `chrome.css` so every page inherits it; add `animation: none` to the two gaps; replace card shadows with a 1px Hairline plus a tonal step to `#222425`.
*Command:* `/impeccable polish`

---

## Cognitive Load — 6 of 8 checks fail (critical)

| Check | Result |
|---|---|
| Single focus | **FAIL** — fold 1 carries 5 competing signals: announcement bar, nav CTA, nav violet badge, hero "Order now", hero "Watch the trailer", plus a bouncing scroll cue. |
| Chunking | PASS |
| Grouping | **FAIL** — three trust modules split across 10,600px instead of one trust zone. |
| Visual hierarchy | **FAIL** — 44px is used for both headlines *and* running body sentences on landing. On Experiences the H1 is smaller and dimmer than four H2s. |
| One thing at a time | **FAIL** — the configurator asks 4 decisions inside a sticky stage while the page keeps scrolling; 8 looping videos run concurrently. |
| ≤4 options per decision | PASS — 4 colorways, 2 cushions, 3 straps, 1 add-on, 2 models. The cleanest thing on the page. |
| Working memory | **FAIL** — first price at 26,452px of 29,334px. |
| Progressive disclosure | **FAIL** — 36.1 viewport-heights of mandatory linear scroll on mobile with no TOC, anchor rail, or skip. |

## Emotional Journey

**Peak (0–800px):** strong. Split wordmark over video, one violet CTA, restraint. Best fold on either surface.
**Rise (2,800–14,000px):** 127g→107g, pancake optics, the FOV scrub, the OLED bench. Correctly paced, one idea per fold, numbers arguing. Genuinely excellent.
**Valley 1 (16,921–20,565px):** `#fit-comfort` flips to `#F4F3F3` and the configurator lands on light grey. The black-stage illusion breaks for 3,600px, and the section that should feel most like bespoke craftsmanship feels most like a checkout add-on picker.
**Valley 2 (14,355 / 23,339 / 24,970):** three testimonial blocks. By the third, the reader has processed 33 press cards, 8 owner reviews, and 3 support quotes. Social proof stops reassuring and starts reading as protesting.
**End (25,704–28,348px):** vendor copy → comparison table → gradient buy button → price with no reassurance. **Peak-end is inverted.**

## Persona Red Flags

**Jordan (first-timer).** The hero says "This is Beyond 2" and "The world's smallest VR headset" — it never says *what it is*. No "PC VR headset", no "requires a gaming PC", no price. Jordan learns a PC is required at y=22,643 and the price at y=27,900. The FOV scrub shows `107°` six thousand px after `107g` — two different 107s, both large, both mono. Reaches the configurator and is asked to pick a cushion, strap, and lens system before knowing what it costs.

**Riley (stress tester).** Reads "surprisingly wider than… Valve Index" (`home.html:3010`), then the footnote directly beneath: 116° vs 114°. Two degrees — and the footnote is 10.88px at 2.39:1, which reads as hiding it. Riley now discounts every other claim. Tabs through and hits five press links that announce only "link". Reads the gradient "Buy Beyond 2e" against the flat "Buy Beyond 2" as an upsell nudge. Looks for warranty and returns at the price; finds a customs modal. **Turns on reduced motion and the site rewards him** — everything degrades cleanly.

**Casey (mobile).** 36.1 viewport-heights to the price; Casey will not arrive. The only CTA in reach is an 86×34px header button with 11px type. Press filter chips at 10px in a horizontal scroller. Eight autoplaying loops on cellular. Hits the configurator's sticky stage where white overlay type sits on a scrim over a **user-selectable** stage color measured at `#CFD2D4` — pick a light colorway and `.bsx-sub` approaches unreadable. That's an unhandled state, not a static contrast miss.

**The cross-shopper (from PRODUCT.md — comparing Quest 3 / Index / Vision Pro).** Arrives for one thing: a defensible side-by-side. The site gives exactly **one** comparison — the FOV footnote, 10.88px, 2.39:1. No weight comparison against Quest 3 (515g) or Index (809g), despite 107g being the best argument on the site; the only weight comparison is Beyond 1 vs Beyond 2, which this visitor doesn't own. `5120 × 2560` and `32 PPD` are stated in isolation and mean nothing without a reference. Base stations and controllers are marked "REQUIRED" 2,600px *before* the price, and their combined cost is never stated — a cross-shopper against an all-in-one Quest 3 will do that math and feel misled.

## Minor Observations

- Double-space typos in production: "Bigscreen Beyond  2", "Beyond  2e", "running on  AMD and NVIDIA GPUs".
- "Highend Gaming" should be "High-End Gaming" (`experiences.html:4,565,664`).
- Five footer column labels are `<h2>` at 15px/400, competing with real section headings in the outline.
- 51 stylesheets load on `/en`, including a full Klaviyo reviews widget with its own accent-color focus rules — the "generic Shopify storefront" leaking in literally, as a dependency.
- The games marquee duplicates 20 titles to 40 DOM nodes with no `aria-hidden` on the clone; screen readers read the list twice.
- `circuitWake` and `gc-circuitWake` are the same effect implemented twice under two names.
- Experiences ships `112px`×2 and `96px`×2 — both on DESIGN.md's explicit never-ship list.

## Questions to Consider

1. The landing page's best 8,000px is the optics/FOV/OLED run. Why is it buried at 20–45% depth behind a video hero that states no argument? If the hero opened on `107g` and `116°` instead of a wordmark, would the page need to be 29,000px at all?
2. What is Experiences actually *for*? It converts nobody and teaches nothing the landing page doesn't. If its job is "prove the library is real", a 12-title strip on the landing page does it in 600px.
3. The 8px scale, the 7-color ramp, and the two-typeface rule are stated as binding — and `home.html` alone contains 522 raw hex values, 235 `!important`s, and 2,065 px literals. Is the design system a specification, or a description of a page that no longer exists? Which one changes?
4. The site never compares Beyond 2 to a Quest 3, an Index, or a Vision Pro, except in a 10.88px footnote at 2.39:1 that undercuts its own headline claim. PRODUCT.md says the user is cross-shopping exactly those three. Is the omission confidence, or avoidance — and does the visitor read it as the second?
5. A $1,019 purchase is offered with no return window, no warranty term, and no ship date. What is the argument for withholding those at the exact moment every objection reappears?
