Sweeps

Win An Xbox Series X: The Ultimate “Seeds & Screens” Giveaway

View saved
How does this find feel?

Seeds & Screens: Win An Xbox Series X From Mary’s Heirloom Seeds

/* — GLOBAL THEME: GARDEN / HEIRLOOM (SAGE/CREAM/SOIL) — */
:root {
–primary: #556B2F; /* Olive Green */
–secondary: #8FBC8F; /* Dark Sea Green */
–accent: #DAA520; /* Goldenrod */
–dark: #2F4F4F; /* Dark Slate */
–light: #FAF0E6; /* Linen */
–text: #333333;
}

body { margin: 0; padding: 0; box-sizing: border-box; background: #fff; font-family: ‘Georgia’, serif; }

/* CONTAINER */
.lp-container {
max-width: 900px;
margin: 0 auto;
padding: 0 20px 60px 20px;
padding-bottom: 120px;
color: var(–text);
line-height: 2;
font-size: 19px;
}

/* TYPOGRAPHY */
h1 {
font-family: ‘Verdana’, sans-serif;
font-size: 3rem;
font-weight: 700;
color: var(–primary);
line-height: 1.1;
margin-top: 40px;
margin-bottom: 20px;
letter-spacing: -1px;
text-transform: capitalize;
}

.meta {
font-size: 0.9rem;
color: #888;
text-transform: uppercase;
letter-spacing: 1px;
margin-bottom: 40px;
border-bottom: 4px solid var(–accent);
padding-bottom: 20px;
font-weight: 700;
}

h2 {
font-size: 2.2rem;
color: var(–dark);
margin-top: 60px;
border-left: 10px solid var(–secondary);
padding-left: 20px;
font-weight: 800;
font-family: ‘Verdana’, sans-serif;
}

h3 {
font-size: 1.5rem;
font-weight: 700;
margin-top: 40px;
color: var(–primary);
border-bottom: 2px solid #eee;
padding-bottom: 10px;
}

p { margin-bottom: 25px; }

/* CALLOUTS */
.highlight-box {
background: var(–light);
color: var(–dark);
padding: 40px;
border-radius: 8px;
font-weight: bold;
font-size: 1.2em;
margin: 50px 0;
text-align: center;
border: 2px solid var(–primary);
box-shadow: 0 10px 20px rgba(85, 107, 47, 0.2);
}

ul { margin-bottom: 30px; }
li { margin-bottom: 15px; }

/* IMAGE PLACEHOLDER */
.featured-image {
width: 100%; height: auto;
border-radius: 8px;
box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
margin-bottom: 40px;
border-bottom: 6px solid var(–accent);
}

/* AD SLOT STYLING */
.ad-slot {
display: block;
width: 100%;
background: transparent;
text-align: center;
margin: 20px 0;
}

.button-ad-slot {
display: block;
width: 100%;
margin: 20px 0;
background: transparent;
text-align: center;
}

/* — PROGRESS BAR — */
#progress-container {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 6px;
background: #e0e0e0;
z-index: 10001;
}
#progress-bar {
height: 100%;
width: 0%;
background: linear-gradient(90deg, var(–primary), var(–accent));
transition: width 0.1s ease-out;
}
#progress-text {
position: fixed;
top: 10px;
right: 15px;
background: var(–primary);
color: #fff;
padding: 5px 12px;
border-radius: 20px;
font-size: 12px;
font-weight: bold;
z-index: 10002;
font-family: ‘Verdana’, sans-serif;
box-shadow: 0 2px 10px rgba(0,0,0,0.2);
}

/* — STICKY BOTTOM AD — */
#sticky-ad {
position: fixed;
bottom: 0;
left: 0;
width: 100%;
background: #fff;
box-shadow: 0 -5px 20px rgba(0,0,0,0.1);
z-index: 9995;
padding: 10px 0;
text-align: center;
border-top: 3px solid var(–accent);
}
#sticky-ad .close-sticky {
position: absolute;
top: -12px;
right: 15px;
background: var(–dark);
color: #fff;
border: none;
width: 24px;
height: 24px;
border-radius: 50%;
cursor: pointer;
font-size: 14px;
line-height: 24px;
}

