@import url('https://fonts.googleapis.com/css2?family=Abril+Fatface&family=Anton&family=Bangers&family=Bebas+Neue&family=Black+Ops+One&family=Cinzel:wght@400;700&family=Graduate&family=Lobster&family=Montserrat:wght@400;700&family=Oswald:wght@400;700&family=Pacifico&family=Permanent+Marker&family=Playfair+Display:wght@400;700&family=Roboto+Slab:wght@400;700&family=Special+Elite&display=swap');
.ds-launch{margin:20px 0;padding:18px;border:1px solid #dedede;border-radius:16px;background:#fff;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.ds-mobile-actions{display:none}.ds-mobile-actions button{flex:1;padding:13px 10px;border:1px solid #c79500;border-radius:10px;background:#ffcc18;color:#171717;font:inherit;font-weight:800;cursor:pointer}
.ds-selection-tools{display:flex;align-items:center;justify-content:space-between;gap:10px;max-width:460px;margin:0 auto 10px;font-size:.78rem;color:#666}.ds-selection-tools button{padding:10px 14px;border:1px solid #ccc;border-radius:9px;background:white;color:#a51d25;font:inherit;font-weight:700;cursor:pointer}.ds-selection-tools button:disabled{opacity:.4;cursor:default}
@media(max-width:850px){.ds-mobile-actions{display:flex;gap:10px;margin-bottom:14px}}
.ds-launch h3{margin:0 0 4px;font-size:1.15rem}.ds-launch p{margin:0;color:#616161}.ds-launch button{border:0;border-radius:10px;background:#ffcc18;color:#171717;padding:13px 18px;font-weight:800;cursor:pointer}
.ds-dialog{position:fixed;inset:0;width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;border:0;padding:0;background:#fff;color:#181818;overflow:auto;box-sizing:border-box}
.ds-dialog::backdrop{background:#0009}.ds-dialog *{box-sizing:border-box}.ds-header{position:sticky;top:0;z-index:5;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px max(18px,env(safe-area-inset-right)) 13px max(18px,env(safe-area-inset-left));border-bottom:1px solid #e6e6e6;background:white}.ds-header strong{font-size:1.15rem}.ds-header small{display:block;color:#666;font-weight:400}.ds-close{background:#f2f2f2;border:0;border-radius:50%;font-size:25px;width:42px;height:42px;cursor:pointer}
.ds-grid{max-width:1380px;margin:auto;display:grid;grid-template-columns:minmax(220px,275px) minmax(350px,1fr) minmax(240px,280px);gap:24px;padding:24px 24px calc(32px + env(safe-area-inset-bottom))}.ds-panel{border:1px solid #ddd;border-radius:16px;padding:18px;background:white}.ds-panel h3{font-size:1rem;margin:0 0 13px}.ds-panel label{display:block;font-size:.86rem;font-weight:700;margin:15px 0 6px}.ds-panel input:not([type=color]):not([type=file]):not([type=range]),.ds-panel select{width:100%;padding:11px;border:1px solid #bbb;border-radius:9px;background:white;color:#181818;font:inherit}.ds-panel input[type=color]{width:46px;height:42px;border:1px solid #ccc;border-radius:8px;background:white}.ds-panel input[type=range]{width:100%;accent-color:#d9a400}.ds-panel button,.ds-footer button{font:inherit;cursor:pointer}.ds-action{width:100%;padding:12px;border:1px solid #bbb;border-radius:10px;background:white;color:#181818;font-weight:700;text-align:left;margin:5px 0}.ds-action:hover,.ds-action:focus-visible{border-color:#c79500;background:#fff9db}.ds-action.primary{background:#ffcc18;border-color:#ffcc18;text-align:center}.ds-action:disabled{opacity:.45;cursor:not-allowed}.ds-subtle{color:#656565;font-size:.82rem;line-height:1.45}.ds-divider{border:0;border-top:1px solid #e5e5e5;margin:20px 0}.ds-file{display:none}.ds-stage-wrap{min-width:0;text-align:center}.ds-tabs{display:flex;justify-content:center;gap:6px;margin:0 auto 12px}.ds-tabs button{border:1px solid #ccc;background:white;padding:9px 18px;border-radius:99px;font-weight:700;cursor:pointer}.ds-tabs .active{background:#171717;color:#fff;border-color:#171717}.ds-canvas{display:block;width:min(100%,460px);height:auto;margin:auto;background:white;border:1px solid #e3e3e3;border-radius:14px;touch-action:pan-y pinch-zoom;cursor:grab}.ds-canvas:active{cursor:grabbing}.ds-stage-note{font-size:.78rem;color:#666;margin:10px 0}.ds-swatches{display:flex;flex-wrap:wrap;gap:9px}.ds-swatch{width:35px;height:35px;border:1px solid #aaa;border-radius:50%;padding:0;cursor:pointer;box-shadow:inset 0 0 0 2px white}.ds-swatch.active{outline:3px solid #c19000;outline-offset:2px}.ds-inline{display:flex;align-items:center;gap:10px}.ds-inline input[type=text]{flex:1}.ds-footer{position:sticky;bottom:0;background:#fff;border-top:1px solid #e5e5e5;padding:12px 20px calc(12px + env(safe-area-inset-bottom));display:flex;justify-content:center;gap:10px}.ds-footer button{padding:12px 18px;border-radius:10px;font-weight:800;border:1px solid #aaa;background:white}.ds-footer .ds-save{background:#ffcc18;border-color:#ffcc18}.ds-status{min-height:1.2em;color:#555;font-size:.86rem;margin:12px 0 0}.ds-hidden{display:none!important}
@media(max-width:850px){.ds-grid{grid-template-columns:1fr;gap:16px;padding:16px}.ds-stage-wrap{grid-row:1}.ds-panel{padding:16px}.ds-stage-note{margin-bottom:0}.ds-footer button{flex:1}.ds-header{padding:10px 16px}.ds-canvas{width:min(100%,390px)}.ds-panel.tools{grid-row:2}}
.ds-grid{grid-template-columns:240px minmax(350px,1fr) 350px}.ds-selected-color{font-size:1.05rem;margin:20px 0 15px}.ds-swatches{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px}.ds-swatch{width:100%;height:auto;aspect-ratio:1;border:2px solid #ddd;border-radius:10px;box-shadow:none;display:grid;place-items:center}.ds-swatch span{display:none;font-size:24px;color:white;text-shadow:0 1px 3px #000}.ds-swatch.active{outline:3px solid #35a2e8;outline-offset:3px}.ds-swatch.active span{display:block}.ds-swatch[data-color="White"] span{color:#444;text-shadow:none}.ds-font-sample{padding:15px 5px;margin-top:8px;font-size:26px;overflow-wrap:anywhere;border-bottom:1px solid #eee}
@media(max-width:1050px){.ds-grid{grid-template-columns:1fr;gap:16px;padding:16px}.ds-stage-wrap{grid-row:1}.ds-panel.tools{grid-row:2}.ds-mobile-actions{display:flex;gap:10px;margin-bottom:14px}.ds-panel{padding:16px}.ds-swatches{gap:12px}.ds-canvas{width:min(100%,390px)}}

/* Keep creation controls immediately below the model on every screen. */
.ds-mobile-actions{display:flex;gap:10px;margin:16px auto 0;max-width:460px}.ds-panel.tools{grid-column:1;grid-row:1}.ds-stage-wrap{grid-column:2;grid-row:1}.ds-panel.tools>[data-add-text],.ds-panel.tools>[data-add-image]{display:none}
@media(max-width:1050px){.ds-panel.tools{grid-column:1;grid-row:2}.ds-stage-wrap{grid-column:1;grid-row:1}.ds-mobile-actions{max-width:390px}}

.ds-swatches .ds-swatch{aspect-ratio:1!important;border-radius:9px!important;min-height:0!important;width:100%!important;padding:0!important}.ds-swatches{grid-template-columns:repeat(8,minmax(0,1fr))!important}

/* Product gallery: large editable model and a separate view thumbnail rail. */
.ds-model-gallery{display:grid;grid-template-columns:minmax(0,1fr) 76px;gap:12px;max-width:570px;margin:auto;align-items:start}
.ds-model-gallery .ds-canvas{width:100%;max-width:none;margin:0;border:1px solid #eee;border-radius:16px}
.ds-model-views{display:flex;flex-direction:column;gap:10px;min-width:0}
.ds-model-thumb{display:block;width:100%;padding:3px;border:2px solid #e7e7e7;border-radius:10px;background:white;color:#444;cursor:pointer;overflow:hidden}
.ds-model-thumb.active{border-color:#173969;box-shadow:0 0 0 1px #173969}
.ds-model-thumb:focus-visible{outline:3px solid #35a2e8;outline-offset:3px}
.ds-model-thumb canvas{display:block;width:100%;height:auto;pointer-events:none}
.ds-model-thumb span{display:block;font-size:12px;font-weight:700;padding:5px 0}
.ds-tabs{display:none}
@media(max-width:1050px){.ds-model-gallery{max-width:520px;grid-template-columns:minmax(0,1fr) 64px;gap:8px}.ds-model-gallery .ds-canvas{width:100%;max-width:none}.ds-mobile-actions{max-width:520px}}
@media(max-width:360px){.ds-model-gallery{grid-template-columns:minmax(0,1fr) 54px;gap:6px}.ds-model-thumb span{font-size:11px}}

.ds-dialog,.ds-dialog *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.ds-dialog input,.ds-dialog textarea{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}
.ds-ink-label{display:block;font-size:.86rem;font-weight:700;margin:15px 0 8px}.ds-ink-swatches{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px}.ds-ink-swatches button{width:100%;aspect-ratio:1;border:2px solid #bbb;border-radius:8px;cursor:pointer}.ds-ink-swatches button[aria-pressed="true"]{outline:3px solid #35a2e8;outline-offset:2px}.ds-ink-swatches button:focus-visible{outline:3px solid #173969;outline-offset:2px}

.ds-vector-toggle{display:block;width:100%;max-width:520px;margin:12px auto;padding:14px;border:1px solid #c79500;border-radius:10px;background:#ffcc18;color:#171717;font:inherit;font-weight:800;cursor:pointer}.ds-vector-panel{max-width:520px;margin:12px auto;text-align:left;border:1px solid #ddd;border-radius:14px;padding:16px;background:white}.ds-vector-panel[hidden]{display:none}.ds-vector-content h3{margin:8px 0}.ds-vector-content p{font-size:.85rem;color:#666}.ds-vector-categories,.ds-vector-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ds-vector-categories button,.ds-vector-items button{display:flex;align-items:center;gap:10px;padding:14px 10px;border:1px solid #ccc;border-radius:10px;background:#fff;color:#333;font:inherit;font-weight:700;cursor:pointer;min-width:0}.ds-vector-categories svg{width:30px;height:30px;flex-shrink:0;stroke:#279de9}.ds-vector-items button{flex-direction:column;font-size:.85rem}.ds-vector-items svg{width:64px;height:64px}.ds-vector-categories button:hover,.ds-vector-items button:hover{background:#fff9db;border-color:#c79500}.ds-vector-content label{display:block;margin:12px 0;font-weight:700}.ds-vector-content select{display:block;width:100%;padding:10px;margin-top:6px;background:white;color:#171717;border:1px solid #bbb;border-radius:8px;font:inherit}

.ds-vector-categories small{display:block;font-weight:400;font-size:.72rem;color:#777;margin-top:3px}.ds-vector-search-label input{display:block;width:100%;padding:12px;border:1px solid #bbb;border-radius:8px;font:inherit;margin:8px 0 14px}.ds-vector-items button{min-height:115px}.ds-vector-items svg{width:78px;height:78px}.ds-vector-search-results{max-height:360px;overflow:auto;overscroll-behavior:contain}

.ds-logo-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-height:360px;overflow:auto;overscroll-behavior:contain}.ds-logo-gallery button{border:1px solid #ddd;border-radius:12px;padding:10px;background:white;color:#171717;font:inherit;font-size:.78rem;cursor:pointer}.ds-logo-gallery button[aria-pressed=true]{outline:3px solid #d9a700;outline-offset:-3px;background:#fffcf0}.ds-logo-gallery svg{width:100%;height:150px;display:block}.ds-logo-preview{margin:18px 0;padding:16px;background:#f8f8f8;border:1px solid #ddd;border-radius:12px}.ds-logo-preview svg{display:block;width:100%;height:260px}.ds-logo-colors{display:grid;grid-template-columns:1fr 1fr;gap:12px}.ds-vector-content input:not([type=checkbox]){width:100%;display:block;padding:11px;border:1px solid #bbb;border-radius:8px;margin-top:6px;font:inherit}.ds-logo-check{display:flex!important;gap:8px;align-items:center}.ds-logo-status{font-size:.85rem}.ds-logo-gallery button:focus-visible{outline:3px solid #d9a700}

.ds-canvas-frame{position:relative;min-width:0;line-height:0}.ds-corner{position:absolute;z-index:2;transform:translate(-50%,-50%);width:40px;height:40px;display:grid;place-items:center;border:2px solid #fff;border-radius:9px;background:#ffcc18;color:#171717;font-size:23px;box-shadow:0 1px 5px #0005;touch-action:none;cursor:nwse-resize;padding:0;user-select:none;-webkit-user-select:none}.ds-corner[hidden]{display:none}.ds-corner:focus-visible{outline:3px solid #173969}

.ds-artwork-hit{position:absolute;display:block;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;touch-action:none;cursor:move;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.ds-artwork-hit[hidden]{display:none}.ds-artwork-hit:focus-visible{outline:2px solid #ffcc18}.ds-corner{z-index:40}
