:root{--bg:#fff;--bg-soft:#f6f5fb;--bg-tint:#faf9ff;--ink:#160f23;--text:#4b4660;--muted:#6b6580;--border:#ebe8f3;--primary:#7c3aed;--primary-strong:#6d28d9;--primary-2:#ec4899;--gradient:linear-gradient(135deg, #7c3aed 0%, #c4308f 60%, #db2777 100%);--gradient-soft:linear-gradient(135deg, #7c3aed1f, #ec48991f);--ring:#7c3aed47;--ok:#16a34a;--warn:#d97706;--bad:#dc2626;--r-sm:10px;--r:16px;--r-lg:24px;--r-pill:999px;--shadow-sm:0 1px 2px #160f230f;--shadow:0 6px 20px #160f2314;--shadow-lg:0 18px 50px #160f2324;--shadow-primary:0 12px 30px #7c3aed59;--sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--display:"Sora", var(--sans);font-family:var(--sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:16px;line-height:1.6}*,:before,:after{box-sizing:border-box}body{background:radial-gradient(1100px 480px at 85% -8%, #ec48991a, transparent 60%), radial-gradient(900px 460px at 0% 0%, #7c3aed1f, transparent 55%), var(--bg);min-height:100vh;margin:0}h1,h2,h3{font-family:var(--display);color:var(--ink);letter-spacing:-.02em;margin:0 0 .75rem;line-height:1.15}h1{font-size:clamp(1.8rem,1.2rem + 2.4vw,3rem);font-weight:800}h2{font-size:1.5rem;font-weight:700}h3{font-size:1.1rem;font-weight:600}p{margin:0 0 .85rem}a{color:var(--primary-strong);font-weight:500;text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%}::selection{background:#7c3aed2e}:focus-visible{outline:3px solid var(--primary);outline-offset:2px}.app{max-width:1160px;margin:0 auto;padding:0 1.5rem 4rem}.content{animation:.4s both fade-in}@keyframes fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.navbar{z-index:50;border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#ffffffc7;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:2.5rem;padding:1rem 0;display:flex;position:sticky;top:0}.navbar .logo,.navbar .logo:hover{text-decoration:none}.brand{align-items:center;gap:.55rem;display:inline-flex}.brand svg{box-shadow:var(--shadow-primary);border-radius:11px}.brand-name{font-family:var(--display);letter-spacing:-.02em;background:var(--gradient);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:1.35rem;font-weight:800}.nav-links{align-items:center;gap:1.25rem;font-size:.92rem;display:flex}.nav-links a{color:var(--text);padding-block:.6rem}.nav-links a:hover{color:var(--primary-strong);text-decoration:none}.nav-toggle{border:1px solid var(--border);min-width:44px;min-height:44px;color:var(--ink);cursor:pointer;background:0 0;border-radius:10px;justify-content:center;align-items:center;padding:.35rem .45rem;line-height:0;display:none}.nav-user{color:var(--muted);align-items:center;gap:.75rem;font-size:.85rem;display:flex}.link-btn{color:var(--primary-strong);cursor:pointer;font:inherit;background:0 0;border:none;padding:0;font-weight:600}.link-btn:hover{text-decoration:underline}.btn{border-radius:var(--r-pill);border:1px solid var(--border);color:var(--ink);cursor:pointer;font-family:var(--sans);background:#fff;justify-content:center;align-items:center;gap:.5rem;padding:.7rem 1.3rem;font-size:.95rem;font-weight:600;transition:transform .15s,box-shadow .15s,background .15s;display:inline-flex}.btn:hover{box-shadow:var(--shadow);text-decoration:none;transform:translateY(-2px)}.btn.primary{background:var(--gradient);color:#fff;box-shadow:var(--shadow-primary);background-size:160% 160%;border:none}.btn.primary:hover{background-position:100% 0;box-shadow:0 16px 36px #7c3aed73}.btn:disabled{opacity:.55;cursor:not-allowed;box-shadow:none;transform:none}.nav-cta{white-space:nowrap;padding:.55rem 1.1rem}.grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.5rem;display:grid}.card{border:1px solid var(--border);border-radius:var(--r-lg);color:inherit;box-shadow:var(--shadow-sm);background:#fff;padding:1rem;text-decoration:none;transition:transform .18s,box-shadow .18s;display:block;overflow:hidden}.card:hover{box-shadow:var(--shadow-lg);text-decoration:none;transform:translateY(-4px)}.card img{object-fit:contain;border-radius:var(--r);background:var(--bg-soft);width:100%;height:220px;margin-bottom:.75rem;transition:transform .25s}.card:hover img{transform:scale(1.04)}.card h3{margin-bottom:.25rem}.card p{color:var(--primary-strong);margin:0;font-weight:700}.card-placeholder{height:220px;color:var(--muted);background:var(--bg-soft);border-radius:var(--r);justify-content:center;align-items:center;margin-bottom:.75rem;font-size:.9rem;display:flex}.product-detail{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:2.5rem;display:grid}.product-image{border-radius:var(--r-lg);object-fit:contain;background:var(--bg-soft);border:1px solid var(--border);width:100%;max-height:520px;padding:1rem}.price{color:var(--ink);font-size:1.6rem;font-weight:800;font-family:var(--display)}.option-group{margin:1.25rem 0}.option-group label{color:var(--ink);margin-bottom:.5rem;font-weight:600;display:block}.swatches{flex-wrap:wrap;gap:.5rem;padding:3px;display:flex}.swatch{width:30px;height:30px;box-shadow:0 0 0 1px var(--border);cursor:pointer;border:2px solid #fff;border-radius:50%;transition:transform .12s,box-shadow .12s;position:relative}.swatch:after{content:"";border-radius:50%;position:absolute;inset:-6px}.swatch:hover{transform:scale(1.12)}.swatch.selected{box-shadow:0 0 0 2px var(--primary);transform:scale(1.1)}select,.checkout-form input,.ai-prompt{font-family:var(--sans);border:1px solid var(--border);border-radius:var(--r-sm);color:var(--ink);background:#fff;padding:.65rem .8rem;font-size:.95rem;transition:border-color .15s,box-shadow .15s}select:focus,.checkout-form input:focus,.ai-prompt:focus{border-color:var(--primary);box-shadow:0 0 0 4px var(--ring);outline:none}.designer-layout{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:start;gap:2rem;display:grid}.designer-layout.expanded{grid-template-columns:1fr}.designer-layout.expanded .controls{width:100%;max-width:760px;margin:0 auto}.expand-toggle{z-index:7;border:1px solid var(--border);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);width:34px;height:34px;color:var(--ink);cursor:pointer;box-shadow:var(--shadow-sm);background:#ffffffeb;border-radius:10px;justify-content:center;align-items:center;padding:0;transition:background .15s,transform .15s;display:flex;position:absolute;top:12px;right:12px}.expand-toggle:hover{background:#fff;transform:translateY(-1px)}.design-editor{background:var(--bg-soft);border:1px solid var(--border);border-radius:var(--r-lg);-webkit-user-select:none;user-select:none;touch-action:none;width:100%;position:relative;overflow:hidden}.garment-image{object-fit:contain;pointer-events:none;width:100%;height:100%;display:block}.print-area{pointer-events:none;background-image:linear-gradient(#7c3aed2e 1px,#0000 1px),linear-gradient(90deg,#7c3aed2e 1px,#0000 1px);background-size:33.33% 33.33%;border:2px dashed #7c3aedd9;position:absolute}.placement-tabs{flex-wrap:wrap;gap:.4rem;display:flex}.placement-tabs .btn{padding:.45rem .85rem;font-size:.85rem;position:relative}.placement-tabs .dot{background:var(--ok);border-radius:50%;width:7px;height:7px;margin-left:6px;display:inline-block}.artwork-box{cursor:move;touch-action:none;border:1px dashed var(--primary);position:absolute}.artwork-img{pointer-events:none;-webkit-user-select:none;user-select:none;width:100%;height:100%;display:block}.handle{border:2px solid var(--primary);box-shadow:var(--shadow-sm);background:#fff;position:absolute}.handle.corner{border-radius:4px;width:14px;height:14px}.handle.corner.tl{cursor:nwse-resize;top:-7px;left:-7px}.handle.corner.tr{cursor:nesw-resize;top:-7px;right:-7px}.handle.corner.bl{cursor:nesw-resize;bottom:-7px;left:-7px}.handle.corner.br{cursor:nwse-resize;bottom:-7px;right:-7px}.handle.rotate{cursor:grab;touch-action:none;border-radius:50%;width:14px;height:14px;top:-30px;left:50%;transform:translate(-50%)}.handle.rotate:active{cursor:grabbing}.handle.rotate:before{content:"";background:var(--primary);width:2px;height:16px;position:absolute;top:13px;left:50%;transform:translate(-50%)}.el-del{color:#fff;cursor:pointer;width:22px;height:22px;box-shadow:var(--shadow-sm);z-index:6;background:#e5484d;border:2px solid #fff;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:14px;font-weight:700;line-height:1;display:flex;position:absolute;top:-11px;right:-11px}.el-del:hover{background:#c83b3f}.design-area{border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg-soft);position:relative;overflow:hidden}.base-image{width:100%;display:block}.mockup-badge{background:var(--gradient);color:#fff;border-radius:var(--r-pill);box-shadow:var(--shadow);padding:.3rem .7rem;font-size:.72rem;font-weight:600;position:absolute;top:12px;left:12px}.angle-thumbs{flex-wrap:wrap;gap:.5rem;margin-top:.75rem;display:flex}.angle-thumb{border:2px solid var(--border);border-radius:var(--r-sm);cursor:pointer;color:var(--muted);background:#fff;flex-direction:column;align-items:center;gap:.2rem;padding:.3rem;font-size:.7rem;transition:border-color .15s;display:flex}.angle-thumb.selected{border-color:var(--primary);color:var(--ink)}.angle-thumb img{object-fit:contain;width:58px;height:58px}.share-box{flex-direction:column;gap:.5rem;margin-top:1rem;display:flex}.share-link{border-radius:var(--r-sm);background:var(--gradient-soft);flex-direction:column;gap:.2rem;padding:.7rem .9rem;font-size:.85rem;display:flex}.share-link a{word-break:break-all;font-weight:600}.controls{flex-direction:column;gap:1rem;display:flex}.controls>label{color:var(--ink);flex-direction:column;gap:.4rem;font-weight:600;display:flex}.file-input{text-align:center;border:1.5px dashed var(--border);border-radius:var(--r);background:var(--bg-soft);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:.3rem;padding:1.4rem 1rem;transition:border-color .18s,background .18s,transform .18s,box-shadow .18s;display:flex;position:relative}.file-input:hover,.file-input:focus-within{border-color:var(--primary);background:var(--gradient-soft);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.file-input input{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.file-input-icon{width:30px;height:30px;color:var(--primary)}.file-input-title{color:var(--ink);font-size:.92rem;font-weight:700}.file-input-sub{color:var(--muted);font-size:.78rem}.ai-studio{border-radius:var(--r);background:var(--gradient-soft);border:1px solid #0000;flex-direction:column;gap:.6rem;padding:1.1rem;display:flex}.ai-label{color:var(--ink);font-weight:700}.ai-prompt{resize:vertical;width:100%}.ai-quota{color:var(--muted);font-size:.78rem}.hint{color:var(--muted);font-size:.85rem}.text-el{cursor:move;white-space:pre;text-align:center;-webkit-user-select:none;user-select:none;border:1px solid #0000;padding:2px 4px;line-height:1.1;position:absolute}.text-el.selected{border:1px dashed var(--primary)}.text-tool{flex-direction:column;gap:.6rem;display:flex}.text-edit{border:1px solid var(--border);border-radius:var(--r);background:#fff;flex-direction:column;gap:.5rem;padding:.8rem;display:flex}.text-edit input[type=text],.text-edit>input{border:1px solid var(--border);border-radius:var(--r-sm);font:inherit;padding:.5rem}.text-edit-row{align-items:center;gap:.5rem;display:flex}.text-edit-row select{flex:1}.text-edit-row input[type=color]{border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:6px;width:40px;height:32px}.font-import{flex-direction:column;align-items:flex-start;gap:.25rem;display:flex}.font-import-error{color:#dc2626;font-size:.8rem}.text-size{color:var(--muted);flex-direction:column;gap:.3rem;font-size:.85rem;display:flex}.dpi-badge{border-radius:var(--r-sm);border:1px solid;flex-direction:column;gap:.15rem;padding:.7rem .9rem;font-size:.85rem;display:flex}.dpi-badge .dpi-min{opacity:.7;font-size:.75rem}.dpi-badge.good{color:#067647;background:#ecfdf3;border-color:#abefc6}.dpi-badge.ok{color:#b54708;background:#fffaeb;border-color:#fedf89}.dpi-badge.bad{color:#b42318;background:#fef3f2;border-color:#fecdca}.cart-list{flex-direction:column;gap:1rem;padding:0;list-style:none;display:flex}.cart-item{border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow-sm);background:#fff;align-items:flex-start;gap:1rem;padding:1rem;display:flex}.cart-item img{object-fit:contain;border-radius:var(--r-sm);background:var(--bg-soft);flex-shrink:0;width:84px;height:84px}.cart-badge-row{margin-bottom:.4rem}.cart-remove{color:var(--danger,#dc2626)}@media (width<=768px){.cart-item{gap:.75rem;padding:.75rem}.cart-item img{width:64px;height:64px}.cart-item-actions .btn{flex:auto;justify-content:center}}.cart-badge{background:var(--gradient);color:#fff;border-radius:var(--r-pill);white-space:nowrap;align-items:center;padding:3px 10px;font-size:.75rem;font-weight:700;line-height:1.4;display:inline-flex}.cart-item-info{overflow-wrap:anywhere;flex:1;min-width:0}.cart-item-info input{border:1px solid var(--border);border-radius:6px;width:64px;margin-left:.5rem;padding:.3rem}.cart-item-actions{flex-wrap:wrap;gap:.5rem;margin-top:.6rem;display:flex}.verify-btn{padding:.4rem .85rem;font-size:.82rem}.total{font-size:1.4rem;font-weight:800;font-family:var(--display);color:var(--ink);margin:1.5rem 0}.checkout-form{flex-direction:column;gap:.75rem;max-width:480px;display:flex}.error{color:var(--bad);font-weight:500}.saved-msg{color:var(--ok);font-weight:600}.auth-page{border:1px solid var(--border);border-radius:var(--r-lg);max-width:440px;box-shadow:var(--shadow);background:#fff;margin:1rem auto;padding:2rem}.profile-page{max-width:520px;margin:0 auto}.turnstile{margin:.25rem 0}.auth-page .checkout-form{margin-bottom:1.5rem}.auth-page>.hint:last-child{margin-bottom:0}.landing .hero{text-align:center;border-radius:var(--r-lg);background:radial-gradient(600px 300px at 50% -20%, #ec489929, transparent 70%), var(--gradient-soft);border:1px solid var(--border);margin-bottom:1rem;padding:4rem 1.5rem 3.5rem}.landing .hero h1{max-width:18ch;margin:0 auto 1.1rem;font-size:clamp(2.1rem,1.4rem + 3vw,3.6rem)}.landing .hero h1:after{content:" ✨"}.landing .subtitle{max-width:620px;color:var(--text);margin:0 auto 2rem;font-size:1.15rem}.hero-cta{flex-wrap:wrap;justify-content:center;gap:1rem;display:flex}.features{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.5rem;margin:3rem 0;display:grid}.feature{border:1px solid var(--border);border-radius:var(--r-lg);text-align:center;box-shadow:var(--shadow-sm);background:#fff;padding:1.75rem;transition:transform .18s,box-shadow .18s}.feature:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}.feature-icon{border-radius:var(--r);background:var(--gradient-soft);justify-content:center;align-items:center;width:58px;height:58px;margin-bottom:.75rem;font-size:1.7rem;display:inline-flex}.landing-foot{text-align:center;margin:2.5rem 0 1rem}.orders-page{max-width:820px}.order-list{flex-direction:column;gap:1.25rem;display:flex}.order-card{border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);background:#fff;overflow:hidden}.order-head{border-bottom:1px solid var(--border);background:var(--bg-soft);justify-content:space-between;align-items:center;gap:1rem;padding:.85rem 1.1rem;display:flex}.order-num{color:var(--ink);font-weight:700}.order-date{color:var(--muted,#6b7280);font-size:.85rem;display:block}.order-status{border-radius:var(--r-pill);white-space:nowrap;padding:.32rem .75rem;font-size:.76rem;font-weight:700}.order-status.pending{color:#92400e;background:#fef3c7}.order-status.paid{color:#1e40af;background:#dbeafe}.order-status.fulfilled{color:#5b21b6;background:#ede9fe}.order-status.shipped{color:#166534;background:#dcfce7}.order-status.failed{color:#991b1b;background:#fee2e2}.order-status.canceled{color:#475569;background:#f1f5f9}.order-items{flex-direction:column;gap:.55rem;padding:.6rem 1.1rem;display:flex}.order-item-row{align-items:center;gap:.75rem;display:flex}.order-thumb{object-fit:cover;border:1px solid var(--border);background:var(--bg-soft);border-radius:8px;flex-shrink:0;width:46px;height:46px}.order-item-name{color:var(--ink);flex:1;font-weight:600}.order-item-qty{color:var(--muted,#6b7280)}.order-item-price{text-align:right;min-width:70px;font-weight:600}.order-foot{border-top:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 1.1rem;display:flex}.order-tracking{color:var(--ink);font-size:.88rem}.order-tracking.muted{color:var(--muted,#6b7280)}.order-total{color:var(--ink);font-size:.95rem}.order-discount{color:#166534;font-weight:600}.cart-summary{flex-direction:column;gap:.4rem;max-width:360px;margin:1.25rem 0;display:flex}.cart-line{justify-content:space-between;gap:1rem;display:flex}.cart-line.discount{color:#166534;font-weight:600}.cart-line.total-line{border-top:1px solid var(--border);margin-top:.2rem;padding-top:.5rem;font-size:1.15rem;font-weight:700}.cart-nudge{background:var(--bg-soft);border:1px dashed var(--primary);color:var(--ink);border-radius:10px;padding:.5rem .75rem;font-size:.88rem}.cart-nudge+.cart-nudge{margin-top:.5rem}.christmas-banner{border-radius:var(--r-sm);background:var(--gradient-soft);color:var(--ink);text-align:center;margin:-1.5rem 0 1.75rem;padding:.6rem 1rem;font-size:.9rem}@media (width<=860px){.product-detail,.designer-layout{grid-template-columns:1fr}.navbar{margin-bottom:1.5rem}.christmas-banner{margin-top:-.75rem}}@media (width<=768px){.app{padding:0 1rem 3rem}.navbar{gap:.5rem}.nav-toggle{display:inline-flex}.nav-links{border:1px solid var(--border);border-radius:var(--r);min-width:210px;box-shadow:var(--shadow-lg);background:#fff;flex-direction:column;align-items:stretch;gap:.15rem;padding:.5rem;font-size:1rem;display:none;position:absolute;top:calc(100% + 6px);right:0}.nav-links.open{display:flex}.nav-links a{border-radius:var(--r-sm);padding:.55rem .6rem}.nav-links a:hover{background:var(--bg-soft)}.nav-user{border-top:1px solid var(--border);flex-direction:column;align-items:flex-start;gap:.4rem;margin-top:.15rem;padding:.55rem .6rem;font-size:.9rem}.nav-cta{text-align:center;width:100%;margin-top:.15rem}}.site-footer{border-top:1px solid var(--border);color:var(--muted);margin-top:3rem;padding:1.5rem 0 1rem;font-size:.85rem}.footer-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.footer-brand{font-family:var(--display);color:var(--ink);font-weight:700}.footer-links{flex-wrap:wrap;gap:0 1rem;display:flex}.footer-links a{color:var(--muted);padding-block:.7rem;text-decoration:none;display:inline-block}.footer-links a:hover{color:var(--primary-strong)}.footer-copy{margin:.75rem 0 0;font-size:.78rem}.legal-page{max-width:760px;color:var(--text);margin:0 auto;line-height:1.65}.legal-page h1{margin-bottom:1rem}.legal-page h2{color:var(--ink);margin:1.8rem 0 .6rem;font-size:1.15rem}.legal-page ul{padding-left:1.2rem}.legal-page li{margin:.3rem 0}.legal-page code{background:var(--bg-soft);border-radius:6px;padding:.05rem .35rem;font-size:.85em}.legal-disclaimer{color:#92400e;border-radius:var(--r-sm);background:#fef3c7;border:1px solid #fde68a;padding:.7rem .9rem;font-size:.9rem}.legal-back{margin-top:2rem}.hero-badge{border-radius:var(--r-pill);border:1px solid var(--border);box-shadow:var(--shadow-sm);color:var(--primary-strong);background:#fff;align-items:center;gap:.4rem;margin-bottom:1.1rem;padding:.35rem .9rem;font-size:.9rem;font-weight:700;display:inline-flex}.trust-chips{color:var(--text);flex-wrap:wrap;justify-content:center;gap:.5rem 1.4rem;margin:1.8rem 0 0;padding:0;font-size:.9rem;font-weight:600;list-style:none;display:flex}.offers{text-align:center;margin:3rem 0}.offers-catalog{margin-top:1.5rem;font-weight:600;display:inline-block}.offer-cards{text-align:left;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-top:1.5rem;display:grid}.offer-card{border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);color:var(--text);background:#fff;flex-direction:column;gap:.45rem;padding:1.75rem;font-weight:400;transition:transform .18s,box-shadow .18s;display:flex}.offer-card:hover{box-shadow:var(--shadow-lg);text-decoration:none;transform:translateY(-4px)}.offer-emoji{font-size:2.2rem;line-height:1}.offer-tag{text-transform:uppercase;letter-spacing:.06em;color:var(--primary-strong);background:var(--gradient-soft);border-radius:var(--r-pill);align-self:flex-start;padding:.2rem .7rem;font-size:.72rem;font-weight:700}.offer-card h3{margin:.2rem 0 0}.offer-price{color:var(--ink);font-weight:700}.offer-cta{color:var(--primary-strong);margin-top:auto;font-weight:700}.steps{text-align:center;margin:3rem 0}.steps-row{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.5rem;margin-top:1.5rem;display:grid}.step{border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);background:#fff;padding:1.5rem}.step-num{background:var(--gradient);color:#fff;width:44px;height:44px;font-family:var(--display);box-shadow:var(--shadow-primary);border-radius:50%;justify-content:center;align-items:center;margin-bottom:.7rem;font-size:1.15rem;font-weight:800;display:inline-flex}.styles-strip{text-align:center;margin:3rem 0}.style-chip-row{flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:1rem;display:flex}.style-chip{border-radius:var(--r-pill);border:1px solid var(--border);color:var(--ink);font:inherit;cursor:pointer;background:#fff;align-items:center;gap:.4rem;padding:.42rem .9rem;font-size:.88rem;font-weight:600;transition:border-color .15s,box-shadow .15s,transform .15s;display:inline-flex}.style-chip:hover{border-color:var(--primary);transform:translateY(-1px)}.style-chip.static{cursor:default}.style-chip.static:hover{border-color:var(--border);transform:none}.muted-note{color:var(--muted);font-size:.95rem}.landing-foot h2{margin-bottom:.4rem}.occasion-page{max-width:980px;margin:0 auto}.occasion-hero{text-align:center;border-radius:var(--r-lg);background:radial-gradient(600px 300px at 50% -20%, #ec489929, transparent 70%), var(--gradient-soft);border:1px solid var(--border);margin-bottom:2rem;padding:3.2rem 1.5rem 2.8rem}.occasion-emoji{margin-bottom:.6rem;font-size:3rem;display:block}.occasion-hero h1{max-width:22ch;margin:0 auto 1rem}.occasion-hero .subtitle{max-width:620px;margin:0 auto 1.8rem;font-size:1.12rem}.promo-hint{color:var(--text);margin:1.4rem 0 0;font-size:.92rem;font-weight:600}.occasion-ideas{border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);background:#fff;margin:2.5rem 0;padding:1.75rem}.occasion-ideas ul{gap:.45rem;margin:0;padding-left:1.2rem;display:grid}.occasion-styles{text-align:center;margin:2.5rem 0}.style-cards{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:1rem;margin-top:1.4rem;display:grid}.style-card{border:1px solid var(--border);border-radius:var(--r);font:inherit;color:var(--text);cursor:pointer;box-shadow:var(--shadow-sm);background:#fff;flex-direction:column;align-items:center;gap:.3rem;padding:1.3rem .9rem;transition:transform .18s,box-shadow .18s,border-color .18s;display:flex}.style-card:hover{box-shadow:var(--shadow-lg);border-color:var(--primary);transform:translateY(-3px)}.style-card-emoji{font-size:1.9rem}.style-card strong{color:var(--ink)}.style-card-hint{color:var(--muted);font-size:.8rem}.occasion-products{text-align:center;margin:2.5rem 0}.occasion-products .grid{text-align:left;margin-top:1.4rem}.occasion-seo{max-width:760px;color:var(--text);margin:2.5rem auto}.occasion-chips{flex-wrap:wrap;gap:.6rem;margin-bottom:1.6rem;display:flex}.occasion-chip{border-radius:var(--r-pill);border:1px solid var(--border);color:var(--ink);box-shadow:var(--shadow-sm);background:#fff;align-items:center;gap:.45rem;padding:.5rem 1rem;font-size:.92rem;font-weight:600;transition:border-color .15s,transform .15s,box-shadow .15s;display:inline-flex}.occasion-chip:hover{border-color:var(--primary);box-shadow:var(--shadow);text-decoration:none;transform:translateY(-1px)}.ai-photo-add{border:1px dashed var(--border);border-radius:var(--r-sm);color:var(--primary-strong);cursor:pointer;background:#fff;align-items:center;gap:.45rem;padding:.55rem .9rem;font-size:.88rem;font-weight:600;transition:border-color .15s;display:inline-flex}.ai-photo-add:hover{border-color:var(--primary)}.ai-photo-add input{display:none}.ai-photo-preview{border:1px solid var(--border);border-radius:var(--r-sm);color:var(--muted);background:#fff;align-items:center;gap:.7rem;padding:.5rem 2.2rem .5rem .5rem;font-size:.82rem;display:flex;position:relative}.ai-photo-preview img{object-fit:cover;border-radius:var(--r-sm);flex-shrink:0;width:52px;height:52px}.ai-photo-preview .el-del{position:absolute;top:6px;right:6px}.reviews-page{max-width:900px;margin:0 auto}.reviews-summary{align-items:center;gap:.6rem;margin:.5rem 0 1.5rem;display:flex}.reviews-average{color:var(--ink);font-size:2rem;font-weight:800}.reviews-count{color:var(--muted)}.stars{color:#d8d4e4;letter-spacing:2px;white-space:nowrap}.stars .star.on,.stars .star-btn.on{color:#f59e0b}.star-btn{cursor:pointer;min-height:44px;font-size:inherit;color:#d8d4e4;background:0 0;border:none;padding:0 8px;transition:transform .1s}.star-btn:hover{transform:scale(1.2)}.review-form-block{background:var(--bg-tint);border:1px solid var(--border);border-radius:var(--r-lg);margin-bottom:2rem;padding:1.25rem 1.5rem}.review-form-block h2{margin-top:0;font-size:1.15rem}.review-form{flex-direction:column;align-items:flex-start;gap:.75rem;display:flex}.review-form label{flex-direction:column;gap:.25rem;font-weight:600;display:flex}.review-form textarea{border:1px solid var(--border);border-radius:var(--r-sm);width:100%;font:inherit;resize:vertical;padding:.65rem}.review-sent{color:var(--ok);margin:0;font-weight:600}.reviews-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem;display:grid}.review-card{border:1px solid var(--border);border-radius:var(--r);background:#fff;flex-direction:column;gap:.5rem;padding:1rem 1.15rem;display:flex}.review-comment{color:var(--text);flex:1;margin:0}.review-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.85rem;display:flex}.review-meta strong{color:var(--ink)}.review-verified{color:var(--ok);font-weight:600}.review-date{margin-left:auto}.landing-reviews{text-align:center}.landing-reviews .reviews-summary{justify-content:center}.landing-reviews .reviews-grid{text-align:left;margin-bottom:1rem}.faq-page{max-width:760px;margin:0 auto}.faq-list{flex-direction:column;gap:.6rem;margin:1.25rem 0;display:flex}.faq-item{border:1px solid var(--border);border-radius:var(--r);background:#fff;padding:.5rem 1.15rem}.faq-item summary{cursor:pointer;color:var(--ink);justify-content:space-between;align-items:center;gap:1rem;min-height:44px;font-weight:700;list-style:none;display:flex}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary:after{content:"+";color:var(--primary);flex-shrink:0;font-size:1.3rem}.faq-item[open] summary:after{content:"−"}.faq-item p{color:var(--text);margin:.75rem 0 .25rem}.name-row{gap:.75rem;display:flex}.name-row input{flex:1;min-width:0}.pw-field{display:flex;position:relative}.pw-field input{flex:1;padding-right:3rem}.pw-toggle{cursor:pointer;width:2.75rem;height:100%;color:var(--muted);background:0 0;border:none;justify-content:center;align-items:center;display:flex;position:absolute;top:0;right:0}.pw-toggle:hover{color:var(--ink)}.pw-checklist{color:var(--muted);grid-template-columns:1fr 1fr;gap:.1rem .75rem;margin:-.25rem 0 0;padding:.15rem .25rem;font-size:.82rem;list-style:none;display:grid}.pw-checklist li.ok{color:var(--ok)}.consent{color:var(--text);align-items:flex-start;gap:.6rem;font-size:.88rem;display:flex}.consent input[type=checkbox]{width:16px;height:16px;accent-color:var(--primary);flex-shrink:0;margin-top:.2rem}.consent-optional{color:var(--muted);font-size:.8rem;font-style:normal}@media (width<=480px){.pw-checklist{grid-template-columns:1fr}.name-row{flex-direction:column;gap:1rem}}.return-policy{background:var(--bg-tint);border:1px solid var(--border);border-radius:var(--r);margin-bottom:1.5rem;padding:.85rem 1.15rem}.return-policy summary{cursor:pointer;color:var(--ink);align-items:center;gap:.5rem;font-weight:700;list-style:none;display:flex}.return-policy summary::-webkit-details-marker{display:none}.return-policy summary:after{content:"+";color:var(--primary);margin-left:auto;font-size:1.2rem}.return-policy[open] summary:after{content:"−"}.return-policy p{color:var(--text);margin:.75rem 0 0;font-size:.9rem}.order-issue{border-top:1px dashed var(--border);margin-top:.75rem;padding-top:.75rem}.order-refused{color:#7f1d1d;background:#fef2f2;border:1px solid #fecaca;border-radius:12px;margin:.75rem 0;padding:.75rem 1rem;font-size:.92rem}.order-refused p{margin:0 0 .5rem}.order-refused-actions{flex-wrap:wrap;gap:.5rem;margin-top:.5rem;display:flex}.order-review{margin:.75rem 0}.issue-done{color:var(--ok);font-size:.9rem;font-weight:600}.issue-form{flex-direction:column;gap:.6rem;display:flex}.issue-form label{color:var(--ink);flex-direction:column;gap:.25rem;font-size:.85rem;font-weight:600;display:flex}.issue-form textarea{border:1px solid var(--border);border-radius:var(--r-sm);font:inherit;resize:vertical;padding:.6rem}.issue-photo{color:var(--muted)!important;font-weight:500!important}.issue-actions{align-items:center;gap:1rem;display:flex}.price-extras p{margin:0 0 .2rem}.price-extras ul{margin:0 0 .85rem;padding-left:1.1rem}.cart-checkout{width:100%;margin-top:.6rem}.cart-continue{align-self:center;padding-block:.7rem;font-weight:600}.field{flex-direction:column;gap:.3rem;display:flex}.field-label{color:var(--ink);font-size:.85rem;font-weight:600}.name-row .field{flex:1;min-width:0}.review-field{align-self:stretch}.nav-actions{align-items:center;gap:.5rem;display:flex}.nav-cart{border:1px solid var(--border);min-width:44px;min-height:44px;color:var(--ink);border-radius:10px;justify-content:center;align-items:center;display:none;position:relative}.nav-cart:hover{text-decoration:none}.nav-cart-count{border-radius:var(--r-pill);background:var(--gradient);color:#fff;justify-content:center;align-items:center;min-width:20px;height:20px;padding:0 5px;font-size:.72rem;font-weight:700;display:flex;position:absolute;top:-6px;right:-6px}.nav-links a.active{color:var(--primary-strong);font-weight:600}@media (width<=768px){.nav-cart{display:inline-flex}.nav-links a.active{background:var(--bg-soft)}}.option-label{color:var(--ink);margin:0 0 .5rem;font-weight:600}.option-label strong{color:var(--text);font-weight:600}.option-fixed{margin:1.25rem 0}.option-head{justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.size-guide-link{padding-block:.6rem;font-size:.9rem}.modal-backdrop{z-index:9998;background:#160f2373;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{border:1px solid var(--border);border-radius:var(--r-lg);width:100%;max-width:640px;max-height:calc(100dvh - 2rem);box-shadow:var(--shadow-lg);background:#fff;padding:1.25rem 1.5rem;overflow-y:auto}.modal-head{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.modal-head h2{margin:0;font-size:1.2rem}.modal-close{background:var(--bg-soft);min-width:44px;min-height:44px;color:var(--ink);cursor:pointer;border:none;border-radius:50%;font-size:1.5rem;line-height:1}.size-guide-tabs{flex-wrap:wrap;gap:.4rem;margin-bottom:.75rem;display:flex}.size-guide-scroll{margin-bottom:.75rem;overflow-x:auto}.size-guide-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.9rem}.size-guide-table th,.size-guide-table td{border-bottom:1px solid var(--border);text-align:center;white-space:nowrap;padding:.5rem .6rem}.size-guide-table thead th{color:var(--ink);font-weight:700}.size-guide-table tbody th{text-align:left;color:var(--ink);white-space:normal;min-width:7rem;font-weight:600}.size-guide-table .current{background:var(--gradient-soft);color:var(--primary-strong);font-weight:700}.size-guide-img{width:100%;max-width:260px;margin:0 auto .75rem;display:block}.qty{align-items:center;gap:.5rem;margin-top:.4rem;display:flex}.qty-label{color:var(--text);margin-right:.25rem}.qty-btn{border:1px solid var(--border);width:44px;height:44px;color:var(--ink);cursor:pointer;background:#fff;border-radius:50%;font-size:1.25rem;line-height:1}.qty-btn:disabled{opacity:.45;cursor:not-allowed}.qty-value{text-align:center;min-width:1.5rem;color:var(--ink);font-variant-numeric:tabular-nums;font-weight:700}.checkout-recap-title{margin:.75rem 0 0;font-size:1.15rem}.checkout-items{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.checkout-items li{align-items:center;gap:.75rem;font-size:.92rem;display:flex}.checkout-items img,.checkout-thumb{border:1px solid var(--border);background:var(--bg-soft);object-fit:contain;border-radius:8px;flex-shrink:0;width:44px;height:44px}.checkout-item-name{min-width:0;color:var(--ink);overflow-wrap:anywhere;flex:1;font-weight:600}.checkout-item-qty{color:var(--muted)}.confirmation{flex-direction:column;gap:1.25rem;max-width:680px;margin:0 auto;display:flex}.confirmation-head{text-align:center;flex-direction:column;align-items:center;gap:.4rem;display:flex}.confirmation-head h1,.confirmation-head p{margin:0}.next-steps{background:var(--bg-tint);border:1px solid var(--border);border-radius:var(--r-lg);padding:1.1rem 1.4rem}.next-steps h2{margin-bottom:.5rem;font-size:1.1rem}.next-steps ol{gap:.4rem;margin:0;padding-left:1.2rem;display:grid}.price-from{font-family:var(--sans);color:var(--text);font-size:.95rem;font-weight:600}@media (width>=861px) and (height>=700px){.designer-layout:not(.expanded)>:first-child{position:sticky;top:92px}}@media (width<=860px){.designer-layout{grid-template-columns:minmax(0,1fr)}.controls .add-to-cart{bottom:calc(env(safe-area-inset-bottom,0px) + 12px);z-index:20;position:sticky}}@media (pointer:coarse){.handle:after{content:"";border-radius:50%;position:absolute;inset:-11px}.el-del:after{content:"";border-radius:50%;position:absolute;inset:-7px}}.verify-panel{text-align:center;flex-direction:column;align-items:center;gap:.6rem;display:flex}.verify-panel h1{margin:0;font-size:clamp(1.5rem,1.2rem + 1.5vw,2rem)}.verify-panel p{margin:0}.verify-panel .checkout-form{text-align:left;width:100%;margin:.5rem 0 0}.verify-resend{flex-direction:column;gap:.25rem;display:flex}input.readonly{background:var(--bg-soft);color:var(--muted);cursor:not-allowed}.empty-state{text-align:center;flex-direction:column;align-items:center;gap:.5rem;max-width:460px;margin:2rem auto;display:flex}.empty-state-icon{font-size:2.6rem;line-height:1}.empty-state h1{margin:0;font-size:clamp(1.5rem,1.2rem + 1.5vw,2rem)}.empty-state .btn{margin-top:.75rem}.quota-long{display:none}@media (width<=768px){.quota-short{display:none}.quota-long{font-size:.82rem;display:block}}@media (width<=860px){.expand-toggle{display:none}}@media (width<=768px){input,select,textarea,.checkout-form input,.ai-prompt,.cart-item-info input,.text-edit input[type=text],.text-edit>input{font-size:16px}}@media (width<=640px){.landing .hero{padding:2rem 1rem}.landing .subtitle{margin-bottom:1.5rem;font-size:1rem}.hero-badge{font-size:.8rem}}@media (width<=480px){.product-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}.product-grid .card{border-radius:var(--r);padding:.6rem}.product-grid .card img{height:140px;margin-bottom:.5rem}.product-grid .card h3{font-size:.95rem}.product-grid .card p{font-size:.85rem}.occasion-chips{scrollbar-width:none;flex-wrap:nowrap;padding-bottom:4px;overflow-x:auto}.occasion-chip{flex:none}}@media (hover:none){.btn:hover,.card:hover,.card:hover img,.swatch:hover:not(.selected),.expand-toggle:hover,.file-input:hover,.feature:hover,.offer-card:hover,.style-chip:hover,.style-card:hover,.occasion-chip:hover,.star-btn:hover{transform:none}.card:hover,.feature:hover,.offer-card:hover,.style-card:hover{box-shadow:var(--shadow-sm)}}@media (prefers-reduced-motion:reduce){.content{animation:none}*,:before,:after{transition-duration:.01ms!important}}.showcase{width:100%;margin-bottom:2.5rem;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 6% 94%,#0000);mask-image:linear-gradient(90deg,#0000,#000 6% 94%,#0000)}.showcase-track{gap:1rem;width:max-content;animation:18s linear infinite showcase-scroll;display:flex}.showcase:hover .showcase-track{animation-play-state:paused}@keyframes showcase-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}.showcase-card{border:1px solid var(--border);border-radius:var(--r);width:210px;box-shadow:var(--shadow-sm);background:#fff;flex:none;margin:0;overflow:hidden}.showcase-card img{object-fit:cover;background:var(--bg-soft);width:100%;height:210px;display:block}.showcase-card figcaption{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;padding:.5rem .75rem;font-size:.8rem;font-weight:600;overflow:hidden}@media (width<=640px){.showcase{margin-bottom:1.25rem}.showcase-card{width:132px}.showcase-card img{height:124px}.showcase-card figcaption{padding:.45rem .5rem;font-size:.72rem}}@media (prefers-reduced-motion:reduce){.showcase-track{flex-wrap:nowrap;animation:none;overflow-x:auto}}.spinner-block{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.75rem;min-height:40vh;padding:2rem 1rem;display:flex}.spinner-block .loading-mark{width:72px;height:72px}.spinner-message{color:var(--muted);margin:0;font-weight:600}.loading-mark{justify-content:center;align-items:center;width:96px;height:96px;animation:2.2s ease-in-out infinite loading-bob;display:inline-flex;position:relative}.loading-ring{opacity:.85;background:conic-gradient(#7c3aed,#d6409f,#ec4899,#7c3aed);border-radius:50%;animation:1.1s linear infinite loading-spin;position:absolute;inset:0;-webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - 5px),#000 calc(100% - 4px));mask:radial-gradient(farthest-side,#0000 calc(100% - 5px),#000 calc(100% - 4px))}.loading-svg{border-radius:20px;animation:2.2s ease-in-out infinite loading-pulse;box-shadow:0 10px 30px #7c3aed59}.loading-spark-big{transform-origin:15px 20px;animation:2.4s ease-in-out infinite loading-spark}.loading-spark-small{transform-origin:30px 9px;animation:1.4s ease-in-out infinite loading-twinkle}@keyframes loading-spin{to{transform:rotate(360deg)}}@keyframes loading-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes loading-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}@keyframes loading-spark{0%,to{transform:rotate(0)scale(1)}50%{transform:rotate(90deg)scale(1.12)}}@keyframes loading-twinkle{0%,to{opacity:1;transform:scale(1)}50%{opacity:.3;transform:scale(.7)}}@media (prefers-reduced-motion:reduce){.loading-mark,.loading-svg,.loading-spark-big,.loading-spark-small{animation:none}.loading-ring{animation:1.4s linear infinite loading-spin}}.loading-overlay{z-index:9999;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffffa8;justify-content:center;align-items:center;animation:.2s both loading-fade;display:flex;position:fixed;inset:0}@keyframes loading-fade{0%{opacity:0}to{opacity:1}}.loading-box{flex-direction:column;align-items:center;gap:1rem;padding:2rem 2.5rem;display:flex}.loading-message{color:var(--ink);text-align:center;max-width:22rem;margin:0;font-weight:600}.loading-dots{gap:6px;display:inline-flex}.loading-dots i{background:var(--primary);border-radius:50%;width:8px;height:8px;animation:1s ease-in-out infinite loading-dot}.loading-dots i:nth-child(2){animation-delay:.15s}.loading-dots i:nth-child(3){animation-delay:.3s}@keyframes loading-dot{0%,to{opacity:.5;transform:translateY(0)}50%{opacity:1;transform:translateY(-6px)}}@media (prefers-reduced-motion:reduce){.loading-dots i{animation:none}}