/* — SPIN WHEEL SECTION (INLINE AT BOTTOM) — */
#spin-section {
background: linear-gradient(135deg, var(–accent) 0%, #f4a020 100%);
border-radius: 20px;
padding: 40px 20px;
margin: 40px 0;
text-align: center;
display: none; /* Hidden until they reach bottom */
border: 4px solid var(–primary);
box-shadow: 0 15px 40px rgba(218, 165, 32, 0.3);
}
#spin-section h3 {
margin: 0 0 10px 0;
color: #fff;
font-size: 28px;
border: none;
padding: 0;
text-shadow: 2px 2px 4px rgba(0,0,0,0.2);
}
#spin-section .spin-subtitle {
color: #fff;
font-size: 16px;
margin-bottom: 25px;
opacity: 0.95;
}

/* EMAIL FORM */
#email-form {
max-width: 400px;
margin: 0 auto 25px;
}
#email-form input[type=”email”] {
width: 100%;
padding: 15px 20px;
font-size: 16px;
border: 3px solid var(–primary);
border-radius: 50px;
margin-bottom: 15px;
text-align: center;
font-family: inherit;
}
#email-form input[type=”email”]:focus {
outline: none;
border-color: var(–dark);
box-shadow: 0 0 10px rgba(85, 107, 47, 0.3);
}
#unlock-spin-btn {
background: var(–primary);
color: #fff;
border: none;
padding: 15px 40px;
font-size: 18px;
font-weight: bold;
border-radius: 50px;
cursor: pointer;
text-transform: uppercase;
transition: all 0.2s;
width: 100%;
}
#unlock-spin-btn:hover { background: var(–dark); transform: scale(1.02); }

/* WHEEL */
#wheel-area {
display: none; /* Hidden until email entered */
}
#wheel-container {
position: relative;
width: 280px;
height: 280px;
margin: 0 auto 20px;
}
#wheel {
width: 100%;
height: 100%;
border-radius: 50%;
border: 8px solid var(–dark);
position: relative;
overflow: hidden;
box-shadow: 0 0 30px rgba(0,0,0,0.4);
background: #fff;
}
.wheel-segment {
position: absolute;
width: 50%;
height: 50%;
transform-origin: 100% 100%;
clip-path: polygon(0 0, 100% 0, 100% 100%);
display: flex;
align-items: center;
justify-content: center;
}
.wheel-segment span {
position: absolute;
top: 35%;
left: 15%;
transform: rotate(22.5deg);
font-size: 11px;
font-weight: bold;
color: #fff;
text-shadow: 1px 1px 2px rgba(0,0,0,0.5);
}
#wheel-pointer {
position: absolute;
top: -15px;
left: 50%;
transform: translateX(-50%);
width: 0;
height: 0;
border-left: 15px solid transparent;
border-right: 15px solid transparent;
border-top: 30px solid var(–dark);
z-index: 10;
filter: drop-shadow(0 2px 3px rgba(0,0,0,0.3));
}
#spin-btn {
background: var(–primary);
color: #fff;
border: none;
padding: 18px 50px;
font-size: 20px;
font-weight: bold;
border-radius: 50px;
cursor: pointer;
text-transform: uppercase;
transition: all 0.2s;
box-shadow: 0 5px 20px rgba(0,0,0,0.2);
}
#spin-btn:hover { background: var(–dark); transform: scale(1.05); }
#spin-btn:disabled { background: #999; cursor: not-allowed; transform: none; }

#spin-result {
margin-top: 20px;
padding: 20px;
background: #fff;
border-radius: 15px;
display: none;
border: 3px solid var(–primary);
}
#spin-result h4 {
margin: 0;
color: var(–primary);
font-size: 24px;
}
#spin-result p {
margin: 10px 0 0 0;
font-size: 14px;
color: var(–dark);
}

