Scroll progress: a thin line that shows how much of a page is read.
Decision: The page is a 2 px line that runs around all four edges of the window, cooling behind its hot head as you read, leaving persistent knots where you paused, and pressing any knot or point on it takes you back there.
Before the page, they came from somewhere. After it, they leave with something half-read.
So the line keeps what they read. Read spans set hard, like a skin on a form.
Where they stopped, a pin goes in. The pin is still there next week.
Close the tab, come back in October, the line still knows.
One thin bar, one colour for set, one for fresh. That fits the budget.
Why is the line at the top? Who wrote that rule?
Run it round all four edges of the window. A tyre on the page.
Each section is a felloe, a curved piece of rim. You fill them one by one.
Stop reading and the felloe stays half-joined. Unfinished on purpose.
Next time you see the open joint and you want to close it.
The head of the line is hot. Orange, almost white.
Behind it the glass cools: amber, then clear, then a faint blue-grey.
Scroll fast and the head runs hotter. Stop and it settles.
I followed one wheel tick from input to paint: event, frame, length, colour. Five stops.
Nothing on the screen but that one cooling thread.
I built a house no one could leave. I will not build another.
The line is a thread you paid out as you went in. Press any point on it and you are back there.
At the end, the thread must show a door. Not a wall. A door.
I speak for the one who arrives late, halfway down, lost.
They should see the way back at a glance. Decide it before the meal.
The page is a 2 px line that runs around all four edges of the window, cooling behind its hot head as you read, leaving persistent knots where you paused, and pressing any knot or point on it takes you back there.
Concept: Clew Rim
Wheelwright lost the endless loop: a rim that never opens traps the reader, and Daedalus has built that once. Taxidermist lost the flat gradient: cooling by time stays because a slow reader's warm line is the only form here no other kit would ship. The cost of tracking time per segment stays an open complaint.
rect inset 4 px from the viewport with rx="12", stroke 2 px. Set stroke-dasharray from getTotalLength() times scroll ratio on each requestAnimationFrame. Store a timestamp per 1% segment and colour each from #fff4d6 (0 s) through #e8a33c (2 s) to #9aa7b4 (20 s and after). With prefers-reduced-motion, show the cooled colour at once.localStorage. Each knot is a button with a 24 px hit area and an aria-label such as "Return to 41%, paused 3 days ago". Hover and focus show the same label at 18 px. Clicking or pressing the 24 px band anywhere along the rim scrolls to that point.
2026-10-20
2026-10-19
2026-10-18
2026-10-17
2026-10-16
2026-10-15
2026-10-14
2026-10-13
2026-10-12
2026-10-11
2026-10-10
2026-10-09
2026-10-08
2026-10-07
2026-10-06
2026-10-05
2026-10-04
2026-10-03