You Won a Prize!
Your prize is:
Your code:
One Spin Only!
.........More spins unlock with Club MOS or special events.
The place to be!
⭐ CLUB MOS portal!
⭐ WIZwheel!
Feeling lucky!
Take a free spin!
Good luck with your win!
Jot down your code to use when in buying mode!
⭐ Mosaics 24/7 MOSaic heaven!
Your pace! Your place!
Connect to MOS space!
Want more? Mosaics galore!?
Join clubMOS!
⭐ Subscribe for vibe & tribe!
Members only Creative Hub/
Scroll down for more info!
⭐ ABOUT — clubMOS
clubMOS is your creative home base — a bright, friendly space where mosaic makers learn, explore, share, and stay inspired.
Inside clubMOS you’ll find all the good stuff:
⭐ Groups for connecting, chatting, sharing wins, WIPs, and creative mojo
⭐ Fun Competitions with prompts, prizes, and playful challenges
⭐ Inspiring Galleries full of member mosaics and creative ideas
⭐ Helpful Resources to guide your projects step‑by‑step
⭐ A colourful Media section with videos, demos, and behind‑the‑scenes magic
⭐ The ever‑growing MOSsary and Glossary to explain tools, terms, and MOS‑world lingo
⭐ Self‑paced Courses to learn your way, your day, your pace
⭐ Handy Tips and clever Tricks to boost your mosaic skills
⭐ Light‑hearted Scoops and fun Gossip from the MOS universe
⭐ A creative Library packed with knowledge, downloads, and inspiration
⭐ Special Subscribe perks, bonuses, and member‑only treats rules, rules of the mos, prefects, rule, agreement, agreements, guidelines, guideline, guide, code of conduct, conduct, behaviour, behavior, expectations,
Welcome to your mosaic tribe — the MOS universe awaits!

/* WHEEL JS */ let hasSpun = localStorage.getItem("mosPublicWheelSpun") === "yes"; const wheel = new Winwheel({ canvasId: 'studentWheelCanvas', numSegments: 12, outerRadius: 200, textFontSize: 18, segments: [ { fillStyle: '#ff007f', text: '10% Off' }, { fillStyle: '#00bfff', text: '15% Off' }, { fillStyle: '#ff4500', text: '20% Off' }, { fillStyle: '#32cd32', text: '25% Off' }, { fillStyle: '#ff00ff', text: '15% Off' }, { fillStyle: '#00ffcc', text: '20% Off' }, { fillStyle: '#ff007f', text: '10% Off' }, { fillStyle: '#00bfff', text: '25% Off' }, { fillStyle: '#ffcc00', text: '50% Off' }, { fillStyle: '#ff6347', text: 'Project Course (Free)' }, { fillStyle: '#00ffcc', text: '15% Off' }, { fillStyle: '#ff007f', text: '10% Off' } ], animation: { type: 'spinToStop', duration: 5, spins: 6, callbackFinished: (segment) => { document.getElementById('spinWarningBox').style.display = "none"; let code = "GUEST"; if (segment.text.includes("15%")) code = "GUEST15"; if (segment.text.includes("20%")) code = "GUEST20"; if (segment.text.includes("25%")) code = "GUEST25"; if (segment.text.includes("50%")) code = "GUEST50"; if (segment.text.includes("Project")) code = "GUESTFREE"; document.getElementById("qrImage").src = "images/qr-guest10.png"; const msgBox = document.getElementById("prizeResult"); msgBox.innerHTML = `
You Won: ${segment.text}
Your Prize Code: ${code}
Show this code at checkout to redeem your prize.
`; msgBox.style.display = "block"; document.getElementById("qrGiftBox").style.display = "block"; } } }); function spinWheel() { if (hasSpun) { document.getElementById('prizeResult').style.display = "none"; document.getElementById('spinWarningBox').style.display = "block"; return; } hasSpun = true; localStorage.setItem("mosPublicWheelSpun", "yes"); document.getElementById('spinWarningBox').style.display = "none"; document.getElementById('prizeResult').style.display = "none"; const starfield = document.querySelector(".mos-starfield"); let starInterval = setInterval(() => { const shock = document.createElement("div"); shock.classList.add("mos-shockwave"); starfield.appendChild(shock); setTimeout(() => shock.remove(), 900); for (let i = 0; i < 40; i++) { const star = document.createElement("div"); star.classList.add("mos-star"); const angle = Math.random() * Math.PI * 2; const distance = 140 + Math.random() * 160; star.style.setProperty("--x", `${Math.cos(angle) * distance}px`); star.style.setProperty("--y", `${Math.sin(angle) * distance}px`); star.style.left = "50%"; star.style.top = "50%"; starfield.appendChild(star); setTimeout(() => star.remove(), 1400); } }, 300); setTimeout(() => { clearInterval(starInterval); }, 5000); wheel.startAnimation(); }