/* — SPIN TEASER BOX (shows during scroll) — */
.spin-teaser-box {
background: linear-gradient(135deg, var(–accent) 0%, #f4a020 100%);
color: #fff;
padding: 20px;
border-radius: 12px;
margin: 30px 0;
text-align: center;
font-weight: bold;
border: 2px solid var(–primary);
animation: pulse 2s infinite;
}
@keyframes pulse {
0%, 100% { box-shadow: 0 0 0 0 rgba(218, 165, 32, 0.4); }
50% { box-shadow: 0 0 20px 10px rgba(218, 165, 32, 0.2); }
}
.spin-teaser-box .teaser-icon { font-size: 30px; display: block; margin-bottom: 10px; }
.spin-teaser-box .teaser-text { font-size: 18px; }
.spin-teaser-box .teaser-small { font-size: 13px; opacity: 0.9; margin-top: 8px; }

/* — QUICK POLL — */
#quick-poll {
background: linear-gradient(135deg, var(–light) 0%, #fff 100%);
border: 3px solid var(–secondary);
border-radius: 15px;
padding: 25px;
margin: 40px 0;
text-align: center;
}
#quick-poll h4 {
margin: 0 0 15px 0;
color: var(–primary);
font-size: 20px;
font-family: ‘Verdana’, sans-serif;
}
.poll-options {
display: flex;
gap: 15px;
justify-content: center;
flex-wrap: wrap;
}
.poll-btn {
background: #fff;
border: 2px solid var(–primary);
padding: 12px 25px;
border-radius: 25px;
cursor: pointer;
font-weight: bold;
color: var(–primary);
transition: all 0.2s;
font-size: 16px;
}
.poll-btn:hover { background: var(–primary); color: #fff; }
.poll-btn.selected { background: var(–primary); color: #fff; }
#poll-results {
margin-top: 20px;
display: none;
}
.poll-result-bar {
background: #e0e0e0;
border-radius: 10px;
height: 30px;
margin: 10px 0;
overflow: hidden;
position: relative;
}
.poll-result-fill {
height: 100%;
background: linear-gradient(90deg, var(–primary), var(–secondary));
border-radius: 10px;
transition: width 1s ease-out;
}
.poll-result-text {
position: absolute;
top: 50%;
left: 10px;
transform: translateY(-50%);
font-weight: bold;
font-size: 14px;
color: #333;
}

/* — SOCIAL PROOF TOAST — */
#social-proof {
position: fixed;
bottom: 100px;
left: 20px;
background: #fff;
border: 2px solid var(–secondary);
border-radius: 10px;
padding: 12px 20px;
box-shadow: 0 5px 25px rgba(0,0,0,0.15);
z-index: 9994;
display: none;
max-width: 280px;
animation: slideIn 0.3s ease-out;
}
@keyframes slideIn {
from { transform: translateX(-100%); opacity: 0; }
to { transform: translateX(0); opacity: 1; }
}
#social-proof .proof-icon {
display: inline-block;
width: 30px;
height: 30px;
background: var(–secondary);
border-radius: 50%;
text-align: center;
line-height: 30px;
margin-right: 10px;
vertical-align: middle;
}
#social-proof .proof-text {
display: inline-block;
vertical-align: middle;
font-size: 14px;
color: var(–dark);
}
#social-proof .proof-text strong { color: var(–primary); }

/* — SWEEPSTAKES SECTION — */
#sweeps-wrapper {
margin-top: 100px;
background: #fff;
border-radius: 20px;
box-shadow: 0 20px 50px -10px rgba(0, 0, 0, 0.1);
overflow: hidden;
position: relative;
text-align: center;
scroll-margin-top: 40px;
border: 4px solid var(–primary);
}

.sweeps-header {
background: linear-gradient(135deg, var(–primary) 0%, var(–dark) 100%);
padding: 50px 20px;
color: white;
}

