:root {

    /* Private */
    /* Visibilty color font */
    --threshold: 0.5;
    --coef_r: 0.2126;
    --coef_g: 0.7152;
    --coef_b: 0.0722;

    --perceived-lightness_primary: calc(
        calc(
            calc(var(--client-primary_r) * var(--coef_r)) + 
            calc(var(--client-primary_g) * var(--coef_g)) + 
            calc(var(--client-primary_b) * var(--coef_b))
        ) / 255
    );

    --perceived-lightness_secondary: calc(
        calc(
            calc(var(--client-secondary_r) * var(--coef_r)) + 
            calc(var(--client-secondary_g) * var(--coef_g)) + 
            calc(var(--client-secondary_b) * var(--coef_b))
        ) / 255
    );

    --perceived-lightness_background: calc(
        calc(
            calc(var(--client-background_r) * var(--coef_r)) + 
            calc(var(--client-background_g) * var(--coef_g)) + 
            calc(var(--client-background_b) * var(--coef_b))
        ) / 255
    );
    
    /* Public */
    /* Main color */
    --client-primary: rgb(
        var(--client-primary_r), 
        var(--client-primary_g), 
        var(--client-primary_b)
    );

    --client-secondary: rgb(var(--client-secondary_r), var(--client-secondary_g), var(--client-secondary_b), var(--client-secondary_a));
    
    --client-secondary-background: rgb(var(--client-background_r), var(--client-background_g), var(--client-background_b), var(--client-background_a));

    /* Calculate colors */
    --client-secondary-menu: rgb(
        calc(var(--client-secondary_r) - 50),
        calc(var(--client-secondary_g) - 50),
        calc(var(--client-secondary_b) + 100),
        calc(var(--client-secondary_a) / 2)
    );

    --client-primary_t: hsl(0, 0%, calc((var(--perceived-lightness_primary) - var(--threshold)) * -10000000%));
    --client-secondary_t: hsl(0, 0%, calc((var(--perceived-lightness_secondary) - var(--threshold)) * -10000000%));
    --client-background_t: hsl(0, 0%, calc((var(--perceived-lightness_background) - var(--threshold)) * -10000000%));
}