:root{color-scheme:light;--bg: radial-gradient(circle at top, #ffe9d6 0%, #f6f4ff 45%, #dff6ff 100%);--ink: #2b2e4a;--primary: #ff6b6b;--primary-strong: #ff4d6d;--accent: #ffbf69;--mint: #4ecdc4;--card: #ffffff;--line: #f0e6ff;--shadow: 0 20px 40px rgba(76, 99, 166, .18)}*{box-sizing:border-box}body{margin:0;font-family:Trebuchet MS,Comic Sans MS,Verdana,sans-serif;color:var(--ink);background:var(--bg)}html{scrollbar-gutter:stable;overflow-y:scroll}#app{min-height:100vh}.page[data-v-89a677e1]{padding:32px 24px 48px;position:relative;animation:fadeIn-89a677e1 .6s ease both}.lang-switch[data-v-89a677e1]{position:absolute;top:24px;right:24px;display:inline-flex;gap:6px;padding:6px;border-radius:999px;background:#ffffffd9;border:1px solid rgba(255,191,105,.35);box-shadow:0 12px 20px #44588a1f;z-index:6}.lang-btn[data-v-89a677e1]{border:none;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:600;background:transparent;color:#7a7e9a;cursor:pointer;transition:background .2s ease,color .2s ease,transform .2s ease}.lang-btn[data-v-89a677e1]:hover{transform:translateY(-1px)}.lang-btn.active[data-v-89a677e1]{background:#4ecdc433;color:#1f7e78}.site-footer[data-v-89a677e1]{margin-top:28px;text-align:center;font-size:12px;color:#9aa0b8}.hero[data-v-89a677e1]{text-align:center;max-width:720px;margin:0 auto 32px;position:relative}.hero[data-v-89a677e1]:before,.hero[data-v-89a677e1]:after{content:"";position:absolute;width:140px;height:140px;border-radius:50%;background:radial-gradient(circle at top,#ffbf6999,#ff6b6b33);filter:blur(2px);z-index:-1}.hero[data-v-89a677e1]:before{left:-120px;top:-60px}.hero[data-v-89a677e1]:after{right:-100px;top:10px}.hero-badge[data-v-89a677e1]{display:inline-flex;align-items:center;justify-content:center;padding:6px 16px;border-radius:999px;font-size:12px;letter-spacing:1px;text-transform:uppercase;background:#ffbf6966;color:#a14b2a;margin-bottom:12px}.hero h1[data-v-89a677e1]{margin:0;font-size:clamp(28px,4vw,42px)}.hero p[data-v-89a677e1]{margin:8px 0 0;font-size:16px;color:#5c5f7a}.layout[data-v-89a677e1]{position:relative;display:grid;grid-template-columns:64px minmax(0,1fr);gap:16px;align-items:stretch}.side-dock[data-v-89a677e1]{position:relative;height:100%;align-self:stretch;border-radius:20px;background:#fffc;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 12px 30px #44588a2e;overflow:hidden;transition:width .35s ease,box-shadow .35s ease;z-index:5}.side-dock[data-v-89a677e1],.side-dock.open[data-v-89a677e1]{width:64px}.side-dock.open[data-v-89a677e1]{width:clamp(280px,30vw,380px);box-shadow:0 20px 40px #44588a47}.side-dock.open.wide[data-v-89a677e1]{width:clamp(420px,52vw,640px)}.dock-rail[data-v-89a677e1]{width:64px;padding:16px 8px;display:flex;flex-direction:column;gap:12px;align-items:center}.dock-icon[data-v-89a677e1]{width:52px;height:58px;border-radius:14px;border:none;background:#fff0f3;color:#cc4a66;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;cursor:pointer;box-shadow:inset 0 0 0 1px #ff6b6b40;transition:transform .2s ease,background .2s ease}.dock-icon[data-v-89a677e1]:hover{transform:translateY(-2px)}.dock-icon.active[data-v-89a677e1]{background:#4ecdc433;color:#237e77}.dock-glyph[data-v-89a677e1]{font-size:18px;line-height:1;font-variant-emoji:text}.dock-text[data-v-89a677e1]{font-size:10px;line-height:1;letter-spacing:.4px}.dock-content[data-v-89a677e1]{position:absolute;top:0;left:64px;right:0;height:100%;padding:16px 16px 16px 4px;display:flex;flex-direction:column;gap:16px;overflow:hidden auto;opacity:0;transform:translate(-12px);transition:opacity .3s ease,transform .35s ease;pointer-events:none;min-height:0}.side-dock.open .dock-content[data-v-89a677e1]{opacity:1;transform:translate(0);pointer-events:auto}.dock-card[data-v-89a677e1]{opacity:0;transform:translate(-8px);transition:opacity .35s ease,transform .35s ease;transition-delay:var(--delay, 0s)}.side-dock.open .dock-card[data-v-89a677e1]{opacity:1;transform:translate(0)}.card[data-v-89a677e1]{background:var(--card);border-radius:20px;padding:20px;box-shadow:var(--shadow);border:1px solid rgba(255,255,255,.8)}.upload-icon[data-v-89a677e1]{font-size:28px;background:#ffbf694d;width:56px;height:56px;border-radius:18px;display:grid;place-items:center}.upload-title[data-v-89a677e1]{margin:0;font-weight:600}.upload-hint[data-v-89a677e1]{font-size:12px;color:#7a7e9a}.hint h2[data-v-89a677e1]{margin:0 0 8px;font-size:18px}.hint p[data-v-89a677e1]{margin:0;font-size:14px;color:#6b6f88}.info h2[data-v-89a677e1],.controls h2[data-v-89a677e1],.stage-card h2[data-v-89a677e1]{margin:0 0 12px;font-size:18px}.card-head[data-v-89a677e1]{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.card-head h2[data-v-89a677e1]{margin:0}.pin-btn[data-v-89a677e1]{width:30px;height:30px;border-radius:10px;border:none;background:#ffbf692e;color:#b85a2d;font-size:16px;display:grid;place-items:center;cursor:pointer;transition:transform .2s ease,background .2s ease;font-variant-emoji:text}.pin-btn[data-v-89a677e1]:hover{transform:translateY(-1px)}.pin-btn.active[data-v-89a677e1]{background:#4ecdc440;color:#1f7e78}.info-grid[data-v-89a677e1]{display:grid;gap:12px}.info-grid div[data-v-89a677e1]{display:flex;flex-direction:column;gap:4px;background:#fff7f0;padding:10px 12px;border-radius:12px}.info-grid span[data-v-89a677e1]{font-size:12px;color:#7b7f98}.info-grid strong[data-v-89a677e1]{font-size:15px}.dock-empty[data-v-89a677e1]{margin:0;font-size:13px;color:#6b6f88}.card-title[data-v-89a677e1]{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.grid-form[data-v-89a677e1]{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}label[data-v-89a677e1]{display:flex;flex-direction:column;gap:6px;font-size:13px;color:#666b86}input[data-v-89a677e1],select[data-v-89a677e1]{border-radius:12px;padding:8px 10px;border:1px solid #efe3ff;font-size:14px;color:var(--ink);background:#fff}select[data-v-89a677e1]{cursor:pointer}.order-row[data-v-89a677e1]{margin-top:12px}.order-row select[data-v-89a677e1]{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23ff6b6b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:calc(100% - 12px) center;background-size:12px 12px;padding-right:32px}.warning[data-v-89a677e1]{margin-top:12px;padding:10px 12px;border-radius:12px;background:#ff6b6b1f;color:#c23c3c;font-size:13px}.slider-row[data-v-89a677e1]{display:flex;align-items:center;justify-content:space-between;gap:12px}.slider-row input[type=range][data-v-89a677e1]{width:140px}.slider-value[data-v-89a677e1]{font-size:12px;color:#6c7191;min-width:64px;text-align:right}.action-row[data-v-89a677e1]{display:flex;gap:10px;flex-wrap:wrap}.btn[data-v-89a677e1]{border:none;border-radius:999px;padding:8px 16px;cursor:pointer;font-weight:600;transition:transform .2s ease,box-shadow .2s ease;display:inline-flex;align-items:center;justify-content:center;gap:6px}.btn-icon[data-v-89a677e1]{font-size:14px;line-height:1;display:inline-flex;align-items:center}.btn-icon svg[data-v-89a677e1]{width:16px;height:16px;display:block}.btn[data-v-89a677e1]:hover{transform:translateY(-1px)}.btn.primary[data-v-89a677e1]{background:linear-gradient(135deg,var(--primary),var(--primary-strong));color:#fff;box-shadow:0 12px 20px #ff4d6d40}.btn.ghost[data-v-89a677e1]{background:#fff0f3;color:#cc4a66}.btn.secondary[data-v-89a677e1]{background:#4ecdc438;color:#1f7e78}.btn.tiny[data-v-89a677e1]{padding:6px 12px;font-size:12px;background:#f1f7ff;color:#3c5a88}.btn.download[data-v-89a677e1]{margin-top:12px;display:inline-flex;align-items:center;justify-content:center;background:#4ecdc433;color:#1f7e78}.btn[data-v-89a677e1]:disabled{cursor:not-allowed;opacity:.6;transform:none}.stage[data-v-89a677e1]{display:flex;flex-direction:column;gap:20px}.stage-card[data-v-89a677e1]{display:flex;flex-direction:column;gap:16px}.stage-header[data-v-89a677e1]{display:flex;flex-wrap:wrap;align-items:center;gap:8px;justify-content:space-between}.stage-actions[data-v-89a677e1]{display:flex;align-items:center;gap:10px}.stage-title[data-v-89a677e1]{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.tool-list[data-v-89a677e1]{display:grid;gap:8px}.tune-body[data-v-89a677e1]{display:grid;gap:12px;align-items:start}.tune-body.has-detail[data-v-89a677e1]{grid-template-columns:minmax(200px,1fr) minmax(260px,1.15fr)}.tune-main[data-v-89a677e1],.tune-detail[data-v-89a677e1]{min-width:0}.tune-detail[data-v-89a677e1]{padding:0 12px 12px;border-radius:16px;background:#ffffffd9;animation:slideIn-89a677e1 .25s ease both}.tune-title[data-v-89a677e1]{font-size:13px;font-weight:600;color:#5c5f7a;margin:0 0 6px}.label-title[data-v-89a677e1]{font-weight:600}.tune-main .tune-title[data-v-89a677e1]:not(:first-child){margin-top:12px}.frame-strip[data-v-89a677e1]{display:grid;grid-template-columns:repeat(auto-fit,minmax(56px,1fr));gap:8px}.frame-item[data-v-89a677e1]{border:none;border-radius:12px;padding:6px;background:#ffffffd9;color:#5c5f7a;font-size:11px;display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;position:relative;box-shadow:inset 0 0 0 1px #ffbf6966;transition:transform .2s ease,background .2s ease,color .2s ease}.frame-item.active[data-v-89a677e1]{background:#4ecdc433;color:#1f7e78;box-shadow:inset 0 0 0 1px #4ecdc480}.frame-item[data-v-89a677e1]:hover{transform:translateY(-1px)}.frame-thumb[data-v-89a677e1]{width:44px;height:44px;border-radius:8px;background:#f7f3ff;background-size:contain;background-position:center;background-repeat:no-repeat;box-shadow:inset 0 0 0 1px #e0dcffb3}.frame-badge[data-v-89a677e1]{position:absolute;top:6px;right:6px;width:18px;height:18px;border-radius:50%;background:#ff6b6bf2;color:#fff;font-size:10px;font-weight:600;display:grid;place-items:center;box-shadow:0 6px 12px #ff4d6d40}.frame-edit[data-v-89a677e1]{margin-top:12px;display:grid;gap:10px}.frame-fields[data-v-89a677e1],.frame-actions[data-v-89a677e1]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.frame-actions .btn[data-v-89a677e1]{width:100%}.auto-trim[data-v-89a677e1],.align-panel[data-v-89a677e1]{margin-top:12px;padding-top:12px;border-top:1px dashed rgba(255,191,105,.4);display:grid;gap:8px}.auto-title[data-v-89a677e1]{font-size:13px;font-weight:600;color:#5c5f7a}.auto-meta[data-v-89a677e1]{font-size:12px;color:#6c7191}.auto-actions[data-v-89a677e1]{display:flex;gap:8px;flex-wrap:wrap}.range-row[data-v-89a677e1]{display:flex;align-items:flex-end;gap:10px}.range-label[data-v-89a677e1]{flex:1}.range-row .auto-meta[data-v-89a677e1]{margin-bottom:4px}.tool-item[data-v-89a677e1]{width:100%;border:none;border-radius:12px;padding:10px 12px;background:#ffffffe6;color:#5c5f7a;font-size:13px;text-align:left;cursor:pointer;box-shadow:inset 0 0 0 1px #ffbf6966;transition:transform .2s ease,background .2s ease,color .2s ease}.tool-item[data-v-89a677e1]:hover{transform:translateY(-1px);background:#ffbf692e}.tool-item.active[data-v-89a677e1]{background:#ffbf6947;color:#b85a2d}.tool-hint[data-v-89a677e1]{margin:10px 0 0;font-size:12px;color:#6b6f88}.chip[data-v-89a677e1]{padding:4px 12px;border-radius:999px;background:#4ecdc433;font-size:12px;color:#237e77}.workbench-shell[data-v-89a677e1]{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:16px;align-items:stretch;height:clamp(360px,60vh,620px)}.workbench-shell[data-v-89a677e1]>*{min-width:0}.workbench[data-v-89a677e1]{display:grid;grid-template-columns:44px 1fr;grid-template-rows:44px 1fr;background:#fdf8ff;border-radius:16px;border:1px solid #efe3ff;overflow:hidden;height:100%}.preview-pane[data-v-89a677e1]{background:linear-gradient(160deg,#fffffff2,#e9f8fff2);border-radius:16px;border:1px solid #e0f3ff;padding:12px;display:flex;flex-direction:column;gap:10px;min-height:280px;box-shadow:0 16px 30px #44588a1f;height:100%;min-height:0;overflow:hidden}.preview-title[data-v-89a677e1]{font-size:14px;font-weight:600;color:#5c5f7a}.preview-meta[data-v-89a677e1]{font-size:12px;color:#8a8ea5;text-align:center;margin-top:8px}.preview-actions[data-v-89a677e1]{border-radius:14px;background:#ffffffe6;border:1px solid rgba(224,243,255,.9);padding:10px;display:flex;flex-direction:column;gap:8px;box-shadow:0 12px 20px #44588a14}.preview-panels[data-v-89a677e1]{display:flex;flex-direction:column;gap:10px;margin-top:auto}.export-card[data-v-89a677e1]{border-radius:14px;background:#ffffffeb;border:1px solid rgba(224,243,255,.9);padding:12px;display:flex;flex-direction:column;gap:10px;box-shadow:0 12px 20px #44588a14}.preview-actions-title[data-v-89a677e1]{font-size:13px;font-weight:600;color:#5c5f7a}.preview-actions .slider-row[data-v-89a677e1]{align-items:center;gap:8px}.preview-actions .slider-row label[data-v-89a677e1]{flex:1}.preview-actions .slider-row input[type=range][data-v-89a677e1]{width:100%}.preview-actions .action-row[data-v-89a677e1]{justify-content:space-between}.preview-actions .btn.download[data-v-89a677e1],.export-card .btn.download[data-v-89a677e1]{width:100%}.ruler[data-v-89a677e1]{position:relative;background:linear-gradient(90deg,#ffbf6933,#ff6b6b1a);font-size:10px;color:#8a6f63}.ruler-track[data-v-89a677e1]{position:relative;width:100%;height:100%;pointer-events:none}.ruler.top[data-v-89a677e1]{grid-column:2;grid-row:1;background-size:10px 100%;background-image:repeating-linear-gradient(to right,rgba(139,124,155,.3) 0,rgba(139,124,155,.3) 1px,transparent 1px,transparent 10px)}.ruler.left[data-v-89a677e1]{grid-column:1;grid-row:2;background-size:100% 10px;background-image:repeating-linear-gradient(to bottom,rgba(139,124,155,.3) 0,rgba(139,124,155,.3) 1px,transparent 1px,transparent 10px)}.ruler.corner[data-v-89a677e1]{grid-column:1;grid-row:1;background:#ffe0b5}.mark[data-v-89a677e1]{position:absolute;top:4px;transform:translate(-50%)}.ruler.left .mark[data-v-89a677e1]{left:8px;top:0;transform:translateY(-50%)}.canvas-wrap[data-v-89a677e1]{grid-column:2;grid-row:2;position:relative;overflow:auto;height:100%;min-height:280px;display:flex;align-items:center;justify-content:center;background:repeating-conic-gradient(from 45deg,#ffffffb3 0 25%,#fff4e8e6 0 50%);background-size:24px 24px}.canvas-wrap.has-image[data-v-89a677e1]{align-items:flex-start;justify-content:flex-start}.canvas-content[data-v-89a677e1]{position:relative;min-width:100%;min-height:100%}.canvas-content.has-image[data-v-89a677e1]{min-width:0;min-height:0}.canvas-content canvas[data-v-89a677e1]{position:absolute;inset:0;display:block;z-index:1}.overlay[data-v-89a677e1]{position:absolute;inset:0;pointer-events:auto;z-index:2}.overlay.is-dragover[data-v-89a677e1]{outline:2px dashed rgba(255,107,107,.7);background:#ff6b6b14}.guides[data-v-89a677e1]{position:absolute;inset:0;z-index:2}.frame-highlight[data-v-89a677e1]{position:absolute;border:2px solid rgba(255,191,105,.95);background:#ffbf692e;box-shadow:0 0 0 1px #ffffffb3;pointer-events:none;z-index:1}.frame-selected[data-v-89a677e1]{position:absolute;border:2px dashed rgba(78,205,196,.9);background:#4ecdc414;box-shadow:0 0 0 1px #ffffffb3;pointer-events:none;z-index:2}.frame-mark[data-v-89a677e1]{position:absolute;width:14px;height:14px;border-radius:50%;background:#ff6b6bf2;border:2px solid rgba(255,255,255,.95);box-shadow:0 6px 12px #ff4d6d40;transform:translate(-50%,-50%);pointer-events:none;z-index:2}.frame-active[data-v-89a677e1]{position:absolute;border:2px solid rgba(78,205,196,.9);background:#4ecdc41f;box-shadow:0 0 0 1px #fffc;cursor:move;z-index:1;touch-action:none;-webkit-user-select:none;user-select:none}.guide-line[data-v-89a677e1]{position:absolute;--guide-color: rgba(255, 191, 105, .7);z-index:3;pointer-events:auto;touch-action:none;-webkit-user-select:none;user-select:none}.guide-line.major[data-v-89a677e1]{--guide-color: rgba(255, 77, 109, .98)}.guide-line.vertical[data-v-89a677e1]{top:0;bottom:0;width:14px;margin-left:-7px;cursor:ew-resize}.guide-line.horizontal[data-v-89a677e1]{left:0;right:0;height:14px;margin-top:-7px;cursor:ns-resize}.guide-line[data-v-89a677e1]:after{content:"";position:absolute;background:var(--guide-color);box-shadow:0 0 0 1px #fff9}.guide-line[data-v-89a677e1]:before{content:"";position:absolute;inset:0;background:#ffbf6929;opacity:0;transition:opacity .2s ease}.guide-line[data-v-89a677e1]:hover:before{opacity:1}.guide-line.vertical[data-v-89a677e1]:after{top:0;bottom:0;width:3px;left:50%;transform:translate(-50%)}.guide-line.horizontal[data-v-89a677e1]:after{left:0;right:0;height:3px;top:50%;transform:translateY(-50%)}.guide-line:not(.major).vertical[data-v-89a677e1]:after{background:repeating-linear-gradient(to bottom,var(--guide-color) 0 6px,transparent 6px 12px)}.guide-line:not(.major).horizontal[data-v-89a677e1]:after{background:repeating-linear-gradient(to right,var(--guide-color) 0 6px,transparent 6px 12px)}.handles[data-v-89a677e1]{position:absolute;inset:0;pointer-events:auto;z-index:4}.handle[data-v-89a677e1]{position:absolute;width:18px;height:18px;border-radius:5px;background:#fff;border:2px solid #ff4d6d;box-shadow:0 8px 16px #ff4d6d40;transform:translate(-50%,-50%);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;--handle-color: #ff4d6d}.handle[data-v-89a677e1]:before,.frame-handle[data-v-89a677e1]:before{content:"";position:absolute;inset:4px;background:linear-gradient(var(--handle-color, #ff6b6b),var(--handle-color, #ff6b6b)),linear-gradient(var(--handle-color, #ff6b6b),var(--handle-color, #ff6b6b)),linear-gradient(var(--handle-color, #ff6b6b),var(--handle-color, #ff6b6b));background-size:100% 2px;background-position:0 0,0 50%,0 100%;background-repeat:no-repeat;opacity:.9}.handle.move[data-v-89a677e1]{cursor:move}.handle.width[data-v-89a677e1]{cursor:ew-resize}.handle.height[data-v-89a677e1]{cursor:ns-resize}.handle.scale[data-v-89a677e1]{cursor:nwse-resize}.overlay.tool-ruler[data-v-89a677e1]{cursor:crosshair}.ruler-tool[data-v-89a677e1]{position:absolute;inset:0;pointer-events:none;z-index:5}.ruler-crosshair[data-v-89a677e1]{position:absolute;background:#4ecdc499;box-shadow:0 0 0 1px #ffffff80}.ruler-crosshair.vertical[data-v-89a677e1]{top:0;bottom:0;width:1px}.ruler-crosshair.horizontal[data-v-89a677e1]{left:0;right:0;height:1px}.ruler-cursor-label[data-v-89a677e1]{position:absolute;transform:translate(8px,8px);padding:4px 8px;border-radius:10px;background:#ffffffe6;border:1px solid rgba(78,205,196,.4);font-size:11px;color:#3d6d66;box-shadow:0 8px 16px #4ecdc433;white-space:nowrap}.ruler-line[data-v-89a677e1]{position:absolute;height:2px;background:linear-gradient(90deg,#4ecdc4,#ffbf69);transform-origin:left center;box-shadow:0 0 0 1px #fff9}.ruler-dot[data-v-89a677e1]{position:absolute;width:8px;height:8px;border-radius:50%;background:#fff;border:2px solid #4ecdc4;transform:translate(-50%,-50%);box-shadow:0 6px 12px #4ecdc440}.ruler-dot.end[data-v-89a677e1]{border-color:#ffbf69}.ruler-label[data-v-89a677e1]{position:absolute;transform:translate(-50%,-120%);padding:6px 10px;border-radius:12px;background:#ffffffe6;border:1px solid rgba(255,191,105,.5);font-size:12px;color:#6b5a53;box-shadow:0 12px 20px #ffbf6933;white-space:nowrap}.frame-handles[data-v-89a677e1]{position:absolute;inset:0;pointer-events:auto;z-index:3}.frame-handle[data-v-89a677e1]{position:absolute;width:18px;height:18px;border-radius:5px;background:#fff;border:2px solid #ffbf69;box-shadow:0 8px 16px #ffbf6940;transform:translate(-50%,-50%);cursor:grab;--handle-color: #ffbf69;touch-action:none;-webkit-user-select:none;user-select:none}.frame-handle.corner.nw[data-v-89a677e1],.frame-handle.corner.se[data-v-89a677e1]{cursor:nwse-resize}.frame-handle.corner.ne[data-v-89a677e1],.frame-handle.corner.sw[data-v-89a677e1]{cursor:nesw-resize}.upload-overlay[data-v-89a677e1]{position:absolute;inset:0;display:grid;place-items:center;gap:10px;text-align:center;padding:24px;background:#ffffffbf;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);pointer-events:auto;cursor:pointer;min-height:100%}.upload-card[data-v-89a677e1]{padding:20px 24px;border-radius:18px;border:2px dashed rgba(255,107,107,.5);background:#ffffffe6;display:flex;flex-direction:column;align-items:center;gap:10px;box-shadow:0 16px 28px #ff6b6b1f;width:min(280px,90%)}.tip[data-v-89a677e1]{margin:6px 4px 0;font-size:12px;color:#6c7191}.empty[data-v-89a677e1]{position:absolute;inset:0;display:grid;place-items:center;font-size:14px;color:#9a9db4;padding:12px;text-align:center}.preview-body[data-v-89a677e1]{display:grid;place-items:center;flex:0 0 auto;height:clamp(170px,22vh,230px);background:linear-gradient(135deg,#ffffffe6,#effcffe6);border-radius:14px;position:relative;overflow:hidden}.preview-body.clickable[data-v-89a677e1]{cursor:zoom-in}.preview-body.clickable[data-v-89a677e1]:hover{box-shadow:0 0 0 2px #4ecdc433}.preview-body canvas[data-v-89a677e1]{display:block;image-rendering:pixelated;max-width:100%;max-height:100%;width:auto;height:auto}.visually-hidden[data-v-89a677e1]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.preview-modal[data-v-89a677e1]{position:fixed;inset:0;background:#23263c99;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;padding:24px;z-index:20}.export-modal[data-v-89a677e1]{position:fixed;inset:0;background:#23263ca6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;padding:24px;z-index:30}.preview-modal-card[data-v-89a677e1]{max-width:min(90vw,720px);max-height:90vh;background:#fff;border-radius:20px;padding:16px;display:grid;gap:12px;box-shadow:0 24px 40px #2c325033;justify-items:center}.export-modal-card[data-v-89a677e1]{width:min(92vw,760px);max-height:90vh;background:#f9fffd;border-radius:20px;padding:16px;display:grid;gap:12px;border:1px solid rgba(255,107,107,.25);box-shadow:0 24px 40px #2c325033}.export-modal-head[data-v-89a677e1]{display:flex;align-items:center;justify-content:space-between;gap:12px}.export-sub[data-v-89a677e1]{margin:6px 0 0;font-size:12px;color:#7a7e9a}.export-info[data-v-89a677e1]{display:grid;gap:6px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));font-size:13px;color:#5c5f7a;padding:12px;border-radius:14px;background:#ffffffeb;border:1px solid rgba(224,243,255,.9);box-shadow:0 12px 20px #44588a14}.export-info strong[data-v-89a677e1]{font-weight:600;color:#2b2e4a}.export-preview[data-v-89a677e1]{position:relative;border-radius:16px;border:1px solid rgba(255,107,107,.25);background:repeating-conic-gradient(from 45deg,#ffffffe0 0 25%,#fff4e8f2 0 50%);background-size:24px 24px;display:block;justify-self:center;overflow:hidden;box-shadow:inset 0 0 0 2px #ff6b6b2e}.export-preview canvas[data-v-89a677e1]{display:block;width:100%;height:100%;image-rendering:pixelated}.crop-area[data-v-89a677e1]{position:absolute;--crop-color: var(--primary);border:2px solid var(--crop-color);outline:2px solid rgba(255,255,255,.8);box-shadow:0 0 0 9999px #23263c8c;background:#ffffff1a;cursor:move;touch-action:none;-webkit-user-select:none;user-select:none}.crop-area[data-v-89a677e1]:after{content:"";position:absolute;inset:6px;border:1px dashed rgba(255,255,255,.8);pointer-events:none}.crop-label[data-v-89a677e1]{position:absolute;left:32px;top:8px;padding:4px 8px;border-radius:999px;background:#ffffffe6;border:1px solid rgba(255,107,107,.45);color:#a23a4f;font-size:11px;font-weight:600;pointer-events:none;box-shadow:0 8px 16px #ff4d6d33}.crop-handle[data-v-89a677e1]{position:absolute;width:18px;height:18px;border-radius:4px;background:#fff0f3;border:2px solid var(--crop-color);box-shadow:0 8px 16px #ff4d6d40}.crop-handle[data-v-89a677e1]:before{content:"";position:absolute;width:6px;height:6px;background:var(--crop-color);border-radius:2px;left:50%;top:50%;transform:translate(-50%,-50%)}.crop-handle.nw[data-v-89a677e1]{left:4px;top:4px;transform:translate(0);cursor:nwse-resize}.crop-handle.ne[data-v-89a677e1]{right:4px;top:4px;transform:translate(0);cursor:nesw-resize}.crop-handle.sw[data-v-89a677e1]{left:4px;bottom:4px;transform:translate(0);cursor:nesw-resize}.crop-handle.se[data-v-89a677e1]{right:4px;bottom:4px;transform:translate(0);cursor:nwse-resize}.export-preview-actions[data-v-89a677e1]{display:flex;align-items:center;gap:10px;width:100%}.export-reset-hint[data-v-89a677e1]{font-size:12px;color:#6b6f88}.export-exporters[data-v-89a677e1]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:stretch}.export-block[data-v-89a677e1]{border-radius:14px;background:#ffffffeb;border:1px solid rgba(224,243,255,.9);padding:12px;display:flex;flex-direction:column;gap:10px;box-shadow:0 12px 20px #44588a14;height:100%}.export-block-desc[data-v-89a677e1]{margin:0;font-size:12px;color:#6b6f88}.export-block .btn[data-v-89a677e1]{width:100%;margin-top:auto}.export-modal-body[data-v-89a677e1]{display:grid;grid-template-columns:minmax(260px,420px) minmax(0,1fr);gap:16px;align-items:start}.export-preview-panel[data-v-89a677e1]{display:grid;gap:10px;justify-items:center}.export-controls[data-v-89a677e1]{display:grid;gap:12px;align-content:start}.export-controls .warning[data-v-89a677e1]{margin:0}.export-sheet-grid[data-v-89a677e1]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.preview-modal-card canvas[data-v-89a677e1]{max-width:100%;max-height:65vh;image-rendering:pixelated;border-radius:14px;background:#f6f6ff;padding:8px}.preview-modal-title[data-v-89a677e1]{font-size:14px;font-weight:600;color:#4e5168}@media(max-width:960px){.layout[data-v-89a677e1]{grid-template-columns:1fr}.side-dock[data-v-89a677e1]{position:static;width:100%;height:auto;margin-bottom:16px;box-shadow:none}.side-dock.open[data-v-89a677e1]{width:100%}.dock-rail[data-v-89a677e1]{flex-direction:row;width:100%;justify-content:center;padding:12px}.dock-content[data-v-89a677e1],.dock-card[data-v-89a677e1],.side-dock.open .dock-card[data-v-89a677e1]{opacity:1;transform:none;pointer-events:auto}.dock-content[data-v-89a677e1]{position:static;height:auto;max-height:none;overflow:visible;padding:0 12px 12px}.tune-body.has-detail[data-v-89a677e1]{grid-template-columns:1fr}.workbench-shell[data-v-89a677e1]{grid-template-columns:1fr;height:clamp(320px,55vh,520px)}.export-modal-body[data-v-89a677e1],.export-exporters[data-v-89a677e1]{grid-template-columns:1fr}.canvas-wrap[data-v-89a677e1]{min-height:240px}}@keyframes fadeIn-89a677e1{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn-89a677e1{0%{opacity:0;transform:translate(12px)}to{opacity:1;transform:translate(0)}}
