{"product_id":"happy-puzzle-genius-square","title":"Happy Puzzle - Genius Square","description":"\u003c!-- =====================================================\n     THE GENIUS SQUARE — BLOCK 1\n     FroGames | Shopify theme Concept\n     (compact header without cover)\n     ===================================================== --\u0026gt;\n\n\u003cdiv class=\"tgs1-wrap\"\u003e\n\n\n  \u003c!-- HEADER (no cover) --\u003e\n  \u003cdiv class=\"tgs1-cover\"\u003e\n\n    \u003cdiv class=\"tgs1-cover-content\"\u003e\n\n      \u003cp class=\"tgs1-kicker\"\u003eFroGames — Moments You'll Remember\u003c\/p\u003e\n\n      \u003cp class=\"tgs1-sub\"\u003eRoll the dice, place the blocks, fill the grid. Alone against the clock or face-to-face: the one who thinks — and fits — fastest wins.\u003c\/p\u003e\n\n      \u003cdiv class=\"tgs1-chips\"\u003e\n\n        \u003cspan class=\"tgs1-chip tgs1-chip--accent\"\u003eThe Happy Puzzle Company\u003c\/span\u003e\n        \u003cspan class=\"tgs1-chip\"\u003ePowered by SmartGames\u003c\/span\u003e\n        \u003cspan class=\"tgs1-chip\"\u003eAward-winning 2020\u003c\/span\u003e\n        \u003cspan class=\"tgs1-chip\"\u003eSolo or duel\u003c\/span\u003e\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003c!-- TECHNICAL SPECIFICATIONS --\u003e\n  \u003cdiv class=\"tgs1-specs-bar\"\u003e\n\n    \u003cdiv class=\"tgs1-specs\"\u003e\n\n      \u003cdiv class=\"tgs1-spec\"\u003e\n\n        \u003cspan class=\"tgs1-spec-icon\"\u003e👥\u003c\/span\u003e\n        \u003cspan class=\"tgs1-spec-label\"\u003ePlayers\u003c\/span\u003e\n        \u003cspan class=\"tgs1-spec-val\"\u003e1 – 2\u003c\/span\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"tgs1-spec\"\u003e\n\n        \u003cspan class=\"tgs1-spec-icon\"\u003e⏱️\u003c\/span\u003e\n        \u003cspan class=\"tgs1-spec-label\"\u003eDuration\u003c\/span\u003e\n        \u003cspan class=\"tgs1-spec-val\"\u003e5–10 min\u003c\/span\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"tgs1-spec\"\u003e\n\n        \u003cspan class=\"tgs1-spec-icon\"\u003e🎂\u003c\/span\u003e\n        \u003cspan class=\"tgs1-spec-label\"\u003eAge\u003c\/span\u003e\n        \u003cspan class=\"tgs1-spec-val\"\u003e6+ years\u003c\/span\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"tgs1-spec\"\u003e\n\n        \u003cspan class=\"tgs1-spec-icon\"\u003e🧩\u003c\/span\u003e\n        \u003cspan class=\"tgs1-spec-label\"\u003eMechanics\u003c\/span\u003e\n        \u003cspan class=\"tgs1-spec-val\"\u003eGrid fitting\u003c\/span\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"tgs1-spec\"\u003e\n\n        \u003cspan class=\"tgs1-spec-icon\"\u003e🎲\u003c\/span\u003e\n        \u003cspan class=\"tgs1-spec-label\"\u003eCombinations\u003c\/span\u003e\n        \u003cspan class=\"tgs1-spec-val\"\u003e62.208\u003c\/span\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"tgs1-spec\"\u003e\n\n        \u003cspan class=\"tgs1-spec-icon\"\u003e⚡\u003c\/span\u003e\n        \u003cspan class=\"tgs1-spec-label\"\u003eModes\u003c\/span\u003e\n        \u003cspan class=\"tgs1-spec-val\"\u003eSolo + Challenge\u003c\/span\u003e\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n  \u003c!-- BODY --\u003e\n  \u003cdiv class=\"tgs1-body\"\u003e\n\n\n    \u003c!-- INTRO + EDITORIAL BOXES --\u003e\n    \u003cdiv class=\"tgs1-intro-grid\"\u003e\n\n      \u003cdiv class=\"tgs1-intro-text\"\u003e\n\n        \u003cp class=\"tgs1-label\"\u003eWhat it's about\u003c\/p\u003e\n\n        \u003ch3 class=\"tgs1-h3\"\u003eRoll the dice, fill the grid, beat your opponent\u003c\/h3\u003e\n\n        \u003cp class=\"tgs1-p\"\u003e\u003cstrong\u003eThe Genius Square\u003c\/strong\u003e is the puzzle game by The Happy Puzzle Company, powered by SmartGames, awarded game of the year. It can be played solo or by two players, side by side, on the exact same grid: a race of speed and ingenuity that lasts a few minutes and can be replayed infinitely.\u003c\/p\u003e\n\n        \u003cp class=\"tgs1-p\"\u003eIts operation is ingenious in its simplicity: you roll the 7 dice, which indicate seven coordinates on the 6×6 grid. You place a block on each rolled square, then the race begins: fill all remaining squares with the 9 colored pieces. The first to complete the grid wins and moves to the next level.\u003c\/p\u003e\n\n        \u003cp class=\"tgs1-p\"\u003eThe magic of \u003cstrong\u003eThe Genius Square\u003c\/strong\u003e lies in the numbers: the dice generate 62,208 different combinations and — computer-verified — each one always has at least one solution, often many. Five difficulty levels, from 6 years and up. It trains logic, problem-solving, spatial intuition, and speed. No dead ends: just the satisfaction of fitting the last piece.\u003c\/p\u003e\n\n      \u003c\/div\u003e\n\n\n      \u003cdiv class=\"tgs1-intro-side\"\u003e\n\n        \u003cdiv class=\"tgs1-quote-solo\"\u003e\n\n          \u003cspan class=\"tgs1-qs-icon\"\u003e🎲\u003c\/span\u003e\n          \u003cp class=\"tgs1-qs-text\"\u003eThe dice create the challenge, they don't solve it. You and your opponent start from the exact same grid: what makes the difference is not luck, but who sees the fits faster.\u003c\/p\u003e\n\n          \u003cp class=\"tgs1-qs-note\"\u003eThe secret of The Genius Square in one line\u003c\/p\u003e\n\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"tgs1-quote-solo tgs1-quote-solo--alt\"\u003e\n\n          \u003cspan class=\"tgs1-qs-icon\"\u003e🧠\u003c\/span\u003e\n          \u003cp class=\"tgs1-qs-text\"\u003e62,208 combinations, all computer-verified: each has at least one solution, on average almost two thousand. There is no impossible game — only the one you haven't solved yet.\u003c\/p\u003e\n\n          \u003cp class=\"tgs1-qs-note\"\u003eFrom the game experience\u003c\/p\u003e\n\n        \u003c\/div\u003e\n\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n    \u003cdiv class=\"tgs1-divider\"\u003e\u003c\/div\u003e\n\n\n    \u003c!-- FROGSCORE --\u003e\n    \u003cdiv class=\"tgs1-fs\"\u003e\n\n      \u003cdiv class=\"tgs1-fs-header\"\u003e\n\n        \u003cdiv class=\"tgs1-fs-brand\"\u003e\n\n          \u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0887\/8905\/7863\/files\/FROG_FAVICON.webp?v=1774174794\" alt=\"FroGames\" class=\"tgs1-fs-frog-img\"\u003e\n          \u003cdiv\u003e\n\n            \u003cspan class=\"tgs1-fs-brand-label\"\u003eFrogScore · frogames.business\u003c\/span\u003e\n            \u003cp class=\"tgs1-fs-game-name\"\u003eThe Genius Square\u003c\/p\u003e\n\n          \u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n        \u003cspan class=\"tgs1-fs-cat\" style=\"background:#efe2f7;border-color:#b58fd6;color:#5a2585\"\u003ePuzzle · Challenge\u003c\/span\u003e\n      \u003c\/div\u003e\n\n\n      \u003cdiv class=\"tgs1-fs-body\"\u003e\n\n        \u003cdiv class=\"tgs1-fs-radar-panel\"\u003e\n\n          \u003csvg id=\"tgs1-fs-svg\" viewbox=\"0 0 320 320\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"overflow:visible\"\u003e\u003c\/svg\u003e\n          \u003cdiv class=\"tgs1-fs-tip\" id=\"tgs1-fs-tip\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"tgs1-fs-info\"\u003e\n\n          \u003cspan class=\"tgs1-fs-feel-lbl\"\u003eThe experience\u003c\/span\u003e\n          \u003cdiv class=\"tgs1-fs-feeling\"\u003e\n\n            \u003cspan class=\"tgs1-fs-feel-tag\"\u003eFast\u003c\/span\u003e\n            \u003cspan class=\"tgs1-fs-feel-tag\"\u003eIngenious\u003c\/span\u003e\n            \u003cspan class=\"tgs1-fs-feel-tag\"\u003eCompetitive\u003c\/span\u003e\n          \u003c\/div\u003e\n\n          \u003cspan class=\"tgs1-fs-section-label\"\u003eWho it's for\u003c\/span\u003e\n          \u003cdiv class=\"tgs1-fs-targets\"\u003e\n\n            \u003cdiv class=\"tgs1-fs-target tgs1-fs-si\"\u003e\n\n\u003cspan\u003e🌱\u003c\/span\u003eGateway\u003c\/div\u003e\n\n            \u003cdiv class=\"tgs1-fs-target tgs1-fs-si\"\u003e\n\n\u003cspan\u003e🧒\u003c\/span\u003eKids\u003c\/div\u003e\n\n            \u003cdiv class=\"tgs1-fs-target tgs1-fs-si\"\u003e\n\n\u003cspan\u003e🧘\u003c\/span\u003eSolitaire\u003c\/div\u003e\n\n            \u003cdiv class=\"tgs1-fs-target tgs1-fs-no\"\u003e\n\n\u003cspan\u003e🎯\u003c\/span\u003eExperts\u003c\/div\u003e\n\n            \u003cdiv class=\"tgs1-fs-target tgs1-fs-no\"\u003e\n\n\u003cspan\u003e🍕\u003c\/span\u003eParty\u003c\/div\u003e\n\n            \u003cdiv class=\"tgs1-fs-target tgs1-fs-no\"\u003e\n\n\u003cspan\u003e🧠\u003c\/span\u003eHeavy game\u003c\/div\u003e\n\n          \u003c\/div\u003e\n\n          \u003cdiv class=\"tgs1-fs-verdict\"\u003e\n\n            \u003cdiv class=\"tgs1-fs-verdict-title\"\u003eIn summary\u003c\/div\u003e\n\n            \u003cdiv class=\"tgs1-fs-verdict-text\"\u003eA lightning-fast puzzle game that's impossible to put down: roll the dice, place the blocks, and race to fill the grid. Solo or in a duel, from age 6. 62,208 always solvable combinations make it one of the most re-playable games ever — pure skill under speed.\u003c\/div\u003e\n\n          \u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"tgs1-fs-footer\"\u003e\n\n\u003cimg src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0887\/8905\/7863\/files\/FROG_FAVICON.webp?v=1774174794\" alt=\"FroGames\" class=\"tgs1-fs-footer-frog\"\u003e FrogScore · FroGames editorial rating · based on rules, official materials, and game sessions\u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n    \u003cscript\u003e\n    (function(){\n      var PI2=Math.PI*2;\n      var dims=[\n        {l:'Rigiocabilit\\u00e0',v:5, note:\"62.208 combinazioni sempre risolvibili: non vedrai mai la stessa griglia\"},\n        {l:'Logica',        v:4, note:\"Incastri spaziali a incastro: leggere la griglia \\u00e8 tutto\"},\n        {l:'Accessibilit\\u00e0',v:4, note:\"Regole in 30 secondi: tira, blocca, riempi. Dai 6 anni\"},\n        {l:'Fortuna',       v:2, note:\"I dadi decidono il setup, non la soluzione: poi conta l'abilit\\u00e0\"},\n        {l:'Complessit\\u00e0', v:1, note:\"Semplicissimo da spiegare: nessun manuale da studiare\"}\n      ];\n      var accent='#D9670F';\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('tgs1-fs-svg');\n      var tip=document.getElementById('tgs1-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 tgs1-draw{to{stroke-dashoffset:0}}@keyframes tgs1-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:tgs1-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:tgs1-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:tgs1-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\n    \u003cdiv class=\"tgs1-divider\"\u003e\u003c\/div\u003e\n\n\n    \u003c!-- GAME ELEMENTS --\u003e\n    \u003cdiv class=\"tgs1-section-pad\"\u003e\n\n      \u003cp class=\"tgs1-label\"\u003eOn the table\u003c\/p\u003e\n\n      \u003ch3 class=\"tgs1-h3\"\u003eWhat you have in your hands\u003c\/h3\u003e\n\n      \u003cdiv class=\"tgs1-cards\"\u003e\n\n        \u003cdiv class=\"tgs1-card\"\u003e\n\n          \u003cspan class=\"tgs1-card-icon\"\u003e🎲\u003c\/span\u003e\n          \u003ch4 class=\"tgs1-card-name\"\u003e7 dice\u003c\/h4\u003e\n\n          \u003cp class=\"tgs1-card-desc\"\u003eThey are rolled all together and indicate seven coordinates (from A1 to F6). They generate the ever-changing challenge.\u003c\/p\u003e\n\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"tgs1-card\"\u003e\n\n          \u003cspan class=\"tgs1-card-icon\"\u003e🟪\u003c\/span\u003e\n          \u003ch4 class=\"tgs1-card-name\"\u003e7 blocks\u003c\/h4\u003e\n\n          \u003cp class=\"tgs1-card-desc\"\u003eThey are placed on the squares indicated by the dice. They block the way and define the space you need to fill.\u003c\/p\u003e\n\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"tgs1-card\"\u003e\n\n          \u003cspan class=\"tgs1-card-icon\"\u003e🧩\u003c\/span\u003e\n          \u003ch4 class=\"tgs1-card-name\"\u003e9 colored pieces\u003c\/h4\u003e\n\n          \u003cp class=\"tgs1-card-desc\"\u003eDifferent shapes, in the style of wooden tetrominos. They must all be fitted to cover every empty square on the grid.\u003c\/p\u003e\n\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"tgs1-card\"\u003e\n\n          \u003cspan class=\"tgs1-card-icon\"\u003e▦\u003c\/span\u003e\n          \u003ch4 class=\"tgs1-card-name\"\u003eThe 6×6 grid\u003c\/h4\u003e\n\n          \u003cp class=\"tgs1-card-desc\"\u003eThe field to be completed. You'll find two in the box: one for you and one for your challenger, identical in every round.\u003c\/p\u003e\n\n        \u003c\/div\u003e\n\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n\n    \u003c!-- CLOSING --\u003e\n    \u003cdiv class=\"tgs1-closing\"\u003e\n\n      \u003cp class=\"tgs1-closing-text\"\u003eLast piece in hand, one square free, the opponent's gaze searching for the same thing: and you fit it first. It always happens with The Genius Square.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n\n    \u003c!-- BOX CONTENT --\u003e\n    \u003cdiv class=\"tgs1-box-section\"\u003e\n\n      \u003cdetails class=\"tgs1-det tgs1-det--last\"\u003e\n        \u003csummary class=\"tgs1-det-sum\"\u003e\n          \u003cdiv class=\"tgs1-det-left\"\u003e\n\n\u003cspan class=\"tgs1-det-ico\"\u003e🧩\u003c\/span\u003e\u003cdiv\u003e\n\n\u003cspan class=\"tgs1-det-title\"\u003eComponents\u003c\/span\u003e\u003cspan class=\"tgs1-det-sub\"\u003e5 items · complete game for 2\u003c\/span\u003e\n\n\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n          \u003cspan class=\"tgs1-det-arr\"\u003e\u003c\/span\u003e\n        \u003c\/summary\u003e\n        \u003cdiv class=\"tgs1-det-body\"\u003e\n\n          \u003cdiv class=\"tgs1-comp-grid\"\u003e\n\n            \u003cdiv class=\"tgs1-comp\"\u003e\n\n\u003cspan class=\"tgs1-comp-qty\"\u003e2\u003c\/span\u003e\u003cspan class=\"tgs1-comp-lbl\"\u003e6×6 game grids\u003c\/span\u003e\n\n\u003c\/div\u003e\n\n            \u003cdiv class=\"tgs1-comp\"\u003e\n\n\u003cspan class=\"tgs1-comp-qty\"\u003e2×9\u003c\/span\u003e\u003cspan class=\"tgs1-comp-lbl\"\u003eColored pieces (two sets of 9)\u003c\/span\u003e\n\n\u003c\/div\u003e\n\n            \u003cdiv class=\"tgs1-comp\"\u003e\n\n\u003cspan class=\"tgs1-comp-qty\"\u003e2×7\u003c\/span\u003e\u003cspan class=\"tgs1-comp-lbl\"\u003eBlocks (two sets of 7)\u003c\/span\u003e\n\n\u003c\/div\u003e\n\n            \u003cdiv class=\"tgs1-comp\"\u003e\n\n\u003cspan class=\"tgs1-comp-qty\"\u003e7\u003c\/span\u003e\u003cspan class=\"tgs1-comp-lbl\"\u003eCoordinate dice\u003c\/span\u003e\n\n\u003c\/div\u003e\n\n            \u003cdiv class=\"tgs1-comp\"\u003e\n\n\u003cspan class=\"tgs1-comp-qty\"\u003e1\u003c\/span\u003e\u003cspan class=\"tgs1-comp-lbl\"\u003eRulebook\u003c\/span\u003e\n\n\u003c\/div\u003e\n\n          \u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n      \u003c\/details\u003e\n    \u003c\/div\u003e\n\n\n  \u003c\/div\u003e\n\n\n\n\n\u003cstyle\u003e\n.tgs1-wrap, .tgs1-wrap * { box-sizing: border-box; margin: 0; padding: 0; }\n.tgs1-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: #2e1457;\n}\n\n\/* ── INTESTAZIONE (senza copertina) ── *\/\n.tgs1-cover { position: relative; width: 100%; background: linear-gradient(150deg, #2e1457 0%, #3d1c70 100%); border-bottom: 3px solid #E8731C; }\n.tgs1-cover-content { position: relative; z-index: 2; padding: 22px 26px 22px; width: 100%; }\n.tgs1-kicker { display: block; color: #FF8C2E; font-family: sans-serif; font-size: 0.7rem; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; margin-bottom: 8px; }\n.tgs1-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.tgs1-chips { display: flex; flex-wrap: wrap; gap: 7px; }\n.tgs1-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.tgs1-chip--accent { background: #D9670F; border-color: #D9670F; }\n\n\/* ── SPECS ── *\/\n.tgs1-specs-bar { background: #250f47; padding: 0 24px; border-top: 1px solid rgba(255,255,255,0.06); }\n.tgs1-specs { display: grid; grid-template-columns: repeat(3, 1fr); }\n.tgs1-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.tgs1-spec:nth-child(3n) { border-right: none; }\n.tgs1-spec:nth-last-child(-n+3) { border-bottom: none; }\n.tgs1-spec-icon { font-size: 1.2rem; }\n.tgs1-spec-label { color: rgba(255,255,255,0.4); font-family: sans-serif; font-size: 0.6rem; text-transform: uppercase; letter-spacing: 1px; }\n.tgs1-spec-val { color: #fff; font-family: sans-serif; font-size: 0.84rem; font-weight: 800; }\n\n\/* ── BODY ── *\/\n.tgs1-body { background: #F1EAF6; }\n\n\/* ── INTRO ── *\/\n.tgs1-intro-grid { display: grid; grid-template-columns: 1fr; gap: 26px; padding: 36px 28px 8px; }\n.tgs1-label { display: block; font-family: sans-serif; font-size: 0.68rem; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; color: #C25A0E; margin-bottom: 7px; }\n.tgs1-h3 { font-size: clamp(1.4rem, 2.5vw, 2.1rem); font-weight: 900; color: #2e1457; line-height: 1.15; margin-bottom: 16px; }\n.tgs1-p { font-family: sans-serif; font-size: 0.95rem; color: #463357; margin-bottom: 13px; line-height: 1.65; max-width: 700px; }\n\n\/* ── BOX EDITORIALI ── *\/\n.tgs1-quote-solo { background: #3d1c70; border-radius: 14px; padding: 18px 20px; margin-bottom: 12px; border-left: 4px solid #E8731C; }\n.tgs1-quote-solo--alt { background: #133a52; border-left-color: #2E9BC4; }\n.tgs1-qs-icon { font-size: 1.4rem; display: block; margin-bottom: 8px; }\n.tgs1-qs-text { color: #fff; font-style: italic; font-size: 0.9rem; line-height: 1.6; margin-bottom: 8px; font-family: Georgia, serif; }\n.tgs1-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.tgs1-divider { height: 1px; background: #ddd0e8; margin: 32px 28px 0; }\n\n\/* ── FROGSCORE ── *\/\n.tgs1-fs { background:#fff; border-top:1px solid #e0d8cc; border-bottom:1px solid #e0d8cc; }\n.tgs1-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.tgs1-fs-brand { display:flex; align-items:center; gap:9px; }\n.tgs1-fs-frog-img { width:28px; height:28px; object-fit:contain; flex-shrink:0; }\n.tgs1-fs-footer-frog { width:16px; height:16px; object-fit:contain; vertical-align:middle; margin-right:2px; }\n.tgs1-fs-brand-label { display:block; font-family:sans-serif; font-size:10px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:#6b5e48; }\n.tgs1-fs-game-name { font-family:sans-serif; font-size:14px; font-weight:700; color:#1a1208; margin-top:2px; }\n.tgs1-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.tgs1-fs-body { display:grid; grid-template-columns:1fr; background:#f7f4ef; }\n.tgs1-fs-radar-panel { padding:20px 16px; display:flex; justify-content:center; background:#f7f4ef; position:relative; }\n.tgs1-fs-radar-panel svg { width:100%; max-width:270px; height:auto; display:block; }\n.tgs1-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.tgs1-fs-info { padding:16px 18px 18px; background:#f7f4ef; border-top:1px solid #e8e2da; }\n.tgs1-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.tgs1-fs-feeling { display:flex; flex-wrap:wrap; gap:7px; margin-bottom:16px; }\n.tgs1-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.tgs1-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.tgs1-fs-targets { display:grid; grid-template-columns:repeat(auto-fill,minmax(110px,1fr)); gap:7px; margin-bottom:16px; }\n.tgs1-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.tgs1-fs-target span { font-size:14px; flex-shrink:0; }\n.tgs1-fs-si { background:#fff; border-color:#c8c0b0; color:#2a1a08; }\n.tgs1-fs-no { background:transparent; border-color:#e0d8d0; color:#b8a898; opacity:.45; text-decoration:line-through; }\n.tgs1-fs-verdict { background:#fff; border-radius:10px; padding:12px 14px; border:1px solid #e0d8cc; }\n.tgs1-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.tgs1-fs-verdict-text { font-family:sans-serif; font-size:12px; color:#3d2810; line-height:1.65; }\n.tgs1-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.tgs1-section-pad { padding: 32px 28px 8px; }\n.tgs1-cards { display: grid; grid-template-columns: 1fr; gap: 11px; margin-top: 16px; }\n.tgs1-card { background: #fff; border-radius: 14px; padding: 16px 18px; border: 1px solid #e2d6ec; box-shadow: 0 2px 10px rgba(0,0,0,0.05); transition: transform 0.2s ease, box-shadow 0.2s ease; }\n.tgs1-card:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(0,0,0,0.09); }\n.tgs1-card-icon { font-size: 1.6rem; display: block; margin-bottom: 7px; }\n.tgs1-card-name { font-size: 0.95rem; font-weight: 900; color: #C25A0E; margin-bottom: 5px; }\n.tgs1-card-desc { font-family: sans-serif; font-size: 0.85rem; color: #463357; line-height: 1.55; }\n\n\/* ── CLOSING ── *\/\n.tgs1-closing { background: #2e1457; padding: 26px 28px; border-top: 3px solid #E8731C; }\n.tgs1-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\/* ── CONTENUTO SCATOLA ── *\/\n.tgs1-box-section { background: #F1EAF6; border-top: 1px solid #ddd0e8; }\n.tgs1-det { border-bottom: 1px solid #e2d6ec; background: #fff; }\n.tgs1-det--last { border-bottom: none; }\n.tgs1-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.tgs1-det-sum::-webkit-details-marker { display: none; }\n.tgs1-det-sum::marker { display: none; }\n.tgs1-det[open] .tgs1-det-sum { background: #f8f2fb; }\n.tgs1-det-sum:hover { background: #f8f2fb; }\n.tgs1-det-left { display: flex; align-items: center; gap: 10px; }\n.tgs1-det-ico { font-size: 17px; flex-shrink: 0; }\n.tgs1-det-title { font-family: sans-serif; font-size: 13px; font-weight: 700; color: #2e1457; display: block; }\n.tgs1-det-sub { font-family: sans-serif; font-size: 11px; color: #9484a0; margin-top: 1px; display: block; }\n.tgs1-det-arr { width: 16px; height: 16px; flex-shrink: 0; position: relative; }\n.tgs1-det-arr::before { content: \"\"; position: absolute; top: 50%; left: 50%; width: 8px; height: 8px; border-right: 2px solid #9484a0; border-bottom: 2px solid #9484a0; transform: translate(-50%,-70%) rotate(45deg); transition: transform .22s; }\n.tgs1-det[open] .tgs1-det-arr::before { transform: translate(-50%,-30%) rotate(225deg); }\n.tgs1-det-body { padding: 0 20px 16px; background: #fff; }\n\n.tgs1-comp-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:7px; padding-top:14px; }\n.tgs1-comp { display:flex; align-items:center; gap:8px; padding:8px 10px; background:#f5eefa; border-radius:8px; border:1px solid #e2d6ec; }\n.tgs1-comp-qty { font-family:sans-serif; font-size:0.85rem; font-weight:800; color:#C25A0E; min-width:34px; flex-shrink:0; }\n.tgs1-comp-lbl { font-family:sans-serif; font-size:0.78rem; color:#463357; line-height:1.3; }\n\n\/* ── RESPONSIVE ── *\/\n@media screen and (min-width: 600px) {\n  .tgs1-specs { grid-template-columns: repeat(6, 1fr); }\n  .tgs1-spec { border-bottom: none; }\n  .tgs1-spec:nth-child(3n) { border-right: 1px solid rgba(255,255,255,0.07); }\n  .tgs1-spec:last-child { border-right: none; }\n  .tgs1-cards { grid-template-columns: repeat(2, 1fr); }\n  .tgs1-fs-body { grid-template-columns: 220px 1fr; }\n  .tgs1-fs-radar-panel { border-top: none; border-right: 1px solid #e8e2da; }\n  .tgs1-fs-info { border-top: none; }\n}\n@media screen and (min-width: 900px) {\n  .tgs1-cover-content { padding: 24px 36px 24px; }\n  .tgs1-intro-grid { grid-template-columns: 3fr 2fr; align-items: start; padding: 40px 36px 8px; }\n  .tgs1-cards { grid-template-columns: repeat(4, 1fr); }\n  .tgs1-divider { margin-left: 36px; margin-right: 36px; }\n  .tgs1-section-pad { padding: 36px 36px 8px; }\n  .tgs1-closing { padding: 28px 36px; }\n  .tgs1-comp-grid { grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); }\n}\n\u003c\/style\u003e","brand":"Smart Games","offers":[{"title":"Default Title","offer_id":54182067437895,"sku":null,"price":25.99,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0887\/8905\/7863\/files\/Genius_Square_00.webp?v=1781721503","url":"https:\/\/frogames.business\/en\/products\/happy-puzzle-genius-square","provider":"FroGames","version":"1.0","type":"link"}