{"title":"T-shirts","description":"\u003cp\u003eSome things can't be rushed — they have to be put together, fragment by fragment, until the picture finally makes sense. This collection is for puzzle lovers who want to carry that feeling beyond the table: storybook castles caught mid-assembly, scattered pieces swirling back into place, quiet reminders that the things worth building take patience. Soft, breathable cotton tees made for slow mornings, long trails, and anyone who understands that real progress is usually quiet — and worth it.\u003c\/p\u003e","products":[{"product_id":"castle-puzzle-t-shirt-one-piece-at-a-time-inspirational-tee","title":"One Piece at a Time Unisex T-Shirt","description":"\u003cp class=\"font-claude-response-body break-words whitespace-normal\"\u003eA storybook castle, falling apart and rebuilding itself — front and back. A premium tee for anyone who knows that real progress is quiet, slow, and worth it.\u003c\/p\u003e\n\u003chr class=\"border-border-200 border-t-0.5 my-3 mx-1.5\"\u003e\n\u003cp class=\"font-claude-response-body break-words whitespace-normal\"\u003eSome things can't be rushed. They have to be built — piece by piece, day by day, even when the picture isn't clear yet.\u003c\/p\u003e\n\u003cp class=\"font-claude-response-body break-words whitespace-normal\"\u003e\u003cem\u003eOne Piece at a Time\u003c\/em\u003e tells that story across both sides of the shirt. On the front, a weathered castle stands beneath a sky of swirling puzzle pieces, caught in the exact moment between falling apart and coming together — warm oranges and deep storybook purples that feel like a memory you haven't had yet. Turn around, and the story continues: a lone figure stands before that same castle, one piece raised toward the sky, refusing to stop. \u003cem\u003eKeep building.\u003c\/em\u003e\u003c\/p\u003e\n\u003cp class=\"font-claude-response-body break-words whitespace-normal\"\u003eThis isn't just a graphic tee. It's a small, wearable reminder — for the slow mornings, the long projects, the days when finishing feels far away. Worn by people who understand that the things worth having were never built in one sitting.\u003c\/p\u003e\n\u003cp class=\"font-claude-response-body break-words whitespace-normal\"\u003eSoft, breathable, ring-spun cotton. A relaxed fit that moves with you. Artwork made to be lived in — coffee in hand, boots on a trail, or curled up with a book — because the best stories don't ask to be rushed either.\u003c\/p\u003e\n\u003ctable id=\"size-guide\" style=\"min-width: 360px; width: 99.9972%;\"\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth style=\"padding: 10px; width: 27.9494%;\"\u003e\u003c\/th\u003e\n\u003cth style=\"color: rgb(0, 0, 0); font-weight: 500; text-align: left; font-size: 15px; padding: 10px; width: 8.89298%;\"\u003eS\u003c\/th\u003e\n\u003cth style=\"color: rgb(0, 0, 0); font-weight: 500; text-align: left; font-size: 15px; padding: 10px; width: 9.25596%;\"\u003eM\u003c\/th\u003e\n\u003cth style=\"color: rgb(0, 0, 0); font-weight: 500; text-align: left; font-size: 15px; padding: 10px; width: 8.89298%;\"\u003eL\u003c\/th\u003e\n\u003cth style=\"color: rgb(0, 0, 0); font-weight: 500; text-align: left; font-size: 15px; padding: 10px; width: 9.61894%;\"\u003eXL\u003c\/th\u003e\n\u003cth style=\"color: rgb(0, 0, 0); font-weight: 500; text-align: left; font-size: 15px; padding: 10px; width: 11.2523%;\"\u003e2XL\u003c\/th\u003e\n\u003cth style=\"color: rgb(0, 0, 0); font-weight: 500; text-align: left; font-size: 15px; padding: 10px; width: 11.2523%;\"\u003e3XL\u003c\/th\u003e\n\u003cth style=\"color: rgb(0, 0, 0); font-weight: 500; text-align: left; font-size: 15px; padding: 10px; width: 11.2523%;\"\u003e\u003cbr\u003e\u003c\/th\u003e\n\u003c\/tr\u003e\n\u003c\/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd style=\"padding: 10px; color: rgb(82, 82, 82); font-size: 15px; border-top: 1px solid rgb(237, 237, 237); word-break: break-word; width: 27.9494%;\"\u003eWidth, in\u003c\/td\u003e\n\u003ctd style=\"padding: 10px; color: rgb(82, 82, 82); font-size: 15px; border-top: 1px solid rgb(237, 237, 237); word-break: break-word; width: 8.89298%;\"\u003e18.00\u003c\/td\u003e\n\u003ctd style=\"padding: 10px; color: rgb(82, 82, 82); font-size: 15px; border-top: 1px solid rgb(237, 237, 237); word-break: break-word; width: 9.25596%;\"\u003e20.00\u003c\/td\u003e\n\u003ctd style=\"padding: 10px; color: rgb(82, 82, 82); font-size: 15px; border-top: 1px solid rgb(237, 237, 237); word-break: break-word; width: 8.89298%;\"\u003e22.00\u003c\/td\u003e\n\u003ctd style=\"padding: 10px; color: rgb(82, 82, 82); font-size: 15px; border-top: 1px solid rgb(237, 237, 237); word-break: break-word; width: 9.61894%;\"\u003e24.00\u003c\/td\u003e\n\u003ctd style=\"padding: 10px; color: rgb(82, 82, 82); font-size: 15px; border-top: 1px solid rgb(237, 237, 237); word-break: break-word; width: 11.2523%;\"\u003e26.00\u003c\/td\u003e\n\u003ctd style=\"padding: 10px; color: rgb(82, 82, 82); font-size: 15px; border-top: 1px solid rgb(237, 237, 237); word-break: break-word; width: 11.2523%;\"\u003e28.00\u003c\/td\u003e\n\u003ctd style=\"padding: 10px; color: rgb(82, 82, 82); font-size: 15px; border-top: 1px solid rgb(237, 237, 237); word-break: break-word; width: 11.2523%;\"\u003e\u003cbr\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"padding: 10px; color: rgb(82, 82, 82); font-size: 15px; border-top: 1px solid rgb(237, 237, 237); word-break: break-word; width: 27.9494%;\"\u003eLength, in\u003c\/td\u003e\n\u003ctd style=\"padding: 10px; color: rgb(82, 82, 82); font-size: 15px; border-top: 1px solid rgb(237, 237, 237); word-break: break-word; width: 8.89298%;\"\u003e28.00\u003c\/td\u003e\n\u003ctd style=\"padding: 10px; color: rgb(82, 82, 82); font-size: 15px; border-top: 1px solid rgb(237, 237, 237); word-break: break-word; width: 9.25596%;\"\u003e29.00\u003c\/td\u003e\n\u003ctd style=\"padding: 10px; color: rgb(82, 82, 82); font-size: 15px; border-top: 1px solid rgb(237, 237, 237); word-break: break-word; width: 8.89298%;\"\u003e30.00\u003c\/td\u003e\n\u003ctd style=\"padding: 10px; color: rgb(82, 82, 82); font-size: 15px; border-top: 1px solid rgb(237, 237, 237); word-break: break-word; width: 9.61894%;\"\u003e31.00\u003c\/td\u003e\n\u003ctd style=\"padding: 10px; color: rgb(82, 82, 82); font-size: 15px; border-top: 1px solid rgb(237, 237, 237); word-break: break-word; width: 11.2523%;\"\u003e32.00\u003c\/td\u003e\n\u003ctd style=\"padding: 10px; color: rgb(82, 82, 82); font-size: 15px; border-top: 1px solid rgb(237, 237, 237); word-break: break-word; width: 11.2523%;\"\u003e33.00\u003c\/td\u003e\n\u003ctd style=\"padding: 10px; color: rgb(82, 82, 82); font-size: 15px; border-top: 1px solid rgb(237, 237, 237); word-break: break-word; width: 11.2523%;\"\u003e\u003cbr\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"padding: 10px; color: rgb(82, 82, 82); font-size: 15px; border-top: 1px solid rgb(237, 237, 237); word-break: break-word; width: 27.9494%;\"\u003eSleeve length, in\u003c\/td\u003e\n\u003ctd style=\"padding: 10px; color: rgb(82, 82, 82); font-size: 15px; border-top: 1px solid rgb(237, 237, 237); word-break: break-word; width: 8.89298%;\"\u003e8.23\u003c\/td\u003e\n\u003ctd style=\"padding: 10px; color: rgb(82, 82, 82); font-size: 15px; border-top: 1px solid rgb(237, 237, 237); word-break: break-word; width: 9.25596%;\"\u003e8.50\u003c\/td\u003e\n\u003ctd style=\"padding: 10px; color: rgb(82, 82, 82); font-size: 15px; border-top: 1px solid rgb(237, 237, 237); word-break: break-word; width: 8.89298%;\"\u003e8.74\u003c\/td\u003e\n\u003ctd style=\"padding: 10px; color: rgb(82, 82, 82); font-size: 15px; border-top: 1px solid rgb(237, 237, 237); word-break: break-word; width: 9.61894%;\"\u003e9.02\u003c\/td\u003e\n\u003ctd style=\"padding: 10px; color: rgb(82, 82, 82); font-size: 15px; border-top: 1px solid rgb(237, 237, 237); word-break: break-word; width: 11.2523%;\"\u003e9.25\u003c\/td\u003e\n\u003ctd style=\"padding: 10px; color: rgb(82, 82, 82); font-size: 15px; border-top: 1px solid rgb(237, 237, 237); word-break: break-word; width: 11.2523%;\"\u003e9.49\u003c\/td\u003e\n\u003ctd style=\"padding: 10px; color: rgb(82, 82, 82); font-size: 15px; border-top: 1px solid rgb(237, 237, 237); word-break: break-word; width: 11.2523%;\"\u003e\u003cbr\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003ctr\u003e\n\u003ctd style=\"padding: 10px; color: rgb(82, 82, 82); font-size: 15px; border-top: 1px solid rgb(237, 237, 237); word-break: break-word; width: 27.9494%;\"\u003eSize tolerance, in\u003c\/td\u003e\n\u003ctd style=\"padding: 10px; color: rgb(82, 82, 82); font-size: 15px; border-top: 1px solid rgb(237, 237, 237); word-break: break-word; width: 8.89298%;\"\u003e1.50\u003c\/td\u003e\n\u003ctd style=\"padding: 10px; color: rgb(82, 82, 82); font-size: 15px; border-top: 1px solid rgb(237, 237, 237); word-break: break-word; width: 9.25596%;\"\u003e1.50\u003c\/td\u003e\n\u003ctd style=\"padding: 10px; color: rgb(82, 82, 82); font-size: 15px; border-top: 1px solid rgb(237, 237, 237); word-break: break-word; width: 8.89298%;\"\u003e1.50\u003c\/td\u003e\n\u003ctd style=\"padding: 10px; color: rgb(82, 82, 82); font-size: 15px; border-top: 1px solid rgb(237, 237, 237); word-break: break-word; width: 9.61894%;\"\u003e1.50\u003c\/td\u003e\n\u003ctd style=\"padding: 10px; color: rgb(82, 82, 82); font-size: 15px; border-top: 1px solid rgb(237, 237, 237); word-break: break-word; width: 11.2523%;\"\u003e1.50\u003c\/td\u003e\n\u003ctd style=\"padding: 10px; color: rgb(82, 82, 82); font-size: 15px; border-top: 1px solid rgb(237, 237, 237); word-break: break-word; width: 11.2523%;\"\u003e1.50\u003c\/td\u003e\n\u003ctd style=\"padding: 10px; color: rgb(82, 82, 82); font-size: 15px; border-top: 1px solid rgb(237, 237, 237); word-break: break-word; width: 11.2523%;\"\u003e\u003cbr\u003e\u003c\/td\u003e\n\u003c\/tr\u003e\n\u003c\/tbody\u003e\n\u003c\/table\u003e\n\u003cp class=\"font-claude-response-body break-words whitespace-normal\"\u003e\u003cstrong\u003eProduct Features\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul class=\"[li_\u0026amp;]:mb-0 [li_\u0026amp;]:mt-1 [li_\u0026amp;]:gap-1 [\u0026amp;:not(:last-child)_ul]:pb-1 [\u0026amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3\"\u003e\n\u003cli class=\"font-claude-response-body whitespace-normal break-words pl-2\"\u003eOriginal front and back artwork — one continuous story across the whole shirt\u003c\/li\u003e\n\u003cli class=\"font-claude-response-body whitespace-normal break-words pl-2\"\u003e100% ring-spun cotton (lightweight 153 g\/m²), soft and breathable all day\u003c\/li\u003e\n\u003cli class=\"font-claude-response-body whitespace-normal break-words pl-2\"\u003eTubular knit, no side seams — clean construction, less waste\u003c\/li\u003e\n\u003cli class=\"font-claude-response-body whitespace-normal break-words pl-2\"\u003eRibbed collar and shoulder tape for a shape that holds up wash after wash\u003c\/li\u003e\n\u003cli class=\"font-claude-response-body whitespace-normal break-words pl-2\"\u003eVivid, durable DTG print built to last\u003c\/li\u003e\n\u003cli class=\"font-claude-response-body whitespace-normal break-words pl-2\"\u003eOEKO-TEX® STANDARD 100 certified, ethically sourced cotton, EU 2-year warranty\u003c\/li\u003e\n\u003cli class=\"font-claude-response-body whitespace-normal break-words pl-2\"\u003eRelaxed crew fit that lets the artwork — and you — breathe\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp class=\"font-claude-response-body break-words whitespace-normal\"\u003e\u003cstrong\u003eCare Instructions\u003c\/strong\u003e\u003c\/p\u003e\n\u003cul class=\"[li_\u0026amp;]:mb-0 [li_\u0026amp;]:mt-1 [li_\u0026amp;]:gap-1 [\u0026amp;:not(:last-child)_ul]:pb-1 [\u0026amp;:not(:last-child)_ol]:pb-1 list-disc flex flex-col gap-1 pl-8 mb-3\"\u003e\n\u003cli class=\"font-claude-response-body whitespace-normal break-words pl-2\"\u003eMachine wash cold (max 30°C \/ 90°F), with similar colors\u003c\/li\u003e\n\u003cli class=\"font-claude-response-body whitespace-normal break-words pl-2\"\u003eTumble dry on low heat\u003c\/li\u003e\n\u003cli class=\"font-claude-response-body whitespace-normal break-words pl-2\"\u003eIron, steam, or dry on low heat\u003c\/li\u003e\n\u003cli class=\"font-claude-response-body whitespace-normal break-words pl-2\"\u003eDo not bleach\u003c\/li\u003e\n\u003cli class=\"font-claude-response-body whitespace-normal break-words pl-2\"\u003eDo not dryclean\u003c\/li\u003e\n\u003c\/ul\u003e\n\u003cp class=\"font-claude-response-body break-words whitespace-normal\"\u003e \u003c\/p\u003e\n\u003cp\u003e\u003cbr\u003e\u003c\/p\u003e","brand":"Printify","offers":[{"title":"Purple \/ S","offer_id":45232720904261,"sku":"26797444511554872744","price":34.99,"currency_code":"USD","in_stock":true},{"title":"Heather Indigo \/ S","offer_id":45232720937029,"sku":"75663044380965903965","price":34.99,"currency_code":"USD","in_stock":true},{"title":"Heather Sapphire \/ S","offer_id":45232720969797,"sku":"10900539983315071353","price":34.99,"currency_code":"USD","in_stock":true},{"title":"Antique Cherry Red \/ S","offer_id":45232721002565,"sku":"32664041798613035225","price":34.99,"currency_code":"USD","in_stock":true},{"title":"Metro Blue \/ S","offer_id":45232721035333,"sku":"12019526825366766346","price":34.99,"currency_code":"USD","in_stock":true},{"title":"Heather Maroon \/ S","offer_id":45232721068101,"sku":"18601187824816616121","price":34.99,"currency_code":"USD","in_stock":true},{"title":"Sage \/ S","offer_id":45232721100869,"sku":"14172430603562169145","price":34.99,"currency_code":"USD","in_stock":true},{"title":"Purple \/ M","offer_id":45232721133637,"sku":"28013194123489994577","price":34.99,"currency_code":"USD","in_stock":true},{"title":"Heather Indigo \/ M","offer_id":45232721166405,"sku":"19645841385976332739","price":34.99,"currency_code":"USD","in_stock":true},{"title":"Heather Sapphire \/ M","offer_id":45232721199173,"sku":"25680141826037445301","price":34.99,"currency_code":"USD","in_stock":true},{"title":"Antique Cherry Red \/ M","offer_id":45232721231941,"sku":"31158291119474077665","price":34.99,"currency_code":"USD","in_stock":true},{"title":"Metro Blue \/ M","offer_id":45232721264709,"sku":"32867046998566184079","price":34.99,"currency_code":"USD","in_stock":true},{"title":"Heather Maroon \/ M","offer_id":45232721297477,"sku":"33924014452312064560","price":34.99,"currency_code":"USD","in_stock":true},{"title":"Sage \/ M","offer_id":45232721330245,"sku":"68919931051654805902","price":34.99,"currency_code":"USD","in_stock":true},{"title":"Purple \/ L","offer_id":45232721363013,"sku":"19102858192282579783","price":34.99,"currency_code":"USD","in_stock":true},{"title":"Heather Indigo \/ L","offer_id":45232721395781,"sku":"75567673443196283456","price":34.99,"currency_code":"USD","in_stock":true},{"title":"Heather Sapphire \/ L","offer_id":45232721428549,"sku":"92875460742963550409","price":34.99,"currency_code":"USD","in_stock":true},{"title":"Antique Cherry Red \/ L","offer_id":45232721461317,"sku":"32623304022699264297","price":34.99,"currency_code":"USD","in_stock":true},{"title":"Metro Blue \/ L","offer_id":45232721494085,"sku":"17190767999155981144","price":34.99,"currency_code":"USD","in_stock":true},{"title":"Heather Maroon \/ L","offer_id":45232721526853,"sku":"12132037759816924972","price":34.99,"currency_code":"USD","in_stock":true},{"title":"Sage \/ L","offer_id":45232721559621,"sku":"18230245043237299402","price":34.99,"currency_code":"USD","in_stock":true},{"title":"Purple \/ XL","offer_id":45232721592389,"sku":"33327985921432574209","price":34.99,"currency_code":"USD","in_stock":true},{"title":"Heather Indigo \/ XL","offer_id":45232721625157,"sku":"32633824528799546252","price":34.99,"currency_code":"USD","in_stock":true},{"title":"Heather Sapphire \/ XL","offer_id":45232721657925,"sku":"21822575796132587093","price":34.99,"currency_code":"USD","in_stock":true},{"title":"Antique Cherry Red \/ XL","offer_id":45232721690693,"sku":"20775959386298753580","price":34.99,"currency_code":"USD","in_stock":true},{"title":"Metro Blue \/ XL","offer_id":45232721723461,"sku":"28303852895448440373","price":34.99,"currency_code":"USD","in_stock":true},{"title":"Heather Maroon \/ XL","offer_id":45232721756229,"sku":"12205536000107225514","price":34.99,"currency_code":"USD","in_stock":true},{"title":"Sage \/ XL","offer_id":45232721788997,"sku":"92361288734689229104","price":34.99,"currency_code":"USD","in_stock":true},{"title":"Purple \/ 2XL","offer_id":45232721821765,"sku":"30895226863010312201","price":34.99,"currency_code":"USD","in_stock":true},{"title":"Heather Indigo \/ 2XL","offer_id":45232721854533,"sku":"12925288715511604310","price":34.99,"currency_code":"USD","in_stock":true},{"title":"Heather Sapphire \/ 2XL","offer_id":45232721887301,"sku":"23033431747811448521","price":34.99,"currency_code":"USD","in_stock":true},{"title":"Antique Cherry Red \/ 2XL","offer_id":45232721920069,"sku":"30828921923058782269","price":34.99,"currency_code":"USD","in_stock":true},{"title":"Metro Blue \/ 2XL","offer_id":45232721952837,"sku":"25679697940809506628","price":34.99,"currency_code":"USD","in_stock":true},{"title":"Heather Maroon \/ 2XL","offer_id":45232721985605,"sku":"15421383356516916429","price":34.99,"currency_code":"USD","in_stock":true},{"title":"Sage \/ 2XL","offer_id":45232722018373,"sku":"41101198975439968560","price":34.99,"currency_code":"USD","in_stock":true},{"title":"Purple \/ 3XL","offer_id":45232722051141,"sku":"28671995822885320116","price":34.99,"currency_code":"USD","in_stock":true},{"title":"Heather Indigo \/ 3XL","offer_id":45232722083909,"sku":"30737750868714110651","price":34.99,"currency_code":"USD","in_stock":true},{"title":"Heather Sapphire \/ 3XL","offer_id":45232722116677,"sku":"33409671728196347236","price":34.99,"currency_code":"USD","in_stock":true},{"title":"Antique Cherry Red \/ 3XL","offer_id":45232722149445,"sku":"10200624568405505483","price":34.99,"currency_code":"USD","in_stock":true},{"title":"Metro Blue \/ 3XL","offer_id":45232722182213,"sku":"20046644412266736257","price":34.99,"currency_code":"USD","in_stock":true},{"title":"Heather Maroon \/ 3XL","offer_id":45232722214981,"sku":"36756139206948782124","price":34.99,"currency_code":"USD","in_stock":true},{"title":"Sage \/ 3XL","offer_id":45232722247749,"sku":"17773156610713428923","price":34.99,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0734\/7915\/9877\/files\/20260629134829-1f173c13-5d3b-66d6-aabb-ce37eccafb51.jpg?v=1782741045"}],"url":"https:\/\/knightbloompuzzles.com\/collections\/t-shirts.oembed","provider":"Knight Bloom Puzzles","version":"1.0","type":"link"}