Instant

Sally Beauty COLORfest Spin the Wheel Giveaway — Win a Free Beauty Product!

View saved
How does this find feel?

Sally Beauty COLORfest Spin the Wheel Giveaway — Win a Free Beauty Product!

:root {
–primary: #c2185b;
–primary-dark: #880e4f;
–primary-deep: #4a0020;
–primary-light: #f48fb1;
–primary-pale: #fce4ec;
–accent: #ffd700;
–accent-light: #fff9e6;
–cream: #fdfcf9;
–warm-white: #fafaf8;
–border: #e5e5e5;
–text-dark: #1c1c1c;
–text-gray: #555555;
–text-light: #888888;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
font-family: ‘Inter’, sans-serif;
background: var(–cream);
color: var(–text-dark);
font-size: 17px;
line-height: 1.85;
}

/* ── PROGRESS BAR ── */
#xp-bar-container {
position: fixed; top: 0; left: 0; right: 0;
height: 5px; background: #e5e5e5; z-index: 9999;
}
#xp-bar {
height: 100%; width: 0%;
background: linear-gradient(90deg, var(–primary), var(–accent));
transition: width 0.2s ease;
}

/* ── HEADER ── */
header {
background: linear-gradient(160deg, #4a0020 0%, #880e4f 35%, #c2185b 70%, #f48fb1 100%);
color: #fff;
text-align: center;
padding: 60px 24px 52px;
position: relative;
overflow: hidden;
}
header::before {
content: ”;
position: absolute;
top: -60px; left: -60px; right: -60px; bottom: -60px;
background: radial-gradient(ellipse at 50% 0%, rgba(255,215,0,0.18) 0%, transparent 70%);
pointer-events: none;
}
header::after {
content: ‘💄 💅 ✨’;
position: absolute;
top: 16px; right: 20px;
font-size: 1.2rem;
opacity: 0.25;
pointer-events: none;
}
.status-tag {
display: inline-block;
background: rgba(255,255,255,0.15);
border: 1px solid rgba(255,255,255,0.3);
border-radius: 20px;
padding: 5px 16px;
font-size: 0.78rem;
font-weight: 700;
letter-spacing: 0.08em;
text-transform: uppercase;
margin-bottom: 18px;
color: #fff;
}
.status-tag.urgent {
background: rgba(255,50,50,0.3);
border-color: rgba(255,100,100,0.5);
animation: pulse-urgent 1s ease-in-out infinite;
}
@keyframes pulse-urgent {
0%, 100% { opacity: 1; }
50% { opacity: 0.7; }
}
header h1 {
font-family: ‘Playfair Display’, serif;
font-size: clamp(2rem, 5vw, 3.2rem);
font-weight: 900;
line-height: 1.15;
margin-bottom: 10px;
color: #fff;
}
header h1 span {
color: var(–accent);
}
header .sub {
font-size: 1.05rem;
color: rgba(255,255,255,0.88);
max-width: 560px;
margin: 0 auto 28px;
line-height: 1.6;
}
.prize-big {
font-family: ‘Playfair Display’, serif;
font-size: clamp(3rem, 8vw, 5rem);
font-weight: 900;
color: var(–accent);
line-height: 1;
margin-bottom: 4px;
text-shadow: 0 2px 20px rgba(0,0,0,0.3);
}
.prize-label {
font-size: 0.85rem;
font-weight: 700;
letter-spacing: 0.12em;
text-transform: uppercase;
color: rgba(255,255,255,0.7);
margin-bottom: 28px;
}

/* COUNTDOWN */
.countdown {
display: flex;
justify-content: center;
gap: 12px;
margin-bottom: 32px;
flex-wrap: wrap;
}
.cd-box {
background: rgba(255,255,255,0.12);
border: 1px solid rgba(255,255,255,0.2);
border-radius: 12px;
padding: 12px 18px;
min-width: 72px;
text-align: center;
}
.cd-num {
font-family: ‘Playfair Display’, serif;
font-size: 2rem;
font-weight: 900;
color: var(–accent);
line-height: 1;
}
.cd-label {
font-size: 0.65rem;
font-weight: 700;
letter-spacing: 0.1em;
text-transform: uppercase;
color: rgba(255,255,255,0.6);
margin-top: 4px;
}

/* HERO BUTTON */
.hero-btn {
display: inline-block;
background: var(–accent);
color: #1c1c1c;
font-size: 1.1rem;
font-weight: 800;
padding: 18px 44px;
border-radius: 50px;
border: none;
cursor: pointer;
text-decoration: none;
letter-spacing: 0.04em;
transition: transform 0.2s, box-shadow 0.2s;
box-shadow: 0 4px 24px rgba(0,0,0,0.25);
outline: 3px dashed rgba(255,255,255,0.4);
outline-offset: 4px;
}
.hero-btn:hover { transform: translateY(-2px); box-shadow: 0 8px 32px rgba(0,0,0,0.35); }

/* STAT PILLS */
.stat-pills {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 10px;
margin-top: 28px;
}
.pill {
background: rgba(255,255,255,0.12);
border: 1px solid rgba(255,255,255,0.25);
border-radius: 20px;
padding: 6px 16px;
font-size: 0.82rem;
font-weight: 700;
color: #fff;
}
.pill span { color: var(–accent); }

/* ── CONTENT ── */
.content-wrap {
max-width: 780px;
margin: 0 auto;
padding: 0 20px 60px;
}

/* TOC */
.toc {
background: var(–primary-pale);
border: 1.5px solid var(–primary-light);
border-radius: 14px;
padding: 28px 32px;
margin: 40px 0 32px;
}
.toc h2 {
font-family: ‘Playfair Display’, serif;
font-size: 1rem;
font-weight: 800;
color: var(–primary-dark);
margin-bottom: 14px;
text-transform: uppercase;
letter-spacing: 0.06em;
}
.toc ol {
padding-left: 20px;
}
.toc ol li {
margin-bottom: 6px;
}
.toc ol li a {
color: var(–primary);
text-decoration: none;
font-weight: 600;
font-size: 0.95rem;
}
.toc ol li a:hover { text-decoration: underline; }

/* SECTIONS */
section {
margin-bottom: 48px;
}
section h2 {
font-family: ‘Playfair Display’, serif;
font-size: clamp(1.5rem, 3.5vw, 2rem);
font-weight: 900;
color: var(–text-dark);
margin-bottom: 16px;
line-height: 1.25;
}
section h2 span { color: var(–primary); }
section h3 {
font-size: 1.1rem;
font-weight: 700;
color: var(–primary-dark);
margin: 24px 0 10px;
}
section p {
margin-bottom: 16px;
color: var(–text-gray);
}
blockquote {
border-left: 4px solid var(–primary);
background: var(–primary-pale);
padding: 14px 20px;
border-radius: 0 10px 10px 0;
margin: 20px 0;
font-style: italic;
color: var(–text-gray);
font-size: 0.95rem;
}

/* PRIZE CARDS */
.prize-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 16px;
margin: 24px 0;
}
.prize-card {
background: #fff;
border: 2px solid var(–border);
border-top: 4px solid var(–primary);
border-radius: 14px;
padding: 22px 18px;
text-align: center;
transition: transform 0.2s, box-shadow 0.2s;
}
.prize-card:hover { transform: translateY(-3px); box-shadow: 0 8px 24px rgba(0,0,0,0.08); }
.prize-card.grand { border-top-color: var(–accent); }
.pc-icon { font-size: 2.2rem; margin-bottom: 10px; }
.pc-name { font-weight: 700; font-size: 0.95rem; color: var(–text-dark); margin-bottom: 6px; }
.pc-val { font-size: 1.3rem; font-weight: 900; color: var(–primary); margin-bottom: 8px; }
.pc-desc { font-size: 0.82rem; color: var(–text-light); line-height: 1.5; }

