Last winter, we launched a rather risky promotion we called The 12 Days of Holiday Bullshit, where Cards Against Humanity fans paid $12 to receive 12 mystery gifts over the course of December.

We’ve written pretty extensively about all the crazy stunts we pulled off, but it’s past due to talk about the last one. Included in the first day’s envelope was a note that there was a very hard puzzle spread across the 12 days’ mailings and a message, in Caesar Cipher, not to throw anything away. That’s because the envelopes were a key part of the puzzle. Now that the puzzle has been solved for a few months, it’s time to reveal and explain the solution. Each envelope had a lovely and punny illustration by our friend Maré Odomo of the each of The Twelve Days of Christmas in order (we especially love the Two Turtle Doves).



The first step to the puzzle was to notice that each envelope had a funny time, date, and location stamp on the back. It’s not a real time stamp; we made it up. And everyone’s was the same, even the times, another clue that something was fishy about it. The first thing to notice was that the seconds timestamp were the first 12 prime number, giving a unique and clearly non-random order to the envelopes other than the order in which they arrived.

The hours and minute hands on the timestamps were also not random, but rather spelled out the first secret message in flag semaphore when placed on analog clocks. The twelve envelopes in order of the prime numbers spelled out FEEL FOR GREEN.

Every envelope was bordered by a different strand of colored lights. That was a clue to use the green lights on the envelope as braille dots. However, it was not possible to read braille directly from the envelopes–braille requires a grid of dots and empty spaces. However, solvers eventually noticed that the colored lights had very regular spacings and so envelopes (in prime order) could be lined up to create braille characters when the envelopes touched. Each pair of envelopes had exactly three 2x2 regions where any green lights appeared, cluing that the next step wasn’t braille letters (which require a 2x3 grid) but braille numbers. Each pair of envelopes decoded to a three digit number.

All of those three digit numbers were between 1 and 550, the number of cards in Cards Against Humanity. That was a clue to use Cards Against Humanity (and, more specifically, the free PDF version of the game) as a book cipher. Each three digit number uniquely mapped to a single card in the game.

Looking at all 11 cards clued by all 12 envelope pairs, solvers noticed next that the first letter of each card spelled out B AND W DOT COM. This was a clue that the final answer was a website with a URL of a black card and white card combination. Unfortunately, there are tens of thousands of such combinations.

The next step was to see that each Cards Against Humanity card came from decoding a pair of envelopes. Each envelope was associated with a specific day of the Twelve Days of Christmas. Adding those two days together gives another way to index into each card to pull out another letter. For example, “Not reciprocating oral sex” came out of Day 12 (Twelve Lords-a-Leaping) and Day 3 (Three French Hens), so we also pulled out the 12+3=15th letter, N. This spelled out BOND MEANING.

(As an aside, it turns out it was really rather difficult to find cards that would satisfy this double encoding. We had to work backward from the final answer and use a computer program we wrote to find cards that would work this way.)

The words “BOND” and “MEANING” appear only once in Cards Against Humanity - “Bond” in a black card and “meaning” in a white card. So the final answer is:

Almost 1,000 Redditors solved the puzzle by working together over a period of months on the subreddit they created, /r/HolidayBullshit. We gave the main solvers prizes, including cash, fancy booze, a bunch of books and board games we like, and every product we make. Everyone else who helped out got a free Reject Pack of cards we liked individually but were too weird for the game.

It was a lot of fun for us to watch this community come together (and struggle together) to solve this very hard puzzle. The puzzle was designed to have some pretty big logical leaps in it so that it would take a large group a long time to solve, though we did need to give out a few small hints–most about what wasn’t a part of the puzzle. We’re really happy with how it turned out.

Unfortunately, some solvers managed to back-door the puzzle by looking up domain registrations (which we thought we’d hidden), but we made them forward-solve the puzzle to win the prize by requiring them to get the final two 11-character clue phrases. We’ll just let that be a lesson for next time.

Oh yes, there will be a next time…