.sweeps-header h3 { margin: 0; font-size: 40px; text-transform: uppercase; letter-spacing: 1px; font-weight: 900; color: #fff; font-family: ‘Verdana’, sans-serif; border: none; }
.sweeps-header p { margin: 15px 0 0 0; opacity: 1; font-size: 20px; font-weight: 700; color: var(–accent); }

.sweeps-body { padding: 50px 20px; background-color: #fff; }

/* PRIZES */
.prize-grid {
display: grid;
grid-template-columns: 1fr;
gap: 15px;
text-align: left;
background: var(–light);
padding: 30px;
border: 1px solid var(–secondary);
max-width: 600px;
margin: 0 auto 40px auto;
border-radius: 8px;
}
.prize-row { display: flex; align-items: center; font-weight: 700; color: var(–dark); font-size: 20px; }
.icon { margin-right: 15px; font-size: 28px; }
.val { color: #fff; background: var(–primary); padding: 2px 8px; font-weight: 800; margin-right: 5px; text-transform: uppercase; border-radius: 4px; display: inline-block; }

/* TIMER */
#countdown {
display: flex;
justify-content: center;
gap: 15px;
margin: 40px 0;
}
.time-box {
background: var(–dark);
color: #fff;
padding: 20px;
border-radius: 4px;
min-width: 80px;
box-shadow: 0 5px 15px rgba(0,0,0,0.2);
border-bottom: 4px solid var(–accent);
}
.time-num { font-size: 36px; font-weight: 900; line-height: 1; display: block; }
.time-lbl { font-size: 12px; text-transform: uppercase; margin-top: 5px; color: #fff; font-weight: bold; }

/* BUTTON */
.enter-btn {
display: inline-block;
background: var(–primary);
color: #fff;
font-size: 26px;
font-weight: 900;
text-decoration: none;
padding: 30px 60px;
border-radius: 50px;
transition: transform 0.2s, background 0.2s;
text-transform: uppercase;
letter-spacing: 1px;
width: 90%;
max-width: 500px;
box-shadow: 0 10px 20px rgba(85, 107, 47, 0.3);
font-family: ‘Verdana’, sans-serif;
}
.enter-btn:hover { transform: scale(1.02); background: var(–accent); }

.legal-footer {
font-size: 12px;
color: #999;
margin-top: 60px;
line-height: 1.5;
text-align: left;
padding: 30px;
background: #f9f9f9;
border-top: 1px solid #eee;
}

/* — CENTERED POP-UP — */
#interaction-modal {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background: #fff;
z-index: 9999;
padding: 40px;
border-radius: 15px;
text-align: center;
box-shadow: 0 25px 100px rgba(0,0,0,0.5);
border: 4px solid var(–primary);
width: 90%;
max-width: 450px;
display: flex;
flex-direction: column;
align-items: center;
}

#modal-backdrop {
position: fixed; top: 0; left: 0; width: 100%; height: 100%;
background: rgba(255,255,255,0.8);
backdrop-filter: blur(5px);
z-index: 9998;
}

#start-btn {
background: var(–primary);
color: white;
border: none;
padding: 15px 30px;
font-size: 20px;
font-weight: 900;
cursor: pointer;
margin-top: 20px;
width: 100%;
text-transform: uppercase;
transition: transform 0.2s;
letter-spacing: 1px;
border-radius: 50px;
box-shadow: 0 5px 15px rgba(0,0,0,0.1);
}
#start-btn:hover { transform: scale(1.05); background: var(–accent); }

.fb-reminder {
background: #eef2ef;
color: var(–dark);
padding: 15px;
border-radius: 8px;
margin-top: 20px;
font-size: 14px;
font-weight: bold;
border: 1px solid var(–dark);
}

/* BONUS SPIN TEASER IN MODAL */
.spin-teaser {
background: linear-gradient(135deg, var(–accent) 0%, #f4a020 100%);
color: #fff;
padding: 12px;
border-radius: 8px;
margin-top: 15px;
font-size: 13px;
font-weight: bold;
}
.spin-teaser span { font-size: 18px; }

/* TOAST POPUP – CENTERED */
#toast {
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background: #fff;
border: 3px solid var(–accent);
padding: 30px 50px;
box-shadow: 0 20px 60px rgba(0,0,0,0.3);
font-weight: 900;
color: var(–primary);
font-size: 24px;
z-index: 10000;
display: none;
text-align: center;
width: 80%;
max-width: 450px;
text-transform: uppercase;
border-radius: 15px;
}

canvas#confetti { position: fixed; top:0; left:0; width:100%; height:100%; pointer-events:none; z-index:9990; display:none; }

/* MOBILE ADJUSTMENTS */
@media (max-width: 600px) {
#wheel-container { width: 240px; height: 240px; }
.poll-options { flex-direction: column; }
.poll-btn { width: 100%; }
#social-proof { left: 10px; right: 10px; max-width: none; bottom: 90px; }
.spin-teaser-box .teaser-text { font-size: 16px; }
}

0% to entry


Sarah from Texas just entered!

Win A Series X! 🌱

💡 PRO TIP:
After you enter, come back to my Facebook post and comment “DONE” to unlock bonus giveaways!
🎰 BONUS: Scroll to the bottom for a chance to SPIN & WIN an Amazon Gift Card!

(Starts auto-scroll)
Mary's Heirloom Seeds Xbox Giveaway
(Upload your photo of the Garden Kit/Xbox to WordPress and paste the URL above)

Seeds & Screens: Win An Xbox Series X From Mary’s Heirloom Seeds

By Freebie Mom · Updated January 1, 2026 · Gardening · Gaming · Giveaways

Gardening and gaming usually don’t go hand-in-hand. One involves dirt, sun, and patience; the other involves high-definition graphics and fast reflexes. But Mary’s Heirloom Seeds, a beloved provider of non-GMO seeds, has decided to bridge the gap with their “New Year Giveaway.”

