export const transpose = (matrix) => {
if (matrix.length === 0) return [];
const maxLen = Math.max(...matrix.map(row => row.length));
return Array.from({ length: maxLen }, (_, i) =>
matrix.reduce((acc, row, j) => {
const char = row[i] || (matrix.slice(j).some(r => r[i]) ? ' ' : '');
return acc + char;
}, '')
);
};