/* WHEEL VISUAL */
.wheel-visual {
background: linear-gradient(135deg, var(–primary-deep) 0%, var(–primary-dark) 100%);
border-radius: 16px;
padding: 28px 24px;
margin: 24px 0;
text-align: center;
color: #fff;
}
.wheel-emoji {
font-size: 4rem;
display: block;
margin-bottom: 12px;
animation: spin-slow 8s linear infinite;
}
@keyframes spin-slow {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}
.wheel-visual h3 {
color: var(–accent);
font-size: 1.3rem;
margin-bottom: 8px;
}
.wheel-visual p {
color: rgba(255,255,255,0.8);
font-size: 0.95rem;
margin: 0;
}

/* STEPS */
.steps {
list-style: none;
padding: 0;
margin: 20px 0;
}
.steps li {
display: flex;
gap: 16px;
margin-bottom: 20px;
align-items: flex-start;
}
.step-num {
background: var(–primary);
color: #fff;
font-weight: 900;
font-size: 1rem;
min-width: 36px;
height: 36px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
margin-top: 2px;
}
.step-body strong {
display: block;
font-weight: 700;
color: var(–text-dark);
margin-bottom: 4px;
}
.step-body span {
color: var(–text-gray);
font-size: 0.95rem;
}

/* ELIGIBILITY TABLE */
.elig-table {
width: 100%;
border-collapse: collapse;
margin: 20px 0;
font-size: 0.93rem;
}
.elig-table th {
background: var(–primary);
color: #fff;
padding: 12px 16px;
text-align: left;
font-weight: 700;
}
.elig-table td {
padding: 11px 16px;
border-bottom: 1px solid var(–border);
color: var(–text-gray);
}
.elig-table tr:nth-child(even) td { background: var(–primary-pale); }

