{"product_id":"novatherapy™-invisible-acne-patches","title":"NovaTherapy™ Invisible Acne Patches(720)","description":"\u003c!-- ============================================================\n     NOVATHERAPY™ — PRODUCT DESCRIPTION BLOCK\n     Paste this into Shopify: Product → Description → \u003c\/\u003e (Show HTML)\n     Everything is scoped under .nt-desc so it won't clash with your theme.\n     ============================================================ --\u003e\n\u003cdiv class=\"nt-desc\"\u003e\n  \u003cstyle\u003e\n    .nt-desc{\n      --ivory:#FAF5F1; --blush:#F4C9C9; --blush-soft:#FBE4E1;\n      --rose:#8B3A52; --sage:#93A47C; --sage-soft:#DDE5D1;\n      --ink:#2B1F26; --ink-soft:#6E5C64; --gold:#C9A66B;\n      font-family:'Helvetica Neue',Arial,sans-serif;\n      color:var(--ink);\n      max-width:720px;\n      margin:0 auto;\n    }\n    .nt-desc *{ box-sizing:border-box; }\n    .nt-desc .nt-eyebrow{\n      font-family:'Courier New',monospace;\n      font-size:11px; letter-spacing:.14em; text-transform:uppercase;\n      color:var(--rose); display:inline-flex; align-items:center; gap:8px;\n      margin-bottom:10px;\n    }\n    .nt-desc .nt-eyebrow::before{ content:\"\"; width:14px; height:1px; background:var(--rose); display:inline-block; }\n    .nt-desc h2{\n      font-size:26px; line-height:1.15; margin:0 0 14px; font-weight:600;\n    }\n    .nt-desc h2 em{ font-style:italic; color:var(--rose); }\n    .nt-desc p{ font-size:15px; line-height:1.65; color:var(--ink-soft); margin:0 0 18px; }\n\n    \/* animated patch banner *\/\n    .nt-banner{\n      position:relative;\n      height:150px;\n      border-radius:20px;\n      background:radial-gradient(120% 140% at 15% 20%, var(--blush-soft), transparent 60%),\n                 radial-gradient(120% 140% at 85% 90%, var(--sage-soft), transparent 55%),\n                 var(--ivory);\n      overflow:hidden;\n      margin-bottom:26px;\n      border:1px solid rgba(43,31,38,.06);\n    }\n    .nt-patch{\n      position:absolute; border-radius:50%;\n      background:radial-gradient(circle at 35% 30%, rgba(255,255,255,.95), rgba(255,255,255,.3) 60%);\n      border:1px solid rgba(255,255,255,.85);\n      box-shadow:0 6px 14px -4px rgba(43,31,38,.25);\n      animation:nt-float 6s ease-in-out infinite;\n    }\n    .nt-patch.n1{ width:46px;height:46px; top:20%; left:10%; }\n    .nt-patch.n2{ width:28px;height:28px; top:60%; left:28%; animation-delay:.6s; }\n    .nt-patch.n3{ width:38px;height:38px; top:15%; left:48%; animation-delay:1.1s; }\n    .nt-patch.n4{ width:24px;height:24px; top:55%; left:66%; animation-delay:.3s; }\n    .nt-patch.n5{ width:34px;height:34px; top:25%; left:82%; animation-delay:.9s; }\n    @keyframes nt-float{ 0%,100%{ transform:translateY(0);} 50%{ transform:translateY(-8px);} }\n    .nt-banner-label{\n      position:absolute; bottom:14px; left:50%; transform:translateX(-50%);\n      font-family:'Courier New',monospace; font-size:10px; letter-spacing:.12em; text-transform:uppercase;\n      background:rgba(255,255,255,.8); padding:6px 12px; border-radius:999px;\n      color:var(--rose); border:1px solid rgba(139,58,82,.15);\n    }\n\n    \/* feature chips *\/\n    .nt-features{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:26px; }\n    .nt-chip{\n      flex:1 1 150px;\n      background:#fff; border:1px solid rgba(43,31,38,.08); border-radius:14px;\n      padding:14px 16px; transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;\n    }\n    .nt-chip:hover{ transform:translateY(-3px); box-shadow:0 12px 24px -14px rgba(43,31,38,.3); border-color:var(--rose); }\n    .nt-chip .nt-chip-title{ font-size:13.5px; font-weight:700; margin-bottom:4px; }\n    .nt-chip .nt-chip-sub{ font-size:12.5px; color:var(--ink-soft); }\n\n    \/* interactive size tabs *\/\n    .nt-sizes{ margin-bottom:26px; }\n    .nt-size-tabs{ display:flex; gap:8px; margin-bottom:14px; }\n    .nt-size-tab{\n      flex:1; padding:10px 8px; text-align:center; border-radius:10px;\n      border:1.5px solid rgba(43,31,38,.12); background:#fff; cursor:pointer;\n      font-size:12.5px; font-weight:700; color:var(--ink-soft);\n      transition:border-color .25s ease, color .25s ease, background .25s ease;\n    }\n    .nt-size-tab.active{ border-color:var(--rose); color:var(--rose); background:var(--blush-soft); }\n    .nt-size-panel{\n      display:none; background:#fff; border-radius:14px; padding:16px 18px;\n      border:1px solid rgba(43,31,38,.08); font-size:13.5px; color:var(--ink-soft);\n    }\n    .nt-size-panel.active{ display:block; }\n    .nt-size-panel strong{ color:var(--ink); }\n\n    \/* day\/night mini toggle *\/\n    .nt-toggle-row{\n      display:flex; align-items:center; justify-content:center; gap:14px;\n      background:var(--blush-soft); border-radius:16px; padding:20px; margin-bottom:26px;\n      transition:background .6s ease;\n    }\n    .nt-toggle-row.night{ background:linear-gradient(135deg,#2A1830,#4A2340); }\n    .nt-toggle-row .nt-tlabel{ font-family:'Courier New',monospace; font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--ink); transition:color .4s ease; }\n    .nt-toggle-row.night .nt-tlabel{ color:var(--ivory); }\n    .nt-switch{ width:50px; height:26px; border-radius:999px; background:var(--rose); border:none; position:relative; cursor:pointer; transition:background .4s ease; }\n    .nt-switch.night{ background:var(--gold); }\n    .nt-switch::after{ content:\"\"; position:absolute; top:3px; left:3px; width:20px; height:20px; border-radius:50%; background:#fff; transition:transform .4s ease; }\n    .nt-switch.night::after{ transform:translateX(24px); }\n    .nt-toggle-row .nt-note{ font-size:12.5px; color:var(--ink-soft); transition:color .4s ease; }\n    .nt-toggle-row.night .nt-note{ color:#D8CBD2; }\n\n    \/* count-up *\/\n    .nt-count-wrap{ text-align:center; margin-bottom:6px; }\n    .nt-count{ font-size:44px; font-weight:700; color:var(--rose); line-height:1; }\n    .nt-count-wrap .nt-count-label{ font-size:12.5px; color:var(--ink-soft); margin-top:4px; }\n  \u003c\/style\u003e\n\n  \u003cspan class=\"nt-eyebrow\"\u003eNovaTherapy™ · Hydrocolloid Technology\u003c\/span\u003e\n  \u003ch2\u003eWake up to clearer, \u003cem\u003emore confident\u003c\/em\u003e skin.\u003c\/h2\u003e\n  \u003cp\u003eMeet the NovaTherapy™ Invisible Acne Patches — your everyday secret to a flawless complexion. Made with ultra-thin hydrocolloid technology, they help protect blemishes while supporting your skin's natural healing process. Virtually invisible, comfortable for both day and night wear, and available in 3 convenient sizes to target every breakout.\u003c\/p\u003e\n\n  \u003cdiv class=\"nt-banner\"\u003e\n    \u003cdiv class=\"nt-patch n1\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"nt-patch n2\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"nt-patch n3\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"nt-patch n4\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"nt-patch n5\"\u003e\u003c\/div\u003e\n    \u003cdiv class=\"nt-banner-label\"\u003eVirtually Invisible\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"nt-features\"\u003e\n    \u003cdiv class=\"nt-chip\"\u003e\n\u003cdiv class=\"nt-chip-title\"\u003e🌿 Protects \u0026amp; heals\u003c\/div\u003e\n\u003cdiv class=\"nt-chip-sub\"\u003eShields blemishes while supporting skin's natural recovery\u003c\/div\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"nt-chip\"\u003e\n\u003cdiv class=\"nt-chip-title\"\u003e☀️🌙 Day \u0026amp; night\u003c\/div\u003e\n\u003cdiv class=\"nt-chip-sub\"\u003eComfortable enough to wear under makeup or to bed\u003c\/div\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"nt-chip\"\u003e\n\u003cdiv class=\"nt-chip-title\"\u003e💕 720 per pack\u003c\/div\u003e\n\u003cdiv class=\"nt-chip-sub\"\u003eMonths of coverage across 3 sizes\u003c\/div\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"nt-sizes\"\u003e\n    \u003cdiv class=\"nt-size-tabs\"\u003e\n      \u003cdiv class=\"nt-size-tab active\" data-size=\"s\"\u003eSize S · 8mm\u003c\/div\u003e\n      \u003cdiv class=\"nt-size-tab\" data-size=\"m\"\u003eSize M · 12mm\u003c\/div\u003e\n      \u003cdiv class=\"nt-size-tab\" data-size=\"l\"\u003eSize L · 15mm\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"nt-size-panel active\" data-panel=\"s\"\u003e\n\u003cstrong\u003eSize S — 8mm.\u003c\/strong\u003e Ideal for small, early breakouts and delicate areas like the chin and nose.\u003c\/div\u003e\n    \u003cdiv class=\"nt-size-panel\" data-panel=\"m\"\u003e\n\u003cstrong\u003eSize M — 12mm.\u003c\/strong\u003e The everyday go-to for cheeks, jawline, and hormonal breakouts.\u003c\/div\u003e\n    \u003cdiv class=\"nt-size-panel\" data-panel=\"l\"\u003e\n\u003cstrong\u003eSize L — 15mm.\u003c\/strong\u003e Broader coverage for clusters or larger blemishes.\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"nt-toggle-row\" id=\"ntToggleRow\"\u003e\n    \u003cspan class=\"nt-tlabel\"\u003eDay\u003c\/span\u003e\n    \u003cbutton class=\"nt-switch\" id=\"ntSwitch\" aria-label=\"Toggle day and night\"\u003e\u003c\/button\u003e\n    \u003cspan class=\"nt-tlabel\"\u003eNight\u003c\/span\u003e\n    \u003cspan class=\"nt-note\" id=\"ntNote\"\u003eInvisible under makeup ☀️\u003c\/span\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"nt-count-wrap\"\u003e\n    \u003cdiv class=\"nt-count\" id=\"ntCount\"\u003e0\u003c\/div\u003e\n    \u003cdiv class=\"nt-count-label\"\u003epremium patches in every pack\u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cscript\u003e\n    (function(){\n      \/\/ size tabs\n      var tabs = document.querySelectorAll('.nt-size-tab');\n      var panels = document.querySelectorAll('.nt-size-panel');\n      tabs.forEach(function(tab){\n        tab.addEventListener('click', function(){\n          tabs.forEach(function(t){ t.classList.remove('active'); });\n          panels.forEach(function(p){ p.classList.remove('active'); });\n          tab.classList.add('active');\n          document.querySelector('.nt-size-panel[data-panel=\"'+tab.dataset.size+'\"]').classList.add('active');\n        });\n      });\n\n      \/\/ day\/night toggle\n      var row = document.getElementById('ntToggleRow');\n      var sw = document.getElementById('ntSwitch');\n      var note = document.getElementById('ntNote');\n      var isNight = false;\n      sw.addEventListener('click', function(){\n        isNight = !isNight;\n        row.classList.toggle('night', isNight);\n        sw.classList.toggle('night', isNight);\n        note.textContent = isNight ? 'Comfortable enough to sleep in 🌙' : 'Invisible under makeup ☀️';\n      });\n\n      \/\/ count-up on view\n      var countEl = document.getElementById('ntCount');\n      var target = 720;\n      var counted = false;\n      var obs = new IntersectionObserver(function(entries){\n        entries.forEach(function(entry){\n          if(entry.isIntersecting \u0026\u0026 !counted){\n            counted = true;\n            var start = performance.now();\n            var duration = 1200;\n            function step(now){\n              var progress = Math.min((now-start)\/duration, 1);\n              var eased = 1 - Math.pow(1-progress, 3);\n              countEl.textContent = Math.round(eased * target);\n              if(progress \u003c 1) requestAnimationFrame(step);\n            }\n            requestAnimationFrame(step);\n          }\n        });\n      }, {threshold:.6});\n      obs.observe(countEl);\n    })();\n  \u003c\/script\u003e\n\u003c\/div\u003e","brand":"NovaTherapy","offers":[{"title":"Default Title","offer_id":48487579353333,"sku":null,"price":199.0,"currency_code":"ZAR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0810\/3451\/0581\/files\/Gemini_Generated_Image_wludjzwludjzwlud.png?v=1785349535","url":"https:\/\/novatherapy.co.za\/products\/novatherapy%e2%84%a2-invisible-acne-patches","provider":"NovaTherapy","version":"1.0","type":"link"}