× Member access This demonstration keeps account access local to your browser. No real credentials are collected.
Ask about access
Contact
Let’s choose a thoughtful next step.
Tell us what you are hoping to learn, whether you are arranging a private group, or simply want to understand which course suits your table and schedule.
Phone: +1 (415) 555-0186
Email: [email protected]
Studio hours: Monday–Friday, 9:00 a.m.–5:00 p.m. Pacific Time.
Please review your message
Close
`;
const footerHTML = ``;
document.getElementById("site-header").innerHTML = headerHTML;
document.getElementById("site-footer").innerHTML = footerHTML;
const form = document.querySelector("#contact-form");
const modal = document.querySelector("#error-modal");
form.addEventListener("submit", function(e) {
const errors = [];
if (form.name.value.trim().length < 2) errors.push("Please enter your name.");
if (!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(form.email.value)) errors.push("Please enter a valid email address.");
if (form.message.value.trim().length < 20) errors.push("Please write at least 20 characters in your message.");
if (!form.consent.checked) errors.push("Please confirm consent to receive a reply.");
if (errors.length) {
e.preventDefault();
document.querySelector("#error-text").textContent = errors.join(" ");
modal.classList.replace("hidden", "flex");
}
});
document.querySelector("#close-error").onclick = () => modal.classList.replace("flex", "hidden");
const nav = document.querySelector("#main-nav");
const toggle = document.querySelector("#mobile-menu-toggle");
const auth = document.querySelector("#auth-modal");
if (toggle) {
toggle.onclick = () => {
const open = nav.classList.toggle("hidden");
toggle.setAttribute("aria-expanded", String(!open));
};
}
const loginOpen = document.querySelector("#login-open");
const registerOpen = document.querySelector("#register-open");
if (loginOpen) loginOpen.onclick = e => { e.preventDefault(); document.querySelector("#auth-title").textContent = "Log in to your studio space"; auth.classList.replace("hidden", "flex"); };
if (registerOpen) registerOpen.onclick = e => { e.preventDefault(); document.querySelector("#auth-title").textContent = "Register your interest"; auth.classList.replace("hidden", "flex"); };
const authClose = document.querySelector("#auth-close");
if (authClose) authClose.onclick = () => auth.classList.replace("flex", "hidden");
const themeToggle = document.querySelector("#theme-toggle");
if (themeToggle) {
themeToggle.onclick = () => {
const light = document.body.classList.toggle("bg-[#F7F2E8]");
document.body.classList.toggle("text-[#071426]", light);
localStorage.setItem("swiftmarkTheme", light ? "light" : "dark");
};
}
if (localStorage.getItem("swiftmarkTheme") === "light") document.body.classList.add("bg-[#F7F2E8]", "text-[#071426]");
const banner = document.querySelector("#cookie-banner");
if (localStorage.getItem("swiftmarkCookieConsent") === "accepted") { if (banner) banner.remove(); }
else {
const cookieClose = document.querySelector("#cookie-close");
if (cookieClose) cookieClose.onclick = () => { localStorage.setItem("swiftmarkCookieConsent", "accepted"); if (banner) banner.remove(); };
}