/* TIMELINE */
.timeline {
list-style: none;
padding: 0;
margin: 20px 0;
position: relative;
}
.timeline::before {
content: ”;
position: absolute;
left: 10px; top: 0; bottom: 0;
width: 2px;
background: var(–primary-light);
}
.timeline li {
display: flex;
gap: 20px;
margin-bottom: 20px;
padding-left: 4px;
}
.tl-dot {
width: 20px; height: 20px;
background: var(–primary);
border-radius: 50%;
flex-shrink: 0;
margin-top: 3px;
position: relative;
z-index: 1;
}
.tl-date { font-weight: 700; color: var(–text-dark); font-size: 0.95rem; }
.tl-desc { color: var(–text-gray); font-size: 0.9rem; }

/* FAQ */
.faq-list { margin: 20px 0; }
.faq-item { border-bottom: 1px solid var(–border); }
.faq-q {
width: 100%;
background: none;
border: none;
text-align: left;
padding: 16px 0;
font-size: 1rem;
font-weight: 700;
color: var(–text-dark);
cursor: pointer;
display: flex;
justify-content: space-between;
align-items: center;
}
.faq-q:hover { color: var(–primary); }
.faq-a {
display: none;
padding: 0 0 16px;
color: var(–text-gray);
font-size: 0.95rem;
line-height: 1.7;
}
.faq-item.open .faq-a { display: block; }
.faq-item.open .faq-q { color: var(–primary); }

/* RELATED */
.related-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
gap: 14px;
margin: 20px 0;
}
.related-card {
background: #fff;
border: 1.5px solid var(–border);
border-radius: 12px;
padding: 18px 16px;
text-decoration: none;
transition: transform 0.2s, box-shadow 0.2s, border-color 0.2s;
}
.related-card:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(0,0,0,0.08); border-color: var(–primary-light); }
.rc-cat {
font-size: 0.7rem;
font-weight: 800;
letter-spacing: 0.1em;
text-transform: uppercase;
color: var(–primary);
margin-bottom: 6px;
}
.rc-title {
font-weight: 700;
font-size: 0.9rem;
color: var(–text-dark);
line-height: 1.4;
}

