.c40{--c40-ink:#212126;--c40-muted:#686873;--c40-accent:#365fe7;max-width:1160px;margin:28px auto;padding:clamp(18px,3vw,34px);border-radius:22px;background:#f7f7f9;color:var(--c40-ink);font-family:inherit;box-sizing:border-box}.c40 *{box-sizing:border-box}.c40__heading{text-align:center;margin:0 0 26px}.c40__eyebrow{font-size:12px;font-weight:800;letter-spacing:.16em;color:#595d6b;margin:0 0 8px}.c40__heading h2{font-size:clamp(27px,4vw,38px);line-height:1.12;margin:0 0 8px;color:var(--c40-ink)}.c40__heading>p:last-child{color:var(--c40-muted);margin:0}.c40__layout{display:grid;grid-template-columns:minmax(300px, .95fr) minmax(350px,1.05fr);gap:26px;align-items:start}.c40__preview-card,.c40__controls{background:#fff;border:1px solid #e7e7ec;border-radius:18px;padding:22px;box-shadow:0 8px 26px #2525360b}.c40__cup-stage{height:480px;position:relative;display:flex;justify-content:center;align-items:center;overflow:hidden;background:radial-gradient(ellipse at 50% 83%,#e7e7ef 0,transparent 52%)}.c40__cup{position:relative;width:224px;height:410px;z-index:2;filter:drop-shadow(13px 16px 11px #17172635);display:flex;flex-direction:column;align-items:center}.c40__body{position:relative;z-index:2;height:300px;width:200px;overflow:hidden;border-radius:15px 15px 0 0;background:#d889d1;box-shadow:inset 8px 0 10px #ffffff30,inset -8px 0 10px #00000013;transition:background .15s}.c40__mock-art{width:100%;height:100%;display:block}.c40__gloss{pointer-events:none;position:absolute;inset:0;background:linear-gradient(90deg,#fff2 0%,transparent 13%,#fff1 27%,transparent 59%,#fff2 76%,transparent 100%);mix-blend-mode:screen}.c40__base{width:154px;height:86px;position:relative;margin-top:-1px;background:#d889d1;clip-path:polygon(0 0,100% 0,94% 100%,6% 100%);border-radius:0 0 18px 18px;box-shadow:inset 7px 0 9px #ffffff29,inset -7px 0 9px #00000016;transition:background .15s}.c40__handle{position:absolute;z-index:1;width:92px;height:160px;border:20px solid #d889d1;border-left:0;border-radius:0 52px 52px 0;left:calc(50% + 85px);top:146px;filter:drop-shadow(2px 2px 2px #2223);transition:border-color .15s}.c40__lid{height:34px;width:222px;border-radius:50%/38%;background:linear-gradient(#f9f9fa,#b7b8be 24%,#202127 26%,#a5a6ab 39%,#27282d 67%,#dddde0 70%,#fafafa);position:relative;margin-bottom:-2px;z-index:3;box-shadow:0 3px 4px #1114}.c40__lid-opening{position:absolute;left:24px;right:24px;top:7px;height:12px;border-radius:50%;background:#272831;box-shadow:inset 0 2px 3px #0008}.c40__straw{position:absolute;z-index:2;left:50px;top:-37px;width:8px;height:51px;border-radius:5px 5px 1px 1px;background:linear-gradient(90deg,#d4d5db,#fff,#aaa);transform:rotate(5deg)}.c40__size-note{display:flex;flex-direction:column;text-align:center;gap:3px;padding-top:6px}.c40__size-note span{font-size:13px;color:var(--c40-muted)}.c40__print-details{padding:12px 2px 0;color:var(--c40-muted);font-size:13px}.c40__print-details summary{cursor:pointer;color:#454552;font-weight:650}.c40__print-details p{margin:8px 0 0;line-height:1.5}.c40__controls{display:grid;gap:22px}.c40__step{display:grid;grid-template-columns:30px 1fr;gap:11px}.c40__step>span{width:27px;height:27px;display:grid;place-items:center;background:#eef1ff;color:#3559d8;font-size:13px;font-weight:800;border-radius:50%}.c40__step h3{font-size:17px;margin:2px 0 12px;color:var(--c40-ink)}.c40__swatches{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.c40__swatch,.c40__custom-color{width:34px;height:34px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px #c8c9d0;cursor:pointer;position:relative;padding:0}.c40__swatch[data-color="#f8f8f6"]{box-shadow:0 0 0 1px #c8c9d0,inset 0 0 0 1px #ddd}.c40__swatch.is-selected{box-shadow:0 0 0 2px #355fe5}.c40__custom-color{display:grid;place-items:center;background:#f4f4f7;color:#555;font-size:22px;overflow:hidden}.c40__custom-color input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}.c40__upload{display:flex;flex-direction:column;gap:5px;align-items:center;justify-content:center;min-height:79px;border:1px dashed #aeb5cc;border-radius:12px;background:#fafbff;cursor:pointer;text-align:center;padding:13px}.c40__upload strong{color:#3159d8}.c40__upload small,.c40__field small{color:#777987;font-size:12px;font-weight:400}.c40__field{display:grid;gap:6px;margin-top:13px}.c40__field>span,.c40__image-tools label,.c40__text-tools label{font-weight:650;font-size:13px}.c40__field input,.c40__field textarea,.c40__text-tools select{width:100%;min-height:43px;padding:10px 12px;border:1px solid #d9dbe2;border-radius:9px;background:#fff;color:#222;font:inherit}.c40__field textarea{resize:vertical}.c40__image-tools{display:flex;gap:12px;align-items:center;margin-top:12px}.c40__image-tools label{flex:1;display:grid;gap:4px}.c40__image-tools input[type=range]{width:100%}.c40__text-button{background:none;border:0;text-decoration:underline;color:#575b68;cursor:pointer}.c40__text-tools{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}.c40__text-tools label{display:flex;align-items:center;justify-content:space-between;gap:8px}.c40__text-tools input[type=color]{width:38px;height:34px;border:0;padding:2px;background:none}.c40__text-tools select{min-height:36px;width:auto;padding:5px 25px 5px 8px}.c40__submit{border:0;border-radius:11px;background:#3159d8;color:white;font:inherit;font-weight:750;font-size:16px;min-height:52px;cursor:pointer;box-shadow:0 5px 13px #3159d82c}.c40__submit:hover{background:#2448be}.c40__submit:disabled{opacity:.65;cursor:wait}.c40__privacy{font-size:12px;color:#737581;text-align:center;margin:-15px 0 0;line-height:1.5}.c40__status{font-size:14px;line-height:1.45}.c40__status:empty{display:none}.c40__status.is-error{color:#a32626}.c40__status.is-success{color:#176332;background:#eaf8ef;border-radius:9px;padding:11px}.c40 [hidden]{display:none!important}@media(max-width:760px){.c40{margin:10px auto;padding:15px;border-radius:15px}.c40__layout{grid-template-columns:1fr;gap:15px}.c40__preview-card,.c40__controls{padding:16px}.c40__cup-stage{height:400px}.c40__cup{transform:scale(.88);transform-origin:center}.c40__handle{left:calc(50% + 72px);top:116px;transform:scale(.9);transform-origin:left center}.c40__controls{gap:19px}}
.c40__mock-art{width:auto;height:min(100%,450px);max-width:100%;aspect-ratio:2/3;display:block;filter:drop-shadow(13px 16px 11px #17172635)}
.c40__cup-stage{position:relative}.c40__cup-fallback{width:auto;height:min(100%,450px);max-width:100%;object-fit:contain;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);filter:drop-shadow(13px 16px 11px #17172635)}.c40__cup-stage.is-ready .c40__cup-fallback{display:none}.c40__mock-art{position:relative;z-index:1;width:auto;height:min(100%,450px);max-width:100%;aspect-ratio:2/3;display:block;filter:drop-shadow(13px 16px 11px #17172635)}
.c40__upload-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;align-items:stretch}.c40__qr-open{border:1px solid #d9dbe2;border-radius:12px;background:#fff;color:#3159d8;font:inherit;font-size:13px;font-weight:750;padding:10px 13px;cursor:pointer}.c40__qr-open small{font-size:11px;color:#777987;font-weight:500}
.c40__image-tools{display:grid;grid-template-columns:1fr 1fr;gap:12px}.c40__image-tools label small{font-size:11px;color:#777987;font-weight:400}.c40__image-tools .c40__remove-image{justify-self:start}
.c40__qr-modal{position:fixed;inset:0;z-index:999999;display:grid;place-items:center;padding:18px;background:#171722a6}.c40__qr-card{position:relative;width:min(100%,420px);padding:25px;border:1px solid #e4e6ed;border-radius:20px;background:#fff;box-shadow:0 20px 70px #0004;text-align:center}.c40__qr-card h3{margin:4px 26px 8px;font-size:21px}.c40__qr-card p{color:#686873;line-height:1.5}.c40__qr-canvas{display:block;width:225px;height:225px;max-width:100%;margin:18px auto;background:white;image-rendering:pixelated}.c40__qr-state{min-height:24px;margin-bottom:10px}.c40__qr-link{color:#3159d8;font-weight:650}.c40__qr-close{position:absolute;right:13px;top:10px;border:0;background:transparent;color:#555;font-size:28px;cursor:pointer}
@media(max-width:520px){.c40__upload-row{grid-template-columns:1fr}.c40__qr-open{min-height:46px}.c40__image-tools{grid-template-columns:1fr}}
/* Keep the full product render at its native 2:3 proportion and show a no-JS image fallback. */
.c40__cup-stage{position:relative}.c40__cup-fallback{width:auto;height:min(100%,450px);max-width:100%;object-fit:contain;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);filter:drop-shadow(13px 16px 11px #17172635)}.c40__cup-stage.is-ready .c40__cup-fallback{display:none}.c40__mock-art{position:relative;z-index:1;width:auto;height:min(100%,450px);max-width:100%;aspect-ratio:2/3;display:block;filter:drop-shadow(13px 16px 11px #17172635)}
/* Keep long control labels and native selectors readable on narrow phone screens. */
.c40__step-content{min-width:0}.c40__text-tools{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.c40__text-tools label{min-width:0}.c40__text-tools select{width:100%;min-width:0}
@media(max-width:760px){.c40__text-tools{grid-template-columns:minmax(0,1fr)}.c40__text-tools label{display:grid;grid-template-columns:90px minmax(0,1fr);justify-content:stretch;align-items:center;gap:10px}.c40__text-tools select{width:100%;min-width:0}}
.c40__sticky-preview{display:none}
@media(max-width:760px){.c40--preview-away .c40__sticky-preview{position:sticky;top:110px;z-index:30;display:flex;align-items:center;gap:16px;min-height:148px;padding:10px 16px;border:1px solid #e3e5ec;border-radius:14px;background:#fffffff2;box-shadow:0 6px 18px #20212a18;backdrop-filter:blur(8px)}.c40__sticky-mock{display:block;width:auto;height:128px;max-width:86px;object-fit:contain}.c40__sticky-preview span{display:grid;gap:2px}.c40__sticky-preview strong{font-size:16px;color:#212126}.c40__sticky-preview small{font-size:13px;color:#686873}}
.c40__color-picker{position:relative;display:inline-block;flex:0 0 54px;width:54px;height:38px;vertical-align:middle;border:1px solid #aeb5c4;border-radius:9px;background:#fff;box-shadow:0 1px 2px #20212a12;overflow:hidden}.c40__color-chip{position:absolute;inset:4px;border:1px solid #989eae;border-radius:5px;pointer-events:none}.c40__color-picker input[type=color]{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;opacity:0;cursor:pointer}
.c40__design-actions{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:9px;align-items:stretch}.c40__gallery-open{grid-column:1/-1;min-height:48px;padding:10px 14px;border:1px solid #3159d8;border-radius:12px;background:#f5f7ff;color:#3159d8;font:inherit;font-weight:750;cursor:pointer}.c40__gallery-open:hover{background:#e9edff}.c40__design-actions .c40__upload{height:100%;min-height:64px}.c40__gallery-modal{position:fixed;inset:0;z-index:1000000;display:grid;place-items:center;padding:16px;background:#171722a6}.c40__gallery-card{position:relative;width:min(100%,900px);max-height:min(88vh,900px);overflow:auto;padding:24px;border:1px solid #e4e6ed;border-radius:20px;background:#fff;box-shadow:0 20px 70px #0004}.c40__gallery-card h3{margin:0 36px 6px 0;font-size:22px}.c40__gallery-card>p{margin:0 36px 18px 0;color:#686873;line-height:1.5}.c40__gallery-close{position:absolute;right:14px;top:10px;width:38px;height:38px;border:0;border-radius:50%;background:#f1f2f6;color:#4e505a;font-size:25px;cursor:pointer}.c40__gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.c40__gallery-item{display:grid;grid-template-rows:auto auto;gap:7px;align-content:start;padding:9px;border:1px solid #e1e3eb;border-radius:12px;background:#fafbff;color:#252631;font:inherit;font-size:13px;font-weight:700;cursor:pointer;text-align:center}.c40__gallery-item:hover,.c40__gallery-item:focus-visible{border-color:#3159d8;box-shadow:0 0 0 2px #3159d833}.c40__gallery-item img{display:block;width:100%;aspect-ratio:7/10;object-fit:contain;border-radius:7px;background:#fff}.c40__gallery-empty{margin:20px 0 0!important;padding:15px;border-radius:10px;background:#f6f7fb;color:#656775}.c40__gallery-card [hidden]{display:none!important}
@media(max-width:760px){.c40__design-actions{grid-template-columns:1fr}.c40__gallery-open{grid-column:auto}.c40__gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.c40__gallery-card{padding:20px 14px}.c40__gallery-card h3{font-size:20px}}
