{"product_id":"perfectted-x-yourstuffmade-custom-plush-keychains","title":"PerfectTed","description":"\u003cstyle\u003e\n\/* YSM V9 PRODUCTCASESTUDY — alleen van toepassing op dit product *\/\nbody:has(.ysm-perfectted-v9) .product.grid,body:has(.ysm-perfectted-v9) .product:not(.card__inner){display:block!important;width:100%!important;max-width:none!important;min-width:0!important;margin-inline:auto!important;padding-inline:0!important}\nbody:has(.ysm-perfectted-v9) .product__media-wrapper,body:has(.ysm-perfectted-v9) .product__media-gallery,body:has(.ysm-perfectted-v9) .product media-gallery,body:has(.ysm-perfectted-v9) .product__title,body:has(.ysm-perfectted-v9) .product .price,body:has(.ysm-perfectted-v9) .product .product-form,body:has(.ysm-perfectted-v9) .product product-form,body:has(.ysm-perfectted-v9) .product variant-selects,body:has(.ysm-perfectted-v9) .product .shopify-payment-button,body:has(.ysm-perfectted-v9) .product .product__tax,body:has(.ysm-perfectted-v9) .product .product__sku,body:has(.ysm-perfectted-v9) .product .product__inventory,body:has(.ysm-perfectted-v9) .product .share-button{display:none!important}\nbody:has(.ysm-perfectted-v9) .product__info-wrapper,body:has(.ysm-perfectted-v9) .product__info-container,body:has(.ysm-perfectted-v9) .product__description,body:has(.ysm-perfectted-v9) .product__description .rte{display:block!important;width:100%!important;max-width:none!important;min-width:0!important;flex:0 0 100%!important;padding:0!important;margin-inline:auto!important}\nbody:has(.ysm-perfectted-v9) .product__info-wrapper.grid__item{width:100%!important;max-width:100%!important}\n.ysm-perfectted-v9{--green:#2d684a;--ink:#203128;--muted:#617168;--line:#dfe7e0;--soft:#f3f7f3;width:100%;max-width:1160px;margin-inline:auto;color:var(--ink);font-family:inherit;line-height:1.5;overflow:clip}\n.ysm-perfectted-v9 *{box-sizing:border-box;min-width:0}\n.ysm-perfectted-v9 .inner{width:min(1160px,calc(100% - 36px));margin-inline:auto}\n.ysm-perfectted-v9 h1,.ysm-perfectted-v9 h2,.ysm-perfectted-v9 h3{color:var(--ink);font-family:inherit;font-weight:750;letter-spacing:-.035em;line-height:1.12;margin:0}\n.ysm-perfectted-v9 h1{font-size:clamp(33px,4.2vw,58px)}.ysm-perfectted-v9 h2{font-size:clamp(25px,3vw,38px)}.ysm-perfectted-v9 h3{font-size:clamp(17px,1.7vw,21px)}.ysm-perfectted-v9 p{margin:0}.ysm-perfectted-v9 a{text-decoration:none}\n.ysm-perfectted-v9 .eyebrow{color:var(--green);font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;margin-bottom:10px}\n.ysm-perfectted-v9 .lead{font-size:clamp(15px,1.45vw,18px);line-height:1.55;color:var(--muted)}\n.ysm-perfectted-v9 .btn{display:inline-flex;justify-content:center;align-items:center;min-height:45px;padding:12px 19px;border-radius:10px;background:var(--green);color:#fff!important;font-size:14px;font-weight:750;text-decoration:none!important;transition:transform .2s,background .2s}\n.ysm-perfectted-v9 .btn:hover{background:#204e36;transform:translateY(-2px)}.ysm-perfectted-v9 a:focus-visible{outline:3px solid var(--green);outline-offset:3px}\n.ysm-perfectted-v9 .square{display:block;position:relative;aspect-ratio:1\/1;width:100%;margin:0;overflow:hidden;background:#fff;border:1px solid var(--line);border-radius:16px}\n.ysm-perfectted-v9 .square img{position:absolute;inset:0;display:block!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;object-position:center}\n.ysm-perfectted-v9 .square.photo img{object-fit:cover!important}.ysm-perfectted-v9 .square.art img{object-fit:contain!important}\n.ysm-perfectted-v9 .hero{padding:clamp(18px,3vw,38px) 0 32px}.ysm-perfectted-v9 .hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(22px,4vw,52px);align-items:center}\n.ysm-perfectted-v9 .hero .lead{margin-top:16px}.ysm-perfectted-v9 .chips{display:flex;flex-wrap:wrap;gap:7px;margin:18px 0 20px}.ysm-perfectted-v9 .chip{padding:6px 10px;background:#eaf2eb;border-radius:8px;font-size:12px;font-weight:650}\n.ysm-perfectted-v9 .section{padding:clamp(28px,3.6vw,44px) 0;border-top:1px solid var(--line)}.ysm-perfectted-v9 .section-lead{margin-top:12px;max-width:780px}\n.ysm-perfectted-v9 .brand-grid{display:grid;grid-template-columns:1.2fr .8fr;align-items:center;gap:clamp(24px,4vw,60px)}.ysm-perfectted-v9 .quote{border-left:3px solid var(--green);padding-left:16px;margin:18px 0 0;font-size:clamp(17px,1.85vw,22px);line-height:1.4;font-weight:650;letter-spacing:-.02em}\n.ysm-perfectted-v9 .story{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:22px}.ysm-perfectted-v9 .story-card{padding:22px;border:1px solid var(--line);border-radius:14px;background:var(--soft);transition:transform .2s,box-shadow .2s}.ysm-perfectted-v9 .story-card:hover{transform:translateY(-4px);box-shadow:0 12px 26px rgba(24,54,37,.08)}\n.ysm-perfectted-v9 .num{font-size:11px;font-weight:800;letter-spacing:.12em;color:var(--green);margin-bottom:12px}.ysm-perfectted-v9 .story-card p:last-child{font-size:14px;line-height:1.55;color:var(--muted);margin-top:8px}\n.ysm-perfectted-v9 .gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:20px}.ysm-perfectted-v9 .gallery a{display:block;cursor:zoom-in}.ysm-perfectted-v9 .gallery a:hover .square{border-color:#9db9a5}.ysm-perfectted-v9 .gallery a img{transition:transform .25s}.ysm-perfectted-v9 .gallery a:hover img{transform:scale(1.035)}\n.ysm-perfectted-v9 .project-info{margin-top:24px;padding:22px;border:1px solid var(--line);border-radius:14px;background:var(--soft)}.ysm-perfectted-v9 .project-info h3{margin-bottom:17px}.ysm-perfectted-v9 .info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px 26px}.ysm-perfectted-v9 .info-item{border-top:1px solid var(--line);padding-top:12px}.ysm-perfectted-v9 .info-item strong{display:block;font-size:14px;margin-bottom:6px}.ysm-perfectted-v9 .info-item p{font-size:14px;color:var(--muted);line-height:1.55}\n.ysm-perfectted-v9 .final{padding:30px 0 40px}.ysm-perfectted-v9 .cta{padding:clamp(25px,4vw,38px);border-radius:17px;background:var(--ink);display:flex;align-items:center;justify-content:space-between;gap:25px}.ysm-perfectted-v9 .cta h2{color:#fff}.ysm-perfectted-v9 .cta .eyebrow{color:#b1d9bd}.ysm-perfectted-v9 .cta p:not(.eyebrow){color:#d2dfd5;margin-top:10px;font-size:15px;max-width:580px}.ysm-perfectted-v9 .cta .btn{background:#fff;color:var(--ink)!important;flex-shrink:0}\n@media(max-width:800px){.ysm-perfectted-v9 .hero-grid,.ysm-perfectted-v9 .brand-grid{grid-template-columns:1fr;gap:20px}.ysm-perfectted-v9 .story{grid-template-columns:1fr}.ysm-perfectted-v9 .gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.ysm-perfectted-v9 .cta{flex-direction:column;align-items:stretch}}\n@media(max-width:480px){.ysm-perfectted-v9 .inner{width:calc(100% - 28px)}.ysm-perfectted-v9 .hero{padding:14px 0 25px}.ysm-perfectted-v9 h1{font-size:clamp(31px,8vw,39px)}.ysm-perfectted-v9 h2{font-size:clamp(24px,6vw,30px)}.ysm-perfectted-v9 .section{padding:25px 0}.ysm-perfectted-v9 .story-card,.ysm-perfectted-v9 .project-info{padding:17px}.ysm-perfectted-v9 .gallery{gap:8px}.ysm-perfectted-v9 .info-grid{grid-template-columns:1fr;gap:13px}.ysm-perfectted-v9 .hero .btn,.ysm-perfectted-v9 .cta .btn{width:100%}.ysm-perfectted-v9 .cta{padding:24px}}\n@media(prefers-reduced-motion:reduce){.ysm-perfectted-v9 *{transition:none!important}}\n\u003c\/style\u003e\n\u003carticle class=\"ysm-perfectted-v9\"\u003e\n\u003cheader class=\"hero\"\u003e\u003cdiv class=\"inner hero-grid\"\u003e\n\u003cdiv\u003e\n\u003cp class=\"eyebrow\"\u003eYSM-projecten \/ Merchandise voor eten en drinken\u003c\/p\u003e\n\u003ch1\u003ePerfectTed: matcha in zakformaat.\u003c\/h1\u003e\n\u003cp class=\"lead\"\u003ePerfectTed geeft matcha een speelse, kleurrijke uitstraling. YSM hielp de kenmerkende drankverpakking van het merk om te vormen tot zachte, verzamelbare pluchen sleutelhangers die ook buiten het blikje meegaan.\u003c\/p\u003e\n\u003cdiv class=\"chips\"\u003e\n\u003cspan class=\"chip\"\u003ePerfectTed\u003c\/span\u003e\u003cspan class=\"chip\"\u003ePluchen sleutelhangers op maat\u003c\/span\u003e\u003cspan class=\"chip\"\u003eMerchandise op maat\u003c\/span\u003e\n\u003c\/div\u003e\n\u003ca class=\"btn\" href=\"https:\/\/yourstuffmade.com\/collections\/custom-ethical-products\"\u003eOntdek productie op maat →\u003c\/a\u003e\n\u003c\/div\u003e\n\u003cfigure class=\"square photo\"\u003e\u003cimg alt=\"Pluchen sleutelhanger van PerfectTed met matchalatte\" height=\"900\" loading=\"eager\" src=\"https:\/\/yourstuffmade.com\/cdn\/shop\/files\/ac838eb435f2cec1055c1d53bcbb216f-971a2ef5-e946-4058-8762-c5e8ab37637c.jpg?v=1774390712\" width=\"900\"\u003e\u003c\/figure\u003e\n\u003c\/div\u003e\u003c\/header\u003e\n\u003csection class=\"section\"\u003e\u003cdiv class=\"inner brand-grid\"\u003e\n\u003cdiv\u003e\n\u003cp class=\"eyebrow\"\u003eHet merk\u003c\/p\u003e\n\u003ch2\u003eOntworpen voor een community.\u003c\/h2\u003e\n\u003cp class=\"lead\" style=\"margin-top:13px\"\u003eDe pluchen sleutelhanger op maat behoudt de herkenbare vorm van het blikje, het aardbeienmatcha-kleurenpalet en het geborduurde logo, en voegt de charme toe van een zacht accessoire voor elke dag.\u003c\/p\u003e\n\u003cblockquote class=\"quote\"\u003eMerchandise voor eten en drinken moet net zo leuk aanvoelen als het merk smaakt.\u003c\/blockquote\u003e\n\u003c\/div\u003e\n\u003cdiv\u003e\n\u003cp class=\"eyebrow\"\u003eFocus van het project\u003c\/p\u003e\n\u003ch2\u003ePluchen sleutelhangers op maat\u003c\/h2\u003e\n\u003cp class=\"lead\" style=\"margin-top:13px\"\u003eMerchandise voor een drankmerk, met gedetailleerde productie op maat door YSM.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\n\u003csection class=\"section\"\u003e\u003cdiv class=\"inner\"\u003e\n\u003cp class=\"eyebrow\"\u003eDe samenwerking\u003c\/p\u003e\n\u003ch2\u003eVan briefing tot product in de praktijk.\u003c\/h2\u003e\n\u003cp class=\"lead section-lead\"\u003eEen doelgericht proces dat merkideeën, creatieve ontwikkeling en productieoverwegingen samenbrengt.\u003c\/p\u003e\n\u003cdiv class=\"story\"\u003e\n\u003cdiv class=\"story-card\"\u003e\n\u003cp class=\"num\"\u003e01 \/ DE BRIEFING\u003c\/p\u003e\n\u003ch3\u003eMaak het relevant\u003c\/h3\u003e\n\u003cp\u003eGeef de matchalatteverpakking van PerfectTed een nieuwe vorm als verzamelbare pluchen sleutelhanger.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"story-card\"\u003e\n\u003cp class=\"num\"\u003e02 \/ DE ROL VAN YSM\u003c\/p\u003e\n\u003ch3\u003eMaak het haalbaar\u003c\/h3\u003e\n\u003cp\u003eOndersteun de materiaalkeuze en het maken van samples voor het zachte product, het borduurwerk en de productiecoördinatie.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"story-card\"\u003e\n\u003cp class=\"num\"\u003e03 \/ HET RESULTAAT\u003c\/p\u003e\n\u003ch3\u003eMaak het onvergetelijk\u003c\/h3\u003e\n\u003cp\u003eEen speels draagbaar accessoire, geïnspireerd op de drankverpakking van PerfectTed.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\n\u003csection class=\"section\"\u003e\u003cdiv class=\"inner\"\u003e\n\u003cp class=\"eyebrow\"\u003eProjectgalerij\u003c\/p\u003e\n\u003ch2\u003eDe details achter het idee.\u003c\/h2\u003e\n\u003cp class=\"lead section-lead\"\u003eBekijk projectfoto's, productieontwerpen en merkcontext. Selecteer een afbeelding om deze op volledige grootte te bekijken.\u003c\/p\u003e\n\u003cdiv class=\"gallery\" data-ysm-expanded-gallery=\"\"\u003e\n\u003ca aria-label=\"Bekijk de ontwerpspecificaties van de PerfectTed-matcha-pluche\" href=\"https:\/\/yourstuffmade.com\/cdn\/shop\/files\/Screenshot_2026-03-24_at_5.17.51_PM.png?v=1774390712\" rel=\"noopener\" target=\"_blank\"\u003e\u003cfigure class=\"square art\"\u003e\u003cimg alt=\"Ontwerpspecificaties van de PerfectTed-matcha-pluche\" height=\"600\" loading=\"lazy\" src=\"https:\/\/yourstuffmade.com\/cdn\/shop\/files\/Screenshot_2026-03-24_at_5.17.51_PM.png?v=1774390712\" width=\"600\"\u003e\u003c\/figure\u003e\u003c\/a\u003e\n\u003ca aria-label=\"Bekijk de matchablikjes van PerfectTed\" href=\"https:\/\/yourstuffmade.com\/cdn\/shop\/files\/Screenshot2026-03-24at5.13.12PM.png?v=1774390712\" rel=\"noopener\" target=\"_blank\"\u003e\u003cfigure class=\"square photo\"\u003e\u003cimg alt=\"Matchablikjes van PerfectTed\" height=\"600\" loading=\"lazy\" src=\"https:\/\/yourstuffmade.com\/cdn\/shop\/files\/Screenshot2026-03-24at5.13.12PM.png?v=1774390712\" width=\"600\"\u003e\u003c\/figure\u003e\u003c\/a\u003e\n\u003ca aria-label=\"Bekijk de drankjes uit de PerfectTed-campagne\" href=\"https:\/\/yourstuffmade.com\/cdn\/shop\/files\/Screenshot-2026-03-24at5.13.46PM.png?v=1774390639\" rel=\"noopener\" target=\"_blank\"\u003e\u003cfigure class=\"square photo\"\u003e\u003cimg alt=\"Drankjes uit de PerfectTed-campagne\" height=\"600\" loading=\"lazy\" src=\"https:\/\/yourstuffmade.com\/cdn\/shop\/files\/Screenshot-2026-03-24at5.13.46PM.png?v=1774390639\" width=\"600\"\u003e\u003c\/figure\u003e\u003c\/a\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"project-info\"\u003e\n\u003ch3\u003eProjectgegevens\u003c\/h3\u003e\n\u003cdiv class=\"info-grid\"\u003e\n\u003cdiv class=\"info-item\"\u003e\n\u003cstrong\u003eWat we hebben gemaakt\u003c\/strong\u003e\u003cp\u003ePluchen sleutelhangers op maat, in de vorm van matchalatteblikjes\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"info-item\"\u003e\n\u003cstrong\u003eOntwerpdetails\u003c\/strong\u003e\u003cp\u003eGeborduurd logo, roze en groene kleuren en een clip\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"info-item\"\u003e\n\u003cstrong\u003eProductieprioriteiten\u003c\/strong\u003e\u003cp\u003eCompacte verhoudingen, goede leesbaarheid en een zachte afwerking\u003c\/p\u003e\n\u003c\/div\u003e\n\u003cdiv class=\"info-item\"\u003e\n\u003cstrong\u003eDe rol van YSM\u003c\/strong\u003e\u003cp\u003eBegeleiding bij productontwikkeling, samples en gecoördineerde productie\u003c\/p\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\n\u003c\/div\u003e\u003c\/section\u003e\n\u003csection class=\"final\"\u003e\u003cdiv class=\"inner\"\u003e\u003cdiv class=\"cta\"\u003e\n\u003cdiv\u003e\n\u003cp class=\"eyebrow\"\u003eJouw idee, werkelijkheid gemaakt\u003c\/p\u003e\n\u003ch2\u003eMaak merchandise die je wilt bewaren.\u003c\/h2\u003e\n\u003cp\u003eVan merkartikelen om te verzamelen tot productlanceringen en campagnes: YSM brengt creatieve ontwikkeling, ethische productieprincipes en praktische productieondersteuning samen.\u003c\/p\u003e\n\u003c\/div\u003e\n\u003ca class=\"btn\" href=\"https:\/\/yourstuffmade.com\/collections\/custom-ethical-products\"\u003eStart je volgende project →\u003c\/a\u003e\n\u003c\/div\u003e\u003c\/div\u003e\u003c\/section\u003e\n\u003c\/article\u003e\n\n\u003cscript\u003e\n\/* YSM V9: voeg de oorspronkelijke Shopify-productmedia toe aan de galerij van dit project.\n   De oorspronkelijke media blijven visueel verborgen, maar dienen als betrouwbare afbeeldingsbron.\n   De geselecteerde projectfoto's die al in de galerij staan, blijven vooraan staan. *\/\n(function () {\n  'use strict';\n  var articleSelector = '.ysm-perfectted-v9';\n  function imageKey(url) {\n    if (!url) return '';\n    try {\n      var parsed = new URL(url, window.location.href);\n      var file = decodeURIComponent(parsed.pathname.split('\/').pop() || '');\n      return file.replace(\/_(?:pico|icon|thumb|small|compact|medium|large|grande|master|\\d+x\\d*|x\\d+)\\.(?=[^.]+$)\/i, '.').toLowerCase();\n    } catch (e) { return url.split('?')[0].toLowerCase(); }\n  }\n  function bestURL(img) {\n    if (!img) return '';\n    var url = img.getAttribute('data-zoom-src') || img.getAttribute('data-full-src') || '';\n    if (!url) {\n      var srcset = img.getAttribute('srcset') || img.getAttribute('data-srcset') || '';\n      var choices = srcset.split(',').map(function (s) {\n        var match = s.trim().match(\/^(\\S+)\\s+(\\d+)w$\/);\n        return match ? {url:match[1],width:Number(match[2])} : null;\n      }).filter(Boolean).sort(function(a,b){return b.width-a.width;});\n      if (choices.length) url = choices[0].url;\n    }\n    url = url || img.getAttribute('data-src') || img.getAttribute('src') || '';\n    if (url.indexOf('\/\/')===0) url=window.location.protocol+url;\n    return url;\n  }\n  function addProductMedia() {\n    var project = document.querySelector(articleSelector);\n    if (!project) return;\n    var gallery = project.querySelector('[data-ysm-expanded-gallery]');\n    if (!gallery) return;\n    var seen = new Set();\n    project.querySelectorAll('img').forEach(function(img){ seen.add(imageKey(img.getAttribute('src'))); });\n    gallery.querySelectorAll('a[href]').forEach(function(a){ seen.add(imageKey(a.getAttribute('href'))); });\n    \/\/ Haal alleen de oorspronkelijke media van het huidige product op, geen aanbevolen producten of afbeeldingen uit de navigatie.\n    var candidates = document.querySelectorAll(\n      '.product__media-wrapper .product__media-item img, ' +\n      '.product__media-wrapper .product__media img, ' +\n      '.product__media-wrapper media-gallery img, ' +\n      '.product__media-gallery .product__media img, ' +\n      '.product__media-gallery .product__media-item img'\n    );\n    var added = 0;\n    candidates.forEach(function(img){\n      var url=bestURL(img);\n      var key=imageKey(url);\n      if (!url || !key || seen.has(key)) return;\n      \/\/ Sluit transparante tijdelijke afbeeldingen en niet-afbeeldings-SVG-pictogrammen uit.\n      if (\/^data:|\\.svg(?:$|\\?)\/i.test(url)) return;\n      seen.add(key);\n      var alt=(img.getAttribute('alt') || '').trim();\n      var label=alt || 'Oorspronkelijke projectfoto';\n      var a=document.createElement('a');\n      a.href=url;\n      a.target='_blank';\n      a.rel='noopener';\n      a.setAttribute('aria-label','Bekijk de oorspronkelijke projectafbeelding: '+label);\n      var figure=document.createElement('figure');\n      figure.className='square photo';\n      var picture=document.createElement('img');\n      picture.src=url;\n      picture.alt=label;\n      picture.loading='lazy';\n      picture.width=600;\n      picture.height=600;\n      figure.appendChild(picture);\n      a.appendChild(figure);\n      gallery.appendChild(a);\n      added++;\n    });\n    if (added) gallery.setAttribute('data-extra-photos', String(\n      Number(gallery.getAttribute('data-extra-photos')||0)+added\n    ));\n  }\n  if (document.readyState==='loading') {\n    document.addEventListener('DOMContentLoaded',addProductMedia);\n  } else { addProductMedia(); }\n  window.addEventListener('load',addProductMedia,{once:true});\n  \/\/ Sommige Shopify-thema's laden productmedia pas na DOMContentLoaded.\n  setTimeout(addProductMedia,800);\n  setTimeout(addProductMedia,2200);\n})();\n\u003c\/script\u003e\n","brand":"PerfectTed","offers":[{"title":"Default Title","offer_id":69321143287830,"sku":null,"price":1.0,"currency_code":"USD","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/0068\/7554\/5622\/files\/Screenshot2026-03-24at5.13.46PM.png?v=1774390639","url":"https:\/\/yourstuffmade.com\/nl\/products\/perfectted-x-yourstuffmade-pluchen-sleutelhangers-op-maat","provider":"Yourstuffmade.com","version":"1.0","type":"link"}