{"product_id":"novatherapy™-glowfusion-serum","title":"NovaTherapy™ GlowFusion Serum","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\u003ctitle\u003eNovaTherapy™ GlowFusion Serum\u003c\/title\u003e\n\u003cstyle\u003e\n  @import url('https:\/\/fonts.googleapis.com\/css2?family=Fraunces:ital,opsz,wght@0,9..144,340;0,9..144,480;0,9..144,600;1,9..144,480\u0026family=Inter:wght@400;500;600\u0026family=JetBrains+Mono:wght@500\u0026display=swap');\n\n  :root{\n    --ink: #1C3D2C;\n    --ink-soft: #234A36;\n    --cream: #F7F2E7;\n    --champagne: #CBA36B;\n    --blush: #E7B9AC;\n    --sage: #86A695;\n    --aqua: #9FC9C7;\n    --citrus: #E8C34D;\n    --plum: #6B4A73;\n    --line: rgba(16,36,27,0.12);\n    --line-inv: rgba(247,242,231,0.16);\n    --radius: 2px;\n  }\n\n  *{ box-sizing:border-box; }\n  html{ scroll-behavior:smooth; }\n  body{\n    margin:0;\n    background:var(--cream);\n    color:var(--ink);\n    font-family:'Inter', sans-serif;\n    -webkit-font-smoothing:antialiased;\n  }\n  h1,h2,h3{\n    font-family:'Fraunces', serif;\n    font-weight:480;\n    margin:0;\n    letter-spacing:-0.01em;\n  }\n  .eyebrow{\n    font-family:'JetBrains Mono', monospace;\n    font-size:11px;\n    letter-spacing:0.14em;\n    text-transform:uppercase;\n    opacity:0.65;\n  }\n  a{ color:inherit; }\n  button{ font-family:inherit; cursor:pointer; }\n  :focus-visible{ outline:2px solid var(--champagne); outline-offset:3px; }\n\n  @media (prefers-reduced-motion: reduce){\n    *{ animation:none !important; transition:none !important; }\n  }\n\n  \/* ---------- NAV ---------- *\/\n  .nav{\n    position:sticky; top:0; z-index:40;\n    display:flex; align-items:center; justify-content:space-between;\n    padding:18px 6vw;\n    background:rgba(16,36,27,0.92);\n    backdrop-filter:blur(6px);\n    color:var(--cream);\n    border-bottom:1px solid var(--line-inv);\n  }\n  .nav .mark{ font-family:'Fraunces', serif; font-size:17px; letter-spacing:0.02em; }\n  .nav .mark sup{ font-size:9px; }\n  .nav ul{ list-style:none; display:flex; gap:28px; margin:0; padding:0; }\n  .nav ul a{\n    text-decoration:none; font-size:12px; letter-spacing:0.06em; text-transform:uppercase;\n    opacity:0.75; transition:opacity .2s;\n  }\n  .nav ul a:hover{ opacity:1; }\n  .nav ul{ display:none; }\n  @media(min-width:720px){ .nav ul{ display:flex; } }\n\n  \/* ---------- HERO ---------- *\/\n  .hero{\n    position:relative;\n    background:radial-gradient(120% 90% at 78% 20%, #2C5A41 0%, var(--ink) 55%, #16301F 100%);\n    color:var(--cream);\n    padding:90px 6vw 70px;\n    overflow:hidden;\n    display:grid; grid-template-columns:1.1fr 0.9fr; gap:40px; align-items:center;\n  }\n  @media(max-width:900px){ .hero{ grid-template-columns:1fr; padding-top:60px; } }\n\n  .hero-copy .eyebrow{ color:var(--champagne); opacity:1; }\n  .hero h1{\n    font-size:clamp(38px,5.4vw,64px);\n    line-height:1.02;\n    margin:14px 0 20px;\n  }\n  .hero h1 em{ font-style:italic; color:var(--blush); }\n  .hero p{\n    max-width:46ch; font-size:16px; line-height:1.65; color:rgba(247,242,231,0.78);\n    margin-bottom:30px;\n  }\n  .cta-row{ display:flex; gap:14px; flex-wrap:wrap; align-items:center; }\n  .btn-primary{\n    background:var(--champagne); color:var(--ink); border:none;\n    padding:14px 26px; font-size:13px; letter-spacing:0.06em; text-transform:uppercase;\n    border-radius:var(--radius); font-weight:600; transition:transform .2s, background .2s;\n  }\n  .btn-primary:hover{ background:#DDB57C; transform:translateY(-1px); }\n  .btn-ghost{\n    background:transparent; border:1px solid var(--line-inv); color:var(--cream);\n    padding:13px 24px; font-size:13px; letter-spacing:0.06em; text-transform:uppercase;\n    border-radius:var(--radius); transition:border-color .2s, opacity .2s;\n  }\n  .btn-ghost:hover{ border-color:var(--champagne); }\n\n  .hero-visual{ position:relative; display:flex; justify-content:center; }\n  .glow-halo{\n    position:absolute; width:320px; height:320px; border-radius:50%;\n    background:radial-gradient(circle, rgba(232,195,77,0.35), transparent 70%);\n    filter:blur(10px);\n    animation:pulse 5s ease-in-out infinite;\n  }\n  @keyframes pulse{\n    0%,100%{ transform:scale(1); opacity:0.7; }\n    50%{ transform:scale(1.12); opacity:1; }\n  }\n  .drop{\n    position:relative; width:120px; animation:float 6s ease-in-out infinite;\n  }\n  @keyframes float{\n    0%,100%{ transform:translateY(0); }\n    50%{ transform:translateY(-10px); }\n  }\n\n  \/* ---------- SECTION SHELL ---------- *\/\n  section.block{ padding:90px 6vw; }\n  .block-head{ max-width:640px; margin-bottom:48px; }\n  .block-head .eyebrow{ color:var(--sage); }\n  .block-head h2{ font-size:clamp(28px,3.6vw,40px); margin-top:10px; line-height:1.08; }\n  .block-head p{ margin-top:14px; font-size:15px; line-height:1.6; color:rgba(16,36,27,0.68); max-width:52ch; }\n\n  .reveal{ opacity:0; transform:translateY(18px); transition:opacity .7s ease, transform .7s ease; }\n  .reveal.in{ opacity:1; transform:translateY(0); }\n\n  \/* ---------- FUSION VIAL ---------- *\/\n  .fusion{ background:var(--cream); }\n  .fusion-grid{\n    display:grid; grid-template-columns:280px 1fr; gap:56px; align-items:start;\n  }\n  @media(max-width:800px){ .fusion-grid{ grid-template-columns:1fr; } }\n\n  .vial-wrap{ display:flex; justify-content:center; }\n  .vial-wrap svg{ width:220px; height:auto; }\n  .band{ cursor:pointer; transition:filter .2s, opacity .2s; stroke:var(--cream); stroke-width:1.5; }\n  .band:hover, .band.active{ filter:brightness(1.08); }\n  .band-dim{ opacity:0.35; }\n\n  .ingredient-list{ display:flex; flex-direction:column; border-top:1px solid var(--line); }\n  .ingredient-row{\n    display:grid; grid-template-columns:70px 1fr 24px; align-items:center; gap:16px;\n    padding:16px 4px; border-bottom:1px solid var(--line);\n    background:none; border-left:none; border-right:none; border-top:none;\n    text-align:left; width:100%;\n  }\n  .ingredient-row .pct{ font-family:'JetBrains Mono', monospace; font-size:15px; color:var(--champagne); }\n  .ingredient-row .name{ font-size:14px; font-weight:600; }\n  .ingredient-row .swatch{ width:12px; height:12px; border-radius:50%; display:inline-block; margin-right:8px; }\n  .ingredient-row .chev{ font-size:16px; opacity:0.4; transition:transform .2s; }\n  .ingredient-row[aria-expanded=\"true\"] .chev{ transform:rotate(45deg); }\n  .ingredient-detail{\n    max-height:0; overflow:hidden; transition:max-height .3s ease;\n    font-size:13.5px; line-height:1.6; color:rgba(16,36,27,0.7); padding:0 4px;\n  }\n  .ingredient-detail.open{ max-height:120px; padding-bottom:16px; }\n\n  \/* ---------- BENEFITS ---------- *\/\n  .benefits{ background:var(--ink); color:var(--cream); }\n  .benefits .block-head .eyebrow{ color:var(--blush); }\n  .benefits .block-head p{ color:rgba(247,242,231,0.65); }\n  .benefit-grid{\n    display:grid; grid-template-columns:repeat(3,1fr); gap:1px;\n    background:var(--line-inv); border:1px solid var(--line-inv);\n  }\n  @media(max-width:760px){ .benefit-grid{ grid-template-columns:repeat(2,1fr); } }\n  @media(max-width:480px){ .benefit-grid{ grid-template-columns:1fr; } }\n\n  .flip-card{ perspective:1000px; height:190px; background:var(--ink); }\n  .flip-inner{\n    position:relative; width:100%; height:100%; transition:transform .55s cubic-bezier(.2,.7,.3,1);\n    transform-style:preserve-3d;\n  }\n  .flip-card:hover .flip-inner, .flip-card:focus-within .flip-inner{ transform:rotateY(180deg); }\n  .flip-front, .flip-back{\n    position:absolute; inset:0; backface-visibility:hidden;\n    display:flex; flex-direction:column; justify-content:center; padding:24px;\n  }\n  .flip-front .num{ font-family:'JetBrains Mono', monospace; font-size:11px; color:var(--champagne); margin-bottom:10px; }\n  .flip-front h3{ font-size:19px; }\n  .flip-back{\n    transform:rotateY(180deg); background:#2C5A41;\n    font-size:13.5px; line-height:1.6; color:rgba(247,242,231,0.85);\n  }\n  .flip-card button.flip-front{ all:unset; position:absolute; inset:0; display:flex; flex-direction:column; justify-content:center; padding:24px; width:100%; text-align:left; color:inherit; }\n\n  \/* ---------- ROUTINE ---------- *\/\n  .routine-toggle{ display:inline-flex; border:1px solid var(--line); border-radius:var(--radius); overflow:hidden; margin-bottom:32px; }\n  .routine-toggle button{\n    background:transparent; border:none; padding:10px 22px; font-size:12px; letter-spacing:0.08em;\n    text-transform:uppercase; color:var(--ink); opacity:0.55;\n  }\n  .routine-toggle button.active{ background:var(--ink); color:var(--cream); opacity:1; }\n  .routine-steps{ display:none; }\n  .routine-steps.active{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }\n  @media(max-width:760px){ .routine-steps.active{ grid-template-columns:1fr; } }\n  .step{ border-top:2px solid var(--champagne); padding-top:16px; }\n  .step .step-eyebrow{ font-family:'JetBrains Mono', monospace; font-size:11px; opacity:0.55; }\n  .step h3{ font-size:17px; margin:8px 0 8px; }\n  .step p{ font-size:13.5px; line-height:1.6; color:rgba(16,36,27,0.68); margin:0; }\n\n  \/* ---------- TIMELINE ---------- *\/\n  .timeline{ background:#EFE9DB; }\n  .timeline-panel{ max-width:640px; }\n  .timeline-stage{ font-family:'Fraunces', serif; font-size:22px; margin:18px 0 10px; min-height:32px; }\n  .timeline-text{ font-size:15px; line-height:1.65; color:rgba(16,36,27,0.72); min-height:60px; }\n  input[type=\"range\"]{\n    width:100%; -webkit-appearance:none; height:2px; background:var(--line); margin:28px 0 10px;\n  }\n  input[type=\"range\"]::-webkit-slider-thumb{\n    -webkit-appearance:none; width:16px; height:16px; border-radius:50%;\n    background:var(--champagne); border:3px solid var(--cream); box-shadow:0 0 0 1px var(--champagne);\n    cursor:pointer; margin-top:-7px;\n  }\n  input[type=\"range\"]::-moz-range-thumb{\n    width:16px; height:16px; border-radius:50%; background:var(--champagne);\n    border:3px solid var(--cream); box-shadow:0 0 0 1px var(--champagne); cursor:pointer;\n  }\n  .tick-row{ display:flex; justify-content:space-between; font-family:'JetBrains Mono', monospace; font-size:11px; opacity:0.55; }\n\n  \/* ---------- CONCERNS ---------- *\/\n  .chip-row{ display:flex; flex-wrap:wrap; gap:10px; margin-bottom:26px; }\n  .chip{\n    border:1px solid var(--line); background:transparent; padding:9px 18px; border-radius:999px;\n    font-size:13px; color:var(--ink); opacity:0.7; transition:all .2s;\n  }\n  .chip.active{ background:var(--ink); color:var(--cream); opacity:1; border-color:var(--ink); }\n  .concern-answer{\n    border-left:2px solid var(--champagne); padding:4px 0 4px 20px; font-size:15px; line-height:1.65;\n    color:rgba(16,36,27,0.75); min-height:70px;\n  }\n\n  \/* ---------- FOOTER CTA ---------- *\/\n  .closing{\n    background:var(--ink); color:var(--cream); text-align:center; padding:100px 6vw;\n  }\n  .closing h2{ font-size:clamp(30px,4.4vw,46px); max-width:16ch; margin:0 auto 20px; }\n  .closing p{ font-size:15px; color:rgba(247,242,231,0.65); max-width:42ch; margin:0 auto 32px; }\n  .trust-row{\n    display:flex; justify-content:center; gap:34px; flex-wrap:wrap; margin-top:56px;\n    font-family:'JetBrains Mono', monospace; font-size:11px; letter-spacing:0.08em; text-transform:uppercase;\n    opacity:0.55;\n  }\n\u003c\/style\u003e\n\n\n\n\u003cnav class=\"nav\"\u003e\n  \u003cdiv class=\"mark\"\u003eNovaTherapy\u003csup\u003e™\u003c\/sup\u003e\n\u003c\/div\u003e\n  \u003cul\u003e\n    \u003cli\u003e\u003ca href=\"#benefits\"\u003eBenefits\u003c\/a\u003e\u003c\/li\u003e\n    \u003cli\u003e\u003ca href=\"#routine\"\u003eRitual\u003c\/a\u003e\u003c\/li\u003e\n    \u003cli\u003e\u003ca href=\"#results\"\u003eResults\u003c\/a\u003e\u003c\/li\u003e\n    \u003cli\u003e\u003ca href=\"#concerns\"\u003ePersonalize\u003c\/a\u003e\u003c\/li\u003e\n  \u003c\/ul\u003e\n\u003c\/nav\u003e\n\n\u003cheader class=\"hero\"\u003e\n  \u003cdiv class=\"hero-copy\"\u003e\n    \u003cdiv class=\"eyebrow\"\u003eGlowFusion Serum · Dual-Phase Complex\u003c\/div\u003e\n    \u003ch1\u003eWhere biotech\u003cbr\u003e\u003cem\u003eprecision\u003c\/em\u003e meets\u003cbr\u003ebotanical light.\u003c\/h1\u003e\n    \u003cp\u003eNovaTherapy™ GlowFusion Serum fuses five clinically dosed actives into a single amber drop — hydrating, firming, and re-lighting skin from the first application.\u003c\/p\u003e\n    \u003cdiv class=\"cta-row\"\u003e\n      \u003cbutton class=\"btn-primary\" onclick=\"document.getElementById('benefits').scrollIntoView()\"\u003eExplore the Benefits\u003c\/button\u003e\n      \u003cbutton class=\"btn-ghost\" onclick=\"document.getElementById('routine').scrollIntoView()\"\u003eSee the Ritual\u003c\/button\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"hero-visual\"\u003e\n    \u003cdiv class=\"glow-halo\"\u003e\u003c\/div\u003e\n    \u003csvg class=\"drop\" viewbox=\"0 0 100 140\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"\u003e\n      \u003cdefs\u003e\n        \u003clineargradient id=\"dropGrad\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\"\u003e\n          \u003cstop offset=\"0%\" stop-color=\"#E8C34D\"\u003e\u003c\/stop\u003e\n          \u003cstop offset=\"100%\" stop-color=\"#C9A468\"\u003e\u003c\/stop\u003e\n        \u003c\/lineargradient\u003e\n      \u003c\/defs\u003e\n      \u003cpath d=\"M50 4 C 78 46, 92 70, 92 92 A42 42 0 1 1 8 92 C 8 70, 22 46, 50 4 Z\" fill=\"url(#dropGrad)\" opacity=\"0.92\"\u003e\u003c\/path\u003e\n      \u003cellipse cx=\"38\" cy=\"80\" rx=\"10\" ry=\"16\" fill=\"#FFF7E0\" opacity=\"0.35\"\u003e\u003c\/ellipse\u003e\n    \u003c\/svg\u003e\n  \u003c\/div\u003e\n\u003c\/header\u003e\n\n\u003csection class=\"block benefits reveal\" id=\"benefits\"\u003e\n  \u003cdiv class=\"block-head\"\u003e\n    \u003cdiv class=\"eyebrow\"\u003e01 — What It Does\u003c\/div\u003e\n    \u003ch2\u003eSix results, fused into one drop.\u003c\/h2\u003e\n    \u003cp\u003eHover or tap a card to see how each active turns into something you can feel.\u003c\/p\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"benefit-grid\"\u003e\n    \u003cdiv class=\"flip-card\"\u003e\u003cdiv class=\"flip-inner\"\u003e\n      \u003cbutton class=\"flip-front\" aria-label=\"Hydration\"\u003e\u003cspan class=\"num\"\u003e01\u003c\/span\u003e\u003ch3\u003eHydration\u003c\/h3\u003e\u003c\/button\u003e\n      \u003cdiv class=\"flip-back\"\u003eMulti-weight hyaluronic acid keeps skin cushioned and plump for up to 72 hours per application.\u003c\/div\u003e\n    \u003c\/div\u003e\u003c\/div\u003e\n    \u003cdiv class=\"flip-card\"\u003e\u003cdiv class=\"flip-inner\"\u003e\n      \u003cbutton class=\"flip-front\" aria-label=\"Radiance\"\u003e\u003cspan class=\"num\"\u003e02\u003c\/span\u003e\u003ch3\u003eRadiance\u003c\/h3\u003e\u003c\/button\u003e\n      \u003cdiv class=\"flip-back\"\u003eStabilized vitamin C lifts the look of dullness, revealing a clearer, more lit-from-within tone.\u003c\/div\u003e\n    \u003c\/div\u003e\u003c\/div\u003e\n    \u003cdiv class=\"flip-card\"\u003e\u003cdiv class=\"flip-inner\"\u003e\n      \u003cbutton class=\"flip-front\" aria-label=\"Firmness\"\u003e\u003cspan class=\"num\"\u003e03\u003c\/span\u003e\u003ch3\u003eFirmness\u003c\/h3\u003e\u003c\/button\u003e\n      \u003cdiv class=\"flip-back\"\u003eTri-peptides encourage skin's own support structure, softening the look of laxity over weeks.\u003c\/div\u003e\n    \u003c\/div\u003e\u003c\/div\u003e\n    \u003cdiv class=\"flip-card\"\u003e\u003cdiv class=\"flip-inner\"\u003e\n      \u003cbutton class=\"flip-front\" aria-label=\"Barrier Repair\"\u003e\u003cspan class=\"num\"\u003e04\u003c\/span\u003e\u003ch3\u003eBarrier Repair\u003c\/h3\u003e\u003c\/button\u003e\n      \u003cdiv class=\"flip-back\"\u003eBotanical squalane reinforces the skin barrier, so actives stay locked in instead of evaporating out.\u003c\/div\u003e\n    \u003c\/div\u003e\u003c\/div\u003e\n    \u003cdiv class=\"flip-card\"\u003e\u003cdiv class=\"flip-inner\"\u003e\n      \u003cbutton class=\"flip-front\" aria-label=\"Even Tone\"\u003e\u003cspan class=\"num\"\u003e05\u003c\/span\u003e\u003ch3\u003eEven Tone\u003c\/h3\u003e\u003c\/button\u003e\n      \u003cdiv class=\"flip-back\"\u003eNiacinamide works quietly on patchiness and the look of enlarged pores with continued use.\u003c\/div\u003e\n    \u003c\/div\u003e\u003c\/div\u003e\n    \u003cdiv class=\"flip-card\"\u003e\u003cdiv class=\"flip-inner\"\u003e\n      \u003cbutton class=\"flip-front\" aria-label=\"Texture\"\u003e\u003cspan class=\"num\"\u003e06\u003c\/span\u003e\u003ch3\u003eTexture\u003c\/h3\u003e\u003c\/button\u003e\n      \u003cdiv class=\"flip-back\"\u003eThe full fusion leaves skin feeling smoother to the touch from the very first drop.\u003c\/div\u003e\n    \u003c\/div\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003csection class=\"block reveal\" id=\"routine\"\u003e\n  \u003cdiv class=\"block-head\"\u003e\n    \u003cdiv class=\"eyebrow\"\u003e02 — The Ritual\u003c\/div\u003e\n    \u003ch2\u003eBuilt for morning and night.\u003c\/h2\u003e\n    \u003cp\u003eGlowFusion works both shifts. Switch below to see how the ritual changes.\u003c\/p\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"routine-toggle\"\u003e\n    \u003cbutton class=\"active\" data-routine=\"am\"\u003eMorning\u003c\/button\u003e\n    \u003cbutton data-routine=\"pm\"\u003eNight\u003c\/button\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"routine-steps active\" data-panel=\"am\"\u003e\n    \u003cdiv class=\"step\"\u003e\n\u003cdiv class=\"step-eyebrow\"\u003eStep 01\u003c\/div\u003e\n\u003ch3\u003eCleanse\u003c\/h3\u003e\n\u003cp\u003eWash with a gentle cleanser and pat skin damp — GlowFusion absorbs best on a hydrated surface.\u003c\/p\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"step\"\u003e\n\u003cdiv class=\"step-eyebrow\"\u003eStep 02\u003c\/div\u003e\n\u003ch3\u003ePress In\u003c\/h3\u003e\n\u003cp\u003eWarm 3–4 drops between your palms and press into face and neck. Avoid rubbing to preserve the fusion.\u003c\/p\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"step\"\u003e\n\u003cdiv class=\"step-eyebrow\"\u003eStep 03\u003c\/div\u003e\n\u003ch3\u003eSeal With SPF\u003c\/h3\u003e\n\u003cp\u003eFollow with broad-spectrum sunscreen to protect the brightening work vitamin C has just started.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"routine-steps\" data-panel=\"pm\"\u003e\n    \u003cdiv class=\"step\"\u003e\n\u003cdiv class=\"step-eyebrow\"\u003eStep 01\u003c\/div\u003e\n\u003ch3\u003eDouble Cleanse\u003c\/h3\u003e\n\u003cp\u003eRemove the day fully — oil cleanse, then a water-based cleanser — so nothing blocks absorption.\u003c\/p\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"step\"\u003e\n\u003cdiv class=\"step-eyebrow\"\u003eStep 02\u003c\/div\u003e\n\u003ch3\u003eLayer On Concern\u003c\/h3\u003e\n\u003cp\u003eApply an extra drop over areas of dullness or fine lines while skin is still slightly damp.\u003c\/p\u003e\n\u003c\/div\u003e\n    \u003cdiv class=\"step\"\u003e\n\u003cdiv class=\"step-eyebrow\"\u003eStep 03\u003c\/div\u003e\n\u003ch3\u003eLock In\u003c\/h3\u003e\n\u003cp\u003eFollow with a night cream to seal the fusion in while peptides do their overnight work.\u003c\/p\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003csection class=\"block timeline reveal\" id=\"results\"\u003e\n  \u003cdiv class=\"block-head\"\u003e\n    \u003cdiv class=\"eyebrow\"\u003e03 — Over Time\u003c\/div\u003e\n    \u003ch2\u003eDrag through the timeline.\u003c\/h2\u003e\n    \u003cp\u003eWhat people typically notice as the fusion builds with consistent use.\u003c\/p\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"timeline-panel\"\u003e\n    \u003cdiv class=\"timeline-stage\" id=\"stageLabel\"\u003eDay 1\u003c\/div\u003e\n    \u003cdiv class=\"timeline-text\" id=\"stageText\"\u003eSkin feels instantly cushioned and calm, drop by drop.\u003c\/div\u003e\n    \u003cinput type=\"range\" min=\"0\" max=\"3\" value=\"0\" step=\"1\" id=\"timeSlider\" aria-label=\"Timeline\"\u003e\n    \u003cdiv class=\"tick-row\"\u003e\n\u003cspan\u003eDay 1\u003c\/span\u003e\u003cspan\u003eWeek 2\u003c\/span\u003e\u003cspan\u003eWeek 4\u003c\/span\u003e\u003cspan\u003eWeek 8\u003c\/span\u003e\n\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003csection class=\"block reveal\" id=\"concerns\"\u003e\n  \u003cdiv class=\"block-head\"\u003e\n    \u003cdiv class=\"eyebrow\"\u003e04 — Personalize\u003c\/div\u003e\n    \u003ch2\u003eTell us what you're working on.\u003c\/h2\u003e\n    \u003cp\u003eSelect a concern and we'll point to the part of the formula built for it.\u003c\/p\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"chip-row\" id=\"chipRow\"\u003e\n    \u003cbutton class=\"chip active\" data-concern=\"dehydration\"\u003eDehydration\u003c\/button\u003e\n    \u003cbutton class=\"chip\" data-concern=\"dullness\"\u003eDullness\u003c\/button\u003e\n    \u003cbutton class=\"chip\" data-concern=\"tone\"\u003eUneven Tone\u003c\/button\u003e\n    \u003cbutton class=\"chip\" data-concern=\"lines\"\u003eFine Lines\u003c\/button\u003e\n    \u003cbutton class=\"chip\" data-concern=\"barrier\"\u003eWeakened Barrier\u003c\/button\u003e\n  \u003c\/div\u003e\n  \u003cdiv class=\"concern-answer\" id=\"concernAnswer\"\u003eThree weights of hyaluronic acid saturate skin at every layer, so the feeling of tightness eases from the first press.\u003c\/div\u003e\n\u003c\/section\u003e\n\n\u003csection class=\"closing\"\u003e\n  \u003cdiv class=\"eyebrow\" style=\"color:var(--champagne);\"\u003eNovaTherapy™\u003c\/div\u003e\n  \u003ch2\u003eFuse it into your routine tonight.\u003c\/h2\u003e\n  \u003cp\u003eOne drop, five actives, a ritual that works while you sleep and shows up by morning.\u003c\/p\u003e\n  \u003cbutton class=\"btn-primary\" onclick=\"document.getElementById('benefits').scrollIntoView()\"\u003eAdd to My Routine\u003c\/button\u003e\n\u003c\/section\u003e\n\n\u003cscript\u003e\n  \/\/ Scroll reveal\n  const revealEls = document.querySelectorAll('.reveal');\n  const io = new IntersectionObserver((entries)=\u003e{\n    entries.forEach(e=\u003e{ if(e.isIntersecting){ e.target.classList.add('in'); } });\n  }, { threshold: 0.15 });\n  revealEls.forEach(el=\u003eio.observe(el));\n\n  \/\/ Fusion vial: band \u003c-\u003e ingredient row linking\n  const bands = document.querySelectorAll('.band');\n  const rows = document.querySelectorAll('.ingredient-row');\n  const details = document.querySelectorAll('.ingredient-detail');\n\n  function setActive(id){\n    bands.forEach(b=\u003e{\n      b.classList.toggle('active', b.dataset.id === id);\n      b.classList.toggle('band-dim', id \u0026\u0026 b.dataset.id !== id);\n    });\n    rows.forEach(r=\u003e{\n      const isMatch = r.dataset.id === id;\n      r.setAttribute('aria-expanded', isMatch ? 'true' : 'false');\n    });\n    details.forEach(d=\u003e{\n      d.classList.toggle('open', d.dataset.detail === id);\n    });\n  }\n\n  let openId = null;\n  function toggle(id){\n    openId = (openId === id) ? null : id;\n    setActive(openId);\n  }\n\n  bands.forEach(b=\u003e b.addEventListener('click', ()=\u003e toggle(b.dataset.id)) );\n  rows.forEach(r=\u003e r.addEventListener('click', ()=\u003e toggle(r.dataset.id)) );\n\n  \/\/ Routine toggle\n  const routineBtns = document.querySelectorAll('.routine-toggle button');\n  const routinePanels = document.querySelectorAll('.routine-steps');\n  routineBtns.forEach(btn=\u003e{\n    btn.addEventListener('click', ()=\u003e{\n      routineBtns.forEach(b=\u003eb.classList.remove('active'));\n      btn.classList.add('active');\n      const target = btn.dataset.routine;\n      routinePanels.forEach(p=\u003e p.classList.toggle('active', p.dataset.panel === target));\n    });\n  });\n\n  \/\/ Timeline slider\n  const stages = [\n    { label:'Day 1', text:'Skin feels instantly cushioned and calm, drop by drop.' },\n    { label:'Week 2', text:'Tone starts to look more even, texture noticeably softer to the touch.' },\n    { label:'Week 4', text:'The look of fine lines softens, and radiance builds with every application.' },\n    { label:'Week 8', text:'Skin looks re-densified and luminous — fully fused with the formula.' }\n  ];\n  const slider = document.getElementById('timeSlider');\n  const stageLabel = document.getElementById('stageLabel');\n  const stageText = document.getElementById('stageText');\n  slider.addEventListener('input', ()=\u003e{\n    const s = stages[slider.value];\n    stageLabel.textContent = s.label;\n    stageText.textContent = s.text;\n  });\n\n  \/\/ Concern chips\n  const chips = document.querySelectorAll('.chip');\n  const concernAnswer = document.getElementById('concernAnswer');\n  const concernCopy = {\n    dehydration: \"Three weights of hyaluronic acid saturate skin at every layer, so the feeling of tightness eases from the first press.\",\n    dullness: \"Stabilized vitamin C targets the look of tired, flat skin, helping restore a brighter, more awake finish.\",\n    tone: \"Niacinamide works on patchiness and blotchiness with consistent use, evening out skin's overall appearance.\",\n    lines: \"The tri-peptide complex encourages skin's own support structure, softening the look of fine lines over weeks.\",\n    barrier: \"Botanical squalane reinforces the skin barrier so moisture — and every other active — stays exactly where it's needed.\"\n  };\n  chips.forEach(chip=\u003e{\n    chip.addEventListener('click', ()=\u003e{\n      chips.forEach(c=\u003ec.classList.remove('active'));\n      chip.classList.add('active');\n      concernAnswer.textContent = concernCopy[chip.dataset.concern];\n    });\n  });\n\u003c\/script\u003e\n\n\n\u003c\/body\u003e","brand":"NovaTherapy","offers":[{"title":"Default Title","offer_id":48558895825141,"sku":null,"price":299.0,"currency_code":"ZAR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0810\/3451\/0581\/files\/seyhze-serum-premium-editorial.png?v=1786450349","url":"https:\/\/novatherapy.co.za\/products\/novatherapy%e2%84%a2-glowfusion-serum","provider":"NovaTherapy","version":"1.0","type":"link"}