The card image is a video, blended into the card, in 3D
Card 1 below is the prototype: a poster frame loads instantly; when the card scrolls into view a muted 5‑second photographic clip (generated locally from the card's own still with an image‑to‑video model, no API) plays as a WebGL texture with pointer‑driven depth parallax, a light sweep, feathered edges that fuse it with the card, and floating 3D accents in front. Cards 2 and 3 are the current static photographs for comparison. Move the pointer over Card 1; click to pause.
VIDEO · 3D
Prototype v1.2: the picture is a looping photographic clip made from this card's own photo, blended into the card, with depth.Video · blended · 3D
1. What is it? — a card you show, not a file you hand over
A single card you show when you order. It carries the allergen names the kitchen is legally required to act on — and stops there. No surname, no diagnosis, no phone number, no account to create, no app the restaurant must install.
Static photograph (current)
2. Why does it matter who holds this? — the complete list can only live with you
You are the only one who could put the whole list together — and that is not a compliment to you, it is arithmetic. The hospital holds the admission. The doctor holds the prescription. The clinic holds the test.
Static photograph (current)
3. How do you show it? — turn the screen, say nothing else
You turn the screen toward the waiter. The kitchen reads the fourteen names it already works with. That is the whole exchange.
Drop-in for the live LP: replace one figure.well.shot with the figure.v3d markup above, add v3d.css + v3d.js + the two media files. Progressive: no JS → poster; no WebGL → plain lazy video with CSS tilt; reduced motion → the video still plays (it is the content), only tilt/parallax/sweep are off. Three.js 0.180.0 is loaded only when a v3d card is in view (same pinned module as Card 1). Nothing plays off-screen.