Для однородного фона просто рамка + двойная тень
picture, source {
display: contents;
}
img {
border: 2px solid red;
box-shadow: -10px 10px 0 -2px white, -10px 10px 0 0 red;
}
Преимущество в том, что всё задается одному элементу, прямо картинке. Нет ни сдвигов ни зависимостей от других элементов.
Если фон неоднородный, то либо бордеры разным элементам либо псевдику.
Предпочтение псевдику, чтобы сдвигался именно он, а не сам элемент.
Ещё один вариант: небольшая svg и border-image.
p.s. picture и source удобно убирать с помощью display contents, чтобы не тревожится, будут у клиента эти теги или удалит и что там вообще с ними происходит. Просто делаем их "прозрачными".