{"product_id":"garage-rock","title":"Garage Rock","description":"\u003c!-- =====================================================\n     GARAGE ROCK — BLOCK 1\n     FroGames | Shopify Theme Concept\n     ===================================================== --\u003e\n\u003cdiv class=\"grk1-wrap\"\u003e\n\u003c!-- COVER --\u003e\n\u003cdiv class=\"grk1-cover\"\u003e\n\u003cimg loading=\"eager\" class=\"grk1-cover-img\" alt=\"Garage Rock 80s worker placement board game for 2-4 players - official Mariposa Games cover\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0887\/8905\/7863\/files\/Garage_Rock.webp?v=1775815773\"\u003e\n\u003cdiv class=\"grk1-cover-fade\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"grk1-cover-content\"\u003e\n\u003cp class=\"grk1-kicker\"\u003eFroGames — Moments You'll Remember\u003c\/p\u003e\n\u003cp class=\"grk1-sub\"\u003eA cassette tape to record, a flyer to post, a stage to conquer. The most important summer of your life starts in the garage.\u003c\/p\u003e\n\u003cdiv class=\"grk1-chips\"\u003e\n\u003cspan class=\"grk1-chip grk1-chip--accent\"\u003eWorker Placement\u003c\/span\u003e \u003cspan class=\"grk1-chip\"\u003eMariposa Games\u003c\/span\u003e \u003cspan class=\"grk1-chip\"\u003e80s Nostalgia\u003c\/span\u003e \u003cspan class=\"grk1-chip\"\u003eEnglish Edition\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- TECH SPECS --\u003e\n\u003cdiv class=\"grk1-specs-bar\"\u003e\n\u003cdiv class=\"grk1-specs\"\u003e\n\u003cdiv class=\"grk1-spec\"\u003e\n\u003cspan class=\"grk1-spec-icon\"\u003e👥\u003c\/span\u003e \u003cspan class=\"grk1-spec-label\"\u003ePlayers\u003c\/span\u003e \u003cspan class=\"grk1-spec-val\"\u003e2 – 4\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"grk1-spec\"\u003e\n\u003cspan class=\"grk1-spec-icon\"\u003e⏱️\u003c\/span\u003e \u003cspan class=\"grk1-spec-label\"\u003eDuration\u003c\/span\u003e \u003cspan class=\"grk1-spec-val\"\u003e60–90 min\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"grk1-spec\"\u003e\n\u003cspan class=\"grk1-spec-icon\"\u003e🎂\u003c\/span\u003e \u003cspan class=\"grk1-spec-label\"\u003eAge\u003c\/span\u003e \u003cspan class=\"grk1-spec-val\"\u003e12+ years\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"grk1-spec\"\u003e\n\u003cspan class=\"grk1-spec-icon\"\u003e🔧\u003c\/span\u003e \u003cspan class=\"grk1-spec-label\"\u003eMechanics\u003c\/span\u003e \u003cspan class=\"grk1-spec-val\"\u003eWorker Placement\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"grk1-spec\"\u003e\n\u003cspan class=\"grk1-spec-icon\"\u003e📅\u003c\/span\u003e \u003cspan class=\"grk1-spec-label\"\u003eStructure\u003c\/span\u003e \u003cspan class=\"grk1-spec-val\"\u003e16 weeks\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"grk1-spec\"\u003e\n\u003cspan class=\"grk1-spec-icon\"\u003e🎸\u003c\/span\u003e \u003cspan class=\"grk1-spec-label\"\u003eFinale\u003c\/span\u003e \u003cspan class=\"grk1-spec-val\"\u003eBattle of the Bands\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- BODY --\u003e\n\u003cdiv class=\"grk1-body\"\u003e\n\u003c!-- INTRO + EDITORIAL BOXES --\u003e\n\u003cdiv class=\"grk1-intro-grid\"\u003e\n\u003cdiv class=\"grk1-intro-text\"\u003e\n\u003cp class=\"grk1-label\"\u003eWhat it's about\u003c\/p\u003e\n\u003ch3 class=\"grk1-h3\"\u003eA garage band against the whole neighborhood\u003c\/h3\u003e\n\u003cp class=\"grk1-p\"\u003eIt's 1980. Hair is big, cassettes are rewound with a pencil, BMX bikes fly down sidewalks. You and your friends have a band, a garage — and sixteen weeks to become the best in town before the Battle of the Bands, organized by pirate DJ Johnny Law, crowns the winner.\u003c\/p\u003e\n\u003cp class=\"grk1-p\"\u003eIn \u003cstrong\u003eGarage Rock\u003c\/strong\u003e, each player leads their teenage band by placing members around town: at the Music Shop to upgrade instruments, at the Clothing Store to refine their image, at the copy shop to print flyers, at the recording studio to cut a demo to deliver to Johnny Law and get played on his pirate radio broadcast from the secret tree.\u003c\/p\u003e\n\u003cp class=\"grk1-p\"\u003eVictory goes to the band with the most fans when the curtain falls on the Battle of the Bands. But between blocking opponents' moves, qualifying for gigs, and managing non-musical work to avoid running out of money, every week is a race.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"grk1-intro-side\"\u003e\n\u003cdiv class=\"grk1-quote-solo\"\u003e\n\u003cspan class=\"grk1-qs-icon\"\u003e🎙️\u003c\/span\u003e\n\u003cp class=\"grk1-qs-text\"\u003eWorker placement that feels like summer: every action on the city board tells a story. You don't place meeples — you choose where to go that week.\u003c\/p\u003e\n\u003cp class=\"grk1-qs-note\"\u003eThe secret of Garage Rock in one line\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"grk1-quote-solo grk1-quote-solo--alt\"\u003e\n\u003cspan class=\"grk1-qs-icon\"\u003e📻\u003c\/span\u003e\n\u003cp class=\"grk1-qs-text\"\u003eWhen your demo plays on the radio and your fans grow while opponents are still playing in the garage, the theme stops being decorative and becomes the game itself.\u003c\/p\u003e\n\u003cp class=\"grk1-qs-note\"\u003eFrom the game experience\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"grk1-divider\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c!-- FROGSCORE --\u003e\n\u003cdiv class=\"grk1-fs\"\u003e\n\u003cdiv class=\"grk1-fs-header\"\u003e\n\u003cdiv class=\"grk1-fs-brand\"\u003e\n\u003cimg class=\"grk1-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=\"grk1-fs-brand-label\"\u003eFrogScore · FroGames.it\u003c\/span\u003e\n\u003cp class=\"grk1-fs-game-name\"\u003eGarage Rock\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cspan style=\"background: #eaf3de; border-color: #80b050; color: #2a5010;\" class=\"grk1-fs-cat\"\u003eStrategy\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"grk1-fs-body\"\u003e\n\u003cdiv class=\"grk1-fs-radar-panel\"\u003e\n\u003csvg style=\"overflow: visible;\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 320 320\" id=\"grk1-fs-svg\"\u003e\u003c\/svg\u003e\n\u003cdiv id=\"grk1-fs-tip\" class=\"grk1-fs-tip\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"grk1-fs-info\"\u003e\n\u003cspan class=\"grk1-fs-feel-lbl\"\u003eThe experience\u003c\/span\u003e\n\u003cdiv class=\"grk1-fs-feeling\"\u003e\n\u003cspan class=\"grk1-fs-feel-tag\"\u003eNostalgic\u003c\/span\u003e \u003cspan class=\"grk1-fs-feel-tag\"\u003eThematic\u003c\/span\u003e \u003cspan class=\"grk1-fs-feel-tag\"\u003eCompetitive\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cspan class=\"grk1-fs-section-label\"\u003eFor whom it is\u003c\/span\u003e\n\u003cdiv class=\"grk1-fs-targets\"\u003e\n\u003cdiv class=\"grk1-fs-target grk1-fs-si\"\u003e\n\u003cspan\u003e🎯\u003c\/span\u003eExperts\u003c\/div\u003e\n\u003cdiv class=\"grk1-fs-target grk1-fs-si\"\u003e\n\u003cspan\u003e🎲\u003c\/span\u003eFamily game\u003c\/div\u003e\n\u003cdiv class=\"grk1-fs-target grk1-fs-si\"\u003e\n\u003cspan\u003e🌱\u003c\/span\u003eGateway\u003c\/div\u003e\n\u003cdiv class=\"grk1-fs-target grk1-fs-no\"\u003e\n\u003cspan\u003e🍕\u003c\/span\u003eParty\u003c\/div\u003e\n\u003cdiv class=\"grk1-fs-target grk1-fs-no\"\u003e\n\u003cspan\u003e🧒\u003c\/span\u003eChildren\u003c\/div\u003e\n\u003cdiv class=\"grk1-fs-target grk1-fs-no\"\u003e\n\u003cspan\u003e🧘\u003c\/span\u003eSolo\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"grk1-fs-verdict\"\u003e\n\u003cdiv class=\"grk1-fs-verdict-title\"\u003eIn summary\u003c\/div\u003e\n\u003cdiv class=\"grk1-fs-verdict-text\"\u003eThematic worker placement with a strong 80s identity. Meaningful choices at every turn, real space blocking, clear progression towards the grand finale. Perfect for those who want strategy dressed in nostalgia.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"grk1-fs-footer\"\u003e\n\u003cimg class=\"grk1-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 rulebook, game materials and playtesting sessions\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n    (function(){\n      var PI2=Math.PI*2;\n      var dims=[\n        {l:'Strategy',    v:4, note:\"Every week is a choice between different paths — skills, gig, radio, fans\"},\n        {l:'Depth',   v:4, note:\"Chain of connected objectives: qualify, record, broadcast, dominate\"},\n        {l:'Interaction',  v:3, note:\"Constant space blocking, but direct attacks on opponents are rare\"},\n        {l:'Replayability',v:4, note:\"Available gigs and upgrade paths change every game\"},\n        {l:'Complexity',  v:3, note:\"Challenging setup, average learning curve — fluid after the first game\"},\n        {l:'Luck',      v:2, note:\"Minimal: choices count for almost everything, chance is decorative\"}\n      ];\n      var accent='#2E6B0A';\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('grk1-fs-svg');\n      var tip=document.getElementById('grk1-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 grk1-draw{to{stroke-dashoffset:0}}@keyframes grk1-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:grk1-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:grk1-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:grk1-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=\"grk1-divider\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c!-- COMPONENT CARDS --\u003e\n\u003cdiv class=\"grk1-section-pad\"\u003e\n\u003cp class=\"grk1-label\"\u003eYour rockstar arsenal\u003c\/p\u003e\n\u003ch3 class=\"grk1-h3\"\u003eWhat you manage in each game\u003c\/h3\u003e\n\u003cdiv class=\"grk1-cards\"\u003e\n\u003cdiv class=\"grk1-card\"\u003e\n\u003cspan class=\"grk1-card-icon\"\u003e🎸\u003c\/span\u003e\n\u003ch4 class=\"grk1-card-name\"\u003eBand members\u003c\/h4\u003e\n\u003cp class=\"grk1-card-desc\"\u003eYour workers on the city board. Each member you place blocks a space for opponents — and opens or closes a strategy.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"grk1-card\"\u003e\n\u003cspan class=\"grk1-card-icon\"\u003e🎵\u003c\/span\u003e\n\u003ch4 class=\"grk1-card-name\"\u003eSongs and demos\u003c\/h4\u003e\n\u003cp class=\"grk1-card-desc\"\u003eWrite songs, record them in the studio, deliver the demo to Johnny Law. When it plays on the radio, your fans grow — even when it's not your turn.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"grk1-card\"\u003e\n\u003cspan class=\"grk1-card-icon\"\u003e📣\u003c\/span\u003e\n\u003ch4 class=\"grk1-card-name\"\u003eFlyers and image\u003c\/h4\u003e\n\u003cp class=\"grk1-card-desc\"\u003ePrint flyers at the copy shop, update your look at the clothing store. Image matters as much as music to win new fans.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"grk1-card\"\u003e\n\u003cspan class=\"grk1-card-icon\"\u003e🏟️\u003c\/span\u003e\n\u003ch4 class=\"grk1-card-name\"\u003eGigs and concerts\u003c\/h4\u003e\n\u003cp class=\"grk1-card-desc\"\u003eFour gigs available each round. Qualify with the right skills, play, earn money and fans. The final stage is the Battle of the Bands.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CLOSING --\u003e\n\u003cdiv class=\"grk1-closing\"\u003e\n\u003cp class=\"grk1-closing-text\"\u003eSixteen weeks to become the most famous band in the neighborhood. The garage is just the starting point.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c!-- BOX CONTENT --\u003e\n\u003cdiv class=\"grk1-box-section\"\u003e\n\u003cdetails class=\"grk1-det grk1-det--last\"\u003e\n\u003csummary class=\"grk1-det-sum\"\u003e\u003cspan class=\"grk1-det-ico\"\u003e📖\u003c\/span\u003e\u003cspan class=\"grk1-det-title\"\u003eRulebook\u003c\/span\u003e\u003cspan class=\"grk1-det-sub\"\u003eEnglish · Official PDF (preview)\u003c\/span\u003e\u003cspan class=\"grk1-det-arr\"\u003e\u003c\/span\u003e\u003c\/summary\u003e\n\u003cdiv class=\"grk1-det-body\"\u003e\n\u003cdiv class=\"grk1-rl-wrap\"\u003e\n\u003cdiv class=\"grk1-rl-langs\"\u003e\u003cspan class=\"grk1-rl-lang\"\u003e🇬🇧 English\u003c\/span\u003e\u003c\/div\u003e\n\u003ca style=\"display: flex; align-items: center; gap: 10px; padding: 12px 16px; background: #1a2e0a; border-radius: 10px; text-decoration: none; color: #fff;\" class=\"grk1-rl-link\" href=\"https:\/\/boardgamegeek.com\/filepage\/306391\/garage-rock-rulebook-preview-in-progress\" target=\"_blank\"\u003e\u003cspan class=\"grk1-rl-ico\"\u003e📄\u003c\/span\u003e\n\u003cdiv class=\"grk1-rl-body\"\u003e\n\u003cspan class=\"grk1-rl-title\"\u003eDownload the rulebook (preview)\u003c\/span\u003e\u003cspan class=\"grk1-rl-sub\"\u003eFree PDF · BoardGameGeek\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cspan class=\"grk1-rl-arr-ext\"\u003e↗\u003c\/span\u003e\u003c\/a\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- \/grk1-body --\u003e\n\u003c\/div\u003e\u003c!-- \/grk1-wrap --\u003e\n\u003cstyle\u003e\n.grk1-wrap, .grk1-wrap * { box-sizing: border-box; margin: 0; padding: 0; }\n.grk1-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: #0e1a08;\n}\n\n\/* ── COVER ── *\/\n.grk1-cover { position: relative; width: 100%; height: 340px; overflow: hidden; display: flex; align-items: flex-end; }\n.grk1-cover-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center top; display: block; }\n.grk1-cover-fade { position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(14,26,8,0) 0%, rgba(14,26,8,0) 25%, rgba(14,26,8,0.6) 55%, rgba(14,26,8,0.88) 75%, rgba(14,26,8,0.98) 100%); }\n.grk1-cover-content { position: relative; z-index: 2; padding: 18px 26px 24px; width: 100%; }\n.grk1-kicker { display: block; color: #8FCC44; font-family: sans-serif; font-size: 0.7rem; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; margin-bottom: 8px; }\n.grk1-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.grk1-chips { display: flex; flex-wrap: wrap; gap: 7px; }\n.grk1-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.grk1-chip--accent { background: #2E6B0A; border-color: #2E6B0A; }\n\n\/* ── SPECS ── *\/\n.grk1-specs-bar { background: #111e08; padding: 0 24px; border-top: 1px solid rgba(255,255,255,0.06); }\n.grk1-specs { display: grid; grid-template-columns: repeat(3, 1fr); }\n.grk1-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.grk1-spec:nth-child(3n) { border-right: none; }\n.grk1-spec:nth-last-child(-n+3) { border-bottom: none; }\n.grk1-spec-icon { font-size: 1.2rem; }\n.grk1-spec-label { color: rgba(255,255,255,0.4); font-family: sans-serif; font-size: 0.6rem; text-transform: uppercase; letter-spacing: 1px; }\n.grk1-spec-val { color: #fff; font-family: sans-serif; font-size: 0.84rem; font-weight: 800; }\n\n\/* ── BODY ── *\/\n.grk1-body { background: #F0F0E0; }\n\n\/* ── INTRO ── *\/\n.grk1-intro-grid { display: grid; grid-template-columns: 1fr; gap: 26px; padding: 36px 28px 8px; }\n.grk1-label { display: block; font-family: sans-serif; font-size: 0.68rem; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; color: #2E6B0A; margin-bottom: 7px; }\n.grk1-h3 { font-size: clamp(1.4rem, 2.5vw, 2.1rem); font-weight: 900; color: #0e1a08; line-height: 1.15; margin-bottom: 16px; }\n.grk1-p { font-family: sans-serif; font-size: 0.95rem; color: #2a3018; margin-bottom: 13px; line-height: 1.65; max-width: 700px; }\n\n\/* ── EDITORIAL BOXES ── *\/\n.grk1-quote-solo { background: #1a2e0a; border-radius: 14px; padding: 18px 20px; margin-bottom: 12px; border-left: 4px solid #8FCC44; }\n.grk1-quote-solo--alt { background: #223810; border-left-color: #5a9e2a; }\n.grk1-qs-icon { font-size: 1.4rem; display: block; margin-bottom: 8px; }\n.grk1-qs-text { color: #fff; font-style: italic; font-size: 0.9rem; line-height: 1.6; margin-bottom: 8px; font-family: Georgia, serif; }\n.grk1-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.grk1-divider { height: 1px; background: #c8caa8; margin: 32px 28px 0; }\n\n\/* ── FROGSCORE ── *\/\n.grk1-fs { background: #fff; border-top: 1px solid #e0d8cc; border-bottom: 1px solid #e0d8cc; }\n.grk1-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.grk1-fs-brand { display: flex; align-items: center; gap: 9px; }\n.grk1-fs-frog-img { width: 28px; height: 28px; object-fit: contain; flex-shrink: 0; }\n.grk1-fs-footer-frog { width: 16px; height: 16px; object-fit: contain; vertical-align: middle; margin-right: 2px; }\n.grk1-fs-brand-label { display: block; font-family: sans-serif; font-size: 10px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: #6b5e48; }\n.grk1-fs-game-name { font-family: sans-serif; font-size: 14px; font-weight: 700; color: #1a1208; margin-top: 2px; }\n.grk1-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.grk1-fs-body { display: grid; grid-template-columns: 1fr; background: #f7f4ef; }\n.grk1-fs-radar-panel { padding: 20px 16px; display: flex; justify-content: center; background: #f7f4ef; position: relative; }\n.grk1-fs-radar-panel svg { width: 100%; max-width: 270px; height: auto; display: block; }\n.grk1-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.grk1-fs-info { padding: 16px 18px 18px; background: #f7f4ef; border-top: 1px solid #e8e2da; }\n.grk1-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.grk1-fs-feeling { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 16px; }\n.grk1-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.grk1-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.grk1-fs-targets { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px,1fr)); gap: 7px; margin-bottom: 16px; }\n.grk1-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.grk1-fs-target span { font-size: 14px; flex-shrink: 0; }\n.grk1-fs-si { background: #fff; border-color: #c8c0b0; color: #2a1a08; }\n.grk1-fs-no { background: transparent; border-color: #e0d8d0; color: #b8a898; opacity: .45; text-decoration: line-through; }\n.grk1-fs-verdict { background: #fff; border-radius: 10px; padding: 12px 14px; border: 1px solid #e0d8cc; }\n.grk1-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.grk1-fs-verdict-text { font-family: sans-serif; font-size: 12px; color: #3d2810; line-height: 1.65; }\n.grk1-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.grk1-section-pad { padding: 32px 28px 8px; }\n.grk1-cards { display: grid; grid-template-columns: 1fr; gap: 11px; margin-top: 16px; }\n.grk1-card { background: #fff; border-radius: 14px; padding: 16px 18px; border: 1px solid #d4d8b0; box-shadow: 0 2px 10px rgba(0,0,0,0.05); transition: transform 0.2s ease, box-shadow 0.2s ease; }\n.grk1-card:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(0,0,0,0.09); }\n.grk1-card-icon { font-size: 1.6rem; display: block; margin-bottom: 7px; }\n.grk1-card-name { font-size: 0.95rem; font-weight: 900; color: #2E6B0A; margin-bottom: 5px; }\n.grk1-card-desc { font-family: sans-serif; font-size: 0.85rem; color: #2a3018; line-height: 1.55; }\n\n\/* ── CLOSING ── *\/\n.grk1-closing { background: #1a2e0a; padding: 26px 28px; border-top: 3px solid #8FCC44; }\n.grk1-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\/* ── BOX CONTENT ── *\/\n.grk1-box-section { background: #F0F0E0; border-top: 1px solid #c8caa8; }\n.grk1-det { border-bottom: 1px solid #d8dab8; background: #fff; }\n.grk1-det--last { border-bottom: none; }\n.grk1-det-sum { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 14px 20px; cursor: pointer; transition: background .18s; }\n.grk1-det-sum::-webkit-details-marker { display: none; }\n.grk1-det-sum::marker { display: none; }\n.grk1-det[open] .grk1-det-sum { background: #f5f5e8; }\n.grk1-det-sum:hover { background: #f5f5e8; }\n.grk1-det-left { display: flex; align-items: center; gap: 10px; }\n.grk1-det-ico { font-size: 17px; flex-shrink: 0; }\n.grk1-det-title { font-family: sans-serif; font-size: 13px; font-weight: 700; color: #0e1a08; display: block; }\n.grk1-det-sub { font-family: sans-serif; font-size: 11px; color: #7a8060; margin-top: 1px; display: block; }\n.grk1-det-arr { width: 16px; height: 16px; flex-shrink: 0; position: relative; }\n.grk1-det-arr::before { content: \"\"; position: absolute; top: 50%; left: 50%; width: 8px; height: 8px; border-right: 2px solid #9c9e80; border-bottom: 2px solid #9c9e80; transform: translate(-50%,-70%) rotate(45deg); transition: transform .22s; }\n.grk1-det[open] .grk1-det-arr::before { transform: translate(-50%,-30%) rotate(225deg); }\n.grk1-det-body { padding: 0 20px 16px; background: #fff; }\n\n.grk1-rl-wrap { padding-top: 14px; display: flex; flex-direction: column; gap: 10px; }\n.grk1-rl-langs { display: flex; flex-wrap: wrap; gap: 6px; }\n.grk1-rl-lang { font-family: sans-serif; font-size: 0.75rem; font-weight: 600; padding: 3px 10px; border-radius: 50px; background: #eaf3de; border: 1px solid #80b050; color: #2a5010; }\n.grk1-rl-ico { font-size: 1.2rem; flex-shrink: 0; }\n.grk1-rl-body { flex: 1; min-width: 0; }\n.grk1-rl-title { display: block; font-family: sans-serif; font-size: 0.82rem; font-weight: 700; color: #fff; }\n.grk1-rl-sub { display: block; font-family: sans-serif; font-size: 0.7rem; color: rgba(255,255,255,0.5); margin-top: 2px; }\n.grk1-rl-arr-ext { font-size: 0.9rem; color: rgba(255,255,255,0.45); flex-shrink: 0; }\n\n\/* ── RESPONSIVE ── *\/\n@media screen and (min-width: 600px) {\n  .grk1-specs { grid-template-columns: repeat(6, 1fr); }\n  .grk1-spec { border-bottom: none; }\n  .grk1-spec:nth-child(3n) { border-right: 1px solid rgba(255,255,255,0.07); }\n  .grk1-spec:last-child { border-right: none; }\n  .grk1-cards { grid-template-columns: repeat(2, 1fr); }\n  .grk1-fs-body { grid-template-columns: 220px 1fr; }\n  .grk1-fs-radar-panel { border-top: none; border-right: 1px solid #e8e2da; }\n  .grk1-fs-info { border-top: none; }\n}\n@media screen and (min-width: 900px) {\n  .grk1-cover { height: 440px; }\n  .grk1-cover-content { padding: 22px 36px 30px; }\n  .grk1-intro-grid { grid-template-columns: 3fr 2fr; align-items: start; padding: 40px 36px 8px; }\n  .grk1-cards { grid-template-columns: repeat(4, 1fr); }\n  .grk1-divider { margin-left: 36px; margin-right: 36px; }\n  .grk1-section-pad { padding: 36px 36px 8px; }\n  .grk1-closing { padding: 28px 36px; }\n  .grk1-fs-body { grid-template-columns: 260px 1fr; }\n  .grk1-fs-radar-panel svg { max-width: 260px; }\n}","brand":"Mariposa Games","offers":[{"title":"Default Title","offer_id":53680095363399,"sku":null,"price":54.99,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0887\/8905\/7863\/files\/GarageRock00.webp?v=1775808936","url":"https:\/\/frogames.it\/en\/products\/garage-rock","provider":"FroGames","version":"1.0","type":"link"}