Испытание: вторая раскладка [20/20] 100%

html,
body {
  margin: 0;
  padding: 0;
  font-family: "Arial", sans-serif;
}

body {
  min-width: 550px;
  min-height: 250px;
  padding: 10px;
}

.cards {
  position: relative;
  width: 380px;
  text-align: left;
}

.cards li {
  width: 37px;
  height: 55px;
}

.cards li::before {
  font-family: "Courier", monospace;
}

li:not(:nth-of-type(1)) {
  margin-left: -20px;
}

ul::after{
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  display: block;
  width: 37px;
  height: 55px;
  border: 1px dashed #33bb33;
  border-radius: 5px;
}


li:nth-child(4n+1){
  background-color: #ffcc33;
}

ul:not(:first-of-type) li:nth-of-type(4n+2){
  background-color: #0099ff;
}

ul:not(:nth-of-type(2n+1)) li:nth-of-type(4n){
  background-color: #ff3300;
}

ul:nth-of-type(3) .ace.spade ~ .heart {
  background-color: #339933;
}

ul:first-of-type li:nth-child(2n) {
  background-color: #996666;
}
3 лайка

Цвета карт я сделал немного по-другому:
li:nth-child(4n+1) {
background-color: #ffcc33;
}

ul:not(:first-of-type) li:nth-of-type(4n+2) {
background-color: #0099ff;
}

ul:not(:nth-of-type(3)) li:nth-child(4n+4) {
background-color: #ff3300;
}

ul:nth-of-type(3) li:nth-child(3n+8) {
background-color: #339933;
}

ul:first-of-type li:nth-child(even) {
background-color: #996666;
}

Вместо

ul:not(:nth-of-type(3)) li:nth-child(4n+4) {
background-color: #ff3300;
}

Лучше использовать

ul:not(:nth-of-type(3)) li:nth-child (4n) {
    background-color: #ff3300;
    }

И вместо этого

ul:nth-of-type(3) li:nth-child(3n+8) {
background-color: #339933;
}

Это

.cards:nth-of-type(3) li:nth-last-child(3), 
.cards:nth-of-type(3) li:nth-last-child(6){
  background-color: #339933;
}

ИМХО

ну вообще код надо писать так, чтобы потом его мог поддерживать даже имбецил =) зеленым можно красить тупо по классам. хотя решение в 3n+8 более элегантное, т.к. делает одно правило, вместо двух.
также не надо делать поблажку на 1 ряд, он все равно потом закрасится коричневым.

html,
body {
margin: 0;
padding: 0;
font-family: “Arial”, sans-serif;
}

body {
min-width: 550px;
min-height: 250px;
padding: 10px;
}

.cards {
position: relative;
width: 380px;
text-align: left;
margin-left: 33px;
}

.cards li {
width: 37px;
height: 55px;
margin-left: -20px;
}

.cards li::before {
font-family: “Courier”, monospace;
}

ul::after {
content: “”;
position: absolute;
right: 23px;
top: 0;
display: block;
width: 37px;
height: 55px;
border: 1px dashed #33bb33;
border-radius: 5px;
}

/Цвета/
ul li:nth-child(4n+1){
background-color: #ffcc33;
}

ul li:nth-child(4n+2){
background-color: #0099ff;
}

ul:nth-child(odd) li:nth-child(4n+4) {
background-color: #ff3300;
}

ul:nth-child(4) li:nth-child(3n+8) {
background-color: #339933;
}

ul:nth-child(2) li:nth-child(even){
background-color: #996666;
}

Это мой вариант. Мне каждый раз пиксели приходится менять с точностью не до 5, а до 3-2. Пожалуй я что-то делаю не так?

мое решение

html,
body {
margin: 0;
padding: 0;
font-family: “Arial”, sans-serif;
}

body {
min-width: 550px;
min-height: 250px;
padding: 10px;
}

.cards {
position: relative;
width: 380px;
text-align: left;
}

.cards li {
width: 37px;
height: 55px;
}

.cards li::before {
font-family: “Courier”, monospace;
}
li:not(:first-of-type) {
margin-left: -20px;
}

ul::after {
content: “”;
position: absolute;
right: 0;
top: 0;
display: block;
width: 37px;
height: 55px;
border: 1px dashed #33bb33;
border-radius: 5px;
}

li:nth-of-type(4n-3) {
background-color: #ffcc33;
}

ul:not(:first-of-type) li:nth-of-type(4n-2) {
background-color: #0099ff;
}

ul:nth-of-type(2n) li:nth-of-type(4n) {
background-color: #ff3300;
}

ul:nth-of-type(3) li:nth-of-type(3n+8) {
background-color: #339933;
}

ul:first-of-type li:nth-of-type(2n) {
background-color: #996666;
}