Colophon
How this site was made.
A studio's site is the first product you get to judge. This is the record of how it was designed and built — the decisions, the materials, and the seal.
The signed work
In Korean tradition, a finished work receives the dojang — the hand-carved personal seal, pressed in cinnabar paste. The seal is the certificate: one person made this, and signs it.
Which is exactly what the studio sells: design and engineering by the same pair of hands, from first sketch to deploy. So the site treats each project as a catalogued, sealed work — record rows, registry numerals, and the 강 (Kang) pressed at the end.
Ink and paper
The palette comes from the material, not from a trend: hanji paper, warm black ink and a single accent — the seal's cinnabar, rationed to signing moments and registry numerals. No shadows, no rounded corners; depth is carried by hairline rules, the inversion to ink in the footer, and a paper grain laid over the whole page.
Typography
Display and text are Hahmlet, by Contrast Foundry — a variable serif designed for Hangul and Latin to live together, with lineage in early Korean movable type. It is the one typeface that is, literally, about this studio's name.
The supporting voice is IBM Plex Mono: labels, spec rows, figures and forms — the engineer's ledger. Emphasis in headlines uses no italics: it is weight contrast, carved 600 against light 300, like different pressures of the same knife.
In this redesign the metaphor became literal. On the cover and case-study titles, Hahmlet's weight (300 to 650) follows the proximity of your hand, word by word, damped by a spring — the type gives like paper under pressure and returns to its resting weight when the hand leaves. Body text never moves. On touch, a single subtle press-in; under prefers-reduced-motion, static weights.
The living seal
The seal on the cover is not an image — it is pressed live. A deterministic generator (mulberry32) drives a noise mask that wears the edges, varies the paste density and shifts the registration a few tenths of a degree — the way a real seal never prints the same twice. Each impression gets a number.
And now the impression lives. After it settles, the stamped pixels themselves dissolve into 2,000–6,000 cinnabar particles suspended on the paper, answering your hand like ink in shallow water — heavy, viscous, dragging ink-2 ghosts. Four seconds of stillness and the ink flows home: the seal presses again, with a new number and new wear. Tapping the seal forces the press at once.
All of it in 2D canvas and typed arrays — no WebGL, no libraries. One loop, paused when the hero leaves the screen or the tab sleeps. The particle count scales with the hardware and with a frame budget measured live: if a frame runs over, the field sheds ink; if it insists, it returns to the plain press. Without JavaScript you get the static SVG impression. Under prefers-reduced-motion, the seal stays pressed and still — zero particles, zero drift.
press to stamp again
Motion
The complete inventory. The seal presses and dissolves on the cover. Navigation is an ink blade — cinnabar leading, tinta behind — sweeping the screen in ~450 ms: going deeper, left to right; back to the catalog, the reverse. Content doesn't fade — it prints: a 200 ms stamp-settle, no bounce, with the registry numerals pressing in with a hair of rotation drift, echoing the seal's grain. On the works, a cinnabar bleed sweeps under the title and a miniature 강, with its own wear, presses into the plate's corner — clicking is stamping that work. On case studies, a registration rail tracks your reading like the edge markings on a printer's proof, in pure CSS. And the footer signs once per session: the 강 drawn in stroke order. Animation is prayer, not wallpaper.
Every moment above justifies itself in one sentence using the words ink, seal, press or paper. Whatever failed that test did not ship. Under prefers-reduced-motion, navigation becomes a 150 ms crossfade and everything else stands still — and complete.
Measures
Static Astro, nothing running in the client beyond the seal, the type pressure and the form. The whole site's JavaScript fits in under 60 KB compressed — the ink field alone in under 30 — and the studio owes nothing to any animation library or third-party script. Fonts self-hosted in subsets — the Hangul only downloads the slice a page uses. Properly bilingual (pt-BR and English, with hreflang), 4.5:1 minimum contrast, visible focus everywhere, and the same care on the pages nobody indexes.