{"product_id":"siege-perilous","title":"Siege Perilous","description":"\u003cdiv class=\"fg1-wrap\"\u003e\n\n  \u003cdiv class=\"fg1-hero\"\u003e\n\n    \u003cdiv class=\"fg1-hero-content\"\u003e\n\n      \u003cp class=\"fg1-kicker\"\u003eFroGames — Moments You'll Remember\u003c\/p\u003e\n\n      \u003cp class=\"fg1-sub\"\u003eBetween a tournament and a quest in the Forest Sauvage, someone found a legendary treasure. Someone else lost half their crew to a giant. And no one remembers who was winning anymore.\u003c\/p\u003e\n\n      \u003cdiv class=\"fg1-chips\"\u003e\n\n\u003cspan class=\"fg1-chip fg1-chip--accent\"\u003eNarrative Sandbox\u003c\/span\u003e\u003cspan class=\"fg1-chip\"\u003ePlay to Z\u003c\/span\u003e\u003cspan class=\"fg1-chip\"\u003eLive Camelot\u003c\/span\u003e\n\n\u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"fg1-specs-bar\"\u003e\n\n    \u003cdiv class=\"fg1-specs\"\u003e\n\n      \u003cdiv class=\"fg1-spec\"\u003e\n\n        \u003cspan class=\"fg1-spec-icon\"\u003e👥\u003c\/span\u003e\n        \u003cspan class=\"fg1-spec-label\"\u003ePlayers\u003c\/span\u003e\n        \u003cspan class=\"fg1-spec-val\"\u003e1 – 4\u003c\/span\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"fg1-spec\"\u003e\n\n        \u003cspan class=\"fg1-spec-icon\"\u003e⏱️\u003c\/span\u003e\n        \u003cspan class=\"fg1-spec-label\"\u003eDuration\u003c\/span\u003e\n        \u003cspan class=\"fg1-spec-val\"\u003e90–180 min\u003c\/span\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"fg1-spec\"\u003e\n\n        \u003cspan class=\"fg1-spec-icon\"\u003e🎂\u003c\/span\u003e\n        \u003cspan class=\"fg1-spec-label\"\u003eAge\u003c\/span\u003e\n        \u003cspan class=\"fg1-spec-val\"\u003e8+ years\u003c\/span\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"fg1-spec\"\u003e\n\n        \u003cspan class=\"fg1-spec-icon\"\u003e🎲\u003c\/span\u003e\n        \u003cspan class=\"fg1-spec-label\"\u003eMechanics\u003c\/span\u003e\n        \u003cspan class=\"fg1-spec-val\"\u003eAction Points + Sandbox\u003c\/span\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"fg1-spec\"\u003e\n\n        \u003cspan class=\"fg1-spec-icon\"\u003e🗺️\u003c\/span\u003e\n        \u003cspan class=\"fg1-spec-label\"\u003eMap\u003c\/span\u003e\n        \u003cspan class=\"fg1-spec-val\"\u003e12 modular realms\u003c\/span\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"fg1-spec\"\u003e\n\n        \u003cspan class=\"fg1-spec-icon\"\u003e🎨\u003c\/span\u003e\n        \u003cspan class=\"fg1-spec-label\"\u003eArt\u003c\/span\u003e\n        \u003cspan class=\"fg1-spec-val\"\u003e250 medieval paintings\u003c\/span\u003e\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"fg1-body\"\u003e\n\n    \u003cdiv class=\"fg1-intro-grid\"\u003e\n\n      \u003cdiv class=\"fg1-intro-text\"\u003e\n\n        \u003cp class=\"fg1-label\"\u003eWHAT IT IS ABOUT\u003c\/p\u003e\n\n        \u003ch3 class=\"fg1-h3\"\u003eA living Arthurian world where you forge your own legend\u003c\/h3\u003e\n\n        \u003cp class=\"fg1-p\"\u003eDesigned by \u003cstrong\u003eIvan Alexiev and Brian Saliba\u003c\/strong\u003e, with over \u003cstrong\u003e250 original hand-painted artworks\u003c\/strong\u003e by artist Jay Johnstone using authentic medieval techniques and pigments, Siege Perilous is a thematic eurogame that brings five centuries of Arthurian literature to the table. From Chrétien de Troyes to Thomas Malory, from Geoffrey of Monmouth to Edmund Spenser: every narrative element is drawn from historical British, French, German, Italian, and Dutch sources.\u003c\/p\u003e\n\n        \u003cp class=\"fg1-p\"\u003eChoose one of eight knights — Dame Britomart, Sir Morien, Sir Wigalois, and others — each with unique stats and a personal quest. Then traverse \u003cstrong\u003e12 dynamic realms\u003c\/strong\u003e full of castles, churches, markets, dungeons, and the Forest Sauvage. Face tournaments, complete quests for Merlin, embark on foreign campaigns, seek legendary treasures. The map itself changes as you play: new events emerge, Merlin appears with urgent tasks, opportunities vanish. Each game writes a different legend, your own.\u003c\/p\u003e\n\n        \n      \u003c\/div\u003e\n\n      \u003cdiv class=\"fg1-intro-side\"\u003e\n\n        \u003cp class=\"fg1-quote-header\"\u003eWhat they say abroad\u003c\/p\u003e\n\n        \u003cdiv class=\"fg1-quote\" itemscope itemtype=\"https:\/\/schema.org\/Review\"\u003e\n\n          \u003cp class=\"fg1-quote-text\" itemprop=\"reviewBody\"\u003eEvery choice you make, every die you roll, weaves a tale that could not exist before this game.\u003c\/p\u003e\n\n          \n          \u003cp class=\"fg1-quote-source\"\u003e— \u003cspan itemprop=\"author\" itemscope itemtype=\"https:\/\/schema.org\/Organization\"\u003e\u003cspan itemprop=\"name\"\u003eFroGames\u003c\/span\u003e\u003c\/span\u003e\u003c\/p\u003e\n\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"fg1-quote fg1-quote--dark\" itemscope itemtype=\"https:\/\/schema.org\/Review\"\u003e\n\n          \u003cp class=\"fg1-quote-text\" itemprop=\"reviewBody\"\u003eA breathing sandbox: you don't play a written story, but build a new one every time you open the box.\u003c\/p\u003e\n\n          \n          \u003cp class=\"fg1-quote-source\"\u003e— \u003cspan itemprop=\"author\" itemscope itemtype=\"https:\/\/schema.org\/Organization\"\u003e\u003cspan itemprop=\"name\"\u003eFroGames\u003c\/span\u003e\u003c\/span\u003e\u003c\/p\u003e\n\n        \u003c\/div\u003e\n\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"fg1-divider\"\u003e\u003c\/div\u003e\n\n    \u003cdiv class=\"fg1-fs\"\u003e\n\n      \u003cdiv class=\"fg1-fs-header\"\u003e\n\n        \u003cdiv class=\"fg1-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=\"fg1-fs-frog-img\"\u003e\n          \u003cdiv\u003e\n\n            \u003cspan class=\"fg1-fs-brand-label\"\u003eFrogScore · frogames.business\u003c\/span\u003e\n            \u003cp class=\"fg1-fs-game-name\"\u003eSiege Perilous\u003c\/p\u003e\n\n          \u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n        \u003cspan class=\"fg1-fs-cat\" style=\"background:#fef0e0;border-color:#d4a050;color:#6a3800\"\u003eNarrative · Sandbox\u003c\/span\u003e\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"fg1-fs-body\"\u003e\n\n        \u003cdiv class=\"fg1-fs-radar-panel\"\u003e\n\n          \u003csvg id=\"fg1-fs-svg\" viewbox=\"0 0 320 320\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"overflow:visible\"\u003e\u003c\/svg\u003e\n          \u003cdiv class=\"fg1-fs-tip\" id=\"fg1-fs-tip\"\u003e\u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"fg1-fs-info\"\u003e\n\n          \u003cspan class=\"fg1-fs-feel-lbl\"\u003eThe Experience\u003c\/span\u003e\n          \u003cdiv class=\"fg1-fs-feeling\"\u003e\n\n\u003cspan class=\"fg1-fs-feel-tag\"\u003eEpic\u003c\/span\u003e\u003cspan class=\"fg1-fs-feel-tag\"\u003eExploratory\u003c\/span\u003e\u003cspan class=\"fg1-fs-feel-tag\"\u003ePersonal\u003c\/span\u003e\n\n\u003c\/div\u003e\n\n          \u003cspan class=\"fg1-fs-section-label\"\u003eFor Whom\u003c\/span\u003e\n          \u003cdiv class=\"fg1-fs-targets\"\u003e\n\n\u003cdiv class=\"fg1-fs-target fg1-fs-si\"\u003e\n\n\u003cspan\u003e🎯\u003c\/span\u003eExperts\u003c\/div\u003e\n\n\u003cdiv class=\"fg1-fs-target fg1-fs-no\"\u003e\n\n\u003cspan\u003e🌱\u003c\/span\u003eGateway\u003c\/div\u003e\n\n\u003cdiv class=\"fg1-fs-target fg1-fs-si\"\u003e\n\n\u003cspan\u003e🎲\u003c\/span\u003eFamily game\u003c\/div\u003e\n\n\u003cdiv class=\"fg1-fs-target fg1-fs-no\"\u003e\n\n\u003cspan\u003e🍕\u003c\/span\u003eParty\u003c\/div\u003e\n\n\u003cdiv class=\"fg1-fs-target fg1-fs-no\"\u003e\n\n\u003cspan\u003e🧒\u003c\/span\u003eChildren\u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\n          \u003cdiv class=\"fg1-fs-verdict\"\u003e\n\n            \u003cdiv class=\"fg1-fs-verdict-title\"\u003eIn Summary\u003c\/div\u003e\n\n            \u003cdiv class=\"fg1-fs-verdict-text\"\u003eSiege Perilous is for those seeking a eurogame that tells stories. The structure is solid, replayability is very high, but the heart is narrative: each game builds a unique legend, made of choices, dice, and random encounters that become shared memories.\u003c\/div\u003e\n\n          \u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"fg1-fs-solo\"\u003e\n\n        \u003cdiv class=\"fg1-fs-solo-row\"\u003e\n\n          \u003cspan class=\"fg1-fs-solo-icon\"\u003e🧘\u003c\/span\u003e\n          \u003cdiv class=\"fg1-fs-solo-text\"\u003e\n\n            \u003cspan class=\"fg1-fs-solo-label\"\u003eSolo Mode · Official\u003c\/span\u003e\n            \u003cspan class=\"fg1-fs-solo-stars\" aria-label=\"4 out of 5\"\u003e★★★★☆\u003c\/span\u003e\n          \u003c\/div\u003e\n\n        \u003c\/div\u003e\n\n        \u003cp class=\"fg1-fs-solo-note\"\u003eThe game is designed for solo play from the basic rules: you face tournaments, quests for Merlin, foreign campaigns, and encounters in the Forest Sauvage exactly as in multiplayer. You only lose the competitive Contest Sites and direct interaction, but the richness of the sandbox remains intact. A complete experience for those who want to live their own Arthurian quest.\u003c\/p\u003e\n\n      \u003c\/div\u003e\n\n      \u003cdiv class=\"fg1-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=\"fg1-fs-footer-frog\"\u003e FrogScore · FroGames editorial rating · based on rules, international reviews, and play sessions\u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n    \u003cscript\u003e\n    (function(){\n      var PI2=Math.PI*2;\n      var dims=[{\"label\": \"Rigiocabilità\", \"value\": 5, \"note\": \"Otto personaggi, 100+ cavalieri, 20 campagne, 20 intrighi, 30 incontri nel Forest Sauvage: ogni partita cambia radicalmente percorso e storia.\"}, {\"label\": \"Strategia\", \"value\": 4, \"note\": \"Gestisci action points, scegli quali statistiche potenziare, quali missioni accettare. Le scelte pesano, ma il dado può ribaltare i piani.\"}, {\"label\": \"Complessità\", \"value\": 4, \"note\": \"Peso medio-alto: tante opzioni, mappa in evoluzione, condizioni multiple. Non è un gateway, ma a 8+ anni si può giocare con adulti che guidano.\"}, {\"label\": \"Tensione\", \"value\": 3, \"note\": \"La competizione c'è (conquistare il Siege Perilous), ma non è frontale. Gare ai tornei, Contest Sites diretti, ma molto spazio per percorsi paralleli.\"}, {\"label\": \"Fortuna\", \"value\": 3, \"note\": \"Dadi presenti nei combattimenti e in alcuni incontri. Il dado può complicare, ma raramente distrugge una strategia solida.\"}, {\"label\": \"Interazione\", \"value\": 2, \"note\": \"Semi-cooperativa nelle Legendary Tales, competitiva nel resto. Incroci gli altri ai tornei o nei Contest Sites, ma ognuno scrive la propria cerca.\"}];\n      var accent='#8a4800';\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('fg1-fs-svg');\n      var tip=document.getElementById('fg1-fs-tip');\n      if(!svg) return;\n      var ns='http:\/\/www.w3.org\/2000\/svg';\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      var st=document.createElement('style');\n      st.textContent='@keyframes fg1-draw{to{stroke-dashoffset:0}}@keyframes fg1-fade{to{opacity:1}}';\n      document.head.appendChild(st);\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      var dpts=dims.map(function(d,i){var p=pt(R*(d.value\/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.value\/5),i),p2=pt(R*(dims[(i+1)%n].value\/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:fg1-draw 0.9s ease-out 0.1s forwards';\n      svg.appendChild(shape);\n      dims.forEach(function(d,i){\n        var p=pt(R*(d.value\/5),i);\n        var angle=off+i*step;\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].label+' '+dims[idx].value+'\/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        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:fg1-fade 0.3s ease-out '+(0.8+i*0.07).toFixed(2)+'s forwards';\n        svg.appendChild(c);\n        var nd=R*(d.value\/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.value;\n        vt.style.cssText='opacity:0;animation:fg1-fade 0.3s ease-out '+(0.85+i*0.07).toFixed(2)+'s forwards';\n        svg.appendChild(vt);\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.value\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.label;\n        svg.appendChild(t);\n      });\n    })();\n    \u003c\/script\u003e\n    \u003cdiv class=\"fg1-divider\"\u003e\u003c\/div\u003e\n\n    \u003cdiv class=\"fg1-section-pad\"\u003e\n\n      \u003cp class=\"fg1-label\"\u003eWhat you will find in the world\u003c\/p\u003e\n\n      \u003ch3 class=\"fg1-h3\"\u003eFour pillars of your adventure\u003c\/h3\u003e\n\n      \u003cdiv class=\"fg1-cards\"\u003e\n\n        \u003cdiv class=\"fg1-card\"\u003e\n\n          \u003cspan class=\"fg1-card-icon\"\u003e⚔️\u003c\/span\u003e\n          \u003ch4 class=\"fg1-card-name\"\u003e100 Knights and Courtiers\u003c\/h4\u003e\n\n          \u003cp class=\"fg1-card-desc\"\u003eEvery castle hosts tournaments and courts: challenge knights, impress nobles, gain allies or enemies. Each has unique stats and specific rewards. Winning isn't enough: how you fight also matters.\u003c\/p\u003e\n\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"fg1-card\"\u003e\n\n          \u003cspan class=\"fg1-card-icon\"\u003e🗺️\u003c\/span\u003e\n          \u003ch4 class=\"fg1-card-name\"\u003e20 Foreign Campaigns\u003c\/h4\u003e\n\n          \u003cp class=\"fg1-card-desc\"\u003eBoard a ship and set off: diplomatic missions to Rome, cursed bowers in Ireland, pilgrimages to Spain. Each campaign offers glory, resources, and stories no one else will experience in your game.\u003c\/p\u003e\n\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"fg1-card\"\u003e\n\n          \u003cspan class=\"fg1-card-icon\"\u003e🌲\u003c\/span\u003e\n          \u003ch4 class=\"fg1-card-name\"\u003eForest Sauvage\u003c\/h4\u003e\n\n          \u003cp class=\"fg1-card-desc\"\u003e30 random encounters in the wild forest: fairy markets, wounded giants, the Cath Palug to hunt. Let go of the reins, follow destiny, and perhaps the Lady of the Lake will test you.\u003c\/p\u003e\n\n        \u003c\/div\u003e\n\n        \u003cdiv class=\"fg1-card\"\u003e\n\n          \u003cspan class=\"fg1-card-icon\"\u003e🏆\u003c\/span\u003e\n          \u003ch4 class=\"fg1-card-name\"\u003e22 Legendary Treasures\u003c\/h4\u003e\n\n          \u003cp class=\"fg1-card-desc\"\u003eWeapons, artifacts, creatures, vehicles: Lugh's spear, Morgan Mwynfawr's Chariot, Cavall the lord of hounds. Each treasure changes how you approach the world.\u003c\/p\u003e\n\n        \u003c\/div\u003e\n\n      \u003c\/div\u003e\n\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"fg1-closing\"\u003e\n\n      \u003cp class=\"fg1-closing-text\"\u003eIn two hours someone will have defeated a dragon. Someone else will have betrayed an oath. And the Siege Perilous still awaits its true knight.\u003c\/p\u003e\n\n    \u003c\/div\u003e\n\n  \u003c\/div\u003e\n\n\n\u003c\/div\u003e\n\u003cstyle\u003e\n.fg1-wrap, .fg1-wrap * { box-sizing: border-box; margin: 0; padding: 0; }\n.fg1-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: #1a1a1a;\n}\n.fg1-hero {\n  background: linear-gradient(135deg, #1a1a1a 0%, #222222 50%, #1a1a1a 100%);\n  padding: 32px 26px 36px;\n  position: relative;\n  overflow: hidden;\n}\n.fg1-hero::before {\n  content: \"\";\n  position: absolute;\n  inset: 0;\n  background: radial-gradient(ellipse at top right, rgba(138,72,0,0.08) 0%, transparent 60%);\n  pointer-events: none;\n}\n.fg1-hero-content { position: relative; z-index: 2; }\n.fg1-kicker { display: block; color: #E8B000; font-family: sans-serif; font-size: 0.7rem; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; margin-bottom: 10px; }\n.fg1-sub { color: rgba(255,255,255,0.88); font-family: Georgia, serif; font-size: 1rem; font-style: italic; line-height: 1.55; max-width: 580px; margin-bottom: 18px; }\n.fg1-chips { display: flex; flex-wrap: wrap; gap: 7px; }\n.fg1-chip { background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.2); color: #fff; font-family: sans-serif; padding: 4px 12px; border-radius: 50px; font-size: 0.78rem; font-weight: 600; }\n.fg1-chip--accent { background: #8a4800; border-color: #8a4800; }\n.fg1-specs-bar { background: #160a02; padding: 0 24px; border-top: 1px solid rgba(255,255,255,0.06); }\n.fg1-specs { display: grid; grid-template-columns: repeat(3, 1fr); }\n.fg1-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.fg1-spec:nth-child(3n) { border-right: none; }\n.fg1-spec:nth-last-child(-n+3) { border-bottom: none; }\n.fg1-spec-icon { font-size: 1.2rem; }\n.fg1-spec-label { color: rgba(255,255,255,0.4); font-family: sans-serif; font-size: 0.6rem; text-transform: uppercase; letter-spacing: 1px; }\n.fg1-spec-val { color: #fff; font-family: sans-serif; font-size: 0.84rem; font-weight: 800; }\n.fg1-body { background: #F5EDD8; }\n.fg1-intro-grid { display: grid; grid-template-columns: 1fr; gap: 26px; padding: 36px 28px 8px; }\n.fg1-label { display: block; font-family: sans-serif; font-size: 0.68rem; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; color: #8a4800; margin-bottom: 7px; }\n.fg1-h3 { font-size: clamp(1.4rem, 2.5vw, 2.1rem); font-weight: 900; color: #1a0800; line-height: 1.15; margin-bottom: 16px; }\n.fg1-p { font-family: sans-serif; font-size: 0.95rem; color: #3d2810; margin-bottom: 13px; line-height: 1.65; max-width: 700px; }\n.fg1-quote-header { font-family: sans-serif; font-size: 0.68rem; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: #8a4800; margin-bottom: 12px; }\n.fg1-quote { background: #1a0800; border-radius: 14px; padding: 16px 18px; margin-bottom: 12px; border-left: 4px solid #E8B000; }\n.fg1-quote--dark { background: #3a0a00; }\n.fg1-quote-text { color: #fff; font-style: italic; font-size: 0.87rem; line-height: 1.6; margin-bottom: 6px; font-family: sans-serif; }\n.fg1-quote-transl { color: rgba(255,255,255,0.48); font-family: sans-serif; font-size: 0.76rem; line-height: 1.5; margin-bottom: 7px; font-style: italic; }\n.fg1-quote-source { color: rgba(255,255,255,0.43); font-family: sans-serif; font-size: 0.72rem; font-weight: 700; }\n.fg1-divider { height: 1px; background: #d4c0a0; margin: 32px 28px 0; }\n.fg1-fs { background:#fff; border-top:1px solid #e0d8cc; border-bottom:1px solid #e0d8cc; }\n.fg1-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.fg1-fs-brand { display:flex; align-items:center; gap:9px; }\n.fg1-fs-frog-img { width:28px; height:28px; object-fit:contain; flex-shrink:0; }\n.fg1-fs-footer-frog { width:16px; height:16px; object-fit:contain; vertical-align:middle; margin-right:2px; }\n.fg1-fs-brand-label { display:block; font-family:sans-serif; font-size:10px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:#6b5e48; }\n.fg1-fs-game-name { font-family:sans-serif; font-size:14px; font-weight:700; color:#1a1208; margin-top:2px; }\n.fg1-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.fg1-fs-body { display:grid; grid-template-columns:1fr; background:#f7f4ef; }\n.fg1-fs-radar-panel { padding:20px 16px; display:flex; justify-content:center; background:#f7f4ef; position:relative; }\n.fg1-fs-radar-panel svg { width:100%; max-width:270px; height:auto; display:block; }\n.fg1-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.fg1-fs-info { padding:16px 18px 18px; background:#f7f4ef; border-top:1px solid #e8e2da; }\n.fg1-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.fg1-fs-feeling { display:flex; flex-wrap:wrap; gap:7px; margin-bottom:16px; }\n.fg1-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.fg1-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.fg1-fs-targets { display:grid; grid-template-columns:repeat(auto-fill,minmax(110px,1fr)); gap:7px; margin-bottom:16px; }\n.fg1-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.fg1-fs-target span { font-size:14px; flex-shrink:0; }\n.fg1-fs-si { background:#fff; border-color:#c8c0b0; color:#2a1a08; }\n.fg1-fs-no { background:transparent; border-color:#e0d8d0; color:#b8a898; opacity:.45; text-decoration:line-through; }\n.fg1-fs-verdict { background:#fff; border-radius:10px; padding:12px 14px; border:1px solid #e0d8cc; }\n.fg1-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.fg1-fs-verdict-text { font-family:sans-serif; font-size:12px; color:#3d2810; line-height:1.65; }\n.fg1-fs-solo { background:#f0ece4; border-top:1px solid #e0d8cc; padding:14px 18px; }\n.fg1-fs-solo-row { display:flex; align-items:center; gap:12px; margin-bottom:8px; }\n.fg1-fs-solo-icon { font-size:1.4rem; flex-shrink:0; }\n.fg1-fs-solo-text { display:flex; flex-direction:column; gap:2px; flex-grow:1; }\n.fg1-fs-solo-label { font-family:sans-serif; font-size:10px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:#6b5e48; }\n.fg1-fs-solo-stars { font-family:sans-serif; font-size:14px; letter-spacing:2px; color:#8a4800; line-height:1; }\n.fg1-fs-solo-note { font-family:sans-serif; font-size:12px; color:#3d2810; line-height:1.65; }\n.fg1-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.fg1-section-pad { padding: 32px 28px 8px; border-top: 0 !important; border-bottom: 0 !important; box-shadow: none !important; }\n.fg1-cards { display: grid; grid-template-columns: 1fr; gap: 11px; margin-top: 16px; }\n.fg1-card { background: #fff; border-radius: 14px; padding: 16px 18px; border: 1px solid #e0ceb0; box-shadow: 0 2px 10px rgba(0,0,0,0.05); transition: transform 0.2s ease, box-shadow 0.2s ease; }\n.fg1-card:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(0,0,0,0.09); }\n.fg1-card-icon { font-size: 1.6rem; display: block; margin-bottom: 7px; }\n.fg1-card-name { font-size: 0.95rem; font-weight: 900; color: #8a4800; margin-bottom: 5px; }\n.fg1-card-desc { font-family: sans-serif; font-size: 0.85rem; color: #3d2810; line-height: 1.55; }\n.fg1-sleeve-toggle { background: #fff; border-radius: 14px; border: 1px solid #e0ceb0; box-shadow: 0 2px 10px rgba(0,0,0,0.05); overflow: hidden; }\n.fg1-sleeve-summary { list-style: none; cursor: pointer; padding: 16px 20px; display: flex; align-items: center; gap: 14px; font-family: sans-serif; user-select: none; transition: background 0.2s ease; }\n.fg1-sleeve-summary::-webkit-details-marker { display: none; }\n.fg1-sleeve-summary:hover { background: #faf2e2; }\n.fg1-sleeve-summary-icon { font-size: 1.5rem; flex-shrink: 0; }\n.fg1-sleeve-summary-text { flex-grow: 1; display: flex; flex-direction: column; gap: 2px; }\n.fg1-sleeve-summary-label { font-size: 0.95rem; font-weight: 800; color: #1a0800; }\n.fg1-sleeve-summary-count { font-size: 0.78rem; color: #7a6040; font-weight: 500; }\n.fg1-sleeve-summary-arrow { font-size: 0.75rem; color: #8a4800; transition: transform 0.25s ease; flex-shrink: 0; }\n.fg1-sleeve-toggle[open] .fg1-sleeve-summary-arrow { transform: rotate(180deg); }\n.fg1-sleeve-toggle[open] .fg1-sleeve-summary { border-bottom: 1px solid #f0e4ce; }\n.fg1-sleeve-body { padding: 16px 20px 20px; }\n.fg1-sleeve-intro { font-family: sans-serif; font-size: 0.9rem; color: #3d2810; line-height: 1.6; margin: 0 0 14px 0; max-width: 680px; }\n.fg1-sleeve-table { width: 100%; max-width: 420px; border-collapse: collapse; background: #fff; border-radius: 10px; overflow: hidden; border: 1px solid #e8dcba; font-family: sans-serif; }\n.fg1-sleeve-table th { background: #8a4800; color: #fff; text-transform: uppercase; letter-spacing: 1px; font-size: 0.72rem; font-weight: 700; padding: 10px 14px; text-align: left; }\n.fg1-sleeve-table td { padding: 10px 14px; border-bottom: 1px solid #f0e4ce; font-size: 0.9rem; color: #3d2810; }\n.fg1-sleeve-table tbody tr:last-child td { border-bottom: none; }\n.fg1-sleeve-dim { font-weight: 600; }\n.fg1-sleeve-qty { font-weight: 800; text-align: right; color: #8a4800; }\n.fg1-sleeve-total td { background: #faf2e2; font-weight: 900; font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.5px; }\n.fg1-sleeve-total .fg1-sleeve-qty { color: #1a0800; }\n.fg1-rulebook-pad { padding-top: 18px; border-top: 0 !important; border-bottom: 0 !important; box-shadow: none !important; }\n\/* Card cliccabile: border shorthand + accent verde a sinistra (etichetta \"risorsa speciale\").\n   Niente 4 border separati: il border-bottom da solo si leggeva come underline. *\/\na.fg1-rulebook,\na.fg1-rulebook:link,\na.fg1-rulebook:visited,\na.fg1-rulebook:hover,\na.fg1-rulebook:focus,\na.fg1-rulebook:active {\n  text-decoration: none !important;\n  border: 1px solid #e8dcba !important;\n  border-left: 4px solid #2E6B0A !important;\n  box-shadow: 0 2px 8px rgba(0,0,0,0.04) !important;\n  outline: none !important;\n  background-image: none !important;\n}\n.fg1-rulebook { display: flex; align-items: center; gap: 14px; background: #fffaf0; border-radius: 12px; padding: 14px 18px; color: #1a0800; transition: background 0.2s ease, transform 0.2s ease; }\n.fg1-rulebook:hover { background: #faf0d8 !important; transform: translateX(2px); }\n\/* Reset preventivo su figli e pseudo-elementi: alcuni temi Shopify (Concept, Dawn-derived,\n   Impulse, Prestige) iniettano underline animate via ::before\/::after con background-image\n   linear-gradient. Vanno nuke esplicitamente. *\/\n.fg1-rulebook *,\n.fg1-rulebook *::before,\n.fg1-rulebook *::after {\n  text-decoration: none !important;\n  border: 0 !important;\n  box-shadow: none !important;\n  background: transparent !important;\n  background-image: none !important;\n}\n.fg1-rulebook::before,\n.fg1-rulebook::after {\n  display: none !important;\n  content: none !important;\n}\n.fg1-rulebook-icon { font-size: 1.6rem; flex-shrink: 0; }\n.fg1-rulebook-text { display: flex; flex-direction: column; flex-grow: 1; gap: 2px; }\n.fg1-rulebook-label { font-weight: 800; font-size: 0.95rem; color: #1a0800; }\n.fg1-rulebook-meta { font-size: 0.78rem; color: #6b5a3a; }\n.fg1-rulebook-arrow { font-size: 1.1rem; color: #8a4800; font-weight: 700; flex-shrink: 0; }\n.fg1-closing { background: #1a0800; padding: 26px 28px; border-top: 3px solid #E8B000; }\n.fg1-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@media screen and (min-width: 600px) {\n  .fg1-specs { grid-template-columns: repeat(6, 1fr); }\n  .fg1-spec { border-bottom: none; }\n  .fg1-spec:nth-child(3n) { border-right: 1px solid rgba(255,255,255,0.07); }\n  .fg1-spec:last-child { border-right: none; }\n  .fg1-cards { grid-template-columns: repeat(2, 1fr); }\n  .fg1-fs-body { grid-template-columns: 220px 1fr; }\n  .fg1-fs-radar-panel { border-top: none; border-right: 1px solid #e8e2da; }\n  .fg1-fs-info { border-top: none; }\n}\n@media screen and (min-width: 900px) {\n  .fg1-hero { padding: 40px 36px 44px; }\n  .fg1-intro-grid { grid-template-columns: 3fr 2fr; align-items: start; padding: 40px 36px 8px; }\n  .fg1-cards { grid-template-columns: repeat(4, 1fr); }\n  .fg1-divider { margin-left: 36px; margin-right: 36px; }\n  .fg1-section-pad { padding: 36px 36px 8px; }\n  .fg1-closing { padding: 28px 36px; }\n  .fg1-fs-body { grid-template-columns: 260px 1fr; }\n  .fg1-fs-radar-panel svg { max-width: 260px; }\n}\n\u003c\/style\u003e","brand":"Play to Z","offers":[{"title":"Default Title","offer_id":54212385931591,"sku":null,"price":79.99,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0887\/8905\/7863\/files\/siegeperilousboardgamegiocodatavolo.webp?v=1782202626","url":"https:\/\/frogames.business\/en\/products\/siege-perilous","provider":"FroGames","version":"1.0","type":"link"}