The older look. Here for comparison, not for approval — the new look is the venue page, Paradesi Synagogue.
Mockup control — not part of the page. Pretend it is:

Friday 7 August 2026

Today in Fort Kochi

The cats will not pretend to know next week.

Heavy rain from mid-afternoon. Do the outdoor things before two.

6.44 pmsunset
31°high, feels 38°
4.10 pmhigh tide

Checked

Shut today, because it is a Friday

Before the rain until 2 pm

When it turns 2 to 6 pm

One thing we cannot tell you

We cannot see whether the backwater boats are running this afternoon. The operator has not posted since Wednesday.

Ask at the jetty counter before you go out there — it is a long way back if they are not.

This evening after 6 pm

Tomorrow — Saturday 8 August

Dry until late afternoon. A better day for the boats than today was.

6.12 amsunrise
29°high, feels 34°
5.05 amlow tide

Shut tomorrow, because it is a Saturday

First move: be at the Chinese nets before eight. The light is worth it and the fishermen are still there.

That is as far as this page looks. Two days is what we can check by hand every morning, so two days is what we promise.

Today and tomorrow. A trip is longer than that.

Four days in Kochi is not four of these pages. It is an order — which day for the fort, which for the islands, which one you keep loose because half of Mattancherry is shut. We write that order for your dates, and keep it right while you are here. ₹0,000 for the trip, however many of you there are.

What that includes

⭐ The six o'clock problem, and why it was the same problem as "tomorrow"

I had these down as two open questions. They are one. A page called today is not a plan for a day — it is an answer to "what next", asked at an hour nobody chose in advance. At nine in the morning "what next" means the whole day. At seven in the evening it means dinner, and then the first move of tomorrow.

So the page keeps one shape and changes where it starts you:

That last sentence is the whole fix. The failure was never that the page lacked evening content; it was that at seven o'clock it still opened with a morning.

⚠️ The clock is computed in Asia/Kolkata, never read from the device. A traveller's phone is often still on the zone they flew from. A page that says "it is 2 pm, do the outdoor things" to somebody standing in the dark is worse than a page with no clock.

Tomorrow — in, and visibly shorter than today

Tomorrow gets the weather sentence, the computed figures, what is shut, and exactly one first move. Not a second day's plan — that is the paid product, and the difference has to be visible on the page rather than argued in a sales line.

The boundary is stated where the reader hits it, in the site's own voice: "Two days is what we can check by hand every morning, so two days is what we promise." ⭐ It reads as a standard, not as a limitation, because it is one.

⛔ The stale-page case, which the clock forced into the open

Once a page knows the hour it also knows the date, and the common failure appears: a cached page opened the next morning. It looks perfect and every closure in it is wrong. So the page compares its own date to the reader's and, when they differ, says so at the top and stops using the clock at all.

With no JavaScript nothing appears — and nothing is lost, because the date is printed in the kicker either way.

The paid line, rewritten

Was: "This is today. Your trip is longer." — the same page, written for your dates.
⛔ Reads as more days of this. Somebody would rightly ask why they should pay for seven copies of a free page. ⛔ The figure is shown as ₹0,000 throughout, matching itinerary: no price has been set, and a plausible one printed in a mockup becomes the price everybody assumes.

Now: "Four days in Kochi is not four of these pages. It is an order — which day for the fort, which for the islands, which one you keep loose because half of Mattancherry is shut."

The product is the sequence, not the days. The free page proves we can be right about one day; the paid one is the judgement about how the days fit together, which is the thing that cannot be computed.

Checked against COMMERCE-TERMS.md §2.2: no book, reserve, arrange, on your behalf, guaranteed or confirmed anywhere on this page. "We write that order" is a writing promise, which is all this business may promise.

Two smaller things I changed while here

⭐ Six defects, none of which reading the CSS would have found

I built this, then rendered it at 375px in Chrome at five different hours. Everything below was found by looking, and every one of them would have shipped:

  1. "Today is done" could never appear. The evening block ran to midnight — which is also the date rollover, so the stale banner always fired first. The branch was unreachable. It now ends at ten, when the food does.
  2. The jump line named the wrong block. At half two it said "Skip to this evening" and jumped to the afternoon: each block's label described the next block, not itself.
  3. The closure rows were 18px tap targets. They looked identical to the listing rows but had none of the row-is-the-target overlay, so only the name itself was tappable.
  4. Then my fix for that broke the sentence. display:flex turned the link and the text after it into separate items — "Mattancherry Palace— closed every Friday", space gone, long names breaking into a second column.
  5. Underlines detached from their words. A 44px tap floor plus border-block-end puts the rule at the bottom of the box — a stray amber line hanging 20px under the link. Affects every kit using this pattern, not only this one.
  6. Tomorrow's figures came out in the serif. The facts strip had no face of its own and was inheriting sans from the panel around it. Same component, two typefaces, one screen apart.
Four of these are the same shape as the font finding: the file said the right thing and the rendered page did something else. Two of them I introduced while fixing the one before. That is the argument for rendering after every fix, not at the end of a batch.

Still open

The black bar at the top is scaffolding, not page furniture — the page behaves differently at different hours and nobody should have to wait until ten at night to review the last state. It opens on 6.40 pm because that is the hard one. It ships with the page removed.

⚠️ Rendered in Figtree, the real face — inlined as base64, it downloads inside an artifact the same as anywhere else. Weather, tide, sunset and closing times are illustrative. ⛔ There is no running-prose measure figure for this page — it is a list, and the only body-size text on it is one italic cat line. Counting characters per line here would be measuring the wrong element, which is the mistake this project keeps making.