Unlayered CSS always wins over Tailwind's @layer utilities, so the bare * { margin: 0 } reset was overriding mx-auto everywhere. Moving it into @layer base restores correct cascade order.