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

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

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

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

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

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

ul:nth-of-type(3)  li.six.heart, li.queen.heart {
  background-color: #339933;
}

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

Предлагаю такое решение. Получилось на 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-of-type) {
  margin-left: -20px;
}

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

ul li:nth-of-type(4n+1) {
  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+4){
  background-color: #ff3300;
}

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

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

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(:nth-child(1)) {
margin-left: -20px;
}

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

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

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

.cards li:nth-child(4n):not(.five.heart):not(.three.diamond) {
background-color: #ff3300;
}

.queen.heart, .six.heart {
background-color: #339933 !important;
}

ul:nth-child(2) li:nth-child(2n) {
background-color: #996666 !important;

}

очень быстро решила, после того как над первой просидела сто часов а потом пролистала методичку по использованию этих псевдоклассов) все бы темы так подробно объяснялись

исходя из логики заданий постаралась написать оптимальный код

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

.cards::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;
}

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

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

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

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