{"product_id":"jojo-s-bizarre-adventure-jojoveller-art-book-box-set-hirohiko-araki","title":"JoJo's Bizarre Adventure JOJOVELLER Art Book Box Set Hirohiko Araki","description":"\u003cdiv class=\"otk-specs\" data-otk-specs\u003e\n  \u003cdiv class=\"otk-specs__row\"\u003e\n  \u003cbutton class=\"otk-specs__nav otk-specs__nav--prev\" type=\"button\" aria-label=\"Previous details\" hidden\u003e\n    \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M15 5l-7 7 7 7\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n  \u003c\/button\u003e\n\n  \u003cdiv class=\"otk-specs__track\" data-otk-track\u003e\n    \u003cdiv class=\"otk-spec\"\u003e\n      \u003cdiv class=\"otk-spec__label\"\u003eSeries\u003c\/div\u003e\n      \u003csvg class=\"otk-spec__icon\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M5 4h4v16H5z\"\u003e\u003c\/path\u003e\u003cpath d=\"M11 4h4v16h-4z\"\u003e\u003c\/path\u003e\u003cpath d=\"M17.5 4.4l2.6 15.2\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n      \u003cdiv class=\"otk-spec__value\"\u003eJoJo's Bizarre\u003cbr\u003e\u003cspan class=\"otk-spec__sub\"\u003eAdventure\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"otk-spec\"\u003e\n      \u003cdiv class=\"otk-spec__label\"\u003eArtist\u003c\/div\u003e\n      \u003csvg class=\"otk-spec__icon\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M4 20l3.5-1 9.1-9.1a2 2 0 0 0 0-2.8l-.7-.7a2 2 0 0 0-2.8 0L4 15.5z\"\u003e\u003c\/path\u003e\u003cpath d=\"M13.5 5.5l3 3\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n      \u003cdiv class=\"otk-spec__value\"\u003eHirohiko Araki\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"otk-spec\"\u003e\n      \u003cdiv class=\"otk-spec__label\"\u003eContents\u003c\/div\u003e\n      \u003csvg class=\"otk-spec__icon\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M7 3h10a1 1 0 0 1 1 1v16a1 1 0 0 1-1 1H7a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1z\"\u003e\u003c\/path\u003e\u003cpath d=\"M9.5 7.5h5M9.5 11h5M9.5 14.5h3\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n      \u003cdiv class=\"otk-spec__value\"\u003eArt book, History,\u003cbr\u003e\u003cspan class=\"otk-spec__sub\"\u003eStands\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"otk-spec\"\u003e\n      \u003cdiv class=\"otk-spec__label\"\u003eFormat\u003c\/div\u003e\n      \u003csvg class=\"otk-spec__icon\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M4 5.5A1.5 1.5 0 0 1 5.5 4H18a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H5.5A1.5 1.5 0 0 1 4 18.5z\"\u003e\u003c\/path\u003e\u003cpath d=\"M8 4v16\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n      \u003cdiv class=\"otk-spec__value\"\u003eBox set\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"otk-spec\"\u003e\n      \u003cdiv class=\"otk-spec__label\"\u003eCondition\u003c\/div\u003e\n      \u003csvg class=\"otk-spec__icon\" viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M12 2.5l7.5 3v6c0 4.6-3.1 8.4-7.5 10-4.4-1.6-7.5-5.4-7.5-10v-6z\"\u003e\u003c\/path\u003e\u003cpath d=\"M9 12l2 2 4-4\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n      \u003cdiv class=\"otk-spec__value otk-spec__value--good\"\u003eNew\u003c\/div\u003e\n    \u003c\/div\u003e\n  \u003c\/div\u003e\n\n  \u003cbutton class=\"otk-specs__nav otk-specs__nav--next\" type=\"button\" aria-label=\"More details\" hidden\u003e\n    \u003csvg viewbox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\u003cpath d=\"M9 5l7 7-7 7\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n  \u003c\/button\u003e\n  \u003c\/div\u003e\n\n  \u003cdiv class=\"otk-specs__dots\" data-otk-dots hidden\u003e\u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cstyle\u003e\n.otk-specs{\n  position:relative;\n  margin:0 0 28px;\n  padding:14px 0 10px;\n  border-top:1px solid #e5e7eb;\n  border-bottom:1px solid #e5e7eb;\n}\n.otk-specs__row{\n  display:flex;\n  align-items:center;\n}\n.otk-specs__dots{\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  gap:7px;\n  margin-top:12px;\n}\n.otk-specs__dots[hidden]{display:none}\n.otk-specs__dot{\n  width:7px;\n  height:7px;\n  padding:0;\n  border:0;\n  border-radius:50%;\n  background:#d1d5db;\n  cursor:pointer;\n  transition:background .2s ease,width .2s ease;\n}\n.otk-specs__dot:hover{background:#9ca3af}\n.otk-specs__dot[aria-current=\"true\"]{\n  width:20px;\n  border-radius:4px;\n  background:#111827;\n}\n.otk-specs__track{\n  display:flex;\n  gap:4px;\n  flex:1 1 auto;\n  overflow-x:auto;\n  scroll-behavior:smooth;\n  scroll-snap-type:x mandatory;\n  -webkit-overflow-scrolling:touch;\n  scrollbar-width:none;\n  -ms-overflow-style:none;\n}\n.otk-specs__track::-webkit-scrollbar{display:none}\n.otk-spec{\n  flex:0 0 auto;\n  width:142px;\n  scroll-snap-align:start;\n  display:flex;\n  flex-direction:column;\n  align-items:center;\n  gap:8px;\n  padding:4px 6px;\n  text-align:center;\n}\n.otk-spec__label{font-size:13px;line-height:1.2;color:#6b7280}\n.otk-spec__icon{width:30px;height:30px;color:#111827}\n.otk-spec__value{font-size:14px;font-weight:700;line-height:1.35;color:#111827}\n.otk-spec__value--good{color:#15803d}\n.otk-spec__sub{font-weight:400;font-size:12px;color:#6b7280}\n\n.otk-specs__nav{\n  flex:0 0 auto;\n  display:flex;\n  align-items:center;\n  justify-content:center;\n  width:34px;\n  height:34px;\n  margin:0 2px;\n  padding:0;\n  background:#fff;\n  border:1px solid #d1d5db;\n  border-radius:50%;\n  color:#374151;\n  cursor:pointer;\n  transition:background .15s ease,border-color .15s ease;\n}\n.otk-specs__nav:hover{background:#f9fafb;border-color:#9ca3af}\n.otk-specs__nav svg{width:18px;height:18px}\n.otk-specs__nav[hidden]{display:none}\n\n@media(max-width:600px){\n  .otk-specs{padding:12px 0 8px}\n  .otk-spec{width:112px}\n  .otk-spec__label{font-size:11px}\n  .otk-spec__icon{width:26px;height:26px}\n  .otk-spec__value{font-size:12px}\n  .otk-spec__sub{font-size:10px}\n  .otk-specs__nav{display:none}\n}\n\u003c\/style\u003e\n\n\u003cscript\u003e\n(function(){\n  function init(root){\n    if(root.dataset.otkReady) return;\n    root.dataset.otkReady = '1';\n\n    var track = root.querySelector('[data-otk-track]');\n    var prev  = root.querySelector('.otk-specs__nav--prev');\n    var next  = root.querySelector('.otk-specs__nav--next');\n    var dots  = root.querySelector('[data-otk-dots]');\n    if(!track || !prev || !next) return;\n\n    var built = false;\n\n    function maxScroll(){\n      return track.scrollWidth - track.clientWidth - 1;\n    }\n\n    function buildDots(){\n      if(!dots) return;\n      var scrollable = maxScroll() \u003e 0;\n      dots.hidden = !scrollable;\n      if(!scrollable){ dots.innerHTML = ''; built = false; return; }\n      if(built) return;\n      built = true;\n      dots.innerHTML = '';\n      for(var i=0;i\u003c2;i++){\n        (function(i){\n          var b = document.createElement('button');\n          b.type = 'button';\n          b.className = 'otk-specs__dot';\n          b.setAttribute('aria-label', i === 0 ? 'First details' : 'More details');\n          b.addEventListener('click', function(){\n            track.scrollLeft = i === 0 ? 0 : maxScroll() + 1;\n          });\n          dots.appendChild(b);\n        })(i);\n      }\n    }\n\n    function syncDots(){\n      if(!dots || dots.hidden || dots.children.length \u003c 2) return;\n      var i = track.scrollLeft \u003e maxScroll() \/ 2 ? 1 : 0;\n      dots.children[0].setAttribute('aria-current', i === 0 ? 'true' : 'false');\n      dots.children[1].setAttribute('aria-current', i === 1 ? 'true' : 'false');\n    }\n\n    function step(){\n      var cell = track.querySelector('.otk-spec');\n      var w = cell ? cell.getBoundingClientRect().width + 4 : 146;\n      return Math.max(w, Math.floor(track.clientWidth \/ w) * w);\n    }\n\n\n    function update(){\n      var max = track.scrollWidth - track.clientWidth - 1;\n      var scrollable = max \u003e 0;\n      prev.hidden = !scrollable || track.scrollLeft \u003c= 0;\n      next.hidden = !scrollable || track.scrollLeft \u003e= max;\n      syncDots();\n    }\n\n    prev.addEventListener('click', function(){ track.scrollLeft -= step(); });\n    next.addEventListener('click', function(){ track.scrollLeft += step(); });\n    track.addEventListener('scroll', update, {passive:true});\n    window.addEventListener('resize', function(){ buildDots(); update(); });\n    buildDots();\n    update();\n    setTimeout(function(){ buildDots(); update(); }, 400);\n  }\n\n  function boot(){\n    var all = document.querySelectorAll('[data-otk-specs]');\n    for(var i=0;i\u003call.length;i++) init(all[i]);\n  }\n\n  if(document.readyState === 'loading'){\n    document.addEventListener('DOMContentLoaded', boot);\n  } else {\n    boot();\n  }\n})();\n\u003c\/script\u003e\n\n\u003cp\u003e\u003cstrong\u003eJOJOVELLER\u003c\/strong\u003e is the anniversary collection made for \u003cem\u003eJoJo's Bizarre Adventure\u003c\/em\u003e — three books in one presentation box, designed to be the definitive record of Hirohiko Araki's work.\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eThe art book\u003c\/strong\u003e — Araki's colour illustrations across the series\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eHistory\u003c\/strong\u003e — the chronicle of the series, part by part\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eStands\u003c\/strong\u003e — the encyclopaedia of Stands and their users\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp\u003eAraki's colour work — the fashion-plate poses, the impossible palettes — is the reason JoJo looks like nothing else in manga, and this is the collection that shows it at full size.\u003c\/p\u003e","brand":"OTAKUWA","offers":[{"title":"Title","offer_id":57232948396372,"sku":"703384940501","price":139.99,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1075\/4510\/0628\/files\/O1CN01FwONBE2LbEc24MhKg__0-item_pic.webp?v=1790013146","url":"https:\/\/www.otakuwa.com\/products\/jojo-s-bizarre-adventure-jojoveller-art-book-box-set-hirohiko-araki","provider":"OTAKUWA","version":"1.0","type":"link"}