{"id":109061,"date":"2026-11-10T14:34:47","date_gmt":"2026-11-10T06:34:47","guid":{"rendered":"https:\/\/www.jarsking.com\/?p=109061"},"modified":"2026-11-10T14:38:28","modified_gmt":"2026-11-10T06:38:28","slug":"custom-skincare-packaging-case-study","status":"publish","type":"post","link":"https:\/\/www.jarsking.com\/pt\/custom-skincare-packaging-case-study\/","title":{"rendered":"The Print Was Coming Off. The Next Day, the Buyer Asked to Order."},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-post\" data-elementor-id=\"109061\" class=\"elementor elementor-109061\">\n\t\t\t\t\t\t<section class=\"elementor-section elementor-top-section elementor-element elementor-element-3dacdaa elementor-section-boxed elementor-section-height-default elementor-section-height-default\" data-id=\"3dacdaa\" data-element_type=\"section\" data-settings=\"{&quot;_ha_eqh_enable&quot;:false}\">\n\t\t\t\t\t\t<div class=\"elementor-container elementor-column-gap-default\">\n\t\t\t\t\t<div class=\"elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-1c691a6\" data-id=\"1c691a6\" data-element_type=\"column\">\n\t\t\t<div class=\"elementor-widget-wrap elementor-element-populated\">\n\t\t\t\t\t\t<div class=\"elementor-element elementor-element-2dae028 elementor-widget elementor-widget-html\" data-id=\"2dae028\" data-element_type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t<style>\r\n#jk-skincare-case {\r\n  --case-navy: #15294c;\r\n  --case-blue: #1f3a6b;\r\n  --case-red: #ca0f3a;\r\n  --case-pink: #fdecf0;\r\n  --case-text: #3d4757;\r\n  --case-muted: #6b7686;\r\n  --case-rule: #e1e6ef;\r\n  --case-wash: #f5f8fc;\r\n  max-width: 100%;\r\n  font-family: inherit;\r\n  font-size: 17px;\r\n  line-height: 1.75;\r\n  color: var(--case-text);\r\n}\r\n#jk-skincare-case *, #jk-skincare-case *::before, #jk-skincare-case *::after { box-sizing: border-box; }\r\n#jk-skincare-case [hidden] { display: none !important; }\r\n#jk-skincare-case > p, #jk-skincare-case .case-chapter > p { margin: 0 0 20px; line-height: 1.6; }\r\n#jk-skincare-case a { color: var(--case-blue); text-underline-offset: .17em; }\r\n#jk-skincare-case a:hover { color: var(--case-red); }\r\n#jk-skincare-case :focus-visible { outline: 3px solid var(--case-red); outline-offset: 4px; }\r\n#jk-skincare-case button, #jk-skincare-case input { font-family: inherit; }\r\n#jk-skincare-case [id^=\"jk-case-\"] { scroll-margin-top: 110px; }\r\n\r\n#jk-skincare-case .case-answer {\r\n  margin: 0 0 2.2em;\r\n  padding: clamp(22px, 3.5vw, 34px);\r\n  border-radius: 16px;\r\n  background: var(--case-navy);\r\n  color: #dce4f0;\r\n}\r\n#jk-skincare-case .case-answer-label {\r\n  display: inline-block;\r\n  margin: 0 0 1em;\r\n  padding: 5px 11px;\r\n  border-radius: 100px;\r\n  background: var(--case-red);\r\n  color: #fff;\r\n  font-size: 11px;\r\n  font-weight: 800;\r\n  line-height: 1.5;\r\n  letter-spacing: .14em;\r\n  text-transform: uppercase;\r\n}\r\n#jk-skincare-case .case-answer p { margin: 0 0 20px; font: inherit; line-height: 1.6; color: inherit; }\r\n#jk-skincare-case .case-answer p:last-child { margin-bottom: 0; }\r\n#jk-skincare-case .case-answer strong { color: #fff; }\r\n\r\n#jk-skincare-case .case-toc {\r\n  margin: 0 0 2.6em;\r\n  padding: clamp(20px, 3vw, 28px);\r\n  border: 1px solid var(--case-rule);\r\n  border-radius: 16px;\r\n  background: var(--case-wash);\r\n}\r\n#jk-skincare-case .case-toc-title {\r\n  margin: 0 0 .9em;\r\n  color: var(--case-muted);\r\n  font-size: 13px;\r\n  font-weight: 750;\r\n  line-height: 1.5;\r\n  letter-spacing: .12em;\r\n  text-transform: uppercase;\r\n}\r\n#jk-skincare-case .case-toc ol {\r\n  columns: 2;\r\n  column-gap: 2.4em;\r\n  margin: 0;\r\n  padding: 0;\r\n  list-style: none;\r\n  counter-reset: case-toc;\r\n}\r\n#jk-skincare-case .case-toc li {\r\n  position: relative;\r\n  break-inside: avoid;\r\n  margin: 0 0 .5em;\r\n  padding: 0 0 0 2em;\r\n  font-size: 15.5px;\r\n  line-height: 1.5;\r\n  counter-increment: case-toc;\r\n}\r\n#jk-skincare-case .case-toc li::before {\r\n  content: counter(case-toc, decimal-leading-zero);\r\n  position: absolute;\r\n  top: .14em;\r\n  left: 0;\r\n  color: var(--case-red);\r\n  font-size: 12px;\r\n  font-weight: 800;\r\n  letter-spacing: .035em;\r\n}\r\n#jk-skincare-case .case-toc a { color: var(--case-navy); text-decoration: none; }\r\n#jk-skincare-case .case-toc a:hover { color: var(--case-red); text-decoration: underline; }\r\n\r\n#jk-skincare-case .case-chapter > h2 {\r\n  margin: 2.6em 0 .7em;\r\n  padding: .15em 0 0;\r\n  color: var(--case-navy);\r\n  font-family: inherit;\r\n  font-size: clamp(24px, 3vw, 32px);\r\n  font-weight: 800;\r\n  line-height: 1.22;\r\n}\r\n#jk-skincare-case .case-chapter > h2::after { content: ''; display: block; width: 56px; height: 4px; margin-top: .5em; background: var(--case-red); }\r\n#jk-skincare-case .case-chapter > h3 { margin: 1.65em 0 .45em; color: var(--case-navy); font-size: clamp(19px, 2.3vw, 22px); font-weight: 700; line-height: 1.35; }\r\n#jk-skincare-case .case-chapter.case-bridge { margin: 2.2em 0; padding: 22px 26px; border-left: 4px solid var(--case-red); border-radius: 10px; background: var(--case-pink); }\r\n#jk-skincare-case .case-chapter.case-bridge > h2 { margin-top: 0; padding-top: 0; font-size: clamp(21px, 2.8vw, 28px); }\r\n#jk-skincare-case .case-chapter.case-bridge > h2::after { display: none; }\r\n#jk-skincare-case .case-bridge > p:last-child { margin-bottom: 0; }\r\n\r\n#jk-skincare-case .case-figure { margin: 2em 0 2.2em; min-width: 0; }\r\n#jk-skincare-case .case-figure-index { display: block; margin: 0 0 .55em; color: var(--case-red); font-size: 11px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }\r\n#jk-skincare-case .case-figure-title { margin: 0 0 1em; color: var(--case-navy); font-size: 19px; font-weight: 700; line-height: 1.35; }\r\n#jk-skincare-case .case-figure > figcaption { margin-top: .85em; color: var(--case-muted); font-size: 14px; line-height: 1.6; }\r\n#jk-skincare-case .case-diagram { padding: clamp(10px, 2vw, 18px); border: 1px solid var(--case-rule); border-radius: 16px; background: var(--case-wash); }\r\n#jk-skincare-case .case-diagram svg { display: block; width: 100%; height: auto; }\r\n#jk-skincare-case .case-diagram .case-diagram-phone { display: none; }\r\n#jk-skincare-case .case-pump-controls { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }\r\n#jk-skincare-case .case-pump-controls button { min-height: 44px; padding: 7px 12px; border: 1px solid var(--case-rule); border-radius: 7px; background: #fff; color: var(--case-navy); font-size: 14px; font-weight: 700; cursor: pointer; }\r\n#jk-skincare-case .case-pump-controls button:hover, #jk-skincare-case .case-pump-controls button[aria-pressed=\"true\"] { border-color: var(--case-red); background: var(--case-pink); }\r\n#jk-skincare-case .case-pump-note { display: block; margin: 2px 0 10px; color: var(--case-blue); font-size: 14px; line-height: 1.5; }\r\n#jk-skincare-case .case-pump[data-mode=\"flow\"] { --jk-case-flow-visibility: 1; }\r\n#jk-skincare-case .case-pump[data-mode=\"artwork\"] { --jk-case-artwork-visibility: 1; }\r\n@media (prefers-reduced-motion: no-preference) {\r\n  #jk-skincare-case .case-pump[data-mode=\"flow\"] { --jk-case-flow-motion: jk-case-flow 1s ease-out both; }\r\n  #jk-skincare-case .case-pump[data-mode=\"artwork\"] { --jk-case-artwork-motion: jk-case-frame .65s ease-out both; }\r\n  @keyframes jk-case-flow { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }\r\n  @keyframes jk-case-frame { from { opacity: .22; } to { opacity: 1; } }\r\n}\r\n\r\n#jk-skincare-case .case-table-scroll { max-width: 100%; overflow-x: auto; border: 1px solid var(--case-rule); border-radius: 10px; }\r\n#jk-skincare-case .case-table-scroll table { border: 0; border-collapse: collapse; width: 100%; margin: 0; font-size: 15.5px; line-height: 1.5; }\r\n#jk-skincare-case .case-table-scroll th, #jk-skincare-case .case-table-scroll td { border: 0; padding: 12px 14px; text-align: left; vertical-align: top; overflow-wrap: anywhere; }\r\n#jk-skincare-case .case-table-scroll thead { background: var(--case-navy); color: #fff; }\r\n#jk-skincare-case .case-table-scroll tbody th { width: 46%; color: var(--case-navy); }\r\n#jk-skincare-case .case-table-scroll tbody tr:nth-child(even) { background: var(--case-wash); }\r\n#jk-skincare-case .case-steps { list-style: none; margin: 0; padding: clamp(12px, 2vw, 20px); display: grid; grid-template-columns: repeat(var(--step-columns, 3), minmax(0, 1fr)); gap: 10px; background: var(--case-wash); border: 1px solid var(--case-rule); border-radius: 16px; }\r\n#jk-skincare-case .case-steps li { min-width: 0; padding: 14px; border: 1px solid var(--case-rule); border-radius: 10px; background: #fff; }\r\n#jk-skincare-case .case-steps li:last-child { background: var(--case-navy); border-color: var(--case-navy); color: #dce4f0; }\r\n#jk-skincare-case .case-steps li strong { display: block; margin: 0 0 4px; color: var(--case-navy); font-size: 16px; line-height: 1.35; }\r\n#jk-skincare-case .case-steps li:last-child strong { color: #fff; }\r\n#jk-skincare-case .case-steps li span { display: block; font-size: 14px; line-height: 1.55; }\r\n#jk-skincare-case .case-milestones { --step-columns: 4; }\r\n\r\n#jk-skincare-case .case-faq { border-bottom: 1px solid var(--case-rule); }\r\n#jk-skincare-case .case-faq:first-of-type { border-top: 1px solid var(--case-rule); }\r\n#jk-skincare-case .case-faq summary { display: flex; justify-content: space-between; gap: 14px; align-items: baseline; padding: 14px 4px; color: var(--case-navy); font-weight: 700; cursor: pointer; list-style: none; line-height: 1.45; }\r\n#jk-skincare-case .case-faq summary::-webkit-details-marker { display: none; }\r\n#jk-skincare-case .case-faq summary::after { content: '+'; flex: 0 0 22px; color: var(--case-red); font-size: 20px; font-weight: 700; text-align: center; }\r\n#jk-skincare-case .case-faq[open] summary::after { content: '\u2212'; }\r\n#jk-skincare-case .case-faq p { margin: 0; padding: 0 30px 16px 4px; line-height: 1.6; }\r\n#jk-skincare-case .case-contact-link { display: inline-flex; min-height: 44px; align-items: center; padding: 10px 16px; border-radius: 7px; background: var(--case-red); color: #fff; font-size: 15px; font-weight: 700; text-decoration: none; }\r\n#jk-skincare-case .case-contact-link:hover { background: #a70c32; color: #fff; }\r\n\r\n@media (max-width: 700px) {\r\n  #jk-skincare-case .case-toc ol { columns: 1; }\r\n  #jk-skincare-case .case-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }\r\n}\r\n@media (max-width: 600px) {\r\n  #jk-skincare-case { font-size: 16px; }\r\n  #jk-skincare-case .case-diagram > svg { display: none; }\r\n  #jk-skincare-case .case-diagram .case-diagram-phone { display: grid; gap: 10px; }\r\n  #jk-skincare-case .case-pump[data-mode=\"flow\"] .case-diagram-phone svg:nth-child(2),\r\n  #jk-skincare-case .case-pump[data-mode=\"artwork\"] .case-diagram-phone svg:first-child { display: none; }\r\n  #jk-skincare-case .case-steps { grid-template-columns: 1fr; }\r\n  #jk-skincare-case .case-table-scroll th, #jk-skincare-case .case-table-scroll td { padding: 9px; font-size: 14px; }\r\n}\r\n<\/style>\r\n<article id=\"jk-skincare-case\" aria-label=\"Skincare packaging case study\">\r\n<aside class=\"case-answer\" aria-labelledby=\"jk-case-answer-label\">\r\n  <span class=\"case-answer-label\" id=\"jk-case-answer-label\">The short answer<\/span>\r\n  <p><strong>The buyer reported peeling print on its sample bottles.<\/strong> Jarsking explained how the paint and drying process would differ in the bulk run. The next day, the buyer said it thought it could start a first batch.<\/p>\r\n  <p>When the buyer asked to cut <strong>ten days from production<\/strong>, Jarsking proposed preparing eligible parts whose colors were already approved while the brand finished its artwork.<\/p>\r\n<\/aside>\r\n<nav class=\"case-toc\" aria-labelledby=\"jk-case-toc-title\"><div class=\"case-toc-title\" id=\"jk-case-toc-title\">What this case study covers<\/div><ol><li><a href=\"#jk-case-brief\">The packaging brief<\/a><\/li><li><a href=\"#jk-case-samples\">What the samples revealed<\/a><\/li><li><a href=\"#jk-case-order-conversation\">The first order conversation<\/a><\/li><li><a href=\"#jk-case-production\">The ten-day request<\/a><\/li><li><a href=\"#jk-case-outcome\">The reported order<\/a><\/li><li><a href=\"#jk-case-sample-checklist\">Sample review checklist<\/a><\/li><li><a href=\"#jk-case-faq\">Buyer FAQs<\/a><\/li><li><a href=\"#jk-case-contact\">Discuss your packaging brief<\/a><\/li><\/ol><\/nav>\r\n<p>The buyer sent Jarsking photos of sample bottles. The print was coming off in places, the buyer said. There was a question about the carton, too. Could Jarsking move the glue seam off the front?<\/p>\r\n<p>The seam could go on the back. On the print issue, Jarsking explained how the paint and drying process for the bulk run differed from those used for the samples. The next day, the buyer said it thought it could start its first batch of bottles.<\/p>\r\n<figure class=\"case-figure\"><span class=\"case-figure-index\">Figure 1<\/span><div class=\"case-figure-title\">Inspect the print on a sample bottle<\/div><figure id=\"jk-print-inspection\" aria-labelledby=\"jk-print-inspection-heading\">\r\n  <style>\r\n    #jk-print-inspection {\r\n      --inspection-ink: #15294c;\r\n      --inspection-accent: #ca0f3a;\r\n      --inspection-pink: #fdecf0;\r\n      --inspection-field: #f5f8fc;\r\n      --inspection-border: #e1e6ef;\r\n      margin: 2rem 0;\r\n      overflow: hidden;\r\n      color: var(--inspection-ink);\r\n      background: #fff;\r\n      border: 1px solid var(--inspection-border);\r\n      border-radius: 16px;\r\n    }\r\n    #jk-print-inspection .jkpi-head {\r\n      display: grid;\r\n      gap: .3rem;\r\n      padding: clamp(1rem, 3.3vw, 1.65rem) clamp(1rem, 4vw, 2rem);\r\n    }\r\n    #jk-print-inspection .jkpi-tag {\r\n      width: fit-content;\r\n      padding: .25rem .65rem;\r\n      border-radius: 20px;\r\n      background: var(--inspection-pink);\r\n      color: var(--inspection-accent);\r\n      font-size: .76rem;\r\n      font-weight: 700;\r\n      line-height: 1.4;\r\n    }\r\n    #jk-print-inspection .jkpi-title {\r\n      margin: .3rem 0 0;\r\n      color: var(--inspection-ink);\r\n      font-size: clamp(1.15rem, 2.8vw, 1.55rem);\r\n      font-weight: 700;\r\n      line-height: 1.2;\r\n    }\r\n    #jk-print-inspection .jkpi-scene {\r\n      display: block;\r\n      width: 100%;\r\n      height: auto;\r\n      background: var(--inspection-field);\r\n    }\r\n    #jk-print-inspection .jkpi-controls {\r\n      display: grid;\r\n      gap: .5rem;\r\n      padding: 1rem clamp(1rem, 4vw, 2rem) 0;\r\n    }\r\n    #jk-print-inspection .jkpi-controls[hidden] { display: none; }\r\n    #jk-print-inspection .jkpi-label {\r\n      color: var(--inspection-ink);\r\n      font-size: .96rem;\r\n      font-weight: 700;\r\n    }\r\n    #jk-print-inspection .jkpi-slider {\r\n      display: block;\r\n      width: 100%;\r\n      min-height: 30px;\r\n      margin: 0;\r\n      cursor: ew-resize;\r\n      accent-color: var(--inspection-accent);\r\n    }\r\n    #jk-print-inspection .jkpi-slider:focus-visible {\r\n      outline: 2px solid var(--inspection-accent);\r\n      outline-offset: 3px;\r\n      border-radius: 5px;\r\n    }\r\n    #jk-print-inspection .jkpi-range-labels {\r\n      display: flex;\r\n      justify-content: space-between;\r\n      gap: 1rem;\r\n      font-size: .78rem;\r\n      line-height: 1.25;\r\n    }\r\n    #jk-print-inspection .jkpi-caption {\r\n      margin: 0;\r\n      padding: .9rem clamp(1rem, 4vw, 2rem) 1.25rem;\r\n      color: var(--inspection-ink);\r\n      font-size: .88rem;\r\n      line-height: 1.55;\r\n    }\r\n  <\/style>\r\n  <div class=\"jkpi-head\">\r\n    <span class=\"jkpi-tag\">Conceptual illustration<\/span>\r\n    <p class=\"jkpi-title\" id=\"jk-print-inspection-heading\">A closer look at lifting print<\/p>\r\n  <\/div>\r\n  <svg class=\"jkpi-scene\" viewBox=\"0 0 880 368\" width=\"880\" height=\"368\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" role=\"img\" aria-labelledby=\"jkpi-svg-title jkpi-svg-description\">\r\n    <title id=\"jkpi-svg-title\">A magnifying lens over sample bottle print<\/title>\r\n    <desc id=\"jkpi-svg-description\">A magnifying lens reveals an uneven edge and gaps in an abstract print pattern on a plain bottle.<\/desc>\r\n    <defs>\r\n      <linearGradient id=\"jkpi-bottle-finish\">\r\n        <stop stop-color=\"#e9eef7\"\/>\r\n        <stop offset=\".22\" stop-color=\"#fff\"\/>\r\n        <stop offset=\".63\" stop-color=\"#f5f8fc\"\/>\r\n        <stop offset=\"1\" stop-color=\"#e1e6ef\"\/>\r\n      <\/linearGradient>\r\n      <pattern id=\"jkpi-grid\" width=\"24\" height=\"24\" patternUnits=\"userSpaceOnUse\">\r\n        <path d=\"M24 0H0V24\" fill=\"none\" stroke=\"#e1e6ef\"\/>\r\n      <\/pattern>\r\n      <clipPath id=\"jkpi-lens-clip\">\r\n        <circle r=\"75\"\/>\r\n      <\/clipPath>\r\n      <g id=\"jkpi-surface\">\r\n        <path d=\"M281 0h249v46c0 17 17 29 44 39l38 14c47 17 76 51 76 99v170H131V198c0-48 29-82 76-99l35-14c25-9 39-22 39-39z\" fill=\"url(#jkpi-bottle-finish)\" stroke=\"#adb9ce\" stroke-width=\"1.7\"\/>\r\n        <path d=\"M147 368V202c0-35 14-60 43-80\" fill=\"none\" stroke=\"#fff\" stroke-width=\"8\" opacity=\".9\"\/>\r\n        <path d=\"M669 368V207c0-34-11-61-37-82\" fill=\"none\" stroke=\"#c4cfdf\" stroke-width=\"1.5\"\/>\r\n        <path d=\"M278 0h255v33H278z\" fill=\"#d8e0ec\" stroke=\"#adb9ce\" stroke-width=\"1.5\"\/>\r\n        <path d=\"M299 0v29m14-29v29m14-29v29m14-29v29m14-29v29m14-29v29m14-29v29m14-29v29m14-29v29m14-29v29m14-29v29m14-29v29m14-29v29m14-29v29m14-29v29m14-29v29\" stroke=\"#bcc8d9\"\/>\r\n        <g fill=\"#15294c\">\r\n          <path d=\"M213 168h143v9H213zm151 0h22v9h-22z\" opacity=\".76\"\/>\r\n          <path d=\"M213 195h171v19H213zm182 0h76l-6 5-11 1 3 6-14 7h-48zm93 0h115v19H483l6-6-5-4z\"\/>\r\n          <path d=\"M213 228h207l8 3-6 5 12 5-4 7H213zm234 0h39l-7 6 5 4-13 5 4 5h-32l7-6-5-5 8-4zm49 0h107v20H491l3-6-4-5z\"\/>\r\n          <path d=\"M213 262h173v6H213zm0 16h123v6H213z\" opacity=\".62\"\/>\r\n          <path d=\"M462 223l7-7 11 1 5-6 12 5-7 9-15 4z\" opacity=\".26\"\/>\r\n        <\/g>\r\n        <path d=\"M461 220l7-7 11 1 5-6 12 5-7 9-15 4z\" fill=\"#fdecf0\" stroke=\"#ca0f3a\" stroke-width=\"1.4\"\/>\r\n        <path d=\"M477 218l7-8 9 3-5 7-13 4z\" fill=\"#ca0f3a\" opacity=\".42\"\/>\r\n      <\/g>\r\n    <\/defs>\r\n    <path d=\"M0 0h880v368H0z\" fill=\"#f5f8fc\"\/>\r\n    <path d=\"M0 0h880v368H0z\" fill=\"url(#jkpi-grid)\"\/>\r\n    <path d=\"M32 63V40h23m770 0h23v23m-816 242v23h23m770 0h23v-23\" fill=\"none\" stroke=\"#adb9ce\" stroke-width=\"1.25\"\/>\r\n    <use href=\"#jkpi-surface\"\/>\r\n    <path d=\"M224 315h375\" fill=\"none\" stroke=\"#9caeca\" stroke-width=\"1.25\" stroke-dasharray=\"3 5\"\/>\r\n    <circle cx=\"224\" cy=\"315\" r=\"3\" fill=\"#9caeca\"\/>\r\n    <circle cx=\"599\" cy=\"315\" r=\"3\" fill=\"#9caeca\"\/>\r\n    <g id=\"jkpi-lens\" transform=\"translate(471.5 224)\">\r\n      <circle cy=\"6\" r=\"82\" fill=\"#15294c\" opacity=\".13\"\/>\r\n      <circle r=\"80\" fill=\"#fff\"\/>\r\n      <g clip-path=\"url(#jkpi-lens-clip)\">\r\n        <use id=\"jkpi-lens-detail\" href=\"#jkpi-surface\" transform=\"translate(-990.15 -470.4) scale(2.1)\"\/>\r\n      <\/g>\r\n      <circle r=\"78.5\" fill=\"none\" stroke=\"#fff\" stroke-width=\"6\"\/>\r\n      <circle r=\"81\" fill=\"none\" stroke=\"#ca0f3a\" stroke-width=\"2.4\"\/>\r\n      <circle r=\"73\" fill=\"none\" stroke=\"#fff\" stroke-width=\"1\" opacity=\".65\"\/>\r\n      <rect x=\"-21\" y=\"66\" width=\"42\" height=\"24\" rx=\"12\" fill=\"#ca0f3a\" stroke=\"#fff\" stroke-width=\"1.5\"\/>\r\n      <text x=\"0\" y=\"83\" fill=\"#fff\" text-anchor=\"middle\" font-family=\"system-ui, sans-serif\" font-size=\"14\" font-weight=\"700\">2\u00d7<\/text>\r\n    <\/g>\r\n  <\/svg>\r\n  <div class=\"jkpi-controls\" hidden>\r\n    <label class=\"jkpi-label\" for=\"jkpi-slider\">Move the lens across the sample print<\/label>\r\n    <input class=\"jkpi-slider\" id=\"jkpi-slider\" type=\"range\" min=\"0\" max=\"100\" step=\"1\" value=\"66\" aria-describedby=\"jkpi-caption\">\r\n    <div class=\"jkpi-range-labels\" aria-hidden=\"true\"><span>Left edge<\/span><span>Right edge<\/span><\/div>\r\n  <\/div>\r\n  <figcaption class=\"jkpi-caption\" id=\"jkpi-caption\">The enlarged view illustrates how small breaks can appear along a printed edge.<\/figcaption>\r\n  <script>\r\n    (() => {\r\n      const figure = document.getElementById('jk-print-inspection');\r\n      const slider = figure.querySelector('#jkpi-slider');\r\n      const lens = figure.querySelector('#jkpi-lens');\r\n      const detail = figure.querySelector('#jkpi-lens-detail');\r\n      const controls = figure.querySelector('.jkpi-controls');\r\n      const scanStart = 224;\r\n      const scanEnd = 599;\r\n      const centerY = 224;\r\n      const magnification = 2.1;\r\n\r\n      const positionLens = () => {\r\n        const percent = slider.valueAsNumber;\r\n        const centerX = scanStart + (scanEnd - scanStart) * percent \/ 100;\r\n        lens.setAttribute('transform', 'translate(' + centerX + ' ' + centerY + ')');\r\n        detail.setAttribute(\r\n          'transform',\r\n          'translate(' + (-centerX * magnification) + ' ' + (-centerY * magnification) + ') scale(' + magnification + ')'\r\n        );\r\n        slider.setAttribute('aria-valuetext', percent + ' percent across the print');\r\n      };\r\n\r\n      slider.addEventListener('input', positionLens);\r\n      positionLens();\r\n      controls.hidden = false;\r\n    })();\r\n  <\/script>\r\n<\/figure><\/figure>\r\n<figure class=\"case-figure\"><span class=\"case-figure-index\">Figure 2<\/span><div class=\"case-figure-title\">From the sample photos to the next-day message<\/div><ol class=\"case-steps \"><li><strong>The buyer sends photos<\/strong><span>The buyer reports print coming off some sample bottles.<\/span><\/li><li><strong>Jarsking explains the bulk process<\/strong><span>Jarsking explains the different paint and drying process for the production run.<\/span><\/li><li><strong>The next day<\/strong><span>The buyer says it thinks it can start a first batch.<\/span><\/li><\/ol><\/figure>\r\n<p>The buyer, a consumer brand developing a skincare range, had started by asking for a glass bottle catalog. By the time it sent those photos, it was reviewing bottles, pumps, and cartons as a group. A sample gave the buyer something concrete to point to. It could show exactly where it wanted a seam to move and where it had seen print come away. Those two observations led to different kinds of work.<\/p>\r\n<p>The next-day message moved the conversation toward a first order. The buyer still had to work out which parts of its custom skincare packaging could move into production while the designers finished the artwork.<\/p>\r\n<section class=\"case-chapter\" aria-labelledby=\"jk-case-brief\"><h2 id=\"jk-case-brief\">The design challenge behind the glass catalog<\/h2>\r\n<p>The buyer first asked which bottle sizes were available. Jarsking asked what would go in them. The answers included body lotion in a larger bottle and a thicker cream that needed a dispenser. That gave the two teams a more useful starting point. They could talk about the size, material, and pump for each product in the range.<\/p>\r\n<p>The buyer had started with glass. When Jarsking brought up shipping weight, the buyer asked whether a similar bottle came in plastic. The question was about the larger format. The order summary still lists glass bottles for other products. A brand can choose the material for each bottle and use the finish and artwork to give the packs a shared look. <a href=\"https:\/\/www.jarsking.com\/all-applications\/skincare-packaging\/\">Jarsking skincare packaging formats<\/a><\/p>\r\n<p>The cream brought up a different problem. Would a thick product come through the pump easily? The buyer asked about a wider opening. Jarsking talked through the pump it had available and suggested trying a physical sample. When the buyer asked how one of the packs opened, the team sent a video showing someone opening it.<\/p>\r\n<p>The team also sent photos of the pump parts. It could point out where the dip tube, the small tube that draws product into the pump, reached inside the bottle. Seeing the parts helps when you're working from a catalog. To find out how the pump would handle the thicker cream, the brand would need to try the assembled bottle and pump with the formula it planned to use.<\/p>\r\n<p>According to the project team, the buyer chose existing bottle designs and made them its own through finishes and artwork. Once the bottle and pump were chosen, the designers could work out what would fit on the surface. Jarsking sent bottle dielines, which are templates showing where the design can be printed. The buyer's designers could use them to place artwork while the teams worked through the other packaging choices.<\/p>\r\n<p>The project team recalls sending the dielines the day the buyer requested them. Each gave the designers a print area to work with for the corresponding bottle. If they wanted to use the same graphic on a different size, that bottle's template would show how much room they had. They could check the placement on each format before reviewing how the bottles looked together.<\/p>\r\n<figure class=\"case-figure\"><span class=\"case-figure-index\">Figure 3<\/span><div class=\"case-figure-title\">What the pump photo and artwork template showed<\/div><div class=\"case-diagram case-pump\"><div class=\"case-pump-controls\" role=\"group\" aria-label=\"Explore the packaging diagram\" hidden>\r\n      <button type=\"button\" data-pump-mode=\"flow\" aria-pressed=\"false\">Trace the dip tube<\/button>\r\n      <button type=\"button\" data-pump-mode=\"artwork\" aria-pressed=\"false\">Highlight the print area<\/button>\r\n    <\/div><output class=\"case-pump-note\" aria-live=\"polite\" hidden><\/output><svg class=\"case-visual__svg\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" viewBox=\"0 0 960 535\" role=\"img\" aria-labelledby=\"pack-diagram-title pack-diagram-desc\" width=\"960\" height=\"535\">\r\n    <title id=\"pack-diagram-title\">Pump components and a bottle print area<\/title>\r\n    <desc id=\"pack-diagram-desc\">The left view shows a pump assembly and its dip tube reaching near the bottom of a generic bottle. The right view shows an example print boundary on another generic bottle.<\/desc>\r\n    <defs>\r\n      <pattern id=\"pack-diagram-grid\" width=\"24\" height=\"24\" patternUnits=\"userSpaceOnUse\">\r\n        <path d=\"M24 0H0V24\" fill=\"none\" stroke=\"#e1e6ef\" stroke-width=\"1\"\/>\r\n      <\/pattern>\r\n    <\/defs><g id=\"jk-case-pump-drawing\">\r\n\r\n    <path d=\"M0 0h960v535H0z\" fill=\"#f5f8fc\"\/>\r\n    <path d=\"M24 75h443v430H24zm469 0h443v430H493z\" fill=\"#ffffff\" stroke=\"#e1e6ef\"\/>\r\n    <path d=\"M24 75h443v430H24zm469 0h443v430H493z\" fill=\"url(#pack-diagram-grid)\" opacity=\".55\"\/>\r\n    <path d=\"M38 105V89h16m383 0h16v16m-415 370v16h16m383 0h16v-16m54-370V89h16m383 0h16v16m-415 370v16h16m383 0h16v-16\" fill=\"none\" stroke=\"#aabbd4\" stroke-width=\"1.3\"\/>\r\n\r\n    <g fill=\"#15294c\" font-family=\"system-ui, sans-serif\" font-weight=\"650\" font-size=\"24\">\r\n      <text x=\"38\" y=\"51\">Pump and dip tube<\/text>\r\n      <text x=\"507\" y=\"51\">Bottle artwork<\/text>\r\n    <\/g>\r\n\r\n    <g stroke=\"#aabbd4\" stroke-width=\"1.25\" stroke-dasharray=\"5 6\" fill=\"none\">\r\n      <path d=\"M190 111v357m-98-35h196m398-322v357m-101-35h202\"\/>\r\n    <\/g>\r\n\r\n    <path d=\"M148 204v29c-26 14-42 32-42 57v123c0 13 10 23 23 23h122c13 0 23-10 23-23V290c0-25-16-43-42-57v-29z\" fill=\"#f5f8fc\" fill-opacity=\".75\" stroke=\"#15294c\" stroke-width=\"2.5\"\/>\r\n    <path d=\"M119 291c0-22 15-39 40-52m102 52c0-22-15-39-40-52M119 406c0 10 4 16 14 16h114c10 0 14-6 14-16\" fill=\"none\" stroke=\"#aabbd4\" stroke-width=\"1.5\"\/>\r\n    <path d=\"M184 251h12v154l-12 7z\" fill=\"#f4b2c1\" stroke=\"#15294c\" stroke-width=\"2\"\/>\r\n    <path d=\"M176 206h28v49h-28z\" fill=\"#fdecf0\" stroke=\"#15294c\" stroke-width=\"2\"\/>\r\n    <path d=\"M184 151h12v37h-12z\" fill=\"#f5f8fc\" stroke=\"#15294c\" stroke-width=\"2\"\/>\r\n    <path d=\"M156 130h69l18 9v16h-22l-9-9h-56z\" fill=\"#f4b2c1\" stroke=\"#15294c\" stroke-width=\"2.5\" stroke-linejoin=\"round\"\/>\r\n    <rect x=\"145\" y=\"181\" width=\"90\" height=\"27\" rx=\"3\" fill=\"#e1e6ef\" stroke=\"#15294c\" stroke-width=\"2.5\"\/>\r\n    <path d=\"M157 185v18m11-18v18m11-18v18m11-18v18m11-18v18m11-18v18m11-18v18\" stroke=\"#617395\" stroke-width=\"1\"\/>\r\n\r\n    <g fill=\"none\" stroke=\"#526b91\" stroke-width=\"1.75\">\r\n      <path d=\"M229 193h68l14-16h33m-149 170h83l22 20h44\"\/>\r\n    <\/g>\r\n    <g fill=\"#526b91\">\r\n      <circle cx=\"229\" cy=\"193\" r=\"3.5\"\/>\r\n      <circle cx=\"195\" cy=\"347\" r=\"3.5\"\/>\r\n    <\/g>\r\n    <g fill=\"#15294c\" font-family=\"system-ui, sans-serif\" font-size=\"23\" font-weight=\"600\">\r\n      <text x=\"321\" y=\"150\">Pump<\/text>\r\n      <text x=\"321\" y=\"174\">assembly<\/text>\r\n      <text x=\"321\" y=\"398\">Dip tube<\/text>\r\n    <\/g>\r\n\r\n    <path d=\"M651 189v32c0 12-12 18-22 23-24 13-34 29-34 48v121c0 13 10 23 23 23h136c13 0 23-10 23-23V292c0-19-10-35-34-48-10-5-22-11-22-23v-32z\" fill=\"#f5f8fc\" stroke=\"#15294c\" stroke-width=\"2.5\"\/>\r\n    <rect x=\"642\" y=\"149\" width=\"88\" height=\"51\" rx=\"5\" fill=\"#e1e6ef\" stroke=\"#15294c\" stroke-width=\"2.5\"\/>\r\n    <path d=\"M653 157v35m11-35v35m11-35v35m11-35v35m11-35v35m11-35v35m11-35v35\" stroke=\"#617395\" stroke-width=\"1\"\/>\r\n    <path d=\"M621 279h130v117H621z\" fill=\"#f4b2c1\" fill-opacity=\".43\" stroke=\"#ca0f3a\" stroke-width=\"1.8\" stroke-dasharray=\"6 4\"\/>\r\n    <path d=\"M633 302v-11h11m95 11v-11h-11m-95 82v11h11m95-11v11h-11\" fill=\"none\" stroke=\"#ca0f3a\" stroke-width=\"1.3\"\/>\r\n    <path d=\"M751 315h31l13-16h26\" fill=\"none\" stroke=\"#526b91\" stroke-width=\"1.75\"\/>\r\n    <circle cx=\"751\" cy=\"315\" r=\"3.5\" fill=\"#526b91\"\/>\r\n    <g fill=\"#15294c\" font-family=\"system-ui, sans-serif\" font-size=\"23\" font-weight=\"600\">\r\n      <text x=\"799\" y=\"263\">Example<\/text>\r\n      <text x=\"799\" y=\"287\">print area<\/text>\r\n    <\/g>\r\n  \r\n    <path d=\"M190 405V191V139H232\" pathLength=\"1\" stroke-dasharray=\"1\" stroke=\"#ca0f3a\" stroke-width=\"6\" stroke-linecap=\"round\" fill=\"none\" style=\"opacity:var(--jk-case-flow-visibility,0);animation:var(--jk-case-flow-motion,none)\"\/>\r\n    <rect x=\"621\" y=\"279\" width=\"130\" height=\"117\" rx=\"2\" fill=\"#ca0f3a\" fill-opacity=\".16\" stroke=\"#ca0f3a\" stroke-width=\"5\" style=\"opacity:var(--jk-case-artwork-visibility,0);animation:var(--jk-case-artwork-motion,none)\"\/>\r\n  <\/g><\/svg><div class=\"case-diagram-phone\" role=\"img\" aria-label=\"The dip tube reaches into the bottle. An example print area is marked on a separate bottle.\">\r\n      <svg viewBox=\"23 27 445 479\" aria-hidden=\"true\"><use href=\"#jk-case-pump-drawing\"\/><\/svg>\r\n      <svg viewBox=\"492 27 445 479\" aria-hidden=\"true\"><use href=\"#jk-case-pump-drawing\"\/><\/svg>\r\n    <\/div><\/div><figcaption>Schematic of a generic pump and a bottle print area. The buyer would need to try the assembled pack with the intended formula.<\/figcaption><\/figure>\r\n<p>By the time the brand had samples to review, it could look at the pack as someone would use it. Could they open it easily? Where did the carton join? How did the print look on the bottle itself? The photos the buyer sent back focused the conversation on a few details that were now easy to see.<\/p>\r\n<\/section>\r\n<section class=\"case-chapter\" aria-labelledby=\"jk-case-samples\"><h2 id=\"jk-case-samples\">The seam could move. The bulk print process was different.<\/h2>\r\n<p>The sample feedback came in one round, but Jarsking had to answer it part by part. The carton seam and interior color were changes the team could offer. The dropper and pump requests depended on which part the buyer wanted to color. The print complaint had to go to production.<\/p>\r\n<h3>Where to put the carton seam<\/h3>\r\n<p>The buyer wanted the glued join away from the front of the carton. Jarsking offered to put it on the back. The buyer also asked how much it would cost to change the color inside. Jarsking quoted that separately. The seam mattered when the carton was on display. The inside color mattered when someone opened it.<\/p>\r\n<p>On a folding carton dieline, the design team can mark which panel faces forward, where the glue seam sits, and which surfaces need color. Once the team has a proof or a physical carton, it can check those details on the assembled box. If the seam still lands on the wrong panel, there's a specific place on the drawing to revisit. <a href=\"https:\/\/www.jarsking.com\/customization-deco\/\">Jarsking decoration and carton options<\/a><\/p>\r\n<p>It helps to review the carton the way a shopper sees it. Stand it up with the front facing you. Turn it to see where the seam falls, then open it to check the inside. A flat drawing gives everyone a reference for the changes they see on the assembled box.<\/p>\r\n<h3>Where the color could go<\/h3>\r\n<p>The buyer wanted the color to carry across parts of the dropper and pump. The glass pipette, the tube at the end of the dropper, was one of the parts under discussion. The project team says it advised against coating the pipette. If the coating came away, it could come into contact with the contents.<\/p>\r\n<p>The pump nozzle had a different constraint. A custom color for that part came with its own minimum order quantity. The buyer could now weigh the appearance it wanted against the quantity required to make that particular change. A request to color the top of a bottle can cover several pieces. Naming the piece on a drawing or sample helps a supplier quote the change and explain what's possible.<\/p>\r\n<h3>Jarsking's response to the print complaint<\/h3>\r\n<p>Jarsking explained that it would use a different paint for the bulk run. The account lead also recalled a shorter oven cycle for the samples and a longer drying step in the production plan. Paint and drying time were two differences between how the samples were made and how the order would be produced.<\/p>\r\n<p>Jarsking requires a pre-shipment inspection for the production run. A print adhesion check assesses how well the decoration holds on bottles made with the production finish. For a buyer reviewing the production specification, the useful details are which bottle and finish the supplier will check, the method it will use, and what counts as a pass.<\/p>\r\n<p>The sample photos showed the team where the print came away. An inspection record for the bulk run should identify the bottle, finish, and artwork revision alongside the result. If the same design appears on more than one bottle, that reference helps everyone identify which version was checked. A buyer can also ask the supplier to keep the checked bottle with the corresponding inspection record.<\/p>\r\n<figure class=\"case-figure\"><span class=\"case-figure-index\">Figure 4<\/span><div class=\"case-figure-title\">Sample concerns and Jarsking\u2019s response<\/div><div class=\"case-table-scroll\"><table><thead><tr><th scope=\"col\">What the buyer raised<\/th><th scope=\"col\">How Jarsking responded<\/th><\/tr><\/thead><tbody><tr><th scope=\"row\">The glue seam was on the front. The buyer wanted a different color inside.<\/th><td>Offered to move the seam to the back and quoted the interior color change.<\/td><\/tr><tr><th scope=\"row\">The buyer asked about coloring parts of the dropper and pump.<\/th><td>Explained the risk of coating the glass pipette and the minimum order for a custom nozzle color.<\/td><\/tr><tr><th scope=\"row\">Print was coming off sample bottles.<\/th><td>Explained how the paint and drying process differed between sampling and bulk production.<\/td><\/tr><\/tbody><\/table><\/div><\/figure>\r\n<\/section>\r\n<section class=\"case-chapter case-bridge\" aria-labelledby=\"jk-case-order-conversation\"><h2 id=\"jk-case-order-conversation\">The buyer was ready to order. The schedule was still open.<\/h2>\r\n<p>The buyer's message the following day was about starting a first batch of bottles. The order still needed a schedule, and the buyer's designers were still working on the artwork. The next request put a number on how much time the buyer hoped to save.<\/p>\r\n<\/section>\r\n<section class=\"case-chapter\" aria-labelledby=\"jk-case-production\"><h2 id=\"jk-case-production\">The buyer asked for a ten-day cut<\/h2>\r\n<p>According to the project recap, the buyer asked Jarsking to take ten days out of the proposed production schedule. The final artwork was still in progress. Jarsking had to explain the time it had allowed and see which steps could start sooner.<\/p>\r\n<p>In its reply, Jarsking pointed to the decorative finish and the inspections the job would need. There was another reason to leave time for checking. Some of the artwork versions looked similar. A bottle could be the right shape and color and still carry the graphic meant for another version. Production needed the final files to tell those versions apart and check each against the right artwork.<\/p>\r\n<p>Jarsking kept its original production estimate. It offered to change the order of the work. The buyer had already confirmed colors for some components, so Jarsking proposed starting the molding and coating for parts it could make with the information already approved. Anything that depended on the final artwork would wait for sign-off. The offer depended on the buyer getting those files in by the deadline Jarsking proposed.<\/p>\r\n<figure class=\"case-figure\"><span class=\"case-figure-index\">Figure 5<\/span><div class=\"case-figure-title\">Follow the production sequence<\/div><section id=\"jk-production-player\" data-mode=\"proposed\" data-phase=\"0\" aria-labelledby=\"jkp-title\">\r\n  <style>\r\n    #jk-production-player {\r\n      --jkp-navy:#15294c; --jkp-blue:#1f3a6b; --jkp-red:#ca0f3a;\r\n      --jkp-pink:#fdecf0; --jkp-field:#f5f8fc; --jkp-rule:#e1e6ef;\r\n      --jkp-text:#475670; --jkp-line:#aebbd0; --jkp-white:#fff;\r\n      --jkp-a:.33; --jkp-b:.08; --jkp-join:1;\r\n      container-type:inline-size;\r\n      position:relative;\r\n      margin:2rem 0;\r\n      border:1px solid var(--jkp-rule);\r\n      border-radius:16px;\r\n      overflow:hidden;\r\n      background:var(--jkp-white);\r\n      color:var(--jkp-navy);\r\n      font:1rem\/1.5 system-ui, sans-serif;\r\n      text-align:left;\r\n    }\r\n    #jk-production-player *, #jk-production-player *::before, #jk-production-player *::after { box-sizing:border-box; }\r\n    #jk-production-player [hidden] { display:none !important; }\r\n    #jk-production-player :is(h3,h4,p,ol) { margin:0; color:inherit; }\r\n    #jk-production-player :is(.jkp-head,.jkp-phase,.jkp-chart,.jkp-controls,.jkp-foot) { padding-inline:clamp(.85rem,4cqi,1.65rem); }\r\n    #jk-production-player .jkp-head { padding-block:1.3rem; border-top:4px solid var(--jkp-red); }\r\n    #jk-production-player .jkp-label {\r\n      color:var(--jkp-text);\r\n      font:700 .69rem\/1.25 ui-monospace,Consolas,monospace;\r\n      letter-spacing:.07em;\r\n      text-transform:uppercase;\r\n    }\r\n    #jk-production-player .jkp-head h3 { margin:.32rem 0 .55rem; font:780 clamp(1.25rem,4.1cqi,1.9rem)\/1.12 system-ui,sans-serif; letter-spacing:-.027em; }\r\n    #jk-production-player .jkp-context { max-width:60ch; color:var(--jkp-text); font-size:.93rem; }\r\n    #jk-production-player .jkp-modes { display:flex; flex-wrap:wrap; gap:.45rem; margin-top:.9rem; }\r\n    #jk-production-player button {\r\n      display:inline-flex;\r\n      align-items:center;\r\n      justify-content:center;\r\n      min-height:44px;\r\n      padding:.45rem .65rem;\r\n      border:1px solid var(--jkp-line);\r\n      border-radius:8px;\r\n      background:var(--jkp-white);\r\n      color:var(--jkp-navy);\r\n      font:700 .8rem\/1.2 system-ui,sans-serif;\r\n      cursor:pointer;\r\n    }\r\n    #jk-production-player button:enabled:hover { border-color:var(--jkp-blue); background:var(--jkp-field); }\r\n    #jk-production-player button:focus-visible, #jk-production-player input:focus-visible { outline:2px solid var(--jkp-red); outline-offset:3px; }\r\n    #jk-production-player button:disabled { cursor:default; opacity:.46; }\r\n    #jk-production-player button[aria-pressed=\"true\"], #jk-production-player .jkp-play {\r\n      border-color:var(--jkp-blue);\r\n      background:var(--jkp-blue);\r\n      color:var(--jkp-white);\r\n    }\r\n    #jk-production-player button[aria-pressed=\"true\"]:hover, #jk-production-player button.jkp-play:enabled:hover { background:var(--jkp-navy); color:var(--jkp-white); }\r\n    #jk-production-player .jkp-phase { display:grid; gap:.28rem; padding-block:.85rem; border-block:1px solid var(--jkp-rule); }\r\n    #jk-production-player .jkp-phase h4 { font:760 1.05rem\/1.23 system-ui,sans-serif; }\r\n    #jk-production-player .jkp-phase-copy { color:var(--jkp-text); font-size:.87rem; }\r\n    #jk-production-player .jkp-chart {\r\n      padding-block:1rem;\r\n      background-color:var(--jkp-field);\r\n      background-image:linear-gradient(90deg,#e1e6ef80 1px,transparent 1px),linear-gradient(#e1e6ef80 1px,transparent 1px);\r\n      background-size:20px 20px;\r\n    }\r\n    #jk-production-player .jkp-chart-title { margin-bottom:.55rem; color:var(--jkp-text); }\r\n    #jk-production-player .jkp-branches, #jk-production-player .jkp-downstream, #jk-production-player .jkp-baseline {\r\n      display:grid;\r\n      grid-template-columns:repeat(2,minmax(0,1fr));\r\n      gap:.5rem;\r\n      margin:0;\r\n      padding:0;\r\n      list-style:none;\r\n    }\r\n    #jk-production-player .jkp-card {\r\n      display:grid;\r\n      align-content:start;\r\n      gap:.32rem;\r\n      min-width:0;\r\n      padding:.66rem;\r\n      border:1px solid var(--jkp-line);\r\n      border-radius:10px;\r\n      background:var(--jkp-white);\r\n      transition:background-color .28s ease,border-color .28s ease,box-shadow .28s ease;\r\n    }\r\n    #jk-production-player .jkp-card strong { font-size:.86rem; line-height:1.24; overflow-wrap:anywhere; }\r\n    #jk-production-player .jkp-card small { color:var(--jkp-text); font-size:.75rem; line-height:1.35; }\r\n    #jk-production-player .jkp-track { height:4px; margin-top:.12rem; border-radius:10px; background:var(--jkp-rule); overflow:hidden; }\r\n    #jk-production-player .jkp-track::before { content:\"\"; display:block; height:100%; background:var(--jkp-blue); transform:scaleX(var(--jkp-a)); transform-origin:left; transition:transform .48s cubic-bezier(.22,.65,.32,1); }\r\n    #jk-production-player .jkp-art .jkp-track::before { background:var(--jkp-red); transform:scaleX(var(--jkp-b)); }\r\n    #jk-production-player[data-phase=\"0\"] .jkp-color, #jk-production-player[data-phase=\"1\"] .jkp-color { border-color:var(--jkp-blue); }\r\n    #jk-production-player[data-phase=\"1\"] { --jkp-a:.72; --jkp-b:.6; --jkp-join:.45; }\r\n    #jk-production-player[data-phase=\"1\"] .jkp-art { border-color:var(--jkp-red); background:var(--jkp-pink); }\r\n    #jk-production-player[data-phase=\"2\"], #jk-production-player[data-phase=\"3\"] { --jkp-a:1; --jkp-b:1; --jkp-join:0; }\r\n    #jk-production-player .jkp-join { display:block; width:100%; height:34px; overflow:visible; }\r\n    #jk-production-player .jkp-join path { fill:none; stroke:var(--jkp-line); stroke-width:2; vector-effect:non-scaling-stroke; }\r\n    #jk-production-player .jkp-join .jkp-run { stroke:var(--jkp-blue); stroke-dasharray:1; stroke-dashoffset:var(--jkp-join); transition:stroke-dashoffset .48s ease; }\r\n    #jk-production-player .jkp-join .jkp-run-art { stroke:var(--jkp-red); }\r\n    #jk-production-player .jkp-gate {\r\n      width:fit-content;\r\n      max-width:100%;\r\n      margin:0 auto .55rem;\r\n      padding:.28rem .48rem;\r\n      border:1px solid var(--jkp-line);\r\n      border-radius:4px;\r\n      background:var(--jkp-white);\r\n      color:var(--jkp-text);\r\n      text-align:center;\r\n      font-size:.74rem;\r\n      font-weight:700;\r\n    }\r\n    #jk-production-player .jkp-downstream .jkp-card { position:relative; }\r\n    #jk-production-player .jkp-downstream .jkp-card:first-child::after { position:absolute; z-index:1; top:50%; right:-.63rem; width:.75rem; content:\"\u2192\"; color:var(--jkp-blue); font-weight:800; line-height:1; text-align:center; transform:translateY(-50%); }\r\n    #jk-production-player[data-phase=\"2\"] .jkp-decoration, #jk-production-player[data-phase=\"3\"] .jkp-inspection,\r\n    #jk-production-player .jkp-baseline [aria-current=\"step\"] { border-color:var(--jkp-blue); box-shadow:inset 3px 0 var(--jkp-blue); }\r\n    #jk-production-player[data-phase=\"2\"] .jkp-gate { border-color:var(--jkp-red); background:var(--jkp-pink); color:var(--jkp-navy); }\r\n    #jk-production-player .jkp-baseline { gap:.7rem; }\r\n    #jk-production-player .jkp-baseline [data-state=\"previous\"] { border-color:var(--jkp-rule); background:#edf2f8; }\r\n    #jk-production-player .jkp-controls { display:grid; gap:.56rem; padding-block:.85rem; border-top:1px solid var(--jkp-rule); }\r\n    #jk-production-player .jkp-scrub-head { display:flex; align-items:center; justify-content:space-between; gap:.5rem; color:var(--jkp-text); font-size:.76rem; }\r\n    #jk-production-player .jkp-scrub-head label { color:var(--jkp-navy); font-weight:750; }\r\n    #jk-production-player .jkp-scrub {\r\n      width:100%;\r\n      min-height:44px;\r\n      margin:-.3rem 0;\r\n      accent-color:var(--jkp-blue);\r\n      cursor:pointer;\r\n    }\r\n    #jk-production-player .jkp-actions { display:flex; flex-wrap:wrap; gap:.42rem; }\r\n    #jk-production-player .jkp-foot { padding-block:.6rem; border-top:1px solid var(--jkp-rule); color:var(--jkp-text); font-size:.74rem; }\r\n    @container (min-width:565px) {\r\n      #jk-production-player .jkp-card { padding:.74rem .86rem; }\r\n      #jk-production-player .jkp-baseline { grid-template-columns:repeat(4,minmax(0,1fr)); }\r\n      #jk-production-player .jkp-baseline .jkp-card { position:relative; }\r\n      #jk-production-player .jkp-baseline .jkp-card:not(:last-child)::after { position:absolute; right:-.72rem; top:50%; content:\"\u2192\"; color:var(--jkp-blue); font-weight:800; line-height:1; transform:translateY(-50%); }\r\n    }\r\n    @media (prefers-reduced-motion:reduce) {\r\n      #jk-production-player *, #jk-production-player *::before, #jk-production-player *::after { animation:none !important; transition:none !important; }\r\n    }\r\n  <\/style>\r\n\r\n  <header class=\"jkp-head\">\r\n    <p class=\"jkp-label\">Production planning<\/p>\r\n    <h3 id=\"jkp-title\">Where could the schedule overlap?<\/h3>\r\n    <p class=\"jkp-context\">The buyer asked to cut ten days while final artwork was pending. Jarsking retained the planned production window and proposed moving eligible work earlier if the artwork cutoff could be met.<\/p>\r\n    <div class=\"jkp-modes\" role=\"group\" aria-label=\"Compare production sequences\" hidden>\r\n      <button type=\"button\" data-select-mode=\"baseline\" aria-pressed=\"false\" aria-controls=\"jkp-baseline-view\">Illustrative baseline<\/button>\r\n      <button type=\"button\" data-select-mode=\"proposed\" aria-pressed=\"true\" aria-controls=\"jkp-proposed-view\">Proposed overlap<\/button>\r\n    <\/div>\r\n  <\/header>\r\n\r\n  <div class=\"jkp-phase\" aria-live=\"polite\" aria-atomic=\"true\">\r\n    <p class=\"jkp-label\" data-phase-count>Phase 1 of 4 \u00b7 Inputs<\/p>\r\n    <h4 data-phase-title>Color was set while artwork was pending<\/h4>\r\n    <p class=\"jkp-phase-copy\" data-phase-copy>The confirmed color gave Jarsking a basis for identifying which steps could move forward independently.<\/p>\r\n  <\/div>\r\n\r\n  <div class=\"jkp-chart\">\r\n    <div id=\"jkp-proposed-view\" data-player-view=\"proposed\">\r\n      <p class=\"jkp-label jkp-chart-title\">Proposed overlap \u00b7 two workstreams<\/p>\r\n      <ul class=\"jkp-branches\" role=\"list\">\r\n        <li class=\"jkp-card jkp-color\">\r\n          <span class=\"jkp-label\">Lane A \u00b7 Components<\/span>\r\n          <strong>Color-confirmed preparation<\/strong>\r\n          <small>Eligible molding and coating could begin earlier.<\/small>\r\n          <span class=\"jkp-track\" aria-hidden=\"true\"><\/span>\r\n        <\/li>\r\n        <li class=\"jkp-card jkp-art\">\r\n          <span class=\"jkp-label\">Lane B \u00b7 Artwork<\/span>\r\n          <strong>Final artwork release<\/strong>\r\n          <small>Final files were still needed by the proposed cutoff.<\/small>\r\n          <span class=\"jkp-track\" aria-hidden=\"true\"><\/span>\r\n        <\/li>\r\n      <\/ul>\r\n      <svg class=\"jkp-join\" viewBox=\"0 0 600 34\" preserveAspectRatio=\"none\" aria-hidden=\"true\" focusable=\"false\">\r\n        <path d=\"M150 0 V10 Q150 17 162 17 H300 V34 M450 0 V10 Q450 17 438 17 H300\"\/>\r\n        <path class=\"jkp-run\" pathLength=\"1\" d=\"M150 0 V10 Q150 17 162 17 H300 V34\"\/>\r\n        <path class=\"jkp-run jkp-run-art\" pathLength=\"1\" d=\"M450 0 V10 Q450 17 438 17 H300\"\/>\r\n      <\/svg>\r\n      <div class=\"jkp-gate\">Prepared components and released artwork<\/div>\r\n      <ol class=\"jkp-downstream\" aria-label=\"Shared downstream sequence\" role=\"list\">\r\n        <li class=\"jkp-card jkp-decoration\"><span class=\"jkp-label\">Then \u00b7 Decoration<\/span><strong>Apply approved artwork<\/strong><\/li>\r\n        <li class=\"jkp-card jkp-inspection\"><span class=\"jkp-label\">Then \u00b7 Inspection<\/span><strong>Required pre-shipment inspection<\/strong><\/li>\r\n      <\/ol>\r\n    <\/div>\r\n    <div id=\"jkp-baseline-view\" data-player-view=\"baseline\" hidden>\r\n      <p class=\"jkp-label jkp-chart-title\">Illustrative baseline \u00b7 sequential work<\/p>\r\n      <ol class=\"jkp-baseline\" aria-label=\"Illustrative sequential plan\" role=\"list\">\r\n        <li class=\"jkp-card\" data-baseline-step=\"0\"><span class=\"jkp-label\">01 \u00b7 Inputs<\/span><strong>Confirm color and artwork<\/strong><\/li>\r\n        <li class=\"jkp-card\" data-baseline-step=\"1\"><span class=\"jkp-label\">02 \u00b7 Preparation<\/span><strong>Mold and coat eligible parts<\/strong><\/li>\r\n        <li class=\"jkp-card\" data-baseline-step=\"2\"><span class=\"jkp-label\">03 \u00b7 Decoration<\/span><strong>Apply approved artwork<\/strong><\/li>\r\n        <li class=\"jkp-card\" data-baseline-step=\"3\"><span class=\"jkp-label\">04 \u00b7 Inspection<\/span><strong>Required pre-shipment inspection<\/strong><\/li>\r\n      <\/ol>\r\n    <\/div>\r\n  <\/div>\r\n\r\n  <div class=\"jkp-controls\" hidden>\r\n    <div class=\"jkp-scrub-head\">\r\n      <label for=\"jkp-phase-range\">Explore the planning phases<\/label>\r\n      <span>Conceptual sequence<\/span>\r\n    <\/div>\r\n    <input class=\"jkp-scrub\" id=\"jkp-phase-range\" type=\"range\" min=\"0\" max=\"3\" step=\"1\" value=\"0\" aria-valuetext=\"Phase 1 of 4, Inputs\">\r\n    <div class=\"jkp-actions\" role=\"group\" aria-label=\"Phase playback controls\">\r\n      <button type=\"button\" data-step=\"-1\" disabled>Previous phase<\/button>\r\n      <button type=\"button\" class=\"jkp-play\">Play phases<\/button>\r\n      <button type=\"button\" data-step=\"1\">Next phase<\/button>\r\n    <\/div>\r\n  <\/div>\r\n  <p class=\"jkp-foot\">The comparison uses conceptual phases to show the scheduling proposal at the purchase-order stage.<\/p>\r\n\r\n  <script>\r\n    (() => {\r\n      const player = document.getElementById('jk-production-player');\r\n      if (!player || player.dataset.ready) return;\r\n      player.dataset.ready = 'true';\r\n\r\n      const labels = ['Inputs', 'Preparation', 'Decoration', 'Inspection'];\r\n      const phases = {\r\n        proposed: [\r\n          { title: 'Color was set while artwork was pending', copy: 'The confirmed color gave Jarsking a basis for identifying which steps could move forward independently.' },\r\n          { title: 'Two workstreams could advance together', copy: 'Eligible molding and coating could start while the buyer finished the artwork. The artwork cutoff still governed the plan.' },\r\n          { title: 'Artwork-dependent decoration waits at the join', copy: 'Both the prepared components and the released files would be needed before printing the artwork.' },\r\n          { title: 'Inspection is required before shipment', copy: 'Jarsking requires pre-shipment inspection for bulk production. The proposed overlap changes when eligible preparation starts.' }\r\n        ],\r\n        baseline: [\r\n          { title: 'Confirm the inputs together', copy: 'In the illustrative sequence, color and final artwork are ready before component preparation starts.' },\r\n          { title: 'Prepare eligible components', copy: 'Molding and coating follow the input approvals as a distinct production step.' },\r\n          { title: 'Decorate after preparation', copy: 'The production team would apply approved artwork to the prepared parts.' },\r\n          { title: 'Inspection follows decoration', copy: 'The bulk run requires pre-shipment inspection in either sequence.' }\r\n        ]\r\n      };\r\n      const modeControls = player.querySelector('.jkp-modes');\r\n      const controls = player.querySelector('.jkp-controls');\r\n      const scrub = player.querySelector('.jkp-scrub');\r\n      const play = player.querySelector('.jkp-play');\r\n      const previous = player.querySelector('[data-step=\"-1\"]');\r\n      const next = player.querySelector('[data-step=\"1\"]');\r\n      const count = player.querySelector('[data-phase-count]');\r\n      const title = player.querySelector('[data-phase-title]');\r\n      const copy = player.querySelector('[data-phase-copy]');\r\n      const modeButtons = player.querySelectorAll('[data-select-mode]');\r\n      const views = player.querySelectorAll('[data-player-view]');\r\n      const baselineNodes = player.querySelectorAll('[data-baseline-step]');\r\n      let mode = 'proposed';\r\n      let phase = 0;\r\n      let playback = null;\r\n\r\n      function render() {\r\n        const activePhase = phases[mode][phase];\r\n        const phaseLabel = `Phase ${phase + 1} of ${labels.length}`;\r\n        player.dataset.mode = mode;\r\n        player.dataset.phase = phase;\r\n        count.textContent = `${phaseLabel} \u00b7 ${labels[phase]}`;\r\n        title.textContent = activePhase.title;\r\n        copy.textContent = activePhase.copy;\r\n        scrub.value = phase;\r\n        scrub.setAttribute('aria-valuetext', `${phaseLabel}, ${labels[phase]}`);\r\n        previous.disabled = phase === 0;\r\n        next.disabled = phase === labels.length - 1;\r\n        modeButtons.forEach((button) => button.setAttribute('aria-pressed', String(button.dataset.selectMode === mode)));\r\n        views.forEach((view) => { view.hidden = view.dataset.playerView !== mode; });\r\n        baselineNodes.forEach((node, index) => {\r\n          node.dataset.state = index < phase ? 'previous' : 'upcoming';\r\n          if (index === phase) node.setAttribute('aria-current', 'step');\r\n          else node.removeAttribute('aria-current');\r\n        });\r\n      }\r\n\r\n      function pause() {\r\n        window.clearInterval(playback);\r\n        playback = null;\r\n        play.textContent = 'Play phases';\r\n      }\r\n\r\n      function selectPhase(value) {\r\n        pause();\r\n        phase = Math.min(Math.max(value, 0), labels.length - 1);\r\n        render();\r\n      }\r\n\r\n      modeButtons.forEach((button) => button.addEventListener('click', () => {\r\n        pause();\r\n        mode = button.dataset.selectMode;\r\n        render();\r\n      }));\r\n      scrub.addEventListener('input', () => selectPhase(Number(scrub.value)));\r\n      previous.addEventListener('click', () => selectPhase(phase - 1));\r\n      next.addEventListener('click', () => selectPhase(phase + 1));\r\n      play.addEventListener('click', () => {\r\n        if (playback !== null) {\r\n          pause();\r\n          return;\r\n        }\r\n        if (phase === labels.length - 1) {\r\n          phase = 0;\r\n          render();\r\n        }\r\n        play.textContent = 'Pause phases';\r\n        playback = window.setInterval(() => {\r\n          phase += 1;\r\n          render();\r\n          if (phase === labels.length - 1) pause();\r\n        }, 1650);\r\n      });\r\n\r\n      render();\r\n      controls.hidden = false;\r\n      modeControls.hidden = false;\r\n    })();\r\n  <\/script>\r\n<\/section><\/figure>\r\n<figure class=\"case-figure\"><span class=\"case-figure-index\">Figure 6<\/span><div class=\"case-figure-title\">What each proposed step needed<\/div><div class=\"case-table-scroll\"><table><thead><tr><th scope=\"col\">Production step<\/th><th scope=\"col\">What the team would need<\/th><\/tr><\/thead><tbody><tr><th scope=\"row\">Start molding and coating some components<\/th><td>Confirm which parts and colors were set and could be made before artwork approval.<\/td><\/tr><tr><th scope=\"row\">Start the decoration that needed final artwork<\/th><td>Receive the final files by the proposed deadline.<\/td><\/tr><tr><th scope=\"row\">Complete the required pre-shipment inspection<\/th><td>Allow time to check the finish and match similar-looking bottles to the correct artwork.<\/td><\/tr><\/tbody><\/table><\/div><\/figure>\r\n<p>The buyer's design team and Jarsking's production team would have had different work to do at the same time. The designers would finish the files. Production would make the parts that were already defined. The two paths would meet when those parts were ready for the work that used the final artwork. Keeping the proposed cutoff in the plan made that handoff visible to both teams.<\/p>\r\n<p>Starting some work early carries its own trade-off. If a design change affects a component already in production, that part may need rework. Before agreeing to an early start, a buyer can ask the supplier to name the parts it wants to make and list what must stay fixed. A confirmed color is useful. The part also has to fit the final pack and work with the intended decoration. Those details make it easier to decide whether starting a particular job early is worth it.<\/p>\r\n<p>Say a bottle body already has an approved color. The buyer could ask whether the artwork might change the area the supplier plans to coat. If the answer depends on a graphic that's still in progress, that decision needs its own deadline. Put the approved parts and the dates for open decisions on the same schedule so both teams can see what they are agreeing to.<\/p>\r\n<p>The artwork cutoff needs a clear definition, too. When you agree to send the files by a certain date, ask what the supplier needs to begin work. Who will check the files? If one needs another revision, which production steps will have to wait?<\/p>\r\n<\/section>\r\n<section class=\"case-chapter\" aria-labelledby=\"jk-case-outcome\"><h2 id=\"jk-case-outcome\">The first-order outcome came weeks later<\/h2>\r\n<p>The Jarsking project team reported a formal purchase order and initial deposit several weeks after the buyer's message about starting a first batch. The order summary lists bottles and matching cartons. The buyer had begun by asking what glass bottles were available. By the time of the order, the work covered several formats and the cartons that went with them.<\/p>\r\n<p>The purchase order and deposit mark where this part of the story ends. During the sample review, the buyer could point to a seam that should move and show where the print had come away. Jarsking could then explain what would change in bulk production. During the schedule discussion, the parties could talk about specific parts that might move ahead and graphics that still needed approval. Those are the decisions behind the order that another buyer can take into a conversation with a supplier.<\/p>\r\n<p>For a buyer placing a similar order, this is a good point to check that the quote, artwork, and order all refer to the same packs. A bottle, its dispenser, and its carton may be discussed together. Check the specification for each. Using the same reference across those files helps the teams match the pieces.<\/p>\r\n<figure class=\"case-figure\"><span class=\"case-figure-index\">Figure 7<\/span><div class=\"case-figure-title\">How the first order took shape<\/div><ol class=\"case-steps case-milestones\"><li><strong>Glass inquiry<\/strong><span>The buyer asks about available bottle sizes.<\/span><\/li><li><strong>Sample feedback<\/strong><span>The buyer raises carton, component, and print questions.<\/span><\/li><li><strong>First-batch message<\/strong><span>The buyer brings up an order for bottles.<\/span><\/li><li><strong>Formal order<\/strong><span>The project team reports the purchase order and deposit.<\/span><\/li><\/ol><\/figure>\r\n<\/section>\r\n<section class=\"case-chapter\" aria-labelledby=\"jk-case-sample-checklist\"><h2 id=\"jk-case-sample-checklist\">What buyers can decide from a sample<\/h2>\r\n<p>A sample review is easier to run if you know what you want to decide. Start with what you can see and handle on the table. You might be able to approve the carton layout at that meeting. For the pump, arrange a trial with the intended formula. For the print, ask how the supplier will check the finish it plans to use in production. Leave each item with a clear next step.<\/p>\r\n<p>Ask which production materials and steps the sample represents. If the bulk run uses a different process, note the difference in the sample review so both teams have it in writing.<\/p>\r\n<p>You can make the review easier by giving everyone the same list of decisions. For each bottle, record what it will hold, which pump or closure goes with it, and which pieces need a custom finish. On the carton file, mark the seam, interior color, and artwork placement. When you request a change, point to the part or panel so the designer and production team can find it quickly.<\/p>\r\n<p>For each item on the list, write down who needs to sign off and when. Some approvals are as simple as confirming that the seam sits on the back. For a print check, you need the part and finish being checked, the method, and what will count as acceptable. Give each artwork version its own file reference so the production team can match it to the right pack. If the schedule is tight, ask which of those approvals the supplier needs before starting each job.<\/p>\r\n<p>You can start with a shared file that lists one row for each pack. Include the bottle or carton reference and the current artwork file. If two bottles look almost the same from a distance, the person checking them can match each one to the right graphic by looking up the file. When a revision comes in, update the row and keep the previous reference in the review history.<\/p>\r\n<p>The brand and its filling partner should also plan how to check the formula's stability and compatibility with the pack. Choose packaging that represents the version you intend to sell. Base the test plan on the formula and how the finished product will be stored and used. The packaging supplier can provide samples and component details to support that work. <a href=\"https:\/\/cosmeticseurope.eu\/wp-content\/uploads\/2024\/10\/Guidelines_on_Stability_Testing_of_Cosmetics_CE-CTFA_-_2004.pdf\">Cosmetics Europe stability testing guidelines<\/a> \u00b7 <a href=\"https:\/\/www.iso.org\/standard\/63465.html\">ISO technical report on cosmetic stability testing<\/a><\/p>\r\n<\/section>\r\n<section class=\"case-chapter\" aria-labelledby=\"jk-case-faq\"><h2 id=\"jk-case-faq\">Buyer FAQs<\/h2>\r\n<details class=\"case-faq\"><summary>When does shipping weight change the choice between glass and plastic?<\/summary><p>If both formats can work for your product, ask what each would weigh across the full shipment. Get the weight of the empty bottle with its pump or cap and find out how it would be packed for transit. Use that comparison alongside the way the bottle looks and feels, how it dispenses, and how it works with your formula. You can make the choice separately for each bottle in the range.<\/p><\/details>\r\n<details class=\"case-faq\"><summary>How should a buyer sample a pump for a thicker cream?<\/summary><p>Ask for the bottle and pump assembled as they would be for production. Have the brand or filling partner test the pack with the intended cream. Check how many presses it takes for the cream to start flowing and how consistently the pump dispenses after that. Decide what amount suits a typical use. Record which bottle and pump you tested so you can refer to the same combination later.<\/p><\/details>\r\n<details class=\"case-faq\"><summary>What can a packaging dieline help the buyer review?<\/summary><p>A dieline shows where artwork can go on a particular bottle or carton. On a bottle, it marks the print area. On a carton, it can show panels, folds, and the glue area. Use it to place the artwork, then look at a proof or assembled sample to see where the graphic and seam actually land. If you change the pack size or shape, ask for the dieline that goes with the new format before reusing the artwork.<\/p><\/details>\r\n<details class=\"case-faq\"><summary>What should a buyer ask when print lifts on a sample?<\/summary><p>Send photos and explain where the print came off and what happened just before you noticed it. Ask how the sample was printed, what process the supplier plans to use in production, and which decorated part it will check. Agree on what the check involves and what counts as a pass. Ask for the result before you sign off on that step.<\/p><\/details>\r\n<details class=\"case-faq\"><summary>Which work can begin before final artwork approval?<\/summary><p>Ask your supplier to list the parts it can make using the specifications and colors already approved. Agree on who can give the go-ahead and when the artwork is due. If a late change could affect a part that will already be in production, factor that into the decision. Schedule a separate sign-off for the work that needs the final files.<\/p><\/details>\r\n<\/section>\r\n<section class=\"case-chapter\" aria-labelledby=\"jk-case-contact\"><h2 id=\"jk-case-contact\">The final takeaway for a first packaging brief<\/h2>\r\n<p>The buyer's photos gave Jarsking a specific problem to discuss with production. The ten-day request led to a similarly specific conversation about which parts might start early and which needed the final artwork. In both conversations, the next step depended on knowing what had already been agreed and what still needed a decision.<\/p>\r\n<p>If you're planning a skincare range, bring a list of the products, the bottles and dispensers you're considering, and any artwork you already have. Tell Jarsking what you want to learn from the samples and which dates are fixed. The team can help you review the empty packaging, decoration, and cartons together.<\/p>\r\n<a class=\"case-contact-link\" href=\"https:\/\/www.jarsking.com\/contact-jarsking\/\">Discuss your packaging brief with Jarsking<\/a>\r\n<\/section>\r\n<script>\r\n(() => {\r\n  const panel = document.currentScript.closest('#jk-skincare-case').querySelector('.case-pump');\r\n  const group = panel.querySelector('.case-pump-controls');\r\n  const note = panel.querySelector('.case-pump-note');\r\n  const phone = panel.querySelector('.case-diagram-phone');\r\n  const overview = phone.getAttribute('aria-label');\r\n  const buttons = [...group.querySelectorAll('button')];\r\n  const messages = {\r\n    flow: 'The dip tube draws product toward the pump. Try the assembled pack with the intended formula to check how it dispenses.',\r\n    artwork: 'The marked print area shows where a designer can place artwork for this example bottle.'\r\n  };\r\n  group.addEventListener('click', (event) => {\r\n    const button = event.target.closest('[data-pump-mode]');\r\n    if (!button) return;\r\n    const mode = button.dataset.pumpMode;\r\n    panel.dataset.mode = panel.dataset.mode === mode ? '' : mode;\r\n    buttons.forEach((item) => item.setAttribute('aria-pressed', String(item.dataset.pumpMode === panel.dataset.mode)));\r\n    note.hidden = !panel.dataset.mode;\r\n    note.textContent = messages[panel.dataset.mode] || '';\r\n    phone.setAttribute('aria-label', messages[panel.dataset.mode] || overview);\r\n  });\r\n  group.hidden = false;\r\n})();\r\n<\/script>\r\n<\/article>\r\n\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t<\/section>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>A skincare buyer sent Jarsking photos of peeling print on sample bottles. The next day, it said it thought it could start its first batch. Weeks later, it asked to cut ten days from production. Here&#8217;s how Jarsking handled the sample complaint and proposed starting some work while the buyer finished the artwork.<\/p>","protected":false},"author":22,"featured_media":109066,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[202],"tags":[],"class_list":["post-109061","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-success-stories"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.jarsking.com\/pt\/wp-json\/wp\/v2\/posts\/109061","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.jarsking.com\/pt\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.jarsking.com\/pt\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.jarsking.com\/pt\/wp-json\/wp\/v2\/users\/22"}],"replies":[{"embeddable":true,"href":"https:\/\/www.jarsking.com\/pt\/wp-json\/wp\/v2\/comments?post=109061"}],"version-history":[{"count":5,"href":"https:\/\/www.jarsking.com\/pt\/wp-json\/wp\/v2\/posts\/109061\/revisions"}],"predecessor-version":[{"id":109067,"href":"https:\/\/www.jarsking.com\/pt\/wp-json\/wp\/v2\/posts\/109061\/revisions\/109067"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.jarsking.com\/pt\/wp-json\/wp\/v2\/media\/109066"}],"wp:attachment":[{"href":"https:\/\/www.jarsking.com\/pt\/wp-json\/wp\/v2\/media?parent=109061"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.jarsking.com\/pt\/wp-json\/wp\/v2\/categories?post=109061"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.jarsking.com\/pt\/wp-json\/wp\/v2\/tags?post=109061"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}