|
|
document.addEventListener('DOMContentLoaded', () => { |
|
|
|
|
|
VANTA.NET({ |
|
|
el: "#vanta-background", |
|
|
mouseControls: true, |
|
|
touchControls: true, |
|
|
gyroControls: false, |
|
|
minHeight: 200.00, |
|
|
minWidth: 200.00, |
|
|
scale: 1.00, |
|
|
scaleMobile: 1.00, |
|
|
color: 0x7c3aed, |
|
|
backgroundColor: 0xf9fafb, |
|
|
points: 12.00, |
|
|
maxDistance: 22.00, |
|
|
spacing: 18.00 |
|
|
}); |
|
|
|
|
|
window.encodeMessage = function() { |
|
|
const input = document.getElementById('encode-input').value; |
|
|
const encoded = btoa(encodeURIComponent(input)); |
|
|
document.getElementById('encode-output').textContent = encoded; |
|
|
}; |
|
|
|
|
|
window.decodeMessage = function() { |
|
|
const input = document.getElementById('decode-input').value; |
|
|
try { |
|
|
const decoded = decodeURIComponent(atob(input)); |
|
|
document.getElementById('decode-output').textContent = decoded; |
|
|
} catch (e) { |
|
|
document.getElementById('decode-output').textContent = "Invalid encoded message"; |
|
|
} |
|
|
}; |
|
|
|
|
|
|
|
|
document.querySelectorAll('a[href^="#"]').forEach(anchor => { |
|
|
anchor.addEventListener('click', function (e) { |
|
|
e.preventDefault(); |
|
|
document.querySelector(this.getAttribute('href')).scrollIntoView({ |
|
|
behavior: 'smooth' |
|
|
}); |
|
|
}); |
|
|
}); |
|
|
}); |