I'm not really happy with the result. If you have any hints how to make it better, please do not hesitate to comment. (tested)
Thanks for a challenging puzzle!