Home in native mode: plate glass, one lifted item, no ghosts
Rule (native-e2e §1, PLAN §1.7 rule 1): every Steam texel that shows content is either under opaque glassd glass or shown only at its own position. Home is windowless (PLAN §1.2), so there is no window cover. Every glass element is a plate (P9 G1): opaque glass drawn at the cover's depth that hides Steam's panel under it; the base mosaic shows Steam's content in front of it, only in declared bands. Only the attended item pops: +15 mm, non-interactive (default profile), over its own plate in the occluder variant.
viewer side (z +) z 0 Steam's real panel: takes every laser and gamepad input +1 mm +2 mm +15 mm disc at rest: plate + its art in the band slab (dz − 0.8 mm) attended: crop of the disc (x1.10), +15 mm plate, occluder variant mosaic bands (minus the popped rect) labels, dots: never popped on axis 35° off axis sees the lifted disc and, beside it, the occluder plate as its shadow: never a second copy
What each element does
ElementMechanismDefaultWearer
Discs, top-row controlsPlates (liquid)00
Attended disc, card, name plateCrop + slab over its occluder plate+15, non-interactive+15, interactive
Labels, dots, peeksSteam's panel00
Tab barPopup transform+25+25
Menu over HomeCrop in its thick plate (C1c)+10+30
Depths at rest: {0, +15, +25} mm; with a menu open {0, +10, +25}, the card at 0 (rule 6); ≤ 4 (VP P-46). Plates: ≤ 18 of 32 per page (P9 G1). Peeks stay CSS only.
Click-safe rule (PLAN §1.7 rule 2)
dz ≤ 0.25 × s × 0.769 mm, s = the shorter side of the smallest focusable the crop touches. Disc: the 200 × 180 cell, s 180. Card: Play's and More's 80 px hit elements, s 80. +15 mm needs s ≥ 78: both admitted. Shift at 35°: +15 mm = 10.5 mm = 14 px.
Static check (HA AT-10b, run as glass.py sgcheck) on __LGS_SG.dump() and DOM rects: (1) each pop's rect, inflated by 2 px, lies inside a plate of the same surface; (2) mosaic pieces lie only inside the declared data-lgs-mosaic bands and cover no Steam texel outside a plate with alpha > 0.05; (3) every crop is interactive: false in the default profile; ≤ 4 distinct dz. The reporter (P6) refuses a pop that fails (1).
Look check (HA AT-10c). glass.py hv home --offaxis with a cell attended (look, then delete both copies): one copy of the icon, its plate visible beside it as glass, labels single, no outline on any plate.