html,body,#root{height:100%;margin:0}body{font-family:var( --font, "Noto Sans TC", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif );background:var(--bg, #f1f1f4);color:var(--ink, #1c1c24)}*{box-sizing:border-box}button{font:inherit}a{color:inherit}.auth-page,.projects-page{height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;display:flex;align-items:center;justify-content:center;padding:24px}.auth-card,.projects-shell{width:min(480px,100%);background:var(--surface, #fff);border:1px solid var(--line, #ececf1);border-radius:var(--r-lg, 16px);box-shadow:var(--shadow-md);padding:28px}.auth-card h1,.projects-shell h1{margin:0 0 8px;font-size:22px}.auth-card p,.projects-shell p{margin:0 0 20px;color:var(--ink-2, #6a6a76);font-size:14px}.auth-field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.auth-field label{font-size:13px;font-weight:500}.auth-field input{height:40px;border:1px solid var(--line);border-radius:var(--r-sm, 8px);padding:0 12px;font:inherit}.auth-actions{display:flex;flex-direction:column;gap:10px;margin-top:8px}.auth-msg{margin-top:12px;font-size:13px;color:var(--ink-2)}.auth-msg.error{color:#c0392b}.projects-shell{width:min(720px,100%)}.projects-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.projects-list{display:flex;flex-direction:column;gap:10px}.project-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r-md, 12px);background:#fff;text-decoration:none;color:inherit;transition:border-color .15s,box-shadow .15s}.project-row:hover{border-color:color-mix(in oklab,var(--accent) 40%,var(--line));box-shadow:var(--shadow-sm)}.project-row strong{display:block;font-size:15px}.project-row span{font-size:12px;color:var(--ink-2)}.editor-toolbar{display:flex;align-items:center;gap:8px}.editor-toolbar .btn-sm{height:32px;padding:0 12px;font-size:12px;border-radius:8px;border:1px solid var(--line);background:#fff;cursor:pointer}.editor-toolbar .btn-sm.primary{background:var(--accent);color:var(--accent-ink, #fff);border-color:transparent}.save-status{font-size:12px;color:var(--ink-3, #a2a2ae)}.save-status.saving{color:var(--accent)}.share-box{margin-top:12px;padding:12px;background:var(--line-2, #f3f3f7);border-radius:var(--r-sm);font-size:13px;word-break:break-all}.image-slot-react{width:100%;height:100%;min-height:220px;border-radius:13px;border:1.5px dashed rgba(0,0,0,.18);background:#00000008;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;cursor:pointer}.image-slot-react.over{border-color:var(--accent);background:color-mix(in oklab,var(--accent) 8%,#fff)}.image-slot-react img{width:100%;height:100%;object-fit:cover}.image-slot-empty{text-align:center;color:var(--ink-2);padding:16px}.image-slot-empty small{display:block;margin-top:6px;font-size:12px}.image-slot-clear{position:absolute;top:8px;right:8px;border:0;border-radius:6px;padding:4px 8px;background:#000000a6;color:#fff;font-size:11px;cursor:pointer}.image-slot-error{position:absolute;left:8px;bottom:8px;font-size:11px;color:#b3261e;background:#ffffffe6;padding:4px 6px;border-radius:5px}.auth-page .btn,.projects-shell .btn,.modal-cta .btn,.foot-actions .btn,.auth-actions .btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:40px;padding:0 16px;border-radius:10px;border:1px solid transparent;cursor:pointer;text-decoration:none;font-weight:500}.btn-primary{background:var(--accent);color:var(--accent-ink, #fff)}.btn-ghost{background:transparent;border-color:var(--line)}.btn-danger{background:#e5484d;color:#fff}.readonly-banner{background:color-mix(in oklab,var(--accent) 12%,#fff);border-bottom:1px solid var(--line);padding:8px 18px;font-size:13px;text-align:center;color:var(--ink-2)}.nav-login-btn{height:32px;padding:0 12px;border-radius:999px;border:1px solid var(--line);background:#fff;font-size:12px;font-weight:500;cursor:pointer;color:var(--ink-2)}.nav-login-btn:hover{border-color:color-mix(in oklab,var(--accent) 35%,var(--line));color:var(--ink)}.nav-login-btn--primary{background:var(--accent);border-color:var(--accent);color:#fff}.nav-login-btn--primary:hover{background:color-mix(in oklab,var(--accent) 88%,#000);border-color:color-mix(in oklab,var(--accent) 88%,#000);color:#fff}.wr-snackbar.wr-snackbar--auth{opacity:1}.auth-modal-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:5000;display:flex;align-items:center;justify-content:center;padding:32px;background:#0f0f148c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.auth-modal{position:relative;width:min(460px,100%);max-height:min(90vh,760px);overflow:hidden;border-radius:20px;background:#fff;box-shadow:0 24px 64px #0000002e}.auth-modal-scroll{display:flex;flex-direction:column;box-sizing:border-box;padding:36px;max-height:min(90vh,760px);overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none}.auth-modal-scroll::-webkit-scrollbar{display:none}.auth-modal-scroll--providers{min-height:min(580px,76vh)}.auth-modal-logo{width:52px;height:52px;border-radius:14px;object-fit:cover;align-self:center;flex-shrink:0;margin-bottom:20px;box-shadow:0 4px 16px #0000001f}.auth-modal-providers-center{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:stretch;min-height:0}.auth-modal-scroll--providers .auth-modal-sub{margin-bottom:28px}.auth-modal-scroll--providers .auth-modal-feedback{min-height:0;margin-top:0}.auth-modal-scroll--providers .auth-modal-foot{margin-top:auto;flex-shrink:0}.auth-modal-main{min-height:min(300px,45vh)}.auth-modal-feedback{flex-shrink:0;min-height:52px;margin-top:8px}.auth-modal-feedback .auth-modal-message,.auth-modal-feedback .auth-modal-error{margin:0}.auth-modal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px;min-height:40px}.auth-modal-nav-start{min-width:40px}.auth-modal-back,.auth-modal-close{width:40px;height:40px;border-radius:10px;display:grid;place-items:center;color:var(--ink-2);cursor:pointer;transition:background .14s}.auth-modal-back:hover,.auth-modal-close:hover{background:var(--line-2)}.auth-modal-back svg,.auth-modal-close svg{width:20px;height:20px}.auth-modal-title{margin:0 0 14px;font-size:24px;font-weight:700;line-height:1.35;color:var(--ink);text-align:center}.auth-modal-sub{margin:0 0 36px;font-size:15px;line-height:1.65;color:var(--ink-3);text-align:center}.auth-modal-sub--secondary{margin-top:-10px;margin-bottom:28px;font-size:13px;line-height:1.65;color:var(--ink-3)}.auth-modal-sub-email{font-weight:600;color:var(--ink)}.auth-modal-body{display:flex;flex-direction:column;gap:14px}.auth-provider-btn{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;height:52px;padding:0 18px;border:none;border-radius:14px;background:#f3f3f5;font-size:15px;font-weight:500;color:var(--ink);cursor:pointer}.auth-provider-btn:first-child:not(:disabled){background:#111;color:#fff}.auth-provider-btn:disabled{opacity:.45;cursor:not-allowed}.auth-provider-btn:not(:disabled):hover{background:#eaeaee}.auth-provider-btn svg{width:20px;height:20px;flex-shrink:0}.auth-or{display:flex;align-items:center;gap:16px;margin:10px 0;color:var(--ink-3);font-size:12px}.auth-or:before,.auth-or:after{content:"";flex:1;height:1px;background:var(--line)}.auth-email-input{width:100%;height:52px;padding:0 16px;border:1.5px solid var(--line);border-radius:14px;font-size:15px;color:var(--ink);outline:none;transition:border-color .15s}.auth-email-input:focus{border-color:var(--accent)}.auth-primary-btn{width:100%;height:52px;margin-top:8px;border:none;border-radius:14px;background:var(--accent);font-size:15px;font-weight:600;color:#fff;cursor:pointer}.auth-primary-btn:hover:not(:disabled){background:color-mix(in oklab,var(--accent) 88%,#000)}.auth-primary-btn:disabled{opacity:.6;cursor:not-allowed}.auth-hint{margin:8px 0 0;font-size:13px;line-height:1.65;color:var(--ink-3);text-align:center}.auth-link-btn{margin-top:12px;padding:4px 0;border:none;background:none;font-size:13px;color:var(--accent);cursor:pointer}.auth-forgot-btn{align-self:flex-end;margin:-4px 0 0;padding:0;border:none;background:none;font-size:13px;color:var(--ink-3);cursor:pointer}.auth-forgot-btn:hover{color:var(--accent)}.auth-otp-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:4px 0 8px}.auth-otp-cell{width:100%;height:52px;padding:0;border:1.5px solid var(--line);border-radius:12px;font-size:22px;font-weight:600;text-align:center;color:var(--ink);outline:none;transition:border-color .15s}.auth-otp-cell:focus{border-color:var(--accent)}.auth-sent{text-align:center;gap:12px;padding:8px 0 4px}.auth-sent p{margin:0;line-height:1.65}.auth-sent-email{font-size:16px;font-weight:600;color:var(--ink)}.auth-spam-hint{margin:8px 0 0;font-size:12px;line-height:1.6;color:var(--ink-3)}.auth-modal-error{padding:14px 16px;border-radius:12px;background:#fef2f2;color:#b91c1c;font-size:13px;line-height:1.55;text-align:center}.auth-modal-message{padding:14px 16px;border-radius:12px;background:color-mix(in oklab,var(--accent) 10%,#fff);color:var(--ink-2);font-size:13px;line-height:1.55;text-align:center}.auth-modal-foot{margin-top:40px;padding-top:8px;text-align:center}.auth-legal{margin:0;font-size:11px;line-height:1.7;color:var(--ink-3)}.auth-legal a{color:var(--accent);text-decoration:none}@media(max-width:640px){.auth-modal-scrim{align-items:flex-end;padding:0}.auth-modal{width:100%;max-width:100%;max-height:94dvh;border-radius:20px 20px 0 0}.auth-modal-scroll{max-height:94dvh;padding:28px 22px calc(28px + env(safe-area-inset-bottom))}.auth-modal-scroll--providers{min-height:min(520px,68dvh)}.auth-modal-main{min-height:min(280px,42vh)}.auth-modal-title{font-size:21px}.auth-modal-sub{margin-bottom:26px;font-size:14px}.auth-modal-foot{margin-top:28px}.auth-page,.projects-page{padding:16px}.auth-card,.projects-shell{padding:22px 18px}}:root{--accent: #5147e5;--accent-ink: #ffffff;--accent-soft: color-mix(in oklab, var(--accent) 11%, #fff);--accent-ring: color-mix(in oklab, var(--accent) 55%, #fff);--bg: #f1f1f4;--surface: #ffffff;--panel: #ffffff;--ink: #1c1c24;--ink-2: #6a6a76;--ink-3: #a2a2ae;--line: #ececf1;--line-2: #f3f3f7;--dot: #e4e4ec;--shadow-sm: 0 1px 2px rgba(28, 28, 40, .05), 0 1px 1px rgba(28, 28, 40, .04);--shadow-md: 0 4px 16px rgba(28, 28, 40, .08), 0 1px 3px rgba(28, 28, 40, .05);--shadow-lg: 0 18px 48px rgba(28, 28, 40, .18), 0 4px 12px rgba(28, 28, 40, .09);--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--r-xl: 22px;--ppc: 1;--cell: 30px;--font: "Noto Sans TC", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;width:100%;max-width:100%;overflow-x:hidden}body{font-family:var(--font);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow:hidden;overscroll-behavior:none}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}::selection{background:var(--accent-soft)}#root{height:100vh;height:100dvh;width:100%;max-width:100%;overflow-x:hidden}.app{height:100%;display:grid;grid-template-rows:56px 1fr}.nav{display:flex;align-items:center;justify-content:space-between;padding:0 18px;position:relative;isolation:isolate;background:transparent;border-bottom:1px solid rgba(160,160,170,.45);color:#fff;z-index:30}.nav:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:url(https://images.unsplash.com/photo-1519741497674-611481863552?auto=format&fit=crop&w=1920&q=60) center top / cover no-repeat;filter:blur(14px) saturate(120%);clip-path:inset(0);z-index:-2}.nav:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(#14100e75,#14100e57);z-index:-1}.nav-brand{display:flex;align-items:center;gap:10px}.nav-logo{width:32px;height:32px;border-radius:9px;object-fit:cover;flex-shrink:0;box-shadow:var(--shadow-sm)}.nav-title{font-weight:700;font-size:15px;letter-spacing:.2px;white-space:nowrap;color:#fff;text-shadow:0 1px 10px rgba(0,0,0,.25)}.nav-title .sub{font-weight:500;color:#ffffffd1;margin-left:12px;font-size:12.5px}.nav-login-btn--primary{display:inline-flex;align-items:center;justify-content:center;height:34px;padding:0 20px;border-radius:999px;font-size:13.5px;font-weight:600;line-height:1;white-space:nowrap;color:#fff;background:#ffffff29;border:1px solid rgba(255,255,255,.65);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);transition:background .2s ease,color .2s ease}.nav-login-btn--primary:hover{background:#fff;color:#1c1c24}.nav-right{display:flex;align-items:center;gap:14px}.nav-pill{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 16px;font-size:13px;line-height:1;color:#fff;border-radius:999px;border:1px solid rgba(255,255,255,.65);background:#ffffff29;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.nav-pill b{color:#fff;font-weight:700}.nav-avatar{width:34px;height:34px;border-radius:999px;background:#ffffff29;color:#fff;display:grid;place-items:center;font-weight:700;font-size:13px;border:1px solid rgba(255,255,255,.65);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);cursor:pointer;transition:background .2s ease,color .2s ease}.nav-avatar:hover{background:#fff;color:#1c1c24}.nav-account{position:relative}.nav-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:1000;min-width:168px;padding:6px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-md, 0 12px 32px rgba(24, 24, 36, .16));display:flex;flex-direction:column;gap:2px}.nav-menu button{display:flex;align-items:center;gap:10px;width:100%;padding:9px 11px;border-radius:8px;font-size:13.5px;font-weight:600;color:var(--ink);background:none;border:none;cursor:pointer;text-align:left;transition:.12s}.nav-menu button:hover{background:var(--line-2)}.nav-menu button svg{width:16px;height:16px;color:var(--ink-2);flex:none}.nav-icon{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;color:var(--ink-2);border:1px solid var(--line);background:var(--surface);transition:.14s}.nav-icon svg{width:18px;height:18px}.nav-icon:hover{background:var(--line-2);color:var(--ink)}.nav-icon:active{transform:scale(.95)}.nav-clear{display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 14px;border-radius:10px;font-size:13px;font-weight:600;color:var(--ink-2);border:1px solid var(--line);background:var(--surface);transition:.14s}.nav-clear svg{width:15px;height:15px}.nav-clear:hover{background:color-mix(in oklab,#c8453a 8%,#fff);border-color:color-mix(in oklab,#c8453a 30%,var(--line));color:#c8453a}.nav-clear:active{transform:scale(.97)}.nav-clear:disabled{opacity:.4;cursor:not-allowed}.nav-clear:disabled:hover{background:var(--surface);border-color:var(--line);color:var(--ink-2);transform:none}.body{display:grid;grid-template-columns:312px 1fr;min-height:0}.side{background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0;overflow:hidden}.side-grabber,.side-scrim{display:none}.side-head{padding:16px 18px 10px}.side-head h2{font-size:14px;font-weight:700}.side-head p{font-size:12px;color:var(--ink-3);margin-top:2px}.tabs{display:flex;gap:6px;padding:4px 14px 12px}.tab{flex:1;font-size:12.5px;font-weight:600;color:var(--ink-2);padding:7px 0;border-radius:999px;border:1px solid var(--line);background:var(--surface);transition:.15s;display:flex;align-items:center;justify-content:center;gap:6px}.tab .dot{width:7px;height:7px;border-radius:999px}.tab[data-on=true]{background:var(--ink);color:#fff;border-color:var(--ink)}.tab[data-on=true] .dot{box-shadow:0 0 0 2px #ffffff40}.tab:hover[data-on=false]{background:var(--line-2)}.flower-tabs{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:14px;padding:12px 14px;margin-bottom:4px;background:var(--line-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.flower-sw{width:18px;height:18px;border-radius:999px;flex:none;padding:0;border:none;background:var(--sw, #fff);cursor:pointer;position:relative;box-shadow:inset 0 0 0 1px #28242026;transition:transform .1s,box-shadow .1s}.flower-sw:hover{transform:scale(1.12);z-index:5}.flower-sw.on{box-shadow:0 0 0 2px var(--surface),0 0 0 3.5px var(--ink)}.flower-sw--none{background:#fff}.flower-sw--none.on{box-shadow:inset 0 0 0 1px #28242026}.flower-tabs--select{display:block}.flower-select{width:100%;font-size:12.5px;font-weight:600;color:var(--ink);padding:7px 30px 7px 12px;border-radius:8px;border:1px solid var(--line);background-color:var(--surface);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23807a72' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;-moz-appearance:none;appearance:none;-webkit-appearance:none;cursor:pointer;accent-color:var(--accent)}.flower-select:hover{border-color:var(--ink-3)}.flower-sw--none:after{content:"";position:absolute;left:50%;top:50%;width:1px;height:18px;background:#b5b1ab;transform:translate(-50%,-50%) rotate(45deg)}.cards-empty{font-size:12.5px;color:var(--ink-3);text-align:center;padding:24px 0}.cards{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:4px 14px 18px;display:flex;flex-direction:column;gap:9px}.cards::-webkit-scrollbar{width:8px}.cards::-webkit-scrollbar-thumb{background:#e2dfdb;border-radius:8px;border:2px solid var(--surface)}.card{display:flex;gap:12px;align-items:center;padding:9px;border:1px solid transparent;border-radius:var(--r-md);background:var(--surface);text-align:left;transition:background .14s;position:relative}.card:hover{background:var(--line-2)}.card:active{background:var(--line)}.card-thumb{width:52px;height:52px;flex:none;border-radius:9px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;background:transparent;border:none}.card-thumb .card-photo{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block;transition:opacity .2s ease}.card--template .card-thumb .card-photo{object-fit:cover;width:100%;height:100%}.card-badge{position:absolute;top:2px;left:2px;padding:1px 5px;font-size:9px;line-height:1.4;font-weight:700;color:#fff;background:var(--tint, #5147e5);border-radius:5px;letter-spacing:.04em}.card-thumb .card-skeleton{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:9px;background:linear-gradient(90deg,#cfcfda 25%,#ebebf1,#cfcfda 75%);background-size:400% 100%;animation:card-skeleton 1.4s ease infinite}@keyframes card-skeleton{0%{background-position:100% 50%}to{background-position:0 50%}}.card-logo-preview{position:relative;max-width:100%;max-height:100%;width:100%}.card-thumb .glyph{width:30px;height:30px;border-radius:6px;border:1.5px solid #d3d3da;background:linear-gradient(to top right,transparent calc(50% - .75px),#d3d3da calc(50% - .75px),#d3d3da calc(50% + .75px),transparent calc(50% + .75px))}.card-preview{position:fixed;z-index:1000;width:280px;height:280px;border-radius:14px;background:#fff;border:1px solid var(--line);box-shadow:0 18px 48px #0000002e;padding:12px;display:flex;align-items:center;justify-content:center;pointer-events:none;animation:card-preview-in .14s ease}.card-add--blocked{opacity:.45;cursor:not-allowed}.card-preview .card-preview-logo{position:relative;width:100%;max-height:100%}.card-preview img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block;border-radius:6px}@keyframes card-preview-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.card-body{flex:1;min-width:0}.card-name{font-size:13.5px;font-weight:600;display:flex;align-items:center;gap:6px}.card-dim{font-size:11.5px;color:var(--ink-3);margin-top:3px;font-variant-numeric:tabular-nums}.card-meta{display:flex;align-items:baseline;gap:8px;margin-top:5px;white-space:nowrap}.card-price{font-size:13px;font-weight:700;color:var(--ink)}.card-weight{font-size:11px;color:var(--ink-3);white-space:nowrap}.card-add{position:absolute;top:50%;right:9px;transform:translateY(-50%);width:28px;height:28px;border-radius:8px;background:var(--line);color:var(--ink);display:grid;place-items:center;font-size:19px;font-weight:600;opacity:.8;transition:.14s;line-height:0;border:1px solid transparent}.card-add:hover{background:var(--dot);color:var(--ink);opacity:1}.card:hover .card-add{opacity:1}.card-add:disabled{opacity:.3;cursor:not-allowed}.card-add:disabled:hover{background:var(--line);color:var(--ink)}.card-swatches{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px;padding-right:30px}.swatch{width:16px;height:16px;border-radius:999px;flex:none;background:var(--sw);cursor:pointer;position:relative;box-shadow:inset 0 0 0 1px #28242026;transition:transform .1s,box-shadow .1s}.swatch:hover{transform:scale(1.12);z-index:5}.swatch:focus{outline:none}.swatch:focus-visible{outline:none;box-shadow:inset 0 0 0 1px #28242026,0 0 0 2px var(--surface),0 0 0 3.5px var(--ink)}.swatch.on{box-shadow:inset 0 0 0 1px #28242026}.swatch.on:before{content:"";position:absolute;left:50%;top:50%;width:6px;height:6px;border-radius:999px;background:#fff;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #2824202e}.swatch.on:hover:before{transform:translate(-50%,-50%) scale(.893)}.swatch[data-label]:hover:after{content:attr(data-label);position:absolute;left:50%;bottom:calc(100% + 7px);transform:translate(-50%);white-space:nowrap;background:var(--ink);color:#fff;font-size:11px;font-weight:600;line-height:1;padding:5px 8px;border-radius:7px;box-shadow:0 6px 18px #18182438;pointer-events:none;z-index:60}.inspector{flex:none;border-top:1px solid var(--line);padding:12px 16px 22px;background:var(--surface);animation:insp-in .2s cubic-bezier(.2,.9,.3,1)}@keyframes insp-in{0%{transform:translateY(6px)}}.insp-label{font-size:10.5px;font-weight:700;letter-spacing:.06em;color:var(--ink-3);text-transform:none;margin-bottom:8px}.insp-photo{height:80px;border-radius:11px;overflow:hidden;position:relative;border:1px solid var(--line);display:grid;place-items:center;background:repeating-linear-gradient(135deg,#f5f3f0 0,#f5f3f0 9px,#efece8 9px,#efece8 18px)}.insp-photo span{font:11px ui-monospace,SF Mono,Menlo,monospace;color:var(--ink-3);background:#ffffffc7;padding:4px 9px;border-radius:7px;border:1px solid var(--line-2);max-width:90%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.insp-name{font-size:14px;font-weight:700;margin-top:9px;display:flex;align-items:center;gap:8px}.insp-name .d{width:8px;height:8px;border-radius:999px;flex:none}.insp-specs{margin-top:9px;display:flex;flex-direction:column;gap:7px}.insp-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;font-size:12.5px}.insp-row .k{color:var(--ink-3);white-space:nowrap}.insp-row .v{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}.insp-row .v.price{font-size:15px;font-weight:800}.insp-multi{display:flex;align-items:center;gap:12px;padding:4px 0 2px}.insp-multi-n{width:42px;height:42px;flex:none;border-radius:11px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;font-size:18px;font-weight:800}.insp-multi-t{font-size:13.5px;font-weight:700;display:flex;flex-direction:column;gap:3px}.insp-multi-t span{font-size:11.5px;font-weight:500;color:var(--ink-3)}.stage-col{display:grid;grid-template-rows:1fr auto;min-height:0;min-width:0;width:100%;max-width:1100px;margin-inline:auto;padding:12px 16px;gap:6px}.view{background:transparent;display:flex;flex-direction:column;min-height:0;min-width:0;overflow:hidden}.view-bar{display:flex;align-items:center;gap:10px;padding:6px 2px 8px;flex:none}.view-bar .vtitle{font-size:12.5px;font-weight:700;white-space:nowrap}.view-bar .vtag{font-size:11px;color:var(--ink-2);background:var(--line-2);padding:2px 8px;border-radius:999px;font-weight:600;white-space:nowrap}.view-bar .vhint{font-size:11.5px;color:var(--ink-3);margin-left:auto;white-space:nowrap}.view-bar .vhistory{display:inline-flex;align-items:center;gap:6px;margin-left:14px;flex:none}.view-bar .vundo,.view-bar .vredo{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 11px;border-radius:8px;font-size:12px;font-weight:600;color:var(--ink-2);border:1px solid var(--line);background:var(--surface);transition:.14s;flex:none}.view-bar .vundo svg,.view-bar .vredo svg{width:14px;height:14px}.view-bar .vundo:hover,.view-bar .vredo:hover{background:var(--accent-soft);border-color:color-mix(in oklab,var(--accent) 32%,var(--line));color:var(--accent)}.view-bar .vundo:active,.view-bar .vredo:active{transform:scale(.97)}.view-bar .vundo:disabled,.view-bar .vredo:disabled{opacity:.4;cursor:not-allowed}.view-bar .vundo:disabled:hover,.view-bar .vredo:disabled:hover{background:var(--surface);border-color:var(--line);color:var(--ink-2);transform:none}.view-bar .vclear{display:inline-flex;align-items:center;gap:6px;margin-left:14px;height:28px;padding:0 11px;border-radius:8px;font-size:12px;font-weight:600;color:var(--ink-2);border:1px solid var(--line);background:var(--surface);transition:.14s;flex:none}.view-bar .vclear svg{width:14px;height:14px}.view-bar .vclear:hover{background:color-mix(in oklab,var(--accent) 8%,#fff);border-color:color-mix(in oklab,var(--accent) 32%,var(--line));color:var(--accent)}.view-bar .vclear:active{transform:scale(.97)}.view-bar .vclear:disabled{opacity:.4;cursor:not-allowed}.view-bar .vclear:disabled:hover{background:var(--surface);border-color:var(--line);color:var(--ink-2);transform:none}.view-bar .vdim{font-size:11px;font-weight:700;color:var(--accent);background:var(--accent-soft);padding:2px 9px;border-radius:999px;white-space:nowrap;font-variant-numeric:tabular-nums}.view-stagewrap{flex:1;min-height:0;min-width:0;display:grid;place-items:center;padding:2px;background:transparent;position:relative}.vinspector{position:absolute;top:8px;left:8px;z-index:50;display:flex;flex-direction:column;gap:3px;background:#ffffffeb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:10px;padding:9px 11px;pointer-events:none;min-width:138px;animation:vinsp-in .16s ease}@keyframes vinsp-in{0%{transform:translateY(-3px)}}.vinspector .vinsp-name{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:700;color:var(--ink);margin-bottom:3px}.vinspector .vinsp-name .d{width:7px;height:7px;border-radius:999px;flex:none}.vinspector .vinsp-row{display:flex;align-items:baseline;justify-content:space-between;gap:14px;font-size:11px}.vinspector .vinsp-row .k{color:var(--ink-3);display:inline-flex;align-items:center;gap:5px}.vinspector .vinsp-row .k .d{width:6px;height:6px;border-radius:999px;flex:none}.vinspector .vinsp-row .v{color:var(--ink-2);font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.vinspector .vinsp-row .v.price{color:var(--ink);font-weight:700}.vinspector .vinsp-n{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:6px;background:var(--accent-soft);color:var(--accent);font-size:11px;font-weight:800}.vinspector .vinsp-multi{font-size:11.5px;font-weight:600;color:var(--ink-2)}.vinspector:has(.vinsp-n){flex-direction:row;align-items:center;gap:8px}.stage{position:relative;isolation:isolate;overflow:hidden;background:#fff;border-radius:8px;box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--ink-3) 22%,var(--line));background-image:radial-gradient(var(--dot) 1.3px,transparent 1.4px);background-size:var(--cell) var(--cell);background-position:0 0;touch-action:none;flex:none}.stage .floor{position:absolute;left:0;right:0;bottom:0;height:1px;background:color-mix(in oklab,var(--ink-3) 6%,transparent);border-top:1px solid color-mix(in oklab,var(--accent) 30%,var(--line));z-index:0}.couple-toggle{position:absolute;top:8px;right:8px;z-index:200;height:30px;padding:0 14px;border-radius:999px;font-size:12px;font-weight:700;color:var(--ink-2);border:1px solid var(--line);background:#fffffff0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;transition:.14s;font-variant-numeric:tabular-nums}.couple-toggle:hover{border-color:color-mix(in oklab,var(--accent) 32%,var(--line));color:var(--accent)}.couple-toggle.is-on{color:#fff;background:var(--accent);border-color:var(--accent)}.couple-toggle:active{transform:scale(.97)}.couple-fig{position:absolute;z-index:300;display:block;cursor:grab;touch-action:none;border-radius:6px}.couple-fig:active{cursor:grabbing}.couple-fig.sel:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:6px;box-shadow:0 0 0 2px var(--accent-ring);outline:1.5px solid var(--accent);outline-offset:0;pointer-events:none;z-index:2}.couple-photo{position:absolute;left:-16px;bottom:0;height:100%;width:auto;max-width:none;display:block;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;object-fit:contain}.couple-close{position:absolute;top:-10px;right:-10px;z-index:10;width:24px;height:24px;border-radius:999px;display:grid;place-items:center;line-height:0;color:#fff;background:var(--accent);border:2px solid #fff;box-shadow:0 2px 6px #28242047;cursor:pointer}.couple-close svg{width:13px;height:13px}.couple-close:hover{background:color-mix(in oklab,var(--accent) 88%,#000)}.couple-close:active{transform:scale(.94)}.stage .ruler-x,.stage .ruler-y{position:absolute;color:var(--ink-3);font-size:9px;font-variant-numeric:tabular-nums}.depth-axis{white-space:nowrap}.item{position:absolute;border-radius:6px;border:1.5px solid color-mix(in oklab,var(--it-tint) 70%,#6a5);background:color-mix(in oklab,var(--it-tint) 22%,#fff);display:grid;place-items:center;cursor:grab;box-shadow:0 1px 2px #28242014;transition:box-shadow .12s,border-color .12s;-webkit-user-select:none;user-select:none}.item:hover{border-color:color-mix(in oklab,var(--it-tint) 90%,#000)}.item.sel{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-ring),var(--shadow-md);cursor:grabbing;background:color-mix(in oklab,var(--it-tint) 30%,transparent)}.item .ilabel{font-size:10.5px;font-weight:600;color:color-mix(in oklab,var(--it-tint) 60%,#211);padding:0 4px;text-align:center;line-height:1.15;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:100%;pointer-events:none}.item .idot{width:8px;height:8px;border-radius:999px;background:var(--it-tint);pointer-events:none}.item .corner{position:absolute;top:4px;left:4px;width:7px;height:7px;border-radius:2px;background:color-mix(in oklab,var(--it-tint) 75%,#000);opacity:.55;pointer-events:none}.item.item--noimg{border-color:#8b8e96b3;background:#b0b3ba80}.item.item--noimg:hover{border-color:#7d8088}.item.item--noimg.sel{background:#b0b3ba59}.item.item--noimg .ilabel{color:#5d6066}.item.item--noimg .corner,.item.item--noimg .idot{background:#8b8e96}.item.item--photo{background:transparent;border-color:transparent;box-shadow:none;overflow:visible;padding:0}.item.item--photo:hover{border-color:color-mix(in oklab,var(--it-tint) 45%,transparent)}.item.item--photo.sel{background:transparent;border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-ring)}.item.item--photo.sel .item-photo{opacity:.7}.item-photo{width:100%;height:100%;object-fit:contain;object-position:center bottom;pointer-events:none;display:block;transform-origin:center center;image-rendering:auto;transition:opacity .2s ease}.logo-item-text{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;container-type:size;pointer-events:none;overflow:visible}.logo-item-text-inner{margin:0;max-width:100%;overflow:visible}.item--photo .item-skeleton{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:6px;background:linear-gradient(90deg,#cfcfda 25%,#ebebf1,#cfcfda 75%);background-size:400% 100%;animation:card-skeleton 1.4s ease infinite;pointer-events:none}.item-controls{position:absolute;z-index:400;display:flex;flex-direction:column;gap:4px}.item-controls button{width:22px;height:22px;border-radius:7px;background:#fffffff7;color:var(--ink);display:grid;place-items:center;line-height:0;border:1px solid var(--line);box-shadow:0 2px 6px #28242038}.item-controls button svg{width:14px;height:14px}.item-controls button:hover{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.item-controls button.ctl-move{cursor:move;touch-action:none;background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.item-controls--grid{display:grid;grid-auto-flow:column;grid-template-rows:repeat(2,auto);gap:4px}.item-controls--grid button:nth-child(3){order:1}.item-controls--grid button:nth-child(4){order:2}.item-controls--grid button:nth-child(1){order:3}.item-controls--grid button:nth-child(2){order:4}.item-controls button.ctl-move:active{filter:brightness(.94)}.item .kebab{position:absolute;top:3px;right:3px;width:20px;height:20px;border-radius:6px;background:#fffffff0;color:var(--ink);display:none;place-items:center;line-height:0;box-shadow:0 1px 3px #28242038;z-index:3}.item .kebab svg{width:14px;height:14px}.item .kebab:hover{background:#fff}.item.sel .kebab{display:grid}.item .layerbtn{position:absolute;right:3px;width:20px;height:20px;border-radius:6px;background:#fffffff0;color:var(--ink);display:grid;place-items:center;line-height:0;box-shadow:0 1px 3px #28242038;z-index:3}.item .layerbtn svg{width:13px;height:13px}.item .layerbtn:hover{background:var(--accent);color:var(--accent-ink)}.item .layerbtn.up{top:27px}.item .layerbtn.down{top:51px}.fitem{position:absolute;border-radius:4px;border:1.5px solid color-mix(in oklab,var(--it-tint) 70%,#6a5);background:color-mix(in oklab,var(--it-tint) 28%,#fff);cursor:grab;-webkit-user-select:none;user-select:none;display:grid;place-items:center;transition:box-shadow .12s,border-color .12s}.fitem.sel{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-ring);z-index:20;cursor:grabbing}.fitem .flab{font-size:9px;font-weight:700;color:color-mix(in oklab,var(--it-tint) 55%,#211);pointer-events:none;white-space:nowrap;overflow:hidden}.fitem .arrow{position:absolute;top:2px;right:3px;font-size:9px;color:var(--ink-3)}.depth-axis{position:absolute;left:6px;top:4px;font-size:9px;color:var(--ink-3);font-weight:600}.depth-axis.front-edge{top:auto;bottom:4px}.marquee{position:absolute;z-index:25;pointer-events:none;border:1.5px solid var(--accent);background:color-mix(in oklab,var(--accent) 12%,transparent);border-radius:3px}.ref-guides{position:absolute;top:0;right:0;bottom:0;left:0;z-index:28;pointer-events:none}.ref-line{position:absolute;background:var(--accent)}.ref-line--align{opacity:.55;background:repeating-linear-gradient(to right,var(--accent) 0 4px,transparent 4px 8px)}.ref-line--align.ref-line--v{background:repeating-linear-gradient(to bottom,var(--accent) 0 4px,transparent 4px 8px)}.ref-line--gap{opacity:.85}.ref-line--center{opacity:.8}.ref-line--center.ref-line--v{background:repeating-linear-gradient(to bottom,var(--accent) 0 6px,transparent 6px 12px)}.ref-line--center.ref-line--h{background:repeating-linear-gradient(to right,var(--accent) 0 6px,transparent 6px 12px)}.ref-line--gap.ref-line--h:before,.ref-line--gap.ref-line--h:after,.ref-line--gap.ref-line--v:before,.ref-line--gap.ref-line--v:after{content:"";position:absolute;background:var(--accent)}.ref-line--gap.ref-line--h:before,.ref-line--gap.ref-line--h:after{width:1px;height:7px;top:-3px}.ref-line--gap.ref-line--h:before{left:0}.ref-line--gap.ref-line--h:after{right:0}.ref-line--gap.ref-line--v:before,.ref-line--gap.ref-line--v:after{width:7px;height:1px;left:-3px}.ref-line--gap.ref-line--v:before{top:0}.ref-line--gap.ref-line--v:after{bottom:0}.ref-label{position:absolute;font-size:10px;font-weight:700;line-height:1;color:var(--accent-ink);background:var(--accent);padding:2px 5px;border-radius:4px;font-variant-numeric:tabular-nums;white-space:nowrap}.empty{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;pointer-events:none}.empty .ebox{text-align:center;color:var(--ink-3)}.empty .ebox .ei{font-size:30px;opacity:.5}.empty .ebox p{font-size:13px;margin-top:6px}.foot{display:flex;align-items:center;gap:16px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm);padding:12px 16px;flex:none}.foot-total{display:flex;flex-direction:column}.foot-total .lbl{font-size:11.5px;color:var(--ink-3)}.foot-total .amt{font-size:24px;font-weight:800;letter-spacing:-.5px;font-variant-numeric:tabular-nums}.foot-total .amt .cur{font-size:15px;font-weight:700;color:var(--ink-2);margin-right:2px}.foot-summary{font-size:12px;color:var(--ink-2);border-left:1px solid var(--line);padding-left:16px;white-space:nowrap;line-height:1.5}.foot-summary b{color:var(--ink)}.foot-summary:first-child{border-left:none;padding-left:0}.foot-actions{margin-left:auto;display:flex;gap:10px}.btn{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;font-weight:600;padding:10px 18px;border-radius:11px;transition:.14s;border:1px solid transparent;white-space:nowrap;text-decoration:none}.btn .bi{width:16px;height:16px;display:block}.btn-ghost{background:var(--surface);border-color:var(--line);color:var(--ink)}.btn-ghost:hover{background:var(--line-2)}.btn-line{background:#06c755;color:#fff}.btn-line:hover{filter:brightness(.96)}.btn-primary{background:#1c1c24;color:#fff}.btn-primary:hover{background:#000}.btn-accent{background:var(--accent);color:#fff}.btn-accent:hover{background:color-mix(in oklab,var(--accent) 88%,#000)}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#2321206b;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;z-index:2147483647;padding:24px}.modal{width:min(560px,100%);max-height:86vh;background:var(--surface);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden;animation:pop .2s cubic-bezier(.2,.9,.3,1)}@keyframes pop{0%{transform:translateY(10px) scale(.98)}}.modal-head{padding:22px 24px 14px;border-bottom:1px solid var(--line);display:flex;align-items:flex-start;justify-content:space-between}.modal-head h3{font-size:18px;font-weight:800}.modal-head p{font-size:12.5px;color:var(--ink-3);margin-top:3px;white-space:nowrap}.modal-x{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;color:var(--ink-2);font-size:18px}.modal-x:hover{background:var(--line-2)}.qflower-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 24px;margin:0;background:#faf7fd;border-bottom:1px solid var(--line)}.qflower-text{display:flex;flex-direction:column;gap:2px}.qflower-title{font-size:13.5px;font-weight:700;color:var(--ink)}.qflower-sub{font-size:11.5px;color:var(--ink-3)}.qswitch{position:relative;flex:none;width:46px;height:26px;border-radius:999px;background:var(--line);transition:background .18s;cursor:pointer;padding:0}.qswitch.on{background:#9b7ad6}.qswitch-knob{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:999px;background:#fff;box-shadow:0 1px 3px #00000040;transition:transform .18s}.qswitch.on .qswitch-knob{transform:translate(20px)}.qtag{font-size:10.5px;font-weight:700;color:#fff;background:#9b7ad6;border-radius:999px;padding:1px 7px;line-height:1.5}.qflower-note{font-size:11.5px;color:var(--ink-3);margin-top:8px}.modal-body{overflow-y:auto;padding:8px 24px}.qrow{display:grid;grid-template-columns:1fr auto auto auto;align-items:center;gap:14px;padding:13px 0;border-bottom:1px solid var(--line-2)}.qrow:last-child{border-bottom:none}.qname{font-size:14px;font-weight:600;display:flex;align-items:center;gap:9px}.qname .qdot{width:9px;height:9px;border-radius:999px;flex:none}.qname .qdim{font-size:11px;color:var(--ink-3);font-weight:500}.qqty{font-size:13px;color:var(--ink-2);font-variant-numeric:tabular-nums}.qunit{font-size:13px;color:var(--ink-2);font-variant-numeric:tabular-nums;text-align:right}.qsub{font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;text-align:right;min-width:78px}.modal-foot{border-top:1px solid var(--line);padding:18px 24px;background:#fcfbfa}.qtotal{display:flex;align-items:baseline;justify-content:space-between}.qtotal .l{font-size:13px;color:var(--ink-2)}.qtotal .r{font-size:26px;font-weight:800;font-variant-numeric:tabular-nums}.qmeta{display:flex;justify-content:space-between;margin-top:4px;font-size:11.5px;color:var(--ink-3);white-space:nowrap}.modal-cta{display:flex;gap:10px;margin-top:16px}.modal-cta .btn{flex:1;justify-content:center}.qempty{padding:40px 0;text-align:center;color:var(--ink-3);font-size:13.5px}.modal.order-modal{width:min(440px,100%)}.modal.order-modal--split{position:relative;width:min(860px,100%);max-height:88vh;display:grid;grid-template-columns:1fr 1fr;overflow:hidden}.order-modal--split .of-media{position:relative;background:linear-gradient(150deg,#eef0fb,#dfeee6);display:grid;place-items:center}.order-modal--split .of-media img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.of-media-ph{font-size:13px;color:var(--ink-3);letter-spacing:1px}.order-modal--split .of-panel{display:flex;flex-direction:column;min-height:0;max-height:88vh;overflow:hidden}.order-modal--split .modal-head{border-bottom:none;padding:26px 28px 4px}.of-guide{overflow-y:auto;padding:22px 28px 32px}.of-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:40px}.of-step{display:flex;gap:10px}.of-step-no{flex:none;font-size:15px;font-weight:700;color:var(--ink);line-height:1.5}.of-step-main{flex:1;min-width:0}.of-step-title{font-size:15px;font-weight:700;line-height:1.5}.of-step-desc{margin-top:12px;font-size:13.5px;line-height:1.7;color:var(--ink-2)}.of-step-desc b{color:var(--ink)}.of-qr{width:160px;height:160px;margin:32px 0 18px;border:1px solid var(--line);border-radius:14px;background:var(--line-2);display:grid;place-items:center;overflow:hidden}.of-qr img{width:100%;height:100%;object-fit:contain}.of-qr-ph{font-size:12px;color:var(--ink-3);letter-spacing:1px}.of-step-btn{display:inline-flex}.order-form{overflow-y:auto;padding:18px 24px 22px;display:flex;flex-direction:column;gap:20px}.of-field{display:flex;flex-direction:column;gap:14px}.of-field>span{font-size:13px;font-weight:600;color:var(--ink-2)}.of-field>span i{color:#d9453a;font-style:normal}.of-field input,.of-field textarea{width:100%;border:1px solid var(--line);border-radius:var(--r-sm, 8px);padding:10px 12px;font:inherit;color:var(--ink);background:var(--surface);transition:border-color .14s,box-shadow .14s}.of-field textarea{resize:vertical;min-height:70px}.of-field input:focus,.of-field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in oklab,var(--accent) 16%,transparent)}.of-error{font-size:12.5px;color:#d9453a;font-weight:600;margin:-4px 0 0}.order-form .modal-cta{margin-top:4px}.btn:disabled{opacity:.55;cursor:not-allowed}.modal.confirm{width:min(380px,100%)}.confirm-body{padding:26px 26px 8px;text-align:center}.confirm-icon{width:46px;height:46px;border-radius:13px;margin:0 auto 14px;display:grid;place-items:center;color:#c8453a;background:color-mix(in oklab,#c8453a 11%,#fff)}.confirm-icon svg{width:22px;height:22px}.confirm-body h3{font-size:17px;font-weight:800}.confirm-body p{font-size:13px;color:var(--ink-2);margin-top:7px;line-height:1.55}.confirm-body p b{color:var(--ink);font-weight:700}.confirm-cta{display:flex;gap:10px;padding:18px 26px 22px}.confirm-cta .btn{flex:1;justify-content:center}.btn-danger{background:#c8453a;color:#fff}.btn-danger:hover{background:color-mix(in oklab,#c8453a 88%,#000)}.qhead{display:grid;grid-template-columns:1fr auto auto auto;gap:14px;padding:6px 0 2px;font-size:11px;color:var(--ink-3);font-weight:600}.qhead .a{text-align:right}.qhead span:nth-child(2),.qhead span:nth-child(3){text-align:right}.menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2147483640}.imenu{position:fixed;z-index:2147483641;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-lg);padding:6px;min-width:168px;animation:pop .14s cubic-bezier(.2,.9,.3,1)}.imenu button{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border-radius:8px;font-size:13px;font-weight:500;color:var(--ink);text-align:left;transition:background .1s}.imenu button:hover{background:var(--line-2)}.imenu button .mi{width:16px;height:16px;flex:none;color:var(--ink-2)}.imenu button.danger,.imenu button.danger .mi{color:#c8453a}.imenu button.danger:hover{background:color-mix(in oklab,#c8453a 9%,#fff)}.imenu .sep{height:1px;background:var(--line-2);margin:5px 6px}.imenu-swatches{display:grid;grid-template-columns:repeat(5,18px);justify-content:start;gap:11px;padding:6px 8px 4px}.imenu-swatches .swatch{width:18px;height:18px;padding:0;border-radius:999px}.cf-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:5000;background:#18182475;display:grid;place-items:center;padding:24px}.cf-modal{width:min(560px,100%);max-height:calc(100dvh - 48px);background:var(--surface);border-radius:22px;box-shadow:0 30px 80px #18182447,0 8px 24px #1818241f;overflow:hidden;display:flex;flex-direction:column;animation:cf-pop .22s cubic-bezier(.2,.9,.3,1)}@keyframes cf-pop{0%{transform:translateY(10px) scale(.985)}}.cf-modal .m-head{display:flex;align-items:center;gap:12px;padding:24px 26px 16px}.cf-modal .m-head .badge{width:34px;height:34px;border-radius:10px;flex:none;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center}.cf-modal .m-head .badge svg{width:19px;height:19px}.cf-modal .m-head .htxt{flex:1;min-width:0}.cf-modal .m-head h2{font-size:16px;font-weight:800;letter-spacing:.2px}.cf-modal .m-head p{font-size:12px;color:var(--ink-3);margin-top:2px}.cf-modal .m-x{width:36px;height:36px;border-radius:50%;flex:none;display:grid;place-items:center;color:#fff;cursor:pointer;border:none;background:#1c1c24;transition:.14s}.cf-modal .m-x:hover{background:#34343f;color:#fff}.cf-modal .m-x svg{width:18px;height:18px}.cf-modal .m-steps{display:flex;gap:6px;padding:0 26px 16px}.cf-modal .m-steps i{height:3px;flex:1;border-radius:999px;background:var(--line);transition:background .3s}.cf-modal .m-steps i.on{background:var(--accent)}.cf-modal .m-steps i.done{background:color-mix(in oklab,var(--accent) 45%,#fff)}.cf-modal .m-body{padding:6px 26px 10px;display:flex;flex-direction:column;gap:6px;flex:1 1 auto;min-height:0;overflow-y:auto}.cf-modal .sec-label{font-size:12px;font-weight:700;color:var(--ink-2);margin:8px 2px 10px;letter-spacing:.04em}.cf-modal .stageimg{position:relative;width:100%;aspect-ratio:3 / 2;border-radius:14px;overflow:hidden;background:#eef0f4;border:1px solid var(--line)}.cf-modal .scene-prev-stage{position:absolute;left:0;right:0}.cf-modal .stageimg--result{border:none;background:var(--line-2)}.cf-modal .cf-result-area{width:100%;height:100%;display:flex;align-items:center;justify-content:center}.cf-modal .cf-result-area img{width:100%;height:100%;object-fit:contain;display:block;background:var(--line-2)}.cf-modal .cf-result-hint{margin:0;padding:20px;font-size:13px;line-height:1.6;color:var(--ink-3);text-align:center}.cf-modal .scene-prev{position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(var(--dot, #e4e4ec) 1px,transparent 1.2px);background-size:4.6% 8.2%}.cf-modal .scene-prev .sp-item{position:absolute;border-radius:4px;border:1.2px solid;box-shadow:0 1px 2px #28242014}.cf-modal .cf-compare{display:grid;grid-template-columns:1fr 1fr;gap:10px}.cf-modal .cf-compare-item{margin:0;display:flex;flex-direction:column;gap:6px}.cf-modal .cf-compare-item figcaption{text-align:center;font-size:12px;font-weight:700;color:var(--ink-3)}.cf-modal .cf-compare-img{display:block;width:100%;padding:0;border:none;background:var(--line-2);border-radius:14px;overflow:hidden;cursor:zoom-in;position:relative}.cf-modal .cf-compare-img:disabled{cursor:default}.cf-modal .cf-compare-img>img{width:100%;aspect-ratio:3 / 2;object-fit:contain;display:block;background:var(--line-2)}.cf-modal .cf-compare-img .stageimg{margin:0}.cf-modal .cf-compare-ph{display:grid;place-items:center;width:100%;aspect-ratio:3 / 2;font-size:12px;color:var(--ink-3)}.cf-modal .cf-showcase{display:flex;flex-direction:column;gap:12px}.cf-modal .cf-showcase-main{margin:0;display:flex;flex-direction:column;gap:8px}.cf-modal .cf-showcase-main .cf-compare-img{border-radius:16px}.cf-modal .cf-showcase-refs{display:grid;grid-template-columns:1fr 1fr;gap:10px;max-width:360px;margin:0 auto;opacity:.92}.cf-modal .cf-showcase-refs .cf-compare-img,.cf-modal .cf-showcase-refs .stageimg{border-radius:10px}.cf-modal .cf-showcase-refs figcaption{font-size:11px}.cf-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:6000;display:grid;place-items:center;box-sizing:border-box;padding:calc(16px + env(safe-area-inset-top)) calc(16px + env(safe-area-inset-right)) calc(16px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left));background:#141218d1;cursor:zoom-out;animation:cf-pop .16s ease}.cf-lightbox img{width:min(1080px,94vw);aspect-ratio:3 / 2;max-height:min(82vh,720px);height:auto;object-fit:contain;border-radius:12px;box-shadow:0 18px 60px #00000080;cursor:default}.cf-lightbox-x{position:absolute;top:18px;right:18px;width:40px;height:40px;display:grid;place-items:center;border:none;border-radius:50%;background:#ffffff29;color:#fff;cursor:pointer}.cf-lightbox-x:hover{background:#ffffff47}.cf-lightbox-x svg{width:20px;height:20px}.cf-modal .loading{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;background:var(--line-2)}.cf-modal .loading:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(105deg,transparent 30%,rgba(255,255,255,.65) 50%,transparent 70%);transform:translate(-100%);animation:cf-shimmer 1.5s ease-in-out infinite}@keyframes cf-shimmer{to{transform:translate(100%)}}.cf-modal .cf-process{padding:14px 6px 4px}.cf-modal .cf-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}.cf-modal .cf-step{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;transition:background .2s}.cf-modal .cf-step--active{background:color-mix(in oklab,var(--accent) 9%,var(--surface))}.cf-modal .cf-step-ic{width:22px;height:22px;flex:none;display:flex;align-items:center;justify-content:center}.cf-modal .cf-step-ic svg{width:18px;height:18px;color:var(--accent)}.cf-modal .cf-step-dot{width:8px;height:8px;border-radius:50%;background:var(--line)}.cf-modal .cf-step-spin{width:17px;height:17px;border-radius:50%;border:2.4px solid color-mix(in oklab,var(--accent) 22%,#fff);border-top-color:var(--accent);animation:cf-spin .8s linear infinite}.cf-modal .cf-step-label{font-size:14px;font-weight:600;transition:color .2s}.cf-modal .cf-step--pending .cf-step-label{color:var(--ink-3)}.cf-modal .cf-step--active .cf-step-label{color:var(--ink);font-weight:700}.cf-modal .cf-step--done .cf-step-label{color:var(--ink-2)}.cf-modal .cf-process-hint{margin:14px 12px 2px;font-size:12px;color:var(--ink-3)}.cf-modal .cf-process-warn{display:flex;align-items:center;gap:6px;margin:6px 12px 2px;color:var(--ink-3);font-size:12px;line-height:1.5}.cf-modal .cf-process-warn svg{width:14px;height:14px;flex:0 0 auto}@keyframes cf-spin{to{transform:rotate(360deg)}}.cf-modal .swatches{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-bottom:4px}.cf-modal .sw{cursor:pointer;border:none;background:none;padding:0;display:flex;flex-direction:column;gap:6px;align-items:center}.cf-modal .sw .chip{width:100%;aspect-ratio:1;border-radius:12px;border:2px solid var(--line);transition:.14s;position:relative}.cf-modal .sw .chip:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:10px;box-shadow:inset 0 0 0 2px #fff;opacity:0;transition:.14s}.cf-modal .sw[aria-checked=true] .chip{border-color:var(--accent);transform:translateY(-1px)}.cf-modal .sw[aria-checked=true] .chip:after{opacity:1}.cf-modal .sw:hover .chip{border-color:color-mix(in oklab,var(--accent) 40%,var(--line))}.cf-modal .sw .nm{font-size:11px;color:var(--ink-2);font-weight:600}.cf-modal .sw[aria-checked=true] .nm{color:var(--accent)}.cf-modal .cf-optgroup{display:flex;flex-wrap:wrap;gap:8px}.cf-modal .cf-opt{cursor:pointer;padding:8px 14px;border-radius:999px;border:1.5px solid var(--line);background:var(--surface);font-size:13px;font-weight:600;color:var(--ink-2);transition:.14s}.cf-modal .cf-opt:hover{border-color:color-mix(in oklab,var(--accent) 40%,var(--line))}.cf-modal .cf-opt[aria-checked=true]{border-color:var(--accent);color:var(--accent);background:color-mix(in oklab,var(--accent) 10%,var(--surface))}.cf-modal .cf-opt:disabled{cursor:default;opacity:.6}.cf-modal .cf-logo-input{width:100%;box-sizing:border-box;padding:10px 12px;border-radius:10px;border:1px solid var(--line);font-size:14px;line-height:1.5;background:var(--surface);resize:vertical;min-height:72px;font-family:inherit}.cf-modal .cf-logo-input:focus{outline:none;border-color:color-mix(in oklab,var(--accent) 55%,var(--line))}.cf-modal .cf-logo-hint{margin:6px 2px 0;font-size:11.5px;color:var(--ink-3);line-height:1.5}.cf-modal .m-foot{display:flex;align-items:center;gap:10px;padding:18px 26px 24px;margin-top:10px}.cf-modal .m-foot .spacer{flex:1}.cf-modal .cf-btn{display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-size:13.5px;font-weight:600;padding:10px 16px;border-radius:11px;border:1px solid transparent;transition:.14s;white-space:nowrap;font-family:inherit}.cf-modal .cf-btn svg{width:16px;height:16px}.cf-modal .cf-btn.ghost{background:var(--surface);border-color:var(--line);color:var(--ink)}.cf-modal .cf-btn.ghost:hover{background:var(--line-2)}.cf-modal .cf-btn.primary{background:var(--accent);color:#fff}.cf-modal .cf-btn.primary:hover{background:color-mix(in oklab,var(--accent) 88%,#000)}.cf-modal .cf-btn.line{background:#06c755;color:#fff}.cf-modal .cf-btn.line:hover{filter:brightness(.96)}.cf-modal .cf-btn .cost{font-size:11px;font-weight:600;opacity:.8;padding-left:2px}.cf-feedback{display:flex;align-items:center;flex-wrap:nowrap;gap:8px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.cf-feedback-label{font-size:12px;font-weight:400;color:var(--ink-3);white-space:nowrap}.cf-feedback-btns{display:flex;gap:8px;margin-left:auto;flex:0 0 auto}.cf-feedback-thanks{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:400;color:var(--ink-3)}.cf-feedback-thanks svg{width:14px;height:14px}.cf-feedback .ocf-btn{padding:0;border:none;border-radius:0;background:none;font-size:12px;font-weight:400;color:var(--ink-3)}.cf-feedback .ocf-btn svg{width:14px;height:14px}.cf-feedback .ocf-btn:hover:not(:disabled){background:none;color:var(--ink)}.cf-toast{position:fixed;left:50%;bottom:34px;transform:translate(-50%) translateY(20px);z-index:7000;background:var(--ink);color:#fff;font-size:13px;font-weight:600;padding:11px 18px;border-radius:12px;box-shadow:0 10px 30px #00000040;opacity:0;pointer-events:none;transition:.28s cubic-bezier(.2,.9,.3,1);display:flex;align-items:center;gap:9px}.cf-toast svg{width:16px;height:16px}.cf-toast.show{opacity:1;transform:translate(-50%) translateY(0)}.wr-snackbar{position:fixed;left:50%;bottom:34px;transform:translate(-50%);z-index:7000;background:#000;color:#fff;font-size:14px;font-weight:600;letter-spacing:.02em;padding:13px 22px;border-radius:12px;box-shadow:0 10px 30px #00000059;max-width:calc(100vw - 32px);text-align:center;pointer-events:none;opacity:1;animation:wr-snackbar-in .28s cubic-bezier(.2,.9,.3,1) forwards}@keyframes wr-snackbar-in{0%{opacity:0;transform:translate(-50%) translateY(16px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.colorize-fab{position:absolute;right:14px;bottom:22px;z-index:60;display:inline-flex;align-items:center;gap:8px;font-size:13.5px;font-weight:700;color:#fff;cursor:pointer;padding:11px 18px;border-radius:999px;border:none;background:var(--accent);box-shadow:0 5px 14px color-mix(in oklab,var(--accent) 38%,transparent),0 2px 6px #18182429;transition:.15s;font-family:inherit}.colorize-fab svg{width:17px;height:17px}.colorize-fab:hover{background:color-mix(in oklab,var(--accent) 90%,#000);transform:translateY(-1px)}.colorize-fab:active{transform:translateY(0)}.colorize-fab.is-disabled,.colorize-fab:disabled{background:#b9b9c4;cursor:not-allowed;box-shadow:none}.colorize-fab.is-disabled:hover,.colorize-fab:disabled:hover{background:#b9b9c4;transform:none}.ri-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:6000;background:#18182480;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;padding:24px}.ri-modal{position:relative;width:min(560px,100%);height:min(600px,92vh);display:flex;flex-direction:column;background:var(--surface);border-radius:22px;overflow:hidden;box-shadow:0 30px 80px #18182447,0 8px 24px #1818241f;animation:cf-pop .22s cubic-bezier(.2,.9,.3,1)}.ri-close{position:absolute;top:24px;right:26px;width:36px;height:36px;border-radius:50%;background:#1c1c24;color:#fff;display:grid;place-items:center;z-index:2}.ri-close svg{width:18px;height:18px}.ri-close:hover{background:#34343f}.ri-media{position:relative;flex:none;height:200px;background:linear-gradient(150deg,#eef0fb,#dfeee6);display:grid;place-items:center}.ri-media img{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.ri-media-ph{font-size:13px;color:var(--ink-3);letter-spacing:1px}.ri-body{flex:1;min-height:0;overflow-y:auto;padding:26px 28px 8px;display:flex;flex-direction:column}.ri-title{font-size:24px;font-weight:800;letter-spacing:-.5px;line-height:1.2}.ri-sub{margin-top:12px;font-size:15px;line-height:1.6;color:var(--ink-2)}.ri-features{list-style:none;margin:26px 0 0;padding:0;display:flex;flex-direction:column;gap:16px}.ri-features li{display:flex;align-items:flex-start;gap:12px;font-size:15px;line-height:1.5}.ri-check{flex:none;width:22px;height:22px;margin-top:1px;border-radius:50%;background:color-mix(in oklab,var(--accent) 14%,#fff);color:var(--accent);display:grid;place-items:center}.ri-check svg{width:13px;height:13px}.ri-note{margin-top:26px;font-size:15px;font-weight:700}.ri-foot{flex:none;display:flex;justify-content:flex-end;padding:16px 28px 24px}.ri-cta{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:11px;border:1px solid transparent;background:var(--accent);color:#fff;font-size:13.5px;font-weight:600;transition:.14s}.ri-cta svg{width:16px;height:16px}.ri-cta:hover{background:color-mix(in oklab,var(--accent) 88%,#000)}@media(max-width:760px){.ri-scrim{align-items:end;padding:0}.ri-modal{width:100%;height:auto;max-height:94vh;border-radius:22px 22px 0 0}.ri-media{height:160px}.ri-body{padding:24px 22px 8px}.ri-foot{padding:16px 22px calc(20px + env(safe-area-inset-bottom))}}.materials-fab{display:none}.orders-page{height:100%;overflow-y:auto;overflow-x:hidden;overscroll-behavior-x:none;-webkit-overflow-scrolling:touch;background:var(--surface, #fff);padding:32px 20px}.orders-shell{width:min(680px,100%);margin:0 auto}.orders-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:22px}.orders-head h1{font-size:24px;font-weight:800}.orders-head p{font-size:13.5px;color:var(--ink-2);margin-top:4px}.orders-empty{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:60px 24px;text-align:center;color:var(--ink-3);font-size:14px;line-height:1.7}.orders-list{display:flex;flex-direction:column;gap:14px}.order-card{display:flex;gap:18px;padding:16px;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-sm, 0 1px 3px rgba(24, 24, 36, .06));transition:box-shadow .16s,border-color .16s,transform .16s}.order-card:hover{border-color:color-mix(in oklab,var(--accent) 28%,var(--line));box-shadow:var(--shadow-md)}.order-card-imgs{display:flex;gap:12px;flex:none}.order-card-imgs figure{margin:0;width:164px;display:flex;flex-direction:column;gap:6px}.order-card-imgs figure img,.order-card-imgs figure .oc-noimg{width:100%;aspect-ratio:16 / 9;border-radius:12px;object-fit:cover;display:block;background:var(--line-2);border:1px solid var(--line)}.order-card-imgs figure img{box-shadow:0 2px 10px #1818241a;transition:transform .18s}.order-card-imgs figure img:hover{transform:scale(1.02)}.order-card-imgs figure .oc-noimg{display:grid;place-items:center;font-size:12px;color:var(--ink-3);background:repeating-linear-gradient(135deg,var(--line-2) 0 10px,#f6f6fa 10px 20px)}.order-card-imgs figcaption{font-size:11px;color:var(--ink-3);text-align:center;font-weight:600;letter-spacing:.02em}.order-card-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}.oc-top{display:flex;align-items:center;gap:10px}.oc-top strong{font-size:16px;font-weight:800}.oc-status{font-size:11px;font-weight:700;padding:2px 9px;border-radius:999px;background:var(--accent-soft);color:var(--accent)}.oc-status--closed{background:var(--line-2);color:var(--ink-3)}.oc-meta{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12.5px;color:var(--ink-2)}.oc-price{display:flex;align-items:baseline;gap:10px}.oc-amount{font-size:20px;font-weight:800;font-variant-numeric:tabular-nums}.oc-count{font-size:12.5px;color:var(--ink-3)}.oc-notes{font-size:13px;color:var(--ink-2);line-height:1.5;margin:0;background:var(--line-2);padding:8px 11px;border-radius:8px}.oc-actions{margin-top:auto;display:flex;gap:10px}.oc-actions .btn{padding:8px 16px}.oc-actions .btn .bi{width:16px;height:16px}.oc-feedback{margin-top:auto;padding-top:10px;display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;border-top:1px solid var(--line-2)}.ocf-label{font-size:12.5px;color:var(--ink-2)}.ocf-btns{display:flex;gap:8px;margin-left:auto}.ocf-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:999px;font-size:13px;font-weight:600;color:var(--ink-2);background:var(--surface);border:1px solid var(--line);transition:.14s}.ocf-btn svg{width:16px;height:16px}.ocf-btn:hover:not(:disabled){background:var(--line-2);color:var(--ink)}.ocf-btn:disabled{opacity:.55;cursor:not-allowed}.ocf-btn.is-on:disabled{opacity:1;cursor:default}.ocf-btn--up.is-on{color:#0f9d58;border-color:color-mix(in oklab,#0f9d58 45%,var(--line));background:color-mix(in oklab,#0f9d58 10%,#fff)}.ocf-btn--down.is-on{color:#d9453a;border-color:color-mix(in oklab,#d9453a 45%,var(--line));background:color-mix(in oklab,#d9453a 10%,#fff)}.gen-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.gen-card{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden;transition:border-color .16s}.gen-card:hover{border-color:color-mix(in oklab,var(--accent) 28%,var(--line))}.gen-img{position:relative;margin:0;aspect-ratio:3 / 2;background:var(--line-2);overflow:hidden}.gen-img-btn{display:block;width:100%;height:100%;padding:0;border:none;background:none;cursor:zoom-in}.gen-img img{width:100%;height:100%;object-fit:cover;display:block;transition:opacity .3s ease}.gen-img-skeleton{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,var(--line-2) 25%,color-mix(in oklab,var(--line-2) 55%,#fff) 37%,var(--line-2) 63%);background-size:400% 100%;animation:gen-img-skeleton 1.4s ease infinite}@keyframes gen-img-skeleton{0%{background-position:100% 50%}to{background-position:0 50%}}.gen-noimg{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:12px;color:var(--ink-3);background:repeating-linear-gradient(135deg,var(--line-2) 0 10px,#f6f6fa 10px 20px)}.gen-tag{position:absolute;top:8px;font-size:11px;font-weight:700;padding:3px 8px;border-radius:999px;color:#fff}.gen-tag--design{left:8px;background:#1c1c289e}.gen-tag--render{right:8px;display:inline-flex;align-items:center;gap:4px;padding:3px 9px 3px 7px;background:#fff;color:var(--accent);box-shadow:0 1px 4px #00000024}.gen-tag--render svg{width:13px;height:13px;flex:none}.gen-body{padding:12px 14px 14px;display:flex;flex-direction:column;gap:4px}.gen-title{font-size:15px;font-weight:800}.gen-date{font-size:12px;color:var(--ink-3);font-variant-numeric:tabular-nums}.gen-quote-btn{margin-top:10px;display:inline-flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--line-2, #f3f4f6);color:var(--ink-2);font-size:13px;font-weight:700;cursor:pointer;transition:background .16s,border-color .16s,color .16s}.gen-quote-btn:hover{background:color-mix(in oklab,var(--ink-3) 14%,#fff);border-color:color-mix(in oklab,var(--ink-3) 32%,var(--line));color:var(--ink)}.gen-quote-btn svg{width:15px;height:15px;flex:none}.gen-fb{display:flex;gap:8px;margin-top:10px}.gen-fb .ocf-btn{flex:1;justify-content:center;padding:7px 8px;font-size:12.5px}.gen-thanks{display:inline-flex;align-items:center;gap:7px;margin-top:10px;padding:8px 0;color:var(--ink-2);font-size:13px;font-weight:600}.gen-thanks svg{width:16px;height:16px;flex:none}@media(max-width:480px){.gen-grid{grid-template-columns:1fr 1fr;gap:10px}.gen-body{padding:10px 10px 12px}.gen-title{font-size:14px}.gen-fb{flex-direction:column}}@media(max-width:640px){.order-card{flex-direction:column}.order-card-imgs{gap:10px}.order-card-imgs figure{flex:1 1 0;width:auto;min-width:0}}.account-page{height:100%;overflow-y:auto;overflow-x:hidden;overscroll-behavior-x:none;-webkit-overflow-scrolling:touch;background:var(--surface, #fff);padding:40px 20px}.account-shell{width:min(680px,100%);margin:0 auto}.account-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:24px}.account-head h1{font-size:20px;font-weight:700}.account-head p{font-size:13px;color:var(--ink-3);margin-top:4px}.account-banner{padding:11px 14px;border-radius:10px;font-size:13px;margin-bottom:16px;border:1px solid var(--line)}.account-banner.error{color:#b91c1c;border-color:color-mix(in oklab,#b91c1c 26%,var(--line))}.account-banner.ok{color:var(--ink)}.account-empty{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:50px 24px;text-align:center;color:var(--ink-3);font-size:14px}.account-balance{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:24px 26px;margin-bottom:36px}.ab-main{display:flex;flex-direction:column;gap:2px}.ab-label{font-size:12px;color:var(--ink-3)}.ab-value{font-size:40px;font-weight:700;line-height:1.05;font-variant-numeric:tabular-nums}.ab-sub{font-size:12px;color:var(--ink-3);margin-top:4px}.ab-stats{display:flex;gap:28px}.ab-stat{display:flex;flex-direction:column;gap:2px}.abs-num{font-size:20px;font-weight:700;font-variant-numeric:tabular-nums}.abs-label{font-size:12px;color:var(--ink-3)}.account-section-title{font-size:14px;font-weight:700;margin-bottom:4px}.account-section-hint{font-size:13px;color:var(--ink-3);margin-bottom:16px}.account-danger{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:48px;padding:20px 22px;background:var(--surface);border:1px solid color-mix(in oklab,#c8453a 24%,var(--line));border-radius:14px}.account-danger-copy{flex:1;min-width:0}.account-danger .account-section-title{margin-bottom:4px}.account-danger-hint{margin-bottom:0}.account-delete-btn{flex-shrink:0;min-width:108px;justify-content:center}.plan-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:36px}.plan-card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:20px 16px;display:flex;flex-direction:column;gap:4px;transition:border-color .15s}.plan-card--popular{border-color:color-mix(in oklab,var(--accent) 45%,var(--line))}.plan-tag{position:absolute;top:-10px;right:14px;z-index:1;font-size:11px;font-weight:700;color:#fff;line-height:1;background:var(--accent);padding:4px 10px;border-radius:999px;box-shadow:0 2px 8px color-mix(in oklab,var(--accent) 35%,transparent)}.plan-name{font-size:13px;color:var(--ink-2)}.plan-points{font-size:26px;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums}.plan-points span{font-size:13px;font-weight:500;color:var(--ink-3)}.plan-bonus,.plan-gen{font-size:12px;color:var(--ink-3)}.plan-price{font-size:15px;font-weight:600;margin-top:auto;padding-top:8px;font-variant-numeric:tabular-nums}.plan-buy{width:100%;justify-content:center;margin-top:12px}.topup-list{display:flex;flex-direction:column;gap:0;border:1px solid var(--line);border-radius:12px;overflow:hidden}.topup-row{display:grid;grid-template-columns:1fr auto auto auto;gap:14px;align-items:center;background:var(--surface);padding:12px 14px;font-size:13px;border-bottom:1px solid var(--line-2)}.topup-row:last-child{border-bottom:none}.tr-date{color:var(--ink-3)}.tr-points{font-weight:600;font-variant-numeric:tabular-nums}.tr-amount{color:var(--ink-3);font-variant-numeric:tabular-nums}.tr-status{font-size:12px;color:var(--ink-3)}.tr-status--pending{color:var(--accent)}.tr-status--approved{color:var(--ink)}@media(max-width:640px){.plan-grid{display:flex;grid-template-columns:none;gap:12px;overflow-x:auto;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;padding:14px 16px 4px;margin-left:-16px;margin-right:-16px;scrollbar-width:none}.plan-grid::-webkit-scrollbar{display:none}.plan-card{flex:0 0 78%;scroll-snap-align:center}.account-balance{flex-direction:column;align-items:flex-start}}@media(max-width:1024px){.body{grid-template-columns:264px 1fr}.side-head{padding:14px 14px 8px}.tabs{padding:4px 12px 10px}.cards{padding:4px 12px 16px}.stage-col{padding:10px 12px}.nav{padding:0 14px}.view-bar .vhint{display:none}}@media(max-width:640px){.app{grid-template-rows:52px 1fr}.body{grid-template-columns:1fr}.stage-col{padding:8px 10px 0;gap:4px}.nav{padding:0 12px}.nav-title{font-size:14px}.nav-title .sub{display:none}.nav-right{gap:8px}.nav-pill{padding:5px 10px;font-size:12px}.side{position:fixed;left:0;right:0;bottom:0;z-index:2000;min-height:60dvh;max-height:80dvh;border-right:none;border-top:1px solid var(--line);border-radius:18px 18px 0 0;box-shadow:0 -12px 40px #1818242e;transform:translateY(110%);transition:transform .28s cubic-bezier(.2,.9,.3,1);padding-bottom:env(safe-area-inset-bottom)}.side--open{transform:translateY(0)}.side-grabber{display:flex;align-items:center;justify-content:center;padding:10px 0 4px;flex:none;cursor:pointer}.side-grabber-bar{width:40px;height:4px;border-radius:999px;background:var(--dot)}.side-scrim{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1999;background:#18182466;opacity:0;pointer-events:none;transition:opacity .28s ease}.side-scrim.open{display:block;opacity:1;pointer-events:auto}.cards{display:flex;flex-direction:column;align-content:flex-start;gap:8px}.card{align-self:stretch}.view-bar{gap:6px;padding:4px 2px 6px;flex-wrap:nowrap}.view-bar .vtag,.view-bar .vhint,.view-bar .vdim{display:none}.view-bar .vhistory{margin-left:auto;gap:4px}.view-bar .vclear{margin-left:6px}.view-bar .vundo,.view-bar .vredo,.view-bar .vclear{font-size:0;padding:0 9px;gap:0}.view-bar .vundo svg,.view-bar .vredo svg,.view-bar .vclear svg{width:16px;height:16px}.colorize-fab{right:14px;bottom:16px;padding:9px 14px;font-size:12.5px;box-shadow:0 3px 9px color-mix(in oklab,var(--accent) 34%,transparent)}.materials-fab{display:inline-flex;align-items:center;gap:7px;position:absolute;left:14px;bottom:16px;z-index:60;padding:9px 14px;border-radius:999px;font-size:12.5px;font-weight:700;color:var(--ink);background:#fffffff5;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid var(--line);box-shadow:0 3px 9px #18182424}.materials-fab svg{width:16px;height:16px}.materials-fab:active{transform:translateY(1px)}.stage-col{grid-template-rows:1fr auto;padding-bottom:calc(10px + env(safe-area-inset-bottom))}.foot{flex-wrap:wrap;gap:10px 12px;padding:12px 14px}.foot-total{flex:1 1 auto}.foot-total .lbl{font-size:11px}.foot-total .amt{font-size:22px}.foot-summary{margin-left:auto;align-self:flex-end;border-left:none;padding-left:0;text-align:right;font-size:11.5px;line-height:1.5}.foot-summary br{display:none}.foot-actions{width:100%;margin-left:0;gap:8px}.foot-actions .btn{flex:1;justify-content:center;padding:10px 12px}.scrim,.cf-scrim{align-items:flex-end;place-items:end stretch;padding:0}.modal,.cf-modal{width:100%;max-width:100%;max-height:92dvh;border-radius:18px 18px 0 0}.modal{max-height:92dvh}.modal.order-modal,.modal.confirm{width:100%}.qhead,.qrow{gap:8px}.modal-head{padding:18px 18px 12px}.modal-head p{white-space:normal}.modal-body{padding:8px 18px}.modal-foot{padding:16px 18px}.qsub{min-width:64px}.cf-modal .m-head{padding:18px 18px 12px}.cf-modal .m-steps,.cf-modal .m-body{padding-left:18px;padding-right:18px}.cf-modal .m-foot{padding:16px 18px calc(16px + env(safe-area-inset-bottom))}.cf-modal .m-foot--result{flex-wrap:nowrap;gap:8px}.cf-modal .m-foot--result .spacer{display:none}.cf-modal .m-foot--result .cf-btn--icon{flex:0 0 auto;justify-content:center;padding:11px}.cf-modal .m-foot--result .cf-btn--icon .cf-btn-txt{display:none}.cf-modal .m-foot--result .cf-btn.primary{flex:1 1 auto;min-width:0;justify-content:center;padding:11px 12px}.cf-modal .swatches{grid-template-columns:repeat(4,1fr)}.cf-modal .cf-optgroup{flex-wrap:wrap}.order-form{padding:16px 18px calc(18px + env(safe-area-inset-bottom))}.modal.order-modal--split{grid-template-columns:1fr;max-height:92dvh;overflow-y:auto}.order-modal--split .of-media{height:150px}.order-modal--split .of-panel{max-height:none;overflow:visible}.order-modal--split .order-form{overflow:visible}.order-modal--split .modal-head{padding:20px 18px 4px}.confirm-body{padding:22px 20px 6px}.confirm-cta{padding:16px 20px calc(18px + env(safe-area-inset-bottom))}.orders-page{padding:20px 14px calc(20px + env(safe-area-inset-bottom))}.account-page{padding:24px 14px calc(24px + env(safe-area-inset-bottom))}.orders-head,.account-head{flex-direction:column;align-items:flex-start;gap:10px}.orders-head .page-back,.account-head .page-back{order:-1}.orders-head h1{font-size:21px}.ab-value{font-size:34px}.ab-stats{gap:22px}.account-danger{flex-direction:column;align-items:stretch}.account-delete-btn{width:100%}.topup-row{grid-template-columns:1fr auto;row-gap:4px}.tr-status{text-align:right}}.page-loader{height:100%;display:grid;place-items:center;background:var(--bg)}.spinner{display:inline-block;width:36px;height:36px;border-radius:50%;border:3px solid rgba(0,0,0,.15);border-top-color:#111;animation:spinner-rotate .7s linear infinite}@keyframes spinner-rotate{to{transform:rotate(360deg)}}.landing{display:block;position:relative}.landing .nav{position:absolute;top:0;left:0;right:0;height:56px;z-index:5;background:#ffffff1a;backdrop-filter:blur(16px) saturate(130%);-webkit-backdrop-filter:blur(16px) saturate(130%);border-bottom:1px solid rgba(255,255,255,.18);color:#fff}.landing .nav:before,.landing .nav:after{display:none}.landing .nav-title{color:#fff;text-shadow:0 1px 10px rgba(0,0,0,.25)}.landing .nav-title .sub{color:#ffffffd1}.landing .nav-login-btn--primary{background:#ffffff29;border:1px solid rgba(255,255,255,.65);color:#fff;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.landing .nav-login-btn--primary:hover{background:#fff;color:#1c1c24}.landing-hero{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;height:100%}.landing-slides{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0}.landing-slide{position:absolute;top:0;right:0;bottom:0;left:0;background-size:cover;background-position:center;opacity:0;transform:scale(1.06);transition:opacity 1.4s ease,transform 6s ease}.landing-slide.is-active{opacity:1;transform:scale(1)}.landing-mask{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#14100e73,#14100e40 40%,#14100e8c),radial-gradient(120% 90% at 50% 50%,#14100e1a,#14100e80)}.landing-content{position:relative;z-index:1;text-align:center;color:#fff;padding:24px;display:flex;flex-direction:column;align-items:center;max-width:820px}.landing-eyebrow{font-family:var(--font);font-size:clamp(15px,2vw,20px);letter-spacing:.04em;color:#ffffffe0;margin-bottom:14px;text-shadow:0 1px 12px rgba(0,0,0,.35)}.landing-title{font-family:Allura,"Noto Serif TC",cursive;font-weight:400;font-size:clamp(64px,13vw,160px);line-height:1;letter-spacing:.02em;margin:26px 0;text-shadow:0 2px 28px rgba(0,0,0,.4)}.landing-tagline{font-family:var(--font);font-size:clamp(14px,2.2vw,22px);letter-spacing:.42em;text-transform:uppercase;color:#ffffffeb;padding-left:.42em;text-shadow:0 1px 14px rgba(0,0,0,.4)}.landing-cta{margin-top:40px;display:inline-flex;align-items:center;justify-content:center;padding:15px 46px;font-size:15px;font-weight:500;letter-spacing:.12em;color:#fff;border:1px solid rgba(255,255,255,.7);background:#ffffff14;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border-radius:999px;transition:background .2s ease,color .2s ease,transform .12s ease}.landing-cta:hover{background:#fff;color:#1c1c24;transform:translateY(-1px)}.landing-cta:active{transform:translateY(0)}.landing-dots{position:absolute;z-index:1;bottom:26px;left:50%;transform:translate(-50%);display:flex;gap:10px}.landing-dot{width:9px;height:9px;border-radius:999px;background:#ffffff73;border:1px solid rgba(255,255,255,.6);transition:background .2s ease,width .2s ease}.landing-dot.is-active{width:26px;background:#fff}@media(max-width:640px){.landing-content{padding:20px 18px;max-width:100%}.landing-eyebrow{margin-bottom:10px}.landing-title{font-size:clamp(46px,15vw,96px);max-width:100%;margin:20px 0;overflow-wrap:anywhere}.landing-tagline{font-size:clamp(12px,3.4vw,18px);letter-spacing:.18em;padding-left:.18em;overflow-wrap:anywhere}.landing-cta{margin-top:26px;padding:10px 26px;font-size:13px;letter-spacing:.08em}}
