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;
}

.cards li:not(:first-child) {
margin-left: -20px;
}

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

.cards li:first-child,
.cards li:nth-child(5),
.cards li:nth-child(9),
.cards li:last-child {
background-color: #ffcc33;
}

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

ul:not(:first-of-type):not(:nth-of-type(3)) li:nth-child(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;
}

В отличии от биатлона сделал очень быстро.
Есть замечания?

Почему здесь не использовали формулу?

.cards li:nth-child(4n)+li,
.cards li:first-child {
background-color: #ffcc33;
}

Немного уменьшил,но еще лучше не знаю как.

Как по-другому здесь написать, используя только формулу? (вы выбираете не каждый четвертый, а каждый следующий за четвертым)

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

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

li:not(:first-child) {
margin-left: -20px;
}

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

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

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

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

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

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