MutualPage

Concept “Counterpart”

Two originals, one record.

1 · Mark and wordmark

A counterpart is the legal word for each party’s original of the same deed. The mark is two corner brackets holding one page from opposite sides; each bracket ends in the ball of a quotation mark, so the page is held and quoted. Deep ink on warm paper: the register of a bank ledger or a court bundle, with the ink carried rich rather than grey.

Light · on paper
MutualPage
16 px
24 px
32 px
48 px
96 px
Dark · designed, not inverted
MutualPage
16 px
24 px
32 px
48 px
96 px
Rail / top bar variant (logoRail) — white on the brand ground
MutualPage
16 px
24 px
32 px
48 px
96 px
Print stamp on the export — one colour, any printer
MutualPage record · verified 06 Nov 2026
16 px
24 px
32 px
48 px
96 px

The mark is a single path with no text, so it survives as a favicon, a rail icon and a one-colour stamp. The wordmark is the UI face at 600 (Mutual) and 400 (Page); theme assets are rendered to PNG at build (logo.png · logo-dark.png · logo-rail.png · favicon.svg).

2 · Palette and the four states

Light

Page / paper#F5F3ED
Surface#FFFFFF
Alt surface#ECE9E1
Border#D3CFC5
Text#15213A
Muted text#596380
Brand (fill)#0F2A4F
Brand text#0F2A4F
Accent#1D4E89
Rail#0B1F3A
Rail active#1F4A80
Accepted / corroboratedAccepted / corroborated Corroborated as text#1C6B43 on #DDEFE4
Reply dueReply due as text#845400 on #FAEDD2
DisputedDisputed as text#71487A on #EFE4F0
SupersededSuperseded as text#5F6676 on #E6E7EA

Dark

Page / paper#0B1526
Surface#122038
Alt surface#192B48
Border#2B3F62
Text#E7ECF5
Muted text#A4B3CA
Brand (fill)#3270C2
Brand text#9CC0F0
Accent#7FAEE8
Rail#060F1E
Rail active#234E86
Accepted / corroboratedAccepted / corroborated Corroborated as text#86D4A6 on #163A28
Reply dueReply due as text#F0C56B on #3C2E0F
DisputedDisputed as text#D7ACDA on #3A2742
SupersededSuperseded as text#A7B0C2 on #273244

Ink blue owns no status hue, so the four states take their natural colours: green for accepted, amber for a reply due, a muted plum for disputed (a second account, not an alarm), grey with a strike for superseded. Each state also has a shape — disc, ring, split bar, arrow — so the Fact page still reads in greyscale print.

3 · Type

UI · Source Sans 3

Triage queue delivered by 20 Nov 2026

Said by Spencer Tait, VP Engineering, 28 Oct 2026 at 14:22. Notified the same day; the window closes 11 November.

Reply due · Accepted · Disputed · Superseded · 0123456789 · £65 per claim

Weights 400 / 600 · italic for the recollection marker and the export’s captions

Export · Source Serif 4

Chronology of the record

Fact 17, a commitment. On 28 October 2026 at 14:22, Spencer Tait (VP Engineering, Software Development UK Ltd) said: “We will have the triage queue in your hands by the twentieth of November, with the banding in place, and I’m happy for that to go on the record.” Kate Osei accepted on 29 October. Omar Haddad was notified and had not replied when the window closed.

Source: Fireflies transcript, SHA-256 7a3f…0c21, offsets 18 402–18 541.

Licence. Source Sans 3 and Source Serif 4 — Adobe, SIL Open Font License 1.1. Self-hosted Latin-subset woff2 (variable weight 400–700 + italic), no CDN call at runtime. Hashes use the system monospace stack, which needs no file.

4 · Contrast proof (WCAG 2.x, every text pair)

Light · worst pair 4.65:1

