.nebo {
  --nb-r: 20px;
  --nb-w: 20px;
  --nb-h: 20px;

  /* Fine-tuned radiuses */
  --nb-cor1-rw: var(--nb-r);
  --nb-cor1-rh: var(--nb-r);
  --nb-cor2-rw: var(--nb-r);
  --nb-cor2-rh: var(--nb-r);
  --nb-curve-rw: var(--nb-r);
  --nb-curve-rh: var(--nb-r);

  --_nb-smooth: 98%;

  /* Curve positions list */
  --_nb-curve-pos-tl: 0 0;
  --_nb-curve-pos-tr: 100% 0;
  --_nb-curve-pos-bl: 0 100%;
  --_nb-curve-pos-br: 100% 100%;

  /* Setting default curve position (bottom right corner) */
  --_nb-curve-pos: var(--_nb-curve-pos-br);

  --_nb-mask-image: 
    linear-gradient(to bottom, #000, #000),
    linear-gradient(to bottom, #000, #000),
    linear-gradient(to bottom, #000, #000),
    linear-gradient(to bottom, #000, #000),
    radial-gradient(closest-side at center, #000 var(--_nb-smooth), transparent 100%),
    radial-gradient(closest-side at center, #000 var(--_nb-smooth), transparent 100%),
    radial-gradient(farthest-side at var(--_nb-curve-pos), transparent var(--_nb-smooth), #000 100%);

  --_nb-mask-size: 
    100% calc(100% - var(--nb-h) - var(--nb-cor1-rh) - var(--nb-curve-rh) - var(--nb-cor2-rh)),
    calc(100% - var(--nb-cor1-rw)) calc(100% - var(--nb-h) - var(--nb-curve-rh) - var(--nb-cor2-rh)),
    calc(100% - var(--nb-w) - var(--nb-curve-rw) - var(--nb-cor1-rw)) calc(100% - var(--nb-cor2-rh)),
    calc(100% - var(--nb-w) - var(--nb-cor1-rw) - var(--nb-curve-rw) - var(--nb-cor2-rw)) 100%,
    calc(var(--nb-cor1-rw) * 2) calc(var(--nb-cor1-rh) * 2),
    calc(var(--nb-cor2-rw) * 2) calc(var(--nb-cor2-rh) * 2),
    calc(var(--nb-curve-rw) + 0.5px) calc(var(--nb-curve-rh) + 0.5px);

  /* Masks positions list */
  --_nb-mask-position-tl: 
    100% 100%,
    100% 100%,
    100% 100%,
    100% 100%,
    0 calc(var(--nb-h) + var(--nb-curve-rh) + var(--nb-cor2-rh)),
    calc(var(--nb-w) + var(--nb-cor1-rw) + var(--nb-curve-rw)) 0,
    calc(var(--nb-w) + var(--nb-cor1-rw)) calc(var(--nb-h) + var(--nb-cor2-rh));

  --_nb-mask-position-tr: 
    0 100%,
    0 100%,
    0 100%,
    0 100%,
    100% calc(var(--nb-h) + var(--nb-curve-rh) + var(--nb-cor2-rh)),
    calc(100% - var(--nb-w) - var(--nb-curve-rw) - var(--nb-cor1-rw)) 0,
    calc(100% - var(--nb-w) - var(--nb-cor1-rw)) calc(var(--nb-h) + var(--nb-cor2-rh));

  --_nb-mask-position-bl: 
    100% 0,
    100% 0,
    100% 0,
    100% 0,
    0 calc(100% - var(--nb-h) - var(--nb-curve-rh) - var(--nb-cor2-rh)),
    calc(var(--nb-w) + var(--nb-curve-rw) + var(--nb-cor1-rw)) 100%,
    calc(var(--nb-w) + var(--nb-cor1-rw)) calc(100% - var(--nb-h) - var(--nb-cor2-rh));

  --_nb-mask-position-br: 
    0 0,
    0 0,
    0 0,
    0 0,
    100% calc(100% - var(--nb-h) - var(--nb-curve-rh) - var(--nb-cor2-rh)),
    calc(100% - var(--nb-w) - var(--nb-curve-rw) - var(--nb-cor1-rw)) 100%,
    calc(100% - var(--nb-w) - var(--nb-cor1-rw)) calc(100% - var(--nb-h) - var(--nb-cor2-rh));

  /* Setting default mask position (bottom right corner) */
  --_nb-mask-position: var(--_nb-mask-position-br);

  mask-image: var(--_nb-mask-image);
  mask-size: var(--_nb-mask-size);
  mask-position: var(--_nb-mask-position);
  mask-repeat: no-repeat;
}

.nebo--tl {
  --_nb-curve-pos: var(--_nb-curve-pos-tl);
  --_nb-mask-position: var(--_nb-mask-position-tl);
}

.nebo--tr {
  --_nb-curve-pos: var(--_nb-curve-pos-tr);
  --_nb-mask-position: var(--_nb-mask-position-tr);
}

.nebo--bl {
  --_nb-curve-pos: var(--_nb-curve-pos-bl);
  --_nb-mask-position: var(--_nb-mask-position-bl);
}

.nebo--br {
  --_nb-curve-pos: var(--_nb-curve-pos-br);
  --_nb-mask-position: var(--_nb-mask-position-br);
}
