*{margin:0;padding:0;box-sizing:border-box}:root{--color-bg: #fafafa;--color-surface: #ffffff;--color-border: #e5e5e5;--color-border-subtle: #f0f0f0;--color-text: #171717;--color-text-secondary: #737373;--color-text-tertiary: #a3a3a3;--color-accent: #171717;--color-accent-hover: #404040;--color-accent-light: #fafafa;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 2px 8px rgba(0, 0, 0, .06);--shadow-lg: 0 4px 16px rgba(0, 0, 0, .08)}body{font-family:Inter,-apple-system,BlinkMacSystemFont,system-ui,sans-serif;line-height:1.5;color:var(--color-text);background:var(--color-bg);min-height:100vh;min-height:100dvh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior:none}.app{max-width:1100px;margin:0 auto;padding:24px 20px}.selection-zone{display:flex;flex-direction:column;align-items:center;padding-top:16px}.selection-zone.hidden{display:none}.selection-hint{font-size:13px;color:var(--color-text-tertiary);text-align:center;margin-bottom:12px;letter-spacing:-.01em}.preview-container{position:relative;width:100%;max-width:960px;border-radius:var(--radius-md);overflow:hidden;background:var(--color-surface);box-shadow:var(--shadow-md);border:1px solid var(--color-border-subtle)}.preview-container #previewImage{width:100%;height:auto;display:block}.svg-overlay{position:absolute;top:0;left:0;width:100%;height:100%;cursor:crosshair;touch-action:none;-webkit-user-select:none;user-select:none}.svg-overlay .corner-handle{cursor:grab;filter:drop-shadow(0 1px 3px rgba(0,0,0,.3));transform-origin:center;transform-box:fill-box;transition:transform .15s ease,filter .15s ease}.svg-overlay .corner-handle.hovered{transform:scale(1.75);filter:drop-shadow(0 2px 6px rgba(0,0,0,.35))}.svg-overlay .corner-handle.dragging{cursor:grabbing;transform:scale(1.5)}.selection-toolbar{display:flex;justify-content:center;gap:8px;margin-top:16px;width:100%;max-width:960px}.toolbar-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 16px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease}.toolbar-btn:disabled{opacity:.35;cursor:not-allowed}.toolbar-btn:active:not(:disabled){transform:scale(.98)}.toolbar-btn.clear-btn{background:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border)}.toolbar-btn.clear-btn:hover:not(:disabled){background:var(--color-surface);border-color:var(--color-text-secondary);color:var(--color-text)}.toolbar-btn.generate-btn{background:var(--color-accent);color:#fff;border:1px solid var(--color-accent);padding:10px 20px}.toolbar-btn.generate-btn:hover:not(:disabled){background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.toolbar-btn.upload-btn{background:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border)}.toolbar-btn.upload-btn:hover{background:var(--color-surface);border-color:var(--color-text-secondary);color:var(--color-text)}.gallery{display:flex;flex-direction:column;gap:16px;max-width:700px;margin:0 auto}.gallery:empty{display:none}.gallery-item{position:relative;border-radius:var(--radius-md);overflow:hidden;background:var(--color-surface);box-shadow:var(--shadow-sm);border:1px solid var(--color-border-subtle)}.gallery-item img{width:100%;height:auto;display:block}.gallery-item .download-btn{position:absolute;bottom:10px;right:10px;display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:#ffffffe6;border-radius:var(--radius-sm);color:var(--color-text);text-decoration:none;opacity:0;transform:translateY(4px);transition:all .15s ease;box-shadow:var(--shadow-sm)}.gallery-item:hover .download-btn{opacity:1;transform:translateY(0)}.gallery-item .download-btn:hover{background:var(--color-accent);color:#fff}.gallery-item.loading{aspect-ratio:4 / 3;background:linear-gradient(90deg,#f5f5f5 25%,#ebebeb,#f5f5f5 75%);background-size:200% 100%;animation:shimmer 1.8s infinite}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.error-message{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;gap:12px;padding:24px 32px;background:var(--color-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);border:1px solid var(--color-border);text-align:center;z-index:200}.error-message svg{color:var(--color-text-secondary)}.error-message p{font-size:14px;color:var(--color-text);max-width:260px;line-height:1.5}.error-message .error-dismiss{padding:8px 20px;background:var(--color-accent);color:#fff;border:none;border-radius:var(--radius-sm);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s ease}.error-message .error-dismiss:hover{background:var(--color-accent-hover)}@media (max-width: 768px){.app{padding:20px 16px}.preview-container{border-radius:var(--radius-sm)}.svg-overlay .corner-handle{r:6}.version-btn{width:40px;height:40px;font-size:14px}.version-confirm-btn{padding:10px 20px;font-size:14px}.progress-indicator{bottom:16px;right:16px;left:16px;min-width:auto}}@media (max-width: 640px){.app{padding:12px 8px}.selection-hint{font-size:14px;padding:0 8px;margin-bottom:10px}.preview-container{border-radius:var(--radius-sm);margin:0 -8px;width:calc(100% + 16px)}.gallery{gap:12px}.selection-toolbar{flex-direction:column;gap:8px;padding:0 4px}.toolbar-btn{width:100%;padding:14px 16px;font-size:14px;justify-content:center;min-height:48px}.toolbar-btn svg{width:20px;height:20px}.selection-toolbar{display:flex;flex-direction:column}.toolbar-btn.generate-btn{order:1}.toolbar-btn.upload-btn{order:2}.toolbar-btn.clear-btn{order:3}.svg-overlay .corner-handle{r:8}.download-overlay-btn{opacity:1;transform:translateY(0);padding:12px 20px;font-size:14px;bottom:16px;right:16px}.gallery-item .download-btn{opacity:1;transform:translateY(0);width:40px;height:40px}.version-selector{padding:8px 12px;gap:12px;flex-wrap:wrap;justify-content:center;max-width:calc(100% - 32px)}.version-btn{width:44px;height:44px;font-size:15px}.version-confirm-btn{padding:12px 24px;font-size:14px}.progress-indicator{bottom:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px));right:12px;left:12px;min-width:auto}.error-message{width:calc(100% - 32px);max-width:320px;padding:20px 24px}.error-message p{font-size:15px}.error-message .error-dismiss{padding:12px 28px;font-size:14px;min-height:44px}.debug-preview{display:none!important}}@media (max-width: 380px){.app{padding:8px 4px}.selection-hint{font-size:13px}.preview-container{margin:0 -4px;width:calc(100% + 8px);border-radius:0}.toolbar-btn{padding:12px 14px;font-size:13px}.version-selector{padding:6px 8px;gap:8px}.version-btn{width:40px;height:40px}.version-confirm-btn{padding:10px 18px;font-size:13px}}@media (hover: none) and (pointer: coarse){.download-overlay-btn,.gallery-item .download-btn{opacity:1;transform:translateY(0)}.svg-overlay .corner-handle{r:7}.toolbar-btn:active:not(:disabled){transform:scale(.97);transition:transform .1s ease}.version-btn:active{transform:scale(.92)}.version-confirm-btn:active{transform:scale(.97)}}.progress-indicator{position:fixed;bottom:20px;bottom:calc(20px + env(safe-area-inset-bottom,0px));right:20px;right:calc(20px + env(safe-area-inset-right,0px));display:none;flex-direction:column;gap:6px;padding:12px 16px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);z-index:100;min-width:180px}.progress-indicator.visible{display:flex}.progress-text{font-size:12px;font-weight:500;color:var(--color-text-secondary)}.progress-bar{width:100%;height:3px;background:var(--color-border-subtle);border-radius:2px;overflow:hidden}.progress-fill{height:100%;width:0%;background:var(--color-text);border-radius:2px;transition:width .3s ease-out}.debug-preview{display:none;position:fixed;bottom:24px;bottom:calc(24px + env(safe-area-inset-bottom,0px));left:24px;left:calc(24px + env(safe-area-inset-left,0px));max-width:300px;background:var(--color-surface);border:2px solid #374151;border-radius:var(--radius-md);box-shadow:0 4px 16px #00000026;z-index:150;overflow:hidden;transition:border-color .2s ease}.debug-preview.visible{display:block}.debug-preview.preview-sent{border-color:#ff6b6b}.debug-preview.preview-generated{border-color:#4ecdc4}.debug-preview.preview-mask{border-color:#a855f7}.debug-preview.preview-smoothed_mask{border-color:#f59e0b}.debug-preview-header{padding:8px 12px;background:#374151}.debug-preview-header select{width:100%;background:transparent;border:none;color:#fff;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;cursor:pointer;outline:none}.debug-preview-header select option{background:#374151;color:#fff}.debug-preview img{width:100%;height:auto;display:block}.debug-preview img:not([src]),.debug-preview img[src=""]{display:none}.panel-overlay{position:absolute;pointer-events:none;overflow:hidden;border-radius:4px}.panel-overlay.shimmer{background:linear-gradient(90deg,#ffffff14,#fff3,#ffffff14);background-size:200% 100%;animation:overlay-shimmer 1.8s infinite;border:1px solid rgba(255,255,255,.3)}@keyframes overlay-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.panel-overlay img{width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .5s ease-in-out}.panel-overlay.fade-in img{opacity:1}.download-overlay-btn{position:absolute;bottom:12px;right:12px;display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 16px;background:#ffffffeb;border:none;border-radius:var(--radius-sm);color:var(--color-text);font-size:13px;font-weight:500;cursor:pointer;opacity:0;transform:translateY(4px);transition:all .15s ease;box-shadow:var(--shadow-sm);z-index:10;pointer-events:auto}.panel-overlay.fade-in~.download-overlay-btn,.preview-container:has(.panel-overlay.fade-in) .download-overlay-btn{opacity:1;transform:translateY(0);pointer-events:auto}.download-overlay-btn:hover{background:var(--color-accent);color:#fff}.onboarding-cursor{position:absolute;width:35px;transform-origin:top left;height:35px;pointer-events:none;z-index:50;opacity:0;margin-left:-5px;margin-top:-3px;transition:left .6s cubic-bezier(.4,0,.2,1),top .6s cubic-bezier(.4,0,.2,1),opacity .3s ease;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3))}.onboarding-cursor.visible{opacity:1}.onboarding-cursor.clicking{animation:cursor-click .25s ease-out}@keyframes cursor-click{0%{transform:scale(1)}50%{transform:scale(.85)}to{transform:scale(1)}}.version-selector{position:absolute;display:flex;align-items:center;gap:10px;padding:6px 10px;background:#ffffffeb;border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:20;opacity:0;transform:translate(-50%) translateY(4px);transition:all .2s ease}.version-selector.visible{opacity:1;transform:translate(-50%) translateY(0)}.version-buttons{display:flex;gap:2px}.version-btn{width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:1px solid var(--color-border);background:transparent;border-radius:var(--radius-sm);font-size:12px;font-weight:600;color:var(--color-text-secondary);cursor:pointer;transition:all .15s ease}.version-btn:hover{border-color:var(--color-text-secondary);color:var(--color-text)}.version-btn.active{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.version-btn:active{transform:scale(.95)}.version-confirm-btn{padding:6px 14px;background:var(--color-accent);color:#fff;border:none;border-radius:var(--radius-sm);font-size:12px;font-weight:500;cursor:pointer;transition:all .15s ease}.version-confirm-btn:hover{background:var(--color-accent-hover)}.version-confirm-btn:active{transform:scale(.98)}