PairSamplefg / bgRatio
Body text on pageAa 14 px#15213A / #F5F3ED14.44AA
Body text on surfaceAa 14 px#15213A / #FFFFFF16.02AA
Body text on alt surfaceAa 14 px#15213A / #ECE9E113.21AA
Muted text on pageAa 14 px#596380 / #F5F3ED5.37AA
Muted text on surfaceAa 14 px#596380 / #FFFFFF5.96AA
Muted text on alt surfaceAa 14 px#596380 / #ECE9E14.92AA
Brand text on pageAa 14 px#0F2A4F / #F5F3ED12.92AA
Brand text on surfaceAa 14 px#0F2A4F / #FFFFFF14.34AA
Accent text (links) on pageAa 14 px#1D4E89 / #F5F3ED7.56AA
Accent text (links) on surfaceAa 14 px#1D4E89 / #FFFFFF8.39AA
On-brand text on brand fillAa 14 px#FFFFFF / #0F2A4F14.34AA
Rail text on railAa 14 px#C5D1E4 / #0B1F3A10.71AA
Rail active text on active surfaceAa 14 px#FFFFFF / #1F4A808.94AA
Accepted / corroborated — chip text on chipAa 14 px#1C6B43 / #DDEFE45.42AA
Accepted / corroborated — as plain text on surfaceAa 14 px#1C6B43 / #FFFFFF6.49AA
Accepted / corroborated — as plain text on pageAa 14 px#1C6B43 / #F5F3ED5.85AA
Reply due — chip text on chipAa 14 px#845400 / #FAEDD25.57AA
Reply due — as plain text on surfaceAa 14 px#845400 / #FFFFFF6.46AA
Reply due — as plain text on pageAa 14 px#845400 / #F5F3ED5.82AA
Disputed — chip text on chipAa 14 px#71487A / #EFE4F05.85AA
Disputed — as plain text on surfaceAa 14 px#71487A / #FFFFFF7.22AA
Disputed — as plain text on pageAa 14 px#71487A / #F5F3ED6.50AA
Superseded — chip text on chipAa 14 px#5F6676 / #E6E7EA4.65AA
Superseded — as plain text on surfaceAa 14 px#5F6676 / #FFFFFF5.76AA
Superseded — as plain text on pageAa 14 px#5F6676 / #F5F3ED5.19AA

Dark · worst pair 4.96:1

PairSamplefg / bgRatio
Body text on pageAa 14 px#E7ECF5 / #0B152615.41AA
Body text on surfaceAa 14 px#E7ECF5 / #12203813.74AA
Body text on alt surfaceAa 14 px#E7ECF5 / #192B4811.97AA
Muted text on pageAa 14 px#A4B3CA / #0B15268.59AA
Muted text on surfaceAa 14 px#A4B3CA / #1220387.66AA
Muted text on alt surfaceAa 14 px#A4B3CA / #192B486.67AA
Brand text on pageAa 14 px#9CC0F0 / #0B15269.75AA
Brand text on surfaceAa 14 px#9CC0F0 / #1220388.70AA
Accent text (links) on pageAa 14 px#9CC0F0 / #0B15269.75AA
Accent text (links) on surfaceAa 14 px#9CC0F0 / #1220388.70AA
On-brand text on brand fillAa 14 px#FFFFFF / #3270C24.96AA
Rail text on railAa 14 px#B9C7DE / #060F1E11.22AA
Rail active text on active surfaceAa 14 px#FFFFFF / #234E868.38AA
Accepted / corroborated — chip text on chipAa 14 px#86D4A6 / #163A287.17AA
Accepted / corroborated — as plain text on surfaceAa 14 px#86D4A6 / #1220389.29AA
Accepted / corroborated — as plain text on pageAa 14 px#86D4A6 / #0B152610.42AA
Reply due — chip text on chipAa 14 px#F0C56B / #3C2E0F8.12AA
Reply due — as plain text on surfaceAa 14 px#F0C56B / #12203810.01AA
Reply due — as plain text on pageAa 14 px#F0C56B / #0B152611.23AA
Disputed — chip text on chipAa 14 px#D7ACDA / #3A27426.98AA
Disputed — as plain text on surfaceAa 14 px#D7ACDA / #1220388.38AA
Disputed — as plain text on pageAa 14 px#D7ACDA / #0B15269.40AA
Superseded — chip text on chipAa 14 px#A7B0C2 / #2732445.92AA
Superseded — as plain text on surfaceAa 14 px#A7B0C2 / #1220387.47AA
Superseded — as plain text on pageAa 14 px#A7B0C2 / #0B15268.38AA

