Field notes · room 166 / 175

How to carry
the dark.

A construction guide to the light, type, texture, and code behind a four-hour walk through an invented Paris.

01

The concept

Noctambule is a flâneur’s log designed as a route, not a conventional editorial page. The central rule is severe: story appears only where a streetlamp permits it. Seven irregular pools carry the reader from 01:03 to 04:56, while long dark gaps make scrolling feel like walking between islands of safety. Those gaps are not empty. A cat, folded terrace chair, zinc roofline, and passing N12 remain barely visible, rewarding a patient eye. At 04:30 the baker’s window breaks the system: café warmth floods sideways across the layout and begins the page’s transition toward dawn.

01:03 · Charonne04:30 · first bread04:56 · Villette
02

Lamp pools and footfall

Each .lamp-pool in index.html owns custom properties for horizontal position, vertical position, and radius. In styles.css, a layered radial gradient turns those values into soft-edged illumination; the adjoining .lamp-fixture is drawn entirely from borders, gradients, and pseudo-elements. updateWalk() in main.js samples scroll movement once per animation frame and writes a small sine-based --cadence offset, so the pools seem to settle with each step. It also advances the route meter and shifts river reflections. Nothing essential depends on motion, and reduced-motion mode removes both cadence and rain.

radial-gradient()hot core → amber falloff → wet-black edge
03

Wet air, river, silhouettes

The fixed #rain canvas holds at most 54 inexpensive line particles. drawRain() stops whenever the document is hidden, caps device-pixel ratio, and uses fewer drops on phones. A tiny inline SVG turbulence texture adds grain without requesting an image. The bridge’s Seine is a stack of CSS gradients; six warm slivers respond to the same scroll variable, making reflections drift sideways. The full river is also a keyboard-operable .river-touch button: main.js places paired CSS ripples at the pointer and lets a hidden sentence surface. Silhouettes use only clipped blocks, borders, and shadow, keeping every visual proudly code-made.

0 generated assets. Rain, cobbles, zinc, river, bus, chair, cat, lamps, and dawn are all code.

04

Palette and type

The wet-cobble base is #080a0c, with deeper masonry at #11161a. Zinc blue-grey #879aa5 describes distance and rain. Lamplight begins at #e5b85c, reaches a hot center at #fff0bc, and shifts to café-window orange #f0a85d. Instrument Serif supplies the intimate, slightly theatrical display voice; Manrope handles timestamps, route data, and prose. Both families are self-hosted from the exhibition font library.

Wet cobble
#080a0c
Zinc rain
#879aa5
Lamp
#e5b85c
Café window
#f0a85d
05

Reproduce this

Prompt an AI agent to build an immersive, code-only night walk in semantic HTML, CSS, and JavaScript. Ask for content to exist inside staggered radial light islands, with meaningful darkness between them, one interactive light carried by the pointer, and a narrative color-temperature turn near the end. Specify self-hosted editorial typography, invented place-specific writing, canvas atmosphere with strict particle limits, paused animation in hidden tabs, and a complete reduced-motion version. Demand phone, tablet, and desktop screenshots, then require a written critique before the final pass.

The useful constraint is not “make it dark.” It is: make darkness withhold the next sentence until light earns it.