# 89 Hollow Gallery **Idea.** The empty part of an image can carry the invitation. **Composition.** Monumental dark silhouettes contain pale cut-outs. Titles and entrances inhabit the negative spaces, with burnt-orange margins and almost no conventional container furniture. **Navigation and complete example.** Enter six original silhouette studies through their cut-outs, inspect the process behind a work, reverse its figure-ground relation and assemble up to three works in a local exhibition. **Responsive and inclusive behaviour.** Each cut-out fills the available width and contains a large labelled button. The complete work index remains visible in reading order. All controls are native buttons or labelled inputs. Movement is discretionary, no sound starts automatically, reduced-motion preferences remove transitions, and a direct index exposes the same content. **Adaptation.** Make the empty area a real, legible entrance. Preserve labels and focus outlines when silhouettes become complex. Retain the relationship between navigation and content. Do not reduce the reference to a generic hero followed by interchangeable cards. **Research.** [Rafaël Rozendaal — Internet works](https://www.newrafael.com/internet?filter=website). These are conceptual precedents, not copied artwork, source code, branding or text. All diagrams and sample writing in this specimen are original, fictional material. ## Defining patterns - Negative-space navigation - Figure-ground reversal - Exhibition assembly ## Routes - Entry: /preview/89-hollow-gallery/start - Work and process: /preview/89-hollow-gallery/work - Your three-work exhibition: /preview/89-hollow-gallery/show ## Implementation and assets The independent Vue component owns its layout and interaction. Only history navigation and optional local storage come from useSpecimen.ts. The ZIP contains the helper, runnable project, fonts, original source, all captures and their checksums. Local font files retain their OFL notices. CSS/SVG artwork is MIT; any photographs retain the notices in assets.json and THIRD_PARTY.md.