revealed · design presents
every stroke earns its place
principal cast
starring
Steven
and
SAL900X
in a supporting role
Gill Sans MT
directed by
Steven
produced by
Steven · SAL900X
written by
Steven with SAL900X
based on a short hunch by
Steven
executive production
executive producer
Steven
co-producer
SAL900X
line producer
a to-do file named soon.txt
unit production manager
Netlify
production coordinator
Git
script supervisor
SAL900X
continuity
the service worker
development
Steven · SAL900X
cinematography & light
director of photography
The Leica
second unit DP
The iPhone
gaffer
CSS filter: brightness()
best boy electric
radial-gradient
key grip
position: fixed
best boy grip
position: absolute
dolly grip
transform: translate3d
crane operator
perspective: 900px
focus puller
the cubic-bezier swell at center
clapper loader
DOMContentLoaded
camera operator (steadicam)
requestAnimationFrame
DIT
the browser dev tools
lighting technician
mix-blend-mode: screen
art department
production designer
Steven
art director
Steven
set decorator
a single baseline grid
property master
the Bitossi Rimini Blu vase
concept artist
an evening in December with a pencil
storyboard
post-its (torn corners)
construction coordinator
flexbox
scenic painter
background: #2C2C2C
greensman
there are no plants on this site
costume & makeup
costume designer
Gill Sans MT (weights 300–800)
wardrobe
font-weight: 400 · font-weight: 700
hair & makeup
letter-spacing: 0.005em
prosthetics
font-feature-settings: "kern"
colorist (on set)
flame · graphite · bitossi · cream
visual effects
VFX supervisor
SAL900X
compositor
canvas 2d context
halftone artisan
an 8×8 clustered-dot matrix
duotone printmaker
the riso press that does not exist
particle system
fourteen floating motes
3D rendering
Three.js r128
matte painter
linear-gradient(to bottom, …)
roto & paint
mask-image: linear-gradient
VFX coordinator
the dithertone filter (D)
editorial
editor
Steven
assistant editor
SAL900X
colorist
the graphite plate
negative cutter
git rebase -i
continuity supervisor
prefers-reduced-motion
title designer
a slow crossfade
sound & music
composer
the hum of the room
sound designer
silence
foley artist
the keyboard
boom operator
a tall lamp
production mixer
absolutely nothing
re-recording mixer
SAL900X (humming)
music supervisor
Steven's headphones
orchestrator
the cooling fan
motion
motion designer
Steven
easing curves
the ILM cubic-bezier
keyframer
@keyframes
tweener
transition: 220ms ease
physics consultant
sin(t)
choreographer
the conveyor belt
stunts
stunt coordinator
SAL900X
stunt double for Steven
a console.log
stunt double for SAL900X
a placeholder PNG
fight choreographer
merge conflict, resolved
high fall
the 4am build
photography
still photographer
Steven
medium format
a patient afternoon
darkroom technician
Adobe Lightroom
print maker
the halftone mode (H)
contact sheet
photoplate.html
transportation
transportation captain
CDN (Netlify Edge)
picture vehicles
The Leica
picture vehicles
a Moka Express
driver
HTTP/2
fuel
electrons
catering & craft services
caterer
leftover pizza
craft services
coffee (black) · coffee (black) · coffee (black)
pastry chef
Pane Bianco
sommelier
reverse osmosis tap water
animals & minors
animal wrangler
n/a—no animals were hired
on-set tutor
MDN
child wrangler
n/a—no minors were hired
welfare of ceramics
the Rimini Blu vase was not dropped
insurance liaison
prefers-reduced-motion
casting
casting director
Steven
extras
every pixel that did not make the cut
background players
the fourteen ambient particles
body double for the logo
favicon.svg
locations
locations manager
DNS
location scout
Google Fonts (rejected)
permits
Monotype Web Font License
primary location
a small room
secondary location
an Edge POP somewhere
publicity
publicist
word of mouth
press kit designer
/.netlify/functions/press-kit
social media
(intentionally left blank)
poster design
og-image.jpg
trailer
photoplate.html
assistants
assistant to Steven
SAL900X
assistant to SAL900X
Steven
assistant to the assistants
the clipboard
production assistant
git status
personal assistant
the undo stack
main title sequence
title designer
Steven
end titles (this document)
Steven · SAL900X
end titles—code
SAL900X
end titles—concept
Steven
— intermission —
notes from the type director
typography · 02
Gill Sans MT does the talking. Inconsolata does the pointing. Inconsolata appears only inside the @ sign, the . in revealed.design, keyboard captions like [SPACE], and timestamp labels. It does not, under any circumstance, render prose. If you see a sentence in Inconsolata on this site, that is a bug and the bug predates this document.
typography · 03
Display sizes sit at -0.01em tracking; body sits at +0.005em; uppercase labels widen to 0.22em and keep climbing up to 0.36em for section heads. Leading is 1.15 for credits (two-line centered cadence), 1.55 for prose. These numbers are not negotiable within a session; they are negotiated once per year.
palette · 01
#2C2C2C graphite—primary surface. Slightly above absolute black so film grain can live in it.
#F5F0E8 cream—text, the one warm note. Not white. Never white. White implodes any photograph it touches.
#1E5FA8 bitossi—secondary accent, sampled from the Rimini Blu glaze on an Aldo Londi vase that lives on the shelf. Reserved for hyperlinks, section-sub labels, and one-word emphasis.
#E8460A flame—primary accent. Reserved for state changes, dot separators, section heads, and the SAL900X eye. Used sparingly on purpose; the moment it becomes common it stops meaning anything.
halftone · 01
Keybind H toggles a full-page amplitude-modulated halftone. The screen is an 8×8 threshold matrix, two centers per tile—one at n/4, one at 3n/4. Cell size defaults to 16px. At rest it looks like a thumbnail in a Sunday paper.
Shift-H enters escalate mode: cell size scales with each slot's swell curve so that the center (plateaued) image breaks down into Lichtenstein-scale benday dots while the off-axis thumbnails stay tight and legible. The curve is the same cubic-bezier used for slot scale, taken to the 4.5 power so the dots only blow up inside the last 15% of the plateau.
riso duotone · 01
Keybind I (and Shift-I for the inverted plate) runs the image through a simulated riso pull. Shadows hit on the graphite plate; highlights pass on the flame plate. The pass is a per-pixel multiply blend in canvas context, not a CSS filter, because CSS filters compress a narrow midtone band and a proper duotone needs the full range.
Rejected palette: Bitossi + Flame. The blue's R-channel sits at 0.12, which annihilates the flame in multiply and turns every photograph into a blue mud. Some duotones do not work and the only honest response is to not ship them.
motion · 01
The conveyor belt in photoplate.html uses an asymmetric cubic-bezier—0.32, 0, 0.16, 1—in and out of a short plateau at center. The plateau is deliberate. Without it the image never holds still long enough to reward looking at it.
All motion respects prefers-reduced-motion. The swell collapses to a cross-fade; the ambient particles freeze in place; the halftone dither stays static. Nobody on this site is going to get a headache.
infrastructure · 01
Every GLB, every WOFF2, every custom cursor PNG is cache-first. The HTML is network-first so edits propagate. sw.js versions bump on every shipped change (revealed-v{N}), and old caches are purged on activate. This is the unsung department head of the whole production—she never gets a billing card but the photoplate loads in 140ms on a cold cache and 30ms on a warm one because of her.
photography · 01
A frame earns a slot if it answers one of three questions: what does the light do here, what does the object refuse to do, or who else was in the room. Frames that only document an event do not go in. The conveyor is not a camera roll; it is a curated edit.
3d viewer · 01
The viewer is a GLB loader wrapped in a minimal orbit control. Every cursor state—hover, grab, grabbing—is a pre-rendered 32px PNG with a 64px hi-dpi fallback. Browsers can't be trusted to scale SVG cursors on all platforms, so the set is baked, quantized, and shipped. The cursor set also includes a light variant for cream-background frames, swapped via data-attribute on the slot.
form & footer · 01
The biggest line item in the design budget is the white space nobody talks about. The contact page breathes at a 12vh vertical rhythm and refuses to compress even on 13-inch laptops, which is why the ticker is pinned to the viewport floor. Breathing room earns trust; dense layouts ask the reader to prove they're worthy of the information. This is not that kind of site.
after
Magneatosphere · Decibelometer
Robert Hodgin & The Barbarian Group, 2008
TimeWarp
Pee-wee's Magic Screen · Paul Reubens & Prudence Fenton, 1986
special thanks
Massimo Vignelli
Dieter Rams
Paula Scher
Susan Kare
Josef Müller-Brockmann
Saul Bass
Stanley Kubrick
Douglas Trumbull
Roy Lichtenstein
Eric Gill (the typeface, not the man)
Maryam Mirzakhani (consulted on the curved poses)
every designer who ever shipped a 404 page with love
dedication
for anyone who read the source.
in memoriam
retired 2026
the Bitossi-Flame duotone
retired 2026
FM halftone (replaced by AM clustered-dot)
retired 2026
the password gate on /contact
retired 2026
Deliverable 109a (paper-cut prototype)
retired 2026
the hover-to-navigate SAL900X bezel click
legal
fine print · 01
No cookies are set. No third-party scripts are loaded. No analytics are transmitted. The only network calls this site makes are to its own edge and to a press-kit function at /.netlify/functions/press-kit, which logs nothing beyond a counter.
Gill Sans MT Pro is licensed under the Monotype Web Font License; redistribution of the WOFF2 files is prohibited. Inconsolata is under the SIL Open Font License. Three.js r128 is under the MIT License. All photography on the site is the property of Steven.
Any resemblance to HAL 9000 is affectionate and deliberate. Warner Bros. owns the rest.
colophon
Typeset in Gill Sans MT Pro at weights 300, 400, 500 and 700.
Monospace passages in Inconsolata.
Set on a 12-column baseline grid with a 12vh vertical rhythm.
Built in plain HTML, plain CSS, plain JavaScript. No framework, no build step, no transpiler.
A reconstruction across three periods — 1998 DOS-edutainment register, 2012 iMac chrome, 2026 build. The eras are quoted, not lived.
Written in a small room over several evenings.
Deployed by git push.
fin.
mmxxvi · revealed · design
typography · 01
The weight ladder.
The site runs on Gill Sans MT Pro in eight cuts—Light, Light Italic, Book, Book Italic, Medium, Medium Italic, Bold, Bold Italic, Heavy. Headings lean on 300 and 500; body sits on 400; emphasis escalates to 700 only when a line has earned it. No synthetic bolds, no faux italics, no fallback stacks masquerading as Gill. When a weight isn't in the library, the answer is to write the line shorter, not to fake the weight.
The license is a proper Monotype Web Font License—twenty-one styles purchased, nine deployed. The remaining twelve are held in reserve for a print one-sheet that may or may not exist.