<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Create your custom napkin</title><style>:root{--primary:#61412f;--page:#fcf4ee;--surface:#fff;--text:#61412f;--muted:#61412f;--border:#f5f5f5;--focus:#8a5700}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:var(--page);color:var(--text);font:18px/1.6 system-ui}main{max-width:80rem;margin:auto;padding:clamp(1rem,4vw,4rem)}.panel{background:var(--surface);padding:clamp(1.25rem,4vw,3rem);border-radius:18px;box-shadow:0 1rem 3rem #61412f18}.progress{display:flex;gap:.5rem;list-style:none;padding:0;overflow:auto}.progress li{white-space:nowrap;color:var(--muted);padding:.4rem .7rem;border-bottom:3px solid transparent}.progress li[aria-current=step]{color:var(--text);border-color:var(--primary);font-weight:700}.layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(22rem,1fr);gap:2.5rem}.step{min-height:24rem}.products,.preview-views{display:grid;grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:1rem}.products{border:0;padding:0}.product{display:grid;padding:1rem;border:2px solid #b8c9c4;border-radius:10px;min-height:8rem}.product:has(input:checked){border-color:var(--primary)}label,legend{font-weight:700}input,select,textarea,button{font:inherit}input[type=file],input[type=number],select,textarea{width:100%;padding:.8rem;margin:.3rem 0 1rem;border:1px solid var(--border);border-radius:6px}button{min-height:3rem;padding:.7rem 1.1rem;border:2px solid var(--primary);border-radius:6px;background:var(--primary);color:#fff;font-weight:700}button.secondary{background:#fff;color:var(--primary)}button:disabled{opacity:.5}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}.notice{border-left:.3rem solid var(--primary);padding:.75rem 1rem;background:#fcf4ee}.drop-zone{border:2px dashed var(--border);padding:1.5rem;text-align:center;border-radius:10px}.drop-zone.dragover{border-color:var(--primary);background:#fcf4ee}.preview{position:sticky;top:1rem;align-self:start}.preview-figure{margin:0;text-align:center}.napkin-frame{aspect-ratio:1;display:grid;place-items:center;overflow:hidden}.napkin{--art-scale:.6;position:relative;width:68%;aspect-ratio:1;display:block;overflow:hidden;border:1px solid var(--border);background:#fff;box-shadow:0 .7rem 2rem #61412f20}.napkin[data-orientation=DIAMOND]{transform:rotate(45deg) scale(.72)}.napkin-base{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.safe-zone{position:absolute;inset:16%;border:2px dashed #8a5700;z-index:1}.safe-zone::before{content:'';position:absolute;top:.2rem;left:.2rem;font-size:.65rem;background:#fffddc;color:#4d3100}.artwork-image{display:none;position:absolute;z-index:2;max-width:calc(70% * var(--art-scale));max-height:calc(70% * var(--art-scale));object-fit:contain}.artwork-image.ready{display:block}.preview-text{position:absolute;z-index:3;white-space:pre-line;text-align:center;color:#000}.napkin[data-orientation=DIAMOND] .artwork-image,.napkin[data-orientation=DIAMOND] .preview-text,.napkin[data-orientation=DIAMOND] .safe-zone::before{transform:rotate(-45deg)}.unfolded .safe-zone{inset:55% 5% 5% 55%}.fold-guide{position:absolute;inset:0;background:linear-gradient(90deg,transparent 49.7%,#61412f30 50%,transparent 50.3%),linear-gradient(0deg,transparent 49.7%,#61412f30 50%,transparent 50.3%)}.sku,.preview-data,.help{color:var(--muted);font-size:.9rem}.review-list button{margin-left:.5rem}.eyebrow{color:var(--primary);font-weight:700;text-transform:uppercase;letter-spacing:.08em}@media(max-width:52rem){.layout,.preview-views{grid-template-columns:1fr}.preview{position:static}.step{min-height:auto}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}body{background:linear-gradient(180deg,var(--page),#ebe7dd);letter-spacing:.005em}main{padding-top:clamp(1.25rem,4vw,3.5rem)}.panel{border:1px solid #d8d2c5;box-shadow:0 1.5rem 4rem #17332d14}h1{max-width:19ch;margin:.15rem 0 .6rem;font:600 clamp(2.25rem,5vw,4.25rem)/1.06 Georgia,serif;letter-spacing:-.025em}h2{margin:0 0 1.25rem;font:600 clamp(1.55rem,3vw,2.15rem)/1.2 Georgia,serif}.eyebrow{margin-bottom:.35rem;font-size:.78rem;letter-spacing:.18em}.progress{margin:2rem 0 2.5rem;padding:.45rem;border:1px solid #d8d2c5;border-radius:999px;background:#faf9f6}.progress li{flex:1;text-align:center;border:0;border-radius:999px;padding:.65rem 1rem}.progress li[aria-current=step]{background:var(--primary);color:#fff;box-shadow:0 .25rem .8rem #17332d22}.layout{border-top:1px solid #e4dfd5;padding-top:2.25rem}.step{padding-right:clamp(0rem,2vw,1.5rem)}.products{margin-top:.65rem}.product{position:relative;background:#fffdf9;border-color:#d2ccc0;box-shadow:0 .25rem .9rem #17332d0b;transition:border-color .15s,box-shadow .15s,transform .15s}.product:hover{border-color:var(--primary);box-shadow:0 .5rem 1.25rem #17332d14;transform:translateY(-1px)}.product strong{font:600 1.1rem/1.3 Georgia,serif;margin:.35rem 0}.product input{width:1.25rem;height:1.25rem;accent-color:var(--primary)}input[type=file],input[type=number],select,textarea{min-height:3.25rem;background:#fff;color:var(--text)}.drop-zone{margin:.6rem 0 1.5rem;padding:2rem;background:#faf9f6;border-color:#aaa395}.actions{padding-top:.5rem}.actions button:last-child{margin-left:auto}button{box-shadow:0 .25rem .7rem #17332d15;cursor:pointer}button:hover:not(:disabled){filter:brightness(.94)}.preview{padding:1.4rem;border:1px solid #d8d2c5;border-radius:14px;background:linear-gradient(145deg,#fff,#faf8f2);box-shadow:0 1rem 2.5rem #17332d10}.preview>h2{font-size:1.4rem}.preview-figure figcaption{margin-bottom:.4rem;font:600 1rem/1.3 Georgia,serif}.napkin-frame{border-radius:12px;background:radial-gradient(circle,#fff 0,#f3efe6 68%,#e7e0d3 100%)}.napkin{border-color:#b9b1a3;box-shadow:0 1rem 2rem #312b2324}.preview-data{padding:.8rem 0;border-top:1px solid #ddd6ca;border-bottom:1px solid #ddd6ca}#preview-status{min-height:3.2rem;margin-bottom:0;padding:.7rem;border-radius:7px;background:#eef7f4}.review-list{list-style:none;padding:0;border-top:1px solid #ddd6ca}.review-list li{display:flex;align-items:center;justify-content:space-between;padding:.8rem 0;border-bottom:1px solid #ddd6ca}.trust-note{margin:1rem 0 0;color:var(--muted);font-size:.9rem}@media(max-width:52rem){body{font-size:17px}.progress{border-radius:12px}.progress li{flex:0 0 auto}.layout{padding-top:1.5rem}.preview{order:-1;position:static}.step{padding-right:0}.actions button{flex:1 1 8rem}.actions button:last-child{margin-left:0}}@media(prefers-reduced-motion:reduce){.product{transition:none}}.preview-text{line-height:1.15}.text-settings{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.text-settings label{display:block}#custom-text{min-height:8.5rem}@media(max-width:35rem){.text-settings{grid-template-columns:1fr}}#dual-preview{grid-template-columns:minmax(16rem,1.45fr) minmax(12rem,.8fr);align-items:center}#dual-preview .unfolded{width:92%;border:0;border-radius:2px;box-shadow:inset 0 0 0 4.88% #2f2c28,0 1rem 2rem #312b2324;background:#faf8f2}#dual-preview .unfolded::after{content:none;border:0;padding:0}#dual-preview .finished{width:64%;overflow:visible;border-radius:2px}#single-preview .finished{overflow:hidden;border:0;box-shadow:none}#single-preview .finished::before,#single-preview .finished::after{content:none;display:none}@media(max-width:52rem){#dual-preview{grid-template-columns:1fr}#dual-preview .unfolded{width:88%}#dual-preview .finished{width:58%}}.fold-plane{display:none}#dual-preview .preview-figure:last-child{overflow:hidden;padding:3%}#dual-preview .preview-figure:last-child .napkin-frame{width:100%;transform:none}#dual-preview .finished{--fold-edge:#b9aa9e;--fold-highlight:#ded4cc;width:76%;overflow:hidden;border:1px solid var(--fold-edge);box-shadow:0 .6rem 1.2rem rgba(49,43,35,.14)}#dual-preview .finished::before,#dual-preview .finished::after{content:none;display:none}#dual-preview .finished .fold-plane-top{display:block;position:absolute;z-index:1;pointer-events:none;left:0;right:0;top:0;height:6%;background:var(--fold-highlight);clip-path:polygon(0 82%,100% 0,100% 100%,0 100%);border-bottom:1px solid var(--fold-edge)}.napkin-color-select{position:absolute;width:1px!important;height:1px!important;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.swatches{display:grid;grid-template-columns:repeat(auto-fill,8.5rem);grid-auto-rows:3.25rem;gap:.45rem;margin:.75rem 0;justify-content:start}.swatch{display:grid;grid-template-columns:1.65rem minmax(0,1fr) .8rem;align-items:center;gap:.4rem;width:8.5rem;height:3.25rem;min-height:44px;padding:.35rem .45rem;background:#fff;color:var(--text);border:2px solid #c8c1b5;box-shadow:none;text-align:left}.swatch-label{display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;max-height:2.4em;line-height:1.2;font-size:.8rem}.swatch[aria-checked=true]{border-color:var(--primary);box-shadow:0 0 0 2px #fff,0 0 0 4px var(--primary)}.swatch-chip{width:1.65rem;height:1.65rem;border-radius:50%;border:1px solid #817a70;background-position:center;background-size:150% 150%}.swatch-check{font-weight:800;text-align:center}.swatch[aria-checked=false] .swatch-check{visibility:hidden}@media(max-width:390px){.swatches{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:3.25rem}.swatch{width:100%;height:3.25rem}}.napkin-frame{background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important}.napkin.low-contrast .artwork-image{filter:drop-shadow(0 0 1px #fff) drop-shadow(0 0 2px #fff)}.napkin.low-contrast .preview-text{text-shadow:0 0 2px #fff,0 0 3px #fff}
#single-preview .napkin[data-orientation=DIAMOND] .napkin-base{transform:none}
@media(max-width:600px){
body #single-preview .napkin{width:84%;max-width:none}
}
.placement-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));gap:.5rem;margin:.5rem 0 1rem}.placement-buttons[data-layout=map]{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,auto)}.placement-buttons[data-layout=map] .placement-button[data-placement=TOP_LEFT]{grid-area:1/1}.placement-buttons[data-layout=map] .placement-button[data-placement=TOP_CENTER]{grid-area:1/2}.placement-buttons[data-layout=map] .placement-button[data-placement=TOP_RIGHT]{grid-area:1/3}.placement-buttons[data-layout=map] .placement-button[data-placement=CENTER]{grid-area:2/2}.placement-buttons[data-layout=map] .placement-button[data-placement=BOTTOM_LEFT]{grid-area:3/1}.placement-buttons[data-layout=map] .placement-button[data-placement=BOTTOM_CENTER]{grid-area:3/2}.placement-buttons[data-layout=map] .placement-button[data-placement=BOTTOM_RIGHT]{grid-area:3/3}.placement-button{min-height:2.8rem;padding:.45rem;background:#fff;color:var(--text);border-color:#b8b0a4;box-shadow:none}.placement-button[aria-checked=true]{border-color:var(--primary);background:#eef7f4;color:var(--text);box-shadow:inset 0 0 0 1px var(--primary)}@media(max-width:390px){.placement-buttons[data-layout=map]{gap:.35rem}.placement-buttons[data-layout=map] .placement-button{min-width:0;padding:.35rem .2rem;font-size:.76rem}}.placement-buttons[data-layout=diamond]{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,auto)}.placement-buttons[data-layout=diamond] .placement-button[data-placement=TOP_CORNER]{grid-area:1/2}.placement-buttons[data-layout=diamond] .placement-button[data-placement=LEFT_CORNER]{grid-area:2/1}.placement-buttons[data-layout=diamond] .placement-button[data-placement=CENTER]{grid-area:2/2}.placement-buttons[data-layout=diamond] .placement-button[data-placement=RIGHT_CORNER]{grid-area:2/3}.placement-buttons[data-layout=diamond] .placement-button[data-placement=BOTTOM_CORNER]{grid-area:3/2}#single-preview .napkin[data-orientation=DIAMOND][data-placement=TOP_CORNER] .artwork-image,#single-preview .napkin[data-orientation=DIAMOND] .preview-text[data-placement=TOP_CORNER]{left:auto;right:var(--physical-inset);top:var(--physical-inset);bottom:auto}#single-preview .napkin[data-orientation=DIAMOND][data-placement=RIGHT_CORNER] .artwork-image,#single-preview .napkin[data-orientation=DIAMOND] .preview-text[data-placement=RIGHT_CORNER]{left:auto;right:var(--physical-inset);top:auto;bottom:var(--physical-inset)}#single-preview .napkin[data-orientation=DIAMOND][data-placement=BOTTOM_CORNER] .artwork-image,#single-preview .napkin[data-orientation=DIAMOND] .preview-text[data-placement=BOTTOM_CORNER]{left:var(--physical-inset);right:auto;top:auto;bottom:var(--physical-inset)}#single-preview .napkin[data-orientation=DIAMOND][data-placement=LEFT_CORNER] .artwork-image,#single-preview .napkin[data-orientation=DIAMOND] .preview-text[data-placement=LEFT_CORNER]{left:var(--physical-inset);right:auto;top:var(--physical-inset);bottom:auto}#dual-preview .napkin{border:0!important;box-shadow:none!important;background:transparent!important}#dual-preview .napkin-base{display:block;z-index:0}#dual-preview .unfolded .napkin-base{inset:-6%;width:112%;height:112%;max-width:none;max-height:none;object-fit:cover;clip-path:inset(1%)}#dual-preview .finished{--qf-image-left:-14.3296%;--qf-image-top:-16.8317%;--qf-image-width:128.3521%;--qf-image-height:124.1584%;overflow:visible!important}#dual-preview .finished .napkin-base{inset:var(--qf-image-top) auto auto var(--qf-image-left);width:var(--qf-image-width);height:var(--qf-image-height);max-width:none;max-height:none;object-fit:fill;clip-path:polygon(8% 13%,85% 4%,85% 13%,92% 13%,92% 95%,8% 95%)}#dual-preview .quarter-glue{display:block;position:absolute;z-index:1;pointer-events:none;background:rgba(255,255,255,.38)}#dual-preview .quarter-glue-left{left:0;top:0;width:4.9213%;height:100%}#dual-preview .quarter-glue-top{left:0;top:0;width:100%;height:4.9213%}#dual-preview .quarter-glue-right{right:0;top:0;width:4.9213%;height:100%}#dual-preview .quarter-glue-bottom{left:0;bottom:0;width:100%;height:4.9213%}#dual-preview .finished .quarter-glue-right{width:9.8425%}#dual-preview .finished .quarter-glue-bottom{height:9.8425%}#dual-preview .finished .quarter-glue-left,#dual-preview .finished .quarter-glue-top{display:none}#dual-preview .napkin[data-napkin-color=Black] .quarter-glue{background:rgba(255,255,255,.075)}#dual-preview .fold-guide,#dual-preview .fold-plane-top{display:none!important}.napkin{transform:rotate(0deg) scale(1);transition:transform .45s cubic-bezier(.22,.61,.36,1)}.napkin[data-orientation=DIAMOND]{transform:rotate(45deg) scale(.72)}@media(prefers-reduced-motion:reduce){.napkin{transition:none}}:root{--primary:#61412f;--page:#fcf4ee;--surface:#ffffff;--text:#61412f;--muted:#61412f;--border:#f5f5f5;--focus:#61412f;--success:#216e39;--warning:#8a5700;--error:#a11b1b}body{background:var(--page);color:var(--text);font-family:Poppins,Arial,Helvetica,sans-serif;font-weight:400}h1,h2,.product strong,.preview-figure figcaption{font-family:"Libre Caslon Text",Georgia,"Times New Roman",serif}.panel{background:var(--surface);border-color:rgba(0,0,0,.13);box-shadow:0 1rem 3rem rgba(97,65,47,.1)}.layout{border-color:rgba(0,0,0,.13)}.progress{background:#fff;border-color:rgba(0,0,0,.13)}.progress li[aria-current=step]{background:#61412f;color:#fff;box-shadow:none}.product{background:#fff;border-color:rgba(0,0,0,.13);box-shadow:none}.product:has(input:checked){background:#61412f;border-color:#61412f;color:#fff}.product:has(input:checked) .sku{color:#fff}.product:hover{border-color:#61412f;box-shadow:0 .4rem 1rem rgba(97,65,47,.12)}input[type=file],input[type=number],select,textarea{background:rgba(255,255,255,.78);color:#61412f;border-color:#f5f5f5}button{padding:16px 24px;border-color:#61412f;background:#61412f;color:#fff;font-family:Poppins,Arial,Helvetica,sans-serif;box-shadow:none}button.secondary{background:#fff;color:#61412f}.notice,#preview-status{background:#fcf4ee;border-color:#61412f;color:#61412f}.drop-zone{background:rgba(255,255,255,.78);border-color:rgba(0,0,0,.35)}.drop-zone.dragover{background:#fcf4ee;border-color:#61412f}.swatch{background:#fff;color:#61412f;border-color:rgba(0,0,0,.13)}.swatch[aria-checked=true],.placement-button[aria-checked=true]{background:#61412f;border-color:#61412f;color:#fff;box-shadow:none}.placement-button{background:#fff;color:#61412f;border-color:rgba(0,0,0,.13)}.preview{background:#fff;border-color:rgba(0,0,0,.13);box-shadow:0 1rem 2.5rem rgba(97,65,47,.1)}.preview-data,.review-list,.review-list li{border-color:rgba(0,0,0,.13)}.sku,.preview-data,.help,.trust-note{color:rgba(97,65,47,.78)}html,body{max-width:100%;overflow-x:hidden}main{max-width:92rem;padding:clamp(.75rem,2vw,1.75rem)}.panel{padding:clamp(1rem,2vw,1.75rem)}h1{font-size:clamp(1.9rem,3.6vw,3.25rem);margin:0 0 .35rem}.eyebrow{margin:0}.notice{margin:.6rem 0}.trust-note{margin:.4rem 0}.progress{margin:.8rem 0 1rem;padding:.25rem;gap:.25rem;scrollbar-width:thin}.progress li{padding:.4rem .65rem;font-size:.85rem}.layout{grid-template-columns:minmax(18rem,35fr) minmax(0,65fr);gap:clamp(1rem,2vw,2rem);padding-top:1rem}.layout>*{min-width:0}.step{min-height:0;padding-right:0}.step h2{margin-bottom:.65rem}.products{grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem;margin:.4rem 0 .75rem}.product{display:flex;align-items:center;gap:.55rem;min-height:3.25rem;padding:.55rem .65rem;line-height:1.2}.product strong{margin:0;font-size:.95rem}.product input{flex:0 0 1.25rem;margin:0}.preview{padding:.75rem;border:0;box-shadow:none}.preview>h2{margin-bottom:.35rem}.preview-views{gap:.75rem}.preview-figure figcaption{font-size:.9rem}.actions{margin-top:.85rem;padding-top:0}.napkin-frame{min-height:clamp(16rem,34vw,34rem)}#dual-preview .napkin-frame{min-height:clamp(14rem,27vw,28rem)}@media(max-width:48rem){main{padding:.5rem}.panel{padding:.75rem}.layout{grid-template-columns:1fr;padding-top:.5rem}.preview{order:-1;position:static;min-height:45dvh;max-height:55dvh;overflow:auto}.preview .napkin-frame{min-height:clamp(12rem,38dvh,25rem)}.products{grid-template-columns:repeat(2,minmax(0,1fr))}.progress{overflow-x:auto}.actions{position:static}.actions button{min-height:44px}}@media(max-width:390px){.panel{border-radius:10px}.preview{min-height:45dvh}.product{font-size:.88rem}.progress li{font-size:.78rem}}@media(max-width:375px){.products{grid-template-columns:1fr}.product{min-height:44px}.preview .napkin-frame{min-height:45dvh}}@media(max-width:320px){main{padding:.25rem}.panel{padding:.5rem}.progress li{padding:.35rem .5rem}.preview{max-height:52dvh}}.layout{grid-template-columns:minmax(14rem,20fr) minmax(0,80fr)}.quantity-price{display:grid;grid-template-columns:5rem minmax(0,1fr);align-items:center;gap:.5rem}.quantity-price input{margin:0}.quantity-price output{min-width:0;font-size:.8rem;font-weight:700;color:var(--primary);white-space:nowrap}.step .products{grid-template-columns:1fr}.step .product{min-height:2.75rem;padding:.45rem .55rem}.step .product strong{font-size:.88rem}#dual-preview .finished{width:84%}#dual-preview .finished[data-orientation=DIAMOND]{transform:rotate(45deg) scale(.82)}@media(max-width:48rem){.layout{grid-template-columns:1fr}.quantity-price{grid-template-columns:minmax(6rem,9rem) 1fr}.quantity-price output{font-size:1rem}.step .products{grid-template-columns:repeat(2,minmax(0,1fr))}#dual-preview .finished{width:76%}#dual-preview .finished[data-orientation=DIAMOND]{transform:rotate(45deg) scale(.8)}}.progress li{flex:1 0 auto;padding:0}.progress button{width:100%;min-height:44px;padding:.4rem .7rem;border:1px solid transparent;border-radius:999px;background:#fff;color:#61412f;font-size:.85rem;white-space:nowrap}.progress button:hover{border-color:rgba(97,65,47,.45);filter:none}.progress button:active{background:#f5e8df}.progress button[data-state=completed]{border-color:rgba(97,65,47,.3);background:#fcf4ee}.progress button[aria-current=step]{border-color:#61412f;background:#61412f;color:#fff}.progress button:focus-visible{outline:3px solid #61412f;outline-offset:2px}@media(max-width:390px){.progress button{min-height:44px;padding:.35rem .55rem;font-size:.78rem}}.physical-coordinate-layer{position:absolute;inset:0;z-index:2;pointer-events:none}.physical-coordinate-layer .artwork-image{pointer-events:auto}.crop-editor{margin:.75rem 0;padding:1rem;border:1px solid rgba(0,0,0,.13);border-radius:8px;background:#fcf4ee}.crop-editor canvas{display:block;width:100%;max-height:18rem;touch-action:none;border:1px solid rgba(0,0,0,.2);background:#fff}.crop-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem}.crop-controls label{font-size:.85rem}.crop-controls input{width:100%}@media(max-width:390px){.crop-controls{grid-template-columns:1fr}}.napkin{--anchor-center-x:50%;--anchor-center-y:50%}.napkin .artwork-image,.napkin .preview-text{left:var(--anchor-center-x);top:var(--anchor-center-y);right:auto;bottom:auto;transform:translate(-50%,-50%)}#single-preview .napkin{--physical-inset:8.7489%}#dual-preview .finished{--physical-inset:12.7953%}#dual-preview .unfolded{--physical-inset:5.9055%;--anchor-center-x:75%;--anchor-center-y:75%}#single-preview .artwork-image{max-width:calc(66.6667% * var(--art-scale));max-height:calc(66.6667% * var(--art-scale))}#single-preview .preview-text{max-width:66.6667%;max-height:66.6667%}#dual-preview .finished .artwork-image{max-width:calc(75.0000% * var(--art-scale));max-height:calc(75.0000% * var(--art-scale))}#dual-preview .finished .preview-text{max-width:75.0000%;max-height:75.0000%}.napkin[data-placement=TOP_LEFT] .artwork-image,.napkin .preview-text[data-placement=TOP_LEFT],.napkin[data-placement=TOP_CORNER] .artwork-image,.napkin .preview-text[data-placement=TOP_CORNER]{left:var(--physical-inset);top:var(--physical-inset);right:auto;bottom:auto;transform:none}.napkin[data-placement=TOP_CENTER] .artwork-image,.napkin .preview-text[data-placement=TOP_CENTER]{left:var(--anchor-center-x);top:var(--physical-inset);right:auto;bottom:auto;transform:translateX(-50%)}.napkin[data-placement=TOP_RIGHT] .artwork-image,.napkin .preview-text[data-placement=TOP_RIGHT],.napkin[data-placement=RIGHT_CORNER] .artwork-image,.napkin .preview-text[data-placement=RIGHT_CORNER]{left:auto;top:var(--physical-inset);right:var(--physical-inset);bottom:auto;transform:none}.napkin[data-placement=CENTER] .artwork-image,.napkin .preview-text[data-placement=CENTER]{left:var(--anchor-center-x);top:var(--anchor-center-y);right:auto;bottom:auto;transform:translate(-50%,-50%)}.napkin[data-placement=BOTTOM_LEFT] .artwork-image,.napkin .preview-text[data-placement=BOTTOM_LEFT],.napkin[data-placement=LEFT_CORNER] .artwork-image,.napkin .preview-text[data-placement=LEFT_CORNER]{left:var(--physical-inset);top:auto;right:auto;bottom:var(--physical-inset);transform:none}.napkin[data-placement=BOTTOM_CENTER] .artwork-image,.napkin .preview-text[data-placement=BOTTOM_CENTER]{left:var(--anchor-center-x);top:auto;right:auto;bottom:var(--physical-inset);transform:translateX(-50%)}.napkin[data-placement=BOTTOM_RIGHT] .artwork-image,.napkin .preview-text[data-placement=BOTTOM_RIGHT],.napkin[data-placement=BOTTOM_CORNER] .artwork-image,.napkin .preview-text[data-placement=BOTTOM_CORNER]{left:auto;top:auto;right:var(--physical-inset);bottom:var(--physical-inset);transform:none}.napkin[data-orientation=DIAMOND][data-placement=TOP_LEFT] .artwork-image,.napkin[data-orientation=DIAMOND] .preview-text[data-placement=TOP_LEFT],.napkin[data-orientation=DIAMOND][data-placement=TOP_RIGHT] .artwork-image,.napkin[data-orientation=DIAMOND] .preview-text[data-placement=TOP_RIGHT],.napkin[data-orientation=DIAMOND][data-placement=BOTTOM_LEFT] .artwork-image,.napkin[data-orientation=DIAMOND] .preview-text[data-placement=BOTTOM_LEFT],.napkin[data-orientation=DIAMOND][data-placement=BOTTOM_RIGHT] .artwork-image,.napkin[data-orientation=DIAMOND] .preview-text[data-placement=BOTTOM_RIGHT],.napkin[data-orientation=DIAMOND][data-placement$=CORNER] .artwork-image,.napkin[data-orientation=DIAMOND] .preview-text[data-placement$=CORNER]{transform:rotate(-45deg)}.napkin[data-orientation=DIAMOND][data-placement=TOP_CENTER] .artwork-image,.napkin[data-orientation=DIAMOND] .preview-text[data-placement=TOP_CENTER],.napkin[data-orientation=DIAMOND][data-placement=BOTTOM_CENTER] .artwork-image,.napkin[data-orientation=DIAMOND] .preview-text[data-placement=BOTTOM_CENTER]{transform:translateX(-50%) rotate(-45deg)}.napkin[data-orientation=DIAMOND][data-placement=CENTER] .artwork-image,.napkin[data-orientation=DIAMOND] .preview-text[data-placement=CENTER]{transform:translate(-50%,-50%) rotate(-45deg)}#dual-preview .unfolded .artwork-image{max-width:calc(37.5000% * var(--art-scale));max-height:calc(37.5000% * var(--art-scale))}#dual-preview .unfolded .preview-text{max-width:37.5000%;max-height:37.5000%}#designer-form{min-width:0}#designer-form .step{min-width:0}#designer-form label,#designer-form legend{font-size:.86rem}#designer-form input,#designer-form select,#designer-form textarea{min-width:0}#designer-form button{min-width:0;min-height:42px;padding:.5rem .55rem;font-size:.78rem;line-height:1.2}#designer-form .actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(4.25rem,1fr));align-items:center;gap:.4rem;margin-top:.65rem}#designer-form .actions button:last-child{margin-left:0}.napkin-color-select#napkin-color{position:static;width:100%!important;height:2.75rem!important;overflow:visible;clip:auto;white-space:normal;margin:.25rem 0 .6rem;padding:.45rem}.swatches{display:none}.drop-zone{padding:.65rem;margin:.3rem 0 .65rem;text-align:left}.drop-zone p{margin:.15rem 0 .35rem;font-size:.75rem;line-height:1.35}.drop-zone input[type=file]{min-height:2.5rem;margin:0;padding:.35rem;font-size:.7rem}.placement-buttons{grid-template-columns:repeat(2,minmax(0,1fr));gap:.3rem}.placement-buttons[data-layout=map]{grid-template-columns:repeat(3,minmax(0,1fr));gap:.25rem}.placement-buttons .placement-button{min-height:40px;padding:.3rem .15rem;font-size:.68rem;overflow-wrap:anywhere}.crop-editor{padding:.6rem}.crop-controls{grid-template-columns:1fr}.text-settings{grid-template-columns:1fr;gap:.35rem}.step .help{font-size:.72rem;line-height:1.35;margin:.35rem 0}.step h2{font-size:1.35rem}@media(max-width:48rem){#designer-form button{min-height:44px;font-size:.85rem}.napkin-color-select#napkin-color{height:3rem!important}.drop-zone{padding:1rem}.placement-buttons .placement-button{min-height:44px;font-size:.78rem}}.creative-choice{display:grid;gap:.55rem;margin:.5rem 0;padding:0;border:0}.creative-choice legend{margin-bottom:.35rem}.creative-choice label{display:flex;align-items:center;gap:.55rem;min-height:46px;padding:.65rem .75rem;border:1px solid rgba(0,0,0,.13);border-radius:8px;background:#fff;cursor:pointer}.creative-choice label:has(input:checked){border-color:#61412f;background:#fcf4ee;box-shadow:inset 0 0 0 1px #61412f}.creative-choice input{width:1.15rem;height:1.15rem;margin:0;accent-color:#61412f}.step:focus{outline:none}.napkin-color-select#napkin-color{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;margin:0!important;padding:0!important}.swatch-dropdown-toggle{display:grid;grid-template-columns:2rem minmax(0,1fr) 1rem;align-items:center;gap:.55rem;width:100%;min-height:52px!important;padding:.45rem .6rem!important;background:#fff!important;color:#61412f!important;border:1px solid rgba(97,65,47,.35)!important;text-align:left}.swatch-dropdown-toggle[aria-expanded=true]{border-color:#61412f!important;border-radius:6px 6px 0 0}.swatch-dropdown-chip{width:2rem;height:2rem;border:1px solid #817a70;border-radius:50%;background-position:center;background-size:150% 150%}.swatch-dropdown-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.82rem}.swatch-dropdown-arrow{font-size:.72rem;text-align:center;transition:transform .15s}.swatch-dropdown-toggle[aria-expanded=true] .swatch-dropdown-arrow{transform:rotate(180deg)}.swatch-dropdown-panel{position:relative;z-index:5;margin-top:-1px;padding:.35rem;border:1px solid #61412f;border-radius:0 0 6px 6px;background:#fff;box-shadow:0 .7rem 1.4rem rgba(49,43,35,.16)}.swatches{display:grid;grid-template-columns:1fr;grid-auto-rows:3.5rem;gap:.35rem;max-height:21rem;margin:0;padding:.05rem .2rem .05rem .05rem;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}.swatches .swatch{grid-template-columns:2rem minmax(0,1fr) 1rem;width:100%;height:3.5rem;min-height:52px;padding:.4rem .55rem;gap:.55rem;border-width:1px;border-radius:6px}.swatches .swatch-chip{width:2rem;height:2rem}.swatches .swatch-label{display:block;max-height:none;font-size:.8rem;line-height:1.15;-webkit-line-clamp:unset}.swatches .swatch-check{font-size:.9rem}@media(max-width:48rem){.swatch-dropdown-toggle{min-height:56px!important}.swatches{max-height:18rem}.swatches .swatch{min-height:54px}}#designer-form button.swatch-dropdown-toggle,#designer-form .swatches button.swatch,#designer-form .swatches button.swatch[aria-checked=true]{background:#e2dcd3!important;color:#61412f!important}.swatch-dropdown-panel{background:#fcf4ee}.swatches .swatch[aria-checked=true]{border-color:#61412f!important;box-shadow:inset 0 0 0 1px #61412f!important}.need-help-button{min-height:42px;padding:.45rem .8rem;margin:.1rem 0 .45rem;background:#fff;color:#61412f;border:1px solid rgba(97,65,47,.45);box-shadow:none}.design-help-dialog{width:min(34rem,calc(100% - 2rem));max-height:calc(100dvh - 2rem);padding:0;border:0;border-radius:14px;color:#61412f;background:#fff;box-shadow:0 1.5rem 4rem rgba(49,43,35,.3)}.design-help-dialog::backdrop{background:rgba(35,24,18,.55)}.design-help-content{padding:clamp(1rem,4vw,2rem)}.design-help-header{display:flex;align-items:start;justify-content:space-between;gap:1rem}.design-help-header h2{margin:0}.design-help-close{min-width:44px;min-height:44px;padding:.25rem;background:#fff;color:#61412f;border:1px solid rgba(97,65,47,.25);box-shadow:none}.design-help-call{display:block;margin:.85rem 0;padding:.8rem;border:1px solid rgba(97,65,47,.2);border-radius:8px;background:#fcf4ee;color:#61412f;font-weight:700;text-align:center}.design-help-form{display:grid;gap:.55rem}.design-help-form input,.design-help-form textarea{width:100%;margin:.2rem 0 .25rem;padding:.65rem;border:1px solid rgba(97,65,47,.3);border-radius:6px}.design-help-form textarea{resize:vertical}.design-help-form button{margin-top:.35rem}.design-help-note{font-size:.78rem;color:rgba(97,65,47,.78)}@media(max-width:390px){.design-help-content{padding:1rem}.design-help-dialog{width:calc(100% - 1rem);max-height:calc(100dvh - 1rem)}}.step .help,.step .trust-note{display:none}.drop-zone{display:grid;gap:.45rem}.drop-zone label,.drop-zone p{margin:0}.drop-zone input[type=file]{margin:0}#crop-artwork{display:block;width:100%;margin:.45rem 0 .75rem}#crop-artwork+label[for=logo-color]{display:block;margin-top:0}@media(max-width:48rem){html,body{scrollbar-width:none}html::-webkit-scrollbar,body::-webkit-scrollbar{display:none}.preview{min-height:0;max-height:none;overflow:visible}.progress{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));overflow:visible;scrollbar-width:none}.progress li{min-width:0}.progress button{min-width:0;padding:.35rem!important;font-size:0}.progress li:nth-child(1) button::before{content:"1"}.progress li:nth-child(2) button::before{content:"2"}.progress li:nth-child(3) button::before{content:"3"}.progress li:nth-child(4) button::before{content:"4"}.progress li:nth-child(5) button::before{content:"5"}.progress li:nth-child(6) button::before{content:"6"}.progress li:nth-child(7) button::before{content:"7"}.progress button::before{font-size:.85rem}.preview .napkin-frame{width:100%;justify-items:center;overflow:visible}}.napkin[data-interaction=position]{cursor:crosshair;touch-action:none}.napkin[data-interaction=size] .artwork-image.ready{cursor:nwse-resize;touch-action:none;outline:none}.napkin[data-interaction=size] .artwork-image.ready:active{cursor:nwse-resize}.size-position-note{margin:.5rem 0 1rem;padding:.75rem;border-left:3px solid #61412f;background:#fcf4ee;font-size:.82rem;line-height:1.4}body{background:#f8f3ef}main{max-width:96rem;padding:clamp(.75rem,1.6vw,1.5rem)}.panel{padding:clamp(1rem,1.8vw,1.75rem);border:1px solid rgba(97,65,47,.1);border-radius:22px;box-shadow:0 18px 55px rgba(70,43,29,.09)}.panel>.eyebrow{font-size:.7rem;letter-spacing:.24em}.panel>h1{max-width:none;margin:.05rem 0 .25rem;font-size:clamp(2rem,3.1vw,3rem);line-height:1}.panel>h1+u,.panel>h1+p{max-width:52rem;margin:.65rem 0;color:rgba(97,65,47,.78);font-size:.92rem}.panel>.notice{margin:.5rem 0;padding:.55rem .75rem;border:0;border-radius:8px;background:#faf4ef;font-size:.8rem}.need-help-button{margin:0 0 .5rem;padding:.35rem .7rem!important;border:0!important;background:transparent!important;text-decoration:underline;text-underline-offset:3px;font-size:.75rem!important}.progress{margin:.45rem 0 .8rem;padding:.3rem;border:0;border-radius:12px;background:#f7f3ef;box-shadow:inset 0 0 0 1px rgba(97,65,47,.08)}.progress button{min-height:38px;padding:.35rem .55rem;border-radius:8px;font-size:.76rem;font-weight:600}.progress button[aria-current=step]{box-shadow:0 4px 12px rgba(97,65,47,.18)}.layout{gap:clamp(1rem,1.8vw,1.75rem);padding-top:.75rem;border-color:rgba(97,65,47,.09)}#designer-form{align-self:start}.step{padding:.85rem;border:1px solid rgba(97,65,47,.09);border-radius:12px;background:#fcfbfa}.step h2{margin-bottom:.6rem;font-size:1.25rem}.step .products{gap:.4rem}.step .product{min-height:44px;padding:.45rem .55rem;border:1px solid rgba(97,65,47,.16);border-radius:8px}.step .product:has(input:checked){box-shadow:0 5px 12px rgba(97,65,47,.12)}.quantity-price{padding-top:.15rem}.quantity-price input{border-color:rgba(97,65,47,.16)}#designer-form button{border-radius:8px;transition:transform .15s ease,background-color .15s ease,border-color .15s ease}#designer-form button:hover:not(:disabled){transform:translateY(-1px)}.preview{padding:.25rem .5rem .5rem}.preview>h2{font-size:1.2rem;letter-spacing:-.01em}.preview-figure figcaption{color:rgba(97,65,47,.75);font-family:Poppins,Arial,sans-serif;font-size:.72rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.preview-data{margin:.35rem 0 0;padding:.55rem 0;font-size:.76rem}#preview-status{min-height:0;margin:.4rem 0 0;padding:.5rem .65rem;font-size:.72rem}.size-position-note{border:0;border-radius:8px;background:#f6efe9}@media(max-width:48rem){main{padding:0}.panel{padding:.7rem;border:0;border-radius:0;box-shadow:none}.panel>h1{font-size:1.8rem}.panel>h1+p{font-size:.8rem}.panel>.notice{font-size:.72rem}.progress{position:sticky;top:0;z-index:10;margin:.35rem 0 .6rem;background:rgba(247,243,239,.96);backdrop-filter:blur(8px)}.progress button{min-height:42px}.layout{gap:.65rem}.step{padding:.75rem}.preview{padding:0}.preview>h2{font-size:1.05rem}}@media(prefers-reduced-motion:reduce){#designer-form button{transition:none}}
.brand-logo{display:block;width:320px;max-width:100%;height:auto;margin-bottom:1rem}header .brand-logo{margin:0;max-width:70%}
html body{background:#fcf4ee}
body .panel,body .preview,body .progress,body .card,body header,body .proof,body .napkin-frame,body .preview-figure{background:#fcf4ee;box-shadow:none}
body .preview,body .preview .napkin-frame,body .preview .preview-figure,body .proof{background:#e2dcd3}
body .products .product{background:#e2dcd3;color:#61412f}
body .products .product:has(input:checked){background:#e2dcd3;color:#61412f;border-color:#61412f;box-shadow:inset 0 0 0 1px #61412f}
body .preview,body .proof{border-radius:12px}
#dual-preview .napkin,#single-preview .napkin,.proof-product{filter:drop-shadow(0 6px 9px rgba(97,65,47,.13))}
#dual-preview .unfolded>.napkin-base,#dual-preview .unfolded .quarter-glue{display:none!important}
#dual-preview .unfolded .flat-quarter-face,#dual-preview .unfolded .flat-quarter-face[data-white=true]{background-size:121.2766% 121.2766%;background-position:50% 50%}
#dual-preview .unfolded .flat-quarter-face::after{clip-path:polygon(evenodd,0 0,100% 0,100% 100%,0 100%,0 0,4.9213% 4.9213%,4.9213% 95.0787%,95.0787% 95.0787%,95.0787% 4.9213%,4.9213% 4.9213%)}
.proof:has(.proof-product){aspect-ratio:auto;padding:clamp(1.5rem,4vw,2.5rem);overflow:hidden}
.proof .proof-product,.proof .proof-product.quarter-fold{width:100%;max-width:none}
.proof .proof-product.quarter-fold{margin-top:12%}
.proof:has(.proof-product[data-orientation=DIAMOND]){padding:18%}
.flat-quarter-face{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden;background-repeat:no-repeat;background-size:139.3333% 139.3333%;background-position:39.5480% 48.0226%}
.flat-quarter-face[data-white=true]{background-size:129.2784% 129.2784%;background-position:38.7324% 49.2958%}
.flat-quarter-face::after{content:'';position:absolute;inset:0;background:rgba(255,255,255,.075);clip-path:polygon(90.1575% 0,100% 0,100% 100%,0 100%,0 90.1575%,90.1575% 90.1575%)}
.flat-quarter-face[data-white=true]::after{background:rgba(255,255,255,.38)}
.flat-quarter-flap{position:absolute;z-index:0;left:0;top:-8%;width:90%;height:10%;overflow:hidden;transform:none;clip-path:polygon(0 80%,100% 0,100% 100%,0 100%);background-repeat:no-repeat;background-color:#151515;background-size:139.3333% 1393.3333%;background-position:39.5480% 48.0226%}
.flat-quarter-flap[data-white=true]{background-color:#fff;background-size:129.2784% 1292.784%;background-position:38.7324% 49.2958%}
.proof-product.quarter-fold::before,.proof-product.quarter-fold::after,#dual-preview .finished .quarter-glue{display:none!important}
.proof-product.quarter-fold>img,#dual-preview .finished>.napkin-base{display:none!important}
#dual-preview .unfolded .quarter-glue-left,#dual-preview .unfolded .quarter-glue-right{top:4.9213%;height:90.1574%}
body button:not([data-prev]):not([data-next]):not([data-progress]),
body select,
body .creative-choice label,
body .creative-choice label:has(input:checked){
background:#e2dcd3;color:#61412f;
}
body button:not([data-prev]):not([data-next]):not([data-progress]):hover:not(:disabled){
background:#d8d0c5;
}
body button[aria-checked=true],body button[aria-pressed=true],
body .creative-choice label:has(input:checked){
border-color:#61412f;box-shadow:inset 0 0 0 1px #61412f;
}
body input[type=file]::file-selector-button{
background:#e2dcd3;color:#61412f;border:1px solid #61412f;
border-radius:6px;padding:.45rem .65rem;cursor:pointer;
}
body .progress button[data-state=available]{background:#e2dcd3;color:#61412f}
body .progress button[data-state=completed]{background:#61412f;color:#fff}
body .progress button[data-state=active]{background:#61412f;color:#fff}
.products .product{min-width:0;position:relative;gap:.3rem}.style-thumbnail{display:grid;place-items:center;width:100%;height:3.5rem;overflow:hidden}.style-thumbnail img{display:block;width:3.3rem;height:3.3rem;object-fit:contain}.style-thumbnail[data-orientation=DIAMOND] img{transform:rotate(45deg) scale(.72)}.products .product strong{font-size:.75rem;line-height:1.25}.products .product::before,.products .product::after{content:none!important}@media(max-width:390px){.style-thumbnail{height:3rem}.style-thumbnail img{width:2.8rem;height:2.8rem}}#selection-summary{text-align:center}body .preview{padding:.5rem}body .preview .napkin-frame{align-items:start;padding-top:1%;min-height:0}body #dual-preview .preview-figure:last-child{padding:0}body #dual-preview .preview-figure:last-child .napkin-frame{padding-top:7%}body .preview .napkin-frame:has(.napkin[data-orientation=DIAMOND]){padding-top:9%}body .preview-figure figcaption{margin-bottom:.15rem}body .preview #preview-title{margin-bottom:.2rem}@media(max-width:600px){body .progress{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;padding:0;overflow:visible}body .progress li{min-width:0;padding:0}body .progress button[data-progress]{width:100%;min-width:0;min-height:44px;padding:0;font-size:0;white-space:nowrap}body .progress button[data-progress]::after{content:attr(data-mobile-number);font-size:15px;font-weight:700}body .progress button[data-progress]::before{content:none}}body main{padding:clamp(.5rem,1.2vw,1rem);max-width:90rem}body .panel{padding:clamp(.65rem,1.3vw,1.2rem)}body .brand-logo{width:260px;margin-bottom:.25rem}body #designer-title{font-size:clamp(1.35rem,2.2vw,1.9rem);margin:.25rem 0 .5rem}body .progress{margin:.4rem 0 .65rem;padding:.25rem}body .layout{padding-top:.5rem}body .preview{top:.5rem}body #preview-title{margin:0 0 .35rem}body .need-help-button{width:100%;margin:.65rem 0 0;font-size:.78rem;min-height:40px;padding:.4rem}.preview-figure>figcaption{margin-top:0}.step-price-tiers{width:100%;border-collapse:collapse;font-size:.78rem;margin-top:1rem}.step-price-tiers caption{text-align:left;margin-bottom:.4rem}.step-price-tiers th,.step-price-tiers td{text-align:left;padding:.35rem .25rem;border-bottom:1px solid #ded4cb}.artwork-image{width:10000px;height:auto}</style><style>@font-face{font-family:'FSN Allura';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-742ae8b44933962b.ttf?v=62711763841644044211792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Alex Brush';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-c456447c1bd71eb4.ttf?v=166701314179322797781792598693') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Great Vibes';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-8f9ae5c089dbdc8b.ttf?v=110976541023144944701792598698') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Dancing Script';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-53115fdd6c4e0db7.ttf?v=96539126877422645381792598693') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Parisienne';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-f21e72294f23e55c.ttf?v=156121197927213002021792598699') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Sacramento';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-315a730f5b977d5e.ttf?v=36296335218408699491792598693') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Tangerine';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-21b16cd987b99842.ttf?v=85618067002455365451792598699') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Pinyon Script';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-8d64bf7ff4dd36bc.ttf?v=28667827718570218711792598696') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Petit Formal Script';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-24ef2aa6f687f438.ttf?v=102002411652703374211792598693') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Italianno';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-92a1c66dd36fd913.ttf?v=70708283558464594081792598698') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN MonteCarlo';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-535c65727c21db82.ttf?v=44434035923441042161792598699') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Ballet';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-baf50b21ee0a2518.ttf?v=105611782098618584631792598693') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Carattere';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-255f69572f296034.ttf?v=16113381180654495631792598692') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Corinthia';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-9375a790e2a080c8.ttf?v=163292595627118604971792598698') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Ephesis';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-b9d3b632bb23cc2a.ttf?v=152342484246713585161792598693') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Imperial Script';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-a2baf1d3df478c58.ttf?v=88836669504990734051792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Inspiration';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-f1392c1f9b122cef.ttf?v=130993359860072770121792598694') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Island Moments';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-46e13daf54a8270a.ttf?v=143506943148864348691792598702') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Lavishly Yours';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-3dc888ecc1355545.ttf?v=112335617273663998061792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Luxurious Script';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-3d2b0de14072f1c0.ttf?v=155334766222551878671792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Mea Culpa';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-3942b1a3b41440e2.ttf?v=24079411301566080551792598693') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Ms Madi';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-450826783da7a351.ttf?v=35783339134387949751792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN My Soul';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-8e5be7009ecb2e73.ttf?v=146389582079499610551792598696') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Passions Conflict';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-2ef538c0198a0172.ttf?v=87336717343372874321792598693') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Qwitcher Grypen';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-06707cac4e0858b3.ttf?v=11470138892100135241792598698') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Rouge Script';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-08e7fc5ba030cb2b.ttf?v=131213689949205098341792598698') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Ruthie';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-f01c5cb859d8522e.ttf?v=140510567891039162531792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Sail';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-f2237fcd64b596e8.ttf?v=149513777304908500451792598699') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Send Flowers';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-0ebf1e397531cde4.ttf?v=103309040347819173201792598698') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Style Script';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-71fcf20943fd010f.ttf?v=20644438285745454171792598700') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN The Nautigal';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-a88b8080d8f3d2e4.ttf?v=156243587841087081961792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Whisper';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-2852568d6d5a1f6c.ttf?v=138900418596191237011792598692') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN WindSong';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-f2384ffda6364171.ttf?v=154676963622583295391792598694') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Zeyada';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-874bb2918ad61577.ttf?v=25353427727924407251792598692') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Bodoni Moda';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-1eeaca2d4f28635b.ttf?v=19667595242459860761792598699') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Bona Nova';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-0cdc1282de4a009b.ttf?v=42808535101526495271792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Baskervville';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-e3d7855875955186.ttf?v=33422168152613607201792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Cardo';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-e04a8c559704c6ac.ttf?v=24816832460990645491792598701') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Castoro';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-26fe98a5ee813a43.ttf?v=168309135139910536281792598692') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Cormorant';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-cd9efbdcf24e593f.ttf?v=61301648707647595921792598702') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Cormorant Garamond';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-d16c098f6c9674bc.ttf?v=83371704594933882811792598701') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Cormorant Infant';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-6a0edb8b3462e734.ttf?v=180032174440067305741792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Cormorant SC';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-bfc76f8f0d5c87cf.ttf?v=111668216952159431961792598702') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Crimson Pro';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-73dc2137934f716e.ttf?v=116303213499341353691792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Crimson Text';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-9abd01f199964cdd.ttf?v=118803239195286296011792598696') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN DM Serif Display';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-cfaca65befbe4a98.ttf?v=45200304808999866591792598701') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN DM Serif Text';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-9b78a2e6f369b4f1.ttf?v=105739609460032869891792598698') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN EB Garamond';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-49383fec763554ce.ttf?v=23969948321220150861792598698') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Gelasio';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-c6c2666559b6b873.ttf?v=81100255462994512021792598701') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN GFS Didot';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-20bd61aa19e89b8b.ttf?v=112866204750339084421792598699') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN GFS Neohellenic';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-75c318b2476ec78c.ttf?v=171435163963137628171792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Goudy Bookletter 1911';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-d76958b3821109a3.ttf?v=136966374058904408111792598701') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Libre Baskerville';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-6d7f11e0416be44b.ttf?v=59294338081977058251792598700') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Libre Caslon Display';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-4d06542306e43a00.ttf?v=177667643193962665261792598693') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Libre Caslon Text';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-a4bb09e352572f4b.ttf?v=4502897698264218031792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Lora';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-7a6ed08a93f5cc44.ttf?v=30378037756759831041792598691') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Marcellus';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-918bca8180e1eb34.ttf?v=100991609020034427611792598696') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Marcellus SC';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-4bf9edfdf7cc95d5.ttf?v=59727368278756427571792598693') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Mate';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-62580fa44dc6d6ce.ttf?v=16183908422578999161792598699') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Mate SC';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-33b9d65324dcddd4.ttf?v=140640527076468562651792598693') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Merriweather';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-9afc48d1261ec759.ttf?v=110466098047493906761792598704') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Old Standard TT';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-7bbce45f516cdb1d.ttf?v=12898869673739558561792598692') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Oranienbaum';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-462089b5befb14b4.ttf?v=183816919326012231081792598693') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Playfair Display';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-3c8b5c5915cf49e5.ttf?v=156900771871557335291792598693') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Prata';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-d98e97a9187fb84a.ttf?v=82076058820350264581792598701') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Spectral';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-6311780648048d53.ttf?v=53606817931032482211792598700') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Vidaloka';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-7fb344aa53c33e44.ttf?v=123486331042890962461792598696') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Vollkorn';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-6115c05112b38a5c.ttf?v=80619658514388360721792598699') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Zen Antique';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-2db08d28d81d1b8f.ttf?v=1185953347549977891792598704') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Abel';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-4e9480a839aeb223.ttf?v=50173240666284829611792598693') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Albert Sans';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-17c3983ca24188f1.ttf?v=154395084209575397671792598699') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Alegreya Sans';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-76d3b4d16dc28d7c.ttf?v=35047469614515161021792598696') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Archivo';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-282f8b4fe42108e0.ttf?v=179223703763874847121792598695') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Barlow';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-12c9e93e466d3438.ttf?v=68264603641060085741792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Cabin';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-5688b94e2aa7671a.ttf?v=125254851666504002051792598700') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Catamaran';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-168eba82568a2c6c.ttf?v=158572094331838671931792598699') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Comfortaa';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-5a509252de407e26.ttf?v=112467871030662087741792598699') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN DM Sans';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-fac6bea5878ad0a9.ttf?v=166379664804726079451792598694') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Dosis';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-ec2266f7aec1c23e.ttf?v=76802499011249459351792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Figtree';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-29fdc285a2c35f2b.ttf?v=11472292947819445471792598692') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Hind';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-0eda41d0eadfe9d6.ttf?v=45017562437187118831792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Josefin Sans';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-48012f8416835eaf.ttf?v=127013085609623308011792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Jost';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-f65c829856bd2ed1.ttf?v=183435249023416641461792598694') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Karla';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-e9ba4033763a7b80.ttf?v=147705510899012528421792598699') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Lato';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-2a9d94b189fe936d.ttf?v=153774823320988706841792598702') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Lexend';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-b7e2c1c5c0b7b69f.ttf?v=13657402211165389251792598693') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Manrope';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-9d71b4a82536ee94.ttf?v=83006943765959408671792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Montserrat';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-a8529fc065532641.ttf?v=110915486518816407541792598702') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Mulish';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-add8e39db4d503fc.ttf?v=180610838837634692821792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Nunito';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-84609b21f0d3dcc5.ttf?v=5340025479178387021792598692') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Outfit';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-eb57b15152535fa0.ttf?v=129979305287943743241792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Overpass';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-e935928e151d47fe.ttf?v=147729238749668454261792598699') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Poppins';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-0504de149c51e7a1.ttf?v=174136422395001362671792598698') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Quicksand';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-e744696f02dc97c8.ttf?v=13092166534266601351792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Raleway';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-2534bfe550294b81.ttf?v=133889903812189181251792598692') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Rubik';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-49f7a9567eadc34a.ttf?v=152709060103384737251792598693') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Sora';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-1118463880cef3bd.ttf?v=149166624278842846181792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Urbanist';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-b6d4d30f0b704e4b.ttf?v=155615845750785390461792598693') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Work Sans';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-501a2be4c3072072.ttf?v=41060341685101602801792598699') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Cinzel';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-bfff82582cd32e12.ttf?v=80341436578676719401792598693') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Cinzel Decorative';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-a42e4635e0af5c57.ttf?v=168716321138649252221792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Forum';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-200020723b3b75bf.ttf?v=131168877302068736501792598692') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Julius Sans One';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-a8c26c1e849beb70.ttf?v=66148933334108391451792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Poiret One';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-21eba65ab63534b3.ttf?v=66071503486489037981792598699') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Bebas Neue';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-051555b2e2f2e052.ttf?v=132338557589106843241792598698') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Italiana';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-0ab53a38a2043353.ttf?v=71997980154565273681792598698') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Limelight';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-e90e8b875bf0a2a4.ttf?v=56909025440532447591792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Yeseva One';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-e57c8e411810c10d.ttf?v=64723190978888310141792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Elsie';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-658f109cc83ca74c.ttf?v=154084828427890946631792598700') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Fredericka the Great';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-e7689f8bd47a8124.ttf?v=132969003172267235631792598699') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Abril Fatface';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-d02c2e7b62e042ad.ttf?v=121698375872806581451792598701') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Berkshire Swash';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-cd4071842606e622.ttf?v=39942617747310626021792598693') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Uncial Antiqua';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-6a86096c190e002f.ttf?v=123269911828272479571792598700') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Almendra';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-182db9419693a297.ttf?v=149067148003942633851792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Courier Prime';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-0b665171f475d74e.ttf?v=78242485154966555621792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Five Star Typewriter';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-705875eec8a7fc32.ttf?v=116368495160023841481792598700') format('truetype');font-weight:400;font-style:normal;font-display:block}.font-picker summary{background:#e2dcd3;border:1px solid #aa9d92;border-radius:6px;padding:12px;font-size:22px;cursor:pointer;min-height:48px}.font-picker-list{max-height:320px;overflow-y:auto;background:#fcf4ee;padding:6px}.font-picker-list .font-picker-option{display:block;width:100%;font-family:var(--font-preview-family)!important;font-size:24px;font-weight:400;text-align:left;min-height:48px;margin:4px 0;white-space:normal}.font-picker-list p{font:600 12px Arial,sans-serif;margin:12px 4px 6px}</style><style>
.text-alignment{border:0;padding:0;margin:.35rem 0 1rem}
.text-alignment-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.4rem;margin-top:.35rem}
.text-alignment-options label{position:relative;display:flex;align-items:center;justify-content:center;min-height:44px;padding:.35rem;border:1px solid #aa9d92;border-radius:6px;background:#fff;cursor:pointer}
.text-alignment-options input{position:absolute;opacity:0;pointer-events:none}
.text-alignment-options svg{width:1.45rem;height:1.45rem;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.text-alignment-options label:has(input:checked){border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}
.text-alignment-options label:focus-within{outline:3px solid var(--focus);outline-offset:2px}
@media(max-width:35rem){.text-alignment-options{grid-template-columns:repeat(2,minmax(0,1fr))}}
</style><style>#single-preview .napkin-base{inset:-9%;width:118%;height:118%;max-width:none;max-height:none;object-fit:cover;clip-path:inset(1%)}</style><style>@media(max-width:52rem){body .step,body #approval,body .quantity-tiers,body .step-price-tiers{font-size:14px;line-height:1.4}body .step h2,body #approval h2{font-size:1.2rem;margin-bottom:.75rem}body .step label,body .step legend,body #approval label{font-size:14px}body .step input:not([type=radio]):not([type=checkbox]),body .step select,body .step textarea,body #approval select{font-size:16px;min-height:44px;padding:.5rem .65rem;margin:.25rem 0 .65rem}body .step button,body #approval button{font-size:14px;min-height:44px;padding:.45rem .65rem}body .step .actions{gap:.5rem;margin-top:.75rem;padding-top:0}body .step .products{gap:.5rem}body .step .product{min-height:0;padding:.65rem}body .step .product strong{font-size:1rem;margin:.2rem 0}body .step .text-settings{gap:.6rem}body .step .drop-zone{padding:1rem;margin:.5rem 0 .75rem}body .step .placement-buttons{gap:.4rem}body .step .font-picker summary{font-size:16px;min-height:44px;padding:.5rem .65rem}body .progress{margin:1rem 0;padding:.3rem}body .progress li{font-size:13px;padding:.4rem .6rem}body .progress button{font-size:13px;min-height:44px;padding:.4rem .6rem}}</style><style>@media(max-width:52rem){body main{padding-top:0;padding-bottom:0}body main>.panel{padding-top:.25rem;padding-bottom:.25rem}body h1{margin-top:0;margin-bottom:.2rem}body .progress{margin-top:.25rem;margin-bottom:.4rem;padding:.1rem}body .layout{padding-top:.4rem}}</style><style>@media(max-width:52rem){body #step-6{font-size:13px}body #step-6 h2{font-size:1.1rem;margin-bottom:.5rem}body #step-6 label,body #step-6 legend{font-size:13px}body #step-6 select{min-height:40px;margin:.15rem 0 .45rem;padding:.4rem .55rem;font-size:15px}body #step-6 .placement-buttons{gap:.3rem;margin:.35rem 0 .55rem}body #step-6 .placement-buttons .placement-button{min-height:40px;padding:.3rem .25rem;font-size:12px;line-height:1.1}body #step-6 .actions{margin-top:.5rem;gap:.4rem}body #step-6 .actions button{min-height:42px;padding:.35rem .5rem;font-size:13px}}</style><style>@media(max-width:52rem){body .layout>.step{padding:0 0 .5rem}body .layout>.step h2{font-size:1.1rem;margin:.15rem 0 .5rem}body .layout>.step h3{font-size:1rem;margin:.5rem 0 .35rem}body .layout>.step fieldset{margin:.4rem 0;padding:0}body .layout>.step label,body .layout>.step legend{font-size:13px}body .layout>.step input:not([type=radio]):not([type=checkbox]),body .layout>.step select,body .layout>.step textarea{min-height:40px;padding:.4rem .55rem;margin:.15rem 0 .45rem;font-size:15px}body .layout>.step .actions{margin-top:.5rem;gap:.4rem}body .layout>.step .actions button{min-height:42px;padding:.35rem .5rem;font-size:13px}body .layout>.step .notice{padding:.5rem .65rem;margin:.5rem 0;font-size:13px}body .layout>.step .drop-zone{padding:.75rem;margin:.4rem 0 .6rem}body .layout>.step .text-settings{gap:.45rem}body .layout>.step .products{gap:.3rem;margin:.3rem 0 .55rem}}</style><style>body .preview .preview-figure>figcaption{margin-bottom:.75rem}</style><style>@media(max-width:52rem){body .step .products{grid-template-columns:1fr;gap:.35rem}body .step .products .product{display:grid;grid-template-columns:20px 28px minmax(0,1fr);gap:.5rem;min-height:44px;padding:.35rem .55rem}body .step .products .product strong{font-family:inherit;font-size:14px;line-height:1.25;margin:0}body .step .products .style-thumbnail{width:28px;height:28px}body .step .products .style-thumbnail img{width:28px;height:28px}}</style><style>@media(max-width:60rem){body .step .products{grid-template-columns:1fr!important;gap:.35rem!important}body .step .products .product{display:grid!important;grid-template-columns:20px 28px minmax(0,1fr)!important;align-items:center;min-height:44px!important;padding:.35rem .55rem!important}body .step .products .product strong{font-family:inherit;font-size:14px;line-height:1.25;margin:0}body .step .products .style-thumbnail{width:28px;height:28px}body .step .products .style-thumbnail img{width:28px;height:28px}}</style><style>body .step input[type=text],body .step input[type=number],body .step input[type=search],body .step select,body .step textarea{border:1px solid #aa9d92!important;border-radius:6px!important;box-shadow:none}body .step input[type=text]:focus,body .step input[type=number]:focus,body .step input[type=search]:focus,body .step select:focus,body .step textarea:focus{border-color:#61412f!important;outline:2px solid #d9c5b7;outline-offset:1px}</style><style>@media(max-width:52rem){body .layout>.step-price-tiers{order:2;margin-top:0}}</style><style>@media(max-width:52rem){body #selection-summary{font-size:12px;line-height:1.3;margin:.35rem 0 .5rem;padding:.35rem 0}body #selection-summary+ #preview-status{font-size:12px;min-height:0;padding:.35rem;margin:0}}</style><style>body #custom-text,body #text-size{border:1px solid #aa9d92;border-radius:6px}body .preview .napkin-frame,body .preview #dual-preview .preview-figure:last-child .napkin-frame,body .preview .napkin-frame:has(.napkin[data-orientation=DIAMOND]){aspect-ratio:auto;min-height:0;align-items:center;padding-block:3%}</style><style>@media(max-width:52rem){body .preview .napkin-frame:has(.napkin[data-orientation=DIAMOND]){padding-block:6%}}</style><style>body .preview #dual-preview .preview-figure:last-child .napkin-frame{padding-top:8%;padding-bottom:2%}</style><style>body .preview #dual-preview .preview-figure:last-child .napkin-frame:has(.finished[data-orientation=DIAMOND]){padding-top:12%;padding-bottom:12%}</style><style>body .preview #dual-preview .preview-figure:last-child{overflow:visible}</style><style>@font-face{font-family:'FSN Courier Prime';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-0b665171f475d74e.ttf?v=78242485154966555621792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Five Star Typewriter';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-705875eec8a7fc32.ttf?v=116368495160023841481792598700') format('truetype');font-weight:400;font-style:normal;font-display:block}</style><style>
body button,body .product,body .product strong,body .placement-button,body .swatch{font-family:'FSN Poppins',Poppins,Arial,sans-serif!important}
body button{display:inline-flex;align-items:center;justify-content:center;line-height:1.2}
body .step input:not([type=radio]):not([type=checkbox]):not([type=color]):not([type=file]),body .step select,body .step textarea{box-sizing:border-box;width:100%;min-height:48px;font-family:'FSN Poppins',Poppins,Arial,sans-serif!important;font-size:.875rem;line-height:1.25;padding:.75rem}
body .step input[type=color]{box-sizing:border-box;width:100%;height:48px}
body .step>h2,body .preview>#preview-title{margin-top:0;min-height:2.65rem;display:flex;align-items:flex-start}
body .products .product{display:grid;grid-template-columns:22px 58px minmax(0,1fr);align-items:center;gap:.65rem;min-height:76px;padding:.55rem .7rem}
body .products .style-thumbnail{width:58px;height:58px;place-self:center;display:grid;place-items:center}
body .products .style-thumbnail img{width:52px;height:52px;object-fit:contain}
body .products .product:has(input[value="diamond-cocktail"]) .style-thumbnail img{transform:rotate(45deg) scale(.78)}
body .products .product strong{margin:0;font-size:.82rem;line-height:1.25;text-align:left}
body .resize-buttons{display:grid;grid-template-columns:minmax(0,1fr) 4.5rem minmax(0,1fr);align-items:stretch;gap:.6rem}
body .resize-buttons button{width:100%;min-width:0;min-height:46px}
body .resize-buttons #scale-value{display:grid;place-items:center;text-align:center;font-variant-numeric:tabular-nums}
@media(min-width:53rem){body .layout>.preview{padding-top:calc(.85rem + 1px)}body #single-preview .finished{width:51%;max-width:none}}
@media(max-width:52rem){body .step>h2,body .preview>#preview-title{min-height:0}}
</style></head><body hidden><main><section class="panel" aria-labelledby="designer-title"><h1 id="designer-title">Create your custom napkin</h1><ol class="progress" aria-label="Design progress"><li><button type="button" data-progress data-step-target="0" aria-current="step" aria-label="1 Napkin" data-mobile-number="1">1 Napkin</button></li><li><button type="button" data-progress data-step-target="1" aria-label="2 Napkin Color" data-mobile-number="2">2 Napkin Color</button></li><li><button type="button" data-progress data-step-target="2" aria-label="3 Artwork" data-mobile-number="3">3 Artwork</button></li><li><button type="button" data-progress data-step-target="3" aria-label="4 Customize" data-mobile-number="4">4 Customize</button></li><li><button type="button" data-progress data-step-target="4" aria-label="5 Position" data-mobile-number="5">5 Position</button></li><li><button type="button" data-progress data-step-target="5" aria-label="6 Size" data-mobile-number="6">6 Size</button></li><li><button type="button" data-progress data-step-target="6" aria-label="7 Preview & Confirm" data-mobile-number="7">7 Preview & Confirm</button></li></ol><div class="layout"><form id="designer-form"><section class="step" data-step id="step-1" tabindex="-1"><h2>1. Choose your napkin</h2><fieldset class="products"><legend>Napkin format</legend><label class="product"><input type="radio" name="product" value="square-cocktail" data-name="Square Cocktail" data-sku="CCO11-CUST-SQ" data-description="Custom Cocktail Square Orientation · 4.5" × 4.5"" data-orientation="SQUARE" data-view-mode="SINGLE" data-format="Cocktail · finished 4.5" × 4.5"" data-product-kind="COCKTAIL" checked><span class="style-thumbnail" data-orientation="SQUARE" aria-hidden="true"><img src="//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-bf773725ca0637e1.png?v=14901139799232785291792598696" alt=""></span><strong>Cocktail Napkin — Square</strong></label><label class="product"><input type="radio" name="product" value="diamond-cocktail" data-name="Diamond Cocktail" data-sku="CCO11-CUST-DI" data-description="Custom Cocktail Diamond Orientation · 4.5" × 4.5"" data-orientation="DIAMOND" data-view-mode="SINGLE" data-format="Cocktail · finished 4.5" × 4.5"" data-product-kind="COCKTAIL" ><span class="style-thumbnail" data-orientation="DIAMOND" aria-hidden="true"><img src="//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-bf773725ca0637e1.png?v=14901139799232785291792598696" alt=""></span><strong>Cocktail Napkin — Diamond</strong></label><label class="product"><input type="radio" name="product" value="square-quarter-fold" data-name="Square 1/4 Fold" data-sku="CFC20-QF-CUST-SQ" data-description="Custom 1/4 Fold Napkin Square Orientation · 4.5" × 4.5"" data-orientation="SQUARE" data-view-mode="DUAL" data-format="1/4 Fold · unfolded 8" × 8" · finished 4" × 4"" data-product-kind="QUARTER_FOLD" ><span class="style-thumbnail" data-orientation="SQUARE" aria-hidden="true"><img src="//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-6dff0459c7d97792.png?v=96004105787766468601792598702" alt=""></span><strong>Folded Napkin — Square</strong></label><label class="product"><input type="radio" name="product" value="diamond-quarter-fold" data-name="Diamond 1/4 Fold" data-sku="CFC20-QF-CUST-DI" data-description="Custom 1/4 Fold Napkin Diamond Orientation · 4.5" × 4.5"" data-orientation="DIAMOND" data-view-mode="DUAL" data-format="1/4 Fold · unfolded 8" × 8" · finished 4" × 4"" data-product-kind="QUARTER_FOLD" ><span class="style-thumbnail" data-orientation="DIAMOND" aria-hidden="true"><img src="//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-6dff0459c7d97792.png?v=96004105787766468601792598702" alt=""></span><strong>Folded Napkin — Diamond</strong></label></fieldset><input id="quantity" type="hidden" min="50" step="50" value="100"><output id="quantity-price" hidden></output><table class="step-price-tiers"><caption>One-color screen print pricing</caption><thead><tr><th scope="col">Quantity</th><th scope="col">Each</th></tr></thead><tbody id="step-price-tier-rows"></tbody></table><button id="design-help-open" class="need-help-button" type="button">Need help with your design?</button><div class="actions"><button type="button" data-next>Next</button></div></section><section class="step" data-step id="step-2" tabindex="-1" hidden><h2>2. Choose your napkin color</h2><label for="napkin-color">Napkin color</label><p class="help" id="napkin-color-help">Cocktail napkin colors use owner-authorized local product images.</p><select class="napkin-color-select" id="napkin-color" aria-hidden="true" tabindex="-1"><option value="white" selected>White</option><option value="Black" >Black</option><option value="Grey" >Grey</option><option value="PearlGrey" >Pearl Grey</option><option value="AnthraciteGrey" >Anthracite Grey</option><option value="RoyalBlue" >Royal Blue</option><option value="SeaBlue" >Sea Blue</option><option value="SkyBlue" >Sky Blue</option><option value="SeaGlass" >Sea Glass</option><option value="MidnightBlue" >Midnight Blue</option><option value="BritishRacingGreen" >British Racing Green</option><option value="Khaki" >Khaki</option><option value="Pear" >Pear</option><option value="Sand" >Sand</option><option value="Caramel" >Caramel</option><option value="Nude" >Nude</option><option value="Red" >Red</option><option value="Blush" >Blush</option><option value="Sherbet" >Sherbert</option><option value="Toreador" >Toreador</option><option value="RaspberrySorbet" >Sorbet</option><option value="Pomegranate" >Pomegranate</option><option value="PickledBeet" >Pickled Beet</option><option value="Lavender" >Lavender</option><option value="Citron" >Citron</option><option value="Persimmon" >Persimmon</option></select><button id="napkin-color-toggle" class="swatch-dropdown-toggle" type="button" aria-expanded="false" aria-controls="napkin-color-panel"><span id="napkin-color-toggle-chip" class="swatch-dropdown-chip" aria-hidden="true"></span><span id="napkin-color-toggle-label" class="swatch-dropdown-label">Choose a color</span><span class="swatch-dropdown-arrow" aria-hidden="true">▼</span></button><div id="napkin-color-panel" class="swatch-dropdown-panel" hidden><div id="napkin-swatches" class="swatches" role="radiogroup" aria-label="Napkin color"></div></div><div class="actions"><button class="secondary" type="button" data-prev>Previous</button><button type="button" data-next>Next</button></div></section><section class="step" data-step id="step-3" tabindex="-1" hidden><h2>3. Choose your artwork</h2><fieldset class="creative-choice"><legend>Do you have a logo or text?</legend><label><input type="radio" name="creative-type" value="logo" checked> I have a logo</label><label><input type="radio" name="creative-type" value="text"> I want to add text</label></fieldset><p class="help">Choose one option. Logo and text cannot be combined in this one-color design.</p><div class="actions"><button class="secondary" type="button" data-prev>Previous</button><button type="button" data-next>Next</button></div></section><section class="step" data-step id="step-4" tabindex="-1" hidden><h2>4. Customize your design</h2><div id="logo-editor" data-creative-editor="logo"><div id="drop-zone" class="drop-zone"><label for="artwork">Logo artwork</label><p>Choose PNG, JPEG, WebP, AI, EPS, or PDF artwork up to 25 MB.</p><input id="artwork" type="file" accept="image/png,image/jpeg,image/webp,application/pdf,application/postscript,application/illustrator,application/vnd.adobe.illustrator,application/eps,application/x-eps,image/x-eps,.png,.jpg,.jpeg,.webp,.ai,.eps,.pdf"></div><button id="crop-artwork" class="secondary" type="button" hidden>Crop artwork</button><section id="crop-editor" class="crop-editor" role="dialog" aria-labelledby="crop-title" hidden><h3 id="crop-title">Crop artwork</h3><p class="help">Remove surrounding whitespace here. Cropping does not change print placement.</p><canvas id="crop-canvas" width="480" height="320" tabindex="0" aria-label="Crop preview. Drag to reposition the image."></canvas><div class="crop-controls"><label>Horizontal position<input id="crop-x" type="range" min="0" max="100" value="50"></label><label>Vertical position<input id="crop-y" type="range" min="0" max="100" value="50"></label><label>Zoom<input id="crop-zoom" type="range" min="100" max="400" value="100"></label></div><div class="actions"><button id="crop-auto" class="secondary" type="button">Auto-trim empty space</button><button id="crop-reset" class="secondary" type="button">Reset</button><button id="crop-cancel" class="secondary" type="button">Cancel</button><button id="crop-apply" type="button">Apply crop</button></div></section><label for="logo-color">Screen print color</label><p class="help">Standard colors are screen approximations.</p><select id="logo-color"><option value="">No color selected</option><option value="#000000" selected>Black</option><option value="#ffffff" >White</option><option value="#7a746e" >Warm Gray</option><option value="#687078" >Cool Gray</option><option value="#172a46" >Navy</option><option value="#175ea8" >Royal Blue</option><option value="#77a9cf" >Light Blue</option><option value="#167f83" >Teal</option><option value="#174f37" >Forest Green</option><option value="#278447" >Kelly Green</option><option value="#e4b82f" >Yellow</option><option value="#dc6b2f" >Orange</option><option value="#c52f33" >Red</option><option value="#721f35" >Burgundy</option><option value="#d999a8" >Blush Pink</option><option value="#d93682" >Hot Pink</option><option value="#694193" >Purple</option><option value="#684735" >Brown</option></select><label for="logo-foil">Foil option</label><select id="logo-foil"><option value="">No foil selected</option><option value="#c7a35a">Gold Foil (metallic)</option><option value="#b8b8b8">Silver Foil (metallic)</option></select><p class="help">Gold and silver indicate foil printing; availability and pricing require production confirmation.</p><label for="placement">Logo placement</label><select id="placement" class="napkin-color-select" aria-hidden="true" tabindex="-1"></select><div id="logo-placement-buttons" class="placement-buttons" role="radiogroup" aria-label="Logo placement"></div><p class="help">You may also point to a location on the napkin; the logo snaps to an approved placement. Rotation is unavailable.</p></div><div id="text-editor" data-creative-editor="text" hidden><label for="custom-text">Text, up to 5 lines</label><textarea id="custom-text" rows="5" maxlength="300" aria-describedby="custom-text-help"></textarea><p class="help" id="custom-text-help">Use up to 5 lines within the 3 × 3 in maximum print area. Adjust the final size in step 6.</p><label for="text-color">Screen print color</label><p class="help" id="shared-ink-help">Standard colors are screen approximations.</p><select id="text-color"><option value="">No color selected</option><option value="#000000" selected>Black</option><option value="#ffffff" >White</option><option value="#7a746e" >Warm Gray</option><option value="#687078" >Cool Gray</option><option value="#172a46" >Navy</option><option value="#175ea8" >Royal Blue</option><option value="#77a9cf" >Light Blue</option><option value="#167f83" >Teal</option><option value="#174f37" >Forest Green</option><option value="#278447" >Kelly Green</option><option value="#e4b82f" >Yellow</option><option value="#dc6b2f" >Orange</option><option value="#c52f33" >Red</option><option value="#721f35" >Burgundy</option><option value="#d999a8" >Blush Pink</option><option value="#d93682" >Hot Pink</option><option value="#694193" >Purple</option><option value="#684735" >Brown</option></select><label for="text-foil">Foil option</label><select id="text-foil"><option value="">No foil selected</option><option value="#c7a35a">Gold Foil (metallic)</option><option value="#b8b8b8">Silver Foil (metallic)</option></select><p class="help">Gold and silver indicate foil printing; availability and pricing require production confirmation.</p><div class="text-settings"><label for="font-search">Find a font<input id="font-search" type="search" placeholder="Search fonts" autocomplete="off"></label><label for="text-font">Font<select id="text-font"><option value="Georgia, serif">Classic Serif</option><option value="Arial, Helvetica, sans-serif">Clean Sans</option><optgroup label="Elegant scripts"><option value="'FSN Allura'">Allura</option><option value="'FSN Alex Brush'">Alex Brush</option><option value="'FSN Great Vibes'">Great Vibes</option><option value="'FSN Dancing Script'">Dancing Script</option><option value="'FSN Parisienne'">Parisienne</option><option value="'FSN Sacramento'">Sacramento</option><option value="'FSN Tangerine'">Tangerine</option><option value="'FSN Pinyon Script'">Pinyon Script</option><option value="'FSN Petit Formal Script'">Petit Formal Script</option><option value="'FSN Italianno'">Italianno</option><option value="'FSN MonteCarlo'">MonteCarlo</option><option value="'FSN Ballet'">Ballet</option><option value="'FSN Carattere'">Carattere</option><option value="'FSN Corinthia'">Corinthia</option><option value="'FSN Ephesis'">Ephesis</option><option value="'FSN Imperial Script'">Imperial Script</option><option value="'FSN Inspiration'">Inspiration</option><option value="'FSN Island Moments'">Island Moments</option><option value="'FSN Lavishly Yours'">Lavishly Yours</option><option value="'FSN Luxurious Script'">Luxurious Script</option><option value="'FSN Mea Culpa'">Mea Culpa</option><option value="'FSN Ms Madi'">Ms Madi</option><option value="'FSN My Soul'">My Soul</option><option value="'FSN Passions Conflict'">Passions Conflict</option><option value="'FSN Qwitcher Grypen'">Qwitcher Grypen</option><option value="'FSN Rouge Script'">Rouge Script</option><option value="'FSN Ruthie'">Ruthie</option><option value="'FSN Sail'">Sail</option><option value="'FSN Send Flowers'">Send Flowers</option><option value="'FSN Style Script'">Style Script</option><option value="'FSN The Nautigal'">The Nautigal</option><option value="'FSN Whisper'">Whisper</option><option value="'FSN WindSong'">WindSong</option><option value="'FSN Zeyada'">Zeyada</option></optgroup><optgroup label="Classic serifs"><option value="'FSN Bodoni Moda'">Bodoni Moda</option><option value="'FSN Bona Nova'">Bona Nova</option><option value="'FSN Baskervville'">Baskervville</option><option value="'FSN Cardo'">Cardo</option><option value="'FSN Castoro'">Castoro</option><option value="'FSN Cormorant'">Cormorant</option><option value="'FSN Cormorant Garamond'">Cormorant Garamond</option><option value="'FSN Cormorant Infant'">Cormorant Infant</option><option value="'FSN Cormorant SC'">Cormorant SC</option><option value="'FSN Crimson Pro'">Crimson Pro</option><option value="'FSN Crimson Text'">Crimson Text</option><option value="'FSN DM Serif Display'">DM Serif Display</option><option value="'FSN DM Serif Text'">DM Serif Text</option><option value="'FSN EB Garamond'">EB Garamond</option><option value="'FSN Gelasio'">Gelasio</option><option value="'FSN GFS Didot'">GFS Didot</option><option value="'FSN GFS Neohellenic'">GFS Neohellenic</option><option value="'FSN Goudy Bookletter 1911'">Goudy Bookletter 1911</option><option value="'FSN Libre Baskerville'">Libre Baskerville</option><option value="'FSN Libre Caslon Display'">Libre Caslon Display</option><option value="'FSN Libre Caslon Text'">Libre Caslon Text</option><option value="'FSN Lora'">Lora</option><option value="'FSN Marcellus'">Marcellus</option><option value="'FSN Marcellus SC'">Marcellus SC</option><option value="'FSN Mate'">Mate</option><option value="'FSN Mate SC'">Mate SC</option><option value="'FSN Merriweather'">Merriweather</option><option value="'FSN Old Standard TT'">Old Standard TT</option><option value="'FSN Oranienbaum'">Oranienbaum</option><option value="'FSN Playfair Display'">Playfair Display</option><option value="'FSN Prata'">Prata</option><option value="'FSN Spectral'">Spectral</option><option value="'FSN Vidaloka'">Vidaloka</option><option value="'FSN Vollkorn'">Vollkorn</option><option value="'FSN Zen Antique'">Zen Antique</option></optgroup><optgroup label="Modern styles"><option value="'FSN Abel'">Abel</option><option value="'FSN Albert Sans'">Albert Sans</option><option value="'FSN Alegreya Sans'">Alegreya Sans</option><option value="'FSN Archivo'">Archivo</option><option value="'FSN Barlow'">Barlow</option><option value="'FSN Cabin'">Cabin</option><option value="'FSN Catamaran'">Catamaran</option><option value="'FSN Comfortaa'">Comfortaa</option><option value="'FSN DM Sans'">DM Sans</option><option value="'FSN Dosis'">Dosis</option><option value="'FSN Figtree'">Figtree</option><option value="'FSN Hind'">Hind</option><option value="'FSN Josefin Sans'">Josefin Sans</option><option value="'FSN Jost'">Jost</option><option value="'FSN Karla'">Karla</option><option value="'FSN Lato'">Lato</option><option value="'FSN Lexend'">Lexend</option><option value="'FSN Manrope'">Manrope</option><option value="'FSN Montserrat'">Montserrat</option><option value="'FSN Mulish'">Mulish</option><option value="'FSN Nunito'">Nunito</option><option value="'FSN Outfit'">Outfit</option><option value="'FSN Overpass'">Overpass</option><option value="'FSN Poppins'">Poppins</option><option value="'FSN Quicksand'">Quicksand</option><option value="'FSN Raleway'">Raleway</option><option value="'FSN Rubik'">Rubik</option><option value="'FSN Sora'">Sora</option><option value="'FSN Urbanist'">Urbanist</option><option value="'FSN Work Sans'">Work Sans</option><option value="'FSN Courier Prime'">Courier Prime</option><option value="'FSN Five Star Typewriter'">Five Star Typewriter</option></optgroup><optgroup label="Display and monogram styles"><option value="'FSN Cinzel'">Cinzel</option><option value="'FSN Cinzel Decorative'">Cinzel Decorative</option><option value="'FSN Forum'">Forum</option><option value="'FSN Julius Sans One'">Julius Sans One</option><option value="'FSN Poiret One'">Poiret One</option><option value="'FSN Bebas Neue'">Bebas Neue</option><option value="'FSN Italiana'">Italiana</option><option value="'FSN Limelight'">Limelight</option><option value="'FSN Yeseva One'">Yeseva One</option><option value="'FSN Elsie'">Elsie</option><option value="'FSN Fredericka the Great'">Fredericka the Great</option><option value="'FSN Abril Fatface'">Abril Fatface</option><option value="'FSN Berkshire Swash'">Berkshire Swash</option><option value="'FSN Uncial Antiqua'">Uncial Antiqua</option><option value="'FSN Almendra'">Almendra</option></optgroup></select><script>window.__fsnQuery=window.frameElement.dataset.query||'';</script><script>(()=>{const rows=JSON.parse(window.frameElement.dataset.settings||'{}')._catalogs?.fonts;if(!rows)return;const select=document.getElementById('text-font'),names={"allura":"Allura","alexbrush":"Alex Brush","greatvibes":"Great Vibes","dancingscript":"Dancing Script","parisienne":"Parisienne","sacramento":"Sacramento","tangerine":"Tangerine","pinyonscript":"Pinyon Script","petitformalscript":"Petit Formal Script","italianno":"Italianno","montecarlo":"MonteCarlo","ballet":"Ballet","carattere":"Carattere","corinthia":"Corinthia","ephesis":"Ephesis","imperialscript":"Imperial Script","inspiration":"Inspiration","islandmoments":"Island Moments","lavishlyyours":"Lavishly Yours","luxuriousscript":"Luxurious Script","meaculpa":"Mea Culpa","msmadi":"Ms Madi","mysoul":"My Soul","passionsconflict":"Passions Conflict","qwitchergrypen":"Qwitcher Grypen","rougescript":"Rouge Script","ruthie":"Ruthie","sail":"Sail","sendflowers":"Send Flowers","stylescript":"Style Script","thenautigal":"The Nautigal","whisper":"Whisper","windsong":"WindSong","zeyada":"Zeyada","bodonimoda":"Bodoni Moda","bonanova":"Bona Nova","baskervville":"Baskervville","cardo":"Cardo","castoro":"Castoro","cormorant":"Cormorant","cormorantgaramond":"Cormorant Garamond","cormorantinfant":"Cormorant Infant","cormorantsc":"Cormorant SC","crimsonpro":"Crimson Pro","crimsontext":"Crimson Text","dmserifdisplay":"DM Serif Display","dmseriftext":"DM Serif Text","ebgaramond":"EB Garamond","gelasio":"Gelasio","gfsdidot":"GFS Didot","gfsneohellenic":"GFS Neohellenic","goudybookletter1911":"Goudy Bookletter 1911","librebaskerville":"Libre Baskerville","librecaslondisplay":"Libre Caslon Display","librecaslontext":"Libre Caslon Text","lora":"Lora","marcellus":"Marcellus","marcellussc":"Marcellus SC","mate":"Mate","matesc":"Mate SC","merriweather":"Merriweather","oldstandardtt":"Old Standard TT","oranienbaum":"Oranienbaum","playfairdisplay":"Playfair Display","prata":"Prata","spectral":"Spectral","vidaloka":"Vidaloka","vollkorn":"Vollkorn","zenantique":"Zen Antique","abel":"Abel","albertsans":"Albert Sans","alegreyasans":"Alegreya Sans","archivo":"Archivo","barlow":"Barlow","cabin":"Cabin","catamaran":"Catamaran","comfortaa":"Comfortaa","dmsans":"DM Sans","dosis":"Dosis","figtree":"Figtree","hind":"Hind","josefinsans":"Josefin Sans","jost":"Jost","karla":"Karla","lato":"Lato","lexend":"Lexend","manrope":"Manrope","montserrat":"Montserrat","mulish":"Mulish","nunito":"Nunito","outfit":"Outfit","overpass":"Overpass","poppins":"Poppins","quicksand":"Quicksand","raleway":"Raleway","rubik":"Rubik","sora":"Sora","urbanist":"Urbanist","worksans":"Work Sans","cinzel":"Cinzel","cinzeldecorative":"Cinzel Decorative","forum":"Forum","juliussansone":"Julius Sans One","poiretone":"Poiret One","bebasneue":"Bebas Neue","italiana":"Italiana","limelight":"Limelight","yesevaone":"Yeseva One","elsie":"Elsie","frederickathegreat":"Fredericka the Great","abrilfatface":"Abril Fatface","berkshireswash":"Berkshire Swash","uncialantiqua":"Uncial Antiqua","almendra":"Almendra","courierprime":"Courier Prime","specialelite":"Five Star Typewriter"},local=[{"slug":"courierprime","name":"Courier Prime"},{"slug":"specialelite","name":"Five Star Typewriter"}],bySlug=new Map(rows.map(row=>[row.slug,row]));for(const font of local)if(!bySlug.has(font.slug))bySlug.set(font.slug,{...font,enabled:true});select.replaceChildren(...[...bySlug.values()].filter(row=>row.enabled).map(row=>new Option(row.name,"'FSN "+(names[row.slug]||row.name)+"'")));})();</script><script>(()=>{const config=JSON.parse(window.frameElement.dataset.settings||'{}'),inputs=[...document.querySelectorAll('input[name="product"]')],allowed=inputs.filter(input=>config[input.value.replaceAll('-','_')]?.enabled!==false);if(!allowed.length)allowed.push(inputs[0]);for(const input of inputs)if(!allowed.includes(input))input.closest('label').remove();if(!allowed.some(input=>input.checked))allowed[0].checked=true;})();</script><script>(()=>{const config=JSON.parse(window.frameElement.dataset.settings||'{}'),select=document.getElementById('text-font');if(config._catalogs?.fonts)return;const catalog=[{"name":"Allura","slug":"allura","label":"Elegant scripts","group":"fonts_0","bundledFallback":false},{"name":"Alex Brush","slug":"alexbrush","label":"Elegant scripts","group":"fonts_0","bundledFallback":false},{"name":"Great Vibes","slug":"greatvibes","label":"Elegant scripts","group":"fonts_0","bundledFallback":false},{"name":"Dancing Script","slug":"dancingscript","label":"Elegant scripts","group":"fonts_0","bundledFallback":false},{"name":"Parisienne","slug":"parisienne","label":"Elegant scripts","group":"fonts_0","bundledFallback":false},{"name":"Sacramento","slug":"sacramento","label":"Elegant scripts","group":"fonts_0","bundledFallback":false},{"name":"Tangerine","slug":"tangerine","label":"Elegant scripts","group":"fonts_0","bundledFallback":false},{"name":"Pinyon Script","slug":"pinyonscript","label":"Elegant scripts","group":"fonts_0","bundledFallback":false},{"name":"Petit Formal Script","slug":"petitformalscript","label":"Elegant scripts","group":"fonts_0","bundledFallback":false},{"name":"Italianno","slug":"italianno","label":"Elegant scripts","group":"fonts_0","bundledFallback":false},{"name":"MonteCarlo","slug":"montecarlo","label":"Elegant scripts","group":"fonts_0","bundledFallback":false},{"name":"Ballet","slug":"ballet","label":"Elegant scripts","group":"fonts_0","bundledFallback":false},{"name":"Carattere","slug":"carattere","label":"Elegant scripts","group":"fonts_0","bundledFallback":false},{"name":"Corinthia","slug":"corinthia","label":"Elegant scripts","group":"fonts_0","bundledFallback":false},{"name":"Ephesis","slug":"ephesis","label":"Elegant scripts","group":"fonts_0","bundledFallback":false},{"name":"Imperial Script","slug":"imperialscript","label":"Elegant scripts","group":"fonts_0","bundledFallback":false},{"name":"Inspiration","slug":"inspiration","label":"Elegant scripts","group":"fonts_0","bundledFallback":false},{"name":"Island Moments","slug":"islandmoments","label":"Elegant scripts","group":"fonts_0","bundledFallback":false},{"name":"Lavishly Yours","slug":"lavishlyyours","label":"Elegant scripts","group":"fonts_0","bundledFallback":false},{"name":"Luxurious Script","slug":"luxuriousscript","label":"Elegant scripts","group":"fonts_0","bundledFallback":false},{"name":"Mea Culpa","slug":"meaculpa","label":"Elegant scripts","group":"fonts_0","bundledFallback":false},{"name":"Ms Madi","slug":"msmadi","label":"Elegant scripts","group":"fonts_0","bundledFallback":false},{"name":"My Soul","slug":"mysoul","label":"Elegant scripts","group":"fonts_0","bundledFallback":false},{"name":"Passions Conflict","slug":"passionsconflict","label":"Elegant scripts","group":"fonts_0","bundledFallback":false},{"name":"Qwitcher Grypen","slug":"qwitchergrypen","label":"Elegant scripts","group":"fonts_0","bundledFallback":false},{"name":"Rouge Script","slug":"rougescript","label":"Elegant scripts","group":"fonts_0","bundledFallback":false},{"name":"Ruthie","slug":"ruthie","label":"Elegant scripts","group":"fonts_0","bundledFallback":false},{"name":"Sail","slug":"sail","label":"Elegant scripts","group":"fonts_0","bundledFallback":false},{"name":"Send Flowers","slug":"sendflowers","label":"Elegant scripts","group":"fonts_0","bundledFallback":false},{"name":"Style Script","slug":"stylescript","label":"Elegant scripts","group":"fonts_0","bundledFallback":false},{"name":"The Nautigal","slug":"thenautigal","label":"Elegant scripts","group":"fonts_0","bundledFallback":false},{"name":"Whisper","slug":"whisper","label":"Elegant scripts","group":"fonts_0","bundledFallback":false},{"name":"WindSong","slug":"windsong","label":"Elegant scripts","group":"fonts_0","bundledFallback":false},{"name":"Zeyada","slug":"zeyada","label":"Elegant scripts","group":"fonts_0","bundledFallback":false},{"name":"Bodoni Moda","slug":"bodonimoda","label":"Classic serifs","group":"fonts_1","bundledFallback":false},{"name":"Bona Nova","slug":"bonanova","label":"Classic serifs","group":"fonts_1","bundledFallback":false},{"name":"Baskervville","slug":"baskervville","label":"Classic serifs","group":"fonts_1","bundledFallback":false},{"name":"Cardo","slug":"cardo","label":"Classic serifs","group":"fonts_1","bundledFallback":false},{"name":"Castoro","slug":"castoro","label":"Classic serifs","group":"fonts_1","bundledFallback":false},{"name":"Cormorant","slug":"cormorant","label":"Classic serifs","group":"fonts_1","bundledFallback":false},{"name":"Cormorant Garamond","slug":"cormorantgaramond","label":"Classic serifs","group":"fonts_1","bundledFallback":false},{"name":"Cormorant Infant","slug":"cormorantinfant","label":"Classic serifs","group":"fonts_1","bundledFallback":false},{"name":"Cormorant SC","slug":"cormorantsc","label":"Classic serifs","group":"fonts_1","bundledFallback":false},{"name":"Crimson Pro","slug":"crimsonpro","label":"Classic serifs","group":"fonts_1","bundledFallback":false},{"name":"Crimson Text","slug":"crimsontext","label":"Classic serifs","group":"fonts_1","bundledFallback":false},{"name":"DM Serif Display","slug":"dmserifdisplay","label":"Classic serifs","group":"fonts_1","bundledFallback":false},{"name":"DM Serif Text","slug":"dmseriftext","label":"Classic serifs","group":"fonts_1","bundledFallback":false},{"name":"EB Garamond","slug":"ebgaramond","label":"Classic serifs","group":"fonts_1","bundledFallback":false},{"name":"Gelasio","slug":"gelasio","label":"Classic serifs","group":"fonts_1","bundledFallback":false},{"name":"GFS Didot","slug":"gfsdidot","label":"Classic serifs","group":"fonts_1","bundledFallback":false},{"name":"GFS Neohellenic","slug":"gfsneohellenic","label":"Classic serifs","group":"fonts_1","bundledFallback":false},{"name":"Goudy Bookletter 1911","slug":"goudybookletter1911","label":"Classic serifs","group":"fonts_1","bundledFallback":false},{"name":"Libre Baskerville","slug":"librebaskerville","label":"Classic serifs","group":"fonts_1","bundledFallback":false},{"name":"Libre Caslon Display","slug":"librecaslondisplay","label":"Classic serifs","group":"fonts_1","bundledFallback":false},{"name":"Libre Caslon Text","slug":"librecaslontext","label":"Classic serifs","group":"fonts_1","bundledFallback":false},{"name":"Lora","slug":"lora","label":"Classic serifs","group":"fonts_1","bundledFallback":false},{"name":"Marcellus","slug":"marcellus","label":"Classic serifs","group":"fonts_1","bundledFallback":false},{"name":"Marcellus SC","slug":"marcellussc","label":"Classic serifs","group":"fonts_1","bundledFallback":false},{"name":"Mate","slug":"mate","label":"Classic serifs","group":"fonts_1","bundledFallback":false},{"name":"Mate SC","slug":"matesc","label":"Classic serifs","group":"fonts_1","bundledFallback":false},{"name":"Merriweather","slug":"merriweather","label":"Classic serifs","group":"fonts_1","bundledFallback":false},{"name":"Old Standard TT","slug":"oldstandardtt","label":"Classic serifs","group":"fonts_1","bundledFallback":false},{"name":"Oranienbaum","slug":"oranienbaum","label":"Classic serifs","group":"fonts_1","bundledFallback":false},{"name":"Playfair Display","slug":"playfairdisplay","label":"Classic serifs","group":"fonts_1","bundledFallback":false},{"name":"Prata","slug":"prata","label":"Classic serifs","group":"fonts_1","bundledFallback":false},{"name":"Spectral","slug":"spectral","label":"Classic serifs","group":"fonts_1","bundledFallback":false},{"name":"Vidaloka","slug":"vidaloka","label":"Classic serifs","group":"fonts_1","bundledFallback":false},{"name":"Vollkorn","slug":"vollkorn","label":"Classic serifs","group":"fonts_1","bundledFallback":false},{"name":"Zen Antique","slug":"zenantique","label":"Classic serifs","group":"fonts_1","bundledFallback":false},{"name":"Abel","slug":"abel","label":"Modern styles","group":"fonts_2","bundledFallback":false},{"name":"Albert Sans","slug":"albertsans","label":"Modern styles","group":"fonts_2","bundledFallback":false},{"name":"Alegreya Sans","slug":"alegreyasans","label":"Modern styles","group":"fonts_2","bundledFallback":false},{"name":"Archivo","slug":"archivo","label":"Modern styles","group":"fonts_2","bundledFallback":false},{"name":"Barlow","slug":"barlow","label":"Modern styles","group":"fonts_2","bundledFallback":false},{"name":"Cabin","slug":"cabin","label":"Modern styles","group":"fonts_2","bundledFallback":false},{"name":"Catamaran","slug":"catamaran","label":"Modern styles","group":"fonts_2","bundledFallback":false},{"name":"Comfortaa","slug":"comfortaa","label":"Modern styles","group":"fonts_2","bundledFallback":false},{"name":"DM Sans","slug":"dmsans","label":"Modern styles","group":"fonts_2","bundledFallback":false},{"name":"Dosis","slug":"dosis","label":"Modern styles","group":"fonts_2","bundledFallback":false},{"name":"Figtree","slug":"figtree","label":"Modern styles","group":"fonts_2","bundledFallback":false},{"name":"Hind","slug":"hind","label":"Modern styles","group":"fonts_2","bundledFallback":false},{"name":"Josefin Sans","slug":"josefinsans","label":"Modern styles","group":"fonts_2","bundledFallback":false},{"name":"Jost","slug":"jost","label":"Modern styles","group":"fonts_2","bundledFallback":false},{"name":"Karla","slug":"karla","label":"Modern styles","group":"fonts_2","bundledFallback":false},{"name":"Lato","slug":"lato","label":"Modern styles","group":"fonts_2","bundledFallback":false},{"name":"Lexend","slug":"lexend","label":"Modern styles","group":"fonts_2","bundledFallback":false},{"name":"Manrope","slug":"manrope","label":"Modern styles","group":"fonts_2","bundledFallback":false},{"name":"Montserrat","slug":"montserrat","label":"Modern styles","group":"fonts_2","bundledFallback":false},{"name":"Mulish","slug":"mulish","label":"Modern styles","group":"fonts_2","bundledFallback":false},{"name":"Nunito","slug":"nunito","label":"Modern styles","group":"fonts_2","bundledFallback":false},{"name":"Outfit","slug":"outfit","label":"Modern styles","group":"fonts_2","bundledFallback":false},{"name":"Overpass","slug":"overpass","label":"Modern styles","group":"fonts_2","bundledFallback":false},{"name":"Poppins","slug":"poppins","label":"Modern styles","group":"fonts_2","bundledFallback":false},{"name":"Quicksand","slug":"quicksand","label":"Modern styles","group":"fonts_2","bundledFallback":false},{"name":"Raleway","slug":"raleway","label":"Modern styles","group":"fonts_2","bundledFallback":false},{"name":"Rubik","slug":"rubik","label":"Modern styles","group":"fonts_2","bundledFallback":false},{"name":"Sora","slug":"sora","label":"Modern styles","group":"fonts_2","bundledFallback":false},{"name":"Urbanist","slug":"urbanist","label":"Modern styles","group":"fonts_2","bundledFallback":false},{"name":"Work Sans","slug":"worksans","label":"Modern styles","group":"fonts_2","bundledFallback":false},{"name":"Cinzel","slug":"cinzel","label":"Display and monogram styles","group":"fonts_3","bundledFallback":false},{"name":"Cinzel Decorative","slug":"cinzeldecorative","label":"Display and monogram styles","group":"fonts_3","bundledFallback":false},{"name":"Forum","slug":"forum","label":"Display and monogram styles","group":"fonts_3","bundledFallback":false},{"name":"Julius Sans One","slug":"juliussansone","label":"Display and monogram styles","group":"fonts_3","bundledFallback":false},{"name":"Poiret One","slug":"poiretone","label":"Display and monogram styles","group":"fonts_3","bundledFallback":false},{"name":"Bebas Neue","slug":"bebasneue","label":"Display and monogram styles","group":"fonts_3","bundledFallback":false},{"name":"Italiana","slug":"italiana","label":"Display and monogram styles","group":"fonts_3","bundledFallback":false},{"name":"Limelight","slug":"limelight","label":"Display and monogram styles","group":"fonts_3","bundledFallback":false},{"name":"Yeseva One","slug":"yesevaone","label":"Display and monogram styles","group":"fonts_3","bundledFallback":false},{"name":"Elsie","slug":"elsie","label":"Display and monogram styles","group":"fonts_3","bundledFallback":false},{"name":"Fredericka the Great","slug":"frederickathegreat","label":"Display and monogram styles","group":"fonts_3","bundledFallback":false},{"name":"Abril Fatface","slug":"abrilfatface","label":"Display and monogram styles","group":"fonts_3","bundledFallback":false},{"name":"Berkshire Swash","slug":"berkshireswash","label":"Display and monogram styles","group":"fonts_3","bundledFallback":false},{"name":"Uncial Antiqua","slug":"uncialantiqua","label":"Display and monogram styles","group":"fonts_3","bundledFallback":false},{"name":"Almendra","slug":"almendra","label":"Display and monogram styles","group":"fonts_3","bundledFallback":false},{"name":"Courier Prime","slug":"courierprime","label":"Modern styles","group":"fonts_2","bundledFallback":true},{"name":"Five Star Typewriter","slug":"specialelite","label":"Modern styles","group":"fonts_2","bundledFallback":true}];for(const font of catalog.filter(font=>font.bundledFallback)){if([...select.options].some(option=>option.text===font.name))continue;let group=[...select.querySelectorAll('optgroup')].find(node=>node.label===font.label);if(!group){group=document.createElement('optgroup');group.label=font.label;select.append(group)}group.append(new Option(font.name,"'FSN "+font.name+"'"))}for(const font of catalog)if(config[font.group]?.[font.slug]===false){for(const option of [...select.options])if(option.value==="'FSN "+font.name+"'")option.remove();}for(const group of select.querySelectorAll('optgroup'))if(!group.children.length)group.remove();})();</script></label><label for="text-size">Text size<select id="text-size"><option value="18">18 pt</option><option value="24">24 pt</option><option value="30" selected>30 pt</option><option value="36">36 pt</option><option value="48">48 pt</option><option value="60">60 pt</option><option value="72">72 pt</option><option value="84">84 pt</option><option value="96">96 pt</option><option value="108">108 pt</option><option value="120">120 pt</option><option value="128">128 pt</option></select></label></div><fieldset class="text-alignment"><legend>Text alignment</legend><div class="text-alignment-options"><label title="Align left"><input type="radio" name="text-alignment" value="left" aria-label="Align left"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M4 6h16M4 10h11M4 14h16M4 18h9"/></svg></label><label title="Align center"><input type="radio" name="text-alignment" value="center" aria-label="Align center" checked><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M4 6h16M6.5 10h11M4 14h16M7.5 18h9"/></svg></label><label title="Align right"><input type="radio" name="text-alignment" value="right" aria-label="Align right"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M4 6h16M9 10h11M4 14h16M11 18h9"/></svg></label><label title="Justify text"><input type="radio" name="text-alignment" value="justify" aria-label="Justify text"><svg viewBox="0 0 24 24" aria-hidden="true" focusable="false"><path d="M4 6h16M4 10h16M4 14h16M4 18h16"/></svg></label></div></fieldset><label for="text-placement">Text placement</label><div id="text-placement-buttons" class="placement-buttons" role="radiogroup" aria-label="Text placement"></div><select id="text-placement"><option value="TOP_LEFT">Top Left</option><option value="TOP_CENTER">Top Center</option><option value="TOP_RIGHT">Top Right</option><option value="CENTER" selected>Center</option><option value="BOTTOM_LEFT">Bottom Left</option><option value="BOTTOM_CENTER">Bottom Center</option><option value="BOTTOM_RIGHT">Bottom Right</option></select><p class="help">This bounded local font catalog is a prototype. The approved licensed catalog and final size range remain pending.</p></div><div class="actions"><button class="secondary" type="button" data-prev>Previous</button><button type="button" data-next>Next</button></div></section><section class="step" data-step id="step-5" tabindex="-1" hidden><h2>5. Position your design</h2><div class="actions"><button class="secondary" type="button" data-prev>Previous</button><button type="button" data-next>Next</button></div></section><section class="step" data-step id="step-6" tabindex="-1" hidden><h2>6. Resize your design</h2><div class="actions resize-buttons" aria-label="Logo size"><button class="secondary" type="button" data-scale="-.05">Scale down</button><output id="scale-value" aria-live="polite">60%</output><button class="secondary" type="button" data-scale=".05">Scale up</button></div><div class="actions"><button class="secondary" type="button" data-prev>Previous</button><button type="button" data-next>Next</button></div></section><section class="step" data-step id="step-7" tabindex="-1" hidden><h2>7. Preview & Confirm</h2><p id="review-summary"></p><ul class="review-list"><li>Napkin <button class="secondary" type="button" data-edit="0">Edit</button></li><li>Napkin color <button class="secondary" type="button" data-edit="1">Edit</button></li><li>Artwork choice <button class="secondary" type="button" data-edit="2">Edit</button></li><li>Design details <button class="secondary" type="button" data-edit="3">Edit</button></li><li>Design size <button class="secondary" type="button" data-edit="4">Edit</button></li></ul><p class="notice">Confirmation acknowledges this local preview only. A production proof is still required.</p><div class="actions"><button class="secondary" type="button" data-prev>Previous</button><button id="confirm" type="button" disabled>Confirm local preview</button></div></section></form><aside class="preview" aria-labelledby="preview-title"><h2 id="preview-title">Your preview</h2><div id="dual-preview" class="preview-views"><figure class="preview-figure"><figcaption>Unfolded · 8 in × 8 in</figcaption><div class="napkin-frame"><div class="napkin unfolded" data-placement="CENTER"><img class="napkin-base" data-view="unfolded" alt="" hidden><span class="fold-guide" aria-hidden="true"></span><span class="quarter-glue quarter-glue-left" aria-hidden="true"></span><span class="quarter-glue quarter-glue-top" aria-hidden="true"></span><span class="quarter-glue quarter-glue-right" aria-hidden="true"></span><span class="quarter-glue quarter-glue-bottom" aria-hidden="true"></span><span class="physical-coordinate-layer"><img class="artwork-image" tabindex="0" role="slider" aria-label="Artwork size. Drag to resize." title="Drag to resize." aria-valuemin="25" aria-valuemax="100" aria-valuenow="60" alt="Selected design on unfolded napkin"><span class="preview-text" hidden></span></span></div></div></figure><figure class="preview-figure"><figcaption>Finished Fold · 4 in × 4 in</figcaption><div class="napkin-frame"><div class="napkin finished" data-placement="CENTER"><img class="napkin-base" data-view="folded" alt="" hidden><span class="fold-plane fold-plane-top" aria-hidden="true"></span><span class="quarter-glue quarter-glue-left" aria-hidden="true"></span><span class="quarter-glue quarter-glue-top" aria-hidden="true"></span><span class="quarter-glue quarter-glue-right" aria-hidden="true"></span><span class="quarter-glue quarter-glue-bottom" aria-hidden="true"></span><span class="physical-coordinate-layer"><img class="artwork-image" alt="Selected design on finished folded napkin"><span class="preview-text" hidden></span></span></div></div></figure></div><div id="single-preview" hidden><figure class="preview-figure"><figcaption>Finished Size · 4.5 in × 4.5 in</figcaption><div class="napkin-frame"><div class="napkin finished" data-placement="CENTER"><img class="napkin-base" data-view="folded" alt="" hidden><span class="fold-plane fold-plane-top" aria-hidden="true"></span><span class="quarter-glue quarter-glue-left" aria-hidden="true"></span><span class="quarter-glue quarter-glue-top" aria-hidden="true"></span><span class="quarter-glue quarter-glue-right" aria-hidden="true"></span><span class="quarter-glue quarter-glue-bottom" aria-hidden="true"></span><span class="physical-coordinate-layer"><img class="artwork-image" alt="Selected design on finished cocktail napkin"><span class="preview-text" hidden></span></span></div></div></figure></div><p id="selection-summary" class="preview-data"></p><p id="preview-status" role="status" aria-live="polite">Local preview only — nothing will be submitted or published.</p></aside></div></section></main><dialog id="design-help-dialog" class="design-help-dialog" aria-labelledby="design-help-title"><div class="design-help-content"><header class="design-help-header"><div><p class="eyebrow">Personal design assistance</p><h2 id="design-help-title">Need help with your design?</h2></div><button id="design-help-close" class="design-help-close" type="button" aria-label="Close design help">×</button></header><p>Our warehouse team can help with artwork, placement, and preparing your napkin design.</p><a class="design-help-call" href="tel:+17323597555">Call us: 732-359-7555</a><form id="design-help-form" class="design-help-form"><label for="help-name">Your name<input id="help-name" name="name" autocomplete="name" required></label><label for="help-email">Your email<input id="help-email" name="email" type="email" autocomplete="email" required></label><label for="help-reference">Order or quote number <span class="help">(optional)</span><input id="help-reference" name="reference" autocomplete="off"></label><label for="help-message">How can we help?<textarea id="help-message" name="message" rows="4" maxlength="1500" required></textarea></label><button type="submit">Send design-help email</button><p id="design-help-status" class="design-help-note" role="status" aria-live="polite">Your email app will open with the message addressed to our team. You will review and send it there.</p></form></div></dialog><script>const creativeStore=async(action,key,value)=>{if(action==='get'){try{const old=sessionStorage.getItem(key);if(old)return JSON.parse(old)}catch{}}return new Promise((resolve,reject)=>{const request=indexedDB.open('fsn-local-designs',1);request.onupgradeneeded=()=>request.result.createObjectStore('designs');request.onerror=()=>reject(request.error);request.onsuccess=()=>{const db=request.result,tx=db.transaction('designs',action==='get'?'readonly':'readwrite'),store=tx.objectStore('designs'),operation=action==='get'?store.get(key):store.put(value,key);let result;operation.onsuccess=()=>{result=operation.result};tx.oncomplete=()=>{db.close();resolve(result)};tx.onerror=tx.onabort=()=>{db.close();reject(tx.error)}}})};</script><script>(()=>{'use strict';const maxTextLines=5,steps=[...document.querySelectorAll('[data-step]')],progress=[...document.querySelectorAll('[data-progress]')],form=document.getElementById('designer-form'),status=document.getElementById('preview-status'),file=document.getElementById('artwork'),drop=document.getElementById('drop-zone'),images=[...document.querySelectorAll('.artwork-image')],texts=[...document.querySelectorAll('.preview-text')],surfaces=[...document.querySelectorAll('.napkin')],bases=[...document.querySelectorAll('.napkin-base')],dual=document.getElementById('dual-preview'),single=document.getElementById('single-preview'),summary=document.getElementById('selection-summary'),review=document.getElementById('review-summary'),quantity=document.getElementById('quantity'),priceOutput=document.getElementById('quantity-price'),napkin=document.getElementById('napkin-color'),swatches=document.getElementById('napkin-swatches'),swatchToggle=document.getElementById('napkin-color-toggle'),swatchPanel=document.getElementById('napkin-color-panel'),swatchToggleChip=document.getElementById('napkin-color-toggle-chip'),swatchToggleLabel=document.getElementById('napkin-color-toggle-label'),logoColor=document.getElementById('logo-color'),logoFoil=document.getElementById('logo-foil'),textColor=document.getElementById('text-color'),textFoil=document.getElementById('text-foil'),textInput=document.getElementById('custom-text'),textAlignmentChoices=[...document.querySelectorAll('input[name="text-alignment"]')],creativeChoices=[...document.querySelectorAll('input[name="creative-type"]')],creativeEditors=[...document.querySelectorAll('[data-creative-editor]')],textFont=document.getElementById('text-font'),textSize=document.getElementById('text-size'),textPlacement=document.getElementById('text-placement'),logoPlacementButtons=document.getElementById('logo-placement-buttons'),textPlacementButtons=document.getElementById('text-placement-buttons'),placement=document.getElementById('placement'),scaleOutput=document.getElementById('scale-value'),cropButton=document.getElementById('crop-artwork'),cropEditor=document.getElementById('crop-editor'),cropCanvas=document.getElementById('crop-canvas'),cropX=document.getElementById('crop-x'),cropY=document.getElementById('crop-y'),cropZoom=document.getElementById('crop-zoom'),cropAuto=document.getElementById('crop-auto'),cropReset=document.getElementById('crop-reset'),cropCancel=document.getElementById('crop-cancel'),cropApply=document.getElementById('crop-apply'),assets=Object.assign({"white":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-bf773725ca0637e1.png?v=14901139799232785291792598696","Black":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-107d6f3eb6140c16.png?v=69374936950127338741792598695","Grey":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-13e3fa459f7e91f2.png?v=56918675979438175761792598700","PearlGrey":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-e03a4f9c624fcce3.png?v=143992023003323812801792598700","AnthraciteGrey":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-b4ab3cd834fe4a54.png?v=56180828508278689711792598700","RoyalBlue":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-b831c8165213b744.png?v=33683287436637665831792598702","SeaBlue":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-b51ad3421257a375.png?v=106978759448209277651792598702","SkyBlue":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-11f9feb4ab7a9d61.png?v=164168547919929583531792598702","SeaGlass":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-12ceeb84b9b04879.png?v=77201447728982081751792598700","MidnightBlue":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-83a3de126276761b.png?v=31144051542433129271792598698","BritishRacingGreen":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-cc54ee25412f8e02.png?v=158819514274995697571792598703","Khaki":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-aedf3dcc181d45a0.png?v=181391029652230263781792598700","Pear":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-41d2755c4449d599.png?v=142560400851449155461792598700","Sand":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-3b1fecfd51d0f48b.png?v=181499553882375835451792598698","Caramel":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-8aaf59ff356e7fbe.png?v=16779761362601578411792598697","Nude":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-b8f1994765deceac.png?v=114203510336725224411792598701","Red":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-033a670dce159fa1.png?v=176562199182443128931792598702","Blush":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-52fe74e0c86290fd.png?v=70872605492892605321792598701","Sherbet":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-2956bafb1bec9d41.png?v=134912221112083434751792598700","Toreador":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-64c65f1be353faa8.png?v=180956132411117849961792598701","RaspberrySorbet":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-4c02b8280345d229.png?v=159880176231220918291792598700","Pomegranate":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-e388f2eb664aab56.png?v=104394563794953395631792598699","PickledBeet":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-ef6e885bd6526189.png?v=111758078649487450471792598699","Lavender":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-31ed8929e5b52865.png?v=179329026159454151001792598699","Citron":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-cdf16c53521195d4.png?v=97246507922063666301792598696","Persimmon":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-86edf827d93a4e7d.png?v=165446398099057982911792598695"},Object.fromEntries([["white","color_white"],["Black","color_black"],["Grey","color_grey"],["PearlGrey","color_pearlgrey"],["AnthraciteGrey","color_anthracitegrey"],["RoyalBlue","color_royalblue"],["SeaBlue","color_seablue"],["SkyBlue","color_skyblue"],["SeaGlass","color_seaglass"],["MidnightBlue","color_midnightblue"],["BritishRacingGreen","color_britishracinggreen"],["Khaki","color_khaki"],["Pear","color_pear"],["Sand","color_sand"],["Caramel","color_caramel"],["Nude","color_nude"],["Red","color_red"],["Blush","color_blush"],["Sherbet","color_sherbet"],["Toreador","color_toreador"],["RaspberrySorbet","color_raspberrysorbet"],["Pomegranate","color_pomegranate"],["PickledBeet","color_pickledbeet"],["Lavender","color_lavender"],["Citron","color_citron"],["Persimmon","color_persimmon"]].map(([key,id])=>[key,JSON.parse(window.frameElement.dataset.settings||'{}')[id]?.texture]).filter(([,url])=>typeof url==='string'&&url.length>0))),quarterFaceCalibration={"Black":{"imageLeftPercent":-14.3296,"imageTopPercent":-16.8317,"imageWidthPercent":128.3521,"imageHeightPercent":124.1584},"white":{"imageLeftPercent":-10.6796,"imageTopPercent":-13.7255,"imageWidthPercent":121.7476,"imageHeightPercent":122.9412}},quarterFoldAssets=Object.assign({"white:folded":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-6dff0459c7d97792.png?v=96004105787766468601792598702","white:unfolded":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-65e505da23f217c3.png?v=115851399111500254071792598700","Black:folded":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-7ccfdbeef3f7f605.png?v=143363486442333091371792598704","Black:unfolded":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-ba1f0340a2e27f13.png?v=72180214734274866231792598703"},Object.fromEntries(['white','Black'].flatMap(key=>['folded','unfolded'].map(view=>[key+':'+view,JSON.parse(window.frameElement.dataset.settings||'{}')['color_'+key.toLowerCase()]?.[view+'_texture']])).filter(([,url])=>typeof url==='string'&&url.length>0))),customerPriceTiers=(()=>{const p=JSON.parse(window.frameElement.dataset.settings||'{}').pricing||{};return Object.fromEntries([['COCKTAIL','cocktail',[200,100,85,75]],['QUARTER_FOLD','folded',[200,125,110,100]]].map(([family,key,fallback])=>[family,[50,500,2500,10000].map((minimumQuantity,i)=>({minimumQuantity,unitPriceCents:Number.isInteger(p[key+'_'+minimumQuantity])&&p[key+'_'+minimumQuantity]>0?p[key+'_'+minimumQuantity]:fallback[i]}))]));})(),extensions=[".png",".jpg",".jpeg",".webp",".ai",".eps",".pdf"],previewTypes=["image/png","image/jpeg","image/webp"],familyColors=Object.fromEntries(Object.entries({"COCKTAIL":[{"value":"white","label":"White","visible":true,"displayOrder":1},{"value":"Black","label":"Black","visible":true,"displayOrder":3},{"value":"Grey","label":"Grey","visible":true,"displayOrder":4},{"value":"PearlGrey","label":"Pearl Grey","visible":true,"displayOrder":5},{"value":"AnthraciteGrey","label":"Anthracite Grey","visible":true,"displayOrder":6},{"value":"RoyalBlue","label":"Royal Blue","visible":true,"displayOrder":7},{"value":"SeaBlue","label":"Sea Blue","visible":true,"displayOrder":8},{"value":"SkyBlue","label":"Sky Blue","visible":true,"displayOrder":9},{"value":"SeaGlass","label":"Sea Glass","visible":true,"displayOrder":10},{"value":"MidnightBlue","label":"Midnight Blue","visible":true,"displayOrder":11},{"value":"BritishRacingGreen","label":"British Racing Green","visible":true,"displayOrder":12},{"value":"Khaki","label":"Khaki","visible":true,"displayOrder":13},{"value":"Pear","label":"Pear","visible":true,"displayOrder":14},{"value":"Sand","label":"Sand","visible":true,"displayOrder":16},{"value":"Caramel","label":"Caramel","visible":true,"displayOrder":17},{"value":"Nude","label":"Nude","visible":true,"displayOrder":18},{"value":"Red","label":"Red","visible":true,"displayOrder":19},{"value":"Blush","label":"Blush","visible":true,"displayOrder":20},{"value":"Sherbet","label":"Sherbert","visible":true,"displayOrder":21},{"value":"Toreador","label":"Toreador","visible":true,"displayOrder":22},{"value":"RaspberrySorbet","label":"Sorbet","visible":true,"displayOrder":23},{"value":"Pomegranate","label":"Pomegranate","visible":true,"displayOrder":24},{"value":"PickledBeet","label":"Pickled Beet","visible":true,"displayOrder":25},{"value":"Lavender","label":"Lavender","visible":true,"displayOrder":26},{"value":"Citron","label":"Citron","visible":true,"displayOrder":27},{"value":"Persimmon","label":"Persimmon","visible":true,"displayOrder":28}],"QUARTER_FOLD":[{"value":"white","label":"White","visible":true,"displayOrder":1},{"value":"Black","label":"Black","visible":true,"displayOrder":2}]}).map(([family,colors])=>{const available=colors.filter(color=>JSON.parse(window.frameElement.dataset.settings||'{}')['color_'+color.value.toLowerCase()]?.enabled!==false);return [family,(available.length?available:colors.slice(0,1)).map(color=>({...color,label:JSON.parse(window.frameElement.dataset.settings||'{}')['color_'+color.value.toLowerCase()]?.label??color.label}))]})),types=["image/png","image/jpeg","image/webp","application/pdf","application/postscript","application/illustrator","application/vnd.adobe.illustrator","application/eps","application/x-eps","image/x-eps"],max=26214400;let step=0,logoReady=false,logoImage=null,originalLogoImage=null,cropState='Original',cropDrag=null,scaleDrag=null,scaleDragged=false,scale=.6;const product=()=>form.querySelector('input[name="product"]:checked'),isCocktail=()=>product().dataset.productKind==='COCKTAIL',placementProfiles={cocktailSquare:['TOP_LEFT','TOP_CENTER','TOP_RIGHT','CENTER','BOTTOM_LEFT','BOTTOM_CENTER','BOTTOM_RIGHT'],cocktailDiamond:['TOP_CORNER','RIGHT_CORNER','BOTTOM_CORNER','LEFT_CORNER','CENTER'],quarterFold:['CENTER','BOTTOM_RIGHT']},placementOptions=()=>isCocktail()?(product().dataset.orientation==='DIAMOND'?placementProfiles.cocktailDiamond:placementProfiles.cocktailSquare):placementProfiles.quarterFold,anchors=placementOptions;const updateColorToggle=()=>{const allowed=familyColors[product().dataset.productKind],selected=allowed.find(color=>color.value===napkin.value)||allowed[0],image=assets[selected.value]||quarterFoldAssets[selected.value+':folded'];swatchToggleLabel.textContent=selected.label;swatchToggleChip.style.backgroundImage=image?'url('+image+')':'none';swatchToggleChip.style.backgroundColor=selected.value==='Black'?'#111111':'#ffffff'};const closeColorMenu=()=>{swatchPanel.hidden=true;swatchToggle.setAttribute('aria-expanded','false')};const rebuildColors=()=>{const current=napkin.value,allowed=familyColors[product().dataset.productKind];napkin.replaceChildren(...allowed.map(color=>{const option=document.createElement('option');option.value=color.value;option.textContent=color.label;return option}));napkin.value=allowed.some(color=>color.value===current)?current:(allowed.find(color=>color.value==='white')||allowed[0]).value;updateColorToggle();swatches.replaceChildren(...allowed.map(color=>{const button=document.createElement('button'),chip=document.createElement('span'),label=document.createElement('span'),check=document.createElement('span'),chipImage=assets[color.value]||quarterFoldAssets[color.value+':folded'];button.type='button';button.className='swatch';button.setAttribute('role','radio');button.setAttribute('aria-label',color.label);button.setAttribute('title',color.label);button.setAttribute('aria-checked',String(color.value===napkin.value));chip.className='swatch-chip';chip.style.backgroundImage=chipImage?'url('+chipImage+')':'none';chip.style.backgroundColor=color.value==='Black'?'#111111':'#ffffff';chip.setAttribute('aria-hidden','true');label.className='swatch-label';label.textContent=color.label;check.className='swatch-check';check.textContent='✓';check.setAttribute('aria-hidden','true');button.append(chip,label,check);button.addEventListener('click',()=>{napkin.value=color.value;swatches.querySelectorAll('[role=radio]').forEach(item=>item.setAttribute('aria-checked',String(item===button)));updateColorToggle();closeColorMenu();update();status.textContent='Napkin color changed to '+color.label+'.'});return button}))};const renderPlacementButtons=(container,allowed,current,select)=>{container.dataset.layout=allowed.length===7?'map':allowed.some(value=>value.endsWith('CORNER'))?'diamond':'compact';container.replaceChildren(...allowed.map(value=>{const button=document.createElement('button');button.type='button';button.className='placement-button';button.dataset.placement=value;button.setAttribute('role','radio');button.setAttribute('aria-checked',String(value===current));button.textContent=value.replaceAll('_',' ').toLowerCase().replace(/(^| )\w/g,character=>character.toUpperCase());button.addEventListener('click',()=>select(value));return button}))};const showStep=index=>{step=Math.max(0,Math.min(6,index));steps.forEach((item,i)=>{item.hidden=i!==step});progress.forEach((item,i)=>{item.setAttribute('aria-current',i===step?'step':'false');item.dataset.state=i===step?'active':i<step?'completed':'available'});document.getElementById('step-'+String(step+1)).focus({preventScroll:true});update()};const setPlacement=value=>{if(!anchors().includes(value))value='CENTER';placement.replaceChildren(...anchors().map(anchor=>{const option=document.createElement('option');option.value=anchor;option.textContent=anchor.replaceAll('_',' ').toLowerCase().replace(/(^| )\w/g,c=>c.toUpperCase());option.selected=anchor===value;return option}));surfaces.forEach(surface=>{surface.dataset.placement=value});renderPlacementButtons(logoPlacementButtons,anchors(),value,next=>{placement.value=next;setPlacement(next);update()})};const cropRect=()=>{const zoom=Number(cropZoom.value)/100,width=1/zoom,height=1/zoom;return{x:Number(cropX.value)/100*(1-width),y:Number(cropY.value)/100*(1-height),width,height}};const drawCrop=()=>{if(!originalLogoImage)return;const context=cropCanvas.getContext('2d'),rect=cropRect(),cw=cropCanvas.width,ch=cropCanvas.height;context.clearRect(0,0,cw,ch);context.drawImage(originalLogoImage,0,0,cw,ch);context.fillStyle='rgba(97,65,47,.48)';context.fillRect(0,0,cw,ch);context.save();context.beginPath();context.rect(rect.x*cw,rect.y*ch,rect.width*cw,rect.height*ch);context.clip();context.drawImage(originalLogoImage,0,0,cw,ch);context.restore();context.strokeStyle='#61412f';context.lineWidth=3;context.strokeRect(rect.x*cw,rect.y*ch,rect.width*cw,rect.height*ch)};const resetCrop=()=>{cropX.value='50';cropY.value='50';cropZoom.value='100';drawCrop()};const openCrop=()=>{if(originalLogoImage){cropEditor.hidden=false;drawCrop();cropCanvas.focus()}};const autoTrim=()=>{if(!originalLogoImage)return;const sample=document.createElement('canvas'),ratio=Math.min(1,1024/Math.max(originalLogoImage.naturalWidth,originalLogoImage.naturalHeight));sample.width=Math.max(1,Math.round(originalLogoImage.naturalWidth*ratio));sample.height=Math.max(1,Math.round(originalLogoImage.naturalHeight*ratio));const context=sample.getContext('2d',{willReadFrequently:true});context.drawImage(originalLogoImage,0,0,sample.width,sample.height);const pixels=context.getImageData(0,0,sample.width,sample.height).data;let minX=sample.width,minY=sample.height,maxX=-1,maxY=-1;for(let y=0;y<sample.height;y++)for(let x=0;x<sample.width;x++){const i=(y*sample.width+x)*4,empty=pixels[i+3]<10||(pixels[i]>245&&pixels[i+1]>245&&pixels[i+2]>245);if(!empty){minX=Math.min(minX,x);minY=Math.min(minY,y);maxX=Math.max(maxX,x);maxY=Math.max(maxY,y)}}if(maxX<minX||maxY<minY){status.textContent='No visible artwork was found to trim.';return}const width=(maxX-minX+1)/sample.width,height=(maxY-minY+1)/sample.height,zoom=Math.min(4,1/Math.max(width,height)),nextWidth=1/zoom,nextHeight=1/zoom;cropZoom.value=String(Math.round(zoom*100));cropX.value=String(Math.round((minX/sample.width)/Math.max(.0001,1-nextWidth)*100));cropY.value=String(Math.round((minY/sample.height)/Math.max(.0001,1-nextHeight)*100));drawCrop()};const applyCrop=()=>{if(!originalLogoImage)return;const rect=cropRect(),sx=Math.floor(rect.x*originalLogoImage.naturalWidth),sy=Math.floor(rect.y*originalLogoImage.naturalHeight),sw=Math.ceil(rect.width*originalLogoImage.naturalWidth),sh=Math.ceil(rect.height*originalLogoImage.naturalHeight);if(sw<16||sh<16){status.textContent='Crop must be at least 16 pixels per edge.';return}const output=document.createElement('canvas'),ratio=Math.min(1,4096/Math.max(sw,sh));output.width=Math.max(16,Math.round(sw*ratio));output.height=Math.max(16,Math.round(sh*ratio));output.getContext('2d').drawImage(originalLogoImage,sx,sy,sw,sh,0,0,output.width,output.height);const cropped=new Image();cropped.onload=()=>{logoImage=cropped;cropState='Cropped';cropEditor.hidden=true;recolor();update();status.textContent='Crop applied before one-color preview processing.'};cropped.onerror=()=>{status.textContent='The crop could not be applied.'};cropped.src=output.toDataURL('image/png')};const selectedPrintValue=()=>logoFoil.value||logoColor.value,selectedPrintLabel=()=>logoFoil.value?logoFoil.options[logoFoil.selectedIndex].text:logoColor.options[logoColor.selectedIndex].text;const recolor=()=>{if(!logoImage)return false;const canvas=document.createElement('canvas'),context=canvas.getContext('2d',{willReadFrequently:true});canvas.width=logoImage.naturalWidth;canvas.height=logoImage.naturalHeight;context.drawImage(logoImage,0,0);const pixels=context.getImageData(0,0,canvas.width,canvas.height),hex=selectedPrintValue().match(/[0-9a-f]{2}/gi)||['00','00','00'];let visible=0;for(let i=0;i<pixels.data.length;i+=4){const sourceAlpha=pixels.data[i+3],luminance=.2126*pixels.data[i]+.7152*pixels.data[i+1]+.0722*pixels.data[i+2],alpha=Math.round(sourceAlpha*(255-luminance)/255);if(alpha>12)visible++;pixels.data[i]=parseInt(hex[0],16);pixels.data[i+1]=parseInt(hex[1],16);pixels.data[i+2]=parseInt(hex[2],16);pixels.data[i+3]=alpha}if(visible<Math.max(4,Math.floor(canvas.width*canvas.height*.0001))){images.forEach(image=>{image.removeAttribute('src');image.classList.remove('ready')});status.textContent='No usable one-color artwork was found in this file.';return false}context.putImageData(pixels,0,0);images.forEach(image=>{image.src=canvas.toDataURL('image/png');image.classList.add('ready')});return true};let uploadTicket=0;const load=selected=>{const ticket=++uploadTicket;window.__fsnArtworkJobId=null;images.forEach(image=>{image.removeAttribute('src');image.classList.remove('ready')});logoReady=false;if(!selected)return;const extension=(selected.name.toLowerCase().match(/\.[^.]+$/u)||[''])[0];if(!types.includes(selected.type)&&!extensions.includes(extension)){file.value='';status.textContent="Choose PNG, JPEG, WebP, AI, EPS, or PDF artwork.";return}if(selected.size<1||selected.size>max){file.value='';status.textContent="Artwork must be 25 MB or smaller.";return}if(!['.png','.jpg','.jpeg','.webp'].includes(extension)){logoReady=false;cropButton.hidden=true;status.textContent='Checking and converting your artwork securely…';window.fsnConvertArtwork(selected).then(result=>{if(ticket!==uploadTicket)return;window.__fsnArtworkJobId=result.jobId;const image=new Image();image.onload=async()=>{const fitted=await window.fsnFitArtwork(image);if(ticket!==uploadTicket)return;logoImage=fitted;originalLogoImage=image;cropState='Original';scale=.6;cropButton.hidden=false;logoReady=recolor();update();Promise.all(images.map(img=>img.decode().catch(()=>{}))).then(()=>{if(ticket===uploadTicket){scale=Math.min(.6,maximumScale());update()}});if(logoReady)status.textContent='Artwork cleared and converted for preview.'};image.onerror=()=>{status.textContent='The cleared artwork preview could not be loaded.'};image.src=result.image}).catch(error=>{if(ticket!==uploadTicket)return;window.__fsnArtworkJobId=null;status.textContent=error.message==='ARTWORK_REJECTED'?'This artwork did not pass the security check.':'Artwork conversion was not completed. Please verify the file and try again.'});return}const reader=new FileReader();reader.onerror=()=>{status.textContent="Artwork could not be read. Choose a different image."};reader.onload=()=>{if(ticket!==uploadTicket)return;const image=new Image();image.onload=async()=>{const fitted=await window.fsnFitArtwork(image);if(ticket!==uploadTicket)return;logoImage=fitted;originalLogoImage=image;cropState='Original';scale=.6;cropButton.hidden=false;logoReady=recolor();update();Promise.all(images.map(img=>img.decode().catch(()=>{}))).then(()=>{if(ticket===uploadTicket){scale=Math.min(.6,maximumScale());update();}});if(logoReady)status.textContent="Artwork loaded for local preview."};image.onerror=()=>{status.textContent="Artwork could not be read. Choose a different image."};image.src=String(reader.result)};reader.readAsDataURL(selected)};const logoBoundsCache=new WeakMap();window.fsnAlignDiamond=(surface,image,fitPass=0)=>{
image.style.removeProperty('transform');
if(!surface.classList.contains('finished')||image.hidden)return;
const cs=getComputedStyle(image),w=parseFloat(cs.width),h=parseFloat(cs.height);
if(!w||!h)return;
const origin=cs.transformOrigin.split(' ').map(parseFloat),matrix=new DOMMatrix(cs.transform==='none'?undefined:cs.transform);
let bounds=[0,0,w,h];
if(image.classList.contains('preview-text')){
const ctx=document.createElement('canvas').getContext('2d');
ctx.font=cs.fontStyle+' '+cs.fontWeight+' '+cs.fontSize+' '+cs.fontFamily;
if('letterSpacing' in ctx)ctx.letterSpacing=cs.letterSpacing;
const lineHeight=parseFloat(cs.lineHeight),lines=image.textContent.split('\n'),rects=[];
lines.forEach((line,index)=>{const m=ctx.measureText(line);if(!line.trim())return;
const ascent=m.fontBoundingBoxAscent,descent=m.fontBoundingBoxDescent;
if(!Number.isFinite(ascent)||!Number.isFinite(descent))return;
const baseline=index*lineHeight+(lineHeight-ascent-descent)/2+ascent;
const x=cs.textAlign==='center'?(w-m.width)/2:cs.textAlign==='right'?w-m.width:0;
rects.push([x-m.actualBoundingBoxLeft,baseline-m.actualBoundingBoxAscent,x+m.actualBoundingBoxRight,baseline+m.actualBoundingBoxDescent]);
});
if(rects.length)bounds=[Math.min(...rects.map(r=>r[0])),Math.min(...rects.map(r=>r[1])),Math.max(...rects.map(r=>r[2])),Math.max(...rects.map(r=>r[3]))];
}
const [x0,y0,x1,y1]=bounds;
const points=[[x0,y0],[x1,y0],[x1,y1],[x0,y1]].map(([x,y])=>{const p=matrix.transformPoint(new DOMPoint(x-origin[0],y-origin[1]));return [image.offsetLeft+origin[0]+p.x,image.offsetTop+origin[1]+p.y]});
const xs=points.map(p=>p[0]),ys=points.map(p=>p[1]),left=Math.min(...xs),top=Math.min(...ys),right=Math.max(...xs),bottom=Math.max(...ys);
const size=document.querySelector('input[name="product"]:checked').dataset.productKind==='COCKTAIL'?114.3:101.6;
const unfolded=surface.classList.contains('unfolded'),faceWidth=surface.clientWidth/(unfolded?2:1),faceOffset=unfolded?faceWidth:0;
const clearance=size===114.3?10:13,edge=faceWidth*Math.min(76.2,size-clearance*2)/size,inset=faceWidth*clearance/size,far=faceWidth-inset-edge,center=(faceWidth-edge)/2;
// Fit actual ink, not the text element: script flourishes can exceed its box.
if(image.classList.contains('preview-text')&&(right-left>edge||bottom-top>edge)&&fitPass<12){
const ratio=Math.min(edge/(right-left),edge/(bottom-top))*.995;
image.style.fontSize=(parseFloat(cs.fontSize)*ratio)+'px';
return window.fsnAlignDiamond(surface,image,fitPass+1);
}
const placement=image.dataset.placement||surface.dataset.placement;
const anchor=({TOP_CORNER:'TOP_LEFT',RIGHT_CORNER:'TOP_RIGHT',BOTTOM_CORNER:'BOTTOM_RIGHT',LEFT_CORNER:'BOTTOM_LEFT'})[placement]||placement;
const sx=faceOffset+(anchor.endsWith('LEFT')?inset:anchor.endsWith('RIGHT')?far:center),sy=faceOffset+(anchor.startsWith('TOP')?inset:anchor.startsWith('BOTTOM')?far:center);
const dx=anchor.endsWith('LEFT')?sx-left:anchor.endsWith('RIGHT')?sx+edge-right:sx+edge/2-(left+right)/2;
const dy=anchor.startsWith('TOP')?sy-top:anchor.startsWith('BOTTOM')?sy+edge-bottom:sy+edge/2-(top+bottom)/2;
image.style.transform='translate('+dx+'px,'+dy+'px) '+(cs.transform==='none'?'':cs.transform);
};window.fsnSyncUnfolded=()=>{
const folded=document.querySelector('#dual-preview .finished'),unfolded=document.querySelector('#dual-preview .unfolded');
if(!folded?.clientWidth||!unfolded?.clientWidth)return;
const factor=unfolded.clientWidth/2/folded.clientWidth,offset=unfolded.clientWidth/2;
for(const selector of ['.preview-text','.artwork-image']){
const source=folded.querySelector(selector),target=unfolded.querySelector(selector);if(!source||!target)continue;
const cs=getComputedStyle(source),matrix=new DOMMatrix(cs.transform==='none'?undefined:cs.transform);matrix.e*=factor;matrix.f*=factor;
Object.assign(target.style,{left:(offset+source.offsetLeft*factor)+'px',top:(offset+source.offsetTop*factor)+'px',right:'auto',bottom:'auto',width:parseFloat(cs.width)*factor+'px',height:parseFloat(cs.height)*factor+'px',maxWidth:'none',maxHeight:'none',fontSize:parseFloat(cs.fontSize)*factor+'px',lineHeight:parseFloat(cs.lineHeight)*factor+'px',letterSpacing:(parseFloat(cs.letterSpacing)||0)*factor+'px',transformOrigin:cs.transformOrigin.split(' ').slice(0,2).map(v=>parseFloat(v)*factor+'px').join(' '),transform:matrix.toString()});
}
};document.fonts?.addEventListener('loadingdone',()=>window.dispatchEvent(new Event('resize')));const logoMaximumScale=()=>{
if(!logoImage)return 1;const surface=surfaces.find(s=>s.classList.contains('finished')&&s.clientWidth>0),image=surface?.querySelector('.artwork-image');if(!image||!image.complete||!image.naturalWidth)return 8;
let bounds=logoBoundsCache.get(logoImage);if(!bounds){const c=document.createElement('canvas');c.width=logoImage.naturalWidth;c.height=logoImage.naturalHeight;const ctx=c.getContext('2d',{willReadFrequently:true});ctx.drawImage(logoImage,0,0);const pixels=ctx.getImageData(0,0,c.width,c.height).data;let x0=c.width,y0=c.height,x1=0,y1=0;for(let y=0;y<c.height;y++)for(let x=0;x<c.width;x++){const i=(y*c.width+x)*4;if(pixels[i+3]*(255-(.2126*pixels[i]+.7152*pixels[i+1]+.0722*pixels[i+2]))/255>1){x0=Math.min(x0,x);y0=Math.min(y0,y);x1=Math.max(x1,x+1);y1=Math.max(y1,y+1);}}if(x1<=x0||y1<=y0)return 1;bounds=[x0/c.width,y0/c.height,x1/c.width,y1/c.height];logoBoundsCache.set(logoImage,bounds);}
const edge=surface.clientWidth*Math.min(76.2,(isCocktail()?114.3:101.6)-26)/(isCocktail()?114.3:101.6),inset=surface.clientWidth*(isCocktail()?10:13)/(isCocktail()?114.3:101.6),far=surface.clientWidth-inset-edge,center=(surface.clientWidth-edge)/2;
const anchor=({TOP_CORNER:'TOP_LEFT',RIGHT_CORNER:'TOP_RIGHT',BOTTOM_CORNER:'BOTTOM_RIGHT',LEFT_CORNER:'BOTTOM_LEFT'})[placement.value]||placement.value;
const sx=anchor.endsWith('LEFT')?inset:anchor.endsWith('RIGHT')?far:center,sy=anchor.startsWith('TOP')?inset:anchor.startsWith('BOTTOM')?far:center;
const previous=surface.style.getPropertyValue('--art-scale');
const fits=value=>{surface.style.setProperty('--art-scale',String(value));window.fsnAlignDiamond(surface,image);const cs=getComputedStyle(image),w=parseFloat(cs.width),h=parseFloat(cs.height),origin=cs.transformOrigin.split(' ').map(parseFloat);let matrix=new DOMMatrix();if(cs.rotate&&cs.rotate!=='none')matrix=matrix.rotate(parseFloat(cs.rotate)||0);if(cs.transform!=='none')matrix=matrix.multiply(new DOMMatrix(cs.transform));return [[bounds[0],bounds[1]],[bounds[2],bounds[1]],[bounds[2],bounds[3]],[bounds[0],bounds[3]]].every(([x,y])=>{const p=matrix.transformPoint(new DOMPoint(x*w-origin[0],y*h-origin[1]));const px=image.offsetLeft+origin[0]+p.x,py=image.offsetTop+origin[1]+p.y;return px>=sx-.1&&py>=sy-.1&&px<=sx+edge+.1&&py<=sy+edge+.1;});};
try{let low=.01,high=8;for(let i=0;i<18;i++){const mid=(low+high)/2;if(fits(mid))low=mid;else high=mid;}return low;}finally{surface.style.setProperty('--art-scale',previous);window.fsnAlignDiamond(surface,image);}
};const maximumScale=()=>{const choice=creativeChoices.find(item=>item.checked);if(!choice||choice.value!=='text')return logoMaximumScale();const surface=surfaces.find(item=>item.classList.contains('finished')&&item.clientWidth>0);if(!surface)return 1;const context=document.createElement('canvas').getContext('2d');context.font=Number(textSize.value)+'px '+textFont.value;const lines=textInput.value.split(/\r?\n/).slice(0,maxTextLines),width=Math.max(1,...lines.map(line=>context.measureText(line).width)),height=Math.max(1,lines.length)*Number(textSize.value)*1.15;const edge=surface.clientWidth*Math.min(76.2,(isCocktail()?114.3:101.6)-26)/(isCocktail()?114.3:101.6),extent=product().dataset.orientation==='DIAMOND'?(width+height)/Math.SQRT2:Math.max(width,height);return Math.max(.01,.6*edge/extent)};let previousPrintNapkin=null;const update=()=>{if(previousPrintNapkin!==napkin.value){previousPrintNapkin=napkin.value;const napkinKey=napkin.value.toLowerCase(),defaultInk=napkinKey==='black'?'#ffffff':napkinKey==='white'?'#000000':null;if(defaultInk&&!logoFoil.value&&!textFoil.value&&['','#000000','#ffffff'].includes(logoColor.value.toLowerCase())){logoColor.value=defaultInk;textColor.value=defaultInk;recolor()}}const selected=product(),cocktail=isCocktail();dual.hidden=cocktail;single.hidden=!cocktail;bases.forEach(base=>{base.src=cocktail?assets[napkin.value]:quarterFoldAssets[napkin.value+':'+base.dataset.view];base.hidden=false});surfaces.forEach(surface=>{const face=quarterFaceCalibration[napkin.value]||quarterFaceCalibration.white;surface.dataset.napkinColor=napkin.value;surface.style.setProperty('--qf-image-left',face.imageLeftPercent+'%');surface.style.setProperty('--qf-image-top',face.imageTopPercent+'%');surface.style.setProperty('--qf-image-width',face.imageWidthPercent+'%');surface.style.setProperty('--qf-image-height',face.imageHeightPercent+'%');surface.dataset.orientation=surface.classList.contains('unfolded')?'SQUARE':selected.dataset.orientation;surface.style.backgroundColor=cocktail?'#ffffff':napkin.value==='Black'?'#111111':'#ffffff';surface.style.setProperty('--fold-edge',napkin.value==='Black'?'#050505':'#b9aa9e');surface.style.setProperty('--fold-highlight',napkin.value==='Black'?'#2e2e2e':'#ded4cc');surface.classList.toggle('low-contrast',!cocktail&&napkin.value==='Black'&&selectedPrintValue()==='#000000');surface.style.setProperty('--art-scale',String(scale));surface.dataset.interaction=step===5?'size':'none'});const enteredQuantity=Math.max(50,Math.floor(Number(quantity.value)||50)),priceTiers=customerPriceTiers[selected.dataset.productKind],priceTier=[...priceTiers].reverse().find(tier=>enteredQuantity>=tier.minimumQuantity)||priceTiers[0],totalCents=enteredQuantity*priceTier.unitPriceCents;priceOutput.textContent=enteredQuantity.toLocaleString('en-US')+' — '+new Intl.NumberFormat('en-US',{style:'currency',currency:'USD'}).format(totalCents/100);document.getElementById('step-price-tier-rows').innerHTML=priceTiers.map((tier,i)=>{const next=priceTiers[i+1];return '<tr><th scope=row>'+tier.minimumQuantity.toLocaleString('en-US')+(next?'–'+(next.minimumQuantity-1).toLocaleString('en-US'):'+')+'</th><td>'+new Intl.NumberFormat('en-US',{style:'currency',currency:'USD'}).format(tier.unitPriceCents/100)+'</td></tr>'}).join('');const creativeType=(creativeChoices.find(choice=>choice.checked)||creativeChoices[0]).value;creativeEditors.forEach(editor=>{editor.hidden=editor.dataset.creativeEditor!==creativeType});images.forEach(image=>{image.hidden=creativeType!=='logo'});const lines=creativeType==='text'?textInput.value.replaceAll('\r\n','\n').split('\n').slice(0,maxTextLines).map(line=>line.trim()):[],hasText=lines.some(Boolean);const savedTextPlacement=textPlacement.value;if([...textPlacement.options].map(option=>option.value).join('|')!==anchors().join('|'))textPlacement.replaceChildren(...anchors().map(anchor=>new Option(anchor.replaceAll('_',' '),anchor)));textPlacement.value=anchors().includes(savedTextPlacement)?savedTextPlacement:'CENTER';renderPlacementButtons(textPlacementButtons,anchors(),textPlacement.value,value=>{textPlacement.value=value;update()});texts.forEach(node=>{node.style.fontFamily=textFont.value;node.style.fontSize=(Number(textSize.value)*scale/.6)+'px';const alignment=(textAlignmentChoices.find(choice=>choice.checked)||textAlignmentChoices[1]).value;node.style.textAlign=alignment;node.style.textAlignLast=alignment==='justify'?'justify':'auto';node.dataset.placement=textPlacement.value;node.textContent=lines.join('\n');node.style.color=selectedPrintValue();node.hidden=!hasText});const hasCreative=creativeType==='logo'?logoReady:hasText;summary.textContent=selected.dataset.name+' · '+napkin.options[napkin.selectedIndex].text+' napkin · '+selectedPrintLabel()+' print';review.textContent=hasCreative?summary.textContent+' · '+(creativeType==='logo'?(logoReady?'Logo included · '+cropState:'Logo required'):'Text only')+' · '+(creativeType==='text'?(hasText?lines.join(' / '):'Text required'):'No text'):creativeType==='logo'?'Upload a logo before confirming.':'Add text before confirming.';document.getElementById('confirm').disabled=!hasCreative;scaleOutput.textContent=Math.round(scale*100)+'%';images.forEach(image=>image.setAttribute('aria-valuenow',String(Math.round(scale*100))));[...images,...texts].forEach(image=>window.fsnAlignDiamond(image.closest('.napkin'),image));window.fsnSyncUnfolded();if(hasCreative&&scale>maximumScale()+.001){scale=maximumScale();update();}};form.addEventListener('change',event=>{if(event.target===file)load(file.files&&file.files[0]);else{if(event.target.matches('input[name="product"]')){setPlacement(anchors().includes(placement.value)?placement.value:'CENTER');rebuildColors()}if(event.target===logoColor){logoFoil.value='';textColor.value=logoColor.value;textFoil.value='';recolor()}if(event.target===logoFoil){logoColor.value='';textColor.value='';textFoil.value=logoFoil.value;recolor()}if(event.target===textColor){textFoil.value='';logoColor.value=textColor.value;logoFoil.value='';recolor()}if(event.target===textFoil){logoColor.value='';textColor.value='';logoFoil.value=textFoil.value;recolor()}update();status.textContent="Preview selection updated."}});quantity.addEventListener('input',update);textInput.addEventListener('input',()=>{const lines=textInput.value.split(/\r?\n/u);if(lines.length>maxTextLines){textInput.value=lines.slice(0,maxTextLines).join('\n');status.textContent='Text is limited to '+maxTextLines+' lines.'}update()});progress.forEach(item=>item.addEventListener('click',()=>showStep(Number(item.dataset.stepTarget))));document.querySelectorAll('[data-next]').forEach(button=>button.addEventListener('click',()=>showStep(step+1)));document.querySelectorAll('[data-prev]').forEach(button=>button.addEventListener('click',()=>showStep(step-1)));document.querySelectorAll('[data-edit]').forEach(button=>button.addEventListener('click',()=>showStep(Number(button.dataset.edit))));document.querySelectorAll('[data-skip]').forEach(button=>button.addEventListener('click',()=>{if(button.dataset.skip==='logo'){file.value='';logoReady=false;logoImage=null;originalLogoImage=null;cropButton.hidden=true;cropEditor.hidden=true;images.forEach(image=>image.classList.remove('ready'))}else{textInput.value=''}showStep(step+1)}));document.querySelectorAll('[data-scale]').forEach(button=>button.addEventListener('click',()=>{scale=Math.max(.25,Math.min(maximumScale(),scale+Number(button.dataset.scale)));update()}));placement.addEventListener('change',()=>setPlacement(placement.value));drop.addEventListener('dragover',event=>{event.preventDefault();drop.classList.add('dragover')});drop.addEventListener('dragleave',()=>drop.classList.remove('dragover'));drop.addEventListener('drop',event=>{event.preventDefault();drop.classList.remove('dragover');const selected=event.dataTransfer&&event.dataTransfer.files[0];if(selected)load(selected)});placement.addEventListener('change',()=>{setPlacement(placement.value);update()});textPlacement.addEventListener('change',()=>{if(!anchors().includes(textPlacement.value))textPlacement.value='CENTER';update()});surfaces.forEach(surface=>surface.addEventListener('pointerup',event=>{return;const rect=surface.getBoundingClientRect(),x=(event.clientX-rect.left)/rect.width,y=(event.clientY-rect.top)/rect.height,candidates=anchors(),positions={TOP_LEFT:[0,0],TOP_CENTER:[.5,0],TOP_RIGHT:[1,0],CENTER:[.5,.5],BOTTOM_LEFT:[0,1],BOTTOM_CENTER:[.5,1],BOTTOM_RIGHT:[1,1],TOP_CORNER:[.5,0],RIGHT_CORNER:[1,.5],BOTTOM_CORNER:[.5,1],LEFT_CORNER:[0,.5]};let best=candidates[0],distance=Infinity;candidates.forEach(candidate=>{const point=positions[candidate],next=Math.hypot(x-point[0],y-point[1]);if(next<distance){best=candidate;distance=next}});const creativeType=(creativeChoices.find(choice=>choice.checked)||creativeChoices[0]).value;if(creativeType==='text'){textPlacement.value=best;update()}else setPlacement(best);status.textContent='Design positioned at '+best.replaceAll('_',' ').toLowerCase()+'.'}));images.forEach(image=>{image.addEventListener('pointerdown',event=>{if(!logoReady||step!==5)return;event.preventDefault();event.stopPropagation();scaleDrag={pointerId:event.pointerId,x:event.clientX,y:event.clientY,start:scale,mode:'resize'};scaleDragged=false;image.setPointerCapture(event.pointerId)});image.addEventListener('pointermove',event=>{if(!scaleDrag||event.pointerId!==scaleDrag.pointerId)return;const dx=event.clientX-scaleDrag.x,dy=event.clientY-scaleDrag.y;if(Math.hypot(dx,dy)>3)scaleDragged=true;if(scaleDrag.mode==='resize'){scale=Math.max(.25,Math.min(maximumScale(),scaleDrag.start+(dx-dy)/200));update()}});image.addEventListener('pointerup',event=>{if(!scaleDrag||event.pointerId!==scaleDrag.pointerId)return;image.releasePointerCapture(event.pointerId);scaleDrag=null;status.textContent='Artwork size set to '+Math.round(scale*100)+'%.';setTimeout(()=>{scaleDragged=false},0)});image.addEventListener('keydown',event=>{if(!['ArrowUp','ArrowRight','ArrowDown','ArrowLeft'].includes(event.key))return;event.preventDefault();const grow=event.key==='ArrowUp'||event.key==='ArrowRight';scale=Math.max(.25,Math.min(maximumScale(),scale+(grow?0.05:-0.05)));update();status.textContent='Artwork size set to '+Math.round(scale*100)+'%.'})});cropButton.addEventListener('click',openCrop);[cropX,cropY,cropZoom].forEach(control=>control.addEventListener('input',drawCrop));cropReset.addEventListener('click',resetCrop);cropCancel.addEventListener('click',()=>{cropEditor.hidden=true});cropAuto.addEventListener('click',autoTrim);cropApply.addEventListener('click',applyCrop);cropCanvas.addEventListener('pointerdown',event=>{cropDrag={x:event.clientX,y:event.clientY,cx:Number(cropX.value),cy:Number(cropY.value)};cropCanvas.setPointerCapture(event.pointerId)});cropCanvas.addEventListener('pointermove',event=>{if(!cropDrag)return;const rect=cropCanvas.getBoundingClientRect();cropX.value=String(Math.max(0,Math.min(100,cropDrag.cx+(event.clientX-cropDrag.x)/rect.width*100)));cropY.value=String(Math.max(0,Math.min(100,cropDrag.cy+(event.clientY-cropDrag.y)/rect.height*100)));drawCrop()});cropCanvas.addEventListener('pointerup',()=>{cropDrag=null});cropCanvas.addEventListener('keydown',event=>{const delta=event.shiftKey?10:1;if(event.key==='ArrowLeft'||event.key==='ArrowRight'){event.preventDefault();cropX.value=String(Math.max(0,Math.min(100,Number(cropX.value)+(event.key==='ArrowLeft'?-delta:delta))))}else if(event.key==='ArrowUp'||event.key==='ArrowDown'){event.preventDefault();cropY.value=String(Math.max(0,Math.min(100,Number(cropY.value)+(event.key==='ArrowUp'?-delta:delta))))}else return;drawCrop()});document.getElementById('confirm').addEventListener('click',()=>{update();if(!document.getElementById('confirm').disabled)status.textContent='Local preview confirmed. A production proof is still required.'});swatchToggle.addEventListener('click',()=>{const open=swatchPanel.hidden;swatchPanel.hidden=!open;swatchToggle.setAttribute('aria-expanded',String(open))});document.addEventListener('click',event=>{if(!swatchPanel.hidden&&!swatchPanel.contains(event.target)&&event.target!==swatchToggle&&!swatchToggle.contains(event.target))closeColorMenu()});rebuildColors();setPlacement('CENTER');showStep(0);document.addEventListener('fsn-capture-draft',event=>{event.detail.state={fields:[...form.querySelectorAll('input:not([type=file]),select,textarea')].map(node=>({id:node.id,name:node.name,value:node.value,checked:node.checked,type:node.type})),scale,placement:placement.value,image:logoImage?logoImage.src:null,originalImage:originalLogoImage?originalLogoImage.src:null,cropState,artworkJobId:window.__fsnArtworkJobId||null}});(async()=>{const editId=new URLSearchParams(window.__fsnQuery).get('edit');if(editId){try{const saved=await creativeStore('get','fsn-creative:'+editId),draft=saved&&saved.returnState;if(!draft)throw Error('Draft unavailable');const assign=()=>{draft.fields.forEach(field=>{const node=field.id?document.getElementById(field.id):[...form.querySelectorAll('input')].find(input=>input.name===field.name&&input.value===field.value);if(node){if(field.type==='radio'||field.type==='checkbox')node.checked=field.checked;else node.value=field.value}})};assign();update();assign();scale=draft.scale;setPlacement(draft.placement);cropState=draft.cropState;window.__fsnArtworkJobId=draft.artworkJobId||null;const finish=()=>{recolor();update();showStep(3);document.querySelectorAll('input[name="creative-type"]').forEach(node=>node.dispatchEvent(new Event('change',{bubbles:true})))};if(draft.image){logoImage=new Image();originalLogoImage=new Image();originalLogoImage.src=draft.originalImage||draft.image;logoImage.onload=()=>{logoReady=true;cropButton.hidden=false;finish()};logoImage.src=draft.image}else finish()}catch(error){status.textContent='The saved design is unavailable in this tab. Please reopen your original designer.'}}})();})();</script><script>(()=>{const update=()=>{document.querySelectorAll('#dual-preview .finished,#dual-preview .unfolded,#proof-product.quarter-fold').forEach(face=>{const image=face.querySelector('img');if(!image||!image.getAttribute('src'))return;let fabric=face.querySelector('.flat-quarter-face');if(!fabric){fabric=document.createElement('span');fabric.className='flat-quarter-face';fabric.setAttribute('aria-hidden','true');face.appendChild(fabric)}fabric.dataset.white=String(face.dataset.napkinColor==='white');fabric.style.backgroundImage='url("'+image.getAttribute('src')+'")';if(!face.classList.contains('unfolded')){let flap=face.querySelector('.flat-quarter-flap');if(!flap){flap=document.createElement('span');flap.className='flat-quarter-flap';flap.setAttribute('aria-hidden','true');face.appendChild(flap)}flap.dataset.white=fabric.dataset.white;flap.style.backgroundImage='url("'+image.getAttribute('src')+'")'}})};const start=()=>{if(!document.body)return;new MutationObserver(update).observe(document.body,{subtree:true,attributes:true,attributeFilter:['src','data-napkin-color','class']});update()};if(document.body)start();else document.addEventListener('DOMContentLoaded',start,{once:true})})();</script><script>(()=>{const step=document.getElementById('step-5'),actions=step.querySelector('.actions');const groups=['logo','text'].map(kind=>{const group=document.createElement('div');group.dataset.positionKind=kind;const id=kind==='logo'?'placement':'text-placement';[document.querySelector('label[for="'+id+'"]'),document.getElementById(id),document.getElementById(kind+'-placement-buttons')].forEach(node=>{if(node)group.appendChild(node)});step.insertBefore(group,actions);return group});const update=()=>{const selected=document.querySelector('input[name="creative-type"]:checked');groups.forEach(group=>group.hidden=group.dataset.positionKind!==(selected?selected.value:'logo'))};document.querySelectorAll('input[name="creative-type"]').forEach(input=>input.addEventListener('change',update));update()})();</script><script>(()=>{'use strict';const openButton=document.getElementById('design-help-open'),dialog=document.getElementById('design-help-dialog'),closeButton=document.getElementById('design-help-close'),form=document.getElementById('design-help-form'),status=document.getElementById('design-help-status');openButton.addEventListener('click',()=>dialog.showModal());closeButton.addEventListener('click',()=>dialog.close());dialog.addEventListener('click',event=>{if(event.target===dialog)dialog.close()});form.addEventListener('submit',event=>{event.preventDefault();if(!form.reportValidity())return;const data=new FormData(form),name=String(data.get('name')||''),email=String(data.get('email')||''),reference=String(data.get('reference')||''),message=String(data.get('message')||''),subject='Custom napkin design help'+(name?' — '+name:''),body=['Name: '+name,'Customer email: '+email,reference?'Order or quote: '+reference:'','',message].filter((line,index)=>line!==''||index===3).join('\n');status.textContent='Opening your email app…';window.location.href='mailto:kymnioski@fivestarnapkins.com?cc=trussomano@fivestarnapkins.com&subject='+encodeURIComponent(subject)+'&body='+encodeURIComponent(body)})})();(()=>{'use strict';const confirm=document.getElementById('confirm');confirm.textContent='Continue to proof';confirm.addEventListener('click',async()=>{if(confirm.disabled)return;const product=document.querySelector('input[name="product"]:checked'),quantity=document.getElementById('quantity'),napkin=document.getElementById('napkin-color'),logoColor=document.getElementById('logo-color'),logoFoil=document.getElementById('logo-foil'),textColor=document.getElementById('text-color'),textFoil=document.getElementById('text-foil'),placement=document.getElementById('placement'),textPlacement=document.getElementById('text-placement'),creative=document.querySelector('input[name="creative-type"]:checked'),artwork=document.querySelector('.artwork-image[aria-valuenow]'),isText=creative&&creative.value==='text',printSelect=isText?(textFoil.value?textFoil:textColor):(logoFoil.value?logoFoil:logoColor),placementSelect=isText?textPlacement:placement,params=new URLSearchParams({v:'1',product:product.dataset.name,productId:product.value,family:product.dataset.productKind,quantity:String(Math.max(50,Math.floor(Number(quantity.value)||50))),napkinColor:napkin.options[napkin.selectedIndex].text,napkinColorKey:napkin.value,printColor:printSelect.options[printSelect.selectedIndex].text,placement:placementSelect.value,scalePercent:artwork?artwork.getAttribute('aria-valuenow')||'60':'60',creativeType:isText?'text':'logo'});const surface=[...document.querySelectorAll('.napkin.finished')].find(node=>node.getBoundingClientRect().width>0),art=surface&&surface.querySelector(isText?'.preview-text':'.artwork-image');if(!art){alert('Return to your design before continuing.');return}const computed=getComputedStyle(art),creativePayload={version:1,kind:isText?'text':'logo',text:isText?art.textContent:'',textAlign:isText?computed.textAlign:'center',image:isText?'':art.getAttribute('src'),color:computed.color,fontFamily:computed.fontFamily,fontWeight:computed.fontWeight,fontStyle:computed.fontStyle,lineHeightRatio:parseFloat(computed.lineHeight)/parseFloat(computed.fontSize),letterSpacingRatio:(parseFloat(computed.letterSpacing)||0)/parseFloat(computed.fontSize),fontSizeRatio:parseFloat(computed.fontSize)/(surface.offsetWidth||1),widthRatio:art.offsetWidth/(surface.offsetWidth||1),geometry:{left:art.offsetLeft/surface.clientWidth,top:art.offsetTop/surface.clientHeight,width:art.offsetWidth/surface.clientWidth,height:art.offsetHeight/surface.clientHeight,sourceWidth:surface.clientWidth,fontSizeRatio:parseFloat(computed.fontSize)/(surface.clientWidth||1),transform:computed.transform,rotate:computed.rotate},createdAt:Date.now(),artworkJobId:isText?null:(window.__fsnArtworkJobId||null)};if(isText){const range=document.createRange(),surfaceRect=surface.getBoundingClientRect();range.selectNodeContents(art);const ink=range.getBoundingClientRect();Object.assign(creativePayload.geometry,{inkLeft:(ink.left-surfaceRect.left)/surfaceRect.width,inkTop:(ink.top-surfaceRect.top)/surfaceRect.height,inkWidth:ink.width/surfaceRect.width,inkHeight:ink.height/surfaceRect.height})}if((isText&&!creativePayload.text.trim())||(!isText&&!/^data:image\/png;base64,/.test(creativePayload.image||''))){alert('Your artwork preview is not ready. Return to Customize.');return}const draftCapture={};document.dispatchEvent(new CustomEvent('fsn-capture-draft',{detail:draftCapture}));creativePayload.returnState=draftCapture.state;const creativeId=crypto.randomUUID();try{await (creativePayload.kind==='text'?(sessionStorage.setItem('fsn-creative:'+creativeId,JSON.stringify(creativePayload)),Promise.resolve()):creativeStore('put','fsn-creative:'+creativeId,creativePayload))}catch(error){alert('Your browser could not save this design locally. Keep this tab open and check browser storage availability; your file may not be too large.');return}params.set('creativeId',creativeId);parent.postMessage({type:'fsn-view',view:'proof',query:params.toString()},parent.location.origin)})})();</script><script>(()=>{const chooser=document.getElementById('text-font'),search=document.getElementById('font-search');if(!chooser||!search)return;chooser.hidden=true;const picker=document.createElement('details');picker.className='font-picker';const summary=document.createElement('summary');summary.setAttribute('aria-label','Choose font');const list=document.createElement('div');list.className='font-picker-list';picker.append(summary,list);chooser.after(picker);const sync=()=>{summary.textContent=chooser.selectedOptions[0]?.text||'Choose font';summary.style.fontFamily=chooser.value;};const render=()=>{list.replaceChildren();const query=search.value.trim().toLowerCase();let group='';for(const option of chooser.options){if(!option.text.toLowerCase().includes(query))continue;const label=option.parentElement.label||'Classic options';if(label!==group){const heading=document.createElement('p');heading.textContent=label;list.append(heading);group=label;}const button=document.createElement('button');button.type='button';button.className='font-picker-option';button.textContent=option.text;button.style.setProperty('--font-preview-family',option.value);button.setAttribute('aria-pressed',String(option.value===chooser.value));button.addEventListener('click',()=>{chooser.value=option.value;chooser.dispatchEvent(new Event('change',{bubbles:true}));sync();picker.open=false;summary.focus();});list.append(button);}};picker.addEventListener('toggle',()=>{if(picker.open)render();});search.addEventListener('input',()=>{picker.open=true;render();});chooser.addEventListener('change',()=>{sync();document.fonts.load('20px '+chooser.value).then(()=>window.dispatchEvent(new Event('resize'))).catch(()=>{});});sync();})();</script><script>(()=>{
const normalize=value=>{const text=String(value||'').trim().replace(/\s+/g,' ').toUpperCase();if(!text)return '';const code=text.replace(/^(?:PANTONE|PMS)\s*/,'');return /^(?:\d{3,4}|(?:WARM|COOL) GRAY \d{1,2})(?:\s*[UC])?$/.test(code)?'PANTONE '+code.replace(/\s*([UC])$/,' $1')+(/[UC]$/.test(code)?'':' U'):text;};
const form=document.getElementById('designer-form');
if(form){const step=document.getElementById('step-4');const wrap=document.createElement('div');const label=document.createElement('label');label.htmlFor='pms-reference';label.textContent='PMS / Pantone number (optional)';const input=document.createElement('input');input.id='pms-reference';input.type='text';input.maxLength=80;input.placeholder='e.g. PANTONE 289 U';input.style.cssText='width:100%;padding:.6rem;margin:.3rem 0 1rem';input.setAttribute('aria-description','Customer-supplied printing instruction. Preview color remains approximate.');const status=document.createElement('p');status.textContent='Screen colors are approximate.';wrap.append(label,input,status);const actions=step.querySelector('.actions');if(actions)actions.before(wrap);else step.append(wrap);}
else{const id=new URLSearchParams(window.__fsnQuery).get('creativeId');if(id)creativeStore('get','fsn-creative:'+id).then(saved=>{const value=saved?.returnState?.fields?.find(field=>field.id==='pms-reference')?.value||'';if(value.trim()){const p=document.createElement('p');p.id='proof-pms-reference';p.style.cssText='text-align:center;font-weight:600';p.textContent='PMS / Pantone: '+value;const note=document.createElement('p');note.style.textAlign='center';note.textContent='Screen colors are approximate. Use the PMS reference for printing.';document.querySelector('[data-panel="proof"] .proof')?.after(p,note);}}).catch(()=>{});}
if(form){const input=document.getElementById('pms-reference');const wrapper=input.parentElement;document.getElementById('step-4').append(wrapper);const status=wrapper.querySelector('p');status.id='pms-reference-status';status.setAttribute('aria-live','polite');input.setAttribute('aria-describedby',status.id);const update=()=>{status.textContent=/\bC$/i.test(input.value.trim())?'Coated (C) reference: please confirm with Paper Place. Our printing standard is Uncoated (U) for all napkin colors. This reference has not been changed.':'Printing reference: Uncoated (U). Screen colors are approximate.';};const commit=()=>{input.value=normalize(input.value);update();};input.addEventListener('input',update);input.addEventListener('change',commit);input.addEventListener('blur',commit);document.addEventListener('fsn-capture-draft',commit,true);document.addEventListener('click',commit,true);document.addEventListener('submit',commit,true);update();}
})();</script><script>const fsnPmsColors=(()=>{const rows=JSON.parse(window.frameElement.dataset.settings||'{}')._catalogs?.pms;return rows?Object.fromEntries(rows.filter(row=>row.enabled).map(row=>[row.key,row.hex])):{"100":"#f4ed7c","102":"#f9e814","103":"#c6ad0f","104":"#ad9b0c","105":"#82750f","106":"#f7e859","107":"#f9e526","108":"#f7dd16","109":"#f9d616","110":"#d8b511","111":"#aa930a","112":"#99840a","113":"#f9e55b","114":"#f9e24c","115":"#f9e04c","116":"#fcd116","117":"#c6a00c","118":"#aa8e0a","119":"#897719","120":"#f9e27f","121":"#f9e070","122":"#fcd856","123":"#ffc61e","124":"#e0aa0f","125":"#b58c0a","127":"#f4e287","128":"#f4db60","129":"#f2d13d","130":"#eaaf0f","131":"#c6930a","132":"#9e7c0a","133":"#705b0a","134":"#ffd87f","135":"#fcc963","136":"#fcbf49","137":"#fca311","138":"#d88c02","139":"#af7505","140":"#7a5b11","141":"#f2ce68","142":"#f2bf49","143":"#efb22d","144":"#e28c05","145":"#c67f07","146":"#9e6b05","147":"#725e26","148":"#ffd69b","149":"#fccc93","150":"#fcad56","151":"#f77f00","152":"#dd7500","153":"#bc6d0a","154":"#995905","155":"#f4dbaa","156":"#f2c68c","157":"#eda04f","158":"#e87511","159":"#c66005","160":"#9e540a","161":"#633a11","162":"#f9c6aa","163":"#fc9e70","164":"#fc7f3f","165":"#f96302","166":"#dd5900","167":"#bc4f07","168":"#6d3011","169":"#f9baaa","170":"#f98972","171":"#f9603a","172":"#f74902","173":"#d14414","174":"#933311","175":"#6d3321","176":"#f9afad","177":"#f9827f","178":"#f95e59","179":"#e23d28","180":"#c13828","181":"#7c2d23","182":"#f9bfc1","183":"#fc8c99","184":"#fc5e72","185":"#e8112d","186":"#ce1126","187":"#af1e2d","188":"#7c2128","189":"#ffa3b2","190":"#fc758e","191":"#f4476b","192":"#e5053a","193":"#bf0a30","194":"#992135","195":"#772d35","196":"#f4c9c9","197":"#ef99a3","198":"#e5566d","199":"#d81c3f","200":"#c41e3a","201":"#a32638","202":"#8c2633","203":"#f2afc1","204":"#ed7a9e","205":"#e54c7c","206":"#d30547","207":"#af003d","208":"#8e2344","209":"#75263d","210":"#ffa0bf","211":"#ff77a8","212":"#f94f8e","213":"#ea0f6b","214":"#cc0256","215":"#a50544","216":"#7c1e3f","217":"#f4bfd1","218":"#ed72aa","219":"#e22882","220":"#aa004f","221":"#930042","222":"#70193d","223":"#f993c4","224":"#f46baf","225":"#ed2893","226":"#d60270","227":"#ad005b","228":"#8c004c","229":"#6d213f","230":"#ffa0cc","231":"#fc70ba","232":"#f43fa5","233":"#ce007c","234":"#aa0066","235":"#8e0554","236":"#f9afd3","237":"#f484c4","238":"#ed4faf","239":"#e0219e","240":"#c40f89","241":"#ad0075","242":"#7c1c51","243":"#f2bad8","244":"#eda0d3","245":"#e87fc9","246":"#cc00a0","247":"#b7008e","248":"#a3057f","249":"#7f2860","250":"#edc4dd","251":"#e29ed6","252":"#d36bc6","253":"#af23a5","254":"#a02d96","255":"#772d6b","256":"#e5c4d6","257":"#d3a5c9","258":"#9b4f96","259":"#72166b","260":"#681e5b","261":"#5e2154","262":"#542344","263":"#e0cee0","264":"#c6aadb","265":"#9663c4","266":"#6d28aa","267":"#59118e","268":"#4f2170","269":"#442359","270":"#baafd3","271":"#9e91c6","272":"#8977ba","273":"#38197a","274":"#2b1166","275":"#260f54","276":"#2b2147","277":"#b5d1e8","278":"#99badd","279":"#6689cc","280":"#002b7f","281":"#002868","282":"#002654","283":"#9bc4e2","284":"#75aadb","285":"#3a75c4","286":"#0038a8","287":"#003893","288":"#00337f","289":"#002649","290":"#c4d8e2","292":"#75b2dd","293":"#0051ba","294":"#003f87","295":"#00386b","296":"#002d47","297":"#82c6e2","298":"#51b5e0","299":"#00a3dd","300":"#0072c6","301":"#005b99","302":"#004f6d","303":"#003f54","304":"#a5dde2","305":"#70cee2","306":"#00bce2","307":"#007aa5","308":"#00607c","309":"#003f49","310":"#72d1dd","311":"#28c4d8","312":"#00adc6","313":"#0099b5","314":"#00829b","315":"#006b77","316":"#00494f","317":"#c9e8dd","318":"#93dddb","319":"#4cced1","320":"#009ea0","321":"#008789","322":"#007272","323":"#006663","324":"#aaddd6","325":"#56c9c1","326":"#00b2aa","327":"#008c82","328":"#007770","329":"#006d66","330":"#005951","331":"#baead6","332":"#a0e5ce","333":"#5eddc1","334":"#00997c","335":"#007c66","336":"#006854","337":"#9bdbc1","338":"#7ad1b5","339":"#00b28c","340":"#009977","341":"#007a5e","342":"#006b54","343":"#00563f","344":"#b5e2bf","345":"#96d8af","346":"#70ce9b","347":"#009e60","348":"#008751","349":"#006b3f","350":"#234f33","351":"#b5e8bf","352":"#99e5b2","353":"#84e2a8","354":"#00b760","355":"#009e49","356":"#007a3d","357":"#215b33","358":"#aadd96","359":"#a0db8e","360":"#60c659","361":"#1eb53a","362":"#339e35","363":"#3d8e33","364":"#3a7728","365":"#d3e8a3","366":"#c4e58e","367":"#aadd6d","368":"#5bbf21","369":"#56aa1c","370":"#568e14","371":"#566b21","372":"#d8ed96","373":"#ceea82","374":"#bae860","375":"#8cd600","376":"#7fba00","377":"#709302","378":"#566314","379":"#e0ea68","380":"#d6e542","381":"#cce226","382":"#bad80a","383":"#a3af07","384":"#939905","385":"#707014","386":"#e8ed60","387":"#e0ed44","388":"#d6e80f","389":"#cee007","390":"#bac405","391":"#9e9e07","392":"#848205","393":"#f2ef87","394":"#eaed35","395":"#e5e811","396":"#e0e20c","397":"#c1bf0a","398":"#afa80a","399":"#998e07","400":"#d1c6b5","401":"#c1b5a5","402":"#afa593","403":"#998c7c","404":"#827566","405":"#6b5e4f","406":"#cec1b5","407":"#baaa9e","408":"#a8998c","409":"#99897c","410":"#7c6d63","411":"#66594c","412":"#3d3028","413":"#c6c1b2","414":"#b5afa0","415":"#a39e8c","416":"#8e8c7a","417":"#777263","418":"#605e4f","419":"#282821","420":"#d1ccbf","421":"#bfbaaf","422":"#afaaa3","423":"#96938e","424":"#827f77","425":"#60605b","426":"#2b2b28","427":"#dddbd1","428":"#d1cec6","429":"#adafaa","430":"#919693","431":"#666d70","432":"#444f51","433":"#30383a","434":"#e0d1c6","435":"#d3bfb7","436":"#bca59e","437":"#8c706b","438":"#593f3d","439":"#493533","440":"#3f302b","441":"#d1d1c6","442":"#babfb7","443":"#a3a8a3","444":"#898e8c","445":"#565959","446":"#494c49","447":"#3f3f38","448":"#54472d","449":"#544726","450":"#60542b","451":"#ada07a","452":"#c4b796","453":"#d6ccaf","454":"#e2d8bf","455":"#665614","456":"#998714","457":"#b59b0c","458":"#ddcc6b","459":"#e2d67c","460":"#eadd96","461":"#ede5ad","462":"#5b4723","463":"#755426","464":"#876028","465":"#c1a875","466":"#d1bf91","467":"#ddcca5","468":"#e2d6b5","469":"#603311","476":"#593d2b","477":"#633826","478":"#7a3f28","479":"#af8970","480":"#d3b7a3","481":"#e0ccba","482":"#e5d3c1","483":"#6b3021","484":"#9b301c","485":"#d81e05","486":"#ed9e84","487":"#efb5a0","488":"#f2c4af","489":"#f2d1bf","490":"#5b2626","491":"#752828","492":"#913338","493":"#db828c","494":"#f2adb2","495":"#f4bcbf","496":"#f7c9c6","497":"#512826","498":"#6d332b","499":"#7a382d","500":"#ce898c","501":"#eab2b2","502":"#f2c6c4","503":"#f4d1cc","504":"#511e26","505":"#661e2b","506":"#7a2638","507":"#d8899b","508":"#e8a5af","509":"#f2babf","510":"#f4c6c9","511":"#602144","512":"#84216b","513":"#9e2387","514":"#d884bc","515":"#e8a3c9","516":"#f2bad3","517":"#f4ccd8","518":"#512d44","519":"#63305e","520":"#703572","521":"#b58cb2","522":"#c6a3c1","523":"#d3b7cc","524":"#e2ccd3","525":"#512654","526":"#68217a","527":"#7a1e99","528":"#af72c1","529":"#cea3d3","530":"#d6afd6","531":"#e5c6db","532":"#353842","533":"#353f5b","534":"#3a4972","535":"#9ba3b7","536":"#adb2c1","537":"#c4c6ce","538":"#d6d3d6","539":"#003049","540":"#00335b","541":"#003f77","542":"#6693bc","543":"#93b7d1","544":"#b7ccdb","545":"#c4d3dd","546":"#0c3844","547":"#003f54","548":"#004459","549":"#5e99aa","550":"#87afbf","551":"#a3c1c9","552":"#c4d6d6","553":"#234435","554":"#195e47","555":"#076d54","556":"#7aa891","557":"#a3c1ad","558":"#b7cebc","559":"#c6d6c4","560":"#2b4c3f","561":"#266659","562":"#1e7a6d","563":"#7fbcaa","564":"#a0cebc","565":"#bcdbcc","566":"#d1e2d3","568":"#d6d6c6","569":"#05705e","570":"#008772","571":"#7fc6b2","572":"#aadbc6","573":"#bce2ce","574":"#cce5d6","575":"#495928","576":"#547730","577":"#608e3a","578":"#b5cc8e","579":"#c6d6a0","580":"#c9d6a3","581":"#e0ddbc","582":"#605e11","583":"#878905","584":"#aaba0a","585":"#dbe06b","586":"#e2e584","587":"#e8e89b","600":"#f4edaf","601":"#f2ed9e","602":"#f2ea87","603":"#ede85b","604":"#e8dd21","605":"#ddce11","606":"#d3bf11","607":"#f2eabc","608":"#efe8ad","609":"#eae596","610":"#e2db72","611":"#d6ce49","612":"#c4ba00","613":"#afa00c","614":"#eae2b7","615":"#e2dbaa","616":"#ddd69b","617":"#ccc47c","618":"#b5aa59","619":"#968c28","620":"#847711","621":"#d8ddce","622":"#c1d1bf","623":"#a5bfaa","624":"#7fa08c","625":"#5b8772","626":"#21543f","627":"#0c3026","628":"#cce2dd","629":"#b2d8d8","630":"#8cccd3","631":"#54b7c6","632":"#00a0ba","633":"#007f99","634":"#00667f","635":"#bae0e0","636":"#99d6dd","637":"#6bc9db","638":"#00b5d6","639":"#00a0c4","640":"#008cb2","641":"#007aa5","642":"#d1d8d8","643":"#c6d1d6","644":"#9bafc4","645":"#7796b2","646":"#5e82a3","647":"#26547c","648":"#00305e","649":"#d6d6d8","650":"#bfc6d1","651":"#9baabf","652":"#6d87a8","653":"#335687","654":"#0f2b5b","655":"#0c1c47","656":"#d6dbe0","657":"#c1c9dd","658":"#a5afd6","659":"#7f8cbf","660":"#5960a8","661":"#2d338e","662":"#0c1975","663":"#e2d3d6","664":"#d8ccd1","665":"#c6b5c4","666":"#a893ad","667":"#7f6689","668":"#664975","669":"#472b59","670":"#f2d6d8","671":"#efc6d3","672":"#eaaac4","673":"#e08cb2","674":"#d36b9e","675":"#bc3877","676":"#a00054","677":"#edd6d6","678":"#eaccce","679":"#e5bfc6","680":"#d39eaf","681":"#b7728e","682":"#a05175","683":"#7f284f","684":"#efccce","685":"#eabfc4","686":"#e0aaba","687":"#c9899e","688":"#b26684","689":"#934266","690":"#702342","691":"#efd1c9","692":"#e8bfba","693":"#dba8a5","694":"#c98c8c","695":"#b26b70","696":"#8e4749","697":"#7f383a","698":"#f7d1cc","699":"#f7bfbf","700":"#f2a5aa","701":"#e8878e","702":"#d6606d","703":"#b73844","704":"#9e2828","705":"#f9ddd6","706":"#fcc9c6","707":"#fcadaf","708":"#f98e99","709":"#f26877","710":"#e04251","711":"#d12d33","712":"#ffd3aa","713":"#f9c9a3","714":"#f9ba82","715":"#fc9e49","716":"#f28411","717":"#d36d00","718":"#bf5b00","719":"#f4d1af","720":"#efc49e","721":"#e8b282","722":"#d18e54","723":"#ba7530","724":"#8e4905","725":"#753802","726":"#edd3b5","727":"#e2bf9b","728":"#d3a87c","729":"#c18e60","730":"#aa753f","731":"#723f0a","732":"#60330a","801":"#00aacc","802":"#60dd49","803":"#ffed38","804":"#ff9338","805":"#f95951","806":"#ff0093","807":"#d6009e","808":"#00b59b","809":"#dde00f","810":"#ffcc1e","811":"#ff7247","812":"#fc2366","813":"#e50099","814":"#8c60c1","1205":"#f7e8aa","1215":"#f9e08c","1225":"#ffcc49","1235":"#fcb514","1245":"#bf910c","1255":"#a37f14","1265":"#7c6316","1345":"#ffd691","1355":"#fcce87","1365":"#fcba5e","1375":"#f99b0c","1385":"#cc7a02","1395":"#996007","1405":"#6b4714","1485":"#ffb777","1495":"#ff993f","1505":"#f47c00","1525":"#b55400","1535":"#8c4400","1545":"#4c280f","1555":"#f9bf9e","1565":"#fca577","1575":"#fc8744","1585":"#f96b07","1595":"#d15b05","1605":"#a04f11","1615":"#843f0f","1625":"#f9a58c","1635":"#f98e6d","1645":"#f97242","1655":"#f95602","1665":"#f95602","1675":"#a53f0f","1685":"#843511","1765":"#f99ea3","1767":"#f9b2b7","1775":"#f9848e","1777":"#fc6675","1785":"#fc4f59","1787":"#f43f4f","1788":"#ef2b2d","1795":"#d62828","1797":"#cc2d30","1805":"#af2626","1807":"#a03033","1815":"#7c211e","1817":"#5b2d28","1895":"#fcbfc9","1905":"#fc9bb2","1915":"#f4547c","1925":"#e00747","1935":"#c10538","1945":"#a80c35","1955":"#931638","2365":"#f7c4d8","2375":"#ea6bbf","2385":"#db28a5","2395":"#c4008c","2405":"#a8007a","2415":"#9b0070","2425":"#87005b","2562":"#d8a8d8","2563":"#d1a0cc","2567":"#bf93cc","2572":"#c687d1","2573":"#ba7cbc","2577":"#aa72bf","2582":"#aa47ba","2583":"#9e4fa5","2587":"#8e47ad","2592":"#930fa5","2593":"#872b93","2597":"#66008c","2602":"#820c8e","2603":"#70147a","2607":"#5b027a","2612":"#701e72","2613":"#66116d","2617":"#560c70","2622":"#602d59","2623":"#5b195e","2627":"#4c145e","2635":"#c9add8","2645":"#b591d1","2655":"#9b6dc6","2665":"#894fbf","2685":"#56008c","2695":"#44235e","2705":"#ad9ed3","2706":"#d1cedd","2707":"#bfd1e5","2708":"#afbcdb","2715":"#937acc","2716":"#a5a0d6","2717":"#a5bae0","2718":"#5b77cc","2725":"#7251bc","2726":"#6656bc","2727":"#5e68c4","2728":"#3044b5","2735":"#4f0093","2736":"#4930ad","2738":"#2d008e","2745":"#3f0077","2746":"#3f2893","2747":"#1c146b","2748":"#1e1c77","2755":"#35006d","2756":"#332875","2757":"#141654","2758":"#192168","2765":"#2b0c56","2766":"#2b265b","2767":"#14213d","2768":"#112151","2905":"#93c6e0","2915":"#60afdd","2925":"#008ed6","2935":"#005bbf","2945":"#0054a0","2955":"#003d6b","2965":"#00334c","2975":"#bae0e2","2985":"#51bfe2","2995":"#00a5db","3005":"#0084c9","3015":"#00709e","3025":"#00546b","3035":"#004454","3105":"#7fd6db","3115":"#2dc6d6","3125":"#00b7c6","3135":"#009baa","3145":"#00848e","3155":"#006d75","3165":"#00565b","3242":"#87ddd1","3245":"#8ce0d1","3248":"#7ad3c1","3252":"#56d6c9","3255":"#47d6c1","3258":"#35c4af","3262":"#00c1b5","3265":"#00c6b2","3268":"#00af99","3272":"#00aa9e","3275":"#00b2a0","3278":"#009b84","3282":"#008c82","3285":"#009987","3288":"#008270","3292":"#006056","3295":"#008272","3298":"#006b5b","3302":"#00493f","3305":"#004f42","3308":"#004438","3375":"#8ee2bc","3385":"#54d8a8","3395":"#00c993","3405":"#00b27a","3415":"#007c59","3425":"#006847","3435":"#024930","3935":"#f2ed6d","3945":"#efea07","3955":"#ede211","3965":"#e8dd11","3975":"#b5a80c","3985":"#998c0a","3995":"#6d6002","4485":"#604c11","4495":"#877530","4505":"#a09151","4515":"#bcad75","4525":"#ccbf8e","4535":"#dbcea5","4545":"#e5dbba","4625":"#472311","4635":"#8c5933","4645":"#b28260","4655":"#c49977","4665":"#d8b596","4675":"#e5c6aa","4685":"#edd3bc","4695":"#51261c","4705":"#7c513d","4715":"#99705b","4725":"#b5917c","4735":"#ccaf9b","4745":"#d8bfaa","4755":"#e2ccba","4975":"#441e1c","4985":"#844949","4995":"#a56b6d","5005":"#bc8787","5015":"#d8ada8","5025":"#e2bcb7","5035":"#edcec6","5115":"#4f213a","5125":"#754760","5135":"#936b7f","5145":"#ad8799","5155":"#ccafb7","5165":"#e0c9cc","5175":"#e8d6d1","5185":"#472835","5195":"#593344","5205":"#8e6877","5215":"#b5939b","5225":"#ccadaf","5235":"#ddc6c4","5245":"#e5d3cc","5255":"#35264f","5265":"#493d63","5275":"#605677","5285":"#8c8299","5295":"#b2a8b5","5305":"#ccc1c6","5315":"#dbd3d3","5395":"#02283a","5405":"#3f6075","5415":"#607c8c","5425":"#8499a5","5435":"#afbcbf","5445":"#c4cccc","5455":"#d6d8d3","5463":"#00353a","5467":"#193833","5473":"#26686d","5477":"#3a564f","5483":"#609191","5487":"#667c72","5493":"#8cafad","5497":"#91a399","5503":"#aac4bf","5507":"#afbab2","5513":"#ced8d1","5517":"#c9cec4","5523":"#d6ddd6","5527":"#ced1c6","5535":"#213d30","5545":"#4f6d5e","5555":"#779182","5565":"#96aa99","5575":"#afbfad","5585":"#c4cebf","5595":"#d8dbcc","5605":"#233a2d","5615":"#546856","5625":"#728470","5635":"#9eaa99","5645":"#bcc1b2","5655":"#c6ccba","5743":"#d8ddb5","5747":"#d8d6b7","5753":"#3f4926","5757":"#424716","5763":"#5e663a","5767":"#6b702b","5773":"#777c4f","5777":"#8c914f","5783":"#9b9e72","5787":"#aaad75","5793":"#b5b58e","5797":"#c6c699","5807":"#d3d1aa","5815":"#494411","5825":"#75702b","5835":"#9e9959","5845":"#b2aa70","5855":"#ccc693","5865":"#d6cea3","5875":"#e0dbb5","PURPLE 2X":"#aa0096","COOL GRAY 10":"#777772","320 2X":"#007f82","ORANGE 021":"#ef6b00","RHODAMINE RED":"#ed0091","GREEN 2X":"#009677","YELLOW 2X":"#fce216","PROCESS YELLOW":"#f7e214","BLACK 2":"#3a3321","BLACK 5 2X":"#110c0f","RUBINE RED 2X":"#c6003d","805 2X":"#f93a2b","COOL GRAY 1":"#e8e2d6","BLACK":"#3d332b","COOL GRAY 3":"#d3cec4","RED 032":"#ef2b2d","REFLEX BLUE 2X":"#1c007a","BLACK 3":"#282d26","BLACK 7":"#443d38","354 2X":"#009944","WARM GRAY 4":"#c1b5a5","WARM GRAY 11":"#6d5e51","368 2X":"#009e0f","BLUE 072":"#380096","130 2X":"#e29100","810 2X":"#ffbc21","BLACK 4":"#3d3023","WARM GRAY 7":"#a39687","116 2X":"#f7b50c","REFLEX BLUE":"#0c1c8c","COOL GRAY 4":"#c4c1ba","PURPLE":"#bf30b5","806 2X":"#f7027c","804 2X":"#ff7f1e","COOL GRAY 6":"#b5b2aa","YELLOW":"#fce016","811 2X":"#ff5416","299 2X":"#007fcc","BLACK 4 2X":"#0f0f0f","239 2X":"#c4057c","BLACK 5":"#422d2d","WARM RED 2X":"#e03a00","433 2X":"#0a0c11","812 2X":"#fc074f","COOL GRAY 11":"#686663","803 2X":"#ffd816","1788 2X":"#d62100","WARM GRAY 3":"#ccc1b2","813 2X":"#d10084","BLACK 2 2X":"#111111","VIOLET 2X":"#59008e","464 2X":"#704214","485 2X":"#cc0c00","471 2X":"#a34402","375 2X":"#54bc00","PROCESS BLUE":"#0091c9","WARM GRAY 5":"#b5a899","BLACK 7 2X":"#33302b","RUBINE RED":"#d10056","1852 2X":"#d11600","COOL GRAY 7":"#a5a39e","306 2X":"#00a3d1","VIOLET":"#6607a5","808 2X":"#00a087","327 2X":"#008977","WARM GRAY 10":"#827263","BLACK 6":"#1c2630","WARM GRAY 6":"#afa393","COOL GRAY 5":"#bab7af","WARM GRAY 2":"#ddd1c1","RHODAMINE RED 2X":"#d10572","WARM GRAY 1":"#e5dbcc","382 2X":"#9ec400","2592 2X":"#720082","BLACK 3 2X":"#111114","COOL GRAY 9":"#8c8984","809 2X":"#d6d60c","814 2X":"#703faf","GREEN":"#00af93","WARM RED":"#f93f26","802 2X":"#1cce28","BLACK 6 2X":"#070c0f","COOL GRAY 2":"#ddd8ce","WARM GRAY 9":"#8c7f70","165 2X":"#ea4f00","COOL GRAY 8":"#9b9993","807 2X":"#bf008c","WARM GRAY 8":"#96897a","PROCESS BLUE 2X":"#0077bf","801 2X":"#0089af"}})();</script><script>(()=>{
const input=document.getElementById('pms-reference');if(!input)return;
const selects=['logo-color','text-color'].map(id=>document.getElementById(id));
for(const select of selects)for(const [code,hex] of Object.entries(fsnPmsColors)){if(![...select.options].some(o=>o.value===hex)){const option=new Option('PMS '+code+' (approx.)',hex);option.hidden=true;select.add(option);}}
const swatch=document.createElement('span');swatch.id='pms-preview-swatch';swatch.style.cssText='display:block;width:32px;height:32px;border:1px solid #777';input.after(swatch);let last='';
const apply=()=>{const ref=input.value.trim().toUpperCase(),key=ref.replace(/^(?:PANTONE|PMS)\s*/,'').replace(/\s*[UC]$/,'').replace(/\s+/g,' '),hex=fsnPmsColors[key];swatch.hidden=!hex;swatch.style.backgroundColor=hex||'transparent';catalog.value=hex?key:'';if(hex)wheel.value=hex;const hasFoil=Boolean(document.getElementById('logo-foil').value||document.getElementById('text-foil').value);catalog.options[0].text=hasFoil&&!ref?'Foil color selected':'No color selected';wheel.hidden=hasFoil&&!ref;document.getElementById('pms-reference-status').textContent=(/\sC$/.test(ref)?'Coated (C): please confirm with Paper Place; reference unchanged. ':'')+(hex?'Screen preview '+hex.toUpperCase()+'. Screen colors are approximate.':ref?'PMS preview not found. Check the number or select a standard ink.':'Choose a color or enter a PMS number. Screen colors are approximate.');if(ref===last)return;last=ref;if(!hex)return;for(const id of ['logo-foil','text-foil']){const foil=document.getElementById(id);if(foil&&foil.value){foil.value='';foil.dispatchEvent(new Event('change',{bubbles:true}));}}for(const select of selects){select.value=hex;select.options[select.selectedIndex].text='PANTONE '+key+(/\sC$/.test(ref)?' C':' U')+' (approx.)';select.dispatchEvent(new Event('change',{bubbles:true}));}};
input.type='hidden';const entry=document.createElement('input');entry.id='pms-entry';entry.type='text';entry.maxLength=80;entry.placeholder='e.g. 1895 or PANTONE 289 U';entry.style.cssText='width:100%;padding:.6rem;margin:.3rem 0';input.before(entry);document.querySelector('label[for="pms-reference"]').htmlFor=entry.id;
const applyButton=document.createElement('button');applyButton.type='button';applyButton.id='pms-apply';applyButton.textContent='Apply';applyButton.style.cssText='background:#e2dcd3;color:#61412f;margin-bottom:12px';entry.after(applyButton);
const choose=ref=>{input.value=ref;input.dispatchEvent(new Event('change',{bubbles:true}));entry.value=input.value;last='';apply();};
applyButton.addEventListener('click',()=>choose(entry.value));entry.addEventListener('keydown',e=>{if(e.key==='Enter'){e.preventDefault();choose(entry.value);}});
const picker=document.createElement('fieldset');picker.style.cssText='border:0;padding:0;margin:12px 0';const legend=document.createElement('legend');legend.textContent='Choose a PMS color';const wheel=document.createElement('input');wheel.type='color';wheel.id='pms-catalog-wheel';wheel.value='#fcbfc9';wheel.setAttribute('aria-label','Explore a color; selection snaps to nearest catalog swatch');wheel.style.cssText='width:100%;height:48px';const hint=document.createElement('p');hint.textContent='Snaps to the nearest catalog color.';const catalog=document.createElement('select');catalog.id='pms-catalog';catalog.setAttribute('aria-label','Catalog PMS colors');catalog.style.cssText='width:100%;background:#e2dcd3;padding:.6rem';catalog.add(new Option('Choose a catalog color',''));for(const code of Object.keys(fsnPmsColors).sort((a,b)=>a.localeCompare(b,undefined,{numeric:true})))catalog.add(new Option('PMS '+code,code));
const rgb=hex=>hex.match(/[0-9a-f]{2}/gi).map(v=>parseInt(v,16));const nearest=hex=>{const target=rgb(hex);let best='',distance=Infinity;for(const [code,value] of Object.entries(fsnPmsColors)){const color=rgb(value),d=color.reduce((sum,v,i)=>sum+(v-target[i])**2,0);if(d<distance){distance=d;best=code;}}return best;};
const selectCatalog=code=>{if(!code)return;catalog.value=code;wheel.value=fsnPmsColors[code];choose('PANTONE '+code+' U');};wheel.addEventListener('input',()=>selectCatalog(nearest(wheel.value)));wheel.addEventListener('change',()=>selectCatalog(nearest(wheel.value)));catalog.addEventListener('change',()=>selectCatalog(catalog.value));picker.append(legend,wheel,hint,catalog);input.parentElement.prepend(picker);
for(const id of ['logo-foil','text-foil'])document.getElementById(id).addEventListener('change',event=>{if(event.target.value){input.value='';entry.value='';last='';}apply();});
document.addEventListener('click',()=>{apply();if(document.activeElement!==entry&& !entry.value)entry.value=input.value;},true);document.addEventListener('fsn-capture-draft',apply,true);apply();
})();</script><script>(()=>{
const colorStep=document.getElementById('step-5'),sizeStep=document.getElementById('step-6');if(!colorStep||!sizeStep)return;
colorStep.querySelector('h2').textContent='5. Choose your print color';sizeStep.querySelector('h2').textContent='6. Placement and size';
document.querySelector('[data-step-target="4"]').textContent='5 Print Color';document.querySelector('[data-step-target="5"]').textContent='6 Placement & Size';
for(const index of ['4','5']){const button=document.querySelector('[data-step-target="'+index+'"]');button.setAttribute('aria-label',button.textContent);}
colorStep.querySelector('.size-position-note')?.remove();
for(const group of colorStep.querySelectorAll('[data-position-kind]'))sizeStep.insertBefore(group,sizeStep.querySelector('.resize-buttons'));
const groups=[];for(const kind of ['logo','text']){const group=document.createElement('div');group.dataset.printKind=kind;for(const suffix of ['color','foil']){const id=kind+'-'+suffix,label=document.querySelector('label[for="'+id+'"]'),select=document.getElementById(id);if(label)group.append(label);if(select)group.append(select);}colorStep.insertBefore(group,colorStep.querySelector('.actions'));groups.push(group);}
const pms=document.getElementById('pms-reference');if(pms)colorStep.insertBefore(pms.parentElement,colorStep.querySelector('.actions'));
// Retain the underlying ink controls for rendering and saved drafts, not as duplicate UI.
for(const kind of ['logo','text']){document.getElementById(kind+'-color').hidden=true;const label=document.querySelector('label[for="'+kind+'-color"]');if(label)label.hidden=true;}
if(pms){const wrap=pms.parentElement,picker=wrap.querySelector('fieldset');if(picker)wrap.append(picker);for(const group of groups)colorStep.insertBefore(group,colorStep.querySelector('.actions'));}
const cleanStyle=document.createElement('style');cleanStyle.textContent='#designer-form .help,#designer-form .size-position-note,#drop-zone>p,#crop-editor>p,#designer-form .notice,#pms-catalog-wheel+p{display:none!important}';document.head.append(cleanStyle);
const pmsStatus=document.getElementById('pms-reference-status');if(pmsStatus){const showWarning=()=>{pmsStatus.hidden=!/please confirm|not found/i.test(pmsStatus.textContent);};new MutationObserver(showWarning).observe(pmsStatus,{childList:true,characterData:true,subtree:true});showWarning();}
const update=()=>{const kind=document.querySelector('input[name="creative-type"]:checked')?.value||'logo';groups.forEach(g=>g.hidden=g.dataset.printKind!==kind);};document.querySelectorAll('input[name="creative-type"]').forEach(el=>el.addEventListener('change',update));update();
})();</script><script>(()=>{
window.fsnFitArtwork=async image=>{
const c=document.createElement('canvas');c.width=image.naturalWidth;c.height=image.naturalHeight;const ctx=c.getContext('2d',{willReadFrequently:true});ctx.drawImage(image,0,0);
const p=ctx.getImageData(0,0,c.width,c.height).data;let x0=c.width,y0=c.height,x1=-1,y1=-1;
for(let y=0;y<c.height;y++)for(let x=0;x<c.width;x++){const i=(y*c.width+x)*4;if(p[i+3]*(255-(.2126*p[i]+.7152*p[i+1]+.0722*p[i+2]))/255>1){x0=Math.min(x0,x);y0=Math.min(y0,y);x1=Math.max(x1,x);y1=Math.max(y1,y);}}
if(x1<x0||y1<y0)return image;x0=Math.max(0,x0-2);y0=Math.max(0,y0-2);x1=Math.min(c.width-1,x1+2);y1=Math.min(c.height-1,y1+2);
const crop=document.createElement('canvas');crop.width=x1-x0+1;crop.height=y1-y0+1;crop.getContext('2d').drawImage(c,x0,y0,crop.width,crop.height,0,0,crop.width,crop.height);
const result=new Image();result.src=crop.toDataURL('image/png');await result.decode();return result;
};
document.getElementById('design-help-open')?.remove();
const note=document.createElement('p');note.id='one-color-guidance';note.textContent='Use a one-color logo. Photos, gradients and multicolor shading may need to be redrawn. Artwork assistance is not connected in this draft.';
document.getElementById('crop-artwork')?.after(note);
})();</script><script>(()=>{const step=document.getElementById('step-1'),table=step.querySelector('.step-price-tiers'),preview=document.querySelector('.layout>.preview'),summary=document.getElementById('selection-summary');if(!table||!preview)return;const anchor=document.createComment('desktop step pricing'),summaryAnchor=summary?document.createComment('desktop selection summary'):null;table.before(anchor);if(summary)summary.before(summaryAnchor);const mobile=matchMedia('(max-width:52rem)'),arrange=()=>{if(mobile.matches){step.after(table);if(summary)table.after(summary);table.hidden=step.hidden}else{anchor.after(table);if(summary)summaryAnchor.after(summary);table.hidden=false}};mobile.addEventListener('change',arrange);new MutationObserver(arrange).observe(step,{attributes:true,attributeFilter:['hidden']});arrange();})();</script><script>(()=>{if(new URLSearchParams(window.__fsnQuery||'').has('edit'))return;const config=JSON.parse(window.frameElement.dataset.settings||'{}').step_4||{},font=document.getElementById('text-font'),size=document.getElementById('text-size');const choice=[...font.options].find(option=>option.text===config.default_font);if(choice){font.value=choice.value;font.dispatchEvent(new Event('change',{bubbles:true}));}if([...size.options].some(option=>option.value===config.default_size)){size.value=config.default_size;size.dispatchEvent(new Event('change',{bubbles:true}));}})();</script><script>(()=>{
'use strict';
const apiRoot='/apps/napkin-designer';
const json=async(response)=>{const body=await response.json().catch(()=>({}));if(!response.ok)throw Error(body.error||body.description||body.message||'HTTP_'+response.status);return body};
const previewReady=(async()=>{
const nonce=sessionStorage.getItem('fsn-preview-nonce')||(()=>{const bytes=new Uint8Array(32);crypto.getRandomValues(bytes);const value=Array.from(bytes,b=>b.toString(16).padStart(2,'0')).join('');sessionStorage.setItem('fsn-preview-nonce',value);return value})(),existing=sessionStorage.getItem('fsn-preview-token');
if(existing){try{await json(await fetch(apiRoot+'/private-preview/session',{method:'POST',headers:{'content-type':'application/json','x-fsn-preview-authorization':'Bearer '+existing,'x-fsn-preview-session':nonce},body:'{"resume":true}'}));return {token:existing,nonce}}catch{sessionStorage.removeItem('fsn-preview-token')}}
const parentUrl=new URL(parent.location.href),fragment=new URLSearchParams(parentUrl.hash.slice(1)),launchToken=fragment.get('fsn_preview');if(!launchToken)throw Error('PRIVATE_PREVIEW_REQUIRED');
const issued=await json(await fetch(apiRoot+'/private-preview/session',{method:'POST',headers:{'content-type':'application/json'},body:JSON.stringify({launchToken,clientNonce:nonce})}));
sessionStorage.setItem('fsn-preview-token',issued.token);fragment.delete('fsn_preview');parentUrl.hash=fragment.toString();parent.history.replaceState({},'',parentUrl);return {token:issued.token,nonce};
})();
const previewHeaders=async()=>{const value=await previewReady;return {'x-fsn-preview-authorization':'Bearer '+value.token,'x-fsn-preview-session':value.nonce}};
previewReady.then(()=>{const environmentLabel=document.querySelector('body>header .local');if(environmentLabel)environmentLabel.textContent='Five Star Napkins Custom Designer';document.body.removeAttribute('hidden');document.body.dataset.privatePreview='validated'}).catch(()=>{document.body.innerHTML='<main style="font:16px system-ui;max-width:40rem;margin:4rem auto;padding:2rem"><h1>Private preview unavailable</h1><p>This preview link is missing, expired, or already used. Request a new link.</p></main>';document.body.removeAttribute('hidden')});
const guest=async()=>{
const existing=sessionStorage.getItem('fsn-backend-guest');
if(existing)return existing;
const issued=await json(await fetch(apiRoot+'/sessions/guest',{method:'POST',headers:{'content-type':'application/json',...await previewHeaders()},body:'{}'}));
sessionStorage.setItem('fsn-backend-guest',issued.token);
return issued.token;
};
window.fsnQuote=async input=>{
const token=await guest();
return json(await fetch(apiRoot+'/pricing/quote',{method:'POST',headers:{authorization:'Bearer '+token,'content-type':'application/json',...await previewHeaders()},body:JSON.stringify(input)}));
};
window.fsnConvertArtwork=async file=>{
const token=await guest(),extension=(file.name.toLowerCase().match(/.[^.]+$/)||[''])[0],types={'.pdf':'application/pdf','.eps':'application/postscript','.ai':'application/illustrator'},contentType=types[extension]||file.type||'application/octet-stream';
const created=await json(await fetch(apiRoot+'/artwork',{method:'POST',headers:{authorization:'Bearer '+token,'content-type':contentType,'x-fsn-filename':file.name,...await previewHeaders()},body:file}));
const deadline=Date.now()+180000;let current=created;
while(Date.now()<deadline){if(current.state==='PREVIEW_REQUIRES_REVIEW')break;if(['REJECTED','FAILED'].includes(current.state))throw Error('ARTWORK_REJECTED');await new Promise(resolve=>setTimeout(resolve,1500));current=await json(await fetch(apiRoot+'/artwork/'+created.jobId,{headers:{authorization:'Bearer '+token,...await previewHeaders()}}))}
if(current.state!=='PREVIEW_REQUIRES_REVIEW')throw Error('ARTWORK_CONVERSION_TIMEOUT');
const response=await fetch(apiRoot+'/artwork/'+created.jobId+'/preview',{headers:{authorization:'Bearer '+token,...await previewHeaders()}});if(!response.ok)throw Error('ARTWORK_PREVIEW_UNAVAILABLE');const blob=await response.blob(),image=await new Promise((resolve,reject)=>{const reader=new FileReader();reader.onerror=reject;reader.onload=()=>resolve(String(reader.result));reader.readAsDataURL(blob)});
return {jobId:created.jobId,image,sha256:response.headers.get('x-fsn-preview-sha256')||''};
};
window.fsnCreateCartLine=async params=>{
const creativeId=params.get('creativeId'),creative=await creativeStore('get','fsn-creative:'+creativeId);
if(!creative||creative.version!==1)throw Error('DESIGN_TRANSFER_MISSING');
const token=await guest();let artworkJob=null;
if(creative.kind==='logo'){
artworkJob=creative.artworkJobId?{jobId:creative.artworkJobId}:JSON.parse(sessionStorage.getItem('fsn-backend-artwork:'+creativeId)||'null');
if(!artworkJob){const encoded=String(creative.image||'').match(/^data:image\/png;base64,(.+)$/)?.[1];if(!encoded)throw Error('INVALID_ARTWORK_TRANSFER');const binary=atob(encoded),bytes=Uint8Array.from(binary,char=>char.charCodeAt(0));artworkJob=await json(await fetch(apiRoot+'/artwork',{method:'POST',headers:{authorization:'Bearer '+token,'content-type':'image/png','x-fsn-filename':'artwork.png',...await previewHeaders()},body:bytes}));sessionStorage.setItem('fsn-backend-artwork:'+creativeId,JSON.stringify(artworkJob))}
}
const creativeState=creative.kind==='text'?{kind:'text',text:creative.text,color:creative.color,fontFamily:creative.fontFamily,fontSizeRatio:creative.fontSizeRatio,widthRatio:creative.widthRatio,geometry:creative.geometry,returnState:creative.returnState}:{kind:'logo',artworkJobId:artworkJob.jobId,widthRatio:creative.widthRatio,geometry:creative.geometry,returnState:creative.returnState};
const digitalProofAcknowledged=document.getElementById('accept')?.checked===true,productionTimingAcknowledged=document.getElementById('timing-accept')?.checked===true;if(!digitalProofAcknowledged||!productionTimingAcknowledged)throw Error('ACKNOWLEDGMENTS_REQUIRED');
const quantity=Number(document.getElementById('quantity')?.value||params.get('quantity')),productId=params.get('productId'),cartLineId='line-'+creativeId,idempotencyKey='cart-'+creativeId;
const line=await json(await fetch(apiRoot+'/private-preview/cart-line',{method:'POST',headers:{authorization:'Bearer '+token,'content-type':'application/json',...await previewHeaders()},body:JSON.stringify({productId,quantity,cartLineId,idempotencyKey,geometryVersion:'shopify-designer-v1',pricingVersion:'one-color-v1',digitalProofAcknowledged,productionTimingAcknowledged,state:{selection:Object.fromEntries(params),creative:creativeState,acknowledgements:{digitalProofAcknowledged,productionTimingAcknowledged}}})})).catch(error=>{throw Error('CART_LINE_'+error.message)});
const existing=await json(await fetch('/cart.js',{headers:{accept:'application/json'}})),designerItems=existing.items.filter(item=>item.properties?._designer_cart_line_id),matches=designerItems.filter(item=>item.properties._designer_cart_line_id===line.cartLineId);
if(matches.length>1||designerItems.length!==matches.length)throw Error('CONTROLLED_CART_CONFLICT');
if(matches.length===1){const item=matches[0];if(String(item.variant_id)!==String(line.variantId)||item.quantity!==line.quantity||item.properties?._designer_design_id!==line.designId||item.properties?._designer_snapshot_sha256!==line.snapshotSha256)throw Error('CONTROLLED_CART_CONFLICT')}
else await json(await fetch('/cart/add.js',{method:'POST',headers:{'content-type':'application/json','accept':'application/json'},body:JSON.stringify({items:[{id:String(line.variantId),quantity:line.quantity,properties:line.properties}]})})).catch(error=>{throw Error('SHOPIFY_ADD_'+error.message)});
const cart=await json(await fetch('/cart.js',{headers:{accept:'application/json'}})),designerMatches=cart.items.filter(value=>value.properties?._designer_cart_line_id===line.cartLineId),item=designerMatches[0];if(designerMatches.length!==1||!item||String(item.variant_id)!==String(line.variantId)||item.quantity!==line.quantity||item.properties?._designer_design_id!==line.designId||item.properties?._designer_snapshot_sha256!==line.snapshotSha256||item.properties?._fsn_test_order!==line.testOrder)throw Error('CONTROLLED_CART_VALIDATION_FAILED');
sessionStorage.setItem('fsn-cart-evidence:'+creativeId,JSON.stringify({designId:line.designId,snapshotSha256:line.snapshotSha256,cartLineId:line.cartLineId,productId:line.productId,variantId:line.variantId,sku:line.sku,quantity:line.quantity,testOrder:line.testOrder}));parent.location.assign('/cart');
};
})();</script><script>(()=>{'use strict';const money=cents=>new Intl.NumberFormat('en-US',{style:'currency',currency:'USD'}).format(cents/100),params=new URLSearchParams(window.__fsnQuery),quantity=document.getElementById('quantity');let sequence=0,timer;const request=()=>{clearTimeout(timer);timer=setTimeout(async()=>{const current=++sequence,product=document.querySelector('input[name="product"]:checked')?.value||params.get('productId'),count=Number(quantity?.value);if(!product||!Number.isInteger(count))return;try{const quote=await window.fsnQuote({productId:product,quantity:count,physicalProof:document.getElementById('physical')?.checked===true,rush:document.getElementById('rush')?.checked===true});if(current!==sequence)return;document.body.dataset.pricingSource='azure';document.body.dataset.pricingVersion=quote.pricingVersion;const output=document.getElementById('quantity-price');if(output)output.textContent=quote.quantity.toLocaleString('en-US')+' — '+money(quote.totalCents);}catch(error){if(current!==sequence)return;document.body.dataset.pricingSource='unavailable';document.body.removeAttribute('data-pricing-version')}} ,120)};quantity?.addEventListener('input',request);document.querySelectorAll('input[name="product"]').forEach(input=>input.addEventListener('change',request));request()})();</script><script>(()=>{let last=0;const resize=()=>{const content=document.querySelector('main')||document.body,height=Math.ceil(content.getBoundingClientRect().bottom);if(height!==last){last=height;parent.postMessage({type:'fsn-height',height},parent.location.origin)}};new ResizeObserver(resize).observe(document.querySelector('main')||document.body);window.addEventListener('load',resize);resize()})();</script><script>(()=>{const config=JSON.parse(window.frameElement.dataset.settings||'{}'),bindings=[{"id":"heading","selector":"#designer-title","group":"designer"},{"id":"preview","selector":"#preview-title","group":"designer"},{"id":"next","selector":"[data-next]","group":"designer"},{"id":"previous","selector":"[data-prev]","group":"designer"},{"id":"edit","selector":"[data-edit]","group":"designer"},{"id":"confirm","selector":"#confirm","group":"designer"},{"id":"crop","selector":"#crop-artwork","group":"designer"},{"id":"crop_auto","selector":"#crop-auto","group":"designer"},{"id":"crop_reset","selector":"#crop-reset","group":"designer"},{"id":"crop_cancel","selector":"#crop-cancel","group":"designer"},{"id":"crop_apply","selector":"#crop-apply","group":"designer"},{"id":"scale_down","selector":"[data-scale=\"-.05\"]","group":"designer"},{"id":"scale_up","selector":"[data-scale=\".05\"]","group":"designer"},{"id":"title","selector":"#step-1 > h2","group":"step_1"},{"id":"navigation","selector":"[data-progress][data-step-target=\"0\"]","group":"step_1"},{"id":"format_label","selector":"#step-1 legend","group":"step_1"},{"id":"title","selector":"#step-2 > h2","group":"step_2"},{"id":"navigation","selector":"[data-progress][data-step-target=\"1\"]","group":"step_2"},{"id":"color_label","selector":"label[for=\"napkin-color\"]","group":"step_2"},{"id":"color_help","selector":"#napkin-color-help","group":"step_2"},{"id":"title","selector":"#step-3 > h2","group":"step_3"},{"id":"navigation","selector":"[data-progress][data-step-target=\"2\"]","group":"step_3"},{"id":"choice","selector":"#step-3 legend","group":"step_3"},{"id":"logo_choice","selector":"label:has(> input[name=\"creative-type\"][value=\"logo\"])","group":"step_3"},{"id":"text_choice","selector":"label:has(> input[name=\"creative-type\"][value=\"text\"])","group":"step_3"},{"id":"choice_help","selector":"#step-3 .help","group":"step_3"},{"id":"title","selector":"#step-4 > h2","group":"step_4"},{"id":"navigation","selector":"[data-progress][data-step-target=\"3\"]","group":"step_4"},{"id":"upload","selector":"label[for=\"artwork\"]","group":"step_4"},{"id":"upload_help","selector":"#drop-zone > p","group":"step_4"},{"id":"text","selector":"label[for=\"custom-text\"]","group":"step_4"},{"id":"font_search","selector":"label[for=\"font-search\"]","group":"step_4"},{"id":"font","selector":"label[for=\"text-font\"]","group":"step_4"},{"id":"size","selector":"label[for=\"text-size\"]","group":"step_4"},{"id":"crop","selector":"#crop-artwork","group":"step_4"},{"id":"crop_title","selector":"#crop-title","group":"step_4"},{"id":"trim","selector":"#crop-auto","group":"step_4"},{"id":"reset","selector":"#crop-reset","group":"step_4"},{"id":"cancel","selector":"#crop-cancel","group":"step_4"},{"id":"apply_crop","selector":"#crop-apply","group":"step_4"},{"id":"search_placeholder","selector":"#font-search","attribute":"placeholder","group":"step_4"},{"id":"artwork_guidance","selector":"#one-color-guidance","group":"step_4"},{"id":"title","selector":"#step-5 > h2","group":"step_5"},{"id":"navigation","selector":"[data-progress][data-step-target=\"4\"]","group":"step_5"},{"id":"foil","selector":"label[for=\"logo-foil\"],label[for=\"text-foil\"]","group":"step_5"},{"id":"logo_color","selector":"label[for=\"logo-color\"]","group":"step_5"},{"id":"text_color","selector":"label[for=\"text-color\"]","group":"step_5"},{"id":"pms_label","selector":"label[for=\"pms-entry\"]","group":"step_5"},{"id":"pms_placeholder","selector":"#pms-entry","attribute":"placeholder","group":"step_5"},{"id":"pms_apply","selector":"#pms-apply","group":"step_5"},{"id":"pms_choose","selector":"fieldset:has(> #pms-catalog) > legend","group":"step_5"},{"id":"foil_none","selector":"#logo-foil option[value=\"\"],#text-foil option[value=\"\"]","group":"step_5"},{"id":"foil_gold","selector":"#logo-foil option[value=\"#c7a35a\"],#text-foil option[value=\"#c7a35a\"]","group":"step_5"},{"id":"foil_silver","selector":"#logo-foil option[value=\"#b8b8b8\"],#text-foil option[value=\"#b8b8b8\"]","group":"step_5"},{"id":"title","selector":"#step-6 > h2","group":"step_6"},{"id":"navigation","selector":"[data-progress][data-step-target=\"5\"]","group":"step_6"},{"id":"logo_placement","selector":"label[for=\"placement\"]","group":"step_6"},{"id":"text_placement","selector":"label[for=\"text-placement\"]","group":"step_6"},{"id":"smaller","selector":"[data-scale=\"-.05\"]","group":"step_6"},{"id":"larger","selector":"[data-scale=\".05\"]","group":"step_6"},{"id":"top_left","selector":".placement-button[data-placement=\"TOP_LEFT\"]","group":"step_6"},{"id":"top_center","selector":".placement-button[data-placement=\"TOP_CENTER\"]","group":"step_6"},{"id":"top_right","selector":".placement-button[data-placement=\"TOP_RIGHT\"]","group":"step_6"},{"id":"center","selector":".placement-button[data-placement=\"CENTER\"]","group":"step_6"},{"id":"bottom_left","selector":".placement-button[data-placement=\"BOTTOM_LEFT\"]","group":"step_6"},{"id":"bottom_center","selector":".placement-button[data-placement=\"BOTTOM_CENTER\"]","group":"step_6"},{"id":"bottom_right","selector":".placement-button[data-placement=\"BOTTOM_RIGHT\"]","group":"step_6"},{"id":"top_corner","selector":".placement-button[data-placement=\"TOP_CORNER\"]","group":"step_6"},{"id":"right_corner","selector":".placement-button[data-placement=\"RIGHT_CORNER\"]","group":"step_6"},{"id":"bottom_corner","selector":".placement-button[data-placement=\"BOTTOM_CORNER\"]","group":"step_6"},{"id":"left_corner","selector":".placement-button[data-placement=\"LEFT_CORNER\"]","group":"step_6"},{"id":"title","selector":"#step-7 > h2","group":"step_7"},{"id":"navigation","selector":"[data-progress][data-step-target=\"6\"]","group":"step_7"},{"id":"napkin_review","selector":"#review-summary + .review-list li:nth-child(1)","group":"step_7"},{"id":"color_review","selector":"#review-summary + .review-list li:nth-child(2)","group":"step_7"},{"id":"artwork_review","selector":"#review-summary + .review-list li:nth-child(3)","group":"step_7"},{"id":"details_review","selector":"#review-summary + .review-list li:nth-child(4)","group":"step_7"},{"id":"label","selector":"input[name=\"product\"][value=\"square-cocktail\"] ~ strong","group":"square_cocktail"},{"id":"name","selector":"input[name=\"product\"][value=\"square-cocktail\"]","attribute":"data-name","group":"square_cocktail"},{"id":"sku","selector":"input[name=\"product\"][value=\"square-cocktail\"]","attribute":"data-sku","group":"square_cocktail"},{"id":"description","selector":"input[name=\"product\"][value=\"square-cocktail\"]","attribute":"data-description","group":"square_cocktail"},{"id":"format","selector":"input[name=\"product\"][value=\"square-cocktail\"]","attribute":"data-format","group":"square_cocktail"},{"id":"thumbnail","selector":"label:has(input[name=\"product\"][value=\"square-cocktail\"]) .style-thumbnail img","attribute":"src","group":"square_cocktail"},{"id":"thumbnail_alt","selector":"label:has(input[name=\"product\"][value=\"square-cocktail\"]) .style-thumbnail img","attribute":"alt","group":"square_cocktail"},{"id":"label","selector":"input[name=\"product\"][value=\"diamond-cocktail\"] ~ strong","group":"diamond_cocktail"},{"id":"name","selector":"input[name=\"product\"][value=\"diamond-cocktail\"]","attribute":"data-name","group":"diamond_cocktail"},{"id":"sku","selector":"input[name=\"product\"][value=\"diamond-cocktail\"]","attribute":"data-sku","group":"diamond_cocktail"},{"id":"description","selector":"input[name=\"product\"][value=\"diamond-cocktail\"]","attribute":"data-description","group":"diamond_cocktail"},{"id":"format","selector":"input[name=\"product\"][value=\"diamond-cocktail\"]","attribute":"data-format","group":"diamond_cocktail"},{"id":"thumbnail","selector":"label:has(input[name=\"product\"][value=\"diamond-cocktail\"]) .style-thumbnail img","attribute":"src","group":"diamond_cocktail"},{"id":"thumbnail_alt","selector":"label:has(input[name=\"product\"][value=\"diamond-cocktail\"]) .style-thumbnail img","attribute":"alt","group":"diamond_cocktail"},{"id":"label","selector":"input[name=\"product\"][value=\"square-quarter-fold\"] ~ strong","group":"square_quarter_fold"},{"id":"name","selector":"input[name=\"product\"][value=\"square-quarter-fold\"]","attribute":"data-name","group":"square_quarter_fold"},{"id":"sku","selector":"input[name=\"product\"][value=\"square-quarter-fold\"]","attribute":"data-sku","group":"square_quarter_fold"},{"id":"description","selector":"input[name=\"product\"][value=\"square-quarter-fold\"]","attribute":"data-description","group":"square_quarter_fold"},{"id":"format","selector":"input[name=\"product\"][value=\"square-quarter-fold\"]","attribute":"data-format","group":"square_quarter_fold"},{"id":"thumbnail","selector":"label:has(input[name=\"product\"][value=\"square-quarter-fold\"]) .style-thumbnail img","attribute":"src","group":"square_quarter_fold"},{"id":"thumbnail_alt","selector":"label:has(input[name=\"product\"][value=\"square-quarter-fold\"]) .style-thumbnail img","attribute":"alt","group":"square_quarter_fold"},{"id":"label","selector":"input[name=\"product\"][value=\"diamond-quarter-fold\"] ~ strong","group":"diamond_quarter_fold"},{"id":"name","selector":"input[name=\"product\"][value=\"diamond-quarter-fold\"]","attribute":"data-name","group":"diamond_quarter_fold"},{"id":"sku","selector":"input[name=\"product\"][value=\"diamond-quarter-fold\"]","attribute":"data-sku","group":"diamond_quarter_fold"},{"id":"description","selector":"input[name=\"product\"][value=\"diamond-quarter-fold\"]","attribute":"data-description","group":"diamond_quarter_fold"},{"id":"format","selector":"input[name=\"product\"][value=\"diamond-quarter-fold\"]","attribute":"data-format","group":"diamond_quarter_fold"},{"id":"thumbnail","selector":"label:has(input[name=\"product\"][value=\"diamond-quarter-fold\"]) .style-thumbnail img","attribute":"src","group":"diamond_quarter_fold"},{"id":"thumbnail_alt","selector":"label:has(input[name=\"product\"][value=\"diamond-quarter-fold\"]) .style-thumbnail img","attribute":"alt","group":"diamond_quarter_fold"},{"id":"title","selector":"body:not(:has(#designer-form)) h1","group":"proof_content"},{"id":"proof_tab","selector":"[data-tab=\"proof\"]","group":"proof_content"},{"id":"status_tab","selector":"[data-tab=\"status\"]","group":"proof_content"},{"id":"library_tab","selector":"[data-tab=\"library\"]","group":"proof_content"},{"id":"edit_design","selector":"#edit-design","group":"proof_content"},{"id":"view_proof","selector":"[data-demo=\"view\"]","group":"proof_content"},{"id":"reorder","selector":"[data-demo=\"reorder\"]","group":"proof_content"},{"id":"edit_new","selector":"[data-demo=\"edit\"]","group":"proof_content"},{"id":"approval_heading","selector":"#approval > h2","group":"proof_content"},{"id":"quantity_label","selector":"#approval label:has(> #quantity)","group":"proof_content"},{"id":"pricing_heading","selector":".quantity-tiers > h3","group":"proof_content"},{"id":"pricing_caption","selector":".quantity-tiers caption","group":"proof_content"},{"id":"quantity_column","selector":".quantity-tiers thead th:first-child","group":"proof_content"},{"id":"price_column","selector":".quantity-tiers thead th:last-child","group":"proof_content"},{"id":"summary_heading","selector":"#approval > h3","group":"proof_content"},{"id":"napkins_line","selector":"#approval .price:first-of-type > span","group":"proof_content"},{"id":"total_line","selector":"#approval .price.total > span","group":"proof_content"},{"id":"save_approval","selector":"#continue","group":"proof_content"},{"id":"physical_button","selector":"#physical-button","group":"proof_content"},{"id":"status_heading","selector":"[data-panel=\"status\"] h2","group":"proof_content"},{"id":"status_notice","selector":"[data-panel=\"status\"] .notice","group":"proof_content"},{"id":"library_heading","selector":"[data-panel=\"library\"] > h2","group":"proof_content"},{"id":"library_intro","selector":"[data-panel=\"library\"] > p:not(.local):first-of-type","group":"proof_content"},{"id":"quantity_label","selector":"#quantity","attribute":"aria-label","group":"proof_content"},{"id":"label","selector":"#napkin-color option[value=\"white\"]","group":"color_white"},{"id":"label","selector":"#napkin-color option[value=\"Black\"]","group":"color_black"},{"id":"label","selector":"#napkin-color option[value=\"Grey\"]","group":"color_grey"},{"id":"label","selector":"#napkin-color option[value=\"PearlGrey\"]","group":"color_pearlgrey"},{"id":"label","selector":"#napkin-color option[value=\"AnthraciteGrey\"]","group":"color_anthracitegrey"},{"id":"label","selector":"#napkin-color option[value=\"RoyalBlue\"]","group":"color_royalblue"},{"id":"label","selector":"#napkin-color option[value=\"SeaBlue\"]","group":"color_seablue"},{"id":"label","selector":"#napkin-color option[value=\"SkyBlue\"]","group":"color_skyblue"},{"id":"label","selector":"#napkin-color option[value=\"SeaGlass\"]","group":"color_seaglass"},{"id":"label","selector":"#napkin-color option[value=\"MidnightBlue\"]","group":"color_midnightblue"},{"id":"label","selector":"#napkin-color option[value=\"BritishRacingGreen\"]","group":"color_britishracinggreen"},{"id":"label","selector":"#napkin-color option[value=\"Khaki\"]","group":"color_khaki"},{"id":"label","selector":"#napkin-color option[value=\"Pear\"]","group":"color_pear"},{"id":"label","selector":"#napkin-color option[value=\"Sand\"]","group":"color_sand"},{"id":"label","selector":"#napkin-color option[value=\"Caramel\"]","group":"color_caramel"},{"id":"label","selector":"#napkin-color option[value=\"Nude\"]","group":"color_nude"},{"id":"label","selector":"#napkin-color option[value=\"Red\"]","group":"color_red"},{"id":"label","selector":"#napkin-color option[value=\"Blush\"]","group":"color_blush"},{"id":"label","selector":"#napkin-color option[value=\"Sherbet\"]","group":"color_sherbet"},{"id":"label","selector":"#napkin-color option[value=\"Toreador\"]","group":"color_toreador"},{"id":"label","selector":"#napkin-color option[value=\"RaspberrySorbet\"]","group":"color_raspberrysorbet"},{"id":"label","selector":"#napkin-color option[value=\"Pomegranate\"]","group":"color_pomegranate"},{"id":"label","selector":"#napkin-color option[value=\"PickledBeet\"]","group":"color_pickledbeet"},{"id":"label","selector":"#napkin-color option[value=\"Lavender\"]","group":"color_lavender"},{"id":"label","selector":"#napkin-color option[value=\"Citron\"]","group":"color_citron"},{"id":"label","selector":"#napkin-color option[value=\"Persimmon\"]","group":"color_persimmon"}],controlled=new Set(['title','proof_tab','status_tab','library_tab','approval_heading','save_approval']);const apply=()=>{for(const b of bindings){if(document.body.dataset.controlledCart==='true'&&controlled.has(b.id))continue;const value=config[b.group]?.[b.id];if(typeof value!=='string')continue;for(const element of document.querySelectorAll(b.selector)){if(b.attribute){if(element.getAttribute(b.attribute)!==value)element.setAttribute(b.attribute,value);}else if(element.children.length){const target=element.querySelector(':scope>[data-editor-text]');if(target){if(target.textContent!==value)target.textContent=value;for(const node of [...element.childNodes].filter(n=>n.nodeType===3))node.remove();}else{const nodes=[...element.childNodes].filter(n=>n.nodeType===3);if(nodes.map(n=>n.textContent).join('').trim()!==value){if(nodes.length){nodes[0].textContent=value;for(const node of nodes.slice(1))node.textContent='';}else element.prepend(document.createTextNode(value));}}}else if(element.textContent!==value)element.textContent=value;if(element.hasAttribute('data-progress'))element.setAttribute('aria-label',value);}}};apply();document.querySelector('input[name="product"]:checked')?.dispatchEvent(new Event('change',{bubbles:true}));let pending=false;new MutationObserver(()=>{if(pending)return;pending=true;queueMicrotask(()=>{pending=false;apply()});}).observe(document.body,{subtree:true,childList:true,characterData:true});const g=config.designer||{},spacing=config._section||{},style=document.createElement('style');const color=v=>/^#[0-9a-f]{3,8}$/i.test(v)?v:null;style.textContent=(color(g.page_color)?'body{background:'+g.page_color+'!important}':'')+(color(g.text_color)?'body{color:'+g.text_color+'!important}':'')+(color(g.button_color)?'button:not(.secondary):not([data-progress]){background:'+g.button_color+'!important}':'')+(color(g.button_text)?'button:not(.secondary):not([data-progress]){color:'+g.button_text+'!important}':'')+'@media(max-width:52rem){body main{padding-top:'+Math.max(0,Number(spacing.mobile_top_padding)||0)+'px!important;padding-bottom:'+Math.max(0,Number(spacing.mobile_bottom_padding)||0)+'px!important}.progress{margin-bottom:'+Math.max(0,Number(spacing.mobile_section_gap)||0)+'px!important}}';document.head.append(style);})();</script><script>(()=>{const apply=()=>{try{const config=JSON.parse(window.frameElement.dataset.settings||'{}'),s=config._section||{},h=document.getElementById('designer-title'),value=String(s.designer_heading||config.designer?.heading||'Create your custom napkin');if(h&&h.textContent!==value)h.textContent=value}catch{}};apply();new MutationObserver(apply).observe(document.documentElement,{childList:true,subtree:true})})();</script></body></html><!doctype html>
<html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
<title>Proof & order portal · Five Star Napkins</title><style>
[hidden]{display:none!important}
input[type=checkbox]{box-sizing:border-box;width:20px!important;height:20px!important;min-width:20px!important;min-height:20px!important;max-width:20px;max-height:20px;flex:0 0 20px;align-self:flex-start;padding:0}
:root{--ink:#563625;--paper:#fcf7f2;--card:#fff;--line:#ded4cb;--soft:#f2e9e1;--green:#315e4f}*{box-sizing:border-box}body{margin:0;background:linear-gradient(180deg,#fff,var(--paper));color:var(--ink);font:16px/1.45 system-ui,sans-serif}button,input,select{font:inherit}button{min-height:44px;border:1px solid var(--ink);border-radius:8px;padding:.7rem 1rem;background:var(--ink);color:#fff;font-weight:700;cursor:pointer}button.secondary{background:#fff;color:var(--ink)}button:disabled{opacity:.45;cursor:not-allowed}input,select{min-height:44px;width:100%;padding:.65rem;border:1px solid #aa9d92;border-radius:7px;background:#fff}header{padding:1rem clamp(1rem,4vw,4rem);border-bottom:1px solid var(--line);background:#fff;display:flex;justify-content:space-between;align-items:center}header strong{font:700 1.25rem Georgia,serif}nav button{background:transparent;color:var(--ink);border:0}main{max-width:76rem;margin:auto;padding:clamp(1rem,4vw,3rem)}h1,h2,h3{font-family:Georgia,serif}h1{font-size:clamp(2rem,5vw,3.7rem);margin:.2rem 0}.lede{max-width:45rem;color:#745d50}.tabs{display:flex;gap:.5rem;margin:2rem 0;overflow:auto}.tabs button[aria-selected=true]{background:var(--ink);color:#fff}.tabs button{background:#fff;color:var(--ink);white-space:nowrap}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:clamp(1rem,3vw,2rem);box-shadow:0 1rem 2.5rem #56362512}.grid{display:grid;grid-template-columns:1.15fr .85fr;gap:1.5rem}.proof{aspect-ratio:1.25;background:linear-gradient(135deg,#f8f5f1,#e8ded5);display:grid;place-items:center;border-radius:10px}.napkin{width:56%;aspect-ratio:1;background:#fff;box-shadow:0 1rem 2rem #0002;display:grid;place-items:end;padding:8%;font:700 2rem Georgia,serif}.fields{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.fields .wide{grid-column:1/-1}.price{display:flex;justify-content:space-between;padding:.55rem 0;border-bottom:1px solid var(--line)}.price.total{font-size:1.15rem;font-weight:800}.check{display:flex;gap:.65rem;align-items:flex-start;margin:1rem 0}.check input{width:1.25rem;min-height:1.25rem;margin-top:.2rem}.notice{background:var(--soft);border-left:4px solid var(--ink);padding:.8rem 1rem}.timeline{list-style:none;padding:0}.timeline li{position:relative;padding:0 0 1.2rem 2rem}.timeline li:before{content:'';position:absolute;left:.25rem;top:.2rem;width:.75rem;height:.75rem;border:2px solid var(--ink);border-radius:50%;background:#fff}.timeline li.done:before{background:var(--green);border-color:var(--green)}.timeline li:after{content:'';position:absolute;left:.66rem;top:1.1rem;height:calc(100% - .6rem);border-left:2px solid var(--line)}.timeline li:last-child:after{display:none}.library{display:grid;grid-template-columns:repeat(auto-fit,minmax(17rem,1fr));gap:1rem}.design-card{border:1px solid var(--line);border-radius:10px;padding:1rem}.design-card .thumb{height:10rem;background:var(--soft);display:grid;place-items:center;margin-bottom:.8rem}.actions{display:flex;gap:.5rem;flex-wrap:wrap}.local{font-size:.8rem;text-transform:uppercase;letter-spacing:.12em;color:#7d685c}@media(max-width:720px){header{align-items:flex-start}.grid,.fields{grid-template-columns:1fr}.fields .wide{grid-column:auto}.proof{aspect-ratio:1}.tabs{margin:1rem 0}.card{border-radius:10px}}
.proof-product{--physical-inset:8.7489%;--window-size:66.6667%;--art-scale:.6;position:relative;width:min(70%,24rem);aspect-ratio:1}.proof-product[data-orientation=DIAMOND]{transform:rotate(45deg) scale(.72)}.proof-product img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.proof-mark{position:absolute;z-index:1;display:grid;place-items:center;width:calc(var(--window-size)*var(--art-scale));aspect-ratio:1;font:700 clamp(.75rem,3vw,1.6rem) Georgia,serif;color:#6c492f;left:50%;top:50%;transform:translate(-50%,-50%)}.proof-product[data-placement=TOP_LEFT] .proof-mark,.proof-product[data-placement=TOP_CORNER] .proof-mark{left:var(--physical-inset);top:var(--physical-inset);transform:none}.proof-product[data-placement=TOP_CENTER] .proof-mark{left:50%;top:var(--physical-inset);transform:translateX(-50%)}.proof-product[data-placement=TOP_RIGHT] .proof-mark,.proof-product[data-placement=RIGHT_CORNER] .proof-mark{left:auto;right:var(--physical-inset);top:var(--physical-inset);transform:none}.proof-product[data-placement=BOTTOM_LEFT] .proof-mark,.proof-product[data-placement=LEFT_CORNER] .proof-mark{left:var(--physical-inset);top:auto;bottom:var(--physical-inset);transform:none}.proof-product[data-placement=BOTTOM_CENTER] .proof-mark{left:50%;top:auto;bottom:var(--physical-inset);transform:translateX(-50%)}.proof-product[data-placement=BOTTOM_RIGHT] .proof-mark,.proof-product[data-placement=BOTTOM_CORNER] .proof-mark{left:auto;right:var(--physical-inset);top:auto;bottom:var(--physical-inset);transform:none}.proof-product[data-orientation=DIAMOND] .proof-mark{rotate:-45deg}.proof-product.quarter-fold{--physical-inset:12.7953%;--window-size:75%;width:min(74%,25rem)}.proof-product.quarter-fold[data-placement=TOP_RIGHT] .proof-mark,.proof-product.quarter-fold[data-placement=RIGHT_CORNER] .proof-mark,.proof-product.quarter-fold[data-placement=BOTTOM_RIGHT] .proof-mark{right:15.7480%}.proof-product.quarter-fold{--qf-image-left:0%;--qf-image-top:0%;--qf-image-width:100%;--qf-image-height:100%;overflow:visible}.proof-product.quarter-fold img{inset:auto;left:var(--qf-image-left);top:var(--qf-image-top);width:var(--qf-image-width);height:var(--qf-image-height);max-width:none;object-fit:fill}.proof-product.quarter-fold::before,.proof-product.quarter-fold::after{content:'';position:absolute;z-index:1;pointer-events:none;background:rgba(255,255,255,.38)}.proof-product.quarter-fold::before{right:0;top:0;width:9.8425%;height:100%}.proof-product.quarter-fold::after{left:0;bottom:0;width:100%;height:9.8425%}.proof-product.quarter-fold[data-napkin-color=Black]::before,.proof-product.quarter-fold[data-napkin-color=Black]::after{background:rgba(255,255,255,.075)}.proof-mark{z-index:2;display:block;width:auto;aspect-ratio:auto;font-size:calc(2.7rem * var(--art-scale));line-height:1;margin:0;padding:0}
.brand-logo{display:block;width:320px;max-width:100%;height:auto;margin-bottom:1rem}header .brand-logo{margin:0;max-width:70%}
html body{background:#fcf4ee}
body .panel,body .preview,body .progress,body .card,body header,body .proof,body .napkin-frame,body .preview-figure{background:#fcf4ee;box-shadow:none}
body .preview,body .preview .napkin-frame,body .preview .preview-figure,body .proof{background:#e2dcd3}
body .products .product{background:#e2dcd3;color:#61412f}
body .products .product:has(input:checked){background:#e2dcd3;color:#61412f;border-color:#61412f;box-shadow:inset 0 0 0 1px #61412f}
body .preview,body .proof{border-radius:12px}
#dual-preview .napkin,#single-preview .napkin,.proof-product{filter:drop-shadow(0 6px 9px rgba(97,65,47,.13))}
#dual-preview .unfolded>.napkin-base,#dual-preview .unfolded .quarter-glue{display:none!important}
#dual-preview .unfolded .flat-quarter-face,#dual-preview .unfolded .flat-quarter-face[data-white=true]{background-size:121.2766% 121.2766%;background-position:50% 50%}
#dual-preview .unfolded .flat-quarter-face::after{clip-path:polygon(evenodd,0 0,100% 0,100% 100%,0 100%,0 0,4.9213% 4.9213%,4.9213% 95.0787%,95.0787% 95.0787%,95.0787% 4.9213%,4.9213% 4.9213%)}
.proof:has(.proof-product){aspect-ratio:auto;padding:clamp(1.5rem,4vw,2.5rem);overflow:hidden}
body .proof .proof-product,.proof .proof-product.quarter-fold{width:min(82%,34rem);height:auto;max-width:100%;max-height:none}
body .proof .proof-product.quarter-fold{width:min(82%,34rem);margin-top:4%}
.proof:has(.proof-product[data-orientation=DIAMOND]){padding:18%}
.flat-quarter-face{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden;background-repeat:no-repeat;background-size:139.3333% 139.3333%;background-position:39.5480% 48.0226%}
.flat-quarter-face[data-white=true]{background-size:129.2784% 129.2784%;background-position:38.7324% 49.2958%}
.flat-quarter-face::after{content:'';position:absolute;inset:0;background:rgba(255,255,255,.075);clip-path:polygon(90.1575% 0,100% 0,100% 100%,0 100%,0 90.1575%,90.1575% 90.1575%)}
.flat-quarter-face[data-white=true]::after{background:rgba(255,255,255,.38)}
.flat-quarter-flap{position:absolute;z-index:0;left:0;top:-8%;width:90%;height:10%;overflow:hidden;transform:none;clip-path:polygon(0 80%,100% 0,100% 100%,0 100%);background-repeat:no-repeat;background-color:#151515;background-size:139.3333% 1393.3333%;background-position:39.5480% 48.0226%}
.flat-quarter-flap[data-white=true]{background-color:#fff;background-size:129.2784% 1292.784%;background-position:38.7324% 49.2958%}
.proof-product.quarter-fold::before,.proof-product.quarter-fold::after,#dual-preview .finished .quarter-glue{display:none!important}
.proof-product.quarter-fold>img,#dual-preview .finished>.napkin-base{display:none!important}
#dual-preview .unfolded .quarter-glue-left,#dual-preview .unfolded .quarter-glue-right{top:4.9213%;height:90.1574%}
#single-preview .napkin-base{
inset:-9%;width:118%;height:118%;max-width:none;max-height:none;
object-fit:cover;clip-path:inset(1%);
}
#single-preview .napkin[data-orientation=DIAMOND] .napkin-base{transform:none}
@media(max-width:600px){
body #single-preview .napkin{width:84%;max-width:none}
}
body>header{padding:.55rem clamp(.75rem,2vw,1.5rem)}body main{padding:clamp(.65rem,1.4vw,1.25rem);max-width:80rem}body main>h1{font-size:clamp(1.5rem,3vw,2rem);line-height:1.2;margin:0 0 .4rem}body .tabs{margin:.4rem 0 .75rem;gap:.35rem}body .tabs button{padding:.4rem .75rem}body .card{padding:clamp(.75rem,1.5vw,1.25rem)}body .grid{gap:1rem;grid-template-columns:minmax(0,.95fr) minmax(20rem,1.05fr);align-items:start}body [data-panel=proof] .proof{height:clamp(22rem,54vh,30rem);min-height:0;aspect-ratio:auto}body #approval h2{margin:0 0 .35rem;font-size:1.5rem}body #edit-design{margin-bottom:.5rem}body .proof-column>.local{margin:0 0 .4rem}body #approval h3{margin:.65rem 0 .3rem}body #approval .check{margin:.65rem 0}body .quantity-tiers{margin-top:.65rem}body .quantity-tiers h3{margin:.3rem 0}body .quantity-tiers th,body .quantity-tiers td{padding:.4rem}@media(max-width:720px){body .grid{grid-template-columns:1fr}body [data-panel=proof] .proof{height:min(82vw,25rem)}}@media(max-width:600px){body>header .local{font-size:.6rem;letter-spacing:.03em}body>header img{max-width:60%;height:auto}}.quantity-tiers{margin-top:1.25rem}.quantity-tiers table{width:100%;border-collapse:collapse;font-size:.95rem}.quantity-tiers caption{text-align:left;margin-bottom:.6rem}.quantity-tiers th,.quantity-tiers td{text-align:left;padding:.65rem;border-bottom:1px solid #ded4cb}.quantity-tiers tr.selected{background:#e2dcd3}#edit-design{display:inline-block;margin-bottom:1rem}#approval>label:first-of-type{display:block}@media(max-width:720px){.tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.25rem;width:100%;min-width:0;overflow:visible}.tabs button{min-width:0;min-height:44px;padding:.5rem .25rem;font-size:.75rem;line-height:1.2;white-space:normal;overflow-wrap:anywhere}}[data-panel="proof"] .proof + p{text-align:center;width:100%}.artwork-image{width:10000px;height:auto}</style><style>@font-face{font-family:'FSN Allura';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-742ae8b44933962b.ttf?v=62711763841644044211792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Alex Brush';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-c456447c1bd71eb4.ttf?v=166701314179322797781792598693') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Great Vibes';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-8f9ae5c089dbdc8b.ttf?v=110976541023144944701792598698') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Dancing Script';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-53115fdd6c4e0db7.ttf?v=96539126877422645381792598693') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Parisienne';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-f21e72294f23e55c.ttf?v=156121197927213002021792598699') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Sacramento';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-315a730f5b977d5e.ttf?v=36296335218408699491792598693') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Tangerine';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-21b16cd987b99842.ttf?v=85618067002455365451792598699') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Pinyon Script';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-8d64bf7ff4dd36bc.ttf?v=28667827718570218711792598696') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Petit Formal Script';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-24ef2aa6f687f438.ttf?v=102002411652703374211792598693') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Italianno';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-92a1c66dd36fd913.ttf?v=70708283558464594081792598698') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN MonteCarlo';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-535c65727c21db82.ttf?v=44434035923441042161792598699') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Ballet';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-baf50b21ee0a2518.ttf?v=105611782098618584631792598693') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Carattere';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-255f69572f296034.ttf?v=16113381180654495631792598692') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Corinthia';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-9375a790e2a080c8.ttf?v=163292595627118604971792598698') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Ephesis';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-b9d3b632bb23cc2a.ttf?v=152342484246713585161792598693') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Imperial Script';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-a2baf1d3df478c58.ttf?v=88836669504990734051792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Inspiration';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-f1392c1f9b122cef.ttf?v=130993359860072770121792598694') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Island Moments';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-46e13daf54a8270a.ttf?v=143506943148864348691792598702') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Lavishly Yours';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-3dc888ecc1355545.ttf?v=112335617273663998061792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Luxurious Script';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-3d2b0de14072f1c0.ttf?v=155334766222551878671792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Mea Culpa';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-3942b1a3b41440e2.ttf?v=24079411301566080551792598693') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Ms Madi';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-450826783da7a351.ttf?v=35783339134387949751792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN My Soul';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-8e5be7009ecb2e73.ttf?v=146389582079499610551792598696') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Passions Conflict';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-2ef538c0198a0172.ttf?v=87336717343372874321792598693') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Qwitcher Grypen';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-06707cac4e0858b3.ttf?v=11470138892100135241792598698') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Rouge Script';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-08e7fc5ba030cb2b.ttf?v=131213689949205098341792598698') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Ruthie';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-f01c5cb859d8522e.ttf?v=140510567891039162531792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Sail';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-f2237fcd64b596e8.ttf?v=149513777304908500451792598699') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Send Flowers';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-0ebf1e397531cde4.ttf?v=103309040347819173201792598698') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Style Script';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-71fcf20943fd010f.ttf?v=20644438285745454171792598700') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN The Nautigal';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-a88b8080d8f3d2e4.ttf?v=156243587841087081961792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Whisper';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-2852568d6d5a1f6c.ttf?v=138900418596191237011792598692') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN WindSong';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-f2384ffda6364171.ttf?v=154676963622583295391792598694') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Zeyada';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-874bb2918ad61577.ttf?v=25353427727924407251792598692') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Bodoni Moda';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-1eeaca2d4f28635b.ttf?v=19667595242459860761792598699') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Bona Nova';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-0cdc1282de4a009b.ttf?v=42808535101526495271792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Baskervville';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-e3d7855875955186.ttf?v=33422168152613607201792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Cardo';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-e04a8c559704c6ac.ttf?v=24816832460990645491792598701') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Castoro';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-26fe98a5ee813a43.ttf?v=168309135139910536281792598692') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Cormorant';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-cd9efbdcf24e593f.ttf?v=61301648707647595921792598702') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Cormorant Garamond';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-d16c098f6c9674bc.ttf?v=83371704594933882811792598701') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Cormorant Infant';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-6a0edb8b3462e734.ttf?v=180032174440067305741792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Cormorant SC';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-bfc76f8f0d5c87cf.ttf?v=111668216952159431961792598702') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Crimson Pro';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-73dc2137934f716e.ttf?v=116303213499341353691792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Crimson Text';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-9abd01f199964cdd.ttf?v=118803239195286296011792598696') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN DM Serif Display';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-cfaca65befbe4a98.ttf?v=45200304808999866591792598701') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN DM Serif Text';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-9b78a2e6f369b4f1.ttf?v=105739609460032869891792598698') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN EB Garamond';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-49383fec763554ce.ttf?v=23969948321220150861792598698') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Gelasio';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-c6c2666559b6b873.ttf?v=81100255462994512021792598701') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN GFS Didot';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-20bd61aa19e89b8b.ttf?v=112866204750339084421792598699') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN GFS Neohellenic';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-75c318b2476ec78c.ttf?v=171435163963137628171792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Goudy Bookletter 1911';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-d76958b3821109a3.ttf?v=136966374058904408111792598701') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Libre Baskerville';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-6d7f11e0416be44b.ttf?v=59294338081977058251792598700') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Libre Caslon Display';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-4d06542306e43a00.ttf?v=177667643193962665261792598693') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Libre Caslon Text';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-a4bb09e352572f4b.ttf?v=4502897698264218031792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Lora';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-7a6ed08a93f5cc44.ttf?v=30378037756759831041792598691') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Marcellus';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-918bca8180e1eb34.ttf?v=100991609020034427611792598696') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Marcellus SC';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-4bf9edfdf7cc95d5.ttf?v=59727368278756427571792598693') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Mate';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-62580fa44dc6d6ce.ttf?v=16183908422578999161792598699') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Mate SC';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-33b9d65324dcddd4.ttf?v=140640527076468562651792598693') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Merriweather';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-9afc48d1261ec759.ttf?v=110466098047493906761792598704') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Old Standard TT';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-7bbce45f516cdb1d.ttf?v=12898869673739558561792598692') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Oranienbaum';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-462089b5befb14b4.ttf?v=183816919326012231081792598693') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Playfair Display';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-3c8b5c5915cf49e5.ttf?v=156900771871557335291792598693') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Prata';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-d98e97a9187fb84a.ttf?v=82076058820350264581792598701') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Spectral';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-6311780648048d53.ttf?v=53606817931032482211792598700') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Vidaloka';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-7fb344aa53c33e44.ttf?v=123486331042890962461792598696') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Vollkorn';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-6115c05112b38a5c.ttf?v=80619658514388360721792598699') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Zen Antique';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-2db08d28d81d1b8f.ttf?v=1185953347549977891792598704') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Abel';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-4e9480a839aeb223.ttf?v=50173240666284829611792598693') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Albert Sans';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-17c3983ca24188f1.ttf?v=154395084209575397671792598699') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Alegreya Sans';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-76d3b4d16dc28d7c.ttf?v=35047469614515161021792598696') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Archivo';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-282f8b4fe42108e0.ttf?v=179223703763874847121792598695') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Barlow';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-12c9e93e466d3438.ttf?v=68264603641060085741792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Cabin';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-5688b94e2aa7671a.ttf?v=125254851666504002051792598700') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Catamaran';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-168eba82568a2c6c.ttf?v=158572094331838671931792598699') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Comfortaa';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-5a509252de407e26.ttf?v=112467871030662087741792598699') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN DM Sans';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-fac6bea5878ad0a9.ttf?v=166379664804726079451792598694') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Dosis';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-ec2266f7aec1c23e.ttf?v=76802499011249459351792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Figtree';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-29fdc285a2c35f2b.ttf?v=11472292947819445471792598692') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Hind';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-0eda41d0eadfe9d6.ttf?v=45017562437187118831792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Josefin Sans';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-48012f8416835eaf.ttf?v=127013085609623308011792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Jost';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-f65c829856bd2ed1.ttf?v=183435249023416641461792598694') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Karla';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-e9ba4033763a7b80.ttf?v=147705510899012528421792598699') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Lato';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-2a9d94b189fe936d.ttf?v=153774823320988706841792598702') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Lexend';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-b7e2c1c5c0b7b69f.ttf?v=13657402211165389251792598693') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Manrope';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-9d71b4a82536ee94.ttf?v=83006943765959408671792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Montserrat';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-a8529fc065532641.ttf?v=110915486518816407541792598702') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Mulish';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-add8e39db4d503fc.ttf?v=180610838837634692821792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Nunito';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-84609b21f0d3dcc5.ttf?v=5340025479178387021792598692') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Outfit';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-eb57b15152535fa0.ttf?v=129979305287943743241792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Overpass';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-e935928e151d47fe.ttf?v=147729238749668454261792598699') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Poppins';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-0504de149c51e7a1.ttf?v=174136422395001362671792598698') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Quicksand';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-e744696f02dc97c8.ttf?v=13092166534266601351792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Raleway';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-2534bfe550294b81.ttf?v=133889903812189181251792598692') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Rubik';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-49f7a9567eadc34a.ttf?v=152709060103384737251792598693') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Sora';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-1118463880cef3bd.ttf?v=149166624278842846181792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Urbanist';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-b6d4d30f0b704e4b.ttf?v=155615845750785390461792598693') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Work Sans';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-501a2be4c3072072.ttf?v=41060341685101602801792598699') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Cinzel';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-bfff82582cd32e12.ttf?v=80341436578676719401792598693') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Cinzel Decorative';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-a42e4635e0af5c57.ttf?v=168716321138649252221792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Forum';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-200020723b3b75bf.ttf?v=131168877302068736501792598692') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Julius Sans One';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-a8c26c1e849beb70.ttf?v=66148933334108391451792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Poiret One';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-21eba65ab63534b3.ttf?v=66071503486489037981792598699') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Bebas Neue';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-051555b2e2f2e052.ttf?v=132338557589106843241792598698') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Italiana';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-0ab53a38a2043353.ttf?v=71997980154565273681792598698') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Limelight';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-e90e8b875bf0a2a4.ttf?v=56909025440532447591792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Yeseva One';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-e57c8e411810c10d.ttf?v=64723190978888310141792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Elsie';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-658f109cc83ca74c.ttf?v=154084828427890946631792598700') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Fredericka the Great';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-e7689f8bd47a8124.ttf?v=132969003172267235631792598699') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Abril Fatface';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-d02c2e7b62e042ad.ttf?v=121698375872806581451792598701') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Berkshire Swash';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-cd4071842606e622.ttf?v=39942617747310626021792598693') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Uncial Antiqua';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-6a86096c190e002f.ttf?v=123269911828272479571792598700') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Almendra';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-182db9419693a297.ttf?v=149067148003942633851792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Courier Prime';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-0b665171f475d74e.ttf?v=78242485154966555621792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Five Star Typewriter';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-705875eec8a7fc32.ttf?v=116368495160023841481792598700') format('truetype');font-weight:400;font-style:normal;font-display:block}.font-picker summary{background:#e2dcd3;border:1px solid #aa9d92;border-radius:6px;padding:12px;font-size:22px;cursor:pointer;min-height:48px}.font-picker-list{max-height:320px;overflow-y:auto;background:#fcf4ee;padding:6px}.font-picker-list .font-picker-option{display:block;width:100%;font-family:var(--font-preview-family)!important;font-size:24px;font-weight:400;text-align:left;min-height:48px;margin:4px 0;white-space:normal}.font-picker-list p{font:600 12px Arial,sans-serif;margin:12px 4px 6px}</style><style>#proof-product:not(.quarter-fold)>#proof-napkin{inset:-9%;width:118%;height:118%;max-width:none;max-height:none;object-fit:cover;clip-path:inset(1%)}#proof-product:not(.quarter-fold){overflow:hidden}</style><style>body [data-panel="proof"],body [data-panel="proof"]>.grid,body #approval{height:auto;min-height:0}body [data-panel="proof"]>.grid{align-items:start}body #approval{align-self:start}body [data-panel="proof"] .proof{height:clamp(32rem,72vh,40rem)}@media(max-width:720px){body [data-panel="proof"] .proof{height:min(96vw,32rem)}body .proof .proof-product,body .proof .proof-product.quarter-fold{width:84%}}</style><style>@media(max-width:52rem){body .step,body #approval,body .quantity-tiers,body .step-price-tiers{font-size:14px;line-height:1.4}body .step h2,body #approval h2{font-size:1.2rem;margin-bottom:.75rem}body .step label,body .step legend,body #approval label{font-size:14px}body .step input:not([type=radio]):not([type=checkbox]),body .step select,body .step textarea,body #approval select{font-size:16px;min-height:44px;padding:.5rem .65rem;margin:.25rem 0 .65rem}body .step button,body #approval button{font-size:14px;min-height:44px;padding:.45rem .65rem}body .step .actions{gap:.5rem;margin-top:.75rem;padding-top:0}body .step .products{gap:.5rem}body .step .product{min-height:0;padding:.65rem}body .step .product strong{font-size:1rem;margin:.2rem 0}body .step .text-settings{gap:.6rem}body .step .drop-zone{padding:1rem;margin:.5rem 0 .75rem}body .step .placement-buttons{gap:.4rem}body .step .font-picker summary{font-size:16px;min-height:44px;padding:.5rem .65rem}body .progress{margin:1rem 0;padding:.3rem}body .progress li{font-size:13px;padding:.4rem .6rem}body .progress button{font-size:13px;min-height:44px;padding:.4rem .6rem}}</style><style>@media(max-width:52rem){body main{padding-top:0;padding-bottom:0}body main>.panel{padding-top:.25rem;padding-bottom:.25rem}body h1{margin-top:0;margin-bottom:.2rem}body .progress{margin-top:.25rem;margin-bottom:.4rem;padding:.1rem}body .layout{padding-top:.4rem}}</style><style>@media(max-width:52rem){body #step-6{font-size:13px}body #step-6 h2{font-size:1.1rem;margin-bottom:.5rem}body #step-6 label,body #step-6 legend{font-size:13px}body #step-6 select{min-height:40px;margin:.15rem 0 .45rem;padding:.4rem .55rem;font-size:15px}body #step-6 .placement-buttons{gap:.3rem;margin:.35rem 0 .55rem}body #step-6 .placement-buttons .placement-button{min-height:40px;padding:.3rem .25rem;font-size:12px;line-height:1.1}body #step-6 .actions{margin-top:.5rem;gap:.4rem}body #step-6 .actions button{min-height:42px;padding:.35rem .5rem;font-size:13px}}</style><style>@media(max-width:52rem){body .layout>.step{padding:0 0 .5rem}body .layout>.step h2{font-size:1.1rem;margin:.15rem 0 .5rem}body .layout>.step h3{font-size:1rem;margin:.5rem 0 .35rem}body .layout>.step fieldset{margin:.4rem 0;padding:0}body .layout>.step label,body .layout>.step legend{font-size:13px}body .layout>.step input:not([type=radio]):not([type=checkbox]),body .layout>.step select,body .layout>.step textarea{min-height:40px;padding:.4rem .55rem;margin:.15rem 0 .45rem;font-size:15px}body .layout>.step .actions{margin-top:.5rem;gap:.4rem}body .layout>.step .actions button{min-height:42px;padding:.35rem .5rem;font-size:13px}body .layout>.step .notice{padding:.5rem .65rem;margin:.5rem 0;font-size:13px}body .layout>.step .drop-zone{padding:.75rem;margin:.4rem 0 .6rem}body .layout>.step .text-settings{gap:.45rem}body .layout>.step .products{gap:.3rem;margin:.3rem 0 .55rem}}</style><style>@font-face{font-family:'FSN Courier Prime';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-0b665171f475d74e.ttf?v=78242485154966555621792598697') format('truetype');font-weight:400;font-style:normal;font-display:block}@font-face{font-family:'FSN Five Star Typewriter';src:url('//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-705875eec8a7fc32.ttf?v=116368495160023841481792598700') format('truetype');font-weight:400;font-style:normal;font-display:block}</style><style>@media(min-width:53rem){body main{max-width:96rem}body [data-panel="proof"]>.grid{grid-template-columns:minmax(0,1.5fr) minmax(20rem,1fr);align-items:start}body #approval .quantity-tiers{margin:1rem 0}}</style><style>
body button,body .tabs button{display:inline-flex;align-items:center;justify-content:center;line-height:1.2}
body .tabs button{height:44px;min-height:44px;padding:0 1rem;line-height:1}
body .tabs button>span{display:block;transform:translateY(-1px)}
body [data-panel="proof"] .proof{padding-bottom:clamp(3rem,6vw,4.5rem)}
.proof-view-toggle{display:flex;align-items:center;justify-content:center;gap:.65rem;margin:1rem auto 0;font-weight:700}
.proof-view-toggle input{align-self:center!important;margin:0}
.proof-product.quarter-fold[data-proof-view="unfolded"]{margin-top:0!important}
.proof-product.quarter-fold[data-proof-view="unfolded"]>img{display:block!important;left:0;top:0;width:100%;height:100%;object-fit:contain}
.proof-product.quarter-fold[data-proof-view="unfolded"] .flat-quarter-face,.proof-product.quarter-fold[data-proof-view="unfolded"] .flat-quarter-flap{display:none!important}
</style></head><body hidden><header><span class="local">Local prototype · no live services</span></header><main>
<h1>REVIEW, APPROVE, AND REORDER</h1>
<div class="tabs" role="tablist"><button data-tab="proof" aria-selected="true"><span data-editor-text>Proof approval</span></button><button data-tab="status" aria-selected="false"><span data-editor-text>Order status</span></button><button data-tab="library" aria-selected="false"><span data-editor-text>My designs</span></button></div>
<section class="card" data-panel="proof"><div class="grid"><div class="proof-column"><p class="local">Digital proof · Version 3 · PF-2026-0914</p><div class="proof"><div id="proof-product" class="proof-product"><img id="proof-napkin" alt="Selected textured napkin proof"><span class="proof-mark">KD</span></div><label id="proof-view-toggle" class="proof-view-toggle" hidden><input id="show-unfolded-proof" type="checkbox"><span>Show unfolded proof</span></label></div><p>Square Cocktail · White napkin · Gold foil · Bottom right</p><section class="quantity-tiers" aria-label="Quantity pricing"><h3>Quantity pricing</h3><table><caption>One-color screen printing · price per napkin</caption><thead><tr><th scope="col">Quantity</th><th scope="col">Each</th></tr></thead><tbody id="quantity-tier-rows"></tbody></table></section></div><form id="approval"><h2>Approve your proof</h2><a id="edit-design" class="secondary" href="/">Edit design</a><label>Quantity<select id="quantity"><option >50</option><option >100</option><option >150</option><option >200</option><option >250</option><option >300</option><option >350</option><option >400</option><option >450</option><option >500</option><option >550</option><option >600</option><option >650</option><option >700</option><option >750</option><option >800</option><option >850</option><option >900</option><option >950</option><option selected>1000</option><option >1050</option><option >1100</option><option >1150</option><option >1200</option><option >1250</option><option >1300</option><option >1350</option><option >1400</option><option >1450</option><option >1500</option><option >1550</option><option >1600</option><option >1650</option><option >1700</option><option >1750</option><option >1800</option><option >1850</option><option >1900</option><option >1950</option><option >2000</option><option >2050</option><option >2100</option><option >2150</option><option >2200</option><option >2250</option><option >2300</option><option >2350</option><option >2400</option><option >2450</option><option >2500</option><option >2550</option><option >2600</option><option >2650</option><option >2700</option><option >2750</option><option >2800</option><option >2850</option><option >2900</option><option >2950</option><option >3000</option><option >3050</option><option >3100</option><option >3150</option><option >3200</option><option >3250</option><option >3300</option><option >3350</option><option >3400</option><option >3450</option><option >3500</option><option >3550</option><option >3600</option><option >3650</option><option >3700</option><option >3750</option><option >3800</option><option >3850</option><option >3900</option><option >3950</option><option >4000</option><option >4050</option><option >4100</option><option >4150</option><option >4200</option><option >4250</option><option >4300</option><option >4350</option><option >4400</option><option >4450</option><option >4500</option><option >4550</option><option >4600</option><option >4650</option><option >4700</option><option >4750</option><option >4800</option><option >4850</option><option >4900</option><option >4950</option><option >5000</option><option >5050</option><option >5100</option><option >5150</option><option >5200</option><option >5250</option><option >5300</option><option >5350</option><option >5400</option><option >5450</option><option >5500</option><option >5550</option><option >5600</option><option >5650</option><option >5700</option><option >5750</option><option >5800</option><option >5850</option><option >5900</option><option >5950</option><option >6000</option><option >6050</option><option >6100</option><option >6150</option><option >6200</option><option >6250</option><option >6300</option><option >6350</option><option >6400</option><option >6450</option><option >6500</option><option >6550</option><option >6600</option><option >6650</option><option >6700</option><option >6750</option><option >6800</option><option >6850</option><option >6900</option><option >6950</option><option >7000</option><option >7050</option><option >7100</option><option >7150</option><option >7200</option><option >7250</option><option >7300</option><option >7350</option><option >7400</option><option >7450</option><option >7500</option><option >7550</option><option >7600</option><option >7650</option><option >7700</option><option >7750</option><option >7800</option><option >7850</option><option >7900</option><option >7950</option><option >8000</option><option >8050</option><option >8100</option><option >8150</option><option >8200</option><option >8250</option><option >8300</option><option >8350</option><option >8400</option><option >8450</option><option >8500</option><option >8550</option><option >8600</option><option >8650</option><option >8700</option><option >8750</option><option >8800</option><option >8850</option><option >8900</option><option >8950</option><option >9000</option><option >9050</option><option >9100</option><option >9150</option><option >9200</option><option >9250</option><option >9300</option><option >9350</option><option >9400</option><option >9450</option><option >9500</option><option >9550</option><option >9600</option><option >9650</option><option >9700</option><option >9750</option><option >9800</option><option >9850</option><option >9900</option><option >9950</option><option >10000</option><option >10050</option><option >10100</option><option >10150</option><option >10200</option><option >10250</option><option >10300</option><option >10350</option><option >10400</option><option >10450</option><option >10500</option><option >10550</option><option >10600</option><option >10650</option><option >10700</option><option >10750</option><option >10800</option><option >10850</option><option >10900</option><option >10950</option><option >11000</option><option >11050</option><option >11100</option><option >11150</option><option >11200</option><option >11250</option><option >11300</option><option >11350</option><option >11400</option><option >11450</option><option >11500</option><option >11550</option><option >11600</option><option >11650</option><option >11700</option><option >11750</option><option >11800</option><option >11850</option><option >11900</option><option >11950</option><option >12000</option><option >12050</option><option >12100</option><option >12150</option><option >12200</option><option >12250</option><option >12300</option><option >12350</option><option >12400</option><option >12450</option><option >12500</option><option >12550</option><option >12600</option><option >12650</option><option >12700</option><option >12750</option><option >12800</option><option >12850</option><option >12900</option><option >12950</option><option >13000</option><option >13050</option><option >13100</option><option >13150</option><option >13200</option><option >13250</option><option >13300</option><option >13350</option><option >13400</option><option >13450</option><option >13500</option><option >13550</option><option >13600</option><option >13650</option><option >13700</option><option >13750</option><option >13800</option><option >13850</option><option >13900</option><option >13950</option><option >14000</option><option >14050</option><option >14100</option><option >14150</option><option >14200</option><option >14250</option><option >14300</option><option >14350</option><option >14400</option><option >14450</option><option >14500</option><option >14550</option><option >14600</option><option >14650</option><option >14700</option><option >14750</option><option >14800</option><option >14850</option><option >14900</option><option >14950</option><option >15000</option><option >15050</option><option >15100</option><option >15150</option><option >15200</option><option >15250</option><option >15300</option><option >15350</option><option >15400</option><option >15450</option><option >15500</option><option >15550</option><option >15600</option><option >15650</option><option >15700</option><option >15750</option><option >15800</option><option >15850</option><option >15900</option><option >15950</option><option >16000</option><option >16050</option><option >16100</option><option >16150</option><option >16200</option><option >16250</option><option >16300</option><option >16350</option><option >16400</option><option >16450</option><option >16500</option><option >16550</option><option >16600</option><option >16650</option><option >16700</option><option >16750</option><option >16800</option><option >16850</option><option >16900</option><option >16950</option><option >17000</option><option >17050</option><option >17100</option><option >17150</option><option >17200</option><option >17250</option><option >17300</option><option >17350</option><option >17400</option><option >17450</option><option >17500</option><option >17550</option><option >17600</option><option >17650</option><option >17700</option><option >17750</option><option >17800</option><option >17850</option><option >17900</option><option >17950</option><option >18000</option><option >18050</option><option >18100</option><option >18150</option><option >18200</option><option >18250</option><option >18300</option><option >18350</option><option >18400</option><option >18450</option><option >18500</option><option >18550</option><option >18600</option><option >18650</option><option >18700</option><option >18750</option><option >18800</option><option >18850</option><option >18900</option><option >18950</option><option >19000</option><option >19050</option><option >19100</option><option >19150</option><option >19200</option><option >19250</option><option >19300</option><option >19350</option><option >19400</option><option >19450</option><option >19500</option><option >19550</option><option >19600</option><option >19650</option><option >19700</option><option >19750</option><option >19800</option><option >19850</option><option >19900</option><option >19950</option><option >20000</option><option >20050</option><option >20100</option><option >20150</option><option >20200</option><option >20250</option><option >20300</option><option >20350</option><option >20400</option><option >20450</option><option >20500</option><option >20550</option><option >20600</option><option >20650</option><option >20700</option><option >20750</option><option >20800</option><option >20850</option><option >20900</option><option >20950</option><option >21000</option><option >21050</option><option >21100</option><option >21150</option><option >21200</option><option >21250</option><option >21300</option><option >21350</option><option >21400</option><option >21450</option><option >21500</option><option >21550</option><option >21600</option><option >21650</option><option >21700</option><option >21750</option><option >21800</option><option >21850</option><option >21900</option><option >21950</option><option >22000</option><option >22050</option><option >22100</option><option >22150</option><option >22200</option><option >22250</option><option >22300</option><option >22350</option><option >22400</option><option >22450</option><option >22500</option><option >22550</option><option >22600</option><option >22650</option><option >22700</option><option >22750</option><option >22800</option><option >22850</option><option >22900</option><option >22950</option><option >23000</option><option >23050</option><option >23100</option><option >23150</option><option >23200</option><option >23250</option><option >23300</option><option >23350</option><option >23400</option><option >23450</option><option >23500</option><option >23550</option><option >23600</option><option >23650</option><option >23700</option><option >23750</option><option >23800</option><option >23850</option><option >23900</option><option >23950</option><option >24000</option><option >24050</option><option >24100</option><option >24150</option><option >24200</option><option >24250</option><option >24300</option><option >24350</option><option >24400</option><option >24450</option><option >24500</option><option >24550</option><option >24600</option><option >24650</option><option >24700</option><option >24750</option><option >24800</option><option >24850</option><option >24900</option><option >24950</option><option >25000</option><option >25050</option><option >25100</option><option >25150</option><option >25200</option><option >25250</option><option >25300</option><option >25350</option><option >25400</option><option >25450</option><option >25500</option><option >25550</option><option >25600</option><option >25650</option><option >25700</option><option >25750</option><option >25800</option><option >25850</option><option >25900</option><option >25950</option><option >26000</option><option >26050</option><option >26100</option><option >26150</option><option >26200</option><option >26250</option><option >26300</option><option >26350</option><option >26400</option><option >26450</option><option >26500</option><option >26550</option><option >26600</option><option >26650</option><option >26700</option><option >26750</option><option >26800</option><option >26850</option><option >26900</option><option >26950</option><option >27000</option><option >27050</option><option >27100</option><option >27150</option><option >27200</option><option >27250</option><option >27300</option><option >27350</option><option >27400</option><option >27450</option><option >27500</option><option >27550</option><option >27600</option><option >27650</option><option >27700</option><option >27750</option><option >27800</option><option >27850</option><option >27900</option><option >27950</option><option >28000</option><option >28050</option><option >28100</option><option >28150</option><option >28200</option><option >28250</option><option >28300</option><option >28350</option><option >28400</option><option >28450</option><option >28500</option><option >28550</option><option >28600</option><option >28650</option><option >28700</option><option >28750</option><option >28800</option><option >28850</option><option >28900</option><option >28950</option><option >29000</option><option >29050</option><option >29100</option><option >29150</option><option >29200</option><option >29250</option><option >29300</option><option >29350</option><option >29400</option><option >29450</option><option >29500</option><option >29550</option><option >29600</option><option >29650</option><option >29700</option><option >29750</option><option >29800</option><option >29850</option><option >29900</option><option >29950</option><option >30000</option></select></label><div id="physical-wrap" class="check"><input id="physical" type="checkbox"><label for="physical">Add a physical proof for $50. Available for orders of 1,000 or more and adds one week.</label></div><label class="check"><input id="rush" type="checkbox"><span>Rush order — $100. Production is estimated at 7 days.</span></label><h3>Order summary</h3><div class="price"><span>Napkins</span><strong id="subtotal"></strong></div><div class="price" id="proof-fee" hidden><span>Physical proof</span><strong>$50.00</strong></div><div class="price" id="rush-fee" hidden><span>Rush order</span><strong>$100.00</strong></div><div class="price total"><span>Total before shipping and tax</span><strong id="total"></strong></div><p id="lead">Estimated lead time: 2–3 weeks</p><label class="check"><input id="accept" type="checkbox"><span>I approve digital proof version 3 and understand my napkins will be printed according to this proof.</span></label><label class="check"><input id="timing-accept" type="checkbox"><span>I understand standard production is estimated at 2–3 weeks plus shipping.</span></label><button id="continue" disabled>Save local preview approval</button><p id="approval-save-status" class="local" role="status">Preview approval has not been saved.</p><p class="local">Checkout handoff intentionally disabled in this local prototype.</p></form></div></section>
<section class="card" data-panel="status" hidden><div class="grid"><div><p class="local">Order FSN-10428</p><h2>Physical proof approval required</h2><p class="notice">Your physical proof is ready. Sign in to review and approve it before production can begin.</p><div class="proof"><div class="napkin">KD</div></div><label class="check"><input id="physical-accept" type="checkbox"><span>I approve physical proof version 1 for production.</span></label><button id="physical-button" disabled>Approve and begin production</button><p id="physical-status" class="local">Production is blocked pending authenticated approval.</p></div><ol class="timeline"><li class="done"><strong>Order received</strong></li><li class="done"><strong>Digital proof approved</strong></li><li class="done"><strong>Physical proof in progress</strong></li><li class="done"><strong>Physical proof ready—approval required</strong><br><span>Current step · customer action required</span></li><li class=""><strong>Preparing for production</strong></li><li class=""><strong>In production</strong></li><li class=""><strong>Quality check</strong></li><li class=""><strong>Shipped</strong></li><li class=""><strong>Delivered</strong></li></ol></div></section>
<section class="card" data-panel="library" hidden><p class="local">Account-scoped records</p><h2>My saved designs</h2><p>Historical orders and approvals stay unchanged. Editing always creates a new draft and a new proof.</p><div class="library"><article class="design-card"><div class="thumb"><div class="napkin">KD</div></div><h3>Keith Dinner Party</h3><p>Last ordered Aug 14, 2026 · Proof v3</p><div class="actions"><button class="secondary" data-demo="view">View proof</button><button data-demo="reorder">Reorder exactly</button><button class="secondary" data-demo="edit">Edit as new version</button></div></article><article class="design-card"><div class="thumb"><div class="napkin">JS</div></div><h3>Jacksonville Cocktail</h3><p>Last ordered Jun 3, 2026 · Proof v1</p><div class="actions"><button class="secondary" data-demo="view">View proof</button><button data-demo="reorder">Reorder exactly</button><button class="secondary" data-demo="edit">Edit as new version</button></div></article></div><p id="library-status" role="status"></p></section>
</main><script>window.__fsnQuery=window.frameElement.dataset.query||'';</script><script>const creativeStore=async(action,key,value)=>{if(action==='get'){try{const old=sessionStorage.getItem(key);if(old)return JSON.parse(old)}catch{}}return new Promise((resolve,reject)=>{const request=indexedDB.open('fsn-local-designs',1);request.onupgradeneeded=()=>request.result.createObjectStore('designs');request.onerror=()=>reject(request.error);request.onsuccess=()=>{const db=request.result,tx=db.transaction('designs',action==='get'?'readonly':'readwrite'),store=tx.objectStore('designs'),operation=action==='get'?store.get(key):store.put(value,key);let result;operation.onsuccess=()=>{result=operation.result};tx.oncomplete=()=>{db.close();resolve(result)};tx.onerror=tx.onabort=()=>{db.close();reject(tx.error)}}})};</script><script>
const editLink=document.getElementById('edit-design'),editId=new URLSearchParams(window.__fsnQuery).get('creativeId');if(editId)editLink.href='/?edit='+encodeURIComponent(editId);const proofAssets={"quarterFoldCalibration":{"Black":{"imageLeftPercent":-14.3296,"imageTopPercent":-16.8317,"imageWidthPercent":128.3521,"imageHeightPercent":124.1584},"white":{"imageLeftPercent":-10.6796,"imageTopPercent":-13.7255,"imageWidthPercent":121.7476,"imageHeightPercent":122.9412}},"quarterFoldGlueBandPercent":9.84251968503937,"cocktail":{"AnthraciteGrey":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-b4ab3cd834fe4a54.png?v=56180828508278689711792598700","Black":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-107d6f3eb6140c16.png?v=69374936950127338741792598695","Blush":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-52fe74e0c86290fd.png?v=70872605492892605321792598701","BritishRacingGreen":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-cc54ee25412f8e02.png?v=158819514274995697571792598703","Caramel":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-8aaf59ff356e7fbe.png?v=16779761362601578411792598697","Citron":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-cdf16c53521195d4.png?v=97246507922063666301792598696","Grey":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-13e3fa459f7e91f2.png?v=56918675979438175761792598700","Khaki":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-aedf3dcc181d45a0.png?v=181391029652230263781792598700","Lavender":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-31ed8929e5b52865.png?v=179329026159454151001792598699","MidnightBlue":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-83a3de126276761b.png?v=31144051542433129271792598698","Nude":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-b8f1994765deceac.png?v=114203510336725224411792598701","Pear":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-41d2755c4449d599.png?v=142560400851449155461792598700","PearlGrey":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-e03a4f9c624fcce3.png?v=143992023003323812801792598700","Persimmon":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-86edf827d93a4e7d.png?v=165446398099057982911792598695","PickledBeet":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-ef6e885bd6526189.png?v=111758078649487450471792598699","Pomegranate":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-e388f2eb664aab56.png?v=104394563794953395631792598699","RaspberrySorbet":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-4c02b8280345d229.png?v=159880176231220918291792598700","Red":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-033a670dce159fa1.png?v=176562199182443128931792598702","RoyalBlue":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-b831c8165213b744.png?v=33683287436637665831792598702","Sand":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-3b1fecfd51d0f48b.png?v=181499553882375835451792598698","SeaBlue":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-b51ad3421257a375.png?v=106978759448209277651792598702","SeaGlass":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-12ceeb84b9b04879.png?v=77201447728982081751792598700","Sherbet":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-2956bafb1bec9d41.png?v=134912221112083434751792598700","SkyBlue":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-11f9feb4ab7a9d61.png?v=164168547919929583531792598702","Toreador":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-64c65f1be353faa8.png?v=180956132411117849961792598701","white":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-bf773725ca0637e1.png?v=14901139799232785291792598696"},"quarterFold":{"white:folded":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-6dff0459c7d97792.png?v=96004105787766468601792598702","white:unfolded":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-65e505da23f217c3.png?v=115851399111500254071792598700","Black:folded":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-7ccfdbeef3f7f605.png?v=143363486442333091371792598704","Black:unfolded":"//fivestarnapkins.com/cdn/shop/t/119/assets/fsn-v2-ba1f0340a2e27f13.png?v=72180214734274866231792598703"}};const draft=new URLSearchParams(window.__fsnQuery),tabs=[...document.querySelectorAll('[data-tab]')],panels=[...document.querySelectorAll('[data-panel]')];tabs.forEach(b=>b.onclick=()=>{tabs.forEach(x=>x.setAttribute('aria-selected',String(x===b)));panels.forEach(p=>p.hidden=p.dataset.panel!==b.dataset.tab)});const draftSummary=document.querySelector('.proof + p'),draftQuantity=draft.get('quantity');if(draft.get('v')==='1'){draftSummary.textContent=[draft.get('product'),draft.get('napkinColor')+' napkin',draft.get('printColor'),draft.get('placement')].filter(Boolean).join(' · ')}queueMicrotask(()=>{const proofProduct=document.getElementById('proof-product'),proofNapkin=document.getElementById('proof-napkin'),productId=draft.get('productId')||'square-cocktail',colorKey=draft.get('napkinColorKey')||'white',placement=(draft.get('placement')||'CENTER').trim().toUpperCase().replaceAll(' ','_'),scalePercent=Math.max(25,Math.min(100,Number(draft.get('scalePercent'))||60)),quarter=draft.get('family')==='QUARTER_FOLD',asset=quarter?proofAssets.quarterFold[colorKey+':folded']:proofAssets.cocktail[colorKey],face=proofAssets.quarterFoldCalibration[colorKey]||proofAssets.quarterFoldCalibration.white;proofProduct.dataset.orientation=productId.startsWith('diamond-')?'DIAMOND':'SQUARE';proofProduct.dataset.placement=placement;proofProduct.dataset.napkinColor=colorKey;proofProduct.style.setProperty('--art-scale',String(scalePercent/100));proofProduct.style.setProperty('--qf-image-left',face.imageLeftPercent+'%');proofProduct.style.setProperty('--qf-image-top',face.imageTopPercent+'%');proofProduct.style.setProperty('--qf-image-width',face.imageWidthPercent+'%');proofProduct.style.setProperty('--qf-image-height',face.imageHeightPercent+'%');proofProduct.classList.toggle('quarter-fold',quarter);proofNapkin.src=asset||proofAssets.cocktail.white;proofNapkin.dataset.foldedSrc=quarter?(proofAssets.quarterFold[colorKey+':folded']||''):'';proofNapkin.dataset.unfoldedSrc=quarter?(proofAssets.quarterFold[colorKey+':unfolded']||''):'';proofProduct.dataset.proofView='folded';if(draftQuantity&&[...q.options].some(option=>option.value===draftQuantity))q.value=draftQuantity;q.dispatchEvent(new Event('change'))})
const tiers=((()=>{const p=JSON.parse(window.frameElement.dataset.settings||'{}').pricing||{};return Object.fromEntries([['COCKTAIL','cocktail',[200,100,85,75]],['QUARTER_FOLD','folded',[200,125,110,100]]].map(([family,key,fallback])=>[family,[50,500,2500,10000].map((minimumQuantity,i)=>({minimumQuantity,unitPriceCents:Number.isInteger(p[key+'_'+minimumQuantity])&&p[key+'_'+minimumQuantity]>0?p[key+'_'+minimumQuantity]:fallback[i]}))]));})())[(new URLSearchParams(window.__fsnQuery).get('productId')||'').includes('quarter-fold')?'QUARTER_FOLD':'COCKTAIL'].map(t=>[t.minimumQuantity,t.unitPriceCents]).reverse(),q=document.getElementById('quantity'),physical=document.getElementById('physical'),wrap=document.getElementById('physical-wrap'),fee=document.getElementById('proof-fee');function money(c){return new Intl.NumberFormat('en-US',{style:'currency',currency:'USD'}).format(c/100)}function price(){const ascending=[...tiers].reverse();document.getElementById('quantity-tier-rows').innerHTML=ascending.map((tier,i)=>{const next=ascending[i+1];const range=next?tier[0].toLocaleString()+'–'+(next[0]-1).toLocaleString():tier[0].toLocaleString()+'+';const selected=Number(q.value)>=tier[0]&&(!next||Number(q.value)<next[0]);return '<tr'+(selected?' class=selected':'')+'><th scope=row>'+range+(selected?' (selected)':'')+'</th><td>'+money(tier[1])+'</td></tr>'}).join('');const n=Number(q.value),unit=tiers.find(t=>n>=t[0])[1],eligible=n>=1000;if(!eligible)physical.checked=false;wrap.hidden=!eligible;fee.hidden=!physical.checked;const subtotal=n*unit,total=subtotal+(physical.checked?5000:0);document.getElementById('subtotal').textContent=money(subtotal);document.getElementById('total').textContent=money(total);document.getElementById('lead').textContent='Estimated lead time: '+(physical.checked?'3–4 weeks':(JSON.parse(window.frameElement.dataset.settings||'{}').pricing?.lead_time||'2–3 weeks'))}q.onchange=price;physical.onchange=price;price();const accept=document.getElementById('accept'),cont=document.getElementById('continue');accept.onchange=()=>cont.disabled=!accept.checked;cont.onclick=e=>{e.preventDefault();if(!document.getElementById('approval').reportValidity()||!accept.checked||!document.getElementById('timing-accept').checked)return;};const pa=document.getElementById('physical-accept'),pb=document.getElementById('physical-button');pa.onchange=()=>pb.disabled=!pa.checked;pb.onclick=()=>{pb.textContent='Approved';pb.disabled=true;document.getElementById('physical-status').textContent='Approval captured for physical proof version 1. Production may proceed.'};document.querySelectorAll('[data-demo]').forEach(b=>b.onclick=()=>{document.getElementById('library-status').textContent=b.dataset.demo==='edit'?'A new draft version was created. The historical order remains unchanged.':b.dataset.demo==='reorder'?'An exact reorder draft was created using current pricing.':'The immutable approved proof is ready to view.'});
</script><script>(()=>{const update=()=>{document.querySelectorAll('#dual-preview .finished,#dual-preview .unfolded,#proof-product.quarter-fold').forEach(face=>{const image=face.querySelector('img');if(!image||!image.getAttribute('src'))return;let fabric=face.querySelector('.flat-quarter-face');if(!fabric){fabric=document.createElement('span');fabric.className='flat-quarter-face';fabric.setAttribute('aria-hidden','true');face.appendChild(fabric)}fabric.dataset.white=String(face.dataset.napkinColor==='white');fabric.style.backgroundImage='url("'+image.getAttribute('src')+'")';if(!face.classList.contains('unfolded')){let flap=face.querySelector('.flat-quarter-flap');if(!flap){flap=document.createElement('span');flap.className='flat-quarter-flap';flap.setAttribute('aria-hidden','true');face.appendChild(flap)}flap.dataset.white=fabric.dataset.white;flap.style.backgroundImage='url("'+image.getAttribute('src')+'")'}})};const start=()=>{if(!document.body)return;new MutationObserver(update).observe(document.body,{subtree:true,attributes:true,attributeFilter:['src','data-napkin-color','class']});update()};if(document.body)start();else document.addEventListener('DOMContentLoaded',start,{once:true})})();(async()=>{const id=new URLSearchParams(window.__fsnQuery).get('creativeId');if(!id)return;const mark=document.querySelector('#proof-product .proof-mark'),product=document.getElementById('proof-product');try{const creative=await creativeStore('get','fsn-creative:'+id);if(!creative||creative.version!==1||!['logo','text'].includes(creative.kind))throw Error('Missing creative');mark.textContent='';mark.style.width='auto';mark.style.maxWidth='75%';mark.style.height='auto';mark.style.aspectRatio='auto';if(creative.kind==='logo'){if(!/^data:image\/png;base64,/.test(creative.image||''))throw Error('Invalid image');const img=document.createElement('img');img.alt='Your selected artwork';img.src=creative.image;img.style.cssText='position:static;display:block;width:100%;height:auto;max-width:100%;inset:auto;clip-path:none;object-fit:contain';mark.style.width=(Math.max(.01,Math.min(.75,Number(creative.widthRatio)||.45))*100)+'%';mark.appendChild(img)}else{mark.textContent=String(creative.text||'').slice(0,120);mark.style.whiteSpace='pre';mark.style.textAlign=['left','center','right','justify'].includes(creative.textAlign)?creative.textAlign:'center';mark.style.textAlignLast=mark.style.textAlign==='justify'?'justify':'auto';mark.style.color=creative.color;mark.style.fontFamily=creative.fontFamily;mark.style.fontWeight=creative.fontWeight||'400';mark.style.fontStyle=creative.fontStyle||'normal';mark.style.lineHeight=String(Number(creative.lineHeightRatio)||1.15);mark.style.letterSpacing=(Number(creative.letterSpacingRatio)||0)+'em';const resize=()=>{const savedRatio=Number(creative.geometry?.fontSizeRatio),legacyRatio=Number(creative.fontSizeRatio),fontSizeRatio=Number.isFinite(savedRatio)&&savedRatio>0?savedRatio:legacyRatio,viewScale=product.dataset.proofView==='unfolded' ? .5 : 1;mark.style.fontSize=(product.clientWidth*viewScale*Math.max(.005,Math.min(.4,fontSizeRatio||.05)))+'px'};new ResizeObserver(resize).observe(product);resize()}if(creative.geometry){const g=creative.geometry;const syncGeometry=()=>{const unfolded=product.dataset.proofView==='unfolded',viewScale=unfolded ? .5 : 1,viewOffset=unfolded ? .5 : 0,ratio=product.clientWidth/g.sourceWidth*viewScale;if(creative.kind==='text'){const savedRatio=Number(creative.geometry?.fontSizeRatio),legacyRatio=Number(creative.fontSizeRatio),fontSizeRatio=Number.isFinite(savedRatio)&&savedRatio>0?savedRatio:legacyRatio;mark.style.fontSize=(product.clientWidth*viewScale*Math.max(.005,Math.min(.4,fontSizeRatio||.05)))+'px'}const matrix=new DOMMatrix(g.transform==='none'?undefined:g.transform);matrix.e*=ratio;matrix.f*=ratio;Object.assign(mark.style,{left:((viewOffset+g.left*viewScale)*100)+'%',top:((viewOffset+g.top*viewScale)*100)+'%',right:'auto',bottom:'auto',width:(g.width*viewScale*100)+'%',height:(g.height*viewScale*100)+'%',maxWidth:'none',transform:matrix.toString(),rotate:g.rotate||'none'});};window.fsnSyncProofGeometry=syncGeometry;new ResizeObserver(syncGeometry).observe(product);document.fonts?.ready.then(syncGeometry);syncGeometry()}}catch(error){mark.textContent='Design unavailable';document.getElementById('approval').hidden=true;const notice=document.createElement('p');notice.textContent='Please return to the designer and select Continue to proof again. Your design is available only in the tab where it was created.';product.parentElement.after(notice)}})();</script><script>(()=>{'use strict';const rush=document.getElementById('rush'),rushFee=document.getElementById('rush-fee'),timing=document.getElementById('timing-accept'),accept=document.getElementById('accept'),continueButton=document.getElementById('continue'),quantity=document.getElementById('quantity'),physical=document.getElementById('physical'),total=document.getElementById('total'),lead=document.getElementById('lead'),money=cents=>new Intl.NumberFormat('en-US',{style:'currency',currency:'USD'}).format(cents/100),updateGate=()=>{continueButton.disabled=!(accept.checked&&timing.checked)},updateRush=()=>{const count=Number(quantity.value),unit=tiers.find(tier=>count>=tier[0])[1],physicalSelected=physical.checked&&count>=1000;rushFee.hidden=!rush.checked;total.textContent=money(count*unit+(physicalSelected?5000:0)+(rush.checked?10000:0));lead.textContent='Estimated lead time: '+(rush.checked?(physicalSelected?'Physical proof adds 1 week; production is estimated at 7 days after physical-proof approval':'7 production days'):(physicalSelected?'3–4 weeks':(JSON.parse(window.frameElement.dataset.settings||'{}').pricing?.lead_time||'2–3 weeks')))};accept.addEventListener('change',updateGate);timing.addEventListener('change',updateGate);rush.addEventListener('change',updateRush);quantity.addEventListener('change',updateRush);physical.addEventListener('change',updateRush);queueMicrotask(()=>{updateGate();updateRush()})})();</script><script>(()=>{
const normalize=value=>{const text=String(value||'').trim().replace(/\s+/g,' ').toUpperCase();if(!text)return '';const code=text.replace(/^(?:PANTONE|PMS)\s*/,'');return /^(?:\d{3,4}|(?:WARM|COOL) GRAY \d{1,2})(?:\s*[UC])?$/.test(code)?'PANTONE '+code.replace(/\s*([UC])$/,' $1')+(/[UC]$/.test(code)?'':' U'):text;};
const form=document.getElementById('designer-form');
if(form){const step=document.getElementById('step-4');const wrap=document.createElement('div');const label=document.createElement('label');label.htmlFor='pms-reference';label.textContent='PMS / Pantone number (optional)';const input=document.createElement('input');input.id='pms-reference';input.type='text';input.maxLength=80;input.placeholder='e.g. PANTONE 289 U';input.style.cssText='width:100%;padding:.6rem;margin:.3rem 0 1rem';input.setAttribute('aria-description','Customer-supplied printing instruction. Preview color remains approximate.');const status=document.createElement('p');status.textContent='Screen colors are approximate.';wrap.append(label,input,status);const actions=step.querySelector('.actions');if(actions)actions.before(wrap);else step.append(wrap);}
else{const id=new URLSearchParams(window.__fsnQuery).get('creativeId');if(id)creativeStore('get','fsn-creative:'+id).then(saved=>{const value=saved?.returnState?.fields?.find(field=>field.id==='pms-reference')?.value||'';if(value.trim()){const p=document.createElement('p');p.id='proof-pms-reference';p.style.cssText='text-align:center;font-weight:600';p.textContent='PMS / Pantone: '+value;const note=document.createElement('p');note.style.textAlign='center';note.textContent='Screen colors are approximate. Use the PMS reference for printing.';document.querySelector('[data-panel="proof"] .proof')?.after(p,note);}}).catch(()=>{});}
if(form){const input=document.getElementById('pms-reference');const wrapper=input.parentElement;document.getElementById('step-4').append(wrapper);const status=wrapper.querySelector('p');status.id='pms-reference-status';status.setAttribute('aria-live','polite');input.setAttribute('aria-describedby',status.id);const update=()=>{status.textContent=/\bC$/i.test(input.value.trim())?'Coated (C) reference: please confirm with Paper Place. Our printing standard is Uncoated (U) for all napkin colors. This reference has not been changed.':'Printing reference: Uncoated (U). Screen colors are approximate.';};const commit=()=>{input.value=normalize(input.value);update();};input.addEventListener('input',update);input.addEventListener('change',commit);input.addEventListener('blur',commit);document.addEventListener('fsn-capture-draft',commit,true);document.addEventListener('click',commit,true);document.addEventListener('submit',commit,true);update();}
})();</script><script>const fsnPmsColors=(()=>{const rows=JSON.parse(window.frameElement.dataset.settings||'{}')._catalogs?.pms;return rows?Object.fromEntries(rows.filter(row=>row.enabled).map(row=>[row.key,row.hex])):{"100":"#f4ed7c","102":"#f9e814","103":"#c6ad0f","104":"#ad9b0c","105":"#82750f","106":"#f7e859","107":"#f9e526","108":"#f7dd16","109":"#f9d616","110":"#d8b511","111":"#aa930a","112":"#99840a","113":"#f9e55b","114":"#f9e24c","115":"#f9e04c","116":"#fcd116","117":"#c6a00c","118":"#aa8e0a","119":"#897719","120":"#f9e27f","121":"#f9e070","122":"#fcd856","123":"#ffc61e","124":"#e0aa0f","125":"#b58c0a","127":"#f4e287","128":"#f4db60","129":"#f2d13d","130":"#eaaf0f","131":"#c6930a","132":"#9e7c0a","133":"#705b0a","134":"#ffd87f","135":"#fcc963","136":"#fcbf49","137":"#fca311","138":"#d88c02","139":"#af7505","140":"#7a5b11","141":"#f2ce68","142":"#f2bf49","143":"#efb22d","144":"#e28c05","145":"#c67f07","146":"#9e6b05","147":"#725e26","148":"#ffd69b","149":"#fccc93","150":"#fcad56","151":"#f77f00","152":"#dd7500","153":"#bc6d0a","154":"#995905","155":"#f4dbaa","156":"#f2c68c","157":"#eda04f","158":"#e87511","159":"#c66005","160":"#9e540a","161":"#633a11","162":"#f9c6aa","163":"#fc9e70","164":"#fc7f3f","165":"#f96302","166":"#dd5900","167":"#bc4f07","168":"#6d3011","169":"#f9baaa","170":"#f98972","171":"#f9603a","172":"#f74902","173":"#d14414","174":"#933311","175":"#6d3321","176":"#f9afad","177":"#f9827f","178":"#f95e59","179":"#e23d28","180":"#c13828","181":"#7c2d23","182":"#f9bfc1","183":"#fc8c99","184":"#fc5e72","185":"#e8112d","186":"#ce1126","187":"#af1e2d","188":"#7c2128","189":"#ffa3b2","190":"#fc758e","191":"#f4476b","192":"#e5053a","193":"#bf0a30","194":"#992135","195":"#772d35","196":"#f4c9c9","197":"#ef99a3","198":"#e5566d","199":"#d81c3f","200":"#c41e3a","201":"#a32638","202":"#8c2633","203":"#f2afc1","204":"#ed7a9e","205":"#e54c7c","206":"#d30547","207":"#af003d","208":"#8e2344","209":"#75263d","210":"#ffa0bf","211":"#ff77a8","212":"#f94f8e","213":"#ea0f6b","214":"#cc0256","215":"#a50544","216":"#7c1e3f","217":"#f4bfd1","218":"#ed72aa","219":"#e22882","220":"#aa004f","221":"#930042","222":"#70193d","223":"#f993c4","224":"#f46baf","225":"#ed2893","226":"#d60270","227":"#ad005b","228":"#8c004c","229":"#6d213f","230":"#ffa0cc","231":"#fc70ba","232":"#f43fa5","233":"#ce007c","234":"#aa0066","235":"#8e0554","236":"#f9afd3","237":"#f484c4","238":"#ed4faf","239":"#e0219e","240":"#c40f89","241":"#ad0075","242":"#7c1c51","243":"#f2bad8","244":"#eda0d3","245":"#e87fc9","246":"#cc00a0","247":"#b7008e","248":"#a3057f","249":"#7f2860","250":"#edc4dd","251":"#e29ed6","252":"#d36bc6","253":"#af23a5","254":"#a02d96","255":"#772d6b","256":"#e5c4d6","257":"#d3a5c9","258":"#9b4f96","259":"#72166b","260":"#681e5b","261":"#5e2154","262":"#542344","263":"#e0cee0","264":"#c6aadb","265":"#9663c4","266":"#6d28aa","267":"#59118e","268":"#4f2170","269":"#442359","270":"#baafd3","271":"#9e91c6","272":"#8977ba","273":"#38197a","274":"#2b1166","275":"#260f54","276":"#2b2147","277":"#b5d1e8","278":"#99badd","279":"#6689cc","280":"#002b7f","281":"#002868","282":"#002654","283":"#9bc4e2","284":"#75aadb","285":"#3a75c4","286":"#0038a8","287":"#003893","288":"#00337f","289":"#002649","290":"#c4d8e2","292":"#75b2dd","293":"#0051ba","294":"#003f87","295":"#00386b","296":"#002d47","297":"#82c6e2","298":"#51b5e0","299":"#00a3dd","300":"#0072c6","301":"#005b99","302":"#004f6d","303":"#003f54","304":"#a5dde2","305":"#70cee2","306":"#00bce2","307":"#007aa5","308":"#00607c","309":"#003f49","310":"#72d1dd","311":"#28c4d8","312":"#00adc6","313":"#0099b5","314":"#00829b","315":"#006b77","316":"#00494f","317":"#c9e8dd","318":"#93dddb","319":"#4cced1","320":"#009ea0","321":"#008789","322":"#007272","323":"#006663","324":"#aaddd6","325":"#56c9c1","326":"#00b2aa","327":"#008c82","328":"#007770","329":"#006d66","330":"#005951","331":"#baead6","332":"#a0e5ce","333":"#5eddc1","334":"#00997c","335":"#007c66","336":"#006854","337":"#9bdbc1","338":"#7ad1b5","339":"#00b28c","340":"#009977","341":"#007a5e","342":"#006b54","343":"#00563f","344":"#b5e2bf","345":"#96d8af","346":"#70ce9b","347":"#009e60","348":"#008751","349":"#006b3f","350":"#234f33","351":"#b5e8bf","352":"#99e5b2","353":"#84e2a8","354":"#00b760","355":"#009e49","356":"#007a3d","357":"#215b33","358":"#aadd96","359":"#a0db8e","360":"#60c659","361":"#1eb53a","362":"#339e35","363":"#3d8e33","364":"#3a7728","365":"#d3e8a3","366":"#c4e58e","367":"#aadd6d","368":"#5bbf21","369":"#56aa1c","370":"#568e14","371":"#566b21","372":"#d8ed96","373":"#ceea82","374":"#bae860","375":"#8cd600","376":"#7fba00","377":"#709302","378":"#566314","379":"#e0ea68","380":"#d6e542","381":"#cce226","382":"#bad80a","383":"#a3af07","384":"#939905","385":"#707014","386":"#e8ed60","387":"#e0ed44","388":"#d6e80f","389":"#cee007","390":"#bac405","391":"#9e9e07","392":"#848205","393":"#f2ef87","394":"#eaed35","395":"#e5e811","396":"#e0e20c","397":"#c1bf0a","398":"#afa80a","399":"#998e07","400":"#d1c6b5","401":"#c1b5a5","402":"#afa593","403":"#998c7c","404":"#827566","405":"#6b5e4f","406":"#cec1b5","407":"#baaa9e","408":"#a8998c","409":"#99897c","410":"#7c6d63","411":"#66594c","412":"#3d3028","413":"#c6c1b2","414":"#b5afa0","415":"#a39e8c","416":"#8e8c7a","417":"#777263","418":"#605e4f","419":"#282821","420":"#d1ccbf","421":"#bfbaaf","422":"#afaaa3","423":"#96938e","424":"#827f77","425":"#60605b","426":"#2b2b28","427":"#dddbd1","428":"#d1cec6","429":"#adafaa","430":"#919693","431":"#666d70","432":"#444f51","433":"#30383a","434":"#e0d1c6","435":"#d3bfb7","436":"#bca59e","437":"#8c706b","438":"#593f3d","439":"#493533","440":"#3f302b","441":"#d1d1c6","442":"#babfb7","443":"#a3a8a3","444":"#898e8c","445":"#565959","446":"#494c49","447":"#3f3f38","448":"#54472d","449":"#544726","450":"#60542b","451":"#ada07a","452":"#c4b796","453":"#d6ccaf","454":"#e2d8bf","455":"#665614","456":"#998714","457":"#b59b0c","458":"#ddcc6b","459":"#e2d67c","460":"#eadd96","461":"#ede5ad","462":"#5b4723","463":"#755426","464":"#876028","465":"#c1a875","466":"#d1bf91","467":"#ddcca5","468":"#e2d6b5","469":"#603311","476":"#593d2b","477":"#633826","478":"#7a3f28","479":"#af8970","480":"#d3b7a3","481":"#e0ccba","482":"#e5d3c1","483":"#6b3021","484":"#9b301c","485":"#d81e05","486":"#ed9e84","487":"#efb5a0","488":"#f2c4af","489":"#f2d1bf","490":"#5b2626","491":"#752828","492":"#913338","493":"#db828c","494":"#f2adb2","495":"#f4bcbf","496":"#f7c9c6","497":"#512826","498":"#6d332b","499":"#7a382d","500":"#ce898c","501":"#eab2b2","502":"#f2c6c4","503":"#f4d1cc","504":"#511e26","505":"#661e2b","506":"#7a2638","507":"#d8899b","508":"#e8a5af","509":"#f2babf","510":"#f4c6c9","511":"#602144","512":"#84216b","513":"#9e2387","514":"#d884bc","515":"#e8a3c9","516":"#f2bad3","517":"#f4ccd8","518":"#512d44","519":"#63305e","520":"#703572","521":"#b58cb2","522":"#c6a3c1","523":"#d3b7cc","524":"#e2ccd3","525":"#512654","526":"#68217a","527":"#7a1e99","528":"#af72c1","529":"#cea3d3","530":"#d6afd6","531":"#e5c6db","532":"#353842","533":"#353f5b","534":"#3a4972","535":"#9ba3b7","536":"#adb2c1","537":"#c4c6ce","538":"#d6d3d6","539":"#003049","540":"#00335b","541":"#003f77","542":"#6693bc","543":"#93b7d1","544":"#b7ccdb","545":"#c4d3dd","546":"#0c3844","547":"#003f54","548":"#004459","549":"#5e99aa","550":"#87afbf","551":"#a3c1c9","552":"#c4d6d6","553":"#234435","554":"#195e47","555":"#076d54","556":"#7aa891","557":"#a3c1ad","558":"#b7cebc","559":"#c6d6c4","560":"#2b4c3f","561":"#266659","562":"#1e7a6d","563":"#7fbcaa","564":"#a0cebc","565":"#bcdbcc","566":"#d1e2d3","568":"#d6d6c6","569":"#05705e","570":"#008772","571":"#7fc6b2","572":"#aadbc6","573":"#bce2ce","574":"#cce5d6","575":"#495928","576":"#547730","577":"#608e3a","578":"#b5cc8e","579":"#c6d6a0","580":"#c9d6a3","581":"#e0ddbc","582":"#605e11","583":"#878905","584":"#aaba0a","585":"#dbe06b","586":"#e2e584","587":"#e8e89b","600":"#f4edaf","601":"#f2ed9e","602":"#f2ea87","603":"#ede85b","604":"#e8dd21","605":"#ddce11","606":"#d3bf11","607":"#f2eabc","608":"#efe8ad","609":"#eae596","610":"#e2db72","611":"#d6ce49","612":"#c4ba00","613":"#afa00c","614":"#eae2b7","615":"#e2dbaa","616":"#ddd69b","617":"#ccc47c","618":"#b5aa59","619":"#968c28","620":"#847711","621":"#d8ddce","622":"#c1d1bf","623":"#a5bfaa","624":"#7fa08c","625":"#5b8772","626":"#21543f","627":"#0c3026","628":"#cce2dd","629":"#b2d8d8","630":"#8cccd3","631":"#54b7c6","632":"#00a0ba","633":"#007f99","634":"#00667f","635":"#bae0e0","636":"#99d6dd","637":"#6bc9db","638":"#00b5d6","639":"#00a0c4","640":"#008cb2","641":"#007aa5","642":"#d1d8d8","643":"#c6d1d6","644":"#9bafc4","645":"#7796b2","646":"#5e82a3","647":"#26547c","648":"#00305e","649":"#d6d6d8","650":"#bfc6d1","651":"#9baabf","652":"#6d87a8","653":"#335687","654":"#0f2b5b","655":"#0c1c47","656":"#d6dbe0","657":"#c1c9dd","658":"#a5afd6","659":"#7f8cbf","660":"#5960a8","661":"#2d338e","662":"#0c1975","663":"#e2d3d6","664":"#d8ccd1","665":"#c6b5c4","666":"#a893ad","667":"#7f6689","668":"#664975","669":"#472b59","670":"#f2d6d8","671":"#efc6d3","672":"#eaaac4","673":"#e08cb2","674":"#d36b9e","675":"#bc3877","676":"#a00054","677":"#edd6d6","678":"#eaccce","679":"#e5bfc6","680":"#d39eaf","681":"#b7728e","682":"#a05175","683":"#7f284f","684":"#efccce","685":"#eabfc4","686":"#e0aaba","687":"#c9899e","688":"#b26684","689":"#934266","690":"#702342","691":"#efd1c9","692":"#e8bfba","693":"#dba8a5","694":"#c98c8c","695":"#b26b70","696":"#8e4749","697":"#7f383a","698":"#f7d1cc","699":"#f7bfbf","700":"#f2a5aa","701":"#e8878e","702":"#d6606d","703":"#b73844","704":"#9e2828","705":"#f9ddd6","706":"#fcc9c6","707":"#fcadaf","708":"#f98e99","709":"#f26877","710":"#e04251","711":"#d12d33","712":"#ffd3aa","713":"#f9c9a3","714":"#f9ba82","715":"#fc9e49","716":"#f28411","717":"#d36d00","718":"#bf5b00","719":"#f4d1af","720":"#efc49e","721":"#e8b282","722":"#d18e54","723":"#ba7530","724":"#8e4905","725":"#753802","726":"#edd3b5","727":"#e2bf9b","728":"#d3a87c","729":"#c18e60","730":"#aa753f","731":"#723f0a","732":"#60330a","801":"#00aacc","802":"#60dd49","803":"#ffed38","804":"#ff9338","805":"#f95951","806":"#ff0093","807":"#d6009e","808":"#00b59b","809":"#dde00f","810":"#ffcc1e","811":"#ff7247","812":"#fc2366","813":"#e50099","814":"#8c60c1","1205":"#f7e8aa","1215":"#f9e08c","1225":"#ffcc49","1235":"#fcb514","1245":"#bf910c","1255":"#a37f14","1265":"#7c6316","1345":"#ffd691","1355":"#fcce87","1365":"#fcba5e","1375":"#f99b0c","1385":"#cc7a02","1395":"#996007","1405":"#6b4714","1485":"#ffb777","1495":"#ff993f","1505":"#f47c00","1525":"#b55400","1535":"#8c4400","1545":"#4c280f","1555":"#f9bf9e","1565":"#fca577","1575":"#fc8744","1585":"#f96b07","1595":"#d15b05","1605":"#a04f11","1615":"#843f0f","1625":"#f9a58c","1635":"#f98e6d","1645":"#f97242","1655":"#f95602","1665":"#f95602","1675":"#a53f0f","1685":"#843511","1765":"#f99ea3","1767":"#f9b2b7","1775":"#f9848e","1777":"#fc6675","1785":"#fc4f59","1787":"#f43f4f","1788":"#ef2b2d","1795":"#d62828","1797":"#cc2d30","1805":"#af2626","1807":"#a03033","1815":"#7c211e","1817":"#5b2d28","1895":"#fcbfc9","1905":"#fc9bb2","1915":"#f4547c","1925":"#e00747","1935":"#c10538","1945":"#a80c35","1955":"#931638","2365":"#f7c4d8","2375":"#ea6bbf","2385":"#db28a5","2395":"#c4008c","2405":"#a8007a","2415":"#9b0070","2425":"#87005b","2562":"#d8a8d8","2563":"#d1a0cc","2567":"#bf93cc","2572":"#c687d1","2573":"#ba7cbc","2577":"#aa72bf","2582":"#aa47ba","2583":"#9e4fa5","2587":"#8e47ad","2592":"#930fa5","2593":"#872b93","2597":"#66008c","2602":"#820c8e","2603":"#70147a","2607":"#5b027a","2612":"#701e72","2613":"#66116d","2617":"#560c70","2622":"#602d59","2623":"#5b195e","2627":"#4c145e","2635":"#c9add8","2645":"#b591d1","2655":"#9b6dc6","2665":"#894fbf","2685":"#56008c","2695":"#44235e","2705":"#ad9ed3","2706":"#d1cedd","2707":"#bfd1e5","2708":"#afbcdb","2715":"#937acc","2716":"#a5a0d6","2717":"#a5bae0","2718":"#5b77cc","2725":"#7251bc","2726":"#6656bc","2727":"#5e68c4","2728":"#3044b5","2735":"#4f0093","2736":"#4930ad","2738":"#2d008e","2745":"#3f0077","2746":"#3f2893","2747":"#1c146b","2748":"#1e1c77","2755":"#35006d","2756":"#332875","2757":"#141654","2758":"#192168","2765":"#2b0c56","2766":"#2b265b","2767":"#14213d","2768":"#112151","2905":"#93c6e0","2915":"#60afdd","2925":"#008ed6","2935":"#005bbf","2945":"#0054a0","2955":"#003d6b","2965":"#00334c","2975":"#bae0e2","2985":"#51bfe2","2995":"#00a5db","3005":"#0084c9","3015":"#00709e","3025":"#00546b","3035":"#004454","3105":"#7fd6db","3115":"#2dc6d6","3125":"#00b7c6","3135":"#009baa","3145":"#00848e","3155":"#006d75","3165":"#00565b","3242":"#87ddd1","3245":"#8ce0d1","3248":"#7ad3c1","3252":"#56d6c9","3255":"#47d6c1","3258":"#35c4af","3262":"#00c1b5","3265":"#00c6b2","3268":"#00af99","3272":"#00aa9e","3275":"#00b2a0","3278":"#009b84","3282":"#008c82","3285":"#009987","3288":"#008270","3292":"#006056","3295":"#008272","3298":"#006b5b","3302":"#00493f","3305":"#004f42","3308":"#004438","3375":"#8ee2bc","3385":"#54d8a8","3395":"#00c993","3405":"#00b27a","3415":"#007c59","3425":"#006847","3435":"#024930","3935":"#f2ed6d","3945":"#efea07","3955":"#ede211","3965":"#e8dd11","3975":"#b5a80c","3985":"#998c0a","3995":"#6d6002","4485":"#604c11","4495":"#877530","4505":"#a09151","4515":"#bcad75","4525":"#ccbf8e","4535":"#dbcea5","4545":"#e5dbba","4625":"#472311","4635":"#8c5933","4645":"#b28260","4655":"#c49977","4665":"#d8b596","4675":"#e5c6aa","4685":"#edd3bc","4695":"#51261c","4705":"#7c513d","4715":"#99705b","4725":"#b5917c","4735":"#ccaf9b","4745":"#d8bfaa","4755":"#e2ccba","4975":"#441e1c","4985":"#844949","4995":"#a56b6d","5005":"#bc8787","5015":"#d8ada8","5025":"#e2bcb7","5035":"#edcec6","5115":"#4f213a","5125":"#754760","5135":"#936b7f","5145":"#ad8799","5155":"#ccafb7","5165":"#e0c9cc","5175":"#e8d6d1","5185":"#472835","5195":"#593344","5205":"#8e6877","5215":"#b5939b","5225":"#ccadaf","5235":"#ddc6c4","5245":"#e5d3cc","5255":"#35264f","5265":"#493d63","5275":"#605677","5285":"#8c8299","5295":"#b2a8b5","5305":"#ccc1c6","5315":"#dbd3d3","5395":"#02283a","5405":"#3f6075","5415":"#607c8c","5425":"#8499a5","5435":"#afbcbf","5445":"#c4cccc","5455":"#d6d8d3","5463":"#00353a","5467":"#193833","5473":"#26686d","5477":"#3a564f","5483":"#609191","5487":"#667c72","5493":"#8cafad","5497":"#91a399","5503":"#aac4bf","5507":"#afbab2","5513":"#ced8d1","5517":"#c9cec4","5523":"#d6ddd6","5527":"#ced1c6","5535":"#213d30","5545":"#4f6d5e","5555":"#779182","5565":"#96aa99","5575":"#afbfad","5585":"#c4cebf","5595":"#d8dbcc","5605":"#233a2d","5615":"#546856","5625":"#728470","5635":"#9eaa99","5645":"#bcc1b2","5655":"#c6ccba","5743":"#d8ddb5","5747":"#d8d6b7","5753":"#3f4926","5757":"#424716","5763":"#5e663a","5767":"#6b702b","5773":"#777c4f","5777":"#8c914f","5783":"#9b9e72","5787":"#aaad75","5793":"#b5b58e","5797":"#c6c699","5807":"#d3d1aa","5815":"#494411","5825":"#75702b","5835":"#9e9959","5845":"#b2aa70","5855":"#ccc693","5865":"#d6cea3","5875":"#e0dbb5","PURPLE 2X":"#aa0096","COOL GRAY 10":"#777772","320 2X":"#007f82","ORANGE 021":"#ef6b00","RHODAMINE RED":"#ed0091","GREEN 2X":"#009677","YELLOW 2X":"#fce216","PROCESS YELLOW":"#f7e214","BLACK 2":"#3a3321","BLACK 5 2X":"#110c0f","RUBINE RED 2X":"#c6003d","805 2X":"#f93a2b","COOL GRAY 1":"#e8e2d6","BLACK":"#3d332b","COOL GRAY 3":"#d3cec4","RED 032":"#ef2b2d","REFLEX BLUE 2X":"#1c007a","BLACK 3":"#282d26","BLACK 7":"#443d38","354 2X":"#009944","WARM GRAY 4":"#c1b5a5","WARM GRAY 11":"#6d5e51","368 2X":"#009e0f","BLUE 072":"#380096","130 2X":"#e29100","810 2X":"#ffbc21","BLACK 4":"#3d3023","WARM GRAY 7":"#a39687","116 2X":"#f7b50c","REFLEX BLUE":"#0c1c8c","COOL GRAY 4":"#c4c1ba","PURPLE":"#bf30b5","806 2X":"#f7027c","804 2X":"#ff7f1e","COOL GRAY 6":"#b5b2aa","YELLOW":"#fce016","811 2X":"#ff5416","299 2X":"#007fcc","BLACK 4 2X":"#0f0f0f","239 2X":"#c4057c","BLACK 5":"#422d2d","WARM RED 2X":"#e03a00","433 2X":"#0a0c11","812 2X":"#fc074f","COOL GRAY 11":"#686663","803 2X":"#ffd816","1788 2X":"#d62100","WARM GRAY 3":"#ccc1b2","813 2X":"#d10084","BLACK 2 2X":"#111111","VIOLET 2X":"#59008e","464 2X":"#704214","485 2X":"#cc0c00","471 2X":"#a34402","375 2X":"#54bc00","PROCESS BLUE":"#0091c9","WARM GRAY 5":"#b5a899","BLACK 7 2X":"#33302b","RUBINE RED":"#d10056","1852 2X":"#d11600","COOL GRAY 7":"#a5a39e","306 2X":"#00a3d1","VIOLET":"#6607a5","808 2X":"#00a087","327 2X":"#008977","WARM GRAY 10":"#827263","BLACK 6":"#1c2630","WARM GRAY 6":"#afa393","COOL GRAY 5":"#bab7af","WARM GRAY 2":"#ddd1c1","RHODAMINE RED 2X":"#d10572","WARM GRAY 1":"#e5dbcc","382 2X":"#9ec400","2592 2X":"#720082","BLACK 3 2X":"#111114","COOL GRAY 9":"#8c8984","809 2X":"#d6d60c","814 2X":"#703faf","GREEN":"#00af93","WARM RED":"#f93f26","802 2X":"#1cce28","BLACK 6 2X":"#070c0f","COOL GRAY 2":"#ddd8ce","WARM GRAY 9":"#8c7f70","165 2X":"#ea4f00","COOL GRAY 8":"#9b9993","807 2X":"#bf008c","WARM GRAY 8":"#96897a","PROCESS BLUE 2X":"#0077bf","801 2X":"#0089af"}})();</script><script>(()=>{
const input=document.getElementById('pms-reference');if(!input)return;
const selects=['logo-color','text-color'].map(id=>document.getElementById(id));
for(const select of selects)for(const [code,hex] of Object.entries(fsnPmsColors)){if(![...select.options].some(o=>o.value===hex)){const option=new Option('PMS '+code+' (approx.)',hex);option.hidden=true;select.add(option);}}
const swatch=document.createElement('span');swatch.id='pms-preview-swatch';swatch.style.cssText='display:block;width:32px;height:32px;border:1px solid #777';input.after(swatch);let last='';
const apply=()=>{const ref=input.value.trim().toUpperCase(),key=ref.replace(/^(?:PANTONE|PMS)\s*/,'').replace(/\s*[UC]$/,'').replace(/\s+/g,' '),hex=fsnPmsColors[key];swatch.hidden=!hex;swatch.style.backgroundColor=hex||'transparent';catalog.value=hex?key:'';if(hex)wheel.value=hex;const hasFoil=Boolean(document.getElementById('logo-foil').value||document.getElementById('text-foil').value);catalog.options[0].text=hasFoil&&!ref?'Foil color selected':'No color selected';wheel.hidden=hasFoil&&!ref;document.getElementById('pms-reference-status').textContent=(/\sC$/.test(ref)?'Coated (C): please confirm with Paper Place; reference unchanged. ':'')+(hex?'Screen preview '+hex.toUpperCase()+'. Screen colors are approximate.':ref?'PMS preview not found. Check the number or select a standard ink.':'Choose a color or enter a PMS number. Screen colors are approximate.');if(ref===last)return;last=ref;if(!hex)return;for(const id of ['logo-foil','text-foil']){const foil=document.getElementById(id);if(foil&&foil.value){foil.value='';foil.dispatchEvent(new Event('change',{bubbles:true}));}}for(const select of selects){select.value=hex;select.options[select.selectedIndex].text='PANTONE '+key+(/\sC$/.test(ref)?' C':' U')+' (approx.)';select.dispatchEvent(new Event('change',{bubbles:true}));}};
input.type='hidden';const entry=document.createElement('input');entry.id='pms-entry';entry.type='text';entry.maxLength=80;entry.placeholder='e.g. 1895 or PANTONE 289 U';entry.style.cssText='width:100%;padding:.6rem;margin:.3rem 0';input.before(entry);document.querySelector('label[for="pms-reference"]').htmlFor=entry.id;
const applyButton=document.createElement('button');applyButton.type='button';applyButton.id='pms-apply';applyButton.textContent='Apply';applyButton.style.cssText='background:#e2dcd3;color:#61412f;margin-bottom:12px';entry.after(applyButton);
const choose=ref=>{input.value=ref;input.dispatchEvent(new Event('change',{bubbles:true}));entry.value=input.value;last='';apply();};
applyButton.addEventListener('click',()=>choose(entry.value));entry.addEventListener('keydown',e=>{if(e.key==='Enter'){e.preventDefault();choose(entry.value);}});
const picker=document.createElement('fieldset');picker.style.cssText='border:0;padding:0;margin:12px 0';const legend=document.createElement('legend');legend.textContent='Choose a PMS color';const wheel=document.createElement('input');wheel.type='color';wheel.id='pms-catalog-wheel';wheel.value='#fcbfc9';wheel.setAttribute('aria-label','Explore a color; selection snaps to nearest catalog swatch');wheel.style.cssText='width:100%;height:48px';const hint=document.createElement('p');hint.textContent='Snaps to the nearest catalog color.';const catalog=document.createElement('select');catalog.id='pms-catalog';catalog.setAttribute('aria-label','Catalog PMS colors');catalog.style.cssText='width:100%;background:#e2dcd3;padding:.6rem';catalog.add(new Option('Choose a catalog color',''));for(const code of Object.keys(fsnPmsColors).sort((a,b)=>a.localeCompare(b,undefined,{numeric:true})))catalog.add(new Option('PMS '+code,code));
const rgb=hex=>hex.match(/[0-9a-f]{2}/gi).map(v=>parseInt(v,16));const nearest=hex=>{const target=rgb(hex);let best='',distance=Infinity;for(const [code,value] of Object.entries(fsnPmsColors)){const color=rgb(value),d=color.reduce((sum,v,i)=>sum+(v-target[i])**2,0);if(d<distance){distance=d;best=code;}}return best;};
const selectCatalog=code=>{if(!code)return;catalog.value=code;wheel.value=fsnPmsColors[code];choose('PANTONE '+code+' U');};wheel.addEventListener('change',()=>selectCatalog(nearest(wheel.value)));catalog.addEventListener('change',()=>selectCatalog(catalog.value));picker.append(legend,wheel,hint,catalog);input.parentElement.prepend(picker);
for(const id of ['logo-foil','text-foil'])document.getElementById(id).addEventListener('change',event=>{if(event.target.value){input.value='';entry.value='';last='';}apply();});
document.addEventListener('click',()=>{apply();if(document.activeElement!==entry&& !entry.value)entry.value=input.value;},true);document.addEventListener('fsn-capture-draft',apply,true);apply();
})();</script><script>(()=>{
const colorStep=document.getElementById('step-5'),sizeStep=document.getElementById('step-6');if(!colorStep||!sizeStep)return;
colorStep.querySelector('h2').textContent='5. Choose your print color';sizeStep.querySelector('h2').textContent='6. Placement and size';
document.querySelector('[data-step-target="4"]').textContent='5 Print Color';document.querySelector('[data-step-target="5"]').textContent='6 Placement & Size';
for(const index of ['4','5']){const button=document.querySelector('[data-step-target="'+index+'"]');button.setAttribute('aria-label',button.textContent);}
colorStep.querySelector('.size-position-note')?.remove();
for(const group of colorStep.querySelectorAll('[data-position-kind]'))sizeStep.insertBefore(group,sizeStep.querySelector('.resize-buttons'));
const groups=[];for(const kind of ['logo','text']){const group=document.createElement('div');group.dataset.printKind=kind;for(const suffix of ['color','foil']){const id=kind+'-'+suffix,label=document.querySelector('label[for="'+id+'"]'),select=document.getElementById(id);if(label)group.append(label);if(select)group.append(select);}colorStep.insertBefore(group,colorStep.querySelector('.actions'));groups.push(group);}
const pms=document.getElementById('pms-reference');if(pms)colorStep.insertBefore(pms.parentElement,colorStep.querySelector('.actions'));
// Retain the underlying ink controls for rendering and saved drafts, not as duplicate UI.
for(const kind of ['logo','text']){document.getElementById(kind+'-color').hidden=true;const label=document.querySelector('label[for="'+kind+'-color"]');if(label)label.hidden=true;}
if(pms){const wrap=pms.parentElement,picker=wrap.querySelector('fieldset');if(picker)wrap.append(picker);for(const group of groups)colorStep.insertBefore(group,colorStep.querySelector('.actions'));}
const cleanStyle=document.createElement('style');cleanStyle.textContent='#designer-form .help,#designer-form .size-position-note,#drop-zone>p,#crop-editor>p,#designer-form .notice,#pms-catalog-wheel+p{display:none!important}';document.head.append(cleanStyle);
const pmsStatus=document.getElementById('pms-reference-status');if(pmsStatus){const showWarning=()=>{pmsStatus.hidden=!/please confirm|not found/i.test(pmsStatus.textContent);};new MutationObserver(showWarning).observe(pmsStatus,{childList:true,characterData:true,subtree:true});showWarning();}
const update=()=>{const kind=document.querySelector('input[name="creative-type"]:checked')?.value||'logo';groups.forEach(g=>g.hidden=g.dataset.printKind!==kind);};document.querySelectorAll('input[name="creative-type"]').forEach(el=>el.addEventListener('change',update));update();
})();</script><script>(()=>{const table=document.querySelector('[data-panel="proof"] .quantity-tiers'),form=document.getElementById('approval');if(!table||!form)return;const anchor=document.createComment('mobile pricing position');table.before(anchor);const desktop=matchMedia('(min-width:53rem)'),arrange=()=>{if(desktop.matches)form.insertBefore(table,form.querySelector('#quantity').closest('label'));else anchor.after(table)};desktop.addEventListener('change',arrange);arrange();})();</script><script>(()=>{const product=document.getElementById('proof-product'),image=document.getElementById('proof-napkin'),wrap=document.getElementById('proof-view-toggle'),toggle=document.getElementById('show-unfolded-proof');const sync=()=>{const quarter=product.classList.contains('quarter-fold');wrap.hidden=!quarter;if(!quarter)return;const unfolded=toggle.checked;product.dataset.proofView=unfolded?'unfolded':'folded';image.src=unfolded?image.dataset.unfoldedSrc:image.dataset.foldedSrc;requestAnimationFrame(()=>window.fsnSyncProofGeometry?.())};toggle.addEventListener('change',sync);new MutationObserver(sync).observe(product,{attributes:true,attributeFilter:['class']});queueMicrotask(sync)})();</script><script>document.getElementById('edit-design').addEventListener('click',event=>{event.preventDefault();parent.postMessage({type:'fsn-view',view:'designer',query:'edit='+encodeURIComponent(new URLSearchParams(window.__fsnQuery).get('creativeId')||'')},parent.location.origin)});document.getElementById('continue').hidden=true;document.getElementById('approval').addEventListener('submit',event=>event.preventDefault());const proofParams=new URLSearchParams(window.__fsnQuery);if(proofParams.get('reviewOnly')!=='1'&&proofParams.get('saved')!=='1')document.getElementById('approval-save-status').textContent='Sandbox preview only — checkout is not connected.';</script><script>(()=>{
'use strict';
const apiRoot='/apps/napkin-designer';
const json=async(response)=>{const body=await response.json().catch(()=>({}));if(!response.ok)throw Error(body.error||body.description||body.message||'HTTP_'+response.status);return body};
const previewReady=(async()=>{
const nonce=sessionStorage.getItem('fsn-preview-nonce')||(()=>{const bytes=new Uint8Array(32);crypto.getRandomValues(bytes);const value=Array.from(bytes,b=>b.toString(16).padStart(2,'0')).join('');sessionStorage.setItem('fsn-preview-nonce',value);return value})(),existing=sessionStorage.getItem('fsn-preview-token');
if(existing){try{await json(await fetch(apiRoot+'/private-preview/session',{method:'POST',headers:{'content-type':'application/json','x-fsn-preview-authorization':'Bearer '+existing,'x-fsn-preview-session':nonce},body:'{"resume":true}'}));return {token:existing,nonce}}catch{sessionStorage.removeItem('fsn-preview-token')}}
const parentUrl=new URL(parent.location.href),fragment=new URLSearchParams(parentUrl.hash.slice(1)),launchToken=fragment.get('fsn_preview');if(!launchToken)throw Error('PRIVATE_PREVIEW_REQUIRED');
const issued=await json(await fetch(apiRoot+'/private-preview/session',{method:'POST',headers:{'content-type':'application/json'},body:JSON.stringify({launchToken,clientNonce:nonce})}));
sessionStorage.setItem('fsn-preview-token',issued.token);fragment.delete('fsn_preview');parentUrl.hash=fragment.toString();parent.history.replaceState({},'',parentUrl);return {token:issued.token,nonce};
})();
const previewHeaders=async()=>{const value=await previewReady;return {'x-fsn-preview-authorization':'Bearer '+value.token,'x-fsn-preview-session':value.nonce}};
previewReady.then(()=>{const environmentLabel=document.querySelector('body>header .local');if(environmentLabel)environmentLabel.textContent='Five Star Napkins Custom Designer';document.body.removeAttribute('hidden');document.body.dataset.privatePreview='validated'}).catch(()=>{document.body.innerHTML='<main style="font:16px system-ui;max-width:40rem;margin:4rem auto;padding:2rem"><h1>Private preview unavailable</h1><p>This preview link is missing, expired, or already used. Request a new link.</p></main>';document.body.removeAttribute('hidden')});
const guest=async()=>{
const existing=sessionStorage.getItem('fsn-backend-guest');
if(existing)return existing;
const issued=await json(await fetch(apiRoot+'/sessions/guest',{method:'POST',headers:{'content-type':'application/json',...await previewHeaders()},body:'{}'}));
sessionStorage.setItem('fsn-backend-guest',issued.token);
return issued.token;
};
window.fsnQuote=async input=>{
const token=await guest();
return json(await fetch(apiRoot+'/pricing/quote',{method:'POST',headers:{authorization:'Bearer '+token,'content-type':'application/json',...await previewHeaders()},body:JSON.stringify(input)}));
};
window.fsnConvertArtwork=async file=>{
const token=await guest(),extension=(file.name.toLowerCase().match(/.[^.]+$/)||[''])[0],types={'.pdf':'application/pdf','.eps':'application/postscript','.ai':'application/illustrator'},contentType=types[extension]||file.type||'application/octet-stream';
const created=await json(await fetch(apiRoot+'/artwork',{method:'POST',headers:{authorization:'Bearer '+token,'content-type':contentType,'x-fsn-filename':file.name,...await previewHeaders()},body:file}));
const deadline=Date.now()+180000;let current=created;
while(Date.now()<deadline){if(current.state==='PREVIEW_REQUIRES_REVIEW')break;if(['REJECTED','FAILED'].includes(current.state))throw Error('ARTWORK_REJECTED');await new Promise(resolve=>setTimeout(resolve,1500));current=await json(await fetch(apiRoot+'/artwork/'+created.jobId,{headers:{authorization:'Bearer '+token,...await previewHeaders()}}))}
if(current.state!=='PREVIEW_REQUIRES_REVIEW')throw Error('ARTWORK_CONVERSION_TIMEOUT');
const response=await fetch(apiRoot+'/artwork/'+created.jobId+'/preview',{headers:{authorization:'Bearer '+token,...await previewHeaders()}});if(!response.ok)throw Error('ARTWORK_PREVIEW_UNAVAILABLE');const blob=await response.blob(),image=await new Promise((resolve,reject)=>{const reader=new FileReader();reader.onerror=reject;reader.onload=()=>resolve(String(reader.result));reader.readAsDataURL(blob)});
return {jobId:created.jobId,image,sha256:response.headers.get('x-fsn-preview-sha256')||''};
};
window.fsnCreateCartLine=async params=>{
const creativeId=params.get('creativeId'),creative=await creativeStore('get','fsn-creative:'+creativeId);
if(!creative||creative.version!==1)throw Error('DESIGN_TRANSFER_MISSING');
const token=await guest();let artworkJob=null;
if(creative.kind==='logo'){
artworkJob=creative.artworkJobId?{jobId:creative.artworkJobId}:JSON.parse(sessionStorage.getItem('fsn-backend-artwork:'+creativeId)||'null');
if(!artworkJob){const encoded=String(creative.image||'').match(/^data:image\/png;base64,(.+)$/)?.[1];if(!encoded)throw Error('INVALID_ARTWORK_TRANSFER');const binary=atob(encoded),bytes=Uint8Array.from(binary,char=>char.charCodeAt(0));artworkJob=await json(await fetch(apiRoot+'/artwork',{method:'POST',headers:{authorization:'Bearer '+token,'content-type':'image/png','x-fsn-filename':'artwork.png',...await previewHeaders()},body:bytes}));sessionStorage.setItem('fsn-backend-artwork:'+creativeId,JSON.stringify(artworkJob))}
}
const creativeState=creative.kind==='text'?{kind:'text',text:creative.text,color:creative.color,fontFamily:creative.fontFamily,fontSizeRatio:creative.fontSizeRatio,widthRatio:creative.widthRatio,geometry:creative.geometry,returnState:creative.returnState}:{kind:'logo',artworkJobId:artworkJob.jobId,widthRatio:creative.widthRatio,geometry:creative.geometry,returnState:creative.returnState};
const digitalProofAcknowledged=document.getElementById('accept')?.checked===true,productionTimingAcknowledged=document.getElementById('timing-accept')?.checked===true;if(!digitalProofAcknowledged||!productionTimingAcknowledged)throw Error('ACKNOWLEDGMENTS_REQUIRED');
const quantity=Number(document.getElementById('quantity')?.value||params.get('quantity')),productId=params.get('productId'),cartLineId='line-'+creativeId,idempotencyKey='cart-'+creativeId;
const line=await json(await fetch(apiRoot+'/private-preview/cart-line',{method:'POST',headers:{authorization:'Bearer '+token,'content-type':'application/json',...await previewHeaders()},body:JSON.stringify({productId,quantity,cartLineId,idempotencyKey,geometryVersion:'shopify-designer-v1',pricingVersion:'one-color-v1',digitalProofAcknowledged,productionTimingAcknowledged,state:{selection:Object.fromEntries(params),creative:creativeState,acknowledgements:{digitalProofAcknowledged,productionTimingAcknowledged}}})})).catch(error=>{throw Error('CART_LINE_'+error.message)});
const existing=await json(await fetch('/cart.js',{headers:{accept:'application/json'}})),designerItems=existing.items.filter(item=>item.properties?._designer_cart_line_id),matches=designerItems.filter(item=>item.properties._designer_cart_line_id===line.cartLineId);
if(matches.length>1||designerItems.length!==matches.length)throw Error('CONTROLLED_CART_CONFLICT');
if(matches.length===1){const item=matches[0];if(String(item.variant_id)!==String(line.variantId)||item.quantity!==line.quantity||item.properties?._designer_design_id!==line.designId||item.properties?._designer_snapshot_sha256!==line.snapshotSha256)throw Error('CONTROLLED_CART_CONFLICT')}
else await json(await fetch('/cart/add.js',{method:'POST',headers:{'content-type':'application/json','accept':'application/json'},body:JSON.stringify({items:[{id:String(line.variantId),quantity:line.quantity,properties:line.properties}]})})).catch(error=>{throw Error('SHOPIFY_ADD_'+error.message)});
const cart=await json(await fetch('/cart.js',{headers:{accept:'application/json'}})),designerMatches=cart.items.filter(value=>value.properties?._designer_cart_line_id===line.cartLineId),item=designerMatches[0];if(designerMatches.length!==1||!item||String(item.variant_id)!==String(line.variantId)||item.quantity!==line.quantity||item.properties?._designer_design_id!==line.designId||item.properties?._designer_snapshot_sha256!==line.snapshotSha256||item.properties?._fsn_test_order!==line.testOrder)throw Error('CONTROLLED_CART_VALIDATION_FAILED');
sessionStorage.setItem('fsn-cart-evidence:'+creativeId,JSON.stringify({designId:line.designId,snapshotSha256:line.snapshotSha256,cartLineId:line.cartLineId,productId:line.productId,variantId:line.variantId,sku:line.sku,quantity:line.quantity,testOrder:line.testOrder}));parent.location.assign('/cart');
};
})();</script><script>(()=>{'use strict';const money=cents=>new Intl.NumberFormat('en-US',{style:'currency',currency:'USD'}).format(cents/100),params=new URLSearchParams(window.__fsnQuery),quantity=document.getElementById('quantity');let sequence=0,timer;const request=()=>{clearTimeout(timer);timer=setTimeout(async()=>{const current=++sequence,product=document.querySelector('input[name="product"]:checked')?.value||params.get('productId'),count=Number(quantity?.value);if(!product||!Number.isInteger(count))return;try{const quote=await window.fsnQuote({productId:product,quantity:count,physicalProof:document.getElementById('physical')?.checked===true,rush:document.getElementById('rush')?.checked===true});if(current!==sequence)return;document.body.dataset.pricingSource='azure';document.body.dataset.pricingVersion=quote.pricingVersion;const subtotal=document.getElementById('subtotal'),total=document.getElementById('total'),proofFee=document.getElementById('proof-fee'),rushFee=document.getElementById('rush-fee'),rows=document.getElementById('quantity-tier-rows');if(subtotal)subtotal.textContent=money(quote.napkinsCents);if(total)total.textContent=money(quote.totalCents);if(proofFee){proofFee.hidden=!quote.physicalProof;proofFee.querySelector('strong').textContent=money(quote.physicalProofCents)}if(rushFee){rushFee.hidden=!quote.rush;rushFee.querySelector('strong').textContent=money(quote.rushCents)}if(rows)rows.innerHTML=quote.tiers.map((tier,index)=>{const next=quote.tiers[index+1],selected=quote.quantity>=tier.minimumQuantity&&(!next||quote.quantity<next.minimumQuantity),range=tier.minimumQuantity.toLocaleString('en-US')+(next?'–'+(next.minimumQuantity-1).toLocaleString('en-US'):'+');return '<tr'+(selected?' class="selected"':'')+'><th scope="row">'+range+(selected?' (selected)':'')+'</th><td>'+money(tier.unitPriceCents)+'</td></tr>'}).join('');}catch(error){if(current!==sequence)return;document.body.dataset.pricingSource='unavailable';document.body.removeAttribute('data-pricing-version')}} ,120)};['change','input'].forEach(event=>quantity?.addEventListener(event,request));document.getElementById('physical')?.addEventListener('change',request);document.getElementById('rush')?.addEventListener('change',request);request()})();</script><script>(()=>{document.body.dataset.controlledCart='true';const params=new URLSearchParams(window.__fsnQuery),status=document.getElementById('approval-save-status'),add=document.getElementById('continue'),accept=document.getElementById('accept'),timing=document.getElementById('timing-accept'),heading=document.querySelector('#approval h2'),local=document.querySelector('[data-panel="proof"] .local'),title=document.querySelector('h1'),proofTab=document.querySelector('[data-tab="proof"]');if(title)title.textContent='Review your custom napkin';if(proofTab)proofTab.textContent='Design review';document.querySelectorAll('[data-tab="status"],[data-tab="library"]').forEach(element=>element.hidden=true);if(heading)heading.textContent='Review your design';if(local)local.textContent='Current Designer preview';document.querySelectorAll('p').forEach(element=>{if(element.textContent.includes('Checkout handoff intentionally disabled'))element.hidden=true});if(add){const present=()=>{if(add.dataset.fsnBusy!=='1'){if(add.hidden)add.hidden=false;const shouldDisable=!(accept?.checked&&timing?.checked);if(add.disabled!==shouldDisable)add.disabled=shouldDisable;if(add.type!=='button')add.type='button';if(add.textContent!=='Add to Cart')add.textContent='Add to Cart'}};accept?.addEventListener('change',present);timing?.addEventListener('change',present);present();add.addEventListener('click',()=>{if(!(accept?.checked&&timing?.checked)){status.textContent='Please check both confirmations before adding your design.';present();return}add.dataset.fsnBusy='1';add.disabled=true;add.textContent='Adding securely…';delete document.body.dataset.cartError;window.fsnCreateCartLine(params).catch(error=>{document.body.dataset.cartError=String(error.message||'UNKNOWN').slice(0,80);delete add.dataset.fsnBusy;present();status.textContent=error.message.includes('ACKNOWLEDGMENTS_REQUIRED')?'Please check both confirmations before adding your design.':error.message==='CONTROLLED_CART_CONFLICT'?'Another custom Designer item is already in the cart. Please remove it before adding this design.':'This design could not be added securely. Please try again.'})})}status.textContent='Check both confirmations. Your current design will be saved securely when you add it to the cart.'})();</script><script>(()=>{let last=0;const resize=()=>{const content=document.querySelector('main')||document.body,height=Math.ceil(content.getBoundingClientRect().bottom);if(height!==last){last=height;parent.postMessage({type:'fsn-height',height},parent.location.origin)}};new ResizeObserver(resize).observe(document.querySelector('main')||document.body);window.addEventListener('load',resize);resize()})();</script><script>(()=>{const config=JSON.parse(window.frameElement.dataset.settings||'{}'),bindings=[{"id":"heading","selector":"#designer-title","group":"designer"},{"id":"preview","selector":"#preview-title","group":"designer"},{"id":"next","selector":"[data-next]","group":"designer"},{"id":"previous","selector":"[data-prev]","group":"designer"},{"id":"edit","selector":"[data-edit]","group":"designer"},{"id":"confirm","selector":"#confirm","group":"designer"},{"id":"crop","selector":"#crop-artwork","group":"designer"},{"id":"crop_auto","selector":"#crop-auto","group":"designer"},{"id":"crop_reset","selector":"#crop-reset","group":"designer"},{"id":"crop_cancel","selector":"#crop-cancel","group":"designer"},{"id":"crop_apply","selector":"#crop-apply","group":"designer"},{"id":"scale_down","selector":"[data-scale=\"-.05\"]","group":"designer"},{"id":"scale_up","selector":"[data-scale=\".05\"]","group":"designer"},{"id":"title","selector":"#step-1 > h2","group":"step_1"},{"id":"navigation","selector":"[data-progress][data-step-target=\"0\"]","group":"step_1"},{"id":"format_label","selector":"#step-1 legend","group":"step_1"},{"id":"title","selector":"#step-2 > h2","group":"step_2"},{"id":"navigation","selector":"[data-progress][data-step-target=\"1\"]","group":"step_2"},{"id":"color_label","selector":"label[for=\"napkin-color\"]","group":"step_2"},{"id":"color_help","selector":"#napkin-color-help","group":"step_2"},{"id":"title","selector":"#step-3 > h2","group":"step_3"},{"id":"navigation","selector":"[data-progress][data-step-target=\"2\"]","group":"step_3"},{"id":"choice","selector":"#step-3 legend","group":"step_3"},{"id":"logo_choice","selector":"label:has(> input[name=\"creative-type\"][value=\"logo\"])","group":"step_3"},{"id":"text_choice","selector":"label:has(> input[name=\"creative-type\"][value=\"text\"])","group":"step_3"},{"id":"choice_help","selector":"#step-3 .help","group":"step_3"},{"id":"title","selector":"#step-4 > h2","group":"step_4"},{"id":"navigation","selector":"[data-progress][data-step-target=\"3\"]","group":"step_4"},{"id":"upload","selector":"label[for=\"artwork\"]","group":"step_4"},{"id":"upload_help","selector":"#drop-zone > p","group":"step_4"},{"id":"text","selector":"label[for=\"custom-text\"]","group":"step_4"},{"id":"font_search","selector":"label[for=\"font-search\"]","group":"step_4"},{"id":"font","selector":"label[for=\"text-font\"]","group":"step_4"},{"id":"size","selector":"label[for=\"text-size\"]","group":"step_4"},{"id":"crop","selector":"#crop-artwork","group":"step_4"},{"id":"crop_title","selector":"#crop-title","group":"step_4"},{"id":"trim","selector":"#crop-auto","group":"step_4"},{"id":"reset","selector":"#crop-reset","group":"step_4"},{"id":"cancel","selector":"#crop-cancel","group":"step_4"},{"id":"apply_crop","selector":"#crop-apply","group":"step_4"},{"id":"search_placeholder","selector":"#font-search","attribute":"placeholder","group":"step_4"},{"id":"artwork_guidance","selector":"#one-color-guidance","group":"step_4"},{"id":"title","selector":"#step-5 > h2","group":"step_5"},{"id":"navigation","selector":"[data-progress][data-step-target=\"4\"]","group":"step_5"},{"id":"foil","selector":"label[for=\"logo-foil\"],label[for=\"text-foil\"]","group":"step_5"},{"id":"logo_color","selector":"label[for=\"logo-color\"]","group":"step_5"},{"id":"text_color","selector":"label[for=\"text-color\"]","group":"step_5"},{"id":"pms_label","selector":"label[for=\"pms-entry\"]","group":"step_5"},{"id":"pms_placeholder","selector":"#pms-entry","attribute":"placeholder","group":"step_5"},{"id":"pms_apply","selector":"#pms-apply","group":"step_5"},{"id":"pms_choose","selector":"fieldset:has(> #pms-catalog) > legend","group":"step_5"},{"id":"foil_none","selector":"#logo-foil option[value=\"\"],#text-foil option[value=\"\"]","group":"step_5"},{"id":"foil_gold","selector":"#logo-foil option[value=\"#c7a35a\"],#text-foil option[value=\"#c7a35a\"]","group":"step_5"},{"id":"foil_silver","selector":"#logo-foil option[value=\"#b8b8b8\"],#text-foil option[value=\"#b8b8b8\"]","group":"step_5"},{"id":"title","selector":"#step-6 > h2","group":"step_6"},{"id":"navigation","selector":"[data-progress][data-step-target=\"5\"]","group":"step_6"},{"id":"logo_placement","selector":"label[for=\"placement\"]","group":"step_6"},{"id":"text_placement","selector":"label[for=\"text-placement\"]","group":"step_6"},{"id":"smaller","selector":"[data-scale=\"-.05\"]","group":"step_6"},{"id":"larger","selector":"[data-scale=\".05\"]","group":"step_6"},{"id":"top_left","selector":".placement-button[data-placement=\"TOP_LEFT\"]","group":"step_6"},{"id":"top_center","selector":".placement-button[data-placement=\"TOP_CENTER\"]","group":"step_6"},{"id":"top_right","selector":".placement-button[data-placement=\"TOP_RIGHT\"]","group":"step_6"},{"id":"center","selector":".placement-button[data-placement=\"CENTER\"]","group":"step_6"},{"id":"bottom_left","selector":".placement-button[data-placement=\"BOTTOM_LEFT\"]","group":"step_6"},{"id":"bottom_center","selector":".placement-button[data-placement=\"BOTTOM_CENTER\"]","group":"step_6"},{"id":"bottom_right","selector":".placement-button[data-placement=\"BOTTOM_RIGHT\"]","group":"step_6"},{"id":"top_corner","selector":".placement-button[data-placement=\"TOP_CORNER\"]","group":"step_6"},{"id":"right_corner","selector":".placement-button[data-placement=\"RIGHT_CORNER\"]","group":"step_6"},{"id":"bottom_corner","selector":".placement-button[data-placement=\"BOTTOM_CORNER\"]","group":"step_6"},{"id":"left_corner","selector":".placement-button[data-placement=\"LEFT_CORNER\"]","group":"step_6"},{"id":"title","selector":"#step-7 > h2","group":"step_7"},{"id":"navigation","selector":"[data-progress][data-step-target=\"6\"]","group":"step_7"},{"id":"napkin_review","selector":"#review-summary + .review-list li:nth-child(1)","group":"step_7"},{"id":"color_review","selector":"#review-summary + .review-list li:nth-child(2)","group":"step_7"},{"id":"artwork_review","selector":"#review-summary + .review-list li:nth-child(3)","group":"step_7"},{"id":"details_review","selector":"#review-summary + .review-list li:nth-child(4)","group":"step_7"},{"id":"label","selector":"input[name=\"product\"][value=\"square-cocktail\"] ~ strong","group":"square_cocktail"},{"id":"name","selector":"input[name=\"product\"][value=\"square-cocktail\"]","attribute":"data-name","group":"square_cocktail"},{"id":"sku","selector":"input[name=\"product\"][value=\"square-cocktail\"]","attribute":"data-sku","group":"square_cocktail"},{"id":"description","selector":"input[name=\"product\"][value=\"square-cocktail\"]","attribute":"data-description","group":"square_cocktail"},{"id":"format","selector":"input[name=\"product\"][value=\"square-cocktail\"]","attribute":"data-format","group":"square_cocktail"},{"id":"thumbnail","selector":"label:has(input[name=\"product\"][value=\"square-cocktail\"]) .style-thumbnail img","attribute":"src","group":"square_cocktail"},{"id":"thumbnail_alt","selector":"label:has(input[name=\"product\"][value=\"square-cocktail\"]) .style-thumbnail img","attribute":"alt","group":"square_cocktail"},{"id":"label","selector":"input[name=\"product\"][value=\"diamond-cocktail\"] ~ strong","group":"diamond_cocktail"},{"id":"name","selector":"input[name=\"product\"][value=\"diamond-cocktail\"]","attribute":"data-name","group":"diamond_cocktail"},{"id":"sku","selector":"input[name=\"product\"][value=\"diamond-cocktail\"]","attribute":"data-sku","group":"diamond_cocktail"},{"id":"description","selector":"input[name=\"product\"][value=\"diamond-cocktail\"]","attribute":"data-description","group":"diamond_cocktail"},{"id":"format","selector":"input[name=\"product\"][value=\"diamond-cocktail\"]","attribute":"data-format","group":"diamond_cocktail"},{"id":"thumbnail","selector":"label:has(input[name=\"product\"][value=\"diamond-cocktail\"]) .style-thumbnail img","attribute":"src","group":"diamond_cocktail"},{"id":"thumbnail_alt","selector":"label:has(input[name=\"product\"][value=\"diamond-cocktail\"]) .style-thumbnail img","attribute":"alt","group":"diamond_cocktail"},{"id":"label","selector":"input[name=\"product\"][value=\"square-quarter-fold\"] ~ strong","group":"square_quarter_fold"},{"id":"name","selector":"input[name=\"product\"][value=\"square-quarter-fold\"]","attribute":"data-name","group":"square_quarter_fold"},{"id":"sku","selector":"input[name=\"product\"][value=\"square-quarter-fold\"]","attribute":"data-sku","group":"square_quarter_fold"},{"id":"description","selector":"input[name=\"product\"][value=\"square-quarter-fold\"]","attribute":"data-description","group":"square_quarter_fold"},{"id":"format","selector":"input[name=\"product\"][value=\"square-quarter-fold\"]","attribute":"data-format","group":"square_quarter_fold"},{"id":"thumbnail","selector":"label:has(input[name=\"product\"][value=\"square-quarter-fold\"]) .style-thumbnail img","attribute":"src","group":"square_quarter_fold"},{"id":"thumbnail_alt","selector":"label:has(input[name=\"product\"][value=\"square-quarter-fold\"]) .style-thumbnail img","attribute":"alt","group":"square_quarter_fold"},{"id":"label","selector":"input[name=\"product\"][value=\"diamond-quarter-fold\"] ~ strong","group":"diamond_quarter_fold"},{"id":"name","selector":"input[name=\"product\"][value=\"diamond-quarter-fold\"]","attribute":"data-name","group":"diamond_quarter_fold"},{"id":"sku","selector":"input[name=\"product\"][value=\"diamond-quarter-fold\"]","attribute":"data-sku","group":"diamond_quarter_fold"},{"id":"description","selector":"input[name=\"product\"][value=\"diamond-quarter-fold\"]","attribute":"data-description","group":"diamond_quarter_fold"},{"id":"format","selector":"input[name=\"product\"][value=\"diamond-quarter-fold\"]","attribute":"data-format","group":"diamond_quarter_fold"},{"id":"thumbnail","selector":"label:has(input[name=\"product\"][value=\"diamond-quarter-fold\"]) .style-thumbnail img","attribute":"src","group":"diamond_quarter_fold"},{"id":"thumbnail_alt","selector":"label:has(input[name=\"product\"][value=\"diamond-quarter-fold\"]) .style-thumbnail img","attribute":"alt","group":"diamond_quarter_fold"},{"id":"title","selector":"body:not(:has(#designer-form)) h1","group":"proof_content"},{"id":"proof_tab","selector":"[data-tab=\"proof\"]","group":"proof_content"},{"id":"status_tab","selector":"[data-tab=\"status\"]","group":"proof_content"},{"id":"library_tab","selector":"[data-tab=\"library\"]","group":"proof_content"},{"id":"edit_design","selector":"#edit-design","group":"proof_content"},{"id":"view_proof","selector":"[data-demo=\"view\"]","group":"proof_content"},{"id":"reorder","selector":"[data-demo=\"reorder\"]","group":"proof_content"},{"id":"edit_new","selector":"[data-demo=\"edit\"]","group":"proof_content"},{"id":"approval_heading","selector":"#approval > h2","group":"proof_content"},{"id":"quantity_label","selector":"#approval label:has(> #quantity)","group":"proof_content"},{"id":"pricing_heading","selector":".quantity-tiers > h3","group":"proof_content"},{"id":"pricing_caption","selector":".quantity-tiers caption","group":"proof_content"},{"id":"quantity_column","selector":".quantity-tiers thead th:first-child","group":"proof_content"},{"id":"price_column","selector":".quantity-tiers thead th:last-child","group":"proof_content"},{"id":"summary_heading","selector":"#approval > h3","group":"proof_content"},{"id":"napkins_line","selector":"#approval .price:first-of-type > span","group":"proof_content"},{"id":"total_line","selector":"#approval .price.total > span","group":"proof_content"},{"id":"save_approval","selector":"#continue","group":"proof_content"},{"id":"physical_button","selector":"#physical-button","group":"proof_content"},{"id":"status_heading","selector":"[data-panel=\"status\"] h2","group":"proof_content"},{"id":"status_notice","selector":"[data-panel=\"status\"] .notice","group":"proof_content"},{"id":"library_heading","selector":"[data-panel=\"library\"] > h2","group":"proof_content"},{"id":"library_intro","selector":"[data-panel=\"library\"] > p:not(.local):first-of-type","group":"proof_content"},{"id":"quantity_label","selector":"#quantity","attribute":"aria-label","group":"proof_content"},{"id":"label","selector":"#napkin-color option[value=\"white\"]","group":"color_white"},{"id":"label","selector":"#napkin-color option[value=\"Black\"]","group":"color_black"},{"id":"label","selector":"#napkin-color option[value=\"Grey\"]","group":"color_grey"},{"id":"label","selector":"#napkin-color option[value=\"PearlGrey\"]","group":"color_pearlgrey"},{"id":"label","selector":"#napkin-color option[value=\"AnthraciteGrey\"]","group":"color_anthracitegrey"},{"id":"label","selector":"#napkin-color option[value=\"RoyalBlue\"]","group":"color_royalblue"},{"id":"label","selector":"#napkin-color option[value=\"SeaBlue\"]","group":"color_seablue"},{"id":"label","selector":"#napkin-color option[value=\"SkyBlue\"]","group":"color_skyblue"},{"id":"label","selector":"#napkin-color option[value=\"SeaGlass\"]","group":"color_seaglass"},{"id":"label","selector":"#napkin-color option[value=\"MidnightBlue\"]","group":"color_midnightblue"},{"id":"label","selector":"#napkin-color option[value=\"BritishRacingGreen\"]","group":"color_britishracinggreen"},{"id":"label","selector":"#napkin-color option[value=\"Khaki\"]","group":"color_khaki"},{"id":"label","selector":"#napkin-color option[value=\"Pear\"]","group":"color_pear"},{"id":"label","selector":"#napkin-color option[value=\"Sand\"]","group":"color_sand"},{"id":"label","selector":"#napkin-color option[value=\"Caramel\"]","group":"color_caramel"},{"id":"label","selector":"#napkin-color option[value=\"Nude\"]","group":"color_nude"},{"id":"label","selector":"#napkin-color option[value=\"Red\"]","group":"color_red"},{"id":"label","selector":"#napkin-color option[value=\"Blush\"]","group":"color_blush"},{"id":"label","selector":"#napkin-color option[value=\"Sherbet\"]","group":"color_sherbet"},{"id":"label","selector":"#napkin-color option[value=\"Toreador\"]","group":"color_toreador"},{"id":"label","selector":"#napkin-color option[value=\"RaspberrySorbet\"]","group":"color_raspberrysorbet"},{"id":"label","selector":"#napkin-color option[value=\"Pomegranate\"]","group":"color_pomegranate"},{"id":"label","selector":"#napkin-color option[value=\"PickledBeet\"]","group":"color_pickledbeet"},{"id":"label","selector":"#napkin-color option[value=\"Lavender\"]","group":"color_lavender"},{"id":"label","selector":"#napkin-color option[value=\"Citron\"]","group":"color_citron"},{"id":"label","selector":"#napkin-color option[value=\"Persimmon\"]","group":"color_persimmon"}],controlled=new Set(['title','proof_tab','status_tab','library_tab','approval_heading','save_approval']);const apply=()=>{for(const b of bindings){if(document.body.dataset.controlledCart==='true'&&controlled.has(b.id))continue;const value=config[b.group]?.[b.id];if(typeof value!=='string')continue;for(const element of document.querySelectorAll(b.selector)){if(b.attribute){if(element.getAttribute(b.attribute)!==value)element.setAttribute(b.attribute,value);}else if(element.children.length){const target=element.querySelector(':scope>[data-editor-text]');if(target){if(target.textContent!==value)target.textContent=value;for(const node of [...element.childNodes].filter(n=>n.nodeType===3))node.remove();}else{const nodes=[...element.childNodes].filter(n=>n.nodeType===3);if(nodes.map(n=>n.textContent).join('').trim()!==value){if(nodes.length){nodes[0].textContent=value;for(const node of nodes.slice(1))node.textContent='';}else element.prepend(document.createTextNode(value));}}}else if(element.textContent!==value)element.textContent=value;if(element.hasAttribute('data-progress'))element.setAttribute('aria-label',value);}}};apply();document.querySelector('input[name="product"]:checked')?.dispatchEvent(new Event('change',{bubbles:true}));let pending=false;new MutationObserver(()=>{if(pending)return;pending=true;queueMicrotask(()=>{pending=false;apply()});}).observe(document.body,{subtree:true,childList:true,characterData:true});const g=config.designer||{},spacing=config._section||{},style=document.createElement('style');const color=v=>/^#[0-9a-f]{3,8}$/i.test(v)?v:null;style.textContent=(color(g.page_color)?'body{background:'+g.page_color+'!important}':'')+(color(g.text_color)?'body{color:'+g.text_color+'!important}':'')+(color(g.button_color)?'button:not(.secondary):not([data-progress]){background:'+g.button_color+'!important}':'')+(color(g.button_text)?'button:not(.secondary):not([data-progress]){color:'+g.button_text+'!important}':'')+'@media(max-width:52rem){body main{padding-top:'+Math.max(0,Number(spacing.mobile_top_padding)||0)+'px!important;padding-bottom:'+Math.max(0,Number(spacing.mobile_bottom_padding)||0)+'px!important}.progress{margin-bottom:'+Math.max(0,Number(spacing.mobile_section_gap)||0)+'px!important}}';document.head.append(style);})();</script><script>(()=>{const apply=()=>{try{const config=JSON.parse(window.frameElement.dataset.settings||'{}'),s=config._section||{},h=document.getElementById('designer-title'),value=String(s.designer_heading||config.designer?.heading||'Create your custom napkin');if(h&&h.textContent!==value)h.textContent=value}catch{}};apply();new MutationObserver(apply).observe(document.documentElement,{childList:true,subtree:true})})();</script></body></html>









































