A portfolio now has two audiences: the human reading it, and the machines that screen it first. This site treats that as the design problem — built end to end by directing an AI, every change verified before it shipped. No NDA on this one.
In short.
What was built
The artifact under study is the whole site you may have just walked through — every page below appears again in this case as evidence.
Fig. 1 — Home’s shader water, the storybook behind its door, the resume road, both NDA case studies, and Flow — each drawn as its own signature.
The problem
Two strong case studies — both enterprise, both security-and-money, both under NDA. Left alone, that body of work files its author under “enterprise security designer.” The site’s first job: prove the method travels to any domain, inside a recruiter’s 30-second scan.
The newer problem: portfolios are increasingly compressed by AI before a human sees them. The brief became one site, honest at two depths — a cinematic layer that earns the person, a complete plain-text layer beneath carrying the same facts for anything that parses — because when a screener summarizes you before a human reads you, semantic HTML and structured data are how the facts survive the compression.
The work is security and fintech. The skill is neither. Don’t let the site box me in.
The brief, distilledFig. 2 — Two locked projects; one method, travelling.
Creative direction
The direction was committed before code: six colour values, two typefaces, and one communication rule — a recruiter scans before they read, so type carries the hierarchy and motion carries attention, never information. The visual references were cinematographers (Deakins, Fraser), chosen for restraint: darkness, one light source, nothing decorative.
The moodboard also specced a sound layer — cut before build: audio a visitor must mute is a cost wearing a craft costume. Every later decision answered to this document, and the constraints tested it immediately.
Fig. 3 — Six values, two typefaces, and the sound layer: specced, weighed, and cut before build.
Constraints, and the way around each
Within those walls, the work went through its own trials — nowhere harder than the section recruiters see first.
Fig. 4 — Each constraint produced a design response, not a reduction in ambition.
Iteration
Cards read as template. Big numbers failed the glance test — twice. A proof sentence demanded reading. What shipped: living illustrations that play on arrival, with the real numbers demoted to captions. Rebuilds that cheap demand a system for judging them — so I built one.
Fig. 5 — Four attempts: card, number, sentence, scene. Each rejection came with a named reason; the last one is still alive.
An attractor that waits for the visitor to decide isn’t an attractor. They have to be caught before they choose.
Why hover-gated animation was rejectedDirecting the AI
The loop ran at implementation speed: I set the target with a reference, the AI builds, a headless browser measures, I judge. First drafts were reliably competent-generic — catching that was my job. One frame of Blade Runner 2049 redirected the hero water better than any paragraph of adjectives.
Fig. 6 — The loop: reference → build → measure → verdict. “Fixed” = a screenshot plus a number: pixel-deltas for motion, opacity readings for text sync, flicker counts for stability, overflow probes at three widths.
Nothing was called fixed because it looked right — it had to survive measurement. The loop caught what mattered: an invented motive corrected to the truth, a chronology error in the story’s first draft, an ornament that implied the wrong career order.
Prompting is easy; the review system is the skill.
Where the AI consistently failed, by name: it twice invented plausible-but-false biography; its copy drifted toward poster language until an outside standard — “the most capable people sound the most subdued” — recalibrated it; and two breakages passed every code check, caught only by screenshot. The counts tell the iteration story: four builds of one cybersecurity scene, three of the film beat, four approaches to one hover magnifier, five rounds on two sentences of contact copy. That volume would be unaffordable by hand — and unsafe without the review. That review had a price.
The hard part
With implementation nearly free, the scarce inputs were references, rejections, and truth. The discipline cut both ways: a twenty-year-old personal aphorism died the day it read as cheesy. What survived hardened into something reusable.
Fig. 7 — Many drafts in, one survivor out. Regeneration was cheap; approval was not.
The design system
None of this was designed as a “system” up front. Six founding values grew to sixteen tokens; components built for one page were promoted the moment a second page needed them. The sheet below is the inventory.
Fig. 8 — Specimen sheet: all sixteen tokens (the six founding values marked), and the recurring components drawn in the system’s own line. Live states animate — the seam runs, the rail fills, the ripple answers.
Seven rules hold it together: everything expressive is made of light; premium and lightweight are one requirement; attractors fire before decisions; the fallback is the truth; numbers are captions; one horizontal line per surface; and the amber italic is spent only at climaxes. Beneath the components sit a handful of structural calls.
Decisions that mattered
What these cost: the storybook is desktop-only, so the site’s best artifact is invisible on phones; no CMS means every edit is hand-made HTML; self-contained pages duplicate shared components; and a scroll narrative taxes the skimmer — mitigated, never erased, by the fallback layer.
Fig. 9 — Forks were resolved by building, not debating: rejected directions were prototyped far enough to be certain.
Takeaways
Honest outcome
Verified: zero overflow, zero errors, fallbacks engaging exactly where designed, ambient motion measured in the thousands of changing pixels at rest. Open: not yet shipped — no recruiter data, and this page won’t pretend otherwise.
What AI made possible, in order of importance:
The resulting scale: seven pages, roughly forty components, the canvas scene engines behind them, a WebGL shader, a twenty-scene scroll film, and a hidden arcade game — built and rebuilt through repeated generate-measure-judge cycles (the counts cited earlier are from single components alone), in a timeframe where hand-building would have produced a fraction of it.
This site exists to demonstrate a workflow, not a website. The transferable part is that workflow: reference-driven direction, AI implementation, instrumented verification, human judgment as the gate. None of it is portfolio-specific. It is how I now build product — this site is its first shipped output, and Flow, the budgeting app, is the second.
Fig. 10 — Verified at desktop, tablet, and phone: zero overflow, zero errors, fallbacks engaged.