Nearly a month into Russia’s war on Ukraine, the city of Mariupol is holding strong against demands for its surrender. But the war’s costs are only mounting.
Plus: free expression and social justice in the book world