{"title":"Home page","description":null,"products":[{"product_id":"wivelle-clean-canvas-automatic-brush-cleaner-dryer","title":"Wivelle Clean Canvas ( Automatic Brush Cleaner \u0026 Dryer )","description":"\u003cbody\u003e\n\n\n\u003cmeta charset=\"UTF-8\"\u003e\n\u003cmeta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\"\u003e\n\n\u003clink rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\"\u003e\n\u003clink rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin\u003e\n\n\u003clink href=\"https:\/\/fonts.googleapis.com\/css2?family=Inter:wght@300;400;500;600;700;800\u0026amp;display=swap\" rel=\"stylesheet\"\u003e\n\n\u003cstyle\u003e\n\n*{\nmargin:0;\npadding:0;\nbox-sizing:border-box;\nfont-family:Inter,sans-serif;\n}\n\nbody{\nbackground:#090909;\noverflow-x:hidden;\n}\n\n.hero{\n\nposition:relative;\nwidth:100%;\nmin-height:100vh;\n\ndisplay:flex;\njustify-content:center;\nalign-items:center;\n\npadding:80px 30px;\n\nbackground:\nradial-gradient(circle at top,#ffb8d92f 0%,transparent 40%),\nradial-gradient(circle at bottom,#ffffff15 0%,transparent 45%),\n#090909;\n\noverflow:hidden;\n\n}\n\n.hero:before{\n\ncontent:'';\n\nposition:absolute;\n\nwidth:700px;\nheight:700px;\n\nborder-radius:50%;\n\nbackground:linear-gradient(45deg,#ffffff15,#ffb8d930);\n\nfilter:blur(100px);\n\nanimation:floatGlow 10s ease-in-out infinite;\n\n}\n\n@keyframes floatGlow{\n\n0%{\ntransform:translate(-100px,-60px);\n}\n\n50%{\ntransform:translate(120px,80px);\n}\n\n100%{\ntransform:translate(-100px,-60px);\n}\n\n}\n\n.card{\n\nposition:relative;\n\nmax-width:1100px;\n\nwidth:100%;\n\npadding:70px;\n\nborder-radius:35px;\n\nbackground:rgba(255,255,255,.05);\n\nbackdrop-filter:blur(20px);\n\nborder:1px solid rgba(255,255,255,.1);\n\nbox-shadow:\n\n0 30px 80px rgba(0,0,0,.5),\n\n0 0 60px rgba(255,182,220,.08);\n\nanimation:fadeUp 1s ease;\n\noverflow:hidden;\n\n}\n\n.card:before{\n\ncontent:\"\";\n\nposition:absolute;\n\ntop:-100%;\n\nleft:-40%;\n\nwidth:70%;\n\nheight:300%;\n\nbackground:linear-gradient(\n\ntransparent,\n\nrgba(255,255,255,.2),\n\ntransparent\n\n);\n\ntransform:rotate(25deg);\n\nanimation:shine 5s linear infinite;\n\n}\n\n@keyframes shine{\n\n100%{\n\nleft:160%;\n\n}\n\n}\n\n@keyframes fadeUp{\n\nfrom{\n\nopacity:0;\n\ntransform:translateY(60px);\n\n}\n\nto{\n\nopacity:1;\n\ntransform:translateY(0);\n\n}\n\n}\n\n.brand{\n\ndisplay:inline-block;\n\npadding:10px 20px;\n\nborder-radius:50px;\n\nbackground:#ffffff12;\n\ncolor:#fff;\n\nletter-spacing:2px;\n\nfont-size:13px;\n\nmargin-bottom:25px;\n\ntext-transform:uppercase;\n\n}\n\nh1{\n\nfont-size:58px;\n\ncolor:white;\n\nline-height:1.05;\n\nmargin-bottom:15px;\n\n}\n\n.subtitle{\n\nfont-size:22px;\n\ncolor:#ffc8dd;\n\nfont-weight:600;\n\nmargin-bottom:30px;\n\n}\n\n.description{\n\ncolor:#d7d7d7;\n\nfont-size:18px;\n\nline-height:1.9;\n\nmargin-bottom:45px;\n\nmax-width:700px;\n\n}\n\n.features{\n\ndisplay:grid;\n\ngrid-template-columns:repeat(2,1fr);\n\ngap:18px;\n\nmargin-bottom:50px;\n\n}\n\n.feature{\n\nbackground:rgba(255,255,255,.05);\n\nborder:1px solid rgba(255,255,255,.08);\n\npadding:22px;\n\nborder-radius:18px;\n\ntransition:.35s;\n\ncolor:white;\n\nfont-weight:600;\n\n}\n\n.feature:hover{\n\ntransform:translateY(-8px);\n\nbackground:#ffb8d915;\n\nborder-color:#ffb8d940;\n\nbox-shadow:0 15px 40px rgba(255,182,217,.2);\n\n}\n\nbutton{\n\npadding:18px 42px;\n\nborder:none;\n\nborder-radius:60px;\n\nfont-size:18px;\n\nfont-weight:700;\n\ncursor:pointer;\n\nbackground:linear-gradient(90deg,#ffbfd9,#ffffff);\n\ncolor:#111;\n\ntransition:.4s;\n\n}\n\nbutton:hover{\n\ntransform:scale(1.05);\n\nbox-shadow:0 20px 50px rgba(255,182,217,.4);\n\n}\n\n.tagline{\n\nmargin-top:40px;\n\nfont-size:22px;\n\ncolor:white;\n\nfont-weight:700;\n\n}\n\n.tagline span{\n\ncolor:#ffbfd9;\n\n}\n\n.floating{\n\nposition:absolute;\n\nwidth:18px;\n\nheight:18px;\n\nborder-radius:50%;\n\nbackground:#ffffff25;\n\nanimation:float 8s linear infinite;\n\n}\n\n@keyframes float{\n\n0%{\n\ntransform:translateY(100vh) scale(.2);\n\nopacity:0;\n\n}\n\n50%{\n\nopacity:1;\n\n}\n\n100%{\n\ntransform:translateY(-120vh) scale(1.4);\n\nopacity:0;\n\n}\n\n}\n\n@media(max-width:900px){\n\n.card{\n\npadding:40px;\n\n}\n\nh1{\n\nfont-size:40px;\n\n}\n\n.features{\n\ngrid-template-columns:1fr;\n\n}\n\n.description{\n\nfont-size:17px;\n\n}\n\n}\n\n\u003c\/style\u003e\n\n\n\n\n\n\u003csection class=\"hero\"\u003e\n\n\u003cdiv class=\"card\"\u003e\n\n\u003cdiv class=\"brand\"\u003e\nWIVELLE™\n\u003c\/div\u003e\n\n\u003ch1\u003e\nClean Canvas™\n\u003c\/h1\u003e\n\n\u003cdiv class=\"subtitle\"\u003e\nAutomatic Makeup Brush Cleaner \u0026amp; Dryer\n\u003c\/div\u003e\n\n\u003cp class=\"description\"\u003e\n\n✨ \u003cstrong\u003eYour brushes deserve a fresh start.\u003c\/strong\u003e\u003cbr\u003e\u003cbr\u003e\n\nThe \u003cstrong\u003eWivelle Clean Canvas™\u003c\/strong\u003e uses an electric spinner to deep clean your makeup brushes in seconds—removing old makeup, bacteria, and stubborn buildup so every application feels fresh, smooth, and flawless.\n\n\u003c\/p\u003e\n\n\u003cdiv class=\"features\"\u003e\n\n\u003cdiv class=\"feature\"\u003e\n🖌 Cleaner Brushes. Flawless Blends.\n\u003c\/div\u003e\n\n\u003cdiv class=\"feature\"\u003e\n⚡ Spins Away Makeup Residue Instantly\n\u003c\/div\u003e\n\n\u003cdiv class=\"feature\"\u003e\n🌿 Helps Reduce Bacteria Buildup\n\u003c\/div\u003e\n\n\u003cdiv class=\"feature\"\u003e\n💖 Keeps Bristles Soft \u0026amp; Long-Lasting\n\u003c\/div\u003e\n\n\u003cdiv class=\"feature\"\u003e\n⏱ Deep Cleans in Seconds\n\u003c\/div\u003e\n\n\u003cdiv class=\"feature\"\u003e\n✨ Fresh Brushes. Better Makeup.\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n\n\u003cbutton\u003e\n\nShop Now →\n\n\u003c\/button\u003e\n\n\u003cdiv class=\"tagline\"\u003e\n\nBecause great makeup starts with a \u003cspan\u003eclean canvas.\u003c\/span\u003e\n\n\u003c\/div\u003e\n\n\u003c\/div\u003e\n\n\u003c\/section\u003e\n\n\u003cscript\u003e\n\nfor(let i=0;i\u003c35;i++){\n\nlet bubble=document.createElement(\"div\");\n\nbubble.className=\"floating\";\n\nbubble.style.left=Math.random()*100+\"%\";\n\nbubble.style.animationDuration=(5+Math.random()*6)+\"s\";\n\nbubble.style.animationDelay=Math.random()*5+\"s\";\n\nbubble.style.opacity=Math.random();\n\nbubble.style.width=(8+Math.random()*18)+\"px\";\n\nbubble.style.height=bubble.style.width;\n\ndocument.querySelector(\".hero\").appendChild(bubble);\n\n}\n\n\u003c\/script\u003e\n\n\n\u003c\/body\u003e","brand":"Wivelle","offers":[{"title":"Default Title","offer_id":50384987128001,"sku":null,"price":0.0,"currency_code":"ZAR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0867\/5321\/4657\/files\/wivelle-brush-cleaner-hero-shot_1783018717357.png?v=1783347119"}],"url":"https:\/\/wivelle.co.za\/collections\/frontpage.oembed","provider":"Wivelle","version":"1.0","type":"link"}