{"product_id":"viral-gains-pack","title":"VIRAL Gains Bundle","description":"\u003cstyle\u003e.vgp{--s:#e9edf2;--m:#aab3bd;--l:rgba(225,232,240,.22);color:var(--s);font-family:inherit;line-height:1.55;margin:0 0 8px} .vgp *{box-sizing:border-box} .vgp-card{position:relative;overflow:hidden;border:1px solid rgba(225,232,240,.28);border-radius:22px;padding:24px;background:linear-gradient(145deg,#0a0c0f,#16191e);box-shadow:0 18px 40px rgba(0,0,0,.3),inset 0 1px 0 rgba(255,255,255,.14);margin-bottom:12px} .vgp-card::before{content:\"\";position:absolute;top:-60%;left:-40%;width:40%;height:220%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.07),transparent);transform:rotate(18deg);animation:vgpSweep 6s ease-in-out infinite;pointer-events:none;z-index:0} .vgp-card\u003e*{position:relative;z-index:1} .vgp-k{display:inline-flex;align-items:center;gap:8px;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:#c8d0d9;margin:0 0 10px} .vgp-k i{width:7px;height:7px;border-radius:50%;background:#c9a66d;box-shadow:0 0 0 0 rgba(201,166,109,.6);animation:vgpPing 2s infinite} .vgp-h{margin:0 0 10px;font-size:clamp(24px,4.4vw,32px);line-height:1.06;letter-spacing:-.02em;font-weight:700;overflow-wrap:anywhere;background:linear-gradient(100deg,#9aa1a8 0%,#ffffff 30%,#b9c0c7 50%,#ffffff 70%,#9aa1a8 100%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:vgpShine 5s linear infinite} .vgp-lead{margin:0;color:#c3cad2;font-size:15px;max-width:52ch} .vgp-in{animation:vgpUp .8s cubic-bezier(.2,.7,.2,1) both;animation-delay:var(--d,0s)} .vgp-t{margin:22px 0 10px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#9fa8b2} .vgp-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:20px} .vgp-step{position:relative;text-align:center;padding:16px 8px 14px;border:1px solid var(--l);border-radius:16px;background:linear-gradient(160deg,rgba(255,255,255,.07),rgba(255,255,255,.015));transition:transform .3s,border-color .3s} .vgp-step:hover{transform:translateY(-3px);border-color:rgba(233,237,242,.5)} .vgp-step svg{width:42px;height:42px;display:block;margin:0 auto 8px;overflow:visible} .vgp-step b{display:block;font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:#f3f5f7} .vgp-step span{display:block;font-size:12px;color:var(--m);margin-top:3px} .vgp-step:not(:last-child)::after{content:\"\";position:absolute;top:36px;right:-9px;width:8px;height:2px;background:linear-gradient(90deg,#c9a66d,transparent);animation:vgpFlow 1.6s ease-in-out infinite} .vgp-tilt{transform-origin:24px 30px;animation:vgpTilt 2.4s ease-in-out infinite} .vgp-drop{animation:vgpDrop 1.6s cubic-bezier(.5,0,.5,1) infinite} .vgp-spin{transform-origin:24px 26px;animation:vgpSpin 1.1s linear infinite} .vgp-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px} .vgp-f{padding:15px 14px;border:1px solid var(--l);border-radius:16px;background:rgba(255,255,255,.03);transition:transform .3s,border-color .3s,background .3s} .vgp-f:hover{transform:translateY(-3px);border-color:rgba(233,237,242,.5);background:rgba(255,255,255,.06)} .vgp-f em{display:block;font-style:normal;font-size:20px;margin-bottom:6px;color:#c9a66d} .vgp-f b{display:block;font-size:13.5px;color:#f3f5f7;margin-bottom:3px} .vgp-f span{display:block;font-size:12.5px;color:var(--m);line-height:1.45} .vgp-val{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:12px 0;padding:16px 18px;border:1px solid rgba(201,166,109,.45);border-radius:16px;background:linear-gradient(135deg,rgba(201,166,109,.10),rgba(201,166,109,.02))} .vgp-val p{margin:0;color:#c3cad2;font-size:13.5px} .vgp-val s{color:#8f969c} .vgp-val strong{font-size:22px;color:#e1c28e;letter-spacing:-.01em} .vgp-acc{border:1px solid var(--l);border-radius:14px;background:rgba(255,255,255,.025);margin:0 0 8px;overflow:hidden;transition:border-color .25s} .vgp-acc[open]{border-color:rgba(233,237,242,.45)} .vgp-acc summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;font-weight:600;font-size:14px;color:#eef1f4} .vgp-acc summary::-webkit-details-marker{display:none} .vgp-acc summary::after{content:\"+\";font-size:20px;line-height:1;color:#c9d0d7;transition:transform .3s} .vgp-acc[open] summary::after{transform:rotate(45deg)} .vgp-acc div{padding:0 16px 14px;color:var(--m);font-size:13.5px;animation:vgpUp .45s both} .vgp-acc div p{margin:0 0 6px} @keyframes vgpUp{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}} @keyframes vgpShine{to{background-position:-220% 0}} @keyframes vgpSweep{0%,55%{left:-40%}100%{left:130%}} @keyframes vgpPing{0%{box-shadow:0 0 0 0 rgba(201,166,109,.55)}80%,100%{box-shadow:0 0 0 9px rgba(201,166,109,0)}} @keyframes vgpFlow{0%,100%{opacity:.2}50%{opacity:1}} @keyframes vgpTilt{0%,100%{transform:rotate(0)}50%{transform:rotate(-8deg)}} @keyframes vgpDrop{0%{transform:translateY(-6px);opacity:0}25%{opacity:1}60%,100%{transform:translateY(7px);opacity:0}} @keyframes vgpSpin{to{transform:rotate(360deg)}} @supports (animation-timeline:view()){.vgp-in{animation:vgpUp linear both;animation-timeline:view();animation-range:entry 0% entry 55%}} @media(max-width:749px){.vgp-card{padding:20px;border-radius:18px}.vgp-grid{grid-template-columns:repeat(2,1fr)}.vgp-step b{font-size:12px}.vgp-step span{font-size:11px}} @media(max-width:380px){.vgp-steps{gap:6px}.vgp-step{padding:12px 5px}.vgp-step b{font-size:10px}.vgp-step span{font-size:10px}} @media(prefers-reduced-motion:reduce){.vgp *,.vgp *::before,.vgp *::after{animation:none!important;transition:none!important}}\u003c\/style\u003e\n\u003cdiv class=\"vgp\"\u003e\n\u003csection class=\"vgp-card\"\u003e\n\u003cp class=\"vgp-k vgp-in\"\u003e\u003ci aria-hidden=\"true\"\u003e\u003cbr\u003e\u003c\/i\u003eWeigh. Pour. Blend.\u003c\/p\u003e\n\u003ch2 class=\"vgp-h vgp-in\" style=\"--d: .08s;\"\u003eVIRAL GAINS BUNDLE\u003c\/h2\u003e\n\u003cp class=\"vgp-lead vgp-in\" style=\"--d: .16s;\"\u003eYour gym-day essentials, elevated. One VIRAL Portable Blender, one precise Digital Spoon Scale, the digital VIRAL Blender Recipe Book, and a \u003cstrong\u003eFREE NPL Creatine Monohydrate 150 g (30 servings)\u003c\/strong\u003e. Pick your blender and spoon-scale colours; the book and creatine are included with every combination.\u003c\/p\u003e\n\u003cdiv class=\"vgp-steps\"\u003e\n\u003cdiv class=\"vgp-step vgp-in\" style=\"--d: .24s;\"\u003e\n\u003csvg viewbox=\"0 0 48 48\" fill=\"none\" stroke=\"#e9edf2\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cg class=\"vgp-tilt\"\u003e\u003cellipse cx=\"16\" cy=\"15\" rx=\"8\" ry=\"10\" transform=\"rotate(-40 16 15)\"\u003e\u003c\/ellipse\u003e\u003cpath d=\"M22 23l16 17\"\u003e\u003c\/path\u003e\u003c\/g\u003e\u003c\/svg\u003e\u003cb\u003eWeigh\u003c\/b\u003e\u003cspan\u003eExact grams, every scoop.    \u003cbr\u003e\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"vgp-step vgp-in\" style=\"--d: .24s;\"\u003e\u003cspan\u003e\u003cspan style=\"color: rgb(243, 245, 247); font-size: 12px; letter-spacing: 0.12em; text-transform: uppercase; font-weight: bold; font-family: inherit; display: inline !important;\"\u003ePour\u003c\/span\u003e\u003c\/span\u003e\u003c\/div\u003e\n\u003cdiv class=\"vgp-step vgp-in\" style=\"--d: .40s;\"\u003e\n\u003csvg viewbox=\"0 0 48 48\" fill=\"none\" stroke=\"#e9edf2\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003crect x=\"14\" y=\"8\" width=\"20\" height=\"34\" rx=\"5\"\u003e\u003c\/rect\u003e\u003cpath d=\"M14 15h20M14 35h20\"\u003e\u003c\/path\u003e\u003cg class=\"vgp-spin\"\u003e\u003cpath d=\"M24 26l-5-3M24 26l5 3M24 26l3-5M24 26l-3 5\"\u003e\u003c\/path\u003e\u003c\/g\u003e\u003c\/svg\u003e\u003cb\u003eBlend\u003c\/b\u003e\u003cspan\u003eSmooth shake in seconds\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/section\u003e\n\u003cdiv class=\"vgp-val vgp-in\"\u003e\n\u003cp\u003e\u003cb\u003eMore in every bundle.\u003c\/b\u003e\u003cbr\u003eCombined individual reference value: \u003cs\u003eR1,438\u003c\/s\u003e\u003cbr\u003e\u003csmall\u003eBlender R699 · Spoon Scale R389 · Recipe Book R150 · Creatine approximately R200\u003c\/small\u003e\u003c\/p\u003e\n\u003cstrong\u003eR885 · SAVE R553\u003c\/strong\u003e\n\u003c\/div\u003e\n\u003cp class=\"vgp-t vgp-in\"\u003eWhy you'll love it\u003c\/p\u003e\n\u003cdiv class=\"vgp-grid\"\u003e\n\u003cdiv class=\"vgp-f vgp-in\" style=\"--d: .05s;\"\u003e\n\u003cem aria-hidden=\"true\"\u003e⚖\u003c\/em\u003e\u003cb\u003eExact scoops\u003c\/b\u003e\u003cspan\u003eThe spoon scale reads to 0.1 g, so no more guessing.\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"vgp-f vgp-in\" style=\"--d: .19s;\"\u003e\n\u003cem aria-hidden=\"true\"\u003e⚡\u003c\/em\u003e\u003cb\u003eSmooth shakes\u003c\/b\u003e\u003cspan\u003eUSB-rechargeable blender with stainless steel blades.\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"vgp-f vgp-in\" style=\"--d: .26s;\"\u003e\n\u003cem aria-hidden=\"true\"\u003e◈\u003c\/em\u003e\u003cb\u003eFREE creatine\u003c\/b\u003e\u003cspan\u003eNPL Creatine Monohydrate 150 g, unflavoured, with 30 servings.\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"vgp-f vgp-in\" style=\"--d: .33s;\"\u003e\n\u003cem aria-hidden=\"true\"\u003e▧\u003c\/em\u003e\u003cb\u003eRecipe inspiration\u003c\/b\u003e\u003cspan\u003e30 authentic VIRAL blender recipes in one digital recipe book.\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cp class=\"vgp-t vgp-in\"\u003eGood to know\u003c\/p\u003e\n\u003cdetails class=\"vgp-acc vgp-in\" open=\"\"\u003e\n\u003csummary\u003eExactly what's in your pack?\u003c\/summary\u003e\n\u003cdiv\u003e\n\u003cp\u003e\u003cstrong\u003e1 × VIRAL Portable Blender\u003c\/strong\u003e in Green, Purple, Black or White.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003e1 × VIRAL Digital Spoon Scale\u003c\/strong\u003e in Black or White.\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003e1 × NPL Creatine Monohydrate 150 g — FREE\u003c\/strong\u003e, unflavoured (30 servings).\u003c\/p\u003e\n\u003cp\u003e\u003cstrong\u003e1 × VIRAL Blender Recipe Book\u003c\/strong\u003e, digital edition featuring 30 recipes (provided as a download, not a printed book).\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails class=\"vgp-acc vgp-in\"\u003e\n\u003csummary\u003eHow do I choose my colours?\u003c\/summary\u003e\n\u003cdiv\u003e\n\u003cp\u003eUse the \u003cstrong\u003eBlender colour\u003c\/strong\u003e \u0026amp; \u003cstrong\u003eSpoon scale colour \u003c\/strong\u003e selectors above before adding your pack to cart.\u003c\/p\u003e\n\u003cp\u003eMatch everything or mix it up. All eight colour combinations include the same four items. The creatine and digital recipe book have no separate options.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails class=\"vgp-acc vgp-in\"\u003e\n\u003csummary\u003eA simple routine, from home to gym\u003c\/summary\u003e\n\u003cdiv\u003e\n\u003cp\u003eHold the spoon scale level, tare it to zero and add your powder until the display shows the weight you need. Pour it into the blender, add your liquid, close the lid and blend.\u003c\/p\u003e\n\u003cp\u003eFollow your supplement's label for serving amounts.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails class=\"vgp-acc vgp-in\"\u003e\n\u003csummary\u003eSpoon scale: battery and first use\u003c\/summary\u003e\n\u003cdiv\u003e\n\u003cp\u003eThe spoon scale displays weight in 0.1 g increments, with a maximum capacity of 500 g. Tare resets the reading and HOLD locks it.\u003c\/p\u003e\n\u003cp\u003eIt uses a replaceable CR2032 button battery and is not rechargeable. Remove the battery insulating strip before first use.\u003c\/p\u003e\n\u003cp\u003eHold the handle level while weighing; it is not designed to weigh while resting on a counter.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails class=\"vgp-acc vgp-in\"\u003e\n\u003csummary\u003eCharging and cleaning\u003c\/summary\u003e\n\u003cdiv\u003e\n\u003cp\u003eCharge the blender with its USB-C cable, then blend wherever you are.\u003c\/p\u003e\n\u003cp\u003eTo clean, blend some warm water and a drop of dish soap for a few seconds, then rinse.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails class=\"vgp-acc vgp-in\"\u003e\n\u003csummary\u003eDelivery\u003c\/summary\u003e\n\u003cdiv\u003e\n\u003cp\u003eFree delivery anywhere in South Africa. Green and Purple packs arrive in 3–7 business days, Black and White in 3–10 business days. The digital recipe book is supplied separately from the physical parcel.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003c\/div\u003e","brand":"VIRAL","offers":[{"title":"Green \/ Black","offer_id":68142915944740,"sku":null,"price":885.0,"currency_code":"ZAR","in_stock":true},{"title":"Green \/ White","offer_id":68143091777828,"sku":null,"price":885.0,"currency_code":"ZAR","in_stock":true},{"title":"Purple \/ Black","offer_id":68142915977508,"sku":null,"price":885.0,"currency_code":"ZAR","in_stock":true},{"title":"Purple \/ White","offer_id":68143091876132,"sku":null,"price":885.0,"currency_code":"ZAR","in_stock":true},{"title":"Black \/ Black","offer_id":68142916010276,"sku":null,"price":885.0,"currency_code":"ZAR","in_stock":true},{"title":"Black \/ White","offer_id":68143091974436,"sku":null,"price":885.0,"currency_code":"ZAR","in_stock":true},{"title":"White \/ Black","offer_id":68142916043044,"sku":null,"price":885.0,"currency_code":"ZAR","in_stock":true},{"title":"White \/ White","offer_id":68143092072740,"sku":null,"price":885.0,"currency_code":"ZAR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1027\/6139\/8564\/files\/409AB35E-23BA-47E6-B0E4-DD13A381B337.png?v=1794401971","url":"https:\/\/viral-store.co.za\/products\/viral-gains-pack","provider":"VIRAL","version":"1.0","type":"link"}