*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--brand:#4a8add;--brand-dark:#4f37c8;--brand-light:#ede9ff;--brand-muted:#f3f0ff;--bg:#f5f5f8;--surface:#fff;--border:#e4e4ec;--border-focus:#7db7df;--text-primary:#111118;--text-secondary:#6b6b80;--text-muted:#a0a0b4;--green-bg:#edfaf3;--green-fg:#1a8a55;--red-bg:#fef0f0;--red-fg:#c0392b;--shadow-sm:0 1px 3px #00000012, 0 1px 2px #0000000a;--shadow-md:0 4px 16px #00000014, 0 1px 4px #0000000a;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--nav-h:70px}body.dark{--brand:#6aa3f0;--brand-dark:#7c6ef5;--brand-light:#1e1a3a;--brand-muted:#16142a;--bg:#0e0e14;--surface:#17171f;--border:#2a2a38;--border-focus:#4a7abf;--text-primary:#e8e8f0;--text-secondary:#8888a8;--text-muted:#55556a;--green-bg:#0d2118;--green-fg:#4ade80;--red-bg:#200e0e;--red-fg:#f87171;--shadow-sm:0 1px 3px #0006, 0 1px 2px #0000004d;--shadow-md:0 4px 16px #00000080, 0 1px 4px #0000004d}body{font-optical-sizing:auto;background:var(--bg);color:var(--text-primary);min-height:100vh;font-family:Roboto,sans-serif;line-height:1.5;transition:background .4s,color .4s}#darkOverlay{pointer-events:none;opacity:0;z-index:9999;background:#0e0e14;position:fixed;inset:0}nav{border-bottom:1px solid var(--border);height:var(--nav-h);z-index:100;background:#ffffffed;justify-content:space-between;align-items:center;padding:0 clamp(16px,4vw,40px);transition:background .4s,border-color .4s;display:flex;position:sticky;top:0}body.dark nav{background:#17171ff2}.logo img{width:auto;height:40px;display:block}.logo:hover{opacity:.82}.nav-pills{background:var(--bg);border:1px solid var(--border);border-radius:10px;gap:3px;padding:3px;transition:background .4s,border-color .4s;display:flex}.nav-tab{cursor:pointer;color:var(--text-secondary);white-space:nowrap;background:0 0;border:none;border-radius:7px;padding:6px 18px;font-family:DM Sans,-apple-system,sans-serif;font-size:13px;font-weight:600;text-decoration:none;transition:all .18s;display:block}.nav-tab.active{background:var(--surface);color:var(--brand);box-shadow:var(--shadow-sm)}.nav-tab:hover:not(.active){color:var(--text-primary);background:#fff9}body.dark .nav-tab:hover:not(.active){background:#ffffff0d}.theme-btn{border:1px solid var(--border);background:var(--surface);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;transition:border-color .2s,background .2s,box-shadow .2s;display:flex;position:relative;overflow:hidden}.theme-btn:hover{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-light)}.theme-icon{width:20px;height:20px;color:var(--text-secondary);justify-content:center;align-items:center;display:flex;position:absolute}.theme-icon svg{width:18px;height:18px}.theme-icon--sun{opacity:1;transform:rotate(0)scale(1)}.theme-icon--moon{opacity:0;transform:rotate(90deg)scale(.5)}body.dark .theme-icon--sun{opacity:0}body.dark .theme-icon--moon{opacity:1}.page{display:none}.page.active{display:block;overflow:hidden}main{max-width:900px;margin:0 auto;padding:clamp(24px,5vw,48px) clamp(16px,4vw,32px);overflow:hidden}.page-header{margin-bottom:28px}.page-header h1{color:var(--text-primary);letter-spacing:-.03em;margin-bottom:6px;font-size:clamp(22px,4vw,28px);font-weight:700;line-height:1.2}.page-header p{color:var(--text-secondary);max-width:540px;font-size:14px;line-height:1.6}.opt-hero{grid-template-columns:1fr 1fr;align-items:center;gap:32px;min-height:340px;margin-bottom:28px;display:grid}.opt-hero-left{flex-direction:column;justify-content:center;align-items:center;gap:24px;display:flex}.opt-hero-left .page-header{text-align:center;margin-bottom:0}.opt-hero-left .page-header p{max-width:320px;margin:0 auto}.opt-hero-right .dropzone{height:100%;min-height:300px}#frame3d-wrapper{perspective:900px;perspective-origin:50% 40%;-webkit-user-select:none;user-select:none;flex-direction:column;justify-content:center;align-items:center;width:100%;padding:16px 0 40px;display:flex;position:relative}#frame3d-scene{width:200px;height:200px;transform-style:preserve-3d;cursor:grab;position:relative}#f3d-hint{color:var(--text-muted);letter-spacing:.04em;pointer-events:none;white-space:nowrap;text-align:center;margin-top:12px;font-size:11px;font-weight:600;transition:opacity .5s}.dropzone{background:var(--surface);border:2px dashed var(--border);border-radius:var(--radius-lg);text-align:center;cursor:pointer;box-shadow:var(--shadow-sm);flex-direction:column;justify-content:center;align-items:center;padding:clamp(48px,8vw,80px) 24px;transition:border-color .2s,background .2s,transform .15s,box-shadow .2s;display:flex;position:relative;overflow:hidden}.dropzone:hover{border-color:var(--border-focus);background:var(--brand-muted);box-shadow:var(--shadow-md);transform:translateY(-1px)}.dropzone.drag-over{border-color:var(--brand);background:var(--brand-muted);transform:scale(1.01);box-shadow:0 0 0 4px #4a8add2e}.dropzone input[type=file]{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.drop-icon-wrap{background:var(--brand-light);border-radius:18px;justify-content:center;align-items:center;width:64px;height:64px;margin-bottom:20px;transition:transform .2s,background .4s;display:flex}.dropzone:hover .drop-icon-wrap,.dropzone.drag-over .drop-icon-wrap{transform:scale(1.08)}.drop-icon-wrap svg{width:30px;height:30px;stroke:var(--brand);fill:none;stroke-width:1.6px}.drop-title{color:var(--text-primary);letter-spacing:-.01em;margin-bottom:6px;font-size:17px;font-weight:700}.drop-hint{color:var(--text-muted);letter-spacing:.01em;font-family:DM Mono,monospace;font-size:13px}.drop-cta{background:var(--brand-light);color:var(--brand);pointer-events:none;border-radius:20px;margin-top:18px;padding:5px 14px;font-size:12.5px;font-weight:600;transition:background .4s,color .4s;display:inline-block}.shimmer-bar{pointer-events:none;background:linear-gradient(90deg,#0000,#ffffff59,#0000);width:55%;height:100%;position:absolute;top:0;left:-100%}body.dark .shimmer-bar{background:linear-gradient(90deg,#0000,#ffffff12,#0000)}.image-list{flex-direction:column;gap:10px;margin-top:20px;display:flex}.image-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);align-items:center;gap:12px;padding:12px 14px;transition:box-shadow .15s,background .4s,border-color .4s,opacity .2s;display:flex}.image-card:hover{box-shadow:var(--shadow-md)}.image-thumb{object-fit:cover;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--bg);flex-shrink:0;width:48px;height:48px}.image-info{flex:1;min-width:0}.image-name{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;letter-spacing:-.01em;font-size:13.5px;font-weight:600;overflow:hidden}.image-meta{flex-wrap:wrap;align-items:center;gap:8px;margin-top:3px;display:flex}.image-size{color:var(--text-muted);font-family:DM Mono,monospace;font-size:11.5px}.badge{letter-spacing:.01em;border-radius:20px;flex-shrink:0;padding:2px 9px;font-size:11px;font-weight:600;transition:background .4s,color .4s}.badge-pending{background:var(--bg);color:var(--text-muted);border:1px solid var(--border)}.badge-done{background:var(--green-bg);color:var(--green-fg)}.badge-error{background:var(--red-bg);color:var(--red-fg)}.badge-processing{background:var(--brand-light);color:var(--brand);animation:1s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.remove-btn{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:20px;line-height:1;transition:background .15s,color .15s;display:flex}.remove-btn:hover{background:var(--red-bg);color:var(--red-fg)}.seo-section{border-top:1px solid var(--border);gap:8px;width:100%;margin-top:10px;padding-top:10px;display:grid}.seo-field{flex-direction:column;gap:2px;display:flex}.seo-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-size:10px;font-weight:700}.seo-value{color:var(--text-primary);background:var(--bg);word-break:break-word;cursor:pointer;border-radius:6px;justify-content:space-between;align-items:flex-start;gap:6px;padding:5px 8px;font-family:DM Mono,monospace;font-size:12.5px;transition:background .15s;display:flex}.seo-value:hover{background:var(--brand-light)}.seo-copy{color:var(--brand);flex-shrink:0;font-family:DM Sans,sans-serif;font-size:10px;font-weight:700}.actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:20px;display:flex}.quality-control{color:var(--text-secondary);align-items:center;gap:8px;margin-left:auto;font-size:12.5px;display:flex}.quality-control input[type=range]{accent-color:var(--brand);width:80px}.quality-control strong{color:var(--brand);text-align:right;min-width:30px}.btn{border-radius:var(--radius-sm);cursor:pointer;letter-spacing:-.01em;white-space:nowrap;border:none;align-items:center;gap:7px;padding:10px 22px;font-family:DM Sans,-apple-system,sans-serif;font-size:14px;font-weight:600;transition:all .15s;display:inline-flex;position:relative;overflow:hidden}.btn svg{stroke:currentColor;fill:none;stroke-width:2.2px;width:15px;height:15px}.btn-primary{background:var(--brand);color:#fff;box-shadow:0 2px 8px #4a8add59}.btn-primary:hover{background:var(--brand-dark);transform:translateY(-1px);box-shadow:0 4px 14px #4a8add66}.btn-primary:active{transform:scale(.97)}.btn-primary:disabled{background:var(--brand-light);color:var(--brand);box-shadow:none;cursor:not-allowed;transform:none}.btn-ghost{background:var(--surface);color:var(--text-secondary);border:1px solid var(--border);box-shadow:var(--shadow-sm)}.btn-ghost:hover{background:var(--bg);color:var(--text-primary)}.btn-full{justify-content:center;width:100%;padding:12px;font-size:15px}.file-counter{color:var(--brand);background:var(--brand-light);border-radius:20px;align-items:center;gap:6px;margin-bottom:14px;padding:4px 12px;font-size:12.5px;font-weight:600;transition:background .4s,color .4s;display:inline-flex}.file-counter svg{width:13px;height:13px;stroke:var(--brand);fill:none;stroke-width:2px}.progress-bar-wrap{background:var(--border);border-radius:2px;height:3px;margin-top:14px;overflow:hidden}.progress-bar{background:var(--brand);border-radius:2px;width:0%;height:100%;transition:width .3s}.editor-layout{grid-template-columns:1fr 1fr;align-items:start;gap:20px;display:grid}.editor-left{flex-direction:column;gap:16px;display:flex}.editor-picker{background:var(--surface);border:2px dashed var(--border);border-radius:var(--radius-lg);text-align:center;cursor:pointer;box-shadow:var(--shadow-sm);flex-direction:column;justify-content:center;align-items:center;min-height:200px;padding:48px 24px;transition:border-color .2s,background .2s;display:flex;position:relative}.editor-picker:hover{border-color:var(--border-focus);background:var(--brand-muted)}.editor-picker.has-image{border-style:solid;padding:0;overflow:hidden}.editor-picker input[type=file]{opacity:0;cursor:pointer;width:100%;height:100%;position:absolute;inset:0}.editor-picker img{object-fit:cover;border-radius:calc(var(--radius-lg) - 2px);width:100%;height:240px;display:block}.picker-icon{margin-bottom:14px;font-size:42px}.picker-title{color:var(--text-primary);margin-bottom:4px;font-size:16px;font-weight:700}.picker-hint{color:var(--text-muted);font-size:13px}.presets-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:18px;transition:background .4s,border-color .4s}.presets-label{color:var(--text-secondary);letter-spacing:.04em;text-transform:uppercase;margin-bottom:12px;font-size:12px;font-weight:700}.presets-list{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.preset-chip{background:var(--surface);border:1px solid var(--border);color:var(--brand);cursor:pointer;border-radius:20px;padding:5px 13px;font-family:DM Sans,-apple-system,sans-serif;font-size:12.5px;font-weight:600;transition:all .15s;position:relative;overflow:hidden}.preset-chip:hover,.preset-chip.active{background:var(--brand-light);border-color:var(--brand-light);color:var(--brand-dark)}.prompt-textarea{resize:vertical;border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;min-height:100px;color:var(--text-primary);background:var(--bg);outline:none;margin-bottom:12px;padding:12px 14px;font-family:DM Sans,-apple-system,sans-serif;font-size:13.5px;line-height:1.5;transition:border-color .15s,box-shadow .15s,background .4s,color .4s}.prompt-textarea:focus{border-color:var(--border-focus);background:var(--surface);box-shadow:0 0 0 3px #4a8add1a}.prompt-textarea::placeholder{color:var(--text-muted)}.editor-result{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:420px;padding:32px 24px;transition:background .4s,border-color .4s;display:flex;position:relative;overflow:hidden}.result-placeholder{color:var(--text-muted);font-size:14px}.result-image-wrap{width:100%}.result-image-wrap img{border-radius:calc(var(--radius-lg) - 2px);width:100%;display:block}.result-meta{text-align:left;flex-direction:column;gap:8px;width:100%;margin-top:16px;display:flex}.result-meta-row{flex-direction:column;gap:3px;display:flex}.result-meta-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-size:10.5px;font-weight:700}.result-meta-value{color:var(--text-primary);background:var(--bg);word-break:break-word;border-radius:6px;padding:7px 10px;font-family:DM Mono,monospace;font-size:13px;transition:background .4s,color .4s}.result-loading{border-radius:var(--radius-lg);background:#ffffffd9;flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex;position:absolute;inset:0}body.dark .result-loading{background:#17171fe6}.spinner{border:3px solid var(--brand-light);border-top-color:var(--brand);border-radius:50%;width:36px;height:36px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.result-loading p{color:var(--brand);font-size:13px;font-weight:600}.result-actions{justify-content:center;gap:8px;width:100%;margin-top:16px;display:flex}.hidden{display:none!important}.scroll-progress{transform-origin:0;background:linear-gradient(90deg, var(--brand), var(--brand-dark));z-index:9998;pointer-events:none;width:100%;height:3px;position:fixed;top:0;left:0;transform:scaleX(0)}.magnetic-glow{opacity:0;pointer-events:none;z-index:0;mix-blend-mode:multiply;background:radial-gradient(circle,#4a8add38,#0000 68%);border-radius:50%;width:180px;height:180px;position:absolute;top:-90px;left:-90px}body.dark .magnetic-glow{mix-blend-mode:screen;background:radial-gradient(circle,#6aa3f03d,#0000 68%)}.dropzone>:not(.magnetic-glow),.editor-picker>:not(.magnetic-glow){z-index:1;position:relative}.btn,.preset-chip,.nav-tab{position:relative;overflow:hidden}.btn-sweep{opacity:0;pointer-events:none;z-index:2;background:linear-gradient(90deg,#0000,#4a8add14,#4a8add61,#ffffffa6,#4a8add47,#0000);width:42%;height:170%;position:absolute;top:-35%;left:0;transform:translate(-160%)rotate(18deg)}.btn-primary .btn-sweep{background:linear-gradient(90deg,#0000,#ffffff2e,#ffffffb8,#fff3,#0000)}body.dark .btn-sweep{background:linear-gradient(90deg,#0000,#ffffff1a,#ffffff4d,#6aa3f059,#0000)}.toast-stack{top:calc(var(--nav-h) + 14px);z-index:9997;pointer-events:none;flex-direction:column;gap:8px;display:flex;position:fixed;right:clamp(14px,4vw,28px)}.toast{background:var(--surface);max-width:min(360px,100vw - 28px);color:var(--text-primary);border:1px solid var(--border);border-left:3px solid var(--green-fg);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);align-items:center;gap:9px;padding:10px 13px;font-size:13px;font-weight:600;display:inline-flex}.toast-dot{background:var(--green-fg);width:8px;height:8px;box-shadow:0 0 0 4px var(--green-bg);border-radius:50%;flex-shrink:0}.confetti-piece{pointer-events:none;z-index:10001;border-radius:2px;width:9px;height:12px;position:fixed;box-shadow:0 2px 8px #0000002e}.compare-wrap{border-radius:calc(var(--radius-lg) - 2px);background:var(--bg);-webkit-user-select:none;user-select:none;cursor:ew-resize;width:100%;box-shadow:inset 0 0 0 1px var(--border);position:relative;overflow:hidden}.compare-wrap img{pointer-events:none;width:100%;height:auto;display:block}.compare-after{width:50%;position:absolute;inset:0;overflow:hidden}.compare-after img{object-fit:cover;filter:saturate(1.18)contrast(1.06)brightness(1.03);width:100%;height:100%}.compare-line{pointer-events:none;background:#fff;width:2px;position:absolute;top:0;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 0 0 1px #00000014,0 0 18px #4a8add73}.compare-handle{background:var(--surface);border:1px solid var(--border);width:38px;height:38px;box-shadow:var(--shadow-md);pointer-events:none;border-radius:50%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.compare-handle:before,.compare-handle:after{content:"";border-top:2px solid var(--brand);border-left:2px solid var(--brand);width:7px;height:7px;position:absolute;top:50%}.compare-handle:before{left:10px;transform:translateY(-50%)rotate(-45deg)}.compare-handle:after{right:10px;transform:translateY(-50%)rotate(135deg)}.compare-label{color:#fff;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:none;background:#111118b8;border-radius:999px;padding:4px 9px;font-size:11px;font-weight:700;position:absolute;top:10px}.compare-label-before{left:10px}.compare-label-after{right:10px}.reveal{opacity:0;will-change:transform, opacity;transform:translateY(24px)}@media (width<=680px){.editor-layout{grid-template-columns:1fr}.editor-result{min-height:260px}.opt-hero{grid-template-columns:1fr;min-height:auto}.opt-hero-left{order:2}.opt-hero-right{order:1}#frame3d-scene{width:160px;height:160px}}@media (width<=500px){.nav-tab{padding:6px 11px;font-size:12px}.logo img{height:32px}.image-card{gap:10px;padding:10px 12px}.image-thumb{width:42px;height:42px}.badge{display:none}.image-card.done{border-left:3px solid var(--green-fg)}.image-card.error{border-left:3px solid var(--red-fg)}.actions{flex-direction:column}.btn{justify-content:center;width:100%}.drop-cta{display:none}.presets-list{gap:6px}.preset-chip{padding:4px 11px;font-size:12px}}@media (width>=501px) and (width<=768px){.image-thumb{width:44px;height:44px}}
