An archive label cut for the empty ground floor of a Singapore housing block. The whole first screen is one garment, and the only way to see the back of it is to move your cursor.
A drop page is usually a column of photographs. You scroll, the pictures go by, and at the bottom there is a button. The visitor never touches the product.
Voiddeck hands them the product instead. The first viewport is one jacket, and the cursor is a turntable: move left and it turns left, move right and it turns right, with a dead zone through the middle of the screen so it sits square while your cursor is resting there. Twenty-four stills, fifteen degrees apart, swapped as you move.
The original spec called for a scrubbed video. That was worth dropping. A video seeking on every pointer move judders, and the spec's own notes were already full of workarounds for it — which is the tell that the container is wrong, not the idea. Stills swap instantly and can be framed individually.
Under it sits the world the clothes are named for: the void deck, the covered concrete floor every Singapore block stands on. Pillars, a notice board, and nobody's furniture. Scroll and it slides up over the jacket, carrying ten pieces that scale in and out as they pass.
The photography is generated, and the page says so. A one-person studio does not have a lookbook budget, so the set is art-directed frame by frame in Gemini and then unified in the browser. The colophon states it plainly rather than letting anyone assume a camera was involved.
The cursor's horizontal position maps to a bearing, the bearing rounds to the nearest fifteen degrees, and that frame is drawn; a dead zone across the middle of the viewport holds the garment square. Swapping a decoded bitmap is instant, so there is no seek to wait on and no judder to guard against. Without a fine pointer the jacket turns itself, a frame every four hundred milliseconds, so a phone never gets a dead photograph.
All twenty-four frames have to be decoded and treated before the first turn, so the wait was built out of the thing being waited for: a ring of twenty-four ticks, each one lighting as its own frame lands, over a counter reading Frame 07 / 24. It reports real decode state rather than running a timed animation at you. Under reduced motion the page fetches one file instead of twenty-four and holds the front of the jacket.
Every photograph on the page passes through the same 4×4 ordered dither into the same two tones. Luminance is crushed before the threshold, because an even mid-grey resolves to a fifty-per-cent checkerboard and that is noise rather than an image. It is what makes thirty-four separate generations read as one afternoon's shoot, and the texture is dense enough to swallow the artefacts generation always leaves behind.
Everything floating over the imagery is exclusion-blended, so one set of type stays readable over both the bone garment and the black panel without a single darkening layer. The catch is that a blend opens a stacking context and nothing inside it can opt out — a yellow set there comes back blue. Every deck in the country solves that the same way: you screw a plate to the pillar and print on it. The caption sits on one, opaque and outside the blend, and it is the only surface over the photograph where the signal yellow survives.
Inter Tight at 500 does everything from eleven-pixel readouts to the hundred-and-ninety-pixel statement mid-scroll; scale and case carry the whole hierarchy. The build is one static file with no framework and no build step — its only request beyond the imagery is that one webfont — and the scroll narrative, the turntable and the dither all run in a single animation loop.
Nothing here is in normal flow: every visible layer is fixed and positioned from one scroll read per frame, which is the whole reason it stays smooth. That would ordinarily mean a blank page without JavaScript, so the stack unpins into a plain scrollable document instead — statement and all ten pieces at full size, no dead controls left in the tab order.
Tell me about it. I'll come back with whether it's a Tier 01 or Tier 02 job, a timeline, and a fixed quote.
hello@studiokiln.space