:root {
	--hue: 0;
	--sat: 0;
	--lum: 10;
}

* {
	--hue: inherit;
	--sat: inherit;
	--lum: inherit;
	--sat-cond: min(round(down, calc((100 - var(--sat)) / (100 - 35)), 1), 1);
	--hue-cond: min(round(down, calc(mod(var(--hue) + 360 - 45, 360)/(200 - 45 + 1)), 1), 1);
	--lum-split: calc(35 + 15 * max(var(--sat-cond), var(--hue-cond)));
	--mult: min(1, max(-1, calc(var(--plum) - 50)));
	--clum: calc(50 - 35 * (2 * min(round(down, calc(var(--lum)/var(--lum-split)), 1), 1) - 1));
	--plum: calc(100 - var(--clum));
	--hlum: calc(var(--mult) * max(calc((var(--lum) - 50) * var(--mult) + 10 * min(max(calc((var(--lum) - var(--plum)) * var(--mult) + 11), 0), 1)), calc((var(--plum) - 50) * var(--mult))) + 50);
	--primary-lum: calc(var(--mult) * min(
		calc(var(--mult) * (var(--lum) - 50)),
		calc(var(--mult) * (var(--plum) - 50))
	) + 50);
	--secondary-lum: calc(var(--lum) - (var(--lum) - var(--clum)) * (2/5));
	--tertiary-lum: calc(var(--lum) - (var(--lum) - var(--clum)) * (2/3));
	--harmony-primary-lum: calc(var(--mult) * max(
		45,
		calc(var(--mult) * (var(--lum) - 50)),
		calc(var(--mult) * (var(--plum) - 50))
	) + 50);
	--harmony-secondary-lum: calc(var(--mult) * max(
		calc(var(--mult) * (var(--lum) - 50)),
		calc(var(--mult) * (var(--plum) - 50))
	) + 50);
	--harmony-tertiary-lum: calc((var(--primary-lum) + var(--harmony-secondary-lum)) / 2);
	--primary: hsl(var(--hue), calc(1% * var(--sat)), calc(1% * var(--primary-lum)));
	--secondary: hsl(var(--hue), calc(1% * var(--sat)), calc(1% * var(--secondary-lum)));
	--tertiary: hsl(var(--hue), calc(1% * var(--sat)), calc(1% * var(--tertiary-lum)));
	--contrast: hsl(var(--hue), calc(1% * var(--sat)), calc(1% * var(--clum)));
	--harmony: hsl(var(--hue), calc(1% * var(--sat)), calc(1% * var(--harmony-lum)));
	--harmony-primary: hsl(var(--hue), calc(1% * var(--sat)), calc(1% * var(--harmony-primary-lum)));
	--harmony-secondary: hsl(var(--hue), calc(1% * var(--sat)), calc(1% * var(--harmony-secondary-lum)));
	--harmony-tertiary: hsl(var(--hue), calc(1% * var(--sat)), calc(1% * var(--harmony-tertiary-lum)));
}