@function strip-unit($number) {
  @return $number / ($number * 0 + 1);
}

$base: $font-scale-base;
$ratio: $font-scale-ratio;

@function modular-size($size) {
  $result: $base;
  $i: 0;

  @if $size == 0 {
    @return $result;
  } @else if $size < 0 {
    @while $i > $size {
      $result: $result / $ratio;
      $i: $i - 1;
    }
    @return  $result;
  }

  @while $i < $size {
    $result: $result * $ratio;
    $i: $i + 1;
  }
  
  @return $result;
}

@function line-size($size) {
  $size: $size - 1;
  @if ($size == 0) {
    @return 1.4;
  } @else if ($size < 0) {
    @return $size / $ratio;
  }
  @return strip-unit(modular-size($size)) / $size;
}