(function() { const binaryBackground = document.getElementById('binaryBackground'); if (!binaryBackground) return; let columns = []; let columnCount = Math.max(5, Math.floor(window.innerWidth / 50)); let columnTimers = {}; function generateBinaryString(length) { let binary = ''; for (let i = 0; i < length; i++) { binary += Math.random() > 0.5 ? '1' : '0'; if (i < length - 1) binary += '\n'; } return binary; } function createColumn(index) { if (columnTimers[index]) { clearTimeout(columnTimers[index]); } const column = document.createElement('div'); column.className = 'binary-column'; const leftPosition = (index * 50) + Math.random() * 30; column.style.left = leftPosition + 'px'; const duration = 12 + Math.random() * 8; column.style.animationDuration = duration + 's'; column.style.animationDelay = '0s'; const binaryLength = Math.floor(25 + Math.random() * 15); column.textContent = generateBinaryString(binaryLength); const randomStart = Math.random() * 100; column.style.top = '-' + randomStart + '%'; binaryBackground.appendChild(column); columns[index] = column; const nextDuration = 12 + Math.random() * 8; columnTimers[index] = setTimeout(() => { if (column.parentNode) { column.parentNode.removeChild(column); } createColumn(index); }, duration * 1000); } for (let i = 0; i < columnCount; i++) { createColumn(i); } setInterval(function() { for (let i = 0; i < columnCount; i++) { if (!columns[i] || !columns[i].parentNode) { createColumn(i); } } }, 1000); let resizeTimeout; window.addEventListener('resize', function() { clearTimeout(resizeTimeout); resizeTimeout = setTimeout(function() { const newColumnCount = Math.max(5, Math.floor(window.innerWidth / 50)); if (newColumnCount !== columnCount) { for (let i = 0; i < columnCount; i++) { if (columnTimers[i]) { clearTimeout(columnTimers[i]); } } binaryBackground.innerHTML = ''; columns = []; columnTimers = {}; columnCount = newColumnCount; for (let i = 0; i < newColumnCount; i++) { createColumn(i); } } }, 250); }); })();