{"title":"Jujutsu Kaisen","description":"\u003cp\u003eOfficial Japanese art books, soundtracks, scores and publications for \u003cstrong\u003eJujutsu Kaisen\u003c\/strong\u003e, imported direct from Japan. 8 titles currently in stock — new releases are added to this collection automatically.\u003c\/p\u003e","products":[{"product_id":"99866a","title":"Jujutsu Kaisen: The Official Anime Guide: Season 1","description":"\u003cp\u003eThe official companion to the first season of the hugely popular Jujutsu Kaisen anime. The official companion to the first season of the hugely popular Jujutsu Kaisen anime.   Enter the world of jujutsu sorcerers and cursed spirits with Jujutsu Kaisen: The Official Anime Guide: Season 1.\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003eBased on the hugely popular manga series by Gege Akutami, this guide to the Jujutsu Kaisen anime will provide readers with everything they wanted to know about the making of the action-packed series. Discover all the behind-the-scenes details as the anime production team discusses the painstaking work that went into translating the pages of the best-selling manga to animation. Featuring concept art, original storyboards, character design sketches, exclusive interviews, and commentary from the voice actors, this book also includes two double-sided posters and is the ultimate look into the creation of the first season of Jujutsu Kaisen!\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eOtaku code:\u003c\/strong\u003e 99866A\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eBarcode:\u003c\/strong\u003e 9781974740819\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eRelease date:\u003c\/strong\u003e 9\/11\/2023\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCondition:\u003c\/strong\u003e New\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePages:\u003c\/strong\u003e 168\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eLanguages:\u003c\/strong\u003e English\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFormat:\u003c\/strong\u003e B5 - 182 x 257 mm \/ 7.25 x 10 inch\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"My Store","offers":[{"title":"Default Title","offer_id":57180476768596,"sku":"99866A","price":12.99,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1075\/4510\/0628\/files\/99866A.jpg?v=1789585781"},{"product_id":"209478j","title":"JUJUTSU KAISEN  0 MOVIE - Band Score Book","description":"\u003cp\u003e2 titles\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003emain theme and ending theme.\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eOtaku code:\u003c\/strong\u003e 209478J\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eBarcode:\u003c\/strong\u003e 9784401359547\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eRelease date:\u003c\/strong\u003e 7\/4\/2022\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCondition:\u003c\/strong\u003e Brand New\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePages:\u003c\/strong\u003e 52\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFormat:\u003c\/strong\u003e 225 x 297 mm \/ 8.75 x 11.75 inch\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"My Store","offers":[{"title":"Default Title","offer_id":57181637771604,"sku":"209478J","price":15.99,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1075\/4510\/0628\/files\/209478J_09d806f2-1d76-4e8a-96de-a8b06667ae89.jpg?v=1789588956"},{"product_id":"209477j","title":"JUJUTSU KAISEN  0 MOVIE - Piano Solo Score Book","description":"\u003cp\u003e6 titles\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003emain theme and ending theme  in 3 different levels\u003c\/p\u003e\u003cp\u003eBeginner, intermediate,Advanced\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eOtaku code:\u003c\/strong\u003e 209477J\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eBarcode:\u003c\/strong\u003e 9784401040865\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eRelease date:\u003c\/strong\u003e 7\/4\/2022\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCondition:\u003c\/strong\u003e Brand New\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePages:\u003c\/strong\u003e 60\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFormat:\u003c\/strong\u003e 225 x 297 mm \/ 8.75 x 11.75 inch\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"My Store","offers":[{"title":"Default Title","offer_id":57181638000980,"sku":"209477J","price":15.99,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1075\/4510\/0628\/files\/209477J_addcc8a5-0f37-4a7e-8a61-1f8ef357a52a.jpg?v=1789588962"},{"product_id":"209463j","title":"JUJUTSU KAISEN 0 Movie Original Soundtrack","description":"\u003cp\u003eOfficial Japanese release\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eOtaku code:\u003c\/strong\u003e 209463J\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCatalogue no.:\u003c\/strong\u003e THCA-60270\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eBarcode:\u003c\/strong\u003e 4988104115706\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eRelease date:\u003c\/strong\u003e 22\/12\/2021\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCondition:\u003c\/strong\u003e New\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFormat:\u003c\/strong\u003e 1 CD\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"My Store","offers":[{"title":"Default Title","offer_id":57181643407700,"sku":"209463J","price":19.99,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1075\/4510\/0628\/files\/209463J.jpg?v=1789589010"},{"product_id":"209432j","title":"Jujutsu Kaisen Official Fan Book","description":"\u003cp\u003eOfficial Japanese publication\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eOtaku code:\u003c\/strong\u003e 209432J\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eBarcode:\u003c\/strong\u003e 9784088826363\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eRelease date:\u003c\/strong\u003e 4\/3\/2021\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCondition:\u003c\/strong\u003e New\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePages:\u003c\/strong\u003e 230\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eLanguages:\u003c\/strong\u003e Japanese\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFormat:\u003c\/strong\u003e B6 - 128 x 182 mm \/ 5 x 7 inch\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"My Store","offers":[{"title":"Default Title","offer_id":57181669589332,"sku":"209432J","price":8.99,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1075\/4510\/0628\/files\/209432J.jpg?v=1789589287"},{"product_id":"209464j","title":"Jujutsu Kaisen 1st Season Complete Book","description":"\u003cp\u003eGuidebook for the first season of the anime series 'Jujutsu Kaisen'.\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eOtaku code:\u003c\/strong\u003e 209464J\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eBarcode:\u003c\/strong\u003e 9784087925913\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eRelease date:\u003c\/strong\u003e 9\/10\/2021\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCondition:\u003c\/strong\u003e New\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePages:\u003c\/strong\u003e 160\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eLanguages:\u003c\/strong\u003e Japanese\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFormat:\u003c\/strong\u003e B5 - 182 x 257 mm \/ 7.25 x 10 inch\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"My Store","offers":[{"title":"Default Title","offer_id":57181712744788,"sku":"209464J","price":21.99,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1075\/4510\/0628\/files\/209464J_f07e8ca5-2f70-4dc1-bdc1-c313618cf8de.jpg?v=1789589427"},{"product_id":"209186j","title":"JUJUTSU KAISEN  - Piano Solo Score Book","description":"\u003cp\u003e4 titles\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eOtaku code:\u003c\/strong\u003e 209186J\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eBarcode:\u003c\/strong\u003e 9784401039517\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eRelease date:\u003c\/strong\u003e 1\/5\/2021\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCondition:\u003c\/strong\u003e Brand New\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003ePages:\u003c\/strong\u003e 44\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFormat:\u003c\/strong\u003e 225 x 297 mm \/ 8.75 x 11.75 inch\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"My Store","offers":[{"title":"Default Title","offer_id":57181764026708,"sku":"209186J","price":13.99,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1075\/4510\/0628\/files\/209186J_582a8889-c8da-4b87-b352-05706af8f68a.jpg?v=1789590210"},{"product_id":"209164j","title":"Jujutsu Kaisen Original Soundtrack","description":"\u003cp\u003eOfficial Japanese soundtrack for the anime series 'Jujutsu Kaisen'. Contains 60 tracks on 2 CDs.\u003c\/p\u003e\u003cp\u003e\u003c\/p\u003e\u003cul\u003e\n\u003cli\u003e\n\u003cstrong\u003eOtaku code:\u003c\/strong\u003e 209164J\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCatalogue no.:\u003c\/strong\u003e THCA-60266\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eBarcode:\u003c\/strong\u003e 4988104115669\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eRelease date:\u003c\/strong\u003e 21\/4\/2021\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eCondition:\u003c\/strong\u003e New\u003c\/li\u003e\n\u003cli\u003e\n\u003cstrong\u003eFormat:\u003c\/strong\u003e 2 CDs\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"My Store","offers":[{"title":"Default Title","offer_id":57181766386004,"sku":"209164J","price":23.99,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1075\/4510\/0628\/files\/209164J_88f0b60c-08c2-4517-b3dd-02f3260ef92a.jpg?v=1789590248"},{"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":true},{"title":"Manga Vol. 30 (pre-order)","offer_id":57234128175444,"sku":"6235649922089","price":16.99,"currency_code":"EUR","in_stock":true},{"title":"Official Fanbook","offer_id":57234128208212,"sku":"6012270320127","price":12.99,"currency_code":"EUR","in_stock":true},{"title":"Light novel: Summer of Ashes, Autumn of Dust (bonus card)","offer_id":57234128240980,"sku":"6012270320129","price":14.99,"currency_code":"EUR","in_stock":true},{"title":"Light novel: Thorny Road of Dawn (bonus card)","offer_id":57234128273748,"sku":"6012270320130","price":14.99,"currency_code":"EUR","in_stock":true},{"title":"TV Anime Season 1 Complete Record","offer_id":57234128306516,"sku":"6012270320128","price":29.99,"currency_code":"EUR","in_stock":true}],"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":true},{"title":"Manga Vol. 25 + fanbook poster","offer_id":57234131059028,"sku":"6012248596201","price":19.99,"currency_code":"EUR","in_stock":true},{"title":"Official Fanbook","offer_id":57234131091796,"sku":"6012270300813","price":12.99,"currency_code":"EUR","in_stock":true},{"title":"Light novel: Summer of Ashes, Autumn of Dust (bonus card)","offer_id":57234131124564,"sku":"6012270300816","price":14.99,"currency_code":"EUR","in_stock":true},{"title":"Light novel: Thorny Road of Dawn (bonus card)","offer_id":57234131157332,"sku":"6012270300817","price":14.99,"currency_code":"EUR","in_stock":true},{"title":"TV Anime Season 1 Complete Record","offer_id":57234131190100,"sku":"6012270300815","price":29.99,"currency_code":"EUR","in_stock":true}],"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=\"\/es\/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":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1075\/4510\/0628\/files\/O1CN01xdp6tD1TGBUERU8ZO__4611686018427382562-0-item_pic.webp?v=1790020562"},{"product_id":"jujutsu-kaisen-key-animation-art-collection-vol-0-4","title":"Jujutsu Kaisen Key Animation Art Collection Vol. 0-4","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\"\u003eKEY ANIMATION Vol. 0–4\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\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\"\u003eMAPPA\u003cbr\u003e\u003cspan class=\"otk-spec__sub\"\u003ethe anime’s studio\u003c\/span\u003e\n\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\"\u003eKey animation\u003cbr\u003e\u003cspan class=\"otk-spec__sub\"\u003eoriginal drawings\u003c\/span\u003e\n\u003c\/div\u003e\n    \u003c\/div\u003e\n\n    \u003cdiv class=\"otk-spec\"\u003e\n      \u003cdiv class=\"otk-spec__label\"\u003eCovers\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\u003crect x=\"3.5\" y=\"5\" width=\"17\" height=\"15\" rx=\"2\"\u003e\u003c\/rect\u003e\u003cpath d=\"M3.5 9.5h17M8 3.5v3M16 3.5v3\"\u003e\u003c\/path\u003e\u003c\/svg\u003e\n      \u003cdiv class=\"otk-spec__value\"\u003eSeasons 1 \u0026amp; 2\u003cbr\u003e\u003cspan class=\"otk-spec__sub\"\u003e+ \u003cem\u003eJJK 0\u003c\/em\u003e movie\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\"\u003eFull colour\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\"\u003eJapanese\u003cbr\u003e\u003cspan class=\"otk-spec__sub\"\u003edrawing notes\u003c\/span\u003e\n\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 drawings the Jujutsu Kaisen anime was made from.\u003c\/strong\u003e MAPPA’s \u003cem\u003eKEY ANIMATION\u003c\/em\u003e books collect the original key frames — the \u003cem\u003egenga\u003c\/em\u003e — drawn by the studio’s animators, before colour, effects and compositing turned them into the finished episodes.\u003c\/p\u003e\n\u003cp\u003eKey animation is where the performance lives. Every expression, every impact frame, every one of Gojo’s gestures was drawn by hand here first, in pencil, with the animators’ timing notes and colour-coded shading lines still on the page. It is the closest you can get to looking over an animator’s shoulder.\u003c\/p\u003e\n\n\u003ch3\u003eWhat each volume covers\u003c\/h3\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\u003ctr\u003e\n\u003cth\u003eVolume\u003c\/th\u003e\n\u003cth\u003eCovers\u003c\/th\u003e\n\u003c\/tr\u003e\u003c\/thead\u003e\n  \u003ctbody\u003e\n    \u003ctr\u003e\n\u003ctd\u003e\u003cstrong\u003eVol. 0\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd\u003e\n\u003cem\u003eJujutsu Kaisen 0\u003c\/em\u003e — the movie, with Yuta Okkotsu and Rika\u003c\/td\u003e\n\u003c\/tr\u003e\n    \u003ctr\u003e\n\u003ctd\u003e\u003cstrong\u003eVol. 1\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd\u003eSeason 1, episodes 1–13\u003c\/td\u003e\n\u003c\/tr\u003e\n    \u003ctr\u003e\n\u003ctd\u003e\u003cstrong\u003eVol. 2\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd\u003eSeason 1, episodes 14–24 — the Kyoto Goodwill Event and Yuji’s Black Flash\u003c\/td\u003e\n\u003c\/tr\u003e\n    \u003ctr\u003e\n\u003ctd\u003e\u003cstrong\u003eVol. 3\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd\u003eSeason 2, episodes 25–31 — Hidden Inventory \/ Premature Death\u003c\/td\u003e\n\u003c\/tr\u003e\n    \u003ctr\u003e\n\u003ctd\u003e\u003cstrong\u003eVol. 4\u003c\/strong\u003e\u003c\/td\u003e\n\u003ctd\u003eSeason 2, episodes 32–47 — the Shibuya Incident\u003c\/td\u003e\n\u003c\/tr\u003e\n  \u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp\u003e\u003cem\u003eChoose a single volume above, or take the complete set of five.\u003c\/em\u003e\u003c\/p\u003e\n\n\u003ch3\u003eGood to know\u003c\/h3\u003e\n\u003cul\u003e\n  \u003cli\u003e\n\u003cstrong\u003eThese are drawings, not a story.\u003c\/strong\u003e The pages reproduce production artwork, not manga or finished anime frames — ideal for illustrators, animation students and fans of the craft.\u003c\/li\u003e\n  \u003cli\u003e\n\u003cstrong\u003eLanguage:\u003c\/strong\u003e the book is almost entirely artwork; the handwritten notes on the drawings are in Japanese.\u003c\/li\u003e\n  \u003cli\u003eMore from the series in the \u003ca href=\"\/es\/collections\/jujutsu-kaisen\"\u003eJujutsu Kaisen collection\u003c\/a\u003e.\u003c\/li\u003e\n\u003c\/ul\u003e","brand":"MAPPA","offers":[{"title":"Complete set (Vol. 0-4)","offer_id":57234152292692,"sku":"6238101175535","price":220.99,"currency_code":"EUR","in_stock":true},{"title":"Vol. 0","offer_id":57234152325460,"sku":"6238101175536","price":49.99,"currency_code":"EUR","in_stock":true},{"title":"Vol. 1","offer_id":57234152358228,"sku":"6238101175537","price":49.99,"currency_code":"EUR","in_stock":true},{"title":"Vol. 2","offer_id":57234152390996,"sku":"6238101175538","price":49.99,"currency_code":"EUR","in_stock":true},{"title":"Vol. 3","offer_id":57234152423764,"sku":"6238101175539","price":49.99,"currency_code":"EUR","in_stock":true},{"title":"Vol. 4","offer_id":57234152456532,"sku":"6238101175540","price":49.99,"currency_code":"EUR","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1075\/4510\/0628\/files\/final_set_277ea88e-d20b-4562-8e5d-e30765e77db2.jpg?v=1790192891"}],"url":"https:\/\/www.otakuwa.com\/es\/collections\/jujutsu-kaisen.oembed","provider":"OTAKUWA","version":"1.0","type":"link"}