Я только что открыл новый способ сделать это во время возиться, я не совсем уверен, как это работает (если кто-то хочет объяснить, пожалуйста).
Кажется, что он работает очень хорошо, и не требует двойного фона или JavaScript.
Вот код: JSFIDDLE
body {
padding: 0;
margin: 0;
}
div {
background: url(http://www.color-hex.com/palettes/26323.png) repeat;
width: 100vw;
height: 100vh;
}
body::before {
content: '$ALPHABET';
left: 0;
top: 0;
position: absolute;
color: #222;
background-color: #fff;
padding: 1rem;
font-family: Arial;
z-index: 1;
mix-blend-mode: screen;
font-weight: 800;
font-size: 3rem;
letter-spacing: 1rem;
}