.fontSizeGrid(@step, @size: "xs"){
	@scale-factor: "scale-factor-@{size}";
	@font-size-target: "font-size-target-@{size}";

	font-size: ceil(pow(@@scale-factor, @step) * @@font-size-target);
}

.lineHeightGrid(@step, @size: "xs"){
	@scale-factor: "scale-factor-@{size}";
	@font-size-target: "font-size-target-@{size}";
	@base-line-height: "base-line-height-@{size}";
	@line-height-target: "line-height-target-@{size}";

	@font-size: ceil(pow(@@scale-factor, @step) * @@font-size-target);
	@line: @@base-line-height / pow(@@scale-factor, @step) * ((pow(@@scale-factor, @step) * @@font-size-target) / @font-size);
	@line-height: @line * unit(ceil( (@font-size / @@font-size-target)  / (@@base-line-height) ) );

	line-height: @line-height;
}

.verticalRhythm(@step, @size: "xs"){
	.fontSizeGrid(@step, @size);
	.lineHeightGrid(@step, @size);
}