Computed at build from the token file below (relative-luminance formula); 4.5:1 is AA for body text. Borders and chip fills are non-text and are not held to it.

5 · theme@1 tokens

Everything on these pages is one of these values. Style preset: console. The status block is the one extension the product needs beyond today’s theme keys.

{
 "kind": "theme@1",
 "name": "mutualpage-counterpart",
 "stylePreset": "console",
 "radius": "4px",
 "colors": {
  "light": {
   "bg": "#F5F3ED",
   "surface": "#FFFFFF",
   "surfaceAlt": "#ECE9E1",
   "border": "#D3CFC5",
   "text": "#15213A",
   "textMuted": "#596380",
   "brand": "#0F2A4F",
   "brandText": "#0F2A4F",
   "onBrand": "#FFFFFF",
   "accent": "#1D4E89",
   "accentText": "#1D4E89",
   "rail": "#0B1F3A",
   "railText": "#C5D1E4",
   "railTextActive": "#FFFFFF",
   "railActiveSurface": "#1F4A80",
   "status": {
    "accepted": {
     "fg": "#1C6B43",
     "bg": "#DDEFE4"
    },
    "replyDue": {
     "fg": "#845400",
     "bg": "#FAEDD2"
    },
    "disputed": {
     "fg": "#71487A",
     "bg": "#EFE4F0"
    },
    "superseded": {
     "fg": "#5F6676",
     "bg": "#E6E7EA"
    }
   }
  },
  "dark": {
   "bg": "#0B1526",
   "surface": "#122038",
   "surfaceAlt": "#192B48",
   "border": "#2B3F62",
   "text": "#E7ECF5",
   "textMuted": "#A4B3CA",
   "brand": "#3270C2",
   "brandText": "#9CC0F0",
   "onBrand": "#FFFFFF",
   "accent": "#7FAEE8",
   "accentText": "#9CC0F0",
   "rail": "#060F1E",
   "railText": "#B9C7DE",
   "railTextActive": "#FFFFFF",
   "railActiveSurface": "#234E86",
   "status": {
    "accepted": {
     "fg": "#86D4A6",
     "bg": "#163A28"
    },
    "replyDue": {
     "fg": "#F0C56B",
     "bg": "#3C2E0F"
    },
    "disputed": {
     "fg": "#D7ACDA",
     "bg": "#3A2742"
    },
    "superseded": {
     "fg": "#A7B0C2",
     "bg": "#273244"
    }
   }
  }
 },
 "fonts": {
  "ui": {
   "family": "Source Sans 3",
   "files": [
    "assets/fonts/source-sans-3-400-normal.woff2",
    "assets/fonts/source-sans-3-400-italic.woff2",
    "assets/fonts/source-serif-4-400-normal.woff2",
    "assets/fonts/source-serif-4-400-italic.woff2"
   ]
  },
  "document": {
   "family": "Source Serif 4",
   "files": [
    "assets/fonts/source-sans-3-400-normal.woff2",
    "assets/fonts/source-sans-3-400-italic.woff2",
    "assets/fonts/source-serif-4-400-normal.woff2",
    "assets/fonts/source-serif-4-400-italic.woff2"
   ]
  },
  "licence": "SIL OFL 1.1 (notice in assets/fonts/OFL-NOTICE.txt)"
 },
 "logo": "assets/logo.png",
 "logoDark": "assets/logo-dark.png",
 "logoRail": "assets/logo-rail.png",
 "favicon": "assets/favicon.svg"
}

Concept 2 of 3 · MutualPage brand round 1 · mock data, fictional ClaimsHive people. Toggle light / dark bottom-right; the choice sticks across the three pages of this concept.