В целом хорошо. Только не написали display: table; для article.
И помните, что если величина отступа одинакова для каждой стороны, то необязательно писать два значения, вполне хватит одного. Например, margin: 10px;
Также для выравнивания картинок внутри ячеек можно было использовать vertical-align and text-align. Так, при изменении размера ячейки ,картинка все равно останется посередине.
Вы задаете размеры и отступы изображениям, а надо пунктам списка li.
В последних правилах не обязательно уточнять, что выбираете первый и второй ряд, ведь отсчет :nth-child идет в пределах своего родителя.
То есть, если писать li:nth-child(2), то сразу выбирается второй пункт в обоих рядах.
Вам не обязательно делать форматирование вручную. Для этого есть расширения в редакторах, чаще всего в их названиях есть слово beautify. Просто вы можете “причесать” (как говорят) свой код перед отправкой.
Свойство не лишнее. Отображение списка рядом таблицы может быть временным явлением, а сбросить оформление всё равно необходимо.
Похожая ситуация с парами свойств:
display: block; и position: absolute;
display: block; и float.
Мы же рассматриваем конкретную задачу, когда нам нужно сверстать css-таблицу. Я написал коммент с целью указать на то, что нужно поправить мыслительный процесс при верстке. Т.е. человек видит буллит списка и соответственно хочет его убрать. Т.е. делает лишнии телодвижения, вмсето того чтобы отобразить список строкой таблицы.