MutualPage

Concept “Fair Copy”

What was said, written fair.

1 · Mark and wordmark

A fair copy is the clean, final transcription of a draft — the version both sides can sign. The mark is two quotation commas whose tails run along the edges of a page, holding it from top-left and bottom-right. Aubergine ink on parchment: an ink that is rich, serious and nobody else’s — not the blue of banks or the green of heritage — with surfaces the colour of good paper. Type is chosen for reading: Atkinson Hyperlegible Next for the UI (designed for low-vision readers, which is also a fairness statement — its slashed zero and unambiguous I/l/1 are the point) and Literata for the export.

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#F7F3EC
Surface#FFFFFF
Alt surface#EFE9DE
Border#D8CFC2
Text#2A1F33
Muted text#6A5E73
Brand (fill)#4A2A5C
Brand text#4A2A5C
Accent#7A4E9A
Rail#2E1A3A
Rail active#5A3A70
Accepted / corroboratedAccepted / corroborated Corroborated as text#23704A on #DCEFE3
Reply dueReply due as text#855500 on #F8EBD0
DisputedDisputed as text#4B6688 on #E4EAF3
SupersededSuperseded as text#6B6472 on #E9E5EA

Dark

Page / paper#140F1A
Surface#1E1726
Alt surface#281F33
Border#3B3047
Text#EFE8F3
Muted text#AFA4B8
Brand (fill)#8657A8
Brand text#D6B8E8
Accent#C6A2DC
Rail#0E0A12
Rail active#4E3262
Accepted / corroboratedAccepted / corroborated Corroborated as text#8FD7A8 on #1B3F2A
Reply dueReply due as text#F1C86F on #3E3012
DisputedDisputed as text#AEC6E6 on #22334C
SupersededSuperseded as text#ABA3B3 on #2C2535

Aubergine owns no status hue, so accepted and reply-due take green and amber. Disputed is deliberately cool — a muted slate blue — because a dispute on this product is a second account placed beside the first, not a warning; the two accounts sit side by side in the same calm colour family as the page. Superseded is grey with a strike. All four carry a shape as well as a colour.

3 · Type

