Win The “It” Bag of the Year: NYX x Bogg Bag Holiday Giveaway!

/* — GLOBAL STYLES (Gingerbaddie Theme) — */
:root {
–primary: #E80070; /* NYX Hot Pink */
–secondary: #111111; /* Black */
–accent: #40E0D0; /* Bogg Bag Teal */
–gray: #f9f9f9;
–text: #333;
–alert: #ffeef6;
}
body { margin: 0; padding: 0; box-sizing: border-box; background: #fff; }
/* Main Container */
.lp-container {
font-family: ‘Helvetica Neue’, Helvetica, Arial, sans-serif;
line-height: 1.7;
color: var(–text);
max-width: 880px;
margin: 20px auto;
padding: 0 15px;
overflow-x: hidden;
font-size: 19px;
}
/* IMAGE STYLE */
.lp-featured-img {
width: 100%;
max-width: 700px;
height: auto;
display: block;
margin: 40px auto;
border-radius: 12px;
box-shadow: 0 10px 30px rgba(0,0,0,0.1);
}
/* HEADLINES */
.lp-h1 {
font-size: 2.6rem;
font-weight: 800;
line-height: 1.1;
color: var(–secondary);
margin-bottom: 20px;
text-align: center;
letter-spacing: -0.5px;
}
.lp-meta {
text-align: center;
font-size: 13px;
color: #888;
text-transform: uppercase;
font-weight: 700;
letter-spacing: 1px;
margin-bottom: 40px;
border-bottom: 2px solid #eee;
padding-bottom: 20px;
}
.lp-h2 {
font-size: 2rem;
font-weight: 700;
color: var(–secondary);
margin-top: 50px;
margin-bottom: 20px;
border-left: 5px solid var(–primary);
padding-left: 20px;
}
.lp-p { margin-bottom: 25px; font-size: 1.05rem; }
/* CALLOUT BOXES */
.alert-box {
background: var(–alert);
border: 1px solid #ffb3d9;
border-radius: 8px;
padding: 25px;
margin: 35px 0;
color: #99004d;
font-size: 1em;
font-weight: 500;
}
/* GIVEAWAY SECTION STYLES */
#sweeps-box {
margin-top: 80px;
background: #fff;
border: 4px solid var(–primary);
border-radius: 20px;
padding: 50px 20px;
box-shadow: 0 20px 60px rgba(232, 0, 112, 0.15);
text-align: center;
scroll-margin-top: 50px;
position: relative;
overflow: hidden;
}
/* Striped Bar */
#sweeps-box::before {
content: “”;
position: absolute; top:0; left:0; right:0; height: 15px;
background: repeating-linear-gradient(
45deg,
var(–primary),
var(–primary) 10px,
var(–accent) 10px,
var(–accent) 20px
);
}
#sweeps-box h3 {
font-size: 34px;
font-weight: 800;
color: var(–secondary);
margin-bottom: 10px;
text-transform: uppercase;
letter-spacing: -1px;
}
/* PRIZE LIST inside box */
.prize-list {
text-align: left;
background: var(–gray);
padding: 30px;
border-radius: 12px;
margin: 30px auto;
max-width: 550px;
border: 1px solid #e0e0e0;
}
.prize-item { display: flex; align-items: flex-start; margin-bottom: 15px; font-size: 18px; font-weight: 600; color: #444; }
.prize-icon { margin-right: 15px; color: var(–primary); font-size: 22px;}
.highlight-pink { color: var(–primary); font-weight: 800; }
/* TIMER */
#sweeps-timer {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 10px;
margin-bottom: 30px;
max-width: 400px;
margin-left: auto;
margin-right: auto;
}
#sweeps-timer .cell {
background: var(–secondary);
border-radius: 8px;
padding: 10px;
color: #fff;
}
#sweeps-timer .num { font-size: 32px; font-weight: 700; line-height: 1; color: #fff; }
#sweeps-timer .lbl { font-size: 10px; text-transform: uppercase; margin-top: 5px; color: #bbb; }
/* ENTER BUTTON */
#final-enter {
display: block;
background: var(–primary);
color: #fff;
font-size: 22px;
font-weight: 800;
padding: 22px 30px;
border-radius: 50px;
text-decoration: none;
margin: 20px auto;
max-width: 500px;
box-shadow: 0 10px 20px rgba(232, 0, 112, 0.3);
transition: transform 0.1s;
text-transform: uppercase;
letter-spacing: 0.5px;
animation: pulse 2s infinite;
}
#final-enter:active { transform: scale(0.98); }
#final-enter:hover { background: #b30056; }
@keyframes pulse {
0% { transform: scale(1); }
50% { transform: scale(1.02); }
100% { transform: scale(1); }
}
/* OVERLAY & POPUP */
#sweeps-overlay {
position: fixed; inset: 0; background: rgba(25, 25, 25, 0.96);
display: flex; align-items: center; justify-content: center;
z-index: 99999;
cursor: pointer;
}
#sweeps-overlay .box {
background: #fff;
border-bottom: 6px solid var(–primary);
border-radius: 12px;
padding: 45px;
width: 90%; max-width: 450px;
text-align: center;
cursor: default;
box-shadow: 0 20px 50px rgba(0,0,0,0.5);
}
#sweeps-start {
background: var(–primary); color: #fff;
font-size: 20px; font-weight: 800; border: none;
padding: 18px 40px; border-radius: 50px; cursor: pointer;
margin-top: 25px; width: 100%;
text-transform: uppercase;
box-shadow: 0 5px 15px rgba(232, 0, 112, 0.3);
transition: background 0.3s;
}
#sweeps-start:hover { background: #b30056; }
/* Floating Popup Toast */
#sweeps-popup {
display: none; position: fixed; top: 50%; left: 50%;
transform: translate(-50%, -50%);
background: #fff; padding: 30px; border-radius: 12px;
box-shadow: 0 20px 50px rgba(0,0,0,0.5);
z-index: 9998; font-size: 22px; font-weight: 800;
color: var(–secondary); text-align: center; border: 3px solid var(–primary);
width: 80%; max-width: 380px;
}
.close-hint { font-size: 13px; color: #999; margin-top: 20px; }
canvas#sweeps-confetti { position: fixed; inset: 0; pointer-events: none; z-index: 9997; display: none; }
BOGG BAG ALERT! 🛍️
This is the “It” bag every mom wants. We found a way to win one + the new NYX Holiday Collection.
Win The “It” Bag of the Year: NYX x Bogg Bag Holiday Giveaway!
If you have been on social media lately, you know there are two things taking over the internet: The viral “Gingerbaddie” holiday makeup from NYX, and the obsession with Bogg Bags.
Bogg Bags are practically the “Mom Uniform” of 2025. They are sturdy, washable, tip-proof, and notoriously expensive (and hard to find in the good colors!).
So, when I saw that **NYX Cosmetics** teamed up with **Bogg Bags** for a massive holiday giveaway, I knew I had to share it immediately.
They aren’t just giving away one prize. They are picking 10 Winners. That is huge! Usually, these viral giveaways have one winner and millions of entries, but with 10 spots open, your odds just got a whole lot better.
This giveaway ends on December 28th. Winners will be contacted after the New Year. Do not wait on this one!
1. The Prize Package: “Gingerbaddie” & Bogg
This isn’t just a lipstick. This is a “Haul.” Here is what 10 lucky winners will receive:
- Mini Bogg Bag: Perfect for everyday errands, makeup storage, or just looking cute.
- Bogg Bag Charms: To customize your bag (because we love accessories for our accessories).
- NYX “Gingerbaddie” Collection: The entire holiday collection. We are talking palettes, lip glosses, and everything you need to look spicy for 2026.
2. How to Enter (Instagram Exclusive)
This is an Instagram-based giveaway, which means it takes about 30 seconds to enter. No long forms to fill out!
The Steps:
- Follow @nyxcosmetics and @boggbags.
- Tag 2 besties in the comments.
- Bonus: Comment the “Shopping Bags” emoji (🛍️) on their recent posts for extra luck.
3. Why We Want This
Aside from the fact that Bogg Bags never go on sale? It’s the perfect “New Year Refresh.” You get the bag to organize your life and the makeup to refresh your look.
So, click the button below to go straight to the official Instagram post. Get your tags in before the 28th!
GINGERBADDIE GIVEAWAY
NYX Cosmetics x Bogg Bag
(Ends Dec 28 @ 11:59PM)
(Direct link to Official Giveaway)
*NO PURCHASE NECESSARY. US Residents 18+ only. Giveaway ends 12/28/2025. Winners contacted via DM by verified accounts only. Beware of scams. Sponsored by NYX Cosmetics & Bogg Bags.
document.addEventListener(“DOMContentLoaded”,()=>{
const overlay = document.getElementById(“sweeps-overlay”);
const startBtn = document.getElementById(“sweeps-start”);
const popup = document.getElementById(“sweeps-popup”);
const confetti = document.getElementById(“sweeps-confetti”);
const targetBox = document.getElementById(“sweeps-box”);
const overlayBox = overlay.querySelector(‘.box’);
// VARIABLES FOR STOPPING ANIMATION
let isScrolling = false;
let activeTimeouts = [];
// TIMER: ENDS DEC 28, 2025 at 11:59PM
const end = new Date(“2025-12-28T23:59:59”).getTime();
setInterval(()=>{
let t = end – Date.now(); if(t<0)t=0;
let d=Math.floor(t/86400000), h=Math.floor(t%86400000/3600000),
m=Math.floor(t%3600000/60000), s=Math.floor(t%60000/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 {
if (e.target === overlay) {
overlay.style.display = “none”;
}
});
overlayBox.addEventListener(“click”, (e) => {
e.stopPropagation();
});
// EMERGENCY STOP FUNCTION
function stopEverything() {
if (!isScrolling) return; // Only run if currently animating
isScrolling = false;
// Clear all future popups
activeTimeouts.forEach(id => clearTimeout(id));
activeTimeouts = [];
// Hide current popup
popup.style.display = “none”;
}
// LISTEN FOR USER INTERACTION TO STOP SCROLL
[‘mousedown’, ‘wheel’, ‘touchstart’].forEach(evt =>
window.addEventListener(evt, stopEverything, {passive: true})
);
// CONFETTI SCRIPT
function fireConfetti(){
const c=confetti, ctx=c.getContext(“2d”);
c.width=window.innerWidth; c.height=window.innerHeight; c.style.display=”block”;
let p=[];
for(let i=0;i{
ctx.fillStyle=part.color;
ctx.fillRect(part.x, part.y, 8, 8);
part.x+=part.vx; part.y+=part.vy; if(part.y>c.height) part.y=-10;
});
requestAnimationFrame(draw);
}
draw();
}
// START BUTTON CLICK
startBtn.addEventListener(“click”, ()=>{
overlay.style.display=”none”;
fireConfetti();
isScrolling = true;
// POPUP MESSAGES
const facts = [
“BOGG BAG GIVEAWAY! 👜”,
“10 Winners!”,
“NYX Holiday Makeup 💄”,
“Enter on Instagram”,
“Ends Dec 28th”,
“Good Luck!”
];
facts.forEach((txt, i) => {
let tId = setTimeout(() => {
if (!isScrolling) return; // Don’t show if stopped
popup.innerText = txt;
popup.style.display = “block”;
let hId = setTimeout(() => popup.style.display=”none”, 4500);
activeTimeouts.push(hId);
}, i * 5000);
activeTimeouts.push(tId);
});
// SLOW SCROLL
setTimeout(() => {
if (!isScrolling) return;
const startY = window.pageYOffset || document.documentElement.scrollTop;
const targetY = targetBox.getBoundingClientRect().top + startY – 20;
const distance = targetY – startY;
const duration = 30000;
let startTime = null;
function loop(currentTime) {
if (!isScrolling) return; // STOP if flag is false
if (!startTime) startTime = currentTime;
const timeElapsed = currentTime – startTime;
const run = linearTween(timeElapsed, startY, distance, duration);
window.scrollTo(0, run);
if (timeElapsed < duration) requestAnimationFrame(loop);
}
function linearTween(t, b, c, d) {
return c * t / d + b;
}
requestAnimationFrame(loop);
}, 1500);
});
});
Helpful Freebie Mom Guides
Keep going