{"product_id":"aetherspire","title":"Aetherspire","description":"\u003c!-- =====================================================\n     AETHERSPIRE — BLOCK 1\n     FroGames | Shopify Theme Concept\n     ===================================================== --\u003e\n\u003cdiv class=\"aes1-wrap\"\u003e\n\u003c!-- COVER --\u003e\n\u003cdiv class=\"aes1-cover\"\u003e\n\u003cimg loading=\"eager\" class=\"aes1-cover-img\" alt=\"Aetherspire cooperative 3D tower defense board game for 1-4 players - official Phase Shift Games cover\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0887\/8905\/7863\/files\/Aetherspire.webp?v=1774426392\"\u003e\n\u003cdiv class=\"aes1-cover-fade\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003cdiv class=\"aes1-cover-content\"\u003e\n\u003cp class=\"aes1-kicker\"\u003eFroGames — Moments You'll Remember\u003c\/p\u003e\n\u003cp class=\"aes1-sub\"\u003eFour elemental spires rise from the table. Four fiends want to tear them down. Time is running out and the aether core trembles.\u003c\/p\u003e\n\u003cdiv class=\"aes1-chips\"\u003e\n\u003cspan class=\"aes1-chip aes1-chip--blue\"\u003eCooperative\u003c\/span\u003e \u003cspan class=\"aes1-chip\"\u003ePhase Shift Games\u003c\/span\u003e \u003cspan class=\"aes1-chip\"\u003e3D Tower on the table\u003c\/span\u003e \u003cspan class=\"aes1-chip\"\u003eEnglish Edition\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- SPECS --\u003e\n\u003cdiv class=\"aes1-specs-bar\"\u003e\n\u003cdiv class=\"aes1-specs\"\u003e\n\u003cdiv class=\"aes1-spec\"\u003e\n\u003cspan class=\"aes1-spec-icon\"\u003e👥\u003c\/span\u003e \u003cspan class=\"aes1-spec-label\"\u003ePlayers\u003c\/span\u003e \u003cspan class=\"aes1-spec-val\"\u003e1 – 4\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aes1-spec\"\u003e\n\u003cspan class=\"aes1-spec-icon\"\u003e⏱️\u003c\/span\u003e \u003cspan class=\"aes1-spec-label\"\u003eDuration\u003c\/span\u003e \u003cspan class=\"aes1-spec-val\"\u003e45–60 min\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aes1-spec\"\u003e\n\u003cspan class=\"aes1-spec-icon\"\u003e🎂\u003c\/span\u003e \u003cspan class=\"aes1-spec-label\"\u003eAge\u003c\/span\u003e \u003cspan class=\"aes1-spec-val\"\u003e14+ years\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aes1-spec\"\u003e\n\u003cspan class=\"aes1-spec-icon\"\u003e🎲\u003c\/span\u003e \u003cspan class=\"aes1-spec-label\"\u003eMechanics\u003c\/span\u003e \u003cspan class=\"aes1-spec-val\"\u003e3D tile placement\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aes1-spec\"\u003e\n\u003cspan class=\"aes1-spec-icon\"\u003e🗼\u003c\/span\u003e \u003cspan class=\"aes1-spec-label\"\u003eStructure\u003c\/span\u003e \u003cspan class=\"aes1-spec-val\"\u003eTower defense\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aes1-spec\"\u003e\n\u003cspan class=\"aes1-spec-icon\"\u003e🤝\u003c\/span\u003e \u003cspan class=\"aes1-spec-label\"\u003eMode\u003c\/span\u003e \u003cspan class=\"aes1-spec-val\"\u003eCooperative + Solo\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- BODY --\u003e\n\u003cdiv class=\"aes1-body\"\u003e\n\u003c!-- INTRO + QUOTES --\u003e\n\u003cdiv class=\"aes1-intro-grid\"\u003e\n\u003cdiv class=\"aes1-intro-text\"\u003e\n\u003cp class=\"aes1-label\"\u003eWhat it's about\u003c\/p\u003e\n\u003ch3 class=\"aes1-h3\"\u003eBuild high as the low crumbles\u003c\/h3\u003e\n\u003cp class=\"aes1-p\"\u003eThe realm of Elementis is under siege. Four types of Aetherfiends are draining the world's vital aether, and only four elemental spires — one of earth, one of air, one of fire, one of water — can repel them. The problem is that while you build vertically, the invaders continue to advance horizontally.\u003c\/p\u003e\n\u003cp class=\"aes1-p\"\u003e\u003cstrong\u003eAetherspire\u003c\/strong\u003e is a cooperative game for 1–4 players designed by Jason Miceli and published by Phase Shift Games. The central mechanic is unique: you place elemental tiles by physically stacking them to form four-story towers. It's not dexterity — it's pure strategy. Each completed spire defeats the boss of that element. Complete all four before the aethercore runs out.\u003c\/p\u003e\n\u003cp class=\"aes1-p\"\u003eWith 15 selectable heroes, variable bosses, and random tiles, each game presents different challenges. The scenic presence is immediate: mid-game, the table transforms into a landscape of elemental towers rising towards the ceiling, while invader tokens advance from the bag.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aes1-intro-side\"\u003e\n\u003cp class=\"aes1-quote-header\"\u003eWhat they say abroad\u003c\/p\u003e\n\u003cdiv itemtype=\"https:\/\/schema.org\/Review\" itemscope=\"\" class=\"aes1-quote\"\u003e\n\u003cmeta itemprop=\"itemReviewed\" content=\"Aetherspire\"\u003e\n\u003cp itemprop=\"reviewBody\" class=\"aes1-quote-text\"\u003e\"It feels like a very different type of coop, in a really fun and imaginative kind of way!\"\u003c\/p\u003e\n\u003cp class=\"aes1-quote-transl\"\u003eA completely different type of cooperative, fun and full of imagination.\u003c\/p\u003e\n\u003cp class=\"aes1-quote-source\"\u003e— \u003cspan itemtype=\"https:\/\/schema.org\/Person\" itemscope=\"\" itemprop=\"author\"\u003e\u003cspan itemprop=\"name\"\u003eTom Heath, Slickerdrips\u003c\/span\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv itemtype=\"https:\/\/schema.org\/Review\" itemscope=\"\" class=\"aes1-quote aes1-quote--dark\"\u003e\n\u003cmeta itemprop=\"itemReviewed\" content=\"Aetherspire\"\u003e\n\u003cp itemprop=\"reviewBody\" class=\"aes1-quote-text\"\u003e\"I can't say enough about this game. Combo-tastic!\"\u003c\/p\u003e\n\u003cp class=\"aes1-quote-transl\"\u003eI can't stop talking about this game. Combos are everywhere.\u003c\/p\u003e\n\u003cp class=\"aes1-quote-source\"\u003e— \u003cspan itemtype=\"https:\/\/schema.org\/Person\" itemscope=\"\" itemprop=\"author\"\u003e\u003cspan itemprop=\"name\"\u003eRuel Gaviola, Rahdo Runs Through\u003c\/span\u003e\u003c\/span\u003e\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aes1-divider\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c!-- FROGSCORE --\u003e\n\u003cdiv class=\"aes1-fs\"\u003e\n\u003cdiv class=\"aes1-fs-header\"\u003e\n\u003cdiv class=\"aes1-fs-brand\"\u003e\n\u003cimg class=\"aes1-fs-frog-img\" alt=\"FroGames\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0887\/8905\/7863\/files\/FROG_FAVICON.webp?v=1774174794\"\u003e\n\u003cdiv\u003e\n\u003cspan class=\"aes1-fs-brand-label\"\u003eFrogScore · FroGames.it\u003c\/span\u003e\n\u003cp class=\"aes1-fs-game-name\"\u003eAetherspire\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cspan style=\"background: #e0f5ee; border-color: #60c090; color: #0a4a30;\" class=\"aes1-fs-cat\"\u003eCooperative\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aes1-fs-body\"\u003e\n\u003cdiv class=\"aes1-fs-radar-panel\"\u003e\n\u003csvg style=\"overflow: visible;\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewbox=\"0 0 320 320\" id=\"aes1-fs-svg\"\u003e\u003c\/svg\u003e\n\u003cdiv id=\"aes1-fs-tip\" class=\"aes1-fs-tip\"\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aes1-fs-info\"\u003e\n\u003cspan class=\"aes1-fs-feel-lbl\"\u003eThe experience\u003c\/span\u003e\n\u003cdiv class=\"aes1-fs-feeling\"\u003e\n\u003cspan class=\"aes1-fs-feel-tag\"\u003eCollaborative\u003c\/span\u003e \u003cspan class=\"aes1-fs-feel-tag\"\u003eConstructive\u003c\/span\u003e \u003cspan class=\"aes1-fs-feel-tag\"\u003eTense\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cspan class=\"aes1-fs-section-label\"\u003eWho it's for\u003c\/span\u003e\n\u003cdiv class=\"aes1-fs-targets\"\u003e\n\u003cdiv class=\"aes1-fs-target aes1-fs-si\"\u003e\n\u003cspan\u003e🎯\u003c\/span\u003eExperts\u003c\/div\u003e\n\u003cdiv class=\"aes1-fs-target aes1-fs-si\"\u003e\n\u003cspan\u003e🎲\u003c\/span\u003eFamily game\u003c\/div\u003e\n\u003cdiv class=\"aes1-fs-target aes1-fs-si\"\u003e\n\u003cspan\u003e🧘\u003c\/span\u003eSolo\u003c\/div\u003e\n\u003cdiv class=\"aes1-fs-target aes1-fs-si\"\u003e\n\u003cspan\u003e🌱\u003c\/span\u003eGateway\u003c\/div\u003e\n\u003cdiv class=\"aes1-fs-target aes1-fs-no\"\u003e\n\u003cspan\u003e🧒\u003c\/span\u003eChildren\u003c\/div\u003e\n\u003cdiv class=\"aes1-fs-target aes1-fs-no\"\u003e\n\u003cspan\u003e🍕\u003c\/span\u003eParty\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- Solitaire Section --\u003e\n\u003cdiv class=\"aes1-fs-solo\"\u003e\n\u003cdiv class=\"aes1-fs-solo-header\"\u003e\n\u003cspan class=\"aes1-fs-solo-icon\"\u003e🧘\u003c\/span\u003e\n\u003cdiv\u003e\n\u003cspan class=\"aes1-fs-solo-label\"\u003eSolo Mode\u003c\/span\u003e \u003cspan class=\"aes1-fs-solo-type\"\u003eOfficial · ★★★★☆\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cp class=\"aes1-fs-solo-note\"\u003eThe solo mode is fully supported — you control a single hero with asymmetric powers. The challenge is slightly reduced compared to cooperative play, but the pressure from invaders remains constant and satisfying.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aes1-fs-verdict\"\u003e\n\u003cdiv class=\"aes1-fs-verdict-title\"\u003eIn summary\u003c\/div\u003e\n\u003cdiv class=\"aes1-fs-verdict-text\"\u003eA cooperative game that literally grows on the table. The 3D tower is a promise kept — building together is the heart of the experience, not a gimmick.\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aes1-fs-footer\"\u003e\n\u003cimg class=\"aes1-fs-footer-frog\" alt=\"FroGames\" src=\"https:\/\/cdn.shopify.com\/s\/files\/1\/0887\/8905\/7863\/files\/FROG_FAVICON.webp?v=1774174794\"\u003e FrogScore · FroGames editorial rating · based on rules, international reviews and play sessions\u003c\/div\u003e\n\u003c\/div\u003e\n\u003cscript\u003e\n    (function(){\n      var PI2=Math.PI*2;\n      var dims=[\n        {l:'Coordination', v:5, note:\"Every turn requires agreement on who builds what — communication is everything\"},\n        {l:'Tension',       v:5, note:\"Invaders don't wait: every round without progress is a step towards defeat\"},\n        {l:'Luck',        v:3, note:\"The bag is random but mitigation choices are numerous\"},\n        {l:'Strategy',      v:3, note:\"Placement decisions matter — but the dice can reshuffle plans\"},\n        {l:'Complexity',    v:2, note:\"Rules explainable in 15 minutes, smooth first game — everything is understood by playing\"},\n        {l:'Replayability',  v:4, note:\"15 heroes, 16 bosses, variable tiles: difficult to repeat the same game\"}\n      ];\n      var accent='#0a7a5a';\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('aes1-fs-svg');\n      var tip=document.getElementById('aes1-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 aes1-draw{to{stroke-dashoffset:0}}@keyframes aes1-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:aes1-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:aes1-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:aes1-fade 0.3s ease-out '+(0.85+i*0.07).toFixed(2)+'s forwards';\n        svg.appendChild(vt);\n      });\n\n      dims.forEach(function(d,i){\n        var angle=off+i*step;\n        var lx=CX+(R+40)*Math.cos(angle),ly=CY+(R+40)*Math.sin(angle);\n        var anchor='middle';\n        if(Math.cos(angle)\u003e0.2) anchor='start';\n        else if(Math.cos(angle)\u003c-0.2) anchor='end';\n        var dy=Math.sin(angle)\u003e0.6?7:Math.sin(angle)\u003c-0.6?-5:0;\n        var isHi=d.v\u003e=4;\n        var t=el('text',{x:lx.toFixed(1),y:(ly+dy).toFixed(1),'text-anchor':anchor,'dominant-baseline':'middle','font-size':isHi?'12':'11','font-weight':'700',fill:'#1a1208','font-family':'-apple-system,sans-serif'});\n        t.textContent=d.l;\n        svg.appendChild(t);\n      });\n    })();\n    \u003c\/script\u003e\n\u003cdiv class=\"aes1-divider\"\u003e\u003cbr\u003e\u003c\/div\u003e\n\u003c!-- ARSENAL --\u003e\n\u003cdiv class=\"aes1-section-pad\"\u003e\n\u003cp class=\"aes1-label\"\u003eYour arsenal\u003c\/p\u003e\n\u003ch3 class=\"aes1-h3\"\u003eWhat you control in each game\u003c\/h3\u003e\n\u003cdiv class=\"aes1-cards\"\u003e\n\u003cdiv class=\"aes1-card\"\u003e\n\u003cspan class=\"aes1-card-icon\"\u003e🗼\u003c\/span\u003e\n\u003ch4 class=\"aes1-card-name\"\u003e4 3D elemental Spires\u003c\/h4\u003e\n\u003cp class=\"aes1-card-desc\"\u003eEarth, air, fire, water. Each spire physically grows on the table: four stacked levels, and the boss of that element is defeated.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aes1-card\"\u003e\n\u003cspan class=\"aes1-card-icon\"\u003e🧙\u003c\/span\u003e\n\u003ch4 class=\"aes1-card-name\"\u003eAsymmetric Heroes\u003c\/h4\u003e\n\u003cp class=\"aes1-card-desc\"\u003e15 heroes available, each with unique powers. Choose the combination that suits your strategy — or that of the elemental opponents.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aes1-card\"\u003e\n\u003cspan class=\"aes1-card-icon\"\u003e🎲\u003c\/span\u003e\n\u003ch4 class=\"aes1-card-name\"\u003e8 8-sided acrylic dice\u003c\/h4\u003e\n\u003cp class=\"aes1-card-desc\"\u003eYou don't just roll and wait — the dice determine which actions are available, but how to use them is always your tactical choice.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aes1-card\"\u003e\n\u003cspan class=\"aes1-card-icon\"\u003e👾\u003c\/span\u003e\n\u003ch4 class=\"aes1-card-name\"\u003eVariable Bosses and Invaders\u003c\/h4\u003e\n\u003cp class=\"aes1-card-desc\"\u003e16 boss cards, each with its own abilities. Invaders come out of the bag randomly: each game presents a different pressure to manage together.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- CLOSING --\u003e\n\u003cdiv class=\"aes1-closing\"\u003e\n\u003cp class=\"aes1-closing-text\"\u003eAt the end of the game, the spires are still there on the table — built together, defended together. That structure means something.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c!-- BOX CONTENT --\u003e\n\u003cdiv class=\"aes1-box-section\"\u003e\n\u003cdetails class=\"aes1-det\"\u003e\n\u003csummary class=\"aes1-det-sum\"\u003e\u003cspan class=\"aes1-det-ico\"\u003e🎲\u003c\/span\u003e\u003cspan class=\"aes1-det-title\"\u003eComponents\u003c\/span\u003e\u003cspan class=\"aes1-det-sub\"\u003e18 types · 230+ total pieces\u003c\/span\u003e\u003cspan class=\"aes1-det-arr\"\u003e\u003c\/span\u003e\u003c\/summary\u003e\n\u003cdiv class=\"aes1-det-body\"\u003e\n\u003cdiv class=\"aes1-comp-grid\"\u003e\n\u003cdiv class=\"aes1-comp\"\u003e\n\u003cspan class=\"aes1-comp-qty\"\u003e1\u003c\/span\u003e\u003cspan class=\"aes1-comp-lbl\"\u003eGame Board\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aes1-comp\"\u003e\n\u003cspan class=\"aes1-comp-qty\"\u003e4\u003c\/span\u003e\u003cspan class=\"aes1-comp-lbl\"\u003e3D Spire Toppers\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aes1-comp\"\u003e\n\u003cspan class=\"aes1-comp-qty\"\u003e50\u003c\/span\u003e\u003cspan class=\"aes1-comp-lbl\"\u003eWooden Pillar Cubes\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aes1-comp\"\u003e\n\u003cspan class=\"aes1-comp-qty\"\u003e41\u003c\/span\u003e\u003cspan class=\"aes1-comp-lbl\"\u003eWooden Invader Tokens\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aes1-comp\"\u003e\n\u003cspan class=\"aes1-comp-qty\"\u003e8\u003c\/span\u003e\u003cspan class=\"aes1-comp-lbl\"\u003e8-sided Acrylic Dice\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aes1-comp\"\u003e\n\u003cspan class=\"aes1-comp-qty\"\u003e10\u003c\/span\u003e\u003cspan class=\"aes1-comp-lbl\"\u003eLarge Level Tiles\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aes1-comp\"\u003e\n\u003cspan class=\"aes1-comp-qty\"\u003e12\u003c\/span\u003e\u003cspan class=\"aes1-comp-lbl\"\u003eMedium Level Tiles\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aes1-comp\"\u003e\n\u003cspan class=\"aes1-comp-qty\"\u003e16\u003c\/span\u003e\u003cspan class=\"aes1-comp-lbl\"\u003eSmall Level Tiles\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aes1-comp\"\u003e\n\u003cspan class=\"aes1-comp-qty\"\u003e15\u003c\/span\u003e\u003cspan class=\"aes1-comp-lbl\"\u003eCharacter Cards\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aes1-comp\"\u003e\n\u003cspan class=\"aes1-comp-qty\"\u003e16\u003c\/span\u003e\u003cspan class=\"aes1-comp-lbl\"\u003eBoss Cards\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aes1-comp\"\u003e\n\u003cspan class=\"aes1-comp-qty\"\u003e6\u003c\/span\u003e\u003cspan class=\"aes1-comp-lbl\"\u003eSpire Adaptation Cards\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aes1-comp\"\u003e\n\u003cspan class=\"aes1-comp-qty\"\u003e4\u003c\/span\u003e\u003cspan class=\"aes1-comp-lbl\"\u003ePlayer Aid Sheets\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aes1-comp\"\u003e\n\u003cspan class=\"aes1-comp-qty\"\u003e4\u003c\/span\u003e\u003cspan class=\"aes1-comp-lbl\"\u003eWooden Wall Tokens\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aes1-comp\"\u003e\n\u003cspan class=\"aes1-comp-qty\"\u003e5\u003c\/span\u003e\u003cspan class=\"aes1-comp-lbl\"\u003eWooden Disc Tokens\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aes1-comp\"\u003e\n\u003cspan class=\"aes1-comp-qty\"\u003e4\u003c\/span\u003e\u003cspan class=\"aes1-comp-lbl\"\u003eSpire Completion Tokens\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aes1-comp\"\u003e\n\u003cspan class=\"aes1-comp-qty\"\u003e1\u003c\/span\u003e\u003cspan class=\"aes1-comp-lbl\"\u003eActive Player Token\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aes1-comp\"\u003e\n\u003cspan class=\"aes1-comp-qty\"\u003e1\u003c\/span\u003e\u003cspan class=\"aes1-comp-lbl\"\u003eFabric Bag\u003c\/span\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"aes1-comp\"\u003e\n\u003cspan class=\"aes1-comp-qty\"\u003e1\u003c\/span\u003e\u003cspan class=\"aes1-comp-lbl\"\u003eEnglish Rulebook\u003c\/span\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003cdetails class=\"aes1-det\"\u003e\n\u003csummary class=\"aes1-det-sum\"\u003e\u003cspan class=\"aes1-det-ico\"\u003e🃏\u003c\/span\u003e\u003cspan class=\"aes1-det-title\"\u003eRecommended Sleeves\u003c\/span\u003e\u003cspan class=\"aes1-det-sub\"\u003e1 size · 21 total cards\u003c\/span\u003e\u003cspan class=\"aes1-det-arr\"\u003e\u003c\/span\u003e\u003c\/summary\u003e\n\u003cdiv class=\"aes1-det-body\"\u003e\n\u003cdiv class=\"aes1-sleeve-grid\"\u003e\n\u003cdiv class=\"aes1-sleeve\"\u003e\n\u003cspan class=\"aes1-sleeve-mm\"\u003e63 × 88 mm\u003c\/span\u003e\n\u003cdiv class=\"aes1-sleeve-r\"\u003e\u003cspan class=\"aes1-sleeve-qty\"\u003e21 cards\u003c\/span\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/details\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c!-- \/aes1-body --\u003e\n\u003c\/div\u003e\n\u003c!-- \/aes1-wrap --\u003e\n\u003cstyle\u003e\n.aes1-wrap, .aes1-wrap * { box-sizing: border-box; margin: 0; padding: 0; }\n.aes1-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: #0d1a2e;\n}\n\n\/* ── COVER ── *\/\n.aes1-cover { position: relative; width: 100%; height: 340px; overflow: hidden; display: flex; align-items: flex-end; }\n.aes1-cover-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center top; display: block; }\n.aes1-cover-fade { position: absolute; inset: 0; background: linear-gradient(to bottom, rgba(13,26,46,0) 0%, rgba(13,26,46,0) 25%, rgba(13,26,46,0.6) 55%, rgba(13,26,46,0.88) 75%, rgba(13,26,46,0.98) 100%); }\n.aes1-cover-content { position: relative; z-index: 2; padding: 18px 26px 24px; width: 100%; }\n.aes1-kicker { display: block; color: #2ab4e8; font-family: sans-serif; font-size: 0.7rem; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; margin-bottom: 8px; }\n.aes1-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.aes1-chips { display: flex; flex-wrap: wrap; gap: 7px; }\n.aes1-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.aes1-chip--blue { background: #0a7a5a; border-color: #0a7a5a; }\n\n\/* ── SPECS ── *\/\n.aes1-specs-bar { background: #091422; padding: 0 24px; border-top: 1px solid rgba(255,255,255,0.06); }\n.aes1-specs { display: grid; grid-template-columns: repeat(3, 1fr); }\n.aes1-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.aes1-spec:nth-child(3n) { border-right: none; }\n.aes1-spec:nth-last-child(-n+3) { border-bottom: none; }\n.aes1-spec-icon { font-size: 1.2rem; }\n.aes1-spec-label { color: rgba(255,255,255,0.4); font-family: sans-serif; font-size: 0.6rem; text-transform: uppercase; letter-spacing: 1px; }\n.aes1-spec-val { color: #fff; font-family: sans-serif; font-size: 0.84rem; font-weight: 800; }\n\n\/* ── BODY ── *\/\n.aes1-body { background: #eef4f8; }\n\n\/* ── INTRO ── *\/\n.aes1-intro-grid { display: grid; grid-template-columns: 1fr; gap: 26px; padding: 36px 28px 8px; }\n.aes1-label { display: block; font-family: sans-serif; font-size: 0.68rem; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; color: #0a7a5a; margin-bottom: 7px; }\n.aes1-h3 { font-size: clamp(1.4rem, 2.5vw, 2.1rem); font-weight: 900; color: #0d1a2e; line-height: 1.15; margin-bottom: 16px; }\n.aes1-p { font-family: sans-serif; font-size: 0.95rem; color: #1a2e3d; margin-bottom: 13px; line-height: 1.65; max-width: 700px; }\n\n\/* ── QUOTE ── *\/\n.aes1-quote-header { font-family: sans-serif; font-size: 0.68rem; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: #0a7a5a; margin-bottom: 12px; }\n.aes1-quote { background: #0d1a2e; border-radius: 14px; padding: 16px 18px; margin-bottom: 12px; border-left: 4px solid #2ab4e8; }\n.aes1-quote--dark { background: #081020; border-left-color: #00d4b0; }\n.aes1-quote-text { color: #fff; font-style: italic; font-size: 0.87rem; line-height: 1.6; margin-bottom: 6px; font-family: sans-serif; }\n.aes1-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.aes1-quote-source { color: rgba(255,255,255,0.43); font-family: sans-serif; font-size: 0.72rem; font-weight: 700; }\n\n\/* ── DIVIDER ── *\/\n.aes1-divider { height: 1px; background: #c8d8e4; margin: 32px 28px 0; }\n\n\/* ── FROGSCORE ── *\/\n.aes1-fs { background: #fff; border-top: 1px solid #e0d8cc; border-bottom: 1px solid #e0d8cc; }\n.aes1-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.aes1-fs-brand { display: flex; align-items: center; gap: 9px; }\n.aes1-fs-frog-img { width: 28px; height: 28px; object-fit: contain; flex-shrink: 0; }\n.aes1-fs-footer-frog { width: 16px; height: 16px; object-fit: contain; vertical-align: middle; margin-right: 2px; }\n.aes1-fs-brand-label { display: block; font-family: sans-serif; font-size: 10px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: #6b5e48; }\n.aes1-fs-game-name { font-family: sans-serif; font-size: 14px; font-weight: 700; color: #1a1208; margin-top: 2px; }\n.aes1-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.aes1-fs-body { display: grid; grid-template-columns: 1fr; background: #f7f4ef; }\n.aes1-fs-radar-panel { padding: 20px 16px; display: flex; justify-content: center; background: #f7f4ef; position: relative; }\n.aes1-fs-radar-panel svg { width: 100%; max-width: 270px; height: auto; display: block; }\n.aes1-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.aes1-fs-info { padding: 16px 18px 18px; background: #f7f4ef; border-top: 1px solid #e8e2da; }\n.aes1-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.aes1-fs-feeling { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 16px; }\n.aes1-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.aes1-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.aes1-fs-targets { display: grid; grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); gap: 7px; margin-bottom: 16px; }\n.aes1-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.aes1-fs-target span { font-size: 14px; flex-shrink: 0; }\n.aes1-fs-si { background: #fff; border-color: #c8c0b0; color: #2a1a08; }\n.aes1-fs-no { background: transparent; border-color: #e0d8d0; color: #b8a898; opacity: .45; text-decoration: line-through; }\n\n\/* ── SOLITAIRE ── *\/\n.aes1-fs-solo { background: #e8f5f0; border-radius: 10px; padding: 12px 14px; border: 1px solid #a0d8c0; margin-bottom: 14px; }\n.aes1-fs-solo-header { display: flex; align-items: center; gap: 9px; margin-bottom: 7px; }\n.aes1-fs-solo-icon { font-size: 18px; flex-shrink: 0; }\n.aes1-fs-solo-label { display: block; font-family: sans-serif; font-size: 11px; font-weight: 700; color: #0a4a30; }\n.aes1-fs-solo-type { display: block; font-family: sans-serif; font-size: 10px; color: #2a7a50; font-weight: 600; margin-top: 1px; }\n.aes1-fs-solo-note { font-family: sans-serif; font-size: 11px; color: #1a3d2a; line-height: 1.6; }\n\n.aes1-fs-verdict { background: #fff; border-radius: 10px; padding: 12px 14px; border: 1px solid #e0d8cc; }\n.aes1-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.aes1-fs-verdict-text { font-family: sans-serif; font-size: 12px; color: #3d2810; line-height: 1.65; }\n.aes1-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.aes1-section-pad { padding: 32px 28px 8px; }\n.aes1-cards { display: grid; grid-template-columns: 1fr; gap: 11px; margin-top: 16px; }\n.aes1-card { background: #fff; border-radius: 14px; padding: 16px 18px; border: 1px solid #c8d8e4; box-shadow: 0 2px 10px rgba(0,0,0,0.05); transition: transform 0.2s ease, box-shadow 0.2s ease; }\n.aes1-card:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(0,0,0,0.09); }\n.aes1-card-icon { font-size: 1.6rem; display: block; margin-bottom: 7px; }\n.aes1-card-name { font-size: 0.95rem; font-weight: 900; color: #0a7a5a; margin-bottom: 5px; }\n.aes1-card-desc { font-family: sans-serif; font-size: 0.85rem; color: #1a2e3d; line-height: 1.55; }\n\n\/* ── CLOSING ── *\/\n.aes1-closing { background: #0d1a2e; padding: 26px 28px; border-top: 3px solid #2ab4e8; }\n.aes1-closing-text { font-family: Georgia, serif; font-size: 1.05rem; font-style: italic; color: rgba(255,255,255,0.88); text-align: center; line-height: 1.6; }\n\n\/* ── BOX CONTENT ── *\/\n.aes1-box-section { background: #eef4f8; border-top: 1px solid #c8d8e4; }\n.aes1-det { border-bottom: 1px solid #d8e8f0; background: #fff; }\n.aes1-det--last { border-bottom: none; }\n.aes1-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.aes1-det-sum::-webkit-details-marker { display: none; }\n.aes1-det-sum::marker { display: none; }\n.aes1-det[open] .aes1-det-sum { background: #f0f8fc; }\n.aes1-det-sum:hover { background: #f0f8fc; }\n.aes1-det-left { display: flex; align-items: center; gap: 10px; }\n.aes1-det-ico { font-size: 17px; flex-shrink: 0; }\n.aes1-det-title { font-family: sans-serif; font-size: 13px; font-weight: 700; color: #0d1a2e; display: block; }\n.aes1-det-sub { font-family: sans-serif; font-size: 11px; color: #7a9aaa; margin-top: 1px; display: block; }\n.aes1-det-arr { width: 16px; height: 16px; flex-shrink: 0; position: relative; }\n.aes1-det-arr::before { content: \"\"; position: absolute; top: 50%; left: 50%; width: 8px; height: 8px; border-right: 2px solid #7a9aaa; border-bottom: 2px solid #7a9aaa; transform: translate(-50%,-70%) rotate(45deg); transition: transform .22s; }\n.aes1-det[open] .aes1-det-arr::before { transform: translate(-50%,-30%) rotate(225deg); }\n.aes1-det-body { padding: 0 20px 16px; background: #fff; }\n\n.aes1-comp-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 7px; padding-top: 14px; }\n.aes1-comp { display: flex; align-items: center; gap: 8px; padding: 8px 10px; background: #f0f8fc; border-radius: 8px; border: 1px solid #d8e8f0; }\n.aes1-comp-qty { font-family: sans-serif; font-size: 0.85rem; font-weight: 800; color: #0a7a5a; min-width: 26px; flex-shrink: 0; }\n.aes1-comp-lbl { font-family: sans-serif; font-size: 0.78rem; color: #1a2e3d; line-height: 1.3; }\n\n.aes1-sleeve-grid { display: grid; grid-template-columns: 1fr; gap: 8px; padding-top: 14px; }\n.aes1-sleeve { display: flex; align-items: center; justify-content: space-between; padding: 10px 14px; background: #f0f8fc; border-radius: 8px; border: 1px solid #d8e8f0; flex-wrap: wrap; gap: 6px; }\n.aes1-sleeve-mm { font-family: monospace; font-size: 0.82rem; font-weight: 700; color: #0d1a2e; }\n.aes1-sleeve-r { display: flex; align-items: center; gap: 8px; }\n.aes1-sleeve-qty { font-family: sans-serif; font-size: 0.78rem; color: #4a6a7a; }\n\n\/* ── RESPONSIVE ── *\/\n@media screen and (min-width: 600px) {\n  .aes1-specs { grid-template-columns: repeat(6, 1fr); }\n  .aes1-spec { border-bottom: none; }\n  .aes1-spec:nth-child(3n) { border-right: 1px solid rgba(255,255,255,0.07); }\n  .aes1-spec:last-child { border-right: none; }\n  .aes1-cards { grid-template-columns: repeat(2, 1fr); }\n  .aes1-fs-body { grid-template-columns: 220px 1fr; }\n  .aes1-fs-radar-panel { border-top: none; border-right: 1px solid #e8e2da; }\n  .aes1-fs-info { border-top: none; }\n  .aes1-sleeve-grid { grid-template-columns: 1fr 1fr; }\n}\n@media screen and (min-width: 900px) {\n  .aes1-cover { height: 440px; }\n  .aes1-cover-content { padding: 22px 36px 30px; }\n  .aes1-intro-grid { grid-template-columns: 3fr 2fr; align-items: start; padding: 40px 36px 8px; }\n  .aes1-cards { grid-template-columns: repeat(4, 1fr); }\n  .aes1-divider { margin-left: 36px; margin-right: 36px; }\n  .aes1-section-pad { padding: 36px 36px 8px; }\n  .aes1-closing { padding: 28px 36px; }\n  .aes1-fs-body { grid-template-columns: 260px 1fr; }\n  .aes1-fs-radar-panel svg { max-width: 260px; }\n  .aes1-comp-grid { grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); }\n}\n\u003c\/style\u003e","brand":"Phase Shift Games","offers":[{"title":"Default Title","offer_id":53580638650695,"sku":null,"price":49.99,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0887\/8905\/7863\/files\/Aetherspire00.webp?v=1774360352","url":"https:\/\/frogames.it\/en\/products\/aetherspire","provider":"FroGames","version":"1.0","type":"link"}