{"product_id":"f-one-rocket-sup-dw-pro-carbon","title":"F-One ROCKET SUP DW PRO CARBON","description":"\u003ch3\u003eIt's all downwind from here\u003c\/h3\u003e\u003chr style=\"max-width: 600px; margin: 1rem 0 !important;\"\u003eExperience the stoke and freedom of downwinders with F-ONE’s new ROCKET SUP DW PRO CARBON board. Thanks to its optimized sleek design and carbon construction, get up on your foil faster than ever and experience the pure bliss of flying above the swell for hours on end\n\u003cul\u003e\n    \u003cli\u003eIncredibly efficient and fast take-offs\u003c\/li\u003e\n    \u003cli\u003eSuperb stability at all times\u003c\/li\u003e\n    \u003cli\u003eImmense glide and speed\u003c\/li\u003e\n    \u003cli\u003eControlled front\/back leg balance\u003c\/li\u003e\n    \u003cli\u003eControl and maneuverability even at high speeds\u003c\/li\u003e\n\u003c\/ul\u003e\u003cstyle\u003e\n    .progress-container {\n        display: flex;\n        justify-content: space-between;\n        background-color: #f9f9f9;\n        padding: 40px 25px 60px 25px;\n    }\n    .progress-ring {\n        width: 150px;\n        height: 150px;\n        position: relative;\n        text-align: center;\n    }\n    .progress-ring circle {\n        fill: transparent;\n        stroke: #ff6800;\n        stroke-width: 15;\n        transform: rotate(-90deg);\n        transform-origin: 50% 50%;\n        transition: stroke-dashoffset 0.5s;\n    }\n    .progress-ring .ring-background {\n        fill: transparent;\n        stroke: #ccc;\n        stroke-width: 15;\n        transform: rotate(-90deg);\n        transform-origin: 50% 50%;\n    }\n    .progress-text {\n        position: absolute;\n        top: 50%;\n        left: 50%;\n        transform: translate(-50%, -50%);\n        font-size: 24px;\n    }\n    .progress-title {\n        font-size: 20px;\n        color: black;\n        margin-top: 10px;\n    }\n    @media (max-width: 768px) {\n        .progress-container {\n            flex-direction: column;\n            align-items: center;\n        }\n        .progress-ring {\n            margin-bottom: 50px;\n        }\n    }\n\u003c\/style\u003e\n\u003ch3\u003ePERFORMANCE\u003c\/h3\u003e\n\u003chr style=\"border: none; border-top: 1px solid #B3B3B3; width: 30%; margin: 0 0 20px 0;\"\u003e\n\n\u003cdiv class=\"progress-container\"\u003e\n    \u003cdiv class=\"progress-ring\" id=\"ring1\" data-progress=\"100\"\u003e\n        \u003csvg width=\"150\" height=\"150\"\u003e\n            \u003ccircle class=\"ring-background\" cx=\"75\" cy=\"75\" r=\"65\"\u003e\u003c\/circle\u003e\n            \u003ccircle class=\"ring\" cx=\"75\" cy=\"75\" r=\"65\"\u003e\u003c\/circle\u003e\n        \u003c\/svg\u003e\n        \u003cdiv class=\"progress-title\"\u003eTake Off\u003c\/div\u003e\n        \u003cdiv class=\"progress-text\" id=\"progress1\"\u003e0%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"progress-ring\" id=\"ring2\" data-progress=\"80\"\u003e\n        \u003csvg width=\"150\" height=\"150\"\u003e\n            \u003ccircle class=\"ring-background\" cx=\"75\" cy=\"75\" r=\"65\"\u003e\u003c\/circle\u003e\n            \u003ccircle class=\"ring\" cx=\"75\" cy=\"75\" r=\"65\"\u003e\u003c\/circle\u003e\n        \u003c\/svg\u003e\n        \u003cdiv class=\"progress-title\"\u003eCarving\u003c\/div\u003e\n        \u003cdiv class=\"progress-text\" id=\"progress2\"\u003e0%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"progress-ring\" id=\"ring3\" data-progress=\"100\"\u003e\n        \u003csvg width=\"150\" height=\"150\"\u003e\n            \u003ccircle class=\"ring-background\" cx=\"75\" cy=\"75\" r=\"65\"\u003e\u003c\/circle\u003e\n            \u003ccircle class=\"ring\" cx=\"75\" cy=\"75\" r=\"65\"\u003e\u003c\/circle\u003e\n        \u003c\/svg\u003e\n        \u003cdiv class=\"progress-title\"\u003ePumping\u003c\/div\u003e\n        \u003cdiv class=\"progress-text\" id=\"progress3\"\u003e0%\u003c\/div\u003e\n    \u003c\/div\u003e\n    \u003cdiv class=\"progress-ring\" id=\"ring4\" data-progress=\"90\"\u003e\n        \u003csvg width=\"150\" height=\"150\"\u003e\n            \u003ccircle class=\"ring-background\" cx=\"75\" cy=\"75\" r=\"65\"\u003e\u003c\/circle\u003e\n            \u003ccircle class=\"ring\" cx=\"75\" cy=\"75\" r=\"65\"\u003e\u003c\/circle\u003e\n        \u003c\/svg\u003e\n        \u003cdiv class=\"progress-title\"\u003eStability\u003c\/div\u003e\n        \u003cdiv class=\"progress-text\" id=\"progress4\"\u003e0%\u003c\/div\u003e\n    \u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n    document.addEventListener(\"DOMContentLoaded\", function() {\n        function animateProgress(ringId, from, to, duration) {\n            const ring = document.querySelector(`#ring${ringId} .ring`);\n            const text = document.getElementById(`progress${ringId}`);\n            const title = document.querySelector(`#ring${ringId} .progress-title`);\n            const circumference = 2 * Math.PI * 65; \/\/ Hardcoding the radius as 65 for this example\n            const increment = (to - from) \/ (duration * 60);\n            let current = from;\n\n            function update() {\n                if ((increment \u003e 0 \u0026\u0026 current \u003c to) || (increment \u003c 0 \u0026\u0026 current \u003e to)) {\n                    const offset = circumference - (current \/ 100) * circumference;\n                    ring.style.strokeDasharray = `${circumference} ${circumference}`;\n                    ring.style.strokeDashoffset = offset;\n                    text.textContent = `${Math.round(current)}%`;\n\n                    current += increment;\n                    requestAnimationFrame(update);\n                } else {\n                    const offset = circumference - (to \/ 100) * circumference;\n                    ring.style.strokeDashoffset = offset;\n                    text.textContent = `${to}%`;\n                }\n            }\n\n            update();\n        }\n\n        function handleIntersection(entries, observer) {\n            entries.forEach((entry) =\u003e {\n                if (entry.isIntersecting) {\n                    const ringId = entry.target.id.replace('ring', '');\n                    const from = 0;\n                    const to = parseInt(entry.target.getAttribute('data-progress'), 10);\n                    animateProgress(ringId, from, to, 2);\n                    observer.unobserve(entry.target);\n                }\n            });\n        }\n\n        const rings = document.querySelectorAll('.progress-ring');\n\n        const observer = new IntersectionObserver(handleIntersection, {\n            root: null,\n            rootMargin: '0px',\n            threshold: 0.2 \/\/ Adjust this threshold as needed\n        });\n\n        rings.forEach((ring) =\u003e {\n            observer.observe(ring);\n        });\n    });\n\u003c\/script\u003e","brand":"F-One","offers":[{"title":"90L","offer_id":50619929952593,"sku":"SS25-77258-0903-7.0","price":2669.0,"currency_code":"EUR","in_stock":false},{"title":"95L","offer_id":50619929985361,"sku":"SS25-77258-0903-7.2","price":2719.0,"currency_code":"EUR","in_stock":false},{"title":"102L","offer_id":50619930018129,"sku":"SS25-77258-0903-7.4","price":2727.99,"currency_code":"EUR","in_stock":false},{"title":"110L","offer_id":50619930050897,"sku":"SS25-77258-0903-7.6","price":2789.0,"currency_code":"EUR","in_stock":false},{"title":"120L","offer_id":50619930083665,"sku":"SS25-77258-0903-7.8","price":2797.99,"currency_code":"EUR","in_stock":false},{"title":"130L","offer_id":50619930116433,"sku":"SS25-77258-0903-7.10","price":2817.99,"currency_code":"EUR","in_stock":false},{"title":"140L","offer_id":50619930149201,"sku":"SS25-77258-0903-8.2","price":2857.99,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0512\/0838\/8795\/files\/rocket-sup-downwind-pro-650x650.jpg?v=1740061870","url":"https:\/\/www.billy.be\/products\/f-one-rocket-sup-dw-pro-carbon","provider":"Billy.be","version":"1.0","type":"link"}