UI · Atkinson Hyperlegible Next

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 · Literata

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. Atkinson Hyperlegible Next — Braille Institute, SIL Open Font License 1.1. Literata — TypeTogether for Google, SIL OFL 1.1. Self-hosted Latin-subset woff2 (variable 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.57:1

PairSamplefg / bgRatio
Body text on pageAa 14 px#2A1F33 / #F7F3EC14.15AA
Body text on surfaceAa 14 px#2A1F33 / #FFFFFF15.65AA
Body text on alt surfaceAa 14 px#2A1F33 / #EFE9DE12.95AA
Muted text on pageAa 14 px#6A5E73 / #F7F3EC5.49AA
Muted text on surfaceAa 14 px#6A5E73 / #FFFFFF6.07AA
Muted text on alt surfaceAa 14 px#6A5E73 / #EFE9DE5.02AA
Brand text on pageAa 14 px#4A2A5C / #F7F3EC10.69AA
Brand text on surfaceAa 14 px#4A2A5C / #FFFFFF11.82AA
Accent text (links) on pageAa 14 px#5E3A78 / #F7F3EC8.07AA
Accent text (links) on surfaceAa 14 px#5E3A78 / #FFFFFF8.93AA
On-brand text on brand fillAa 14 px#FFFFFF / #4A2A5C11.82AA
Rail text on railAa 14 px#D6C8DE / #2E1A3A9.94AA
Rail active text on active surfaceAa 14 px#FFFFFF / #5A3A709.24AA
Accepted / corroborated — chip text on chipAa 14 px#23704A / #DCEFE35.02AA
Accepted / corroborated — as plain text on surfaceAa 14 px#23704A / #FFFFFF6.02AA
Accepted / corroborated — as plain text on pageAa 14 px#23704A / #F7F3EC5.44AA
Reply due — chip text on chipAa 14 px#855500 / #F8EBD05.39AA
Reply due — as plain text on surfaceAa 14 px#855500 / #FFFFFF6.37AA
Reply due — as plain text on pageAa 14 px#855500 / #F7F3EC5.76AA
Disputed — chip text on chipAa 14 px#4B6688 / #E4EAF34.88AA
Disputed — as plain text on surfaceAa 14 px#4B6688 / #FFFFFF5.91AA
Disputed — as plain text on pageAa 14 px#4B6688 / #F7F3EC5.34AA
Superseded — chip text on chipAa 14 px#6B6472 / #E9E5EA4.57AA
Superseded — as plain text on surfaceAa 14 px#6B6472 / #FFFFFF5.69AA
Superseded — as plain text on pageAa 14 px#6B6472 / #F7F3EC5.14AA

Dark · worst pair 5.33:1

PairSamplefg / bgRatio
Body text on pageAa 14 px#EFE8F3 / #140F1A15.73AA
Body text on surfaceAa 14 px#EFE8F3 / #1E172614.52AA
Body text on alt surfaceAa 14 px#EFE8F3 / #281F3313.12AA
Muted text on pageAa 14 px#AFA4B8 / #140F1A7.93AA
Muted text on surfaceAa 14 px#AFA4B8 / #1E17267.32AA
Muted text on alt surfaceAa 14 px#AFA4B8 / #281F336.62AA
Brand text on pageAa 14 px#D6B8E8 / #140F1A10.67AA
Brand text on surfaceAa 14 px#D6B8E8 / #1E17269.85AA
Accent text (links) on pageAa 14 px#D6B8E8 / #140F1A10.67AA
Accent text (links) on surfaceAa 14 px#D6B8E8 / #1E17269.85AA
On-brand text on brand fillAa 14 px#FFFFFF / #8657A85.33AA
Rail text on railAa 14 px#C6B8CE / #0E0A1210.41AA
Rail active text on active surfaceAa 14 px#FFFFFF / #4E326210.73AA
Accepted / corroborated — chip text on chipAa 14 px#8FD7A8 / #1B3F2A6.95AA
Accepted / corroborated — as plain text on surfaceAa 14 px#8FD7A8 / #1E172610.33AA
Accepted / corroborated — as plain text on pageAa 14 px#8FD7A8 / #140F1A11.19AA
Reply due — chip text on chipAa 14 px#F1C86F / #3E30128.09AA
Reply due — as plain text on surfaceAa 14 px#F1C86F / #1E172610.97AA
Reply due — as plain text on pageAa 14 px#F1C86F / #140F1A11.89AA
Disputed — chip text on chipAa 14 px#AEC6E6 / #22334C7.30AA
Disputed — as plain text on surfaceAa 14 px#AEC6E6 / #1E17269.97AA
Disputed — as plain text on pageAa 14 px#AEC6E6 / #140F1A10.80AA
Superseded — chip text on chipAa 14 px#ABA3B3 / #2C25356.06AA
Superseded — as plain text on surfaceAa 14 px#ABA3B3 / #1E17267.15AA
Superseded — as plain text on pageAa 14 px#ABA3B3 / #140F1A7.75AA

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-fair-copy",
 "stylePreset": "console",
 "radius": "8px",
 "colors": {
  "light": {
   "bg": "#F7F3EC",
   "surface": "#FFFFFF",
   "surfaceAlt": "#EFE9DE",
   "border": "#D8CFC2",
   "text": "#2A1F33",
   "textMuted": "#6A5E73",
   "brand": "#4A2A5C",
   "brandText": "#4A2A5C",
   "onBrand": "#FFFFFF",
   "accent": "#7A4E9A",
   "accentText": "#5E3A78",
   "rail": "#2E1A3A",
   "railText": "#D6C8DE",
   "railTextActive": "#FFFFFF",
   "railActiveSurface": "#5A3A70",
   "status": {
    "accepted": {
     "fg": "#23704A",
     "bg": "#DCEFE3"
    },
    "replyDue": {
     "fg": "#855500",
     "bg": "#F8EBD0"
    },
    "disputed": {
     "fg": "#4B6688",
     "bg": "#E4EAF3"
    },
    "superseded": {
     "fg": "#6B6472",
     "bg": "#E9E5EA"
    }
   }
  },
  "dark": {
   "bg": "#140F1A",
   "surface": "#1E1726",
   "surfaceAlt": "#281F33",
   "border": "#3B3047",
   "text": "#EFE8F3",
   "textMuted": "#AFA4B8",
   "brand": "#8657A8",
   "brandText": "#D6B8E8",
   "onBrand": "#FFFFFF",
   "accent": "#C6A2DC",
   "accentText": "#D6B8E8",
   "rail": "#0E0A12",
   "railText": "#C6B8CE",
   "railTextActive": "#FFFFFF",
   "railActiveSurface": "#4E3262",
   "status": {
    "accepted": {
     "fg": "#8FD7A8",
     "bg": "#1B3F2A"
    },
    "replyDue": {
     "fg": "#F1C86F",
     "bg": "#3E3012"
    },
    "disputed": {
     "fg": "#AEC6E6",
     "bg": "#22334C"
    },
    "superseded": {
     "fg": "#ABA3B3",
     "bg": "#2C2535"
    }
   }
  }
 },
 "fonts": {
  "ui": {
   "family": "Atkinson Hyperlegible Next",
   "files": [
    "assets/fonts/atkinson-hyperlegible-next-400-normal.woff2",
    "assets/fonts/atkinson-hyperlegible-next-400-italic.woff2"
   ]
  },
  "document": {
   "family": "Literata",
   "files": [
    "assets/fonts/literata-400-normal.woff2",
    "assets/fonts/literata-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 3 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.