{"product_id":"joyride-deluxe-upgrade-kit","title":"Joyride Deluxe Upgrade Kit","description":"\u003c!-- =====================================================\n     JOYRIDE DELUXE TOKENS — BLOCK 1\n     FroGames | Shopify Theme Concept\n     ===================================================== --\u003e\n\u003cdiv class=\"jdt1-wrap\"\u003e\n\u003c!-- COVER --\u003e\n\u003cdiv class=\"jdt1-cover\"\u003e\n\u003cimg loading=\"eager\" class=\"jdt1-cover-img\" alt=\"Joyride Deluxe Tokens upgrade kit premium plastic tokens for Joyride games - Rebellion Unplugged\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0887\/8905\/7863\/files\/Joyride_Deluxe_Upgrade_Kit_000.webp\"\u003e\n\u003cdiv class=\"jdt1-cover-fade\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"jdt1-cover-content\"\u003e\n\u003cp class=\"jdt1-kicker\"\u003eFroGames — Moments You'll Remember\u003c\/p\u003e\n\u003cp class=\"jdt1-sub\"\u003eEvery token you flick across the table should be as beautiful as the game you're playing.\u003c\/p\u003e\n\u003cdiv class=\"jdt1-chips\"\u003e\n\u003cspan class=\"jdt1-chip jdt1-chip--magenta\"\u003eOfficial Upgrade\u003c\/span\u003e \u003cspan class=\"jdt1-chip\"\u003eRebellion Unplugged\u003c\/span\u003e \u003cspan class=\"jdt1-chip\"\u003ePlastic Tokens\u003c\/span\u003e \u003cspan class=\"jdt1-chip\"\u003eCompatible with the entire line\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- TECHNICAL SHEET --\u003e\n\u003cdiv class=\"jdt1-specs-bar\"\u003e\n\u003cdiv class=\"jdt1-specs\"\u003e\n\u003cdiv class=\"jdt1-spec\"\u003e\n\u003cspan class=\"jdt1-spec-icon\"\u003e🎮\u003c\/span\u003e \u003cspan class=\"jdt1-spec-label\"\u003eType\u003c\/span\u003e \u003cspan class=\"jdt1-spec-val\"\u003eAccessory\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"jdt1-spec\"\u003e\n\u003cspan class=\"jdt1-spec-icon\"\u003e🔗\u003c\/span\u003e \u003cspan class=\"jdt1-spec-label\"\u003eCompatibility\u003c\/span\u003e \u003cspan class=\"jdt1-spec-val\"\u003eEntire Joyride line\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"jdt1-spec\"\u003e\n\u003cspan class=\"jdt1-spec-icon\"\u003e🟢\u003c\/span\u003e \u003cspan class=\"jdt1-spec-label\"\u003eMaterial\u003c\/span\u003e \u003cspan class=\"jdt1-spec-val\"\u003ePremium Plastic\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"jdt1-spec\"\u003e\n\u003cspan class=\"jdt1-spec-icon\"\u003e🔄\u003c\/span\u003e \u003cspan class=\"jdt1-spec-label\"\u003eFunctionality\u003c\/span\u003e \u003cspan class=\"jdt1-spec-val\"\u003eDouble-sided\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"jdt1-spec\"\u003e\n\u003cspan class=\"jdt1-spec-icon\"\u003e🎨\u003c\/span\u003e \u003cspan class=\"jdt1-spec-label\"\u003eColors\u003c\/span\u003e \u003cspan class=\"jdt1-spec-val\"\u003eVibrant Multi-color\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"jdt1-spec\"\u003e\n\u003cspan class=\"jdt1-spec-icon\"\u003e📦\u003c\/span\u003e \u003cspan class=\"jdt1-spec-label\"\u003eEdition\u003c\/span\u003e \u003cspan class=\"jdt1-spec-val\"\u003eEnglish\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- BODY --\u003e\n\u003cdiv class=\"jdt1-body\"\u003e\n\u003c!-- INTRO + EDITORIAL BOXES --\u003e\n\u003cdiv class=\"jdt1-intro-grid\"\u003e\n\u003cdiv class=\"jdt1-intro-text\"\u003e\n\u003cp class=\"jdt1-label\"\u003eWhat it's about\u003c\/p\u003e\n\u003ch3 class=\"jdt1-h3\"\u003eJoyride tokens, finally as they deserve to be\u003c\/h3\u003e\n\u003cp class=\"jdt1-p\"\u003eJoyride Deluxe Tokens is the official upgrade signed by \u003cstrong\u003eRebellion Unplugged\u003c\/strong\u003e to replace the cardboard tokens with premium plastic versions. Hexagonal, double-sided, available in all race colors — green, yellow, purple, red — with numbering and directional arrows perfectly legible even from a distance.\u003c\/p\u003e\n\u003cp class=\"jdt1-p\"\u003eCompatible with all titles in the Joyride line — from the base game to Joyride Duel: Next Gen — they work as a drop-in replacement without changing any rules. They flip better, they look better, they feel better. That's exactly what a good upgrade should do.\u003c\/p\u003e\n\u003cp class=\"jdt1-p\"\u003eIf your game table deserves attention, the components you place on it should be up to par.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"jdt1-intro-side\"\u003e\n\u003cp class=\"jdt1-quote-header\"\u003eWhy it's worth upgrading\u003c\/p\u003e\n\u003cdiv class=\"jdt1-quote-solo\"\u003e\n\u003cspan class=\"jdt1-qs-icon\"\u003e✨\u003c\/span\u003e\n\u003cp class=\"jdt1-qs-text\"\u003eA plastic token you flick across the table changes the atmosphere of the entire game — it's a small detail with a huge impact.\u003c\/p\u003e\n\u003cp class=\"jdt1-qs-note\"\u003eThe secret of a well-made upgrade\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"jdt1-quote-solo jdt1-quote-solo--alt\"\u003e\n\u003cspan class=\"jdt1-qs-icon\"\u003e🏎️\u003c\/span\u003e\n\u003cp class=\"jdt1-qs-text\"\u003eCompatible with all Joyride games already in your collection — and with any future title in the line.\u003c\/p\u003e\n\u003cp class=\"jdt1-qs-note\"\u003eFrom the gaming experience\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"jdt1-divider\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c!-- FROGSCORE --\u003e\n\u003cdiv class=\"jdt1-fs\"\u003e\n\u003cdiv class=\"jdt1-fs-header\"\u003e\n\u003cdiv class=\"jdt1-fs-brand\"\u003e\n\u003cimg class=\"jdt1-fs-frog-img\" alt=\"FroGames\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0887\/8905\/7863\/files\/FROG_FAVICON.webp?v=1774174794\"\u003e\n\u003cdiv\u003e\n\u003cspan class=\"jdt1-fs-brand-label\"\u003eFrogScore · FroGames.it\u003c\/span\u003e\n\u003cp class=\"jdt1-fs-game-name\"\u003eJoyride Deluxe Tokens\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cspan style=\"background: #fce8f5; border-color: #d060a0; color: #7a0040;\" class=\"jdt1-fs-cat\"\u003eAccessory · Upgrade\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"jdt1-fs-body\"\u003e\n\u003cdiv class=\"jdt1-fs-radar-panel\"\u003e\n\u003csvg style=\"overflow: visible;\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 320 320\" id=\"jdt1-fs-svg\"\u003e\u003c\/svg\u003e\n\u003cdiv id=\"jdt1-fs-tip\" class=\"jdt1-fs-tip\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"jdt1-fs-info\"\u003e\n\u003cspan class=\"jdt1-fs-feel-lbl\"\u003eThe Experience\u003c\/span\u003e\n\u003cdiv class=\"jdt1-fs-feeling\"\u003e\n\u003cspan class=\"jdt1-fs-feel-tag\"\u003eSatisfying\u003c\/span\u003e \u003cspan class=\"jdt1-fs-feel-tag\"\u003eImmediate\u003c\/span\u003e \u003cspan class=\"jdt1-fs-feel-tag\"\u003eRefined\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cspan class=\"jdt1-fs-section-label\"\u003eFor Whom\u003c\/span\u003e\n\u003cdiv class=\"jdt1-fs-targets\"\u003e\n\u003cdiv class=\"jdt1-fs-target jdt1-fs-si\"\u003e\n\u003cspan\u003e🎯\u003c\/span\u003eCollectors\u003c\/div\u003e\n\u003cdiv class=\"jdt1-fs-target jdt1-fs-si\"\u003e\n\u003cspan\u003e✨\u003c\/span\u003ePremium Lovers\u003c\/div\u003e\n\u003cdiv class=\"jdt1-fs-target jdt1-fs-no\"\u003e\n\u003cspan\u003e🌱\u003c\/span\u003eThose who don't own Joyride\u003c\/div\u003e\n\u003cdiv class=\"jdt1-fs-target jdt1-fs-no\"\u003e\n\u003cspan\u003e🧘\u003c\/span\u003eThose looking for new rules\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"jdt1-fs-verdict\"\u003e\n\u003cdiv class=\"jdt1-fs-verdict-title\"\u003eIn summary\u003c\/div\u003e\n\u003cdiv class=\"jdt1-fs-verdict-text\"\u003eA visual and tactile upgrade without compromise. It doesn't add mechanics — it improves every second you spend playing Joyride. Requires owning at least one title from the line.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"jdt1-fs-footer\"\u003e\n\u003cimg class=\"jdt1-fs-footer-frog\" alt=\"FroGames\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0887\/8905\/7863\/files\/FROG_FAVICON.webp?v=1774174794\"\u003e FrogScore · FroGames editorial rating · based on rules, international reviews and play sessions\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n    (function(){\n      var PI2=Math.PI*2;\n      var dims=[\n        {l:'Visual Impact',  v:5, note:\"Colored hexagonal plastic tokens — the difference on the table is immediate and visible\"},\n        {l:'Tactile Quality', v:5, note:\"Solid plastic, clean edges, they flip precisely without slipping\"},\n        {l:'Compatibility',   v:5, note:\"Drop-in replacement for the entire Joyride line — past, present, and future\"},\n        {l:'Ease of Use', v:5, note:\"No rules to learn — they are used exactly like the original tokens\"},\n        {l:'Value',          v:4, note:\"Reasonable price for an upgrade that lasts the lifetime of the collection\"},\n        {l:'Autonomy',       v:1, note:\"Requires at least one Joyride title — not playable alone\"}\n      ];\n      var accent='#C2006A';\n      var VB=320,CX=160,CY=160,R=74;\n      var n=dims.length,step=PI2\/n,off=-Math.PI\/2;\n      var svg=document.getElementById('jdt1-fs-svg');\n      var tip=document.getElementById('jdt1-fs-tip');\n      var ns='http:\/\/www.w3.org\/2000\/svg';\n\n      function pt(r,i){return[CX+r*Math.cos(off+i*step),CY+r*Math.sin(off+i*step)];}\n      function el(tag,attrs){\n        var e=document.createElementNS(ns,tag);\n        Object.keys(attrs).forEach(function(k){e.setAttribute(k,attrs[k]);});\n        return e;\n      }\n\n      var st=document.createElement('style');\n      st.textContent='@keyframes jdt1-draw{to{stroke-dashoffset:0}}@keyframes jdt1-fade{to{opacity:1}}';\n      document.head.appendChild(st);\n\n      for(var ring=1;ring\u003c=5;ring++){\n        var rr=R*(ring\/5);\n        var pts=dims.map(function(_,i){var p=pt(rr,i);return p[0].toFixed(1)+','+p[1].toFixed(1);}).join(' ');\n        svg.appendChild(el('polygon',{points:pts,fill:'none',stroke:ring===5?'#c0b8b0':'#ddd8d0','stroke-width':ring===5?'1':'0.5'}));\n      }\n      dims.forEach(function(_,i){\n        var p=pt(R,i);\n        svg.appendChild(el('line',{x1:CX,y1:CY,x2:p[0].toFixed(1),y2:p[1].toFixed(1),stroke:'#d0c8c0','stroke-width':'0.5'}));\n      });\n\n      var dpts=dims.map(function(d,i){var p=pt(R*(d.v\/5),i);return p[0].toFixed(1)+','+p[1].toFixed(1);}).join(' ');\n      var perim=dims.reduce(function(acc,d,i){\n        var p1=pt(R*(d.v\/5),i),p2=pt(R*(dims[(i+1)%n].v\/5),(i+1)%n);\n        return acc+Math.sqrt(Math.pow(p2[0]-p1[0],2)+Math.pow(p2[1]-p1[1],2));\n      },0);\n      var shape=el('polygon',{points:dpts,fill:accent+'1a',stroke:accent,'stroke-width':'2.5','stroke-linejoin':'round'});\n      shape.style.cssText='stroke-dasharray:'+perim.toFixed(0)+';stroke-dashoffset:'+perim.toFixed(0)+';animation:jdt1-draw 0.9s ease-out 0.1s forwards';\n      svg.appendChild(shape);\n\n      dims.forEach(function(d,i){\n        var p=pt(R*(d.v\/5),i);\n        var angle=off+i*step;\n\n        var hit=el('circle',{cx:p[0].toFixed(1),cy:p[1].toFixed(1),r:'10',fill:'transparent',cursor:'pointer'});\n        (function(idx){\n          hit.addEventListener('mouseenter',function(e){\n            tip.innerHTML='\u003cstrong\u003e'+dims[idx].l+' '+dims[idx].v+'\/5\u003c\/strong\u003e\u003cbr\u003e'+dims[idx].note;\n            tip.style.display='block';\n            var rect=svg.parentElement.getBoundingClientRect();\n            var ex=e.clientX-rect.left, ey=e.clientY-rect.top;\n            tip.style.left=Math.min(ex+12,rect.width-220)+'px';\n            tip.style.top=Math.max(ey-55,4)+'px';\n          });\n          hit.addEventListener('mouseleave',function(){tip.style.display='none';});\n        })(i);\n        svg.appendChild(hit);\n\n        var c=el('circle',{cx:p[0].toFixed(1),cy:p[1].toFixed(1),r:'4.5',fill:accent,stroke:'white','stroke-width':'2'});\n        c.style.cssText='opacity:0;animation:jdt1-fade 0.3s ease-out '+(0.8+i*0.07).toFixed(2)+'s forwards';\n        svg.appendChild(c);\n\n        var nd=R*(d.v\/5)+15;\n        var nx=CX+nd*Math.cos(angle),ny=CY+nd*Math.sin(angle);\n        var vt=el('text',{x:nx.toFixed(1),y:(ny+1).toFixed(1),'text-anchor':'middle','dominant-baseline':'middle','font-size':'10','font-weight':'800',fill:accent,'font-family':'-apple-system,sans-serif'});\n        vt.textContent=d.v;\n        vt.style.cssText='opacity:0;animation:jdt1-fade 0.3s ease-out '+(0.85+i*0.07).toFixed(2)+'s forwards';\n        svg.appendChild(vt);\n      });\n\n      dims.forEach(function(d,i){\n        var angle=off+i*step;\n        var lx=CX+(R+40)*Math.cos(angle),ly=CY+(R+40)*Math.sin(angle);\n        var anchor='middle';\n        if(Math.cos(angle)\u003e0.2) anchor='start';\n        else if(Math.cos(angle)\u003c-0.2) anchor='end';\n        var dy=Math.sin(angle)\u003e0.6?7:Math.sin(angle)\u003c-0.6?-5:0;\n        var isHi=d.v\u003e=4;\n        var t=el('text',{x:lx.toFixed(1),y:(ly+dy).toFixed(1),'text-anchor':anchor,'dominant-baseline':'middle','font-size':isHi?'12':'11','font-weight':'700',fill:'#1a1208','font-family':'-apple-system,sans-serif'});\n        t.textContent=d.l;\n        svg.appendChild(t);\n      });\n    })();\n    \u003c\/script\u003e\n\u003cdiv class=\"jdt1-divider\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c!-- COMPONENT \/ FEATURES CARD --\u003e\n\u003cdiv class=\"jdt1-section-pad\"\u003e\n\u003cp class=\"jdt1-label\"\u003eWhat you get\u003c\/p\u003e\n\u003ch3 class=\"jdt1-h3\"\u003ePremium tokens ready for your table\u003c\/h3\u003e\n\u003cdiv class=\"jdt1-cards\"\u003e\n\u003cdiv class=\"jdt1-card\"\u003e\n\u003cspan class=\"jdt1-card-icon\"\u003e🟢\u003c\/span\u003e\n\u003ch4 class=\"jdt1-card-name\"\u003eSolid and lightweight plastic\u003c\/h4\u003e\n\u003cp class=\"jdt1-card-desc\"\u003eRobust construction that withstands hundreds of games without deforming, fading, or losing its print.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"jdt1-card\"\u003e\n\u003cspan class=\"jdt1-card-icon\"\u003e🔄\u003c\/span\u003e\n\u003ch4 class=\"jdt1-card-name\"\u003eFunctional double-sided\u003c\/h4\u003e\n\u003cp class=\"jdt1-card-desc\"\u003eEach token is printed on both sides — flipping it on the table is a precise gesture, not an uncertainty.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"jdt1-card\"\u003e\n\u003cspan class=\"jdt1-card-icon\"\u003e🎨\u003c\/span\u003e\n\u003ch4 class=\"jdt1-card-name\"\u003eVivid and legible colors\u003c\/h4\u003e\n\u003cp class=\"jdt1-card-desc\"\u003eGreen, yellow, purple, red: the Joyride line's color code in saturated version. Recognizable at a glance even from the other side of the table.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"jdt1-card\"\u003e\n\u003cspan class=\"jdt1-card-icon\"\u003e🔗\u003c\/span\u003e\n\u003ch4 class=\"jdt1-card-name\"\u003eTotal drop-in replacement\u003c\/h4\u003e\n\u003cp class=\"jdt1-card-desc\"\u003eThey replace cardboard tokens without changing any rules. Compatible with all Joyride titles — base, Duel, Next Gen, and future ones.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- COMPATIBILITY NOTICE --\u003e\n\u003cdiv class=\"jdt1-notice-section\"\u003e\n\u003cdiv class=\"jdt1-notice\"\u003e\n\u003cspan class=\"jdt1-notice-icon\"\u003e⚠️\u003c\/span\u003e\n\u003cdiv\u003e\n\u003cp class=\"jdt1-notice-title\"\u003eRequires a Joyride title\u003c\/p\u003e\n\u003cp class=\"jdt1-notice-text\"\u003eJoyride Deluxe Tokens is an accessory — it contains no rules or tracks and is designed to be used with Joyride, Joyride Duel: Next Gen, or any other title in the line.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CLOSING --\u003e\n\u003cdiv class=\"jdt1-closing\"\u003e\n\u003cp class=\"jdt1-closing-text\"\u003eDetails don't change the game. They change how you feel while playing.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- end jdt1-body --\u003e\n\u003c\/div\u003e\u003c!-- fine jdt1-wrap --\u003e\n\u003cstyle\u003e\n.jdt1-wrap, .jdt1-wrap * { box-sizing: border-box; margin: 0; padding: 0; }\n.jdt1-wrap {\n  font-family: Georgia, 'Times New Roman', serif;\n  border-radius: 24px;\n  overflow: hidden;\n  box-shadow: 0 20px 60px rgba(0,0,0,0.32);\n  max-width: 1200px;\n  margin-left: auto;\n  margin-right: auto;\n  background: #1a0020;\n}\n\n\/* ── COPERTINA ── *\/\n.jdt1-cover { position: relative; width: 100%; height: 340px; overflow: hidden; display: flex; align-items: flex-end; }\n.jdt1-cover-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center center; display: block; }\n.jdt1-cover-fade { position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(26,0,32,0) 0%, rgba(26,0,32,0) 20%, rgba(26,0,32,0.55) 50%, rgba(26,0,32,0.88) 72%, rgba(26,0,32,0.98) 100%); }\n.jdt1-cover-content { position: relative; z-index: 2; padding: 18px 26px 24px; width: 100%; }\n.jdt1-kicker { display: block; color: #FF50C8; font-family: sans-serif; font-size: 0.7rem; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; margin-bottom: 8px; }\n.jdt1-sub { color: rgba(255,255,255,0.9); font-family: Georgia, serif; font-size: 1rem; font-style: italic; line-height: 1.55; max-width: 580px; margin-bottom: 16px; }\n.jdt1-chips { display: flex; flex-wrap: wrap; gap: 7px; }\n.jdt1-chip { background: rgba(255,255,255,0.12); border: 1px solid rgba(255,255,255,0.25); color: #fff; font-family: sans-serif; padding: 4px 12px; border-radius: 50px; font-size: 0.78rem; font-weight: 600; }\n.jdt1-chip--magenta { background: #C2006A; border-color: #C2006A; }\n\n\/* ── SPECS ── *\/\n.jdt1-specs-bar { background: #120018; padding: 0 24px; border-top: 1px solid rgba(255,80,200,0.15); }\n.jdt1-specs { display: grid; grid-template-columns: repeat(3, 1fr); }\n.jdt1-spec { padding: 13px 10px; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 2px; border-right: 1px solid rgba(255,255,255,0.07); border-bottom: 1px solid rgba(255,255,255,0.07); }\n.jdt1-spec:nth-child(3n) { border-right: none; }\n.jdt1-spec:nth-last-child(-n+3) { border-bottom: none; }\n.jdt1-spec-icon { font-size: 1.2rem; }\n.jdt1-spec-label { color: rgba(255,255,255,0.4); font-family: sans-serif; font-size: 0.6rem; text-transform: uppercase; letter-spacing: 1px; }\n.jdt1-spec-val { color: #fff; font-family: sans-serif; font-size: 0.84rem; font-weight: 800; }\n\n\/* ── BODY ── *\/\n.jdt1-body { background: #FDF0F8; }\n\n\/* ── INTRO ── *\/\n.jdt1-intro-grid { display: grid; grid-template-columns: 1fr; gap: 26px; padding: 36px 28px 8px; }\n.jdt1-label { display: block; font-family: sans-serif; font-size: 0.68rem; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; color: #9A0050; margin-bottom: 7px; }\n.jdt1-h3 { font-size: clamp(1.4rem, 2.5vw, 2.1rem); font-weight: 900; color: #1a0020; line-height: 1.15; margin-bottom: 16px; }\n.jdt1-p { font-family: sans-serif; font-size: 0.95rem; color: #2d1030; margin-bottom: 13px; line-height: 1.65; max-width: 700px; }\n\n\/* ── EDITORIAL BOXES ── *\/\n.jdt1-quote-header { font-family: sans-serif; font-size: 0.68rem; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: #9A0050; margin-bottom: 12px; }\n.jdt1-quote-solo { background: #1a0020; border-radius: 14px; padding: 18px 20px; margin-bottom: 12px; border-left: 4px solid #FF50C8; }\n.jdt1-quote-solo--alt { background: #2a0035; border-left-color: #C2006A; }\n.jdt1-qs-icon { font-size: 1.4rem; display: block; margin-bottom: 8px; }\n.jdt1-qs-text { color: #fff; font-style: italic; font-size: 0.9rem; line-height: 1.6; margin-bottom: 8px; font-family: Georgia, serif; }\n.jdt1-qs-note { color: rgba(255,255,255,0.4); font-family: sans-serif; font-size: 0.72rem; font-weight: 700; text-transform: uppercase; letter-spacing: 1px; }\n\n\/* ── DIVIDER ── *\/\n.jdt1-divider { height: 1px; background: #e8c0da; margin: 32px 28px 0; }\n\n\/* ── FROGSCORE ── *\/\n.jdt1-fs { background:#fff; border-top:1px solid #e0d8cc; border-bottom:1px solid #e0d8cc; }\n.jdt1-fs-header { padding:14px 20px 13px; background:#fff; border-bottom:1px solid #e8e2da; display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; }\n.jdt1-fs-brand { display:flex; align-items:center; gap:9px; }\n.jdt1-fs-frog-img { width:28px; height:28px; object-fit:contain; flex-shrink:0; }\n.jdt1-fs-footer-frog { width:16px; height:16px; object-fit:contain; vertical-align:middle; margin-right:2px; }\n.jdt1-fs-brand-label { display:block; font-family:sans-serif; font-size:10px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:#6b5e48; }\n.jdt1-fs-game-name { font-family:sans-serif; font-size:14px; font-weight:700; color:#1a1208; margin-top:2px; }\n.jdt1-fs-cat { font-family:sans-serif; font-size:10px; padding:3px 11px; border-radius:50px; font-weight:700; border:1.5px solid; white-space:nowrap; }\n.jdt1-fs-body { display:grid; grid-template-columns:1fr; background:#f7f4ef; }\n.jdt1-fs-radar-panel { padding:20px 16px; display:flex; justify-content:center; background:#f7f4ef; position:relative; }\n.jdt1-fs-radar-panel svg { width:100%; max-width:270px; height:auto; display:block; }\n.jdt1-fs-tip { display:none; position:absolute; background:#1a1208; color:rgba(255,255,255,0.92); font-family:sans-serif; font-size:11px; line-height:1.55; padding:8px 12px; border-radius:9px; z-index:20; max-width:210px; box-shadow:0 4px 18px rgba(0,0,0,0.22); pointer-events:none; }\n.jdt1-fs-info { padding:16px 18px 18px; background:#f7f4ef; border-top:1px solid #e8e2da; }\n.jdt1-fs-feel-lbl { display:block; font-family:sans-serif; font-size:10px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:#6b5e48; margin-bottom:9px; }\n.jdt1-fs-feeling { display:flex; flex-wrap:wrap; gap:7px; margin-bottom:16px; }\n.jdt1-fs-feel-tag { font-family:Georgia,serif; font-size:13px; font-style:italic; color:#3d2810; padding:5px 14px; background:#fff; border-radius:7px; border:1px solid #d8d0c4; }\n.jdt1-fs-section-label { display:block; font-family:sans-serif; font-size:10px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:#6b5e48; margin-bottom:10px; }\n.jdt1-fs-targets { display:grid; grid-template-columns:repeat(auto-fill,minmax(130px,1fr)); gap:7px; margin-bottom:16px; }\n.jdt1-fs-target { display:flex; align-items:center; gap:6px; padding:6px 10px; border-radius:10px; border:1px solid; font-family:sans-serif; font-size:11px; font-weight:600; }\n.jdt1-fs-target span { font-size:14px; flex-shrink:0; }\n.jdt1-fs-si { background:#fff; border-color:#c8c0b0; color:#2a1a08; }\n.jdt1-fs-no { background:transparent; border-color:#e0d8d0; color:#b8a898; opacity:.45; text-decoration:line-through; }\n.jdt1-fs-verdict { background:#fff; border-radius:10px; padding:12px 14px; border:1px solid #e0d8cc; }\n.jdt1-fs-verdict-title { font-family:sans-serif; font-size:10px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:#6b5e48; margin-bottom:5px; }\n.jdt1-fs-verdict-text { font-family:sans-serif; font-size:12px; color:#3d2810; line-height:1.65; }\n.jdt1-fs-footer { padding:9px 20px; background:#eeeae4; border-top:1px solid #e0d8cc; font-family:sans-serif; font-size:11px; color:#6b5e48; line-height:1.5; }\n\n\/* ── CARDS ── *\/\n.jdt1-section-pad { padding: 32px 28px 8px; }\n.jdt1-cards { display: grid; grid-template-columns: 1fr; gap: 11px; margin-top: 16px; }\n.jdt1-card { background: #fff; border-radius: 14px; padding: 16px 18px; border: 1px solid #e8c0da; box-shadow: 0 2px 10px rgba(0,0,0,0.05); transition: transform 0.2s ease, box-shadow 0.2s ease; }\n.jdt1-card:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(0,0,0,0.09); }\n.jdt1-card-icon { font-size: 1.6rem; display: block; margin-bottom: 7px; }\n.jdt1-card-name { font-size: 0.95rem; font-weight: 900; color: #9A0050; margin-bottom: 5px; }\n.jdt1-card-desc { font-family: sans-serif; font-size: 0.85rem; color: #2d1030; line-height: 1.55; }\n\n\/* ── COMPATIBILITY WARNING ── *\/\n.jdt1-notice-section { padding: 20px 28px 8px; }\n.jdt1-notice { background: #fff8e8; border: 1px solid #e8c860; border-radius: 14px; padding: 16px 18px; display: flex; gap: 14px; align-items: flex-start; }\n.jdt1-notice-icon { font-size: 1.4rem; flex-shrink: 0; margin-top: 2px; }\n.jdt1-notice-title { font-family: sans-serif; font-size: 0.85rem; font-weight: 800; color: #7a5500; margin-bottom: 5px; }\n.jdt1-notice-text { font-family: sans-serif; font-size: 0.83rem; color: #5a4000; line-height: 1.55; }\n\n\/* ── CLOSING ── *\/\n.jdt1-closing { background: #1a0020; padding: 26px 28px; margin-top: 28px; border-top: 3px solid #FF50C8; }\n.jdt1-closing-text { font-family: Georgia, serif; font-size: 1.05rem; font-style: italic; color: rgba(255,255,255,0.88); text-align: center; line-height: 1.6; }\n\n\/* ── RESPONSIVE ── *\/\n@media screen and (min-width: 600px) {\n  .jdt1-specs { grid-template-columns: repeat(6, 1fr); }\n  .jdt1-spec { border-bottom: none; }\n  .jdt1-spec:nth-child(3n) { border-right: 1px solid rgba(255,255,255,0.07); }\n  .jdt1-spec:last-child { border-right: none; }\n  .jdt1-cards { grid-template-columns: repeat(2, 1fr); }\n  .jdt1-fs-body { grid-template-columns: 220px 1fr; }\n  .jdt1-fs-radar-panel { border-top: none; border-right: 1px solid #e8e2da; }\n  .jdt1-fs-info { border-top: none; }\n}\n@media screen and (min-width: 900px) {\n  .jdt1-cover { height: 440px; }\n  .jdt1-cover-content { padding: 22px 36px 30px; }\n  .jdt1-intro-grid { grid-template-columns: 3fr 2fr; align-items: start; padding: 40px 36px 8px; }\n  .jdt1-cards { grid-template-columns: repeat(4, 1fr); }\n  .jdt1-divider { margin-left: 36px; margin-right: 36px; }\n  .jdt1-section-pad { padding: 36px 36px 8px; }\n  .jdt1-notice-section { padding: 20px 36px 8px; }\n  .jdt1-closing { padding: 28px 36px; }\n  .jdt1-fs-body { grid-template-columns: 260px 1fr; }\n  .jdt1-fs-radar-panel svg { max-width: 260px; }\n}\n\u003c\/style\u003e","brand":"Rebellion Unplugged","offers":[{"title":"Default Title","offer_id":53701965611335,"sku":null,"price":14.99,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0887\/8905\/7863\/files\/Joyride_Deluxe_Upgrade_Kit_000.webp?v=1776171252","url":"https:\/\/frogames.it\/en\/products\/joyride-deluxe-upgrade-kit","provider":"FroGames","version":"1.0","type":"link"}