10% OFF - 6 MEALS PLAN (Use Code - VIETNAM10)
*{box-sizing:border-box;margin:0;padding:0} :root{ --bg:#ffffff; --bg-card:#fdf3f2; --bg-card2:#f9e6e4; --bg-pill:#fbeae9; --border:#ecdcda; --red:#cf1f1f; --red-dk:#a01818; --dark :#1a1a1a; --txt-hi:#111111; --txt-md:#333333; --txt-lo:#555555; --txt-eye:#a01818; } body{font-family:'Barlow',sans-serif;background:var(--bg);color:var(--txt-hi);line-height:1.6} .sb{width:100%;max-width:680px;margin:0 auto;background:var(--bg);color:var(--txt-hi)} .eyebrow{font-family:'Barlow Condensed',sans-serif;font-size:12px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--txt-eye);margin-bottom:10px} .heading{font-family:'Oswald',sans-serif;font-size:clamp(26px,5.5vw,40px);font-weight:700;color:var(--txt-hi);letter-spacing:0.02em;line-height:1.1;margin-bottom:16px} .lead{font-size:16px;color:var(--txt-md);line-height:1.75;font-weight:400} .lead strong{color:var(--red-dk)} .section{padding:44px 20px;border-bottom:1px solid var(--border)} /* HERO */ .hero{padding:52px 20px 44px;border-bottom:1px solid var(--border);position:relative;overflow:hidden} .hero::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 75% 40%,rgba(207,31,31,0.10) 0%,transparent 60%);pointer-events:none} .hero-eyebrow{display:inline-flex;align-items:center;gap:10px;margin-bottom:22px} .hero-eyebrow-line{width:28px;height:2px;background:var(--red);flex-shrink:0} .hero-eyebrow span{font-family:'Barlow Condensed',sans-serif;font-size:12px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--red-dk)} .hero h1{font-family:'Oswald',sans-serif;font-size:clamp(32px,10vw,56px);font-weight:700;color:var(--txt-hi);letter-spacing:0.02em;line-height:1.04;margin-bottom:20px} .hero h1 em{font-style:normal;color:var(--red)} .hero-sub{font-size:16px;color:var(--txt-md);max-width:460px;line-height:1.75} .hero-sub strong{color:var(--red-dk)} .hero-review-badge{display:inline-flex;align-items:center;gap:10px;background:var(--bg-card);border:1px solid var(--border);border-radius:999px;padding:8px 18px 8px 12px;font-size:13px;color:var(--txt-md);margin-top:22px;position:relative;text-decoration:none} .hero-review-dot{width:8px;height:8px;border-radius:50%;background:var(--red);flex-shrink:0} .hero-review-badge strong{color:var(--txt-hi)} /* SCROLLING STATS STRIP */ .stats-ticker{background:var(--red-dk);overflow:hidden;padding:0;white-space:nowrap;border-bottom:1px solid var(--border)} .stats-ticker-inner{display:inline-flex;animation:statscroll 22s linear infinite;will-change:transform;-webkit-font-smoothing:antialiased;transform:translateZ(0)} .stats-ticker-inner:hover{animation-play-state:paused} .stat-chip{display:inline-flex;align-items:center;gap:10px;padding:13px 32px;border-right:1px solid rgba(255,255,255,0.2)} .stat-chip-num{font-family:'Oswald',sans-serif;font-size:22px;font-weight:700;color:#fff;line-height:1} .stat-chip-label{font-family:'Barlow Condensed',sans-serif;font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:rgba(255,255,255,0.78);line-height:1.2} @keyframes statscroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}} @media (prefers-reduced-motion: reduce){.stats-ticker-inner{animation:none;white-space:normal;flex-wrap:wrap;justify-content:center}.stats-ticker{white-space:normal}} /* SHORT USPS */ .usp-sm{padding:32px 20px} .usp-sm img.usp-img{width:56px;height:56px;border-radius:12px;object-fit:cover;margin-bottom:14px} /* HOW IT WORKS */ .steps-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border);border-radius:4px;overflow:hidden;margin-top:32px} .step-col{background:var(--bg-card);padding:28px 22px;text-align:center} .step-circle{width:52px;height:52px;background:var(--red);color:#fff;font-family:'Oswald',sans-serif;font-size:22px;font-weight:700;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 16px} .step-col h4{font-family:'Barlow',sans-serif;font-size:17px;font-weight:800;color:var(--txt-hi);margin-bottom:8px;line-height:1.2} .step-col p{font-size:13px;color:var(--txt-md);line-height:1.6} /* DELIVERY ZONES */ .zones-block{border:1px solid var(--border);border-radius:4px;padding:20px;margin-top:24px;margin-bottom:16px;background:var(--bg-card)} .zones-label{font-family:'Barlow Condensed',sans-serif;font-size:11px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--txt-lo);margin-bottom:14px;display:block} .zones{display:flex;flex-wrap:wrap;gap:8px} .zone{font-family:'Barlow Condensed',sans-serif;font-size:12px;font-weight:600;letter-spacing:1.5px;background:var(--bg-pill);border:1px solid var(--border);color:var(--txt-md);padding:6px 14px;border-radius:3px;text-transform:uppercase} .zone.hub{background:var(--red);border-color:var(--red);color:#fff} .map-wrap{border:1px solid var(--border);border-radius:4px;overflow:hidden;margin-top:16px;background:var(--bg-card)} .map-wrap iframe{width:100%;height:280px;border:0;display:block} /* PLANS */ .plan-header{text-align:center;margin-bottom:28px} .plan-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--border);border-radius:4px;overflow:hidden;margin-bottom:16px} .plan-card{background:var(--bg-card);padding:28px 10px;text-align:center;text-decoration:none;color:inherit;display:block;transition:background 0.2s} .plan-card:hover{background:var(--bg-card2)} .plan-card.featured{background:var(--red)} .plan-card.featured:hover{background:var(--red-dk)} .plan-badge{display:inline-block;background:#fff;color:var(--red-dk);font-family:'Barlow Condensed',sans-serif;font-size:10px;font-weight:700;letter-spacing:2px;text-transform:uppercase;padding:4px 10px;border-radius:2px;margin-bottom:14px} .plan-num{font-family:'Oswald',sans-serif;font-size:clamp(38px,9vw,56px);font-weight:700;color:var(--txt-hi);line-height:1;display:block} .plan-card.featured .plan-num{color:#fff} .plan-lbl{font-family:'Barlow Condensed',sans-serif;font-size:11px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--txt-lo);margin:8px 0 14px;display:block} .plan-card.featured .plan-lbl{color:rgba(255,255,255,0.7)} .plan-desc{font-size:13px;color:var(--txt-md);line-height:1.6;margin-bottom:18px} .plan-card.featured .plan-desc{color:rgba(255,255,255,0.85)} .plan-cta{display:inline-block;font-family:'Barlow Condensed',sans-serif;font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--txt-hi);background:var(--bg-pill);border:1px solid var(--border);padding:10px 12px;border-radius:3px} .plan-card.featured .plan-cta{background:rgba(0,0,0,0.25);border-color:rgba(255,255,255,0.25);color:#fff} @media(max-width:560px){.plan-cards{grid-template-columns:1fr 1fr}} /* CONTACT FOOTER */ .contact-note{text-align:center} .contact-note h3{font-family:'Oswald',sans-serif;font-size:22px;font-weight:700;color:var(--txt-hi);margin-bottom:8px} .contact-note p{font-size:15px;color:var(--txt-md);line-height:1.7;max-width:460px;margin:0 auto} .contact-note a{color:var(--red);font-weight:700;text-decoration:underline} /* SAFETY NOTE */ .safety-note{background:var(--bg-card);border:1px solid var(--border);border-radius:6px;padding:18px 20px;font-size:13px;color:var(--txt-lo);line-height:1.6;text-align:center;margin:0 20px 0} @media(max-width:480px){ .steps-grid{grid-template-columns:1fr} .step-col{padding:20px 14px} .step-col h4{font-size:15px} .section,.hero{padding-left:16px;padding-right:16px} } @media(max-width:360px){ .step-col h4{font-size:13px} } Real Vietnamese Meal Prep Real Vietnamese Food,Delivered to Your Door in the GTA We cook real Vietnamese recipes the real way. Your food is ready to eat in minutes. We bring it to your door every week. No plan needed. No signup needed. People say our food tastes just like home in Vietnam. 32ozSoupPortions 24ozRice DishPortions 2xDeliveriesa Week 100%RealVietnamese NewMenu EveryMonday Veg & VeganOptionsAvailable 32ozSoupPortions 24ozRice DishPortions 2xDeliveriesa Week 100%RealVietnamese NewMenu EveryMonday Veg & VeganOptionsAvailable π The Chef Crafted by Chef Thi Chef Thi learned to cook in Saigon. She has over 20 years of practice making real Vietnamese food. Each one of her meals is made with love and authentic Vietnamese spices and cooking techniques. π± Big Portions Homestyle Portions Our soups, like Phα» and BΓΊn BΓ², come in a big 32oz container. Our rice dishes come in a full 24oz box. That's plenty of food to keep you full. β± Fast and Easy Slow Cooked Taste, Ready Fast Vietnamese food usually takes a long time to cook. Some dishes cook for days. We already do all that cooking for you. You just heat it up and eat in minutes. π± Plant Based Options Something For Everyone Vietnam has lots of vegetarian food too. We make full vegetarian and vegan menus. You get the same great taste, no meat needed. πΏ Good For You Balanced Food, Real Taste Vietnamese food is some of the healthiest food in the world. We use fresh herbs, lean meat, and slow cooked broth full of natural collagen. Each dish has a perfect balance of proteins, vegetables, and carbs. π Always Fresh A New Menu Every Week We make a new menu every Monday. There is always something new to try. It never gets boring. π Delivery We Bring It Right to You We deliver fresh meals every Sunday and Wednesday, from 10am to 6pm. No plan needed. No signup needed. Order whenever you want. *{box-sizing:border-box;margin:0;padding:0} :root{ --bg:#ffffff; --bg-card:#fdf3f2; --bg-card2:#f9e6e4; --bg-pill:#fbeae9; --border:#ecdcda; --red:#cf1f1f; --red-dk:#a01818; --txt-hi:#111111; --txt-md:#333333; --txt-lo:#555555; } body{font-family:'Barlow',sans-serif;background:var(--bg);color:var(--txt-hi);padding:24px} .sb{max-width:680px;margin:0 auto} .zones-label{font-family:'Barlow Condensed',sans-serif;font-size:11px;font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--txt-lo);margin-bottom:14px;display:block} .zones{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px} .zone{font-family:'Barlow Condensed',sans-serif;font-size:12px;font-weight:600;letter-spacing:1.5px;background:var(--bg-pill);border:1px solid var(--border);color:var(--txt-md);padding:6px 14px;border-radius:3px;text-transform:uppercase} .zone.hub{background:var(--red);border-color:var(--red);color:#fff} .map-wrap{border:1px solid var(--border);border-radius:4px;overflow:hidden;background:var(--bg-card)} #coverage-map{width:100%;height:420px;background:#f2f2f2} .leaflet-container{font-family:'Barlow',sans-serif} /* custom hub pin */ .hub-pin{ width:22px;height:22px;border-radius:50% 50% 50% 0; background:var(--dark,#1a1a1a); transform:rotate(-45deg); border:2px solid #fff; box-shadow:0 2px 6px rgba(0,0,0,0.35); } .hub-pin::after{ content:'';position:absolute;top:5px;left:5px;width:8px;height:8px; background:#fff;border-radius:50%; } .map-legend-note{font-size:12px;color:var(--txt-lo);text-align:center;padding:10px 12px;border-top:1px solid var(--border)} Delivery areas Toronto Mississauga Oakville Brampton Milton Etobicoke North York Markham Scarborough + Nearby Areas Shaded area shows our current delivery coverage across the GTA // ---- Base anchor points tracing the outer edge of the coverage area ---- // [lat, lng] β roughly Newmarket -> Markham -> Scarborough edge -> lakeshore // through Toronto/Mississauga/Oakville/Burlington/Hamilton -> back up the // west edge through Milton/Halton Hills/Caledon -> closing near Newmarket. const anchors = [ [44.06, -79.47], // Newmarket [44.03, -79.35], [44.00, -79.27], // north of Markham [43.93, -79.20], // Markham east edge [43.84, -79.10], // Scarborough/Pickering border (cuts off before Oshawa) [43.74, -79.14], // Scarborough Bluffs [43.66, -79.30], // Toronto harbourfront [43.60, -79.46], [43.55, -79.58], // Mississauga (Port Credit) shoreline [43.48, -79.65], // Oakville shoreline [43.40, -79.75], // Bronte / Oakville-Burlington border [43.33, -79.80], // Burlington shoreline [43.28, -79.85], // Hamilton harbour [43.23, -79.74], // Stoney Creek [43.19, -79.61], // pointed tip toward Grimsby (stops before it) [43.18, -79.78], [43.19, -79.95], // Hamilton mountain / Ancaster [43.30, -80.10], // west edge, before Cambridge [43.44, -80.02], [43.51, -79.95], // Milton west edge [43.60, -79.98], // Halton Hills / Georgetown [43.73, -79.95], // Caledon [43.86, -79.85], // Bolton [43.97, -79.65], // King City [44.03, -79.55], // Aurora [44.06, -79.47] // close loop back to Newmarket ]; // ---- Seeded PRNG so the jagged edge is stable on every load ---- function makeRand(seed){ let s = seed; return function(){ s = (s * 9301 + 49297) % 233280; return s / 233280; }; } // ---- Subdivide each edge and add tapered perpendicular jitter ---- // This turns the smooth anchor polygon into an irregular, hand-drawn / // postal-code-style boundary like the reference image. function jaggedPath(points, subdivisions, jitter, seed){ const rand = makeRand(seed); const out = []; for (let i = 0; i < points.length - 1; i++){ const [lat1, lng1] = points[i]; const [lat2, lng2] = points[i + 1]; out.push([lat1, lng1]); const dx = lat2 - lat1, dy = lng2 - lng1; const len = Math.sqrt(dx*dx + dy*dy) || 1; const px = -dy / len, py = dx / len; // unit perpendicular for (let j = 1; j < subdivisions; j++){ const t = j / subdivisions; let lat = lat1 + dx * t; let lng = lng1 + dy * t; const taper = Math.sin(Math.PI * t); // 0 at anchors, max mid-edge const offset = (rand() - 0.5) * jitter * taper; lat += px * offset; lng += py * offset; out.push([lat, lng]); } } return out; } const coveragePolygon = jaggedPath(anchors, 7, 0.05, 42); // ---- Map setup ---- const map = L.map('coverage-map', { scrollWheelZoom: false, zoomControl: true }).setView([43.62, -79.68], 9); L.tileLayer('https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}{r}.png', { attribution: 'Β© OpenStreetMap contributors Β© CARTO', subdomains: 'abcd', maxZoom: 19 }).addTo(map); L.polygon(coveragePolygon, { color: '#a01818', weight: 2, fillColor: '#cf1f1f', fillOpacity: 0.38, lineJoin: 'round' }).addTo(map); // ---- Hub marker (Mississauga) ---- const hubIcon = L.divIcon({ className: '', html: '', iconSize: [22, 22], iconAnchor: [11, 20] }); L.marker([43.5890, -79.6441], { icon: hubIcon }) .bindTooltip('Mississauga β Distribution Hub', { direction: 'top', offset: [0, -18] }) .addTo(map); // fit bounds with a little padding so the shape isn't cropped map.fitBounds(L.polygon(coveragePolygon).getBounds(), { padding: [16, 16] }); Simple Steps How It Works Four easy steps and you are eating real Vietnamese food. 1 π Pick Your Food Choose your meals from our menu. It changes every Monday. 2 π³ We Cook It Fresh Chef Tri cooks every meal using real Vietnamese recipes. 3 π We Bring It to You We deliver every Sunday and Wednesday, 10am to 6pm, across the GTA. 4 π₯’ You Enjoy Heat it up and eat in minutes. No cooking. No mess. Go Bigger Want More Than 6 Meals? Ready for the whole week? Pick a plan that fits you. 7 Meal Plan Dinner for every day of the week. Shop 7 Meals10 Meal Plan Lunch and dinner for the work week. Shop 10 Meals Best Value, Free Shipping 12 Meal Plan Lunch and dinner all week, plus one bonus meal. Shop 12 Meals15 Meal Plan Great for family dinners or a full freezer. Shop 15 Meals Please Note: All our food is made in a clean, safe kitchen. We follow strict food safety rules. Got a Question? Need help picking a plan? We are happy to help. See our Contact Page.
More you might like
Related
$10 OFF 7 MEALS PLAN (With Code - OFF10)
Related
Email Special - 6 VEG MEALS PLAN - 10% Off (USECODE VEG10)
Related
Breakfast Saver Combo (20% off), Ready under 10 minutes, 44
Related