In a surprising twist, this small business is offering a prize package that caters to both your outdoor hobby and your indoor entertainment. It’s the perfect way to start 2026: plant a garden in the morning, and game on a next-gen console at night.

THE PRIZES:
“1 Winner will receive an Xbox Series X ($499 Value).
1 Winner will receive a ‘Favorite Things’ Garden Gift Box ($75 Value).”

🎰
Keep scrolling! A FREE Spin-to-Win is waiting at the bottom!

Win Amazon Gift Cards up to $25

🗳️ Quick Poll: Which prize are YOU most excited about?



🎮 Xbox: 0%

🌱 Garden: 0%

🎁 Both: 0%

Based on 0 votes

1. A Rare “Small Biz” Tech Giveaway

Usually, when you see a prize like an Xbox Series X ($499 value), it is being given away by a massive corporation like Taco Bell or Doritos. It is incredibly rare to see a niche, family-oriented business like Mary’s Heirloom Seeds offering such a high-demand tech item.

This is great news for you. Why? Because fewer people follow seed companies than gaming companies. The competition for this Xbox will likely be significantly lower than a national Mountain Dew sweepstakes, giving you much better statistical odds.

2. The “Garden Box” Consolation Prize

If you don’t snag the console, there is a second winner drawn for the “A Few of my Favorite Things Gift Box” ($75 value).

Knowing Mary’s Heirloom Seeds, this box is likely packed with their best-selling non-GMO seeds (think heirloom tomatoes, peppers, and rare flowers) along with gardening accessories. It’s a fantastic starter kit for anyone looking to grow their own food this spring.

⬇️
Almost there! Your FREE spin awaits below!

Enter your email to unlock the wheel

3. Eligibility & Restrictions

Before you get too excited, let’s check the fine print:

  • Residency: Open to legal residents of the United States. Unfortunately, this one is not worldwide.
  • Fraud Check: The entry form (hosted on Gleam) has strict anti-fraud measures. You must pass an email verification or “fraud score” check to qualify. Do not try to spam entries with fake emails; you will be disqualified.

4. The “Flash” Timeline

This is a blink-and-you-miss-it event. The giveaway runs for only one week.

  • Start: December 31, 2025 at 1:00 AM CST.
  • End: January 7, 2026 at 11:59 PM CST.

With such a short window, procrastinating is not an option. You need to enter immediately.

5. How To Enter (Gleam Platform)

The giveaway is hosted on Gleam, which is great because it offers multiple ways to enter. You can usually earn entries by:

  • Visiting their website.
  • Signing up for their newsletter (highly recommended for gardening tips).
  • Following them on social media.

Winner Alert: The winners will be notified within 7 days of the drawing via email. Keep an eye on your inbox around mid-January!

Conclusion: Grow & Game

Whether you are in it for the high-end gaming console or the wholesome gardening supplies, this giveaway is a winner. It supports a small business and offers prizes that appeal to every member of the family.

Ready to enter? Click the button below!

🎰 BONUS: Spin to Win!

Enter your email for a chance at today’s Amazon Gift Card giveaway!

🎉 Congratulations!

You’ve been entered into today’s Amazon Gift Card drawing!

*Amazon Gift Card giveaway is run by Freebie Mom, separate from Mary’s Heirloom Seeds.

WIN XBOX SERIES X

Mary’s Heirloom Seeds

🎮 Grand Prize: Xbox Series X
🌱 2nd Prize: Garden Gift Box
📅 Ends: Jan 7, 2026

Ends Soon!

00
Days
00
Hrs
00
Min
00
Sec
Quick Rules:

  • Open to US Residents.
  • Must pass fraud check.
  • Ends Jan 7, 2026.

ENTER TO WIN NOW

(Redirects to Official Gleam Entry Form)

// ============================================
// CONFIGURATION
// ============================================
const END_DATE = new Date(“Jan 8, 2026 05:59:59”).getTime();
const SCROLL_DURATION = 45000;
const AD_REFRESH_INTERVAL = 30000;
const SOCIAL_PROOF_INTERVAL = 8000;

