def lum(hexs):
    hexs = hexs.lstrip('#')
    c = [int(hexs[i:i+2], 16)/255 for i in (0, 2, 4)]
    c = [x/12.92 if x <= 0.03928 else ((x+0.055)/1.055)**2.4 for x in c]
    return 0.2126*c[0] + 0.7152*c[1] + 0.0722*c[2]
def ratio(a, b):
    la, lb = lum(a), lum(b)
    hi, lo = max(la, lb), min(la, lb)
    return (hi+0.05)/(lo+0.05)
if __name__ == '__main__':
    pairs = [
        ('Headline Navy auf Creme', '#06233c', '#fbfaf7'),
        ('Akzentwort Rot auf Creme', '#d71920', '#fbfaf7'),
        ('CTA weiss auf Rot', '#ffffff', '#d71920'),
        ('Microcopy hell auf Navy', '#e8edf2', '#06233c'),
        ('Label weiss auf Navy', '#ffffff', '#06233c'),
        ('Trust-Text auf Navy', '#f3f6f9', '#06233c'),
        ('VORHER-Label weiss auf Navy-Scrim', '#ffffff', '#0d3656'),
    ]
    for name, fg, bg in pairs:
        r = ratio(fg, bg)
        flag = 'OK' if r >= 4.5 else ('LARGE-ONLY' if r >= 3.0 else 'FAIL')
        print(f'{name:42s} {fg} auf {bg} = {r:5.2f}:1  {flag}')
