WCAG contrast calculations (sRGB, WCAG 2.x formula)

Foreground / background    Ratio   Requirement
muted #6F665D on paper    5.05    >= 4.5 normal text PASS
muted #6F665D on card     5.53    >= 4.5 normal text PASS
accent #A64733 on paper   5.28    >= 4.5 normal text PASS
accent #A64733 on card    5.79    >= 4.5 normal text PASS
teal #1F5F5B on paper     6.63    >= 4.5 normal text PASS
teal #1F5F5B on card      7.26    >= 4.5 normal text PASS
ink #2A2622 on paper     13.48    >= 4.5 normal text PASS
ink #2A2622 on card      14.77    >= 4.5 normal text PASS

Map labels (visible):
teal #1F5F5B on land     5.86    >= 4.5 normal text PASS
accent #A64733 on land   4.67    >= 4.5 normal text PASS

Map graphics (non-text):
route #B5533C on land    3.91    >= 3.0 graphics PASS
route #B5533C on map bg  4.01    >= 3.0 graphics PASS
pins teal on card        7.26    >= 3.0 graphics PASS

Notes:
- axe-core marked color-contrast as "incomplete" for SVG map text because
  background overlap could not be determined automatically. Manual calculation
  against the visible land fill is above the 4.5 threshold.
- The map scale and north arrow are clipped by preserveAspectRatio="slice";
  they are not visible. The aria-label previously mentioned them. The label now
  describes only the visible cities and dashed route; see the audit report.