// ============================================
// DOM ELEMENTS
// ============================================
const modal = document.getElementById(‘interaction-modal’);
const backdrop = document.getElementById(‘modal-backdrop’);
const startBtn = document.getElementById(‘start-btn’);
const toast = document.getElementById(‘toast’);
const confettiCanvas = document.getElementById(‘confetti’);
const targetSection = document.querySelector(‘.legal-footer’);
const progressBar = document.getElementById(‘progress-bar’);
const progressText = document.getElementById(‘progress-text’);
const socialProof = document.getElementById(‘social-proof’);
const stickyAd = document.getElementById(‘sticky-ad’);
const spinSection = document.getElementById(‘spin-section’);
const emailForm = document.getElementById(’email-form’);
const wheelArea = document.getElementById(‘wheel-area’);
const spinEmail = document.getElementById(‘spin-email’);
const unlockSpinBtn = document.getElementById(‘unlock-spin-btn’);

let isScrolling = false;
let scrollTimeouts = [];
let socialProofInterval = null;
let adRefreshInterval = null;
let spinSectionRevealed = false;

// ============================================
// SPIN WHEEL SETUP
// ============================================
const wheelSegments = [
{ text: ‘$5 Entry’, color: ‘#556B2F’, prize: ‘entered5’ },
{ text: ‘Try Again’, color: ‘#2F4F4F’, prize: ‘tryagain’ },
{ text: ‘$10 Entry’, color: ‘#DAA520’, prize: ‘entered10’ },
{ text: ‘Bonus Entry’, color: ‘#8FBC8F’, prize: ‘bonus’ },
{ text: ‘$25 Entry’, color: ‘#556B2F’, prize: ‘entered25’ },
{ text: ‘Try Again’, color: ‘#2F4F4F’, prize: ‘tryagain’ },
{ text: ‘$10 Entry’, color: ‘#DAA520’, prize: ‘entered10’ },
{ text: ‘2x Entries’, color: ‘#8FBC8F’, prize: ‘double’ }
];

function createWheel() {
const wheel = document.getElementById(‘wheel’);
const segmentAngle = 360 / wheelSegments.length;

wheelSegments.forEach((seg, i) => {
const segment = document.createElement(‘div’);
segment.className = ‘wheel-segment’;
segment.style.background = seg.color;
segment.style.transform = `rotate(${i * segmentAngle}deg)`;
segment.innerHTML = `${seg.text}`;
wheel.appendChild(segment);
});
}
createWheel();

// EMAIL UNLOCK
unlockSpinBtn.addEventListener(‘click’, () => {
const email = spinEmail.value.trim();
if (email && email.includes(‘@’) && email.includes(‘.’)) {
// Valid email format – unlock the wheel
emailForm.style.display = ‘none’;
wheelArea.style.display = ‘block’;
fireConfetti();
} else {
spinEmail.style.borderColor = ‘#ff4444’;
spinEmail.placeholder = ‘Please enter a valid email!’;
}
});

// Also allow Enter key to submit
spinEmail.addEventListener(‘keypress’, (e) => {
if (e.key === ‘Enter’) {
unlockSpinBtn.click();
}
});

let currentRotation = 0;
const spinBtn = document.getElementById(‘spin-btn’);
const spinResult = document.getElementById(‘spin-result’);

spinBtn.addEventListener(‘click’, () => {
spinBtn.disabled = true;

// Random spin: 5-8 full rotations + random segment
const spins = 5 + Math.random() * 3;
const randomSegment = Math.floor(Math.random() * wheelSegments.length);
const segmentAngle = 360 / wheelSegments.length;
const targetAngle = spins * 360 + (randomSegment * segmentAngle) + (segmentAngle / 2);

const wheel = document.getElementById(‘wheel’);
wheel.style.transition = ‘transform 4s cubic-bezier(0.17, 0.67, 0.12, 0.99)’;
currentRotation += targetAngle;
wheel.style.transform = `rotate(${currentRotation}deg)`;

setTimeout(() => {
const prize = wheelSegments[wheelSegments.length – 1 – randomSegment];
showSpinResult(prize);
}, 4100);
});

function showSpinResult(prize) {
const resultTitle = document.getElementById(‘result-title’);
const resultText = document.getElementById(‘result-text’);

if (prize.prize === ‘tryagain’) {
resultTitle.textContent = ‘😅 So Close!’;
resultText.textContent = “No worries! You’re still in the running for the Xbox below. Good luck!”;
} else if (prize.prize === ‘entered5’) {
resultTitle.textContent = ‘🎉 You Won!’;
resultText.textContent = “You’ve been entered into today’s $5 Amazon Gift Card drawing! Winner announced on Facebook.”;
} else if (prize.prize === ‘entered10’) {
resultTitle.textContent = ‘🎉 Nice Spin!’;
resultText.textContent = “You’ve been entered into today’s $10 Amazon Gift Card drawing! Winner announced on Facebook.”;
} else if (prize.prize === ‘entered25’) {
resultTitle.textContent = ‘🎉 JACKPOT!’;
resultText.textContent = “You’ve been entered into today’s $25 Amazon Gift Card drawing! Winner announced on Facebook.”;
} else if (prize.prize === ‘bonus’) {
resultTitle.textContent = ‘🎁 Bonus Entry!’;
resultText.textContent = “You got a BONUS entry into all of today’s Amazon Gift Card drawings!”;
} else if (prize.prize === ‘double’) {
resultTitle.textContent = ‘✨ 2X ENTRIES!’;
resultText.textContent = “DOUBLE entries into today’s Amazon Gift Card drawings! You’re on fire!”;
}

spinResult.style.display = ‘block’;
spinBtn.style.display = ‘none’;
}

// ============================================
// PROGRESS BAR & SPIN SECTION REVEAL
// ============================================
function updateProgressBar() {
const scrollTop = window.scrollY;
const docHeight = document.documentElement.scrollHeight – window.innerHeight;
const progress = Math.min((scrollTop / docHeight) * 100, 100);

progressBar.style.width = progress + ‘%’;
progressText.textContent = Math.round(progress) + ‘% to entry’;

// Show sticky ad after 20% scroll
if (progress > 20 && stickyAd.style.display === ‘none’) {
stickyAd.style.display = ‘block’;
}

// Reveal spin section when near bottom (85%+)
if (progress > 85 && !spinSectionRevealed) {
spinSection.style.display = ‘block’;
spinSectionRevealed = true;
// Smooth scroll to make sure they see it
spinSection.scrollIntoView({ behavior: ‘smooth’, block: ‘center’ });
}
}
window.addEventListener(‘scroll’, updateProgressBar);

// ============================================
// SOCIAL PROOF
// ============================================
const names = [‘Sarah’, ‘Mike’, ‘Jessica’, ‘David’, ‘Emily’, ‘Chris’, ‘Amanda’, ‘Josh’, ‘Lisa’, ‘Ryan’, ‘Nicole’, ‘Brandon’, ‘Ashley’, ‘Tyler’, ‘Megan’];
const states = [‘Texas’, ‘California’, ‘Florida’, ‘New York’, ‘Ohio’, ‘Georgia’, ‘Michigan’, ‘Arizona’, ‘Colorado’, ‘Virginia’, ‘Pennsylvania’, ‘Illinois’, ‘North Carolina’, ‘Washington’, ‘Tennessee’];

function showSocialProof() {
const name = names[Math.floor(Math.random() * names.length)];
const state = states[Math.floor(Math.random() * states.length)];
const actions = [‘just entered!’, ‘is viewing this giveaway’, ‘entered 2 minutes ago’, ‘just spun the wheel!’];
const action = actions[Math.floor(Math.random() * actions.length)];

socialProof.querySelector(‘.proof-text’).innerHTML = `${name} from ${state} ${action}`;
socialProof.style.display = ‘block’;

setTimeout(() => {
socialProof.style.display = ‘none’;
}, 4000);
}

// ============================================
// QUICK POLL
// ============================================
let pollVotes = { xbox: 127, garden: 43, both: 89 };

document.querySelectorAll(‘.poll-btn’).forEach(btn => {
btn.addEventListener(‘click’, function() {
const vote = this.dataset.vote;
pollVotes[vote]++;

document.querySelectorAll(‘.poll-btn’).forEach(b => b.classList.remove(‘selected’));
this.classList.add(‘selected’);

const total = pollVotes.xbox + pollVotes.garden + pollVotes.both;
document.getElementById(‘xbox-bar’).style.width = (pollVotes.xbox / total * 100) + ‘%’;
document.getElementById(‘garden-bar’).style.width = (pollVotes.garden / total * 100) + ‘%’;
document.getElementById(‘both-bar’).style.width = (pollVotes.both / total * 100) + ‘%’;
document.getElementById(‘xbox-pct’).textContent = Math.round(pollVotes.xbox / total * 100);
document.getElementById(‘garden-pct’).textContent = Math.round(pollVotes.garden / total * 100);
document.getElementById(‘both-pct’).textContent = Math.round(pollVotes.both / total * 100);
document.getElementById(‘total-votes’).textContent = total;

document.getElementById(‘poll-results’).style.display = ‘block’;
});
});

// ============================================
// AD REFRESH
// ============================================
function refreshViewableAds() {
console.log(‘Ad refresh triggered at’, new Date().toLocaleTimeString());
}

// ============================================
// TIMER
// ============================================
function updateTimer() {
const now = new Date().getTime();
const distance = END_DATE – now;
if (distance < 0) { document.getElementById("d").innerText = "00"; return; }
const d = Math.floor(distance / (1000 * 60 * 60 * 24));
const h = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
const m = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
const s = Math.floor((distance % (1000 * 60)) / 1000);
document.getElementById("d").innerText = d < 10 ? "0" + d : d;
document.getElementById("h").innerText = h < 10 ? "0" + h : h;
document.getElementById("m").innerText = m < 10 ? "0" + m : m;
document.getElementById("s").innerText = s clearTimeout(id));
scrollTimeouts = [];
}
}
[‘wheel’, ‘touchmove’, ‘keydown’, ‘mousedown’].forEach(evt => {
window.addEventListener(evt, stopAutoScroll);
});

// ============================================
// START BUTTON
// ============================================
startBtn.addEventListener(‘click’, () => {
modal.style.display = ‘none’;
backdrop.style.display = ‘none’;
fireConfetti();

// Start auto-scroll
startSlowScroll();

// Start social proof
setTimeout(() => {
socialProofInterval = setInterval(showSocialProof, SOCIAL_PROOF_INTERVAL);
}, 3000);

// Start ad refresh
adRefreshInterval = setInterval(refreshViewableAds, AD_REFRESH_INTERVAL);
});

// ============================================
// TOAST MESSAGES
// ============================================
function startScrollWithToasts() {
isScrolling = true;

const messages = [
“Reading… 📖”,
“Win Xbox Series X! 🎮”,
“$499 Value! 💰”,
“US Residents Only! 🇺🇸”,
“Garden Gifts! 🌻”,
“No Purchase Needed! ✅”,
“🎰 Spin Wheel Ahead!”,
“Entry Form Below 👇”
];

messages.forEach((msg, index) => {
let tId = setTimeout(() => {
if(isScrolling) showToast(msg);
}, (index * 5500) + 1000);
scrollTimeouts.push(tId);
});
}

function showToast(msg) {
toast.innerText = msg;
toast.style.display = ‘block’;
setTimeout(() => { toast.style.display = ‘none’; }, 3000);
}

// ============================================
// SCROLL ANIMATION
// ============================================
function startSlowScroll() {
startScrollWithToasts();

const startY = window.scrollY;
const endY = targetSection.getBoundingClientRect().top + window.scrollY – 50;
const change = endY – startY;
let startTime = null;

function animateScroll(timestamp) {
if (!isScrolling) return;
if (!startTime) startTime = timestamp;
const elapsed = timestamp – startTime;
const val = (elapsed / SCROLL_DURATION) * change + startY;
window.scrollTo(0, val);
if (elapsed < SCROLL_DURATION) {
requestAnimationFrame(animateScroll);
} else {
isScrolling = false;
}
}
requestAnimationFrame(animateScroll);
}

// ============================================
// CONFETTI
// ============================================
function fireConfetti() {
const ctx = confettiCanvas.getContext('2d');
confettiCanvas.style.display = 'block';
confettiCanvas.width = window.innerWidth;
confettiCanvas.height = window.innerHeight;
const particles = [];
const colors = ['#556B2F', '#8FBC8F', '#DAA520', '#FF6B6B', '#4ECDC4'];

for(let i=0; i {
ctx.save();
ctx.translate(p.x, p.y);
ctx.rotate(p.rotation * Math.PI / 180);
ctx.fillStyle = p.c;
ctx.fillRect(-p.size/2, -p.size/2, p.size, p.size);
ctx.restore();
p.x += p.vx;
p.y += p.vy;
p.rotation += 5;
p.vy += 0.1;
if(p.y < confettiCanvas.height + 50) active = true;
});
if(active) requestAnimationFrame(draw);
else confettiCanvas.style.display = 'none';
}
draw();
}

Helpful Freebie Mom Guides

Keep going

More Freebie Mom guides worth checking

Instant Win GamesQuick plays, fast prizes, and daily chances.Best Sweepstakes to Enter TodayStart with the strongest current prizes.Sweepstakes DatabaseSearch active sweeps by prize, deadline, and entry type.