How to Host a Lunar New Year Feast Using Costco Finds
body { font-family: ‘Open Sans’, sans-serif; line-height: 1.8; color: #4e342e; max-width: 900px; margin: 0 auto; padding: 20px; background: #fff8e1; }
/* Lunar New Year Theme */
:root {
–primary: #d32f2f; /* Lucky Red */
–secondary: #ffb300; /* Gold */
–accent: #388e3c; /* Jade Green */
–white: #ffffff;
–text: #3e2723;
–paper: #ffecb3;
}
h1 { font-family: ‘Playfair Display’, serif; font-size: 42px; font-weight: 900; color: var(–primary); margin-bottom: 20px; line-height: 1.1; letter-spacing: -1px; text-transform: uppercase; border-bottom: 4px solid var(–secondary); padding-bottom: 15px; }
h2 { font-family: ‘Playfair Display’, serif; font-size: 32px; font-weight: 800; color: var(–text); margin-top: 60px; margin-bottom: 25px; border-left: 8px solid var(–primary); padding-left: 20px; background: #fff; padding-top: 10px; padding-bottom: 10px; box-shadow: 0 4px 6px rgba(0,0,0,0.05); }
h3 { font-family: ‘Playfair Display’, serif; font-size: 26px; font-weight: 700; color: var(–accent); margin-top: 40px; margin-bottom: 15px; }
p { margin-bottom: 25px; font-size: 18px; color: #5d4037; text-align: justify; }
li { margin-bottom: 15px; font-size: 18px; color: #5d4037; }
.intro { font-size: 22px; font-weight: 500; color: var(–primary); background: var(–white); border: 2px solid var(–secondary); padding: 40px; margin: 40px 0; border-radius: 12px; box-shadow: 0 10px 30px rgba(211, 47, 47, 0.15); position: relative; }
.intro::before { content: “🧧”; position: absolute; top: -20px; left: 20px; font-size: 40px; }
/* The Bait Widget */
.giveaway-container { margin: 60px auto; max-width: 900px; }
.countdown-box { background: var(–primary); border: 4px solid var(–secondary); border-bottom: none; border-radius: 16px 16px 0 0; padding: 30px; text-align: center; color: var(–white); }
.countdown-title { color: var(–secondary); font-size: 36px; font-weight: 900; text-transform: uppercase; margin: 0 0 10px; letter-spacing: 2px; text-shadow: 2px 2px 0 rgba(0,0,0,0.2); }
.countdown-subtitle { color: #ffecb3; font-size: 16px; margin: 0 0 25px; font-weight: 700; text-transform: uppercase; letter-spacing: 3px; }
.countdown-timer { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; max-width: 600px; margin: 0 auto; }
.timer-cell { background: rgba(0,0,0,0.2); border: 2px solid var(–secondary); border-radius: 8px; padding: 20px; color: var(–white); }
.timer-num { display: block; font-size: 48px; font-weight: 900; line-height: 1; font-family: ‘Arial Black’, sans-serif; }
.timer-label { display: block; font-size: 12px; text-transform: uppercase; margin-top: 10px; font-weight: 700; color: var(–secondary); }
.giveaway-box { background: linear-gradient(180deg, #ffffff 0%, #fffde7 100%); border: 4px solid var(–primary); border-top: none; border-radius: 0 0 16px 16px; padding: 60px 40px; text-align: center; position: relative; box-shadow: 0 25px 50px rgba(211, 47, 47, 0.15); }
.giveaway-badge { position: absolute; top: -25px; right: 50%; transform: translateX(50%); background: var(–secondary); color: var(–primary); padding: 15px 50px; border-radius: 50px; font-size: 18px; font-weight: 900; text-transform: uppercase; box-shadow: 0 10px 20px rgba(0,0,0,0.2); border: 4px solid var(–white); white-space: nowrap; }
.giveaway-headline { font-size: 42px; font-weight: 900; margin: 30px 0 20px; color: var(–primary); text-transform: uppercase; letter-spacing: -1px; }
.giveaway-description { font-size: 20px; color: #555; margin: 0 auto 40px; line-height: 1.6; max-width: 750px; }
.scroll-button { display: inline-block; background: var(–primary); color: var(–white); font-size: 28px; font-weight: 900; padding: 25px 80px; border-radius: 50px; text-decoration: none; border: none; cursor: pointer; box-shadow: 0 12px 0px #b71c1c; transition: transform 0.1s, box-shadow 0.1s; text-transform: uppercase; letter-spacing: 1px; }
.scroll-button:hover { transform: translateY(4px); box-shadow: 0 8px 0px #b71c1c; }
/* Entry Section */
.entry-section { background: var(–white); border: 4px solid var(–secondary); border-radius: 12px; padding: 40px; margin-top: 60px; text-align: center; box-shadow: 0 10px 40px rgba(0,0,0,0.1); }
.entry-section h3 { color: var(–primary); font-size: 32px; font-weight: 900; margin: 0 0 30px; text-transform: uppercase; }
.final-enter-button { display: block; background: linear-gradient(to right, var(–primary), #e53935); color: var(–white); font-size: 26px; font-weight: 900; padding: 25px; border-radius: 50px; text-decoration: none; margin: 30px auto; max-width: 500px; box-shadow: 0 15px 30px rgba(211, 47, 47, 0.3); transition: transform 0.2s; text-transform: uppercase; }
.final-enter-button:hover { transform: scale(1.02); }
.recap-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 30px; margin-top: 60px; text-align: left; }
.recap-box { background: #fff8e1; border-top: 8px solid var(–accent); padding: 30px; border-radius: 8px; box-shadow: 0 5px 15px rgba(0,0,0,0.05); }
.recap-box h4 { color: var(–accent); font-size: 20px; font-weight: 900; text-transform: uppercase; margin: 0 0 20px; letter-spacing: 1px; }
.recap-box dl { font-size: 16px; line-height: 1.8; margin: 0; }
.recap-box dt { font-weight: 700; color: #000; margin-top: 15px; text-transform: uppercase; font-size: 14px; }
.recap-box dd { margin: 0; color: #555; }
/* Raw Ad Spacing */
.ad-container { margin: 60px auto; text-align: center; max-width: 100%; overflow: hidden; border: 1px dashed #d7ccc8; padding: 10px; background: #fff; }
/* CSS FIGURES */
.figure-container { margin: 50px auto; max-width: 800px; text-align: center; }
.figure-caption { font-size: 16px; color: #795548; margin-top: 15px; font-style: italic; font-weight: 600; }
/* FIGURE 1: Steamer Stack */
.steamer-stack { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; margin: 20px 0; }
.steamer-lid { width: 220px; height: 60px; background: #d7ccc8; border: 4px solid #8d6e63; border-radius: 100px 100px 10px 10px; position: relative; }
.steamer-handle { width: 40px; height: 20px; background: #8d6e63; border-radius: 20px 20px 0 0; position: absolute; top: -15px; left: 50%; transform: translateX(-50%); }
.steamer-layer { width: 220px; height: 50px; background: #efebe9; border: 4px solid #8d6e63; border-radius: 10px; position: relative; display: flex; align-items: center; justify-content: center; font-weight: bold; color: #5d4037; font-size: 14px; text-transform: uppercase; }
.steamer-layer::before { content: “”; position: absolute; top: 50%; left: 10px; width: 200px; height: 2px; background: #d7ccc8; z-index: 0; }
/* FIGURE 2: Cost Chart */
.cost-chart { display: flex; flex-direction: column; gap: 15px; background: #fff; padding: 30px; border-radius: 8px; border: 1px solid #d7ccc8; box-shadow: 0 5px 20px rgba(0,0,0,0.05); }
.cost-row { display: flex; align-items: center; }
.cost-label { width: 150px; text-align: right; padding-right: 20px; font-weight: bold; font-size: 14px; text-transform: uppercase; }
.cost-bar-container { flex-grow: 1; background: #efebe9; height: 40px; border-radius: 4px; overflow: hidden; position: relative; }
.cost-bar { height: 100%; display: flex; align-items: center; padding-left: 15px; color: #fff; font-size: 14px; font-weight: bold; }
.cb-rest { width: 90%; background: var(–primary); }
.cb-home { width: 25%; background: var(–accent); }
.cost-val { position: absolute; right: 15px; top: 50%; transform: translateY(-50%); font-weight: bold; font-size: 14px; color: #333; }
/* Popups */
.popup-message { display: none; position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); background: var(–white); border: 6px solid var(–primary); padding: 50px; font-size: 28px; font-weight: 800; color: var(–secondary); text-align: center; z-index: 10000; box-shadow: 0 40px 100px rgba(0, 0, 0, 0.4); max-width: 90%; width: 600px; border-radius: 16px; }
.skip-popup { display: none; position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); background: var(–white); border: 4px solid var(–secondary); padding: 40px 50px; text-align: center; z-index: 10001; box-shadow: 0 30px 80px rgba(0, 0, 0, 0.3); max-width: 90%; width: 550px; border-radius: 12px; }
.skip-popup-title { font-size: 30px; font-weight: 900; color: var(–primary); margin: 0 0 20px; }
.skip-yes-button { display: inline-block; background: var(–secondary); color: var(–white); font-size: 22px; font-weight: 900; padding: 18px 50px; border-radius: 6px; border: none; cursor: pointer; margin-top: 20px; text-transform: uppercase; }
🥢 Dim Sum Declassified: How to Host a Lunar New Year Feast Using Costco Finds
Lunar New Year is a time of prosperity, family, and food—lots of food. But hosting a traditional banquet can be daunting and expensive. Okami Foods is celebrating the Year of the Horse by giving away a prize pack that includes a $100 Costco Gift Card. While you enter to win the groceries, let’s explore how to turn the Costco freezer aisle into a Michelin-star experience.
The Economics of Dim Sum: Restaurant vs. Home
Dim Sum (literally “touch the heart”) is a Cantonese tradition of small, bite-sized portions served in steamer baskets. In a restaurant, these small plates add up quickly. A meal for four can easily exceed $150. However, thanks to brands like Okami and the bulk buying power of Costco, you can replicate this feast for a fraction of the cost.
Winning the $100 Costco Card in this sweepstakes essentially funds two or three massive dinner parties. The Okami Bao Buns included in the prize are a freezer staple—fluffy, savory, and ready in minutes.
The Art of the Bamboo Steamer
If you are going to eat Bao, you must steam them. While microwaves are convenient, they ruin the texture of the dough, making it chewy and tough. A traditional Bamboo Steamer is the secret weapon. It absorbs excess moisture, preventing condensation from dripping back onto the buns, ensuring they remain fluffy.
Stacking allows you to cook multiple dishes at once over a single wok of boiling water. Place items that take longer (like sticky rice) on the bottom tier, and delicate items (like shrimp dumplings) on top.
Hidden Gems in the Costco Asian Aisle
Costco has significantly expanded its Asian food selection. Beyond the Okami Bao, look for:
- Frozen Shrimp Wontons: Often found in the freezer section, these come with a soup base and are perfect for a quick lunch.
- Lap Cheong (Chinese Sausage): Available seasonally, these sweet and savory sausages are essential for fried rice.
- Abalone Sauce: A luxury ingredient often available in bulk around Lunar New Year.
- Pineapple Cakes: A traditional Taiwanese pastry that symbolizes prosperity (the word for pineapple sounds like “wealth comes” in Hokkien).
The Stanley Cup Connection
Why is a Stanley Quencher part of a Lunar New Year giveaway? Hydration is key after a salty meal! Asian cuisine is flavor-rich, often utilizing soy sauce and oyster sauce. Having a massive 40oz tumbler of water ensures you stay hydrated. The “Berry Gloss” color included in the prize perfectly matches the festive red and pink hues of the holiday.
Plus, the RayRay Lantern Jellycat plush included in the prize adds a touch of whimsy to your home decor, serving as a cute mascot for the Year of the Horse celebration.
Conclusion: Start the Year with Good Fortune
Whether you are celebrating tradition or just love good food, this giveaway is the perfect start to the Lunar New Year. Good food brings people together, and a $100 gift card makes it taste even better. Enter below!
🧧 You Made It! Enter the Giveaway Below
OFFICIAL ENTRY FORM
🏆 Prize Details
- The Gift:
- $100 Costco Gift Card
- The Food:
- Okami Garlic BBQ & Pork Bao
- The Gear:
- Stanley 40oz & Jellycat Plush
📅 Critical Dates
- Deadline:
- February 17, 2026
- Announcement:
- February 18, 2026
📋 Eligibility
- Location:
- USA Only
- Platform:
- Instagram (@okamifoods)
// Logic Variables
let scrollAnimationId = null;
let isScrolling = false;
let popupTimers = [];
const endDate = new Date(“February 17, 2026 23:59:59 PST”).getTime();
// Countdown
function updateCountdown() {
const now = new Date().getTime();
const distance = endDate – now;
if (distance < 0) {
document.getElementById("days").textContent = "00";
document.getElementById("hours").textContent = "00";
document.getElementById("minutes").textContent = "00";
document.getElementById("seconds").textContent = "00";
return;
}
const days = Math.floor(distance / (1000 * 60 * 60 * 24));
const hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
const minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
const seconds = Math.floor((distance % (1000 * 60)) / 1000);
document.getElementById("days").textContent = String(days).padStart(2, "0");
document.getElementById("hours").textContent = String(hours).padStart(2, "0");
document.getElementById("minutes").textContent = String(minutes).padStart(2, "0");
document.getElementById("seconds").textContent = String(seconds).padStart(2, "0");
}
setInterval(updateCountdown, 1000);
updateCountdown();
// Scroll Logic – SPEEDED UP to 35 seconds
function slowScrollToEntry() {
const entrySection = document.getElementById("entry-section");
const startPosition = window.pageYOffset;
const targetPosition = entrySection.offsetTop – 50;
const distance = targetPosition – startPosition;
const duration = 35000; // 35 Seconds
let startTime = null;
isScrolling = true;
function animation(currentTime) {
if (!isScrolling) return;
if (startTime === null) startTime = currentTime;
const timeElapsed = currentTime – startTime;
const progress = Math.min(timeElapsed / duration, 1);
window.scrollTo(0, startPosition + distance * progress);
if (timeElapsed {
popupTimers.push(setTimeout(() => showPopup(`popup${index + 1}`), time));
});
// Skip Popup at 18 seconds
popupTimers.push(setTimeout(() => showSkipPopup(targetPosition), 18000));
}
function showPopup(id) {
const popup = document.getElementById(id);
if (popup) {
popup.style.display = “block”;
setTimeout(() => { popup.style.display = “none”; }, 2500);
}
}
function showSkipPopup(targetPosition) {
if (!isScrolling) return;
const skipPopup = document.getElementById(“skip-popup”);
skipPopup.style.display = “block”;
const autoHide = setTimeout(() => { skipPopup.style.display = “none”; }, 5000);
document.getElementById(“skip-yes-btn”).onclick = function() {
clearTimeout(autoHide);
skipPopup.style.display = “none”;
isScrolling = false;
if (scrollAnimationId) cancelAnimationFrame(scrollAnimationId);
popupTimers.forEach(t => clearTimeout(t));
document.querySelectorAll(‘.popup-message’).forEach(p => p.style.display = ‘none’);
window.scrollTo({ top: targetPosition, behavior: ‘smooth’ });
};
}
document.getElementById(“top-enter-button”).addEventListener(“click”, function(e) {
e.preventDefault();
slowScrollToEntry();
});
Helpful Freebie Mom Guides
Keep going