/* CTA SECTION */
.cta-section {
background: linear-gradient(135deg, var(–primary-deep) 0%, var(–primary-dark) 50%, var(–primary) 100%);
border-radius: 20px;
padding: 48px 32px;
text-align: center;
color: #fff;
margin: 48px 0 0;
}
.cta-section h2 {
font-family: ‘Playfair Display’, serif;
font-size: clamp(1.6rem, 4vw, 2.4rem);
font-weight: 900;
color: #fff;
margin-bottom: 12px;
}
.cta-section p {
color: rgba(255,255,255,0.85);
margin-bottom: 28px;
font-size: 1rem;
}
.cta-btn {
display: inline-block;
background: var(–accent);
color: #1c1c1c;
font-size: 1.1rem;
font-weight: 800;
padding: 18px 44px;
border-radius: 50px;
text-decoration: none;
letter-spacing: 0.04em;
transition: transform 0.2s, box-shadow 0.2s;
box-shadow: 0 4px 24px rgba(0,0,0,0.25);
}
.cta-btn:hover { transform: translateY(-2px); box-shadow: 0 8px 32px rgba(0,0,0,0.35); }

/* FACT POPUPS */
.fact-popup {
display: none;
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background: #fff;
border: 3px solid var(–primary);
border-radius: 18px;
padding: 28px 32px;
max-width: 320px;
width: 90%;
z-index: 10000;
text-align: center;
box-shadow: 0 20px 60px rgba(0,0,0,0.25);
font-family: ‘Inter’, sans-serif;
font-size: 0.95rem;
color: var(–text-dark);
line-height: 1.6;
}
.fact-icon {
display: block;
font-size: 2.5rem;
margin-bottom: 10px;
}
.fact-title {
display: block;
font-weight: 800;
font-size: 1.1rem;
color: var(–primary);
margin-bottom: 8px;
}

/* SKIP POPUP */
#skip-popup {
display: none;
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background: #fff;
border: 3px solid var(–primary);
border-radius: 20px;
padding: 32px 28px;
max-width: 340px;
width: 92%;
z-index: 10001;
text-align: center;
box-shadow: 0 20px 60px rgba(0,0,0,0.25);
font-family: ‘Inter’, sans-serif;
}
.skip-icon { font-size: 2.5rem; display: block; margin-bottom: 10px; }
#skip-popup h3 { font-size: 1.2rem; font-weight: 800; color: var(–text-dark); margin-bottom: 8px; }
#skip-popup p { font-size: 0.9rem; color: var(–text-gray); margin-bottom: 20px; line-height: 1.5; }
.popup-btn-yes {
display: block;
width: 100%;
background: var(–primary);
color: #fff;
border: none;
border-radius: 50px;
padding: 14px;
font-size: 1rem;
font-weight: 800;
cursor: pointer;
margin-bottom: 10px;
transition: background 0.2s;
}
.popup-btn-yes:hover { background: var(–primary-dark); }
.popup-btn-no {
display: block;
width: 100%;
background: none;
border: 2px solid var(–border);
border-radius: 50px;
padding: 12px;
font-size: 0.9rem;
font-weight: 600;
color: var(–text-light);
cursor: pointer;
transition: border-color 0.2s;
}
.popup-btn-no:hover { border-color: var(–primary-light); }

