{"title":"Manga in Chinese","description":"\u003cp\u003eOfficial Chinese-language manga editions, including Traditional Chinese editions from Taiwanese licensed publishers.\u003c\/p\u003e","products":[{"product_id":"berserk-vol-1-43-six-book-set-manga-chinese-edition","title":"Berserk Vol. 1-43 Six-Book Set Manga Chinese Edition","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\"\u003eBerserk\u003cbr\u003e\u003cspan class=\"otk-spec__sub\"\u003eVol. 1–43\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"otk-spec\"\u003e\n      \u003cdiv class=\"otk-spec__label\"\u003eAuthor\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\"\u003eKentaro Miura\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"otk-spec\"\u003e\n      \u003cdiv class=\"otk-spec__label\"\u003eLanguage\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\u003ccircle cx=\"12\" cy=\"12\" r=\"9\"\u003e\u003c\/circle\u003e\u003cpath d=\"M3 12h18\"\u003e\u003c\/path\u003e\u003cpath d=\"M12 3a15 15 0 0 1 0 18a15 15 0 0 1 0-18z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n      \u003cdiv class=\"otk-spec__value\"\u003eChinese\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\"\u003eSix books\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\u003eKentaro Miura's \u003cem\u003eBerserk\u003c\/em\u003e, volumes 1 through 43, collected in six books. It runs from Guts' first appearance as the Black Swordsman through the Golden Age, the Eclipse and the long journey after it — the story as Miura himself drew it before his death in 2021.\u003c\/p\u003e\n\u003ch3\u003eGood to know\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eLanguage: Chinese.\u003c\/strong\u003e This is not an English or Japanese edition.\u003c\/li\u003e\n\u003cli\u003eSix books containing the content of volumes 1–43.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"OTAKUWA","offers":[{"title":"Title","offer_id":57232971399508,"sku":"737594616613","price":59.99,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1075\/4510\/0628\/files\/O1CN01qJBjBA1SEWHtnh5KH__3250432215.webp?v=1790013294"},{"product_id":"jujutsu-kaisen-vol-30-final-volume-manga-traditional-chinese-edition","title":"Jujutsu Kaisen Vol. 30 Final Volume Manga Traditional Chinese Edition","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\"\u003eJujutsu Kaisen\u003cbr\u003e\u003cspan class=\"otk-spec__sub\"\u003eVol. 30 · final\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"otk-spec\"\u003e\n      \u003cdiv class=\"otk-spec__label\"\u003eAuthor\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\"\u003eGege Akutami\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"otk-spec\"\u003e\n      \u003cdiv class=\"otk-spec__label\"\u003eLanguage\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\u003ccircle cx=\"12\" cy=\"12\" r=\"9\"\u003e\u003c\/circle\u003e\u003cpath d=\"M3 12h18\"\u003e\u003c\/path\u003e\u003cpath d=\"M12 3a15 15 0 0 1 0 18a15 15 0 0 1 0-18z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n      \u003cdiv class=\"otk-spec__value\"\u003eTraditional Chinese\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"otk-spec\"\u003e\n      \u003cdiv class=\"otk-spec__label\"\u003ePublisher\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 21V5a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v16\"\u003e\u003c\/path\u003e\u003cpath d=\"M14 10h5a1 1 0 0 1 1 1v10\"\u003e\u003c\/path\u003e\u003cpath d=\"M2 21h20\"\u003e\u003c\/path\u003e\u003cpath d=\"M7 8h3M7 12h3M7 16h3M17 14h1M17 17h1\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n      \u003cdiv class=\"otk-spec__value\"\u003eTong Li\u003cbr\u003e\u003cspan class=\"otk-spec__sub\"\u003eTaiwan\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\"\u003ePaperback\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"otk-spec\"\u003e\n      \u003cdiv class=\"otk-spec__label\"\u003eAlso here\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\"\u003eFanbook, light\u003cbr\u003e\u003cspan class=\"otk-spec__sub\"\u003enovels, S1 record\u003c\/span\u003e\n\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\u003eThe final volume.\u003c\/strong\u003e Volume 30 closes Gege Akutami's \u003cem\u003eJujutsu Kaisen\u003c\/em\u003e — the end of the Shinjuku showdown and the series' epilogue — in the official Taiwanese edition from Tong Li Publishing.\u003c\/p\u003e\n\u003cp\u003eChoose the in-stock copy for faster dispatch, or pre-order if stock has run out. The franchise's companion books are available in the same listing: the Official Fanbook, both light novels with first-print bonus cards, and the TV Anime Season 1 Complete Record.\u003c\/p\u003e\n\u003ch3\u003eGood to know\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eLanguage: Traditional Chinese\u003c\/strong\u003e for every item. None are English or Japanese editions.\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePre-order\u003c\/strong\u003e ships once our supplier restocks; we will confirm the date by email.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Tong Li Publishing","offers":[{"title":"Manga Vol. 30 (in stock)","offer_id":57234128142676,"sku":"5809711125117","price":16.99,"currency_code":"EUR","in_stock":false},{"title":"Manga Vol. 30 (pre-order)","offer_id":57234128175444,"sku":"6235649922089","price":16.99,"currency_code":"EUR","in_stock":false},{"title":"Official Fanbook","offer_id":57234128208212,"sku":"6012270320127","price":12.99,"currency_code":"EUR","in_stock":false},{"title":"Light novel: Summer of Ashes, Autumn of Dust (bonus card)","offer_id":57234128240980,"sku":"6012270320129","price":14.99,"currency_code":"EUR","in_stock":false},{"title":"Light novel: Thorny Road of Dawn (bonus card)","offer_id":57234128273748,"sku":"6012270320130","price":14.99,"currency_code":"EUR","in_stock":false},{"title":"TV Anime Season 1 Complete Record","offer_id":57234128306516,"sku":"6012270320128","price":29.99,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1075\/4510\/0628\/files\/O1CN01kVJEKe1TGBUfilfWJ__807832354.jpg?v=1790020368"},{"product_id":"jujutsu-kaisen-vol-25-manga-traditional-chinese-edition","title":"Jujutsu Kaisen Vol. 25 Manga Traditional Chinese Edition","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\"\u003eJujutsu Kaisen\u003cbr\u003e\u003cspan class=\"otk-spec__sub\"\u003eVol. 25\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"otk-spec\"\u003e\n      \u003cdiv class=\"otk-spec__label\"\u003eAuthor\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\"\u003eGege Akutami\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"otk-spec\"\u003e\n      \u003cdiv class=\"otk-spec__label\"\u003eLanguage\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\u003ccircle cx=\"12\" cy=\"12\" r=\"9\"\u003e\u003c\/circle\u003e\u003cpath d=\"M3 12h18\"\u003e\u003c\/path\u003e\u003cpath d=\"M12 3a15 15 0 0 1 0 18a15 15 0 0 1 0-18z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n      \u003cdiv class=\"otk-spec__value\"\u003eTraditional Chinese\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"otk-spec\"\u003e\n      \u003cdiv class=\"otk-spec__label\"\u003ePublisher\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 21V5a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v16\"\u003e\u003c\/path\u003e\u003cpath d=\"M14 10h5a1 1 0 0 1 1 1v10\"\u003e\u003c\/path\u003e\u003cpath d=\"M2 21h20\"\u003e\u003c\/path\u003e\u003cpath d=\"M7 8h3M7 12h3M7 16h3M17 14h1M17 17h1\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n      \u003cdiv class=\"otk-spec__value\"\u003eTong Li\u003cbr\u003e\u003cspan class=\"otk-spec__sub\"\u003eTaiwan\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\"\u003ePaperback\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"otk-spec\"\u003e\n      \u003cdiv class=\"otk-spec__label\"\u003eAlso here\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\"\u003eFanbook, light\u003cbr\u003e\u003cspan class=\"otk-spec__sub\"\u003enovels, S1 record\u003c\/span\u003e\n\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\u003eVolume 25 of \u003cem\u003eJujutsu Kaisen\u003c\/em\u003e in the official Taiwanese edition from Tong Li Publishing — the Shinjuku showdown, Gojo against Sukuna.\u003c\/p\u003e\n\u003cp\u003eThe same listing also carries the Traditional Chinese editions of the franchise's companion books, so you can order them together:\u003c\/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eOfficial Fanbook\u003c\/strong\u003e — character profiles and creator commentary\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eLight novel: Summer of Ashes, Autumn of Dust\u003c\/strong\u003e — with first-print bonus card\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eLight novel: Thorny Road of Dawn\u003c\/strong\u003e — with first-print bonus card\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eTV Anime Season 1 Complete Record\u003c\/strong\u003e — the anime's official record book\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003ch3\u003eGood to know\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eLanguage: Traditional Chinese\u003c\/strong\u003e for every item in this listing. None are English or Japanese editions.\u003c\/li\u003e\n\u003cli\u003eBonus cards are included only while first-print copies last.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Tong Li Publishing","offers":[{"title":"Manga Vol. 25","offer_id":57234131026260,"sku":"6012248596200","price":14.99,"currency_code":"EUR","in_stock":false},{"title":"Manga Vol. 25 + fanbook poster","offer_id":57234131059028,"sku":"6012248596201","price":19.99,"currency_code":"EUR","in_stock":false},{"title":"Official Fanbook","offer_id":57234131091796,"sku":"6012270300813","price":12.99,"currency_code":"EUR","in_stock":false},{"title":"Light novel: Summer of Ashes, Autumn of Dust (bonus card)","offer_id":57234131124564,"sku":"6012270300816","price":14.99,"currency_code":"EUR","in_stock":false},{"title":"Light novel: Thorny Road of Dawn (bonus card)","offer_id":57234131157332,"sku":"6012270300817","price":14.99,"currency_code":"EUR","in_stock":false},{"title":"TV Anime Season 1 Complete Record","offer_id":57234131190100,"sku":"6012270300815","price":29.99,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1075\/4510\/0628\/files\/O1CN010lmwfe1TGBKUCV4IB__807832354.jpg?v=1790020433"},{"product_id":"jujutsu-kaisen-vol-29-first-print-limited-edition-manga-traditional-chinese","title":"Jujutsu Kaisen Vol. 29 First Print Limited Edition Manga Traditional Chinese","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\"\u003eJujutsu Kaisen\u003cbr\u003e\u003cspan class=\"otk-spec__sub\"\u003eVol. 29\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"otk-spec\"\u003e\n      \u003cdiv class=\"otk-spec__label\"\u003eEdition\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\"\u003eFirst print\u003cbr\u003e\u003cspan class=\"otk-spec__sub\"\u003elimited edition\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"otk-spec\"\u003e\n      \u003cdiv class=\"otk-spec__label\"\u003eAuthor\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\"\u003eGege Akutami\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"otk-spec\"\u003e\n      \u003cdiv class=\"otk-spec__label\"\u003eLanguage\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\u003ccircle cx=\"12\" cy=\"12\" r=\"9\"\u003e\u003c\/circle\u003e\u003cpath d=\"M3 12h18\"\u003e\u003c\/path\u003e\u003cpath d=\"M12 3a15 15 0 0 1 0 18a15 15 0 0 1 0-18z\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n      \u003cdiv class=\"otk-spec__value\"\u003eTraditional Chinese\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"otk-spec\"\u003e\n      \u003cdiv class=\"otk-spec__label\"\u003ePublisher\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 21V5a1 1 0 0 1 1-1h8a1 1 0 0 1 1 1v16\"\u003e\u003c\/path\u003e\u003cpath d=\"M14 10h5a1 1 0 0 1 1 1v10\"\u003e\u003c\/path\u003e\u003cpath d=\"M2 21h20\"\u003e\u003c\/path\u003e\u003cpath d=\"M7 8h3M7 12h3M7 16h3M17 14h1M17 17h1\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n      \u003cdiv class=\"otk-spec__value\"\u003eTong Li\u003cbr\u003e\u003cspan class=\"otk-spec__sub\"\u003eTaiwan\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\"\u003ePaperback\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\u003eVolume 29 of Gege Akutami's \u003cem\u003eJujutsu Kaisen\u003c\/em\u003e in the official Taiwanese edition from Tong Li Publishing, the series' licensed publisher in Taiwan. This is the \u003cstrong\u003efirst-print limited edition\u003c\/strong\u003e, the initial run released with the volume.\u003c\/p\u003e\n\u003cp\u003eVolume 29 sits in the final stretch of the Shinjuku showdown, one volume before the series ends.\u003c\/p\u003e\n\u003ch3\u003eGood to know\u003c\/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eLanguage: Traditional Chinese.\u003c\/strong\u003e This is not an English or Japanese edition.\u003c\/li\u003e\n\u003cli\u003eRead right to left, as in the original Japanese.\u003c\/li\u003e\n\u003cli\u003eLooking for the ending? \u003ca href=\"\/collections\/jujutsu-kaisen\"\u003eVolume 30, the final volume\u003c\/a\u003e, is also available.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"Tong Li Publishing","offers":[{"title":"Title","offer_id":57234135548244,"sku":"887877644210","price":16.99,"currency_code":"EUR","in_stock":false}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1075\/4510\/0628\/files\/O1CN01xdp6tD1TGBUERU8ZO__4611686018427382562-0-item_pic.webp?v=1790020562"}],"url":"https:\/\/www.otakuwa.com\/collections\/manga-in-chinese.oembed","provider":"OTAKUWA","version":"1.0","type":"link"}