Clearshore Atelier

Course Catalog

Refine your path. Use precise filters and preview details before enrolling.

Go to Cart
Page 1
`; const footerHTML = ``; document.querySelector('header').innerHTML = headerHTML; document.querySelector('footer').innerHTML = footerHTML; setupGlobalUI(); }; function setupGlobalUI() { const toggle = document.getElementById('themeToggle'); if (toggle) { toggle.addEventListener('click', () => { const isDark = document.documentElement.classList.toggle('dark'); localStorage.setItem('theme', isDark ? 'dark' : 'light'); }); } const banner = document.getElementById('cookieBanner'); const accept = document.getElementById('cookieAccept'); if (banner && accept) { if (localStorage.getItem('cookieConsent') === 'true') banner.classList.add('hidden'); accept.addEventListener('click', () => { localStorage.setItem('cookieConsent', 'true'); banner.classList.add('hidden'); }); } const openSignIn = document.getElementById('openSignIn'); const openRegister = document.getElementById('openRegister'); const authModal = document.getElementById('authModal'); const closeAuth = document.getElementById('closeAuth'); const authTabs = document.querySelectorAll('[data-auth-tab]'); const authForms = document.querySelectorAll('[data-auth-form]'); const signInForm = document.getElementById('signInForm'); const registerForm = document.getElementById('registerForm'); function openAuth(m) { if (!authModal) return; authModal.classList.remove('hidden'); switchMode(m); } function switchMode(m) { authTabs.forEach(t => t.dataset.authTab === m ? t.classList.add('bg-amber-500', 'text-slate-900') : t.classList.remove('bg-amber-500', 'text-slate-900')); authForms.forEach(f => f.dataset.authForm === m ? f.classList.remove('hidden') : f.classList.add('hidden')); } if (openSignIn) openSignIn.addEventListener('click', () => openAuth('signin')); if (openRegister) openRegister.addEventListener('click', () => openAuth('register')); if (closeAuth) closeAuth.addEventListener('click', () => authModal.classList.add('hidden')); document.addEventListener('click', (e) => { if (e.target.id === 'authBackdrop') authModal.classList.add('hidden'); }); if (signInForm) signInForm.addEventListener('submit', (e) => { e.preventDefault(); authModal.classList.add('hidden'); alert('Signed in successfully!'); }); if (registerForm) registerForm.addEventListener('submit', (e) => { e.preventDefault(); authModal.classList.add('hidden'); alert('Account created!'); }); const menuToggle = document.getElementById('menuToggle'); const mobileMenu = document.getElementById('mobileMenu'); if (menuToggle && mobileMenu) menuToggle.addEventListener('click', () => mobileMenu.classList.toggle('hidden')); } function loadData() { // Self-contained data (simulating fetch("./catalog.json")) state.data = [ {"id":"c001","title":"Lace Mastery","level":"Intermediate","category":"Lace","price":189,"rating":4.9,"lessons":14,"duration":"6 weeks","instructor":"Elena Voss","tags":["shawl","chart-reading"],"shortDescription":"Intricate lace techniques for shawls and garments.","description":"Master Estonian and Shetland lace techniques with detailed chart reading and yarn management.","cover":"./images/lace_mastery_course_knitting_detail.jpg"}, {"id":"c002","title":"Brioche Basics","level":"Beginner","category":"Brioche","price":129,"rating":4.8,"lessons":10,"duration":"5 weeks","instructor":"Marcus Hale","tags":["sweater","finishing"],"shortDescription":"Learn two-color brioche knitting from scratch.","description":"Foundation to advanced two-color brioche with seamless construction and color play.","cover":"./images/brioche_basics_knitting_detail.jpg"}, {"id":"c003","title":"Cable Knitting Intensive","level":"Advanced","category":"Cables","price":219,"rating":4.7,"lessons":16,"duration":"8 weeks","instructor":"Sofia Quinn","tags":["sweater"],"shortDescription":"Complex cable patterns for sweaters and more.","description":"Aran, Celtic and modern cable constructions with correct decreases and shaping.","cover":"./images/cable_intensive_knitting_detail.jpg"}, {"id":"c004","title":"Colorwork Fundamentals","level":"Intermediate","category":"Colorwork","price":159,"rating":4.9,"lessons":12,"duration":"6 weeks","instructor":"Lina Berg","tags":["sweater","chart-reading"],"shortDescription":"Fair Isle, stranded and intarsia techniques.","description":"Confidence with color dominance, steeking and perfect tension.","cover":"./images/colorwork_fundamentals_detail.jpg"}, {"id":"c005","title":"Sweater Fit & Design","level":"Advanced","category":"Fit & Shaping","price":239,"rating":4.6,"lessons":18,"duration":"9 weeks","instructor":"Theo Rens","tags":["sweater"],"shortDescription":"Professional garment design and modification.","description":"Body measurements, ease calculations and custom pattern alterations.","cover":"./images/sweater_fit_design_detail.jpg"}, {"id":"c006","title":"Finishing School","level":"Intermediate","category":"Finishing","price":149,"rating":4.8,"lessons":9,"duration":"4 weeks","instructor":"Clara Nells","tags":["finishing"],"shortDescription":"Professional finishing techniques.","description":"Blocking, seaming, buttonholes and beautiful edgings.","cover":"./images/finishing_school_knitting_detail.jpg"}, {"id":"c007","title":"Sock Architecture","level":"Beginner","category":"Accessories","price":99,"rating":4.9,"lessons":8,"duration":"4 weeks","instructor":"Jonas Vale","tags":["socks"],"shortDescription":"Cuff to toe sock construction.","description":"Toe-up and cuff-down methods with heel variations.","cover":"./images/sock_architecture_detail.jpg"}, {"id":"c008","title":"Shawl Design Studio","level":"Advanced","category":"Design","price":199,"rating":4.7,"lessons":13,"duration":"7 weeks","instructor":"Nora Klein<|eos|>