/* URGENT BANNER */
.urgent-banner {
background: linear-gradient(90deg, #b71c1c, #c2185b);
color: #fff;
text-align: center;
padding: 12px 20px;
font-weight: 800;
font-size: 0.9rem;
letter-spacing: 0.04em;
animation: pulse-urgent 1.5s ease-in-out infinite;
}

@media (max-width: 600px) {
.prize-grid { grid-template-columns: 1fr 1fr; }
.related-grid { grid-template-columns: 1fr; }
.cta-section { padding: 36px 20px; }
}

🚨 TODAY ONLY — ENDS MARCH 12 AT 11:59 PM EDT — ENTER NOW! 🚨
⚡ GIVEAWAY CLOSES TONIGHT — MARCH 12, 2026

Sally Beauty COLORfest
Spin the Wheel Giveaway

Sally Beauty is giving away 60 free beauty products — screenshot the wheel, DM them your photo, and win a surprise product worth up to $15!

60 🎁
FREE BEAUTY PRODUCTS — 6 PRODUCTS × 10 WINNERS EACH
00
Hours
00
Mins
00
Secs

60 Free Products
6 Surprise Products
10 Winners Per Product
Tonight! Deadline

What Is the Sally Beauty COLORfest Giveaway?

Sally Beauty is celebrating their SALLY.COLORfest event in Los Angeles this Saturday with a unique spin-the-wheel giveaway for fans who can’t make it in person. Instead of a standard entry form, this one works differently — you screenshot the spinning wheel on their Instagram Reel, and wherever the arrow lands determines which product you’ll receive!

There are 6 different beauty products on the wheel, with 10 winners per product — that’s 60 total prizes up for grabs. Each product is valued between $10 and $15. To claim your entry, you screenshot the post and DM it directly to Sally Beauty on Instagram.

This giveaway is TODAY ONLY — it opens at 11:00 AM EDT and closes at 11:59 PM EDT on March 12, 2026. You have less than 24 hours to enter!

“NO PURCHASE NECESSARY. Void where prohibited. Promotion begins 03/12/26 at 11:00 AM EDT and ends 03/12/26 at 11:59 P.M. EDT.” — Official Rules

🎡

Spin the Wheel!

Screenshot the Instagram Reel — wherever the arrow lands is your prize product. DM your screenshot to @sallybeauty to enter!

The Prizes — 6 Surprise Beauty Products

There are 6 different products on the wheel, and 10 winners will receive each product — for a total of 60 prizes. The arrow in your screenshot determines which product you’re entered to win. Each prize is valued between $10 and $15.

💄
Product #1
$10–$15
One of 6 surprise Sally Beauty products — wherever the wheel arrow lands!

💅
Product #2
$10–$15
A second surprise product option on the COLORfest wheel

✨
Product #3
$10–$15
Third wheel option — screenshot fast to capture your arrow position!

🌸
Product #4
$10–$15
Fourth surprise beauty product from Sally Beauty’s COLORfest lineup

🎨
Product #5
$10–$15
Fifth wheel option — all products are from Sally Beauty’s curated collection

🏆
Product #6
$10–$15
The sixth and final wheel option — 10 winners for each product!

The total approximate retail value of each prize is $10 to $15. Prizes are non-transferable and cannot be exchanged for cash. The product you’re entered to win is determined by where the arrow lands in your screenshot — so take that screenshot and send it in!

How to Enter Step by Step

This giveaway has a unique entry method — no form to fill out, just a screenshot and a DM. Here’s exactly what to do:

  • 1
    Go to the Sally Beauty Instagram Reel
    Visit the official Sally Beauty COLORfest giveaway Reel at instagram.com/reels/DVwkEyPCFCG/ — this is the spinning wheel post.
  • 2
    Screenshot the Post
    Take a screenshot of the Reel while it’s playing. The arrow on the spinning wheel will be pointing at one of the 6 products — that’s your prize entry! The position of the arrow in your screenshot determines which product you’re entered to win.
  • 3
    DM Your Screenshot to @sallybeauty
    Send your screenshot directly to Sally Beauty via Instagram Direct Message. This is how you officially submit your entry — no DM means no entry!
  • 4
    Follow @sallybeauty on Instagram
    Make sure you’re following @sallybeauty on Instagram. This is required to participate in the giveaway and to receive any winner notification via DM.
  • 5
    Wait for Winner Notification
    The giveaway closes tonight at 11:59 PM EDT. Winners will be notified via Instagram DM. Check your message requests folder after the deadline!

Who Can Enter — Eligibility

This giveaway is open to all U.S. residents 18 and older. Here’s the full breakdown:

Requirement Details
Residency Legal residents of the 50 U.S. states & Washington, D.C.
Age 18 years of age or older
Entry Method Screenshot the Instagram Reel + DM screenshot to @sallybeauty
Entry Limit One entry per person
Total Prizes 60 prizes (6 products × 10 winners each)
Prize ARV $10–$15 per prize
Sponsor Sally Beauty Supply LLC, 7900 Windrose Ave., Plano, TX 75024
Void Where Void where prohibited by law

Unlike many giveaways, this one is open to all 50 states including Alaska and Hawaii — no exclusions! All U.S. residents 18+ are eligible to enter.

Timeline & Key Dates

  • March 12, 2026 — 11:00 AM EDT
    Giveaway opens — Sally Beauty posts the spinning wheel Reel on Instagram

  • March 12, 2026 — All Day
    Entry window — screenshot the Reel and DM your screenshot to @sallybeauty

  • March 12, 2026 — 11:59 PM EDT
    ENTRY DEADLINE — all entries must be submitted before midnight tonight!

  • After March 12, 2026
    Winner selection — 60 winners randomly chosen (10 per product)

  • Winner Notification
    Winners notified via Instagram DM — check your message requests folder!

Tips to Maximize Your Chances

📸 Take Your Screenshot Right Now

This giveaway closes TONIGHT at 11:59 PM EDT. Don’t wait — go to the Instagram Reel right now, take your screenshot, and DM it to @sallybeauty immediately. The sooner you enter, the more time you have to make sure your DM went through.

📬 Make Sure Your DM Actually Sends

The entry is only valid if Sally Beauty receives your DM with the screenshot. After sending, check that the message shows as “Delivered” or “Seen” in your Instagram DMs. If Sally Beauty doesn’t follow you back, your message may land in their Message Requests — but as long as you send it, you’re entered.

👁️ Follow @sallybeauty Before DMing

Follow @sallybeauty on Instagram before you send your DM. This ensures your message goes to their main inbox rather than a filtered folder, and it’s required to participate in the giveaway.

🎡 The Arrow Position Matters

The product you’re entered to win is determined by where the arrow is pointing in your screenshot. Each of the 6 products has 10 winner slots, so there’s no “better” position on the wheel — all products have equal odds. Just take the screenshot and send it in!

📱 Check Your Message Requests After Tonight

Winners are notified via Instagram DM. If Sally Beauty doesn’t follow you, their winner notification may land in your Message Requests folder rather than your main inbox. After the deadline, check both your regular DMs and your Message Requests to make sure you don’t miss a win notification.

Frequently Asked Questions

No purchase is necessary to enter or win. This is a completely free giveaway — just screenshot the Instagram Reel and DM it to @sallybeauty. Making a purchase will not increase your chances of winning.

The product you’re entered to win is determined by where the arrow lands in your screenshot — you don’t get to choose. However, since all 6 products have 10 winner slots each, every position on the wheel gives you equal odds of winning.

The official rules state one entry per person. Sending multiple screenshots or DMing multiple times will not increase your chances and may disqualify your entry. Submit one screenshot DM and you’re entered.

SALLY.COLORfest is a Sally Beauty event happening in Los Angeles on Saturday, March 14, 2026. It’s a celebration of color, beauty, and hair — featuring product launches, demos, and more. This giveaway is Sally Beauty’s way of bringing the COLORfest excitement to fans who can’t attend in person.

Winners will be notified via Instagram Direct Message from @sallybeauty. If you don’t follow Sally Beauty, their DM may land in your Message Requests folder rather than your main inbox. After the deadline, check both your regular DMs and your Message Requests folder regularly so you don’t miss a win notification.

Yes! Unlike many giveaways that exclude Alaska and Hawaii, this one is open to legal residents of all 50 U.S. states plus Washington, D.C. As long as you’re 18+ and a U.S. resident, you’re eligible to enter.

If you’re not following @sallybeauty, your DM will be sent as a Message Request. Sally Beauty should still receive it — but to be safe, follow @sallybeauty first before sending your screenshot DM. This ensures your message goes directly to their inbox.

More Free Sweepstakes to Enter

Ready to Enter Free? ⚡

Go to the official Sally Beauty COLORfest Instagram Reel, screenshot the spinning wheel, and DM your screenshot to @sallybeauty. Closes TONIGHT at 11:59 PM EDT — don’t miss it!

Enter on Instagram 💄

No purchase necessary. Open to legal U.S. residents 18+, all 50 states & D.C. Starts 3/12/26 at 11:00 AM EDT and ends 3/12/26 at 11:59 PM EDT. Void where prohibited. Sponsored by Sally Beauty Supply LLC, 7900 Windrose Ave., Plano, TX 75024. This page is an independent editorial guide and is not affiliated with or endorsed by Sally Beauty.

💄
60 Free Products!
Sally Beauty is giving away 60 free beauty products — 6 products with 10 winners each!
📸
Screenshot to Enter!
Just screenshot the spinning wheel Reel and DM it to @sallybeauty — that’s all it takes to enter!
⏰
Closes TONIGHT!
This giveaway ends at 11:59 PM EDT tonight — March 12, 2026. Enter right now!
📬
Check Your DMs!
Winners are notified via Instagram DM — check your Message Requests folder after the deadline!

💄

Ready to Enter?

Jump to the entry button — screenshot the wheel and DM @sallybeauty to win a free beauty product!


document.addEventListener(‘DOMContentLoaded’, function() {

// ── COUNTDOWN (ends tonight March 12 at 11:59 PM EDT) ──
var deadline = new Date(‘2026-03-12T23:59:00-04:00’).getTime();
function updateCountdown() {
var now = Date.now();
var diff = deadline – now;
if (diff 0 ? (scrollTop / docHeight) * 100 : 0;
var bar = document.getElementById(‘xp-bar’);
if (bar) bar.style.width = Math.min(pct, 100) + ‘%’;
});

// ── FAQ ACCORDION ──
document.querySelectorAll(‘.faq-q’).forEach(function(btn) {
btn.addEventListener(‘click’, function() {
var item = this.closest(‘.faq-item’);
if (!item) return;
var isOpen = item.classList.contains(‘open’);
document.querySelectorAll(‘.faq-item.open’).forEach(function(el) { el.classList.remove(‘open’); });
if (!isOpen) item.classList.add(‘open’);
});
});

// ── AUTO-SCROLL ──
var scrolling = false;
var scrollInterval = null;
var factTimers = [];
var skipShown = false;
var skipPopup = document.getElementById(‘skip-popup’);

function triggerFact(id) {
var el = document.getElementById(id);
if (el) {
el.style.display = ‘block’;
setTimeout(function() { el.style.display = ‘none’; }, 4500);
}
}

function startAutoScroll() {
if (scrolling) return;
scrolling = true;
scrollInterval = setInterval(function() {
var scrollTop = window.scrollY || document.documentElement.scrollTop;
var docHeight = document.documentElement.scrollHeight – window.innerHeight;
if (scrollTop >= docHeight – 10) { stopAutoScroll(); return; }
window.scrollBy(0, 5);
var pct = docHeight > 0 ? (scrollTop / docHeight) * 100 : 0;
if (!skipShown && pct >= 50) {
skipShown = true;
if (skipPopup) skipPopup.style.display = ‘block’;
}
}, 16);

factTimers.push(setTimeout(function() { triggerFact(‘fact1’); }, 6000));
factTimers.push(setTimeout(function() { triggerFact(‘fact2’); }, 16000));
factTimers.push(setTimeout(function() { triggerFact(‘fact3’); }, 28000));
factTimers.push(setTimeout(function() { triggerFact(‘fact4’); }, 40000));
}

function stopAutoScroll() {
scrolling = false;
if (scrollInterval) { clearInterval(scrollInterval); scrollInterval = null; }
factTimers.forEach(function(t) { clearTimeout(t); });
factTimers = [];
}

var startBtn = document.getElementById(‘scroll-start-btn’);
if (startBtn) {
startBtn.addEventListener(‘click’, function(e) {
e.preventDefault();
startAutoScroll();
});
}

window.addEventListener(‘wheel’, function() { stopAutoScroll(); });
window.addEventListener(‘touchmove’, function() { stopAutoScroll(); });

var skipYes = document.getElementById(‘skip-yes’);
var skipNo = document.getElementById(‘skip-no’);
if (skipYes) {
skipYes.addEventListener(‘click’, function() {
stopAutoScroll();
if (skipPopup) skipPopup.style.display = ‘none’;
var enterBtn = document.getElementById(‘enter-btn’);
if (enterBtn) enterBtn.scrollIntoView({ behavior: ‘smooth’, block: ‘center’ });
});
}
if (skipNo) {
skipNo.addEventListener(‘click’, function() {
if (skipPopup) skipPopup.style.display = ‘none’;
});
}

});

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.