Round 2, rebuilt from the round-1 feedback: outcome-led, annotated wow moments, hand-off as a colleague's note, at most two numbers, no forms or strikethrough lists. A, C, D, E are light; B and F are dark.
Daylight
Every portal enquiry, answered in your name.
After Hours brought into daylight: bold wide Archivo on off-white paper, where each reply reads like an editor marked it up, with amber marker highlights in the bubble and numbered mono notes in the margin joined to them by amber leader lines. The page opens on the outcome, not the hour.
“A disciplined, honest daylight page that obeys every rule and gets the outcome headline right. It is let down by a crushed hero moment on mobile and callouts too faint to be the star, so it reads more tasteful than memorable.”
Polish pass: 8 changes
- Hero on mobile: added `.hero-mo .mo` (plus `#mo-old` and `#mo-name`) to the single-column rule inside the 720px query, with gap:0. At 390px the hero chat now spans the full width and the notes stack underneath. This also fixes the same specificity trap for the two new duel moments.
- Callouts: notes are now JetBrains Mono at 14.5px, weight 600, in amber-ink (#8A5A0E). They were 12.5px in near-black. The numbered amber squares are gone. The notes column is 224px (184px in the hero, 176px under 1100px).
- Leader lines: the fixed 34px CSS stubs are replaced by an SVG overlay that JS draws for each moment on desktop. Each line starts at the end of the marked phrase and drops into the gap between text lines. It stays dotted while it crosses the message, then turns solid in the margin and runs with an elbow to its note. The note's first line sits level with the leader. When a later mark shares the same text line, the earlier mark's leader goes over the line so two leaders never overlap. Solid segments draw in with a stroke-dashoffset animation when the moment enters view. Reduced motion shows them statically, and they are hidden below 720px.
- Marker: `--hl` went from rgba(201,134,26,.48) to rgba(236,150,12,.66) and `--hl-strong` to .74, so the highlight now reads as deep amber instead of pale beige. The superscript `data-n` numbers after marks are removed, so position and colour now carry the link between a phrase and its note.
- Mobile notes: each note gets a small amber highlighter swatch in place of a number, under the dashed rule.
- Hero lede now reads: 'On WhatsApp, in your name, sounding like your best person. Nothing waits for Monday, and you win more of the leads you already pay for.' Max width went from 36ch to 40ch.
- Moments section: the rows use `minmax(0,300px) minmax(0,1fr)` and `margin-left:auto` is removed, so each chat sits against its heading. Row padding went from 52px to 44px.
- Added a fourth moment, 'It says what it is.', using the brief's bot line exactly: Sue asks 'Is this a bot?' The marks are 'AI assistant' (note: 'Honest, every time.') and 'shall I carry on?' (note: 'And the conversation carries on.'). It sits third, before 'It knows your patch.'
Night
Every portal lead, answered in your name.
Night: the round-1 After Hours look (dark and precise, amber on black) kept, with the clock and the after-hours framing removed. Each chat reply has amber-lit phrases, and a thin amber elbow line runs from each phrase, out of its bubble and along the gap, to a short mono note in the margin.
“A clean, confident dark page that drops the clock and follows every rule. The amber annotated moments work, especially on mobile. On desktop, though, the leader lines route like circuit traces, the side copy repeats the callouts, and "win more of the leads you pay for" only shows up halfway down the page.”
Polish pass: 8 changes
- Hero lede now leads with the outcome: 'You already pay the portals for these leads. Now every one gets a proper answer on WhatsApp, in your name, and your team picks up already knowing.' Removed the duplicate 'You already pay the portals' sentence from the backlog, where the six-in-ten line stays as the proof.
- Leaders rebuilt for desktop (above 720px). Every moment now puts its notes in the right-hand margin. JS places each note level with the line where its phrase ends, and joins them with one horizontal amber leader from the bubble edge, with a dot at the edge. If two notes would collide, the second is pushed down and its leader gets one short angled elbow. No more routing over the top of bubbles. The mobile stacked layout (note above, reply, note below) is unchanged.
- Note text is now amber (--amber-hi) instead of ink, so each note visibly belongs to its amber phrase. Removed the dark .nt backing box, which is no longer needed.
- The DOM order inside every turn is now reply, then notes, so screen readers hear the reply before its annotation.
- Moments section: dropped the zig-zag. There are no more .flip rows and no grey side paragraphs. Each row is now an owner-outcome h3 in columns 1 to 4 ('Buyers trust you faster.', 'No wasted enquiries from the wrong town.', 'Your exec gets the cash buyer first.', 'Nobody feels tricked.') with the moment in columns 5 to 12. The heading comes before the moment in reading order. Closed the dead gap between the intro and the first moment: the head margin went from 84px to 12px, so the lede-to-moment distance is about 70px instead of about 150px.
- What your team gets: the heading 'Your exec walks in already knowing.' now comes first in both DOM order and visual order, across 8 columns. The two paragraphs sit in columns 1 to 4 beside the note in columns 5 to 12. The callouts for 'cash' and 'She'd like a WhatsApp' now sit right next to those lines in the margin, with short leaders. The mono 'On Dan's WhatsApp' label became a small Archivo chip above the note.
- No menus / No scripts / No footers: replaced the three-equal-column pairs grid, including the invented 'Glad it helps. When are you next over?' reply. It is now one comparison: the buyer line 'Is the 3-bed villa in Villamartin still available?', then 'The usual bot' reply (script, menu buttons, sign-off, Reply STOP footer) annotated in grey with dashed underlines ('A script and a menu. Not a word about the villa.' / 'Signed off like a circular.'), beside the spec 'in your name' first message annotated in amber ('Your name, your number.' / 'The question that matters.'). The two replies are split by a hairline and stack on mobile.
- Mono is now used only for callout notes (moment notes and the how-it-thinks reasons). Switched to Archivo: nav links (15px, weight 500), skip link, trust heading, form labels, errors and help text, the 'tear here' cut label, footer meta, the backlog enquiry label and the new chips/captions. Removed the 'Sue' who-label and the 'The usual bot'/'In your name' mono tags that sat above every bubble.
In Seconds
Every portal enquiry, answered in your name.
The bold black type from The Lead Sheet with no sheet. An acid highlighter lands on the exact words that make each reply sound human, and a short typeset margin note beside each one is joined to its phrase by an ink leader line.
“The strongest execution of the brief so far: the headline sells the outcome, and the acid-marker notes with their leader lines make each reply readable in one glance. The moments stack is a little too airy on desktop, and the mobile callouts drop the pointer that tied the notes to their phrase.”
Polish pass: 8 changes
- Rule fix (fake proof): the moments footnote now reads 'Every reply from Sol y Sal Homes is real product behaviour. Only the names are made up.'
- Rule fix and slop flag (big numerals and staircase): How it thinks no longer has the 132px numerals 1 to 5 or the staircase offsets. The five questions are now the agency's own outgoing chat bubbles (IBM Plex 22px, 3px border, right-aligned in a 330px column), in order from top to bottom. Each reason sits beside its bubble as an acid-underlined italic note that starts with an acid dot. The reasons have a hanging indent. The first reason is shortened to 'Dates first. A trip is when the sale happens.' so it fits on one line. The layout is now an 8fr/4fr grid, with the 'It never asks what the enquiry already told it' paragraph sitting at the bottom of the right column. On mobile it stacks: bubble, then reason, then the paragraph.
- Moments stack (desktop): the chat column goes from 560px to 640px and the notes column from 240px to 270px. The gap between moments drops from 96px to 72px, the column gap from 72px to 56px, the space above the stack from 72px to 64px, and the third moment's indent goes from 9% to 12%.
- Mobile callouts: the repeated bold quote is gone. Each note starts with a small acid dot with an ink ring, the same as the leader-line dot on desktop, and has a hanging indent. The gap from note to bubble drops from 26px to 12px, and from note to note to 8px. In the backlog on mobile, the top and bottom notes now sit at 12px and 8px.
- Statement section, which also clears the stat-billboard slop flag: the headline is now 'You paid for those enquiries. Plenty never get a reply.', with acid on 'never get a reply.'. It is about 58px instead of 78px. The 'In one agency's inbox, six in ten portal enquiries were never answered at all' sentence moves to the start of the body copy. The section is now a 6fr/5fr grid with the body next to the headline, stacked below 1180px.
- Backlog: the dashed-border context box is replaced by a plain italic caption (17px) above the bubble, with no border.
- No menus screen: the grid is now 132px label, 0.8fr Sue, 1fr bot, 1.45fr ours, so the Sol y Sal reply is the widest column. The ours bubbles are 18.5px and the rest 15.5px. One phrase in each ours bubble has the acid mark: 'When are you next over?', 'Lovely, that keeps it simple.' and 'I'll note £150k.'
- Slop flag (hard offset shadows): the offset shadow stays only on the CTA buttons. It is removed from the agency chat bubbles, the no-menus screen and the booking slip. The slip keeps its dashed tear edge and slight tilt.
The Nuance Gallery
Every enquiry answered, in your name.
A lookbook of six annotated WhatsApp replies. In each one, a hand-drawn coral loop circles the phrase that shows the detail, and a dotted leader line runs to a short margin note.
“The most faithful take on the thing you loved: hand-circled coral phrases on cream read like a proofreader who is impressed, and nothing on the page looks technical. It needs a stronger owner promise below the headline, cleaner circles, and a proper fix for the mobile callouts before it sells as well as it reads.”
Polish pass: 8 changes
- Hero: I replaced the sub-line that only listed features with the owner outcome: 'Every portal lead you pay for, answered and qualified on WhatsApp. Your team picks up already knowing the buyer.' It is now set at 24px in ink.
- Hero: the six-in-ten sentence is now the hero's second beat, under the CTAs and above a hairline: 'In one agency's inbox, six in ten portal enquiries were never answered at all. Those are buyers you had already paid for.' The key clause has a thin sage marker. This fills the empty left column. The separate bridge section and its CSS are gone.
- Loops: every mark.nu now has side margins (0 .19em 0 .22em). Horizontal loop padding is now 0.13em of the font size. The wobble and overshoot tail are now fixed amounts based on line height, so long phrases no longer balloon sideways into the next words. Vertical padding went from 0.17 to 0.12 of the line height.
- Loops: punctuation is now outside the circled phrase ('full move'?, 'next over'?, 'shall I carry on'?, 'keeps it simple'., 'Just say if not'.). Each loop stops before the punctuation, and nothing touches 'answered', 'he'll', 'here' or 'or' any more.
- Loops: circled phrases now stay on one line unless they are wider than their line (fitMarks() in JS). Short phrases no longer split into circled scraps on mobile, such as 'the' on one line and 'team can send a few over' on the next.
- Loops: speaker labels have more space below them (14px, and 22px on the big 'opens with your name' moment), so the loops no longer touch the labels.
- Mobile: I removed the dotted leaders and rails in stacked mode. JS now numbers each noted phrase with a small coral superscript (1, 2), and the matching callout gets the same number in a small coral circle. The old-bot blocks carry their number in the top-right corner of each block. Nothing sits outside the 16px gutter.
- Mobile rhythm: 'Is this a bot?' is now 60 to 64px with a smaller reply below it. The 'straight with buyers' moment is small: indented 13%, reply at 20px, buyer line at 17px. The backlog keeps its WhatsApp bubble and Sue's sage answer bubble.
Off Your Plate
Every enquiry looked after, in your name.
Off Your Plate: a calm, warm page that sells a feeling. Every enquiry is looked after, your team walks in already knowing, and your weekend is yours again. The hero is Dan's phone showing the note he gets, written the way a colleague would write it, with terracotta highlights and olive margin callouts.
“The calmest, cleanest and most rule-abiding variant. The hero note from Dan's phone lands the "colleague wrote this" feeling, and the callouts are crisp. It is also a little polite: the moments sit small in big empty bands, and it never says the one line that sells winning the leads you already pay for.”
Polish pass: 8 changes
- Rule fix: removed 'Arial Black' from --display. It is now "Bricolage Grotesque", system-ui, sans-serif. A grep for Arial, Inter, Roboto and Helvetica finds no font names (the only 'inter' hits are pointer and pointer-events).
- Bubble colours: across the page, buyer bubbles use the warm --bubble-them tone (darkened slightly to #EADFCF so it still reads on the olive-soft band) and agency bubbles are white. I removed the .sharp, .weekend and .fork overrides that made buyer bubbles white.
- Your leads, handled: added the allowed stat as its own display-weight sentence under the headline: 'In one agency's inbox, six in ten portal enquiries were never answered at all.' 'six in ten' is in terracotta. The body copy now ties it to outcome 3: 'They're leads you already pay the portals for. Now every one gets a warm, specific reply ... none of them wait for Monday.'
- Outcome sections recomposed as headline plus proof side by side on desktop. Handled: copy on the left (6fr), enquiry email and reply moment on the right (7fr), vertically centred. Sharp: mirrored, with the chat on the left (8fr) and the headline on the right (5fr). Weekend: copy on the left (6fr), moment on the right (7fr), top-aligned. The old full-width headline row and the dead zones are gone. Outcome h2 is now clamp(44px,5.6vw,84px), and moment bubbles are 20px with 15/19 padding. The margin callout column went from 210px/64px gap to 176px/46px so the bubbles get the width.
- Mobile hero: hero padding is now 22/64 (was 32/72), eyebrow and h1 margins are tighter, sub margin-bottom is 22px, .stage margin-top went from 44px to 26px, and the secondary 'See a moment' CTA is hidden below 640px. At 390x844 the phone header and the first 5 or 6 lines of the note are visible above the fold.
- Your weekend, yours: promoted 'Buyers still answer a friendly re-open weeks later.' out of the small grey caption and into the .big line, as an olive second sentence under 'So it works the backlog too.' The dashed 'An enquiry from last month that nobody got to' tag is now a plain italic ink-2 context line with no border.
- No menus: removed the Script/Menu/Footer tag column and its ruled vertical line. The old bot is now one plain grey bubble (thank-you line, numbered menu, STOP footer). On mobile both CalumAI bubbles are right-aligned (the msg is stretched with align-items:flex-end, and bubbles are capped at 90%) so neither reads as a buyer bubble. The heading is set as three stacked lines: 'No menus. / No scripts. / No footers.'
- Nice-to-have, hero phone: the header now reads like a team WhatsApp group: 'Sol y Sal, new leads' / 'Marta, Keith, You'. The note has an olive 'Lead assistant' sender line, so it reads as a colleague posting in the team thread.
Spot the Human
Every portal enquiry, answered the way your best person would.
Spot the Human: the promise ("Every portal enquiry answered in seconds.") sits beside a playful challenge, "Which one is the AI?", with two identical chat cards (same buyer line; a sales exec's reply and the AI's reply). You guess, the AI card lights up with coral highlights and sand notes, and the page then shows the receipts: annotated moments explaining why buyers answer it like a person, even though it says it's an AI in its first message.
“The strongest execution yet of your annotated-moment device. Buyer line, reply, coral phrase and numbered sand note stay the same on every moment and read cleanly on a phone. But the quiz gives its own answer away: the reveal band sits right under it, and the AI reply looks different from the human one.”
Polish pass: 8 changes
- Must-fix, hero quiz answer band: the band now has id=answer. It holds a heading slot that stacks 'Scroll on for the answer.' (muted, same display size) on top of the real h2 'The AI wrote the one on the right.' With JS on, the h2 stays hidden (visibility and opacity) until the band gets the class .shown. That happens when someone clicks either guess button, or when an IntersectionObserver sees the quiz scroll above the sticky nav. The quiz has no IntersectionObserver fallback, so the answer shows straight away. The supporting line 'It tells every buyer it's an AI in its first message...' is always visible because it does not give the answer away, so the band is never empty. Without JS the plain answer line shows as before. Checked at the fold in fresh 1440x900 and 390x844 screenshots: only 'Scroll on for the answer.' shows. After a guess the answer shows correctly.
- Must-fix, AI card: the AI reply is now two bubbles, 'Lovely, that keeps it simple.' and 'Anything that's a must, pool, parking, walk to a supermarket?'. Both cards now have the same shape: buyer line, then a short bubble, then a longer one. The highlights and numbered tabs stay hidden until someone guesses.
- Must-fix, hero lede: now reads 'On WhatsApp, in your agency's name, sounding like your best person. Your team gets buyers who are ready. None of the leads you pay the portals for goes cold.' (no number). Added text-wrap:pretty to avoid an orphan word.
- Must-fix, receipts intro: 'Four moments, the way it actually talks to buyers. Names changed. ...' is now 'Four short moments with a buyer. The coral bits are where it earns the next reply.'
- Must-fix, 'And it listens more than it asks' panel: added the reply 'Lovely, I'll keep it to low-rise then. When are you next over?'. Highlight 2 moved from the buyer's 'ruled out anything high-rise' to the reply's 'I'll keep it to low-rise' (note 'Remembers what's off the list.'). Highlight 1 stays on 'me and my sister' in the buyer's line.
- Must-fix, team section: hand-off note 1 now reads 'Cash buyer. No finance chat needed.'
- Nice-to-have, desktop hero: removed the forced min-height (min(100dvh - nav, 740px)) and cut the vertical padding, which removes the dead green under the cards. The answer band is much smaller: padding went from 56-96px to 28-44px, and the h2 from up to 4.2rem to at most 2.4rem, on one line at 1440. The receipts heading now starts about 130px higher.
- Nice-to-have, no menus: removed the 'A menu / A script / A footer' pill row. The old bot bubble now uses the page's own device in reverse. Its three giveaway phrases get a coral wavy underline with numbered tabs, and outlined coral callouts ('A menu.', 'A script.', 'A footer.') are tied to them in the margin. To make it readable, the bot text is shorter: 'Thank you for your enquiry. Please choose VIEWING, BROCHURE or CALLBACK. An agent will respond shortly. Reply STOP to opt out.'











