title: add smooth gradient filter on image
body: <p>I have a background image and I want to add two gradient filters on it ...
  first filter is right-to-left blue filter which is ok but second filter is top-to-bottom black filter which is not smooth at all.
  I want my code to generate this :
   <a href="https://dribbble.com/shots/2595241-VOID-Conference/attachments/516900" rel="nofollow noreferrer">https://dribbble.com/shots/2595241-VOID-Conference/attachments/516900</a>
  but my black filter ruin it.</p>
  
  <p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
  <div class="snippet-code">
  <pre class="snippet-code-css lang-css prettyprint-override"><code>* {
    box-sizing: border-box;
    padding: 0;
    margin: 0;
  }
  
  html,
  body {
    height: 100%;
  }
  
  .landing {
    width: 100vw;
    height: 100vh;
    position: relative;
  }
  
  .landing .bg {
    width: 100%;
    height: 100%;
    position: absolute;
    background: url('https://images.unsplash.com/photo-1448574271786-c15eea67e169?ixlib=rb-1.2.1&amp;q=85&amp;fm=jpg&amp;crop=entropy&amp;cs=srgb&amp;dl=sebastian-unrau-48222-unsplash.jpg') center top no-repeat;
    background-size: 100% 75%;
  }
  
  .landing .bg::before {
    content: '';
    width: 100%;
    height: 75%;
    position: absolute;
    background-image: linear-gradient(to right, rgb(0, 50, 150) 0%, rgb(0, 25, 50) 100%);
    opacity: .2;
  }
  
  .landing .bg::after {
    content: '';
    width: 100%;
    height: 100%;
    position: absolute;
    background-image: linear-gradient(to bottom, transparent 40%, rgb(20, 20, 20) 60%);
  }</code></pre>
  <pre class="snippet-code-html lang-html prettyprint-override"><code>&lt;div class="landing"&gt;
    &lt;div class="bg"&gt;&lt;/div&gt;
  &lt;/div&gt;</code></pre>
  </div>
  </div>
  </p>