{"product_id":"tainted-grail-la-caduta-di-avalon","title":"Tainted Grail: The Fall of Avalon","description":"\u003cdiv class=\"fg1-wrap\"\u003e\n\u003cdiv class=\"fg1-hero\"\u003e\n\u003cdiv class=\"fg1-hero-content\"\u003e\n\u003cp class=\"fg1-kicker\"\u003eFroGames — Moments You'll Remember\u003c\/p\u003e\n\u003cp class=\"fg1-sub\"\u003eIn six hours, someone will be dead. Someone else will have saved a village but condemned an entire valley. And everyone will remember the choice no one wanted to make.\u003c\/p\u003e\n\u003cdiv class=\"fg1-chips\"\u003e\n\u003cspan class=\"fg1-chip fg1-chip--accent\"\u003eNarrative\u003c\/span\u003e\u003cspan class=\"fg1-chip\"\u003eGiochi Uniti\u003c\/span\u003e\u003cspan class=\"fg1-chip\"\u003eDark Avalon\u003c\/span\u003e\u003cspan class=\"fg1-chip\"\u003e2.0 Edition\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fg1-specs-bar\"\u003e\n\u003cdiv class=\"fg1-specs\"\u003e\n\u003cdiv class=\"fg1-spec\"\u003e\n\u003cspan class=\"fg1-spec-icon\"\u003e👥\u003c\/span\u003e \u003cspan class=\"fg1-spec-label\"\u003ePlayers\u003c\/span\u003e \u003cspan class=\"fg1-spec-val\"\u003e1 – 4\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fg1-spec\"\u003e\n\u003cspan class=\"fg1-spec-icon\"\u003e⏱️\u003c\/span\u003e \u003cspan class=\"fg1-spec-label\"\u003eDuration\u003c\/span\u003e \u003cspan class=\"fg1-spec-val\"\u003e60–120 min\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fg1-spec\"\u003e\n\u003cspan class=\"fg1-spec-icon\"\u003e🎂\u003c\/span\u003e \u003cspan class=\"fg1-spec-label\"\u003eAge\u003c\/span\u003e \u003cspan class=\"fg1-spec-val\"\u003e14+ years\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fg1-spec\"\u003e\n\u003cspan class=\"fg1-spec-icon\"\u003e🎲\u003c\/span\u003e \u003cspan class=\"fg1-spec-label\"\u003eMechanics\u003c\/span\u003e \u003cspan class=\"fg1-spec-val\"\u003eBranching narrative\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fg1-spec\"\u003e\n\u003cspan class=\"fg1-spec-icon\"\u003e🗺️\u003c\/span\u003e \u003cspan class=\"fg1-spec-label\"\u003eExploration\u003c\/span\u003e \u003cspan class=\"fg1-spec-val\"\u003eModular map\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fg1-spec\"\u003e\n\u003cspan class=\"fg1-spec-icon\"\u003e💀\u003c\/span\u003e \u003cspan class=\"fg1-spec-label\"\u003eTone\u003c\/span\u003e \u003cspan class=\"fg1-spec-val\"\u003eMature dark fantasy\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fg1-body\"\u003e\n\u003cdiv class=\"fg1-intro-grid\"\u003e\n\u003cdiv class=\"fg1-intro-text\"\u003e\n\u003cp class=\"fg1-label\"\u003eWHAT IT'S ABOUT\u003c\/p\u003e\n\u003ch3 class=\"fg1-h3\"\u003eThe last journey in a dying Avalon\u003c\/h3\u003e\n\u003cp class=\"fg1-p\"\u003e\u003cstrong\u003eKrzysztof Piskorski\u003c\/strong\u003e, one of the most appreciated Polish fantasy authors, together with \u003cstrong\u003eMarcin Świerkot\u003c\/strong\u003e, signs a dark vision of Arthurian legends. Avalon is not the shining land of fairy tales: it is a crumbling kingdom, devoured by the Wyrdness, where protective Menhirs are extinguished one by one. Illustrations by \u003cstrong\u003ePiotr Foksowicz, Patryk Jędraszek\u003c\/strong\u003e and other masters of dark fantasy illustration render a beautiful and terrifying world.\u003c\/p\u003e\n\u003cp class=\"fg1-p\"\u003eAt the table you explore, survive, choose. Every decision branches into consequences that will haunt you for dozens of hours of gameplay. The \u003cstrong\u003edice-less\u003c\/strong\u003e system for conflicts (combat and diplomacy) turns every encounter into a tactical puzzle. You build your deck, develop your character along opposing traits (Brutality\/Empathy, Pragmatism\/Spirituality), and try not to die of hunger, sickness, or despair before discovering what is killing Avalon.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fg1-intro-side\"\u003e\n\u003cp class=\"fg1-quote-header\"\u003eWhat they say abroad\u003c\/p\u003e\n\u003cdiv class=\"fg1-quote\" itemscope=\"\" itemtype=\"https:\/\/schema.org\/Review\"\u003e\n\u003cp class=\"fg1-quote-text\" itemprop=\"reviewBody\"\u003e\"Every choice feels heavy, and the consequences echo through the entire campaign.\"\u003c\/p\u003e\n\u003cp class=\"fg1-quote-transl\"\u003eEvery choice feels heavy, and the consequences echo through the entire campaign.\u003c\/p\u003e\n\u003cp class=\"fg1-quote-source\"\u003e— \u003cspan itemprop=\"author\" itemscope=\"\" itemtype=\"https:\/\/schema.org\/Organization\"\u003e\u003cspan itemprop=\"name\"\u003eMeeple Mountain\u003c\/span\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fg1-quote fg1-quote--dark\" itemscope=\"\" itemtype=\"https:\/\/schema.org\/Review\"\u003e\n\u003cp class=\"fg1-quote-text\" itemprop=\"reviewBody\"\u003eTainted Grail is a novel written at the table. Every game is a narrative scar that remains.\u003c\/p\u003e\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\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fg1-divider\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"fg1-fs\"\u003e\n\u003cdiv class=\"fg1-fs-header\"\u003e\n\u003cdiv class=\"fg1-fs-brand\"\u003e\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\u003cspan class=\"fg1-fs-brand-label\"\u003eFrogScore · FroGames.it\u003c\/span\u003e\n\u003cp class=\"fg1-fs-game-name\"\u003eTainted Grail: The Fall of Avalon\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cspan class=\"fg1-fs-cat\" style=\"background: #fef0e0; border-color: #d4a050; color: #6a3800;\"\u003eNarrative · Campaign\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fg1-fs-body\"\u003e\n\u003cdiv class=\"fg1-fs-radar-panel\"\u003e\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\u003c\/div\u003e\n\u003cdiv class=\"fg1-fs-info\"\u003e\n\u003cspan class=\"fg1-fs-feel-lbl\"\u003eThe experience\u003c\/span\u003e\n\u003cdiv class=\"fg1-fs-feeling\"\u003e\n\u003cspan class=\"fg1-fs-feel-tag\"\u003eOppressive\u003c\/span\u003e\u003cspan class=\"fg1-fs-feel-tag\"\u003eBranching\u003c\/span\u003e\u003cspan class=\"fg1-fs-feel-tag\"\u003eMemorable\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cspan class=\"fg1-fs-section-label\"\u003eWho it's for\u003c\/span\u003e\n\u003cdiv class=\"fg1-fs-targets\"\u003e\n\u003cdiv class=\"fg1-fs-target fg1-fs-si\"\u003e\n\u003cspan\u003e🎯\u003c\/span\u003eExperts\u003c\/div\u003e\n\u003cdiv class=\"fg1-fs-target fg1-fs-no\"\u003e\n\u003cspan\u003e🌱\u003c\/span\u003eGateway\u003c\/div\u003e\n\u003cdiv class=\"fg1-fs-target fg1-fs-no\"\u003e\n\u003cspan\u003e🎲\u003c\/span\u003eFamily game\u003c\/div\u003e\n\u003cdiv class=\"fg1-fs-target fg1-fs-no\"\u003e\n\u003cspan\u003e🍕\u003c\/span\u003eParty\u003c\/div\u003e\n\u003cdiv class=\"fg1-fs-target fg1-fs-no\"\u003e\n\u003cspan\u003e🧒\u003c\/span\u003eKids\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fg1-fs-verdict\"\u003e\n\u003cdiv class=\"fg1-fs-verdict-title\"\u003eIn summary\u003c\/div\u003e\n\u003cdiv class=\"fg1-fs-verdict-text\"\u003eIt's not a disguised dungeon crawler. It's a narrative campaign that asks you to choose who you are, what you sacrifice, and what you live with afterward. Mechanics serve the story, not vice versa. If you're looking for a game where your decisions build permanent scars, this is your Avalon.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fg1-fs-solo\"\u003e\n\u003cdiv class=\"fg1-fs-solo-row\"\u003e\n\u003cspan class=\"fg1-fs-solo-icon\"\u003e🧘\u003c\/span\u003e\n\u003cdiv class=\"fg1-fs-solo-text\"\u003e\n\u003cspan class=\"fg1-fs-solo-label\"\u003eSolo mode · Official\u003c\/span\u003e \u003cspan class=\"fg1-fs-solo-stars\" aria-label=\"5 out of 5\"\u003e★★★★★\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cp class=\"fg1-fs-solo-note\"\u003eTainted Grail is designed for solo play. The branching narrative system works perfectly in solitaire, in fact: many consider the 1-player experience the most immersive, because you control every choice without group compromises. Nothing is lost compared to multiplayer.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fg1-fs-footer\"\u003e\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\u003c\/div\u003e\n\u003cscript\u003e\n    (function(){\n      var PI2=Math.PI*2;\n      var dims=[{\"label\": \"Narrative\", \"value\": 5, \"note\": \"Over 600 branching paragraphs. Every choice truly matters.\"}, {\"label\": \"Replayability\", \"value\": 5, \"note\": \"Exclusive narrative branches, unique characters, dozens of different hours every campaign.\"}, {\"label\": \"Complexity\", \"value\": 4, \"note\": \"Accessible rules, but survival management and branching require attention.\"}, {\"label\": \"Strategy\", \"value\": 4, \"note\": \"Deep deck-building, permanent character development choices.\"}, {\"label\": \"Tension\", \"value\": 4, \"note\": \"Menhirs go out, resources run low, time is running out. Always.\"}, {\"label\": \"Interaction\", \"value\": 3, \"note\": \"Pure cooperative, but everyone manages their own character and deck.\"}];\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\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"fg1-section-pad\"\u003e\n\u003cp class=\"fg1-label\"\u003eWhat's in the box\u003c\/p\u003e\n\u003ch3 class=\"fg1-h3\"\u003eThe pieces of a crumbling world\u003c\/h3\u003e\n\u003cdiv class=\"fg1-cards\"\u003e\n\u003cdiv class=\"fg1-card\"\u003e\n\u003cspan class=\"fg1-card-icon\"\u003e🗿\u003c\/span\u003e\n\u003ch4 class=\"fg1-card-name\"\u003eMenhirs and Modular Map\u003c\/h4\u003e\n\u003cp class=\"fg1-card-desc\"\u003eThe Menhirs are your only lights in an encroaching darkness. They go out over time. You must explore them, light them, return before darkness swallows the map. Logistics become survival.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fg1-card\"\u003e\n\u003cspan class=\"fg1-card-icon\"\u003e🃏\u003c\/span\u003e\n\u003ch4 class=\"fg1-card-name\"\u003eCharacter Decks\u003c\/h4\u003e\n\u003cp class=\"fg1-card-desc\"\u003eEach hero has a unique deck of combat and diplomacy cards. You develop it with exclusive abilities based on your traits. Brutality or Empathy. Pragmatism or Spirituality. You can't have it all.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fg1-card\"\u003e\n\u003cspan class=\"fg1-card-icon\"\u003e📖\u003c\/span\u003e\n\u003ch4 class=\"fg1-card-name\"\u003eOver 600 Paragraphs of Text\u003c\/h4\u003e\n\u003cp class=\"fg1-card-desc\"\u003eThe narrative lives in an event book that continuously branches. Every place has secrets, every character has stories, every choice opens or closes entire branches of the campaign. Piskorski takes no prisoners.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fg1-card\"\u003e\n\u003cspan class=\"fg1-card-icon\"\u003e⚔️\u003c\/span\u003e\n\u003ch4 class=\"fg1-card-name\"\u003eDice-less System\u003c\/h4\u003e\n\u003cp class=\"fg1-card-desc\"\u003eCombat and diplomacy work with cards and hand management. No rolls: only tactical choices, bluffing, timing. Every conflict is a puzzle you solve with the resources you've built.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fg1-divider\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"fg1-section-pad\"\u003e\n\u003cdetails class=\"fg1-sleeve-toggle\" open=\"\"\u003e\n\u003csummary class=\"fg1-sleeve-summary\"\u003e\u003cspan class=\"fg1-sleeve-summary-icon\"\u003e🛡️\u003c\/span\u003e \u003cspan class=\"fg1-sleeve-summary-text\"\u003e \u003cspan class=\"fg1-sleeve-summary-label\"\u003eRecommended sleeves\u003c\/span\u003e \u003cspan class=\"fg1-sleeve-summary-count\"\u003e837 cards in 3 sizes\u003c\/span\u003e \u003c\/span\u003e \u003cspan class=\"fg1-sleeve-summary-arrow\"\u003e▼\u003c\/span\u003e\u003c\/summary\u003e\n\u003cdiv class=\"fg1-sleeve-body\"\u003e\n\u003cp class=\"fg1-sleeve-intro\"\u003eIf you play often, we recommend protecting your cards with clear sleeves to make them last longer.\u003c\/p\u003e\n\u003ctable class=\"fg1-sleeve-table\"\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003eSize\u003c\/th\u003e\n\u003cth\u003eQuantity\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd class=\"fg1-sleeve-dim\"\u003e63 × 88 mm\u003c\/td\u003e\n\u003ctd class=\"fg1-sleeve-qty\"\u003e622\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"fg1-sleeve-dim\"\u003e45 × 68 mm\u003c\/td\u003e\n\u003ctd class=\"fg1-sleeve-qty\"\u003e143\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd class=\"fg1-sleeve-dim\"\u003e80 × 120 mm\u003c\/td\u003e\n\u003ctd class=\"fg1-sleeve-qty\"\u003e72\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr class=\"fg1-sleeve-total\"\u003e\n\u003ctd\u003eTotal cards\u003c\/td\u003e\n\u003ctd\u003e837\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"fg1-closing\"\u003e\n\u003cp class=\"fg1-closing-text\"\u003eWhen you finish the campaign, you'll remember the names. The places. The choices you made at three in the morning. It always happens with Tainted Grail.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\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\/* Clickable card: border shorthand + green accent on the left (label \"special resource\").\n   No 4 separate borders: the bottom border alone would read as an 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\/* Preventive reset on children and pseudo-elements: some Shopify themes (Concept, Dawn-derived,\n   Impulse, Prestige) inject animated underlines via ::before\/::after with background-image\n   linear-gradient. These must be explicitly nuked. *\/\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":"Giochi Uniti","offers":[{"title":"Default Title","offer_id":53904272556359,"sku":null,"price":144.99,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0887\/8905\/7863\/files\/TaintedGrailLaCadutadiAvalon_35c4770b-235f-49fd-9790-427bb1c12de4.webp?v=1778824837","url":"https:\/\/frogames.it\/en\/products\/tainted-grail-la-caduta-di-avalon","provider":"FroGames","version":"1.0","type":"link"}