LumenCore Atelier

Return to your studio notes

Forgot password? Reset here

Start your LumenCore profile

By joining you agree to our Terms and Privacy.

Studio desk / Response within two business days

Bring us the question behind the question.

Tell us what you are making, where you are in the process, or what kind of learning environment would help you begin.

Read the FAQ first →

Please review your message

Inquiry received

Thank you. Our studio team will respond within two business days.

`; const footerHTML = ``; headerEl.innerHTML = headerHTML; footerEl.innerHTML = footerHTML; const form = document.getElementById('contactForm'); const errorModal = document.getElementById('errorModal'); const successModal = document.getElementById('successModal'); const errorText = document.getElementById('errorText'); form.addEventListener('submit', function(e) { const name = form.name.value.trim(); const email = form.email.value.trim(); const message = form.message.value.trim(); if (!form.checkValidity() || name.length < 2 || message.length < 20) { e.preventDefault(); let msg = ''; if (name.length < 2) msg += 'Name must be at least 2 characters. '; if (!form.email.validity.valid) msg += 'Valid email required. '; if (message.length < 20) msg += 'Message must be at least 20 characters.'; errorText.textContent = msg || 'Please correct the highlighted fields.'; errorModal.showModal(); return; } e.preventDefault(); successModal.showModal(); form.reset(); }); const menuToggle = document.getElementById('menuToggle'); const siteNav = document.getElementById('siteNav'); if (menuToggle && siteNav) { menuToggle.addEventListener('click', () => { siteNav.classList.toggle('hidden'); siteNav.classList.toggle('flex'); siteNav.classList.toggle('flex-col'); siteNav.classList.toggle('absolute'); siteNav.classList.toggle('bg-stone-950'); siteNav.classList.toggle('left-0'); siteNav.classList.toggle('right-0'); siteNav.classList.toggle('top-full'); siteNav.classList.toggle('p-6'); siteNav.classList.toggle('border-b'); siteNav.classList.toggle('border-stone-700'); }); } const themeBtn = document.getElementById('themeToggle'); if (themeBtn) { themeBtn.addEventListener('click', () => { document.body.classList.toggle('bg-white'); document.body.classList.toggle('text-stone-950'); document.body.classList.toggle('bg-stone-950'); document.body.classList.toggle('text-stone-100'); }); } document.querySelectorAll('[data-modal]').forEach(btn => { btn.addEventListener('click', () => { const modalId = btn.getAttribute('data-modal'); const modal = document.getElementById(modalId); if (modal) modal.showModal(); }); }); })();