O
Menu

Experience guide

How the cloth crosses language.

The opening image is rendered as a fixed plate. The same plate is repeated in precisely aligned layers, then cut with original polygon masks around its architectural folds. Type sits between the plate and those cut layers. The effect is true visual occlusion without a 3D model or a filmed frame sequence.

Scroll states

The stage has six discrete states: encounter, fracture, thread, unbecome, reweave and residue. A tiny script measures chapter progress and changes one data attribute. CSS owns every transform, color change and mask transition.

Reduced motion

If your operating system asks for reduced motion, the scroll transformation is removed. You receive a complete static couture composition with the title, portrait, primary route and all later content intact. No information depends on animation.

No JavaScript or media

Without JavaScript, the first authored state remains visible and all navigation uses ordinary links. If the image cannot load, the semantic description, color planes and narrative remain. WebGL is not a dependency of this experience.

Keyboard and touch

The film itself requires no pointer. All interactive controls are native links or disclosure controls, focus states are visible, and independent targets are at least 44 CSS pixels high.

Reproduce the Cloudflare Pages release

MOLT is a Direct Upload Pages project named molt with master as its production branch. Run these commands from this repository only. The create command is needed once, and only whenmolt is absent from the project list.

npm ci
npm run build
npx wrangler whoami
npx wrangler pages project list
npx wrangler pages project create molt --production-branch master

$commit = git rev-parse HEAD
$message = git log -1 --pretty=%s
npx wrangler pages deploy dist --project-name molt --branch master --commit-hash $commit --commit-message $message --commit-dirty=false

Verify and update

After deployment, use the production URL printed by Wrangler. The local release gate owns port 4332; live commands do not start a local server.

$env:QA_PORT = '4332'
npm run qa:release

$env:QA_BASE_URL = 'https://molt.pages.dev'
npm run qa:live
npm run qa:lighthouse

For an update: commit the changes, rebuild, deploy with the new commit metadata, repeat live QA and Lighthouse, update INDEX.md and README.md with the measured result, commit, then deploy that final documentation commit once more.

Return to the film