Вопрос по теме: "Контекстные и соседние селекторы" для преподавателя!

li {
background-color: white;
}
.shooter-1 .third+li {
background-color: red;
}
.shooter-2 .first+li {
background-color: red;
}
.shooter-2 .third+li {
background-color: yellow;
}

Такое решение заметил я и не совсем согласен с этой точкой зрения (как вы указывали это ошибка) и вот что придумал я:

.target li {
background-color: white;
}
.shooter-1 .target .third+li, .shooter-2 .target .first+li {
background-color: red;
}
.shooter-2 .target .third+li {
background-color: yellow;
}

Подскажите кто прав? Я или Родион?

Очень понравился такой вариант решения с шутерами. Когда прочитала задание, сразу возникла мысль вынести и объединить общие строчки кода. Только в синтаксисе застряла, не знала как правильно указать. А вот зачем к li { background-color: white;} добавлять указание класса не поняла. И так ведь работает. Не будет ли это излишне?

И еще одна мысля появилась. В пределах данного задания решение шикарно. Но мне кажется, что связка двух шутеров накладывает не очень удобное ограничение на изменяемость кода. Если допустим понадобится у одного из шутеров промах сделать не красным цветом, а зеленым. Тогда поменяется и цвет у другого, а этого допустим не нужно. Их придется все таки разграничить. А если таких шутеров связанных много, морока получится.