@mixin shadows() {
  @include box-shadows;

  &[neo-source='bottom-right'] {
    @include box-shadows(bottom-right);
  }

  &[neo-source='top-right'] {
    @include box-shadows(top-right);
  }

  &[neo-source='bottom-left'] {
    @include box-shadows(bottom-left);
  }
}

@mixin box-shadows($direction: top-left) {
  /* Base shadows flat */
  $neo-shadow-flat:
    0 0 0 0 var(--neo-shadow-color-dark),
    0 0 0 0 var(--neo-shadow-color-light);
  $neo-shadow-inset-flat:
    inset 0 0 0 0 var(--neo-shadow-color-dark),
    inset 0 0 0 0 var(--neo-shadow-color-light);

  /* Base shadows raised */
  $neo-shadow-raised-1: null;
  $neo-shadow-raised-2: null;
  $neo-shadow-raised-3: null;
  $neo-shadow-raised-4: null;
  $neo-shadow-raised-5: null;

  /** Base shadows inset */
  $neo-shadow-inset-1: null;
  $neo-shadow-inset-2: null;
  $neo-shadow-inset-3: null;
  $neo-shadow-inset-4: null;
  $neo-shadow-inset-5: null;

  /* Base shadows convex */
  $neo-shadow-convex-1: null;
  $neo-shadow-convex-2: null;
  $neo-shadow-convex-3: null;
  $neo-shadow-convex-4: null;
  $neo-shadow-convex-5: null;

  /** Glass shadows raised */
  $neo-glass-shadow-raised-1: null;
  $neo-glass-shadow-raised-2: null;
  $neo-glass-shadow-raised-3: null;
  $neo-glass-shadow-raised-4: null;
  $neo-glass-shadow-raised-5: null;

  /** Glass shadows inset */
  $neo-glass-shadow-inset-1: null;
  $neo-glass-shadow-inset-2: null;
  $neo-glass-shadow-inset-3: null;
  $neo-glass-shadow-inset-4: null;
  $neo-glass-shadow-inset-5: null;

  /** Glass shadows pressed */
  $neo-glass-shadow-pressed-1: null;
  $neo-glass-shadow-pressed-2: null;
  $neo-glass-shadow-pressed-3: null;
  $neo-glass-shadow-pressed-4: null;
  $neo-glass-shadow-pressed-5: null;

  /** Glass shadows convex */
  $neo-glass-shadow-convex-1: null;
  $neo-glass-shadow-convex-2: null;
  $neo-glass-shadow-convex-3: null;
  $neo-glass-shadow-convex-4: null;
  $neo-glass-shadow-convex-5: null;

  /** glass border-color */
  $neo-glass-top-border-color: null;
  $neo-glass-right-border-color: null;
  $neo-glass-bottom-border-color: null;
  $neo-glass-left-border-color: null;

  /** floating border-color */
  $neo-floating-top-border-color: null;
  $neo-floating-right-border-color: null;
  $neo-floating-bottom-border-color: null;
  $neo-floating-left-border-color: null;

  /* Box shadows top left */
  @if $direction == top-left {
    /* Base shadows raised */
    $neo-shadow-raised-1:
      0.08rem 0.08rem 0.2rem var(--neo-shadow-color-dark),
      -0.08rem -0.08rem 0.1rem var(--neo-shadow-color-light);
    $neo-shadow-raised-2:
      0.1rem 0.1rem 0.3rem var(--neo-shadow-color-dark),
      -0.1rem -0.1rem 0.2rem var(--neo-shadow-color-light);
    $neo-shadow-raised-3:
      0.3rem 0.3rem 0.3rem var(--neo-shadow-color-dark),
      -0.2rem -0.2rem 0.2rem var(--neo-shadow-color-light);
    $neo-shadow-raised-4:
      0.5rem 0.5rem 0.6rem var(--neo-shadow-color-dark),
      -0.35rem -0.35rem 0.4rem var(--neo-shadow-color-light);
    $neo-shadow-raised-5:
      0.7rem 0.7rem 0.7rem var(--neo-shadow-color-dark),
      -0.55rem -0.55rem 0.7rem var(--neo-shadow-color-light);

    /** Base shadows inset */
    $neo-shadow-inset-1:
      inset 0.08rem 0.08rem 0.2rem var(--neo-shadow-color-dark),
      inset -0.08rem -0.08rem 0.1rem var(--neo-shadow-color-light);
    $neo-shadow-inset-2:
      inset 0.15rem 0.15rem 0.3rem var(--neo-shadow-color-dark),
      inset -0.15rem -0.15rem 0.2rem var(--neo-shadow-color-light);
    $neo-shadow-inset-3:
      inset 0.3rem 0.3rem 0.4rem var(--neo-shadow-color-dark),
      inset -0.2rem -0.2rem 0.3rem var(--neo-shadow-color-light);
    $neo-shadow-inset-4:
      inset 0.5rem 0.5rem 0.6rem var(--neo-shadow-color-dark),
      inset -0.35rem -0.35rem 0.4rem var(--neo-shadow-color-light);
    $neo-shadow-inset-5:
      inset 0.8rem 0.8rem 0.7rem var(--neo-shadow-color-dark),
      inset -0.6rem -0.6rem 0.8rem var(--neo-shadow-color-light);

    /* Base shadows convex */
    $neo-shadow-convex-1:
      inset 0.08rem 0.08rem 0.2rem 0.1rem var(--neo-shadow-color-light),
      inset -0.08rem -0.08rem 0.1rem 0.1rem var(--neo-shadow-color-dark);
    $neo-shadow-convex-2:
      inset 0.1rem 0.1rem 0.3rem 0.1rem var(--neo-shadow-color-light),
      inset -0.1rem -0.1rem 0.2rem 0.1rem var(--neo-shadow-color-dark);
    $neo-shadow-convex-3:
      inset 0.3rem 0.3rem 0.3rem 0.1rem var(--neo-shadow-color-light),
      inset -0.2rem -0.2rem 0.2rem 0.1rem var(--neo-shadow-color-dark);
    $neo-shadow-convex-4:
      inset 0.5rem 0.5rem 0.6rem 0.1rem var(--neo-shadow-color-light),
      inset -0.35rem -0.35rem 0.4rem 0.1rem var(--neo-shadow-color-dark);
    $neo-shadow-convex-5:
      inset 0.7rem 0.7rem 0.7rem 0.1rem var(--neo-shadow-color-light),
      inset -0.55rem -0.55rem 0.7rem 0.1rem var(--neo-shadow-color-dark);

    /** Glass shadows raised */
    $neo-glass-shadow-raised-1:
      -0.01rem -0.01rem 0.2rem var(--neo-glass-shadow-color-dark),
      0.08rem 0.08rem 0.2rem var(--neo-glass-shadow-color-dark);
    $neo-glass-shadow-raised-2:
      -0.02rem -0.02rem 0.2rem var(--neo-glass-shadow-color-dark),
      0.1rem 0.1rem 0.3rem var(--neo-glass-shadow-color-dark);
    $neo-glass-shadow-raised-3:
      -0.01rem -0.01rem 0.3rem var(--neo-glass-shadow-color-dark),
      0.3rem 0.3rem 0.3rem var(--neo-glass-shadow-color-dark);
    $neo-glass-shadow-raised-4:
      -0.01rem -0.01rem 0.4rem var(--neo-glass-shadow-color-dark),
      0.5rem 0.5rem 0.6rem var(--neo-glass-shadow-color-dark);
    $neo-glass-shadow-raised-5:
      -0.01rem -0.01rem 0.5rem var(--neo-glass-shadow-color-dark),
      0.8rem 0.8rem 0.7rem var(--neo-glass-shadow-color-dark);

    // TODO - other orientations

    /** Glass shadows inset */
    $neo-glass-shadow-inset-1:
      inset 0.08rem 0.08rem 0.2rem var(--neo-glass-shadow-color-dark),
      inset -0.08rem -0.08rem 0.1rem var(--neo-glass-shadow-color-light);
    $neo-glass-shadow-inset-2:
      inset 0.15rem 0.15rem 0.3rem var(--neo-glass-shadow-color-dark),
      inset -0.15rem -0.15rem 0.2rem var(--neo-glass-shadow-color-light);
    $neo-glass-shadow-inset-3:
      inset 0.3rem 0.3rem 0.4rem var(--neo-glass-shadow-color-dark),
      inset -0.2rem -0.2rem 0.3rem var(--neo-glass-shadow-color-light);
    $neo-glass-shadow-inset-4:
      inset 0.5rem 0.5rem 0.6rem var(--neo-glass-shadow-color-dark),
      inset -0.35rem -0.35rem 0.4rem var(--neo-glass-shadow-color-light);
    $neo-glass-shadow-inset-5:
      inset 0.8rem 0.8rem 0.7rem var(--neo-glass-shadow-color-dark),
      inset -0.6rem -0.6rem 0.8rem var(--neo-glass-shadow-color-light);

    /** Glass shadows pressed */
    $neo-glass-shadow-pressed-1:
      #{$neo-glass-shadow-raised-1},
      -0.08rem -0.08rem 0.1rem var(--neo-glass-shadow-color-light);
    $neo-glass-shadow-pressed-2:
      #{$neo-glass-shadow-raised-2},
      -0.1rem -0.1rem 0.2rem var(--neo-glass-shadow-color-light);
    $neo-glass-shadow-pressed-3:
      #{$neo-glass-shadow-raised-3},
      -0.2rem -0.2rem 0.2rem var(--neo-glass-shadow-color-light);
    $neo-glass-shadow-pressed-4:
      #{$neo-glass-shadow-raised-4},
      -0.35rem -0.35rem 0.4rem var(--neo-glass-shadow-color-light);
    $neo-glass-shadow-pressed-5:
      #{$neo-glass-shadow-raised-5},
      -0.55rem -0.55rem 0.7rem var(--neo-glass-shadow-color-light);

    /** Glass shadows convex */
    $neo-glass-shadow-convex-1:
      inset 0.08rem 0.08rem 0.2rem var(--neo-glass-shadow-color-light),
      inset -0.08rem -0.08rem 0.1rem var(--neo-glass-shadow-color-dark);
    $neo-glass-shadow-convex-2:
      inset 0.1rem 0.1rem 0.3rem var(--neo-glass-shadow-color-light),
      inset -0.1rem -0.1rem 0.2rem var(--neo-glass-shadow-color-dark);
    $neo-glass-shadow-convex-3:
      inset 0.3rem 0.3rem 0.3rem var(--neo-glass-shadow-color-light),
      inset -0.2rem -0.2rem 0.2rem var(--neo-glass-shadow-color-dark);
    $neo-glass-shadow-convex-4:
      inset 0.5rem 0.5rem 0.6rem var(--neo-glass-shadow-color-light),
      inset -0.35rem -0.35rem 0.4rem var(--neo-glass-shadow-color-dark);
    $neo-glass-shadow-convex-5:
      inset 0.7rem 0.7rem 0.7rem var(--neo-glass-shadow-color-light),
      inset -0.55rem -0.55rem 0.7rem var(--neo-glass-shadow-color-dark);

    /** glass border-color */
    $neo-glass-top-border-color: var(--neo-glass-border-color);
    $neo-glass-right-border-color: transparent;
    $neo-glass-left-border-color: var(--neo-glass-border-color);
    $neo-glass-bottom-border-color: transparent;

    /** floating border-color */
    $neo-floating-top-border-color: var(--neo-floating-border-color);
    $neo-floating-right-border-color: transparent;
    $neo-floating-left-border-color: var(--neo-floating-border-color);
    $neo-floating-bottom-border-color: transparent;
  }

  /* Box shadows top right */
  @else if $direction == top-right {
    /* Box shadows raised */
    $neo-shadow-raised-1:
      -0.08rem 0.08rem 0.2rem var(--neo-shadow-color-dark),
      0.08rem -0.08rem 0.1rem var(--neo-shadow-color-light);
    $neo-shadow-raised-2:
      -0.1rem 0.1rem 0.3rem var(--neo-shadow-color-dark),
      0.1rem -0.1rem 0.2rem var(--neo-shadow-color-light);
    $neo-shadow-raised-3:
      -0.3rem 0.3rem 0.3rem var(--neo-shadow-color-dark),
      0.2rem -0.2rem 0.2rem var(--neo-shadow-color-light);
    $neo-shadow-raised-4:
      -0.5rem 0.5rem 0.6rem var(--neo-shadow-color-dark),
      0.35rem -0.35rem 0.4rem var(--neo-shadow-color-light);
    $neo-shadow-raised-5:
      -0.7rem 0.7rem 0.7rem var(--neo-shadow-color-dark),
      0.55rem -0.55rem 0.7rem var(--neo-shadow-color-light);

    /* Box shadows inset */
    $neo-shadow-inset-1:
      inset -0.08rem 0.08rem 0.2rem var(--neo-shadow-color-dark),
      inset 0.08rem -0.08rem 0.1rem var(--neo-shadow-color-light);
    $neo-shadow-inset-2:
      inset -0.15rem 0.15rem 0.3rem var(--neo-shadow-color-dark),
      inset 0.15rem -0.15rem 0.2rem var(--neo-shadow-color-light);
    $neo-shadow-inset-3:
      inset -0.3rem 0.3rem 0.4rem var(--neo-shadow-color-dark),
      inset 0.2rem -0.2rem 0.3rem var(--neo-shadow-color-light);
    $neo-shadow-inset-4:
      inset -0.5rem 0.5rem 0.6rem var(--neo-shadow-color-dark),
      inset 0.35rem -0.35rem 0.4rem var(--neo-shadow-color-light);
    $neo-shadow-inset-5:
      inset -0.8rem 0.8rem 0.7rem var(--neo-shadow-color-dark),
      inset 0.6rem -0.6rem 0.8rem var(--neo-shadow-color-light);

    /* Base shadows convex */
    $neo-shadow-convex-1:
      inset -0.08rem 0.08rem 0.2rem var(--neo-shadow-color-light),
      inset 0.08rem -0.08rem 0.1rem var(--neo-shadow-color-dark);
    $neo-shadow-convex-2:
      inset -0.1rem 0.1rem 0.3rem var(--neo-shadow-color-light),
      inset 0.1rem -0.1rem 0.2rem var(--neo-shadow-color-dark);
    $neo-shadow-convex-3:
      inset -0.3rem 0.3rem 0.3rem var(--neo-shadow-color-light),
      inset 0.2rem -0.2rem 0.2rem var(--neo-shadow-color-dark);
    $neo-shadow-convex-4:
      inset -0.5rem 0.5rem 0.6rem var(--neo-shadow-color-light),
      inset 0.35rem -0.35rem 0.4rem var(--neo-shadow-color-dark);
    $neo-shadow-convex-5:
      inset -0.7rem 0.7rem 0.7rem var(--neo-shadow-color-light),
      inset 0.55rem -0.55rem 0.7rem var(--neo-shadow-color-dark);

    /** Glass shadows raised */
    $neo-glass-shadow-raised-1:
      0.01rem -0.01rem 0.2rem var(--neo-glass-shadow-color-dark),
      -0.08rem 0.08rem 0.2rem var(--neo-glass-shadow-color-dark);
    $neo-glass-shadow-raised-2:
      0.01rem -0.01rem 0.2rem var(--neo-glass-shadow-color-dark),
      -0.1rem 0.1rem 0.3rem var(--neo-glass-shadow-color-dark);
    $neo-glass-shadow-raised-3:
      0.01rem -0.01rem 0.3rem var(--neo-glass-shadow-color-dark),
      -0.3rem 0.3rem 0.3rem var(--neo-glass-shadow-color-dark);
    $neo-glass-shadow-raised-4:
      0.01rem -0.01rem 0.4rem var(--neo-glass-shadow-color-dark),
      -0.5rem 0.5rem 0.6rem var(--neo-glass-shadow-color-dark);
    $neo-glass-shadow-raised-5:
      0.01rem -0.01rem 0.5rem var(--neo-glass-shadow-color-dark),
      -0.8rem 0.8rem 0.7rem var(--neo-glass-shadow-color-dark);

    /* Box shadows inset */
    $neo-glass-shadow-inset-1:
      inset -0.08rem 0.08rem 0.2rem var(--neo-glass-shadow-color-dark),
      inset 0.08rem -0.08rem 0.1rem var(--neo-glass-shadow-color-light);
    $neo-glass-shadow-inset-2:
      inset -0.15rem 0.15rem 0.3rem var(--neo-glass-shadow-color-dark),
      inset 0.15rem -0.15rem 0.2rem var(--neo-glass-shadow-color-light);
    $neo-glass-shadow-inset-3:
      inset -0.3rem 0.3rem 0.4rem var(--neo-glass-shadow-color-dark),
      inset 0.2rem -0.2rem 0.3rem var(--neo-glass-shadow-color-light);
    $neo-glass-shadow-inset-4:
      inset -0.5rem 0.5rem 0.6rem var(--neo-glass-shadow-color-dark),
      inset 0.35rem -0.35rem 0.4rem var(--neo-glass-shadow-color-light);
    $neo-glass-shadow-inset-5:
      inset -0.8rem 0.8rem 0.7rem var(--neo-glass-shadow-color-dark),
      inset 0.6rem -0.6rem 0.8rem var(--neo-glass-shadow-color-light);

    /** Glass shadows pressed */
    $neo-glass-shadow-pressed-1:
      #{$neo-glass-shadow-raised-1},
      0.08rem -0.08rem 0.1rem var(--neo-glass-shadow-color-light);
    $neo-glass-shadow-pressed-2:
      #{$neo-glass-shadow-raised-2},
      0.1rem -0.1rem 0.2rem var(--neo-glass-shadow-color-light);
    $neo-glass-shadow-pressed-3:
      #{$neo-glass-shadow-raised-3},
      0.2rem -0.2rem 0.2rem var(--neo-glass-shadow-color-light);
    $neo-glass-shadow-pressed-4:
      #{$neo-glass-shadow-raised-4},
      0.35rem -0.35rem 0.4rem var(--neo-glass-shadow-color-light);
    $neo-glass-shadow-pressed-5:
      #{$neo-glass-shadow-raised-5},
      0.55rem -0.55rem 0.7rem var(--neo-glass-shadow-color-light);

    /* Base shadows convex */
    $neo-glass-shadow-convex-1:
      inset -0.08rem 0.08rem 0.2rem var(--neo-glass-shadow-color-light),
      inset 0.08rem -0.08rem 0.1rem var(--neo-glass-shadow-color-dark);
    $neo-glass-shadow-convex-2:
      inset -0.1rem 0.1rem 0.3rem var(--neo-glass-shadow-color-light),
      inset 0.1rem -0.1rem 0.2rem var(--neo-glass-shadow-color-dark);
    $neo-glass-shadow-convex-3:
      inset -0.3rem 0.3rem 0.3rem var(--neo-glass-shadow-color-light),
      inset 0.2rem -0.2rem 0.2rem var(--neo-glass-shadow-color-dark);
    $neo-glass-shadow-convex-4:
      inset -0.5rem 0.5rem 0.6rem var(--neo-glass-shadow-color-light),
      inset 0.35rem -0.35rem 0.4rem var(--neo-glass-shadow-color-dark);
    $neo-glass-shadow-convex-5:
      inset -0.7rem 0.7rem 0.7rem var(--neo-glass-shadow-color-light),
      inset 0.55rem -0.55rem 0.7rem var(--neo-glass-shadow-color-dark);

    /** glass border-color */
    $neo-glass-top-border-color: var(--neo-glass-border-color);
    $neo-glass-right-border-color: var(--neo-glass-border-color);
    $neo-glass-left-border-color: transparent;
    $neo-glass-bottom-border-color: transparent;

    /** floating border-color */
    $neo-floating-top-border-color: var(--neo-floating-border-color);
    $neo-floating-right-border-color: var(--neo-floating-border-color);
    $neo-floating-left-border-color: transparent;
    $neo-floating-bottom-border-color: transparent;
  }

  /* Box shadows bottom right */
  @else if $direction == bottom-right {
    /* Box shadows raised */
    $neo-shadow-raised-1:
      -0.08rem -0.08rem 0.2rem var(--neo-shadow-color-dark),
      0.08rem 0.08rem 0.1rem var(--neo-shadow-color-light);
    $neo-shadow-raised-2:
      -0.1rem -0.1rem 0.3rem var(--neo-shadow-color-dark),
      0.1rem 0.1rem 0.2rem var(--neo-shadow-color-light);
    $neo-shadow-raised-3:
      -0.3rem -0.3rem 0.3rem var(--neo-shadow-color-dark),
      0.2rem 0.2rem 0.2rem var(--neo-shadow-color-light);
    $neo-shadow-raised-4:
      -0.5rem -0.5rem 0.6rem var(--neo-shadow-color-dark),
      0.35rem 0.35rem 0.4rem var(--neo-shadow-color-light);
    $neo-shadow-raised-5:
      -0.7rem -0.7rem 0.7rem var(--neo-shadow-color-dark),
      0.55rem 0.55rem 0.7rem var(--neo-shadow-color-light);

    /* Box shadows inset */
    $neo-shadow-inset-1:
      inset -0.08rem -0.08rem 0.2rem var(--neo-shadow-color-dark),
      inset 0.08rem 0.08rem 0.1rem var(--neo-shadow-color-light);
    $neo-shadow-inset-2:
      inset -0.15rem -0.15rem 0.3rem var(--neo-shadow-color-dark),
      inset 0.15rem 0.15rem 0.2rem var(--neo-shadow-color-light);
    $neo-shadow-inset-3:
      inset -0.3rem -0.3rem 0.4rem var(--neo-shadow-color-dark),
      inset 0.2rem 0.2rem 0.3rem var(--neo-shadow-color-light);
    $neo-shadow-inset-4:
      inset -0.5rem -0.5rem 0.6rem var(--neo-shadow-color-dark),
      inset 0.35rem 0.35rem 0.4rem var(--neo-shadow-color-light);
    $neo-shadow-inset-5:
      inset -0.8rem -0.8rem 0.7rem var(--neo-shadow-color-dark),
      inset 0.6rem 0.6rem 0.8rem var(--neo-shadow-color-light);

    /* Base shadows convex */
    $neo-shadow-convex-1:
      inset -0.08rem -0.08rem 0.2rem var(--neo-shadow-color-light),
      inset 0.08rem 0.08rem 0.1rem var(--neo-shadow-color-dark);
    $neo-shadow-convex-2:
      inset -0.1rem -0.1rem 0.3rem var(--neo-shadow-color-light),
      inset 0.1rem 0.1rem 0.2rem var(--neo-shadow-color-dark);
    $neo-shadow-convex-3:
      inset -0.3rem -0.3rem 0.3rem var(--neo-shadow-color-light),
      inset 0.2rem 0.2rem 0.2rem var(--neo-shadow-color-dark);
    $neo-shadow-convex-4:
      inset -0.5rem -0.5rem 0.6rem var(--neo-shadow-color-light),
      inset 0.35rem 0.35rem 0.4rem var(--neo-shadow-color-dark);
    $neo-shadow-convex-5:
      inset -0.7rem -0.7rem 0.7rem var(--neo-shadow-color-light),
      inset 0.55rem 0.55rem 0.7rem var(--neo-shadow-color-dark);

    /** Glass shadows raised */
    $neo-glass-shadow-raised-1:
      0.01rem 0.01rem 0.2rem var(--neo-glass-shadow-color-dark),
      -0.08rem -0.08rem 0.2rem var(--neo-glass-shadow-color-dark);
    $neo-glass-shadow-raised-2:
      0.01rem 0.01rem 0.2rem var(--neo-glass-shadow-color-dark),
      -0.1rem -0.1rem 0.3rem var(--neo-glass-shadow-color-dark);
    $neo-glass-shadow-raised-3:
      0.01rem 0.01rem 0.3rem var(--neo-glass-shadow-color-dark),
      -0.3rem -0.3rem 0.3rem var(--neo-glass-shadow-color-dark);
    $neo-glass-shadow-raised-4:
      0.01rem 0.01rem 0.4rem var(--neo-glass-shadow-color-dark),
      -0.5rem -0.5rem 0.6rem var(--neo-glass-shadow-color-dark);
    $neo-glass-shadow-raised-5:
      0.01rem 0.01rem 0.5rem var(--neo-glass-shadow-color-dark),
      -0.8rem -0.8rem 0.7rem var(--neo-glass-shadow-color-dark);

    /* Box shadows inset */
    $neo-glass-shadow-inset-1:
      inset -0.08rem -0.08rem 0.2rem var(--neo-glass-shadow-color-dark),
      inset 0.08rem 0.08rem 0.1rem var(--neo-glass-shadow-color-light);
    $neo-glass-shadow-inset-2:
      inset -0.15rem -0.15rem 0.3rem var(--neo-glass-shadow-color-dark),
      inset 0.15rem 0.15rem 0.2rem var(--neo-glass-shadow-color-light);
    $neo-glass-shadow-inset-3:
      inset -0.3rem -0.3rem 0.4rem var(--neo-glass-shadow-color-dark),
      inset 0.2rem 0.2rem 0.3rem var(--neo-glass-shadow-color-light);
    $neo-glass-shadow-inset-4:
      inset -0.5rem -0.5rem 0.6rem var(--neo-glass-shadow-color-dark),
      inset 0.35rem 0.35rem 0.4rem var(--neo-glass-shadow-color-light);
    $neo-glass-shadow-inset-5:
      inset -0.8rem -0.8rem 0.7rem var(--neo-glass-shadow-color-dark),
      inset 0.6rem 0.6rem 0.8rem var(--neo-glass-shadow-color-light);

    /** Glass shadows pressed */
    $neo-glass-shadow-pressed-1:
      #{$neo-glass-shadow-raised-1},
      0.08rem 0.08rem 0.1rem var(--neo-glass-shadow-color-light);
    $neo-glass-shadow-pressed-2:
      #{$neo-glass-shadow-raised-2},
      0.1rem 0.1rem 0.2rem var(--neo-glass-shadow-color-light);
    $neo-glass-shadow-pressed-3:
      #{$neo-glass-shadow-raised-3},
      0.2rem 0.2rem 0.2rem var(--neo-glass-shadow-color-light);
    $neo-glass-shadow-pressed-4:
      #{$neo-glass-shadow-raised-4},
      0.35rem 0.35rem 0.4rem var(--neo-glass-shadow-color-light);
    $neo-glass-shadow-pressed-5:
      #{$neo-glass-shadow-raised-5},
      0.55rem 0.55rem 0.7rem var(--neo-glass-shadow-color-light);

    /* Base shadows convex */
    $neo-glass-shadow-convex-1:
      inset -0.08rem -0.08rem 0.2rem var(--neo-glass-shadow-color-light),
      inset 0.08rem 0.08rem 0.1rem var(--neo-glass-shadow-color-dark);
    $neo-glass-shadow-convex-2:
      inset -0.1rem -0.1rem 0.3rem var(--neo-glass-shadow-color-light),
      inset 0.1rem 0.1rem 0.2rem var(--neo-glass-shadow-color-dark);
    $neo-glass-shadow-convex-3:
      inset -0.3rem -0.3rem 0.3rem var(--neo-glass-shadow-color-light),
      inset 0.2rem 0.2rem 0.2rem var(--neo-glass-shadow-color-dark);
    $neo-glass-shadow-convex-4:
      inset -0.5rem -0.5rem 0.6rem var(--neo-glass-shadow-color-light),
      inset 0.35rem 0.35rem 0.4rem var(--neo-glass-shadow-color-dark);
    $neo-glass-shadow-convex-5:
      inset -0.7rem -0.7rem 0.7rem var(--neo-glass-shadow-color-light),
      inset 0.55rem 0.55rem 0.7rem var(--neo-glass-shadow-color-dark);

    /** glass border-color */
    $neo-glass-top-border-color: transparent;
    $neo-glass-right-border-color: var(--neo-glass-border-color);
    $neo-glass-left-border-color: transparent;
    $neo-glass-bottom-border-color: var(--neo-glass-border-color);

    /** floating border-color */
    $neo-floating-top-border-color: transparent;
    $neo-floating-right-border-color: var(--neo-floating-border-color);
    $neo-floating-left-border-color: transparent;
    $neo-floating-bottom-border-color: var(--neo-floating-border-color);
  }

  /* Box shadows bottom left */
  @else if $direction == bottom-left {
    /* Base shadows raised */
    $neo-shadow-raised-1:
      0.08rem -0.08rem 0.2rem var(--neo-shadow-color-dark),
      -0.08rem 0.08rem 0.1rem var(--neo-shadow-color-light);
    $neo-shadow-raised-2:
      0.1rem -0.1rem 0.3rem var(--neo-shadow-color-dark),
      -0.1rem 0.1rem 0.2rem var(--neo-shadow-color-light);
    $neo-shadow-raised-3:
      0.3rem -0.3rem 0.3rem var(--neo-shadow-color-dark),
      -0.2rem 0.2rem 0.2rem var(--neo-shadow-color-light);
    $neo-shadow-raised-4:
      0.5rem -0.5rem 0.6rem var(--neo-shadow-color-dark),
      -0.35rem 0.35rem 0.4rem var(--neo-shadow-color-light);
    $neo-shadow-raised-5:
      0.7rem -0.7rem 0.7rem var(--neo-shadow-color-dark),
      -0.55rem 0.55rem 0.7rem var(--neo-shadow-color-light);

    /** Base shadows */
    $neo-shadow-inset-1:
      inset 0.08rem -0.08rem 0.2rem var(--neo-shadow-color-dark),
      inset -0.08rem 0.08rem 0.1rem var(--neo-shadow-color-light);
    $neo-shadow-inset-2:
      inset 0.15rem -0.15rem 0.3rem var(--neo-shadow-color-dark),
      inset -0.15rem 0.15rem 0.2rem var(--neo-shadow-color-light);
    $neo-shadow-inset-3:
      inset 0.3rem -0.3rem 0.4rem var(--neo-shadow-color-dark),
      inset -0.2rem 0.2rem 0.3rem var(--neo-shadow-color-light);
    $neo-shadow-inset-4:
      inset 0.5rem -0.5rem 0.6rem var(--neo-shadow-color-dark),
      inset -0.35rem 0.35rem 0.4rem var(--neo-shadow-color-light);
    $neo-shadow-inset-5:
      inset 0.8rem -0.8rem 0.7rem var(--neo-shadow-color-dark),
      inset -0.6rem 0.6rem 0.8rem var(--neo-shadow-color-light);

    /* Base shadows convex */
    $neo-shadow-convex-1:
      inset 0.08rem -0.08rem 0.2rem var(--neo-shadow-color-light),
      inset -0.08rem 0.08rem 0.1rem var(--neo-shadow-color-dark);
    $neo-shadow-convex-2:
      inset 0.1rem -0.1rem 0.3rem var(--neo-shadow-color-light),
      inset -0.1rem 0.1rem 0.2rem var(--neo-shadow-color-dark);
    $neo-shadow-convex-3:
      inset 0.3rem -0.3rem 0.3rem var(--neo-shadow-color-light),
      inset -0.2rem 0.2rem 0.2rem var(--neo-shadow-color-dark);
    $neo-shadow-convex-4:
      inset 0.5rem -0.5rem 0.6rem var(--neo-shadow-color-light),
      inset -0.35rem 0.35rem 0.4rem var(--neo-shadow-color-dark);
    $neo-shadow-convex-5:
      inset 0.7rem -0.7rem 0.7rem var(--neo-shadow-color-light),
      inset -0.55rem 0.55rem 0.7rem var(--neo-shadow-color-dark);

    /** Glass shadows raised */
    $neo-glass-shadow-raised-1:
      -0.01rem 0.01rem 0.2rem var(--neo-glass-shadow-color-dark),
      0.08rem -0.08rem 0.2rem var(--neo-glass-shadow-color-dark);
    $neo-glass-shadow-raised-2:
      -0.01rem 0.01rem 0.2rem var(--neo-glass-shadow-color-dark),
      0.1rem -0.1rem 0.3rem var(--neo-glass-shadow-color-dark);
    $neo-glass-shadow-raised-3:
      -0.01rem 0.01rem 0.3rem var(--neo-glass-shadow-color-dark),
      0.3rem -0.3rem 0.3rem var(--neo-glass-shadow-color-dark);
    $neo-glass-shadow-raised-4:
      -0.01rem 0.01rem 0.4rem var(--neo-glass-shadow-color-dark),
      0.5rem -0.5rem 0.6rem var(--neo-glass-shadow-color-dark);
    $neo-glass-shadow-raised-5:
      -0.01rem 0.01rem 0.5rem var(--neo-glass-shadow-color-dark),
      0.8rem -0.8rem 0.7rem var(--neo-glass-shadow-color-dark);

    /** Base shadows inset */
    $neo-glass-shadow-inset-1:
      inset 0.08rem -0.08rem 0.2rem var(--neo-glass-shadow-color-dark),
      inset -0.08rem 0.08rem 0.1rem var(--neo-glass-shadow-color-light);
    $neo-glass-shadow-inset-2:
      inset 0.15rem -0.15rem 0.3rem var(--neo-glass-shadow-color-dark),
      inset -0.15rem 0.15rem 0.2rem var(--neo-glass-shadow-color-light);
    $neo-glass-shadow-inset-3:
      inset 0.3rem -0.3rem 0.4rem var(--neo-glass-shadow-color-dark),
      inset -0.2rem 0.2rem 0.3rem var(--neo-glass-shadow-color-light);
    $neo-glass-shadow-inset-4:
      inset 0.5rem -0.5rem 0.6rem var(--neo-glass-shadow-color-dark),
      inset -0.35rem 0.35rem 0.4rem var(--neo-glass-shadow-color-light);
    $neo-glass-shadow-inset-5:
      inset 0.8rem -0.8rem 0.7rem var(--neo-glass-shadow-color-dark),
      inset -0.6rem 0.6rem 0.8rem var(--neo-glass-shadow-color-light);

    /** Glass shadows pressed */
    $neo-glass-shadow-pressed-1:
      #{$neo-glass-shadow-raised-1},
      -0.08rem 0.08rem 0.1rem var(--neo-glass-shadow-color-light);
    $neo-glass-shadow-pressed-2:
      #{$neo-glass-shadow-raised-2},
      -0.1rem 0.1rem 0.2rem var(--neo-glass-shadow-color-light);
    $neo-glass-shadow-pressed-3:
      #{$neo-glass-shadow-raised-3},
      -0.2rem 0.2rem 0.2rem var(--neo-glass-shadow-color-light);
    $neo-glass-shadow-pressed-4:
      #{$neo-glass-shadow-raised-4},
      -0.35rem 0.35rem 0.4rem var(--neo-glass-shadow-color-light);
    $neo-glass-shadow-pressed-5:
      #{$neo-glass-shadow-raised-5},
      -0.55rem 0.55rem 0.7rem var(--neo-glass-shadow-color-light);

    /* Base shadows convex */
    $neo-glass-shadow-convex-1:
      inset 0.08rem -0.08rem 0.2rem var(--neo-glass-shadow-color-light),
      inset -0.08rem 0.08rem 0.1rem var(--neo-glass-shadow-color-dark);
    $neo-glass-shadow-convex-2:
      inset 0.1rem -0.1rem 0.3rem var(--neo-glass-shadow-color-light),
      inset -0.1rem 0.1rem 0.2rem var(--neo-glass-shadow-color-dark);
    $neo-glass-shadow-convex-3:
      inset 0.3rem -0.3rem 0.3rem var(--neo-glass-shadow-color-light),
      inset -0.2rem 0.2rem 0.2rem var(--neo-glass-shadow-color-dark);
    $neo-glass-shadow-convex-4:
      inset 0.5rem -0.5rem 0.6rem var(--neo-glass-shadow-color-light),
      inset -0.35rem 0.35rem 0.4rem var(--neo-glass-shadow-color-dark);
    $neo-glass-shadow-convex-5:
      inset 0.7rem -0.7rem 0.7rem var(--neo-glass-shadow-color-light),
      inset -0.55rem 0.55rem 0.7rem var(--neo-glass-shadow-color-dark);

    /** glass border-color */
    $neo-glass-top-border-color: transparent;
    $neo-glass-right-border-color: transparent;
    $neo-glass-left-border-color: var(--neo-glass-border-color);
    $neo-glass-bottom-border-color: var(--neo-glass-border-color);

    /** floating border-color */
    $neo-floating-top-border-color: transparent;
    $neo-floating-right-border-color: transparent;
    $neo-floating-left-border-color: var(--neo-floating-border-color);
    $neo-floating-bottom-border-color: var(--neo-floating-border-color);
  }

  /** Base shadows flat */
  --neo-box-shadow-flat: none;

  /* Box shadows raised */
  --neo-box-shadow-raised-1: #{$neo-shadow-raised-1}, #{$neo-shadow-inset-flat};
  --neo-box-shadow-raised-2: #{$neo-shadow-raised-2}, #{$neo-shadow-inset-flat};
  --neo-box-shadow-raised-3: #{$neo-shadow-raised-3}, #{$neo-shadow-inset-flat};
  --neo-box-shadow-raised-4: #{$neo-shadow-raised-4}, #{$neo-shadow-inset-flat};
  --neo-box-shadow-raised-5: #{$neo-shadow-raised-5}, #{$neo-shadow-inset-flat};

  /** Base shadows inset */
  --neo-box-shadow-inset-1: #{$neo-shadow-flat}, #{$neo-shadow-inset-1};
  --neo-box-shadow-inset-2: #{$neo-shadow-flat}, #{$neo-shadow-inset-2};
  --neo-box-shadow-inset-3: #{$neo-shadow-flat}, #{$neo-shadow-inset-3};
  --neo-box-shadow-inset-4: #{$neo-shadow-flat}, #{$neo-shadow-inset-4};
  --neo-box-shadow-inset-5: #{$neo-shadow-flat}, #{$neo-shadow-inset-5};

  /** Base shadows pressed */
  --neo-box-shadow-pressed-1: #{$neo-shadow-raised-1}, #{$neo-shadow-inset-1};
  --neo-box-shadow-pressed-2: #{$neo-shadow-raised-2}, #{$neo-shadow-inset-2};
  --neo-box-shadow-pressed-3: #{$neo-shadow-raised-3}, #{$neo-shadow-inset-3};
  --neo-box-shadow-pressed-4: #{$neo-shadow-raised-4}, #{$neo-shadow-inset-4};
  --neo-box-shadow-pressed-5: #{$neo-shadow-raised-5}, #{$neo-shadow-inset-5};

  /** Base shadows convex */
  --neo-box-shadow-convex-1: #{$neo-shadow-convex-1};
  --neo-box-shadow-convex-2: #{$neo-shadow-convex-2};
  --neo-box-shadow-convex-3: #{$neo-shadow-convex-3};
  --neo-box-shadow-convex-4: #{$neo-shadow-convex-4};
  --neo-box-shadow-convex-5: #{$neo-shadow-convex-5};

  /* Glass box shadows raised */
  --neo-glass-box-shadow-raised-1: #{$neo-glass-shadow-raised-1};
  --neo-glass-box-shadow-raised-2: #{$neo-glass-shadow-raised-2};
  --neo-glass-box-shadow-raised-3: #{$neo-glass-shadow-raised-3};
  --neo-glass-box-shadow-raised-4: #{$neo-glass-shadow-raised-4};
  --neo-glass-box-shadow-raised-5: #{$neo-glass-shadow-raised-5};

  /* Glass box shadows inset */
  --neo-glass-box-shadow-inset-1: #{$neo-glass-shadow-inset-1};
  --neo-glass-box-shadow-inset-2: #{$neo-glass-shadow-inset-2};
  --neo-glass-box-shadow-inset-3: #{$neo-glass-shadow-inset-3};
  --neo-glass-box-shadow-inset-4: #{$neo-glass-shadow-inset-4};
  --neo-glass-box-shadow-inset-5: #{$neo-glass-shadow-inset-5};

  /** Glass shadows pressed */
  --neo-glass-box-shadow-pressed-1: #{$neo-glass-shadow-pressed-1}, #{$neo-glass-shadow-inset-1};
  --neo-glass-box-shadow-pressed-2: #{$neo-glass-shadow-pressed-2}, #{$neo-glass-shadow-inset-2};
  --neo-glass-box-shadow-pressed-3: #{$neo-glass-shadow-pressed-3}, #{$neo-glass-shadow-inset-3};
  --neo-glass-box-shadow-pressed-4: #{$neo-glass-shadow-pressed-4}, #{$neo-glass-shadow-inset-4};
  --neo-glass-box-shadow-pressed-5: #{$neo-glass-shadow-pressed-5}, #{$neo-glass-shadow-inset-5};

  /** Glass shadows pressed */
  --neo-glass-box-shadow-active-1: #{$neo-glass-shadow-raised-1}, #{$neo-glass-shadow-inset-1};
  --neo-glass-box-shadow-active-2: #{$neo-glass-shadow-raised-2}, #{$neo-glass-shadow-inset-2};
  --neo-glass-box-shadow-active-3: #{$neo-glass-shadow-raised-3}, #{$neo-glass-shadow-inset-3};
  --neo-glass-box-shadow-active-4: #{$neo-glass-shadow-raised-4}, #{$neo-glass-shadow-inset-4};
  --neo-glass-box-shadow-active-5: #{$neo-glass-shadow-raised-5}, #{$neo-glass-shadow-inset-5};

  /** Glass shadows convex */
  --neo-glass-box-shadow-convex-1: #{$neo-glass-shadow-convex-1};
  --neo-glass-box-shadow-convex-2: #{$neo-glass-shadow-convex-2};
  --neo-glass-box-shadow-convex-3: #{$neo-glass-shadow-convex-3};
  --neo-glass-box-shadow-convex-4: #{$neo-glass-shadow-convex-4};
  --neo-glass-box-shadow-convex-5: #{$neo-glass-shadow-convex-5};

  /** Glass border-color */
  --neo-glass-box-shadow-flat: none;
  --neo-glass-top-border-color: #{$neo-glass-top-border-color};
  --neo-glass-right-border-color: #{$neo-glass-right-border-color};
  --neo-glass-left-border-color: #{$neo-glass-left-border-color};
  --neo-glass-bottom-border-color: #{$neo-glass-bottom-border-color};

  /** floating border-color */
  --neo-floating-box-shadow-flat: none;
  --neo-floating-top-border-color: #{$neo-floating-top-border-color};
  --neo-floating-right-border-color: #{$neo-floating-right-border-color};
  --neo-floating-left-border-color: #{$neo-floating-left-border-color};
  --neo-floating-bottom-border-color: #{$neo-floating-bottom-border-color};
}
