MystiBloom
Sign in Create account

Welcome to MystiBloom

This demonstration sign-in form stores no sensitive credentials. botanical practice

Ask the team

Clear expectations

Terms of Use

Effective date: January 1, 2025

1. Accepting these terms

By using the MystiBloom website, you agree to these terms and applicable law. If you do not agree, please do not use the site.

2. Educational content

MystiBloom provides creative floristry education for personal learning. Course material is general information, not professional licensing, safety certification, horticultural diagnosis, or a guarantee of a particular creative or commercial result in botanical practice.

3. Catalog and demonstration cart

Catalog prices, descriptions, durations, and availability are presented for demonstration unless a separate written offer states otherwise. The cart does not process payments, create orders, or collect card details.

4. Acceptable use

Use the website lawfully, do not interfere with its operation, do not attempt unauthorized access, and do not reproduce content in a way that misleads others about its source.

5. Intellectual property

MystiBloom names, written lessons, layouts, and original course materials belong to MystiBloom or its licensors. Personal, noncommercial viewing is permitted; copying, resale, or public redistribution requires written permission.

6. Availability and liability

We work to keep the site accurate and available, but online access may be interrupted and content may change. To the extent permitted by law, MystiBloom is not responsible for indirect loss arising from use of the website.

7. Updates and contact

We may revise these terms by publishing an updated effective date. Questions can be sent to [email protected].

View catalog Read privacy policy Contact MystiBloom
`; const footerHTML = ` `; document.querySelector('header').innerHTML = headerHTML; document.querySelector('footer').innerHTML = footerHTML; const themeToggle = document.querySelector('[data-theme-toggle]'); const mobileBtn = document.querySelector('[data-mobile-menu]'); const mobileNav = document.querySelector('[data-mobile-nav]'); const authLinks = document.querySelectorAll('[data-auth]'); const modal = document.querySelector('[data-auth-modal]'); const modalTitle = document.querySelector('[data-auth-title]'); const modalClose = document.querySelector('[data-modal-close]'); const cookieBanner = document.querySelector('[data-cookie-banner]'); const cookieClose = document.querySelector('[data-cookie-close]'); const consentKey = 'mystibloom-cookie-consent'; function applyTheme(mode) { if (mode === 'dark') { document.documentElement.style.setProperty('--tw-bg-opacity', '1'); document.body.style.backgroundColor = '#26352B'; document.body.style.color = '#F7F1E8'; } else { document.body.style.backgroundColor = '#F7F1E8'; document.body.style.color = '#26352B'; } localStorage.setItem('mystibloom-theme', mode); } const savedTheme = localStorage.getItem('mystibloom-theme') || 'light'; applyTheme(savedTheme); if (themeToggle) { themeToggle.addEventListener('click', () => { const current = localStorage.getItem('mystibloom-theme') || 'light'; applyTheme(current === 'light' ? 'dark' : 'light'); }); } if (mobileBtn && mobileNav) { mobileBtn.addEventListener('click', () => { mobileNav.classList.toggle('hidden'); }); } if (authLinks && modal) { authLinks.forEach(link => { link.addEventListener('click', (e) => { e.preventDefault(); if (modalTitle) modalTitle.textContent = link.dataset.auth === 'signin' ? 'Sign in to MystiBloom' : 'Create your MystiBloom account'; modal.showModal(); }); }); } if (modalClose && modal) { modalClose.addEventListener('click', () => modal.close()); } if (modal) { modal.addEventListener('click', (e) => { if (e.target === modal) modal.close(); }); } if (localStorage.getItem(consentKey) === 'accepted' && cookieBanner) { cookieBanner.style.display = 'none'; } if (cookieClose && cookieBanner) { cookieClose.addEventListener('click', function(e) { e.preventDefault(); localStorage.setItem(consentKey, 'accepted'); cookieBanner.style.display = 'none'; }); }