:root{--bg:#fafafa;--fg:#111113;--muted:#5d5e66;--subtle:#8b8c94;--surface:#fff;--surface-2:#f1f1f3;--border:#e3e3e8;--border-strong:#c7c8cf;--accent:#2f6df6;--accent-tint:#2f6df614;--focus:#2f6df6;--danger:#c02f28;--checker-a:#fff;--checker-b:#e8e8ec;--shadow:0 1px 2px #1010140f, 0 8px 24px #1010140f;--radius:14px;--radius-lg:24px;--font:ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--gutter:max(20px, env(safe-area-inset-left), env(safe-area-inset-right));--ease:cubic-bezier(.2, .8, .2, 1);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0e0e10;--fg:#f4f4f5;--muted:#a3a3ad;--subtle:#75757f;--surface:#17171a;--surface-2:#202024;--border:#2a2a30;--border-strong:#3c3c44;--accent:#6b95ff;--accent-tint:#6b95ff1a;--focus:#6b95ff;--danger:#ff6b62;--checker-a:#2b2b30;--checker-b:#202024;--shadow:0 1px 2px #0000004d, 0 8px 24px #00000040;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#0e0e10;--fg:#f4f4f5;--muted:#a3a3ad;--subtle:#75757f;--surface:#17171a;--surface-2:#202024;--border:#2a2a30;--border-strong:#3c3c44;--accent:#6b95ff;--accent-tint:#6b95ff1a;--focus:#6b95ff;--danger:#ff6b62;--checker-a:#2b2b30;--checker-b:#202024;--shadow:0 1px 2px #0000004d, 0 8px 24px #00000040;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{min-height:100vh;background:var(--bg);min-height:100dvh;color:var(--fg);font-family:var(--font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;flex-direction:column;margin:0;font-size:1rem;line-height:1.5;display:flex}a{color:inherit}button,input{font:inherit;color:inherit}img,canvas,svg{display:block}[hidden]{display:none!important}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:6px}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip-link{left:var(--gutter);z-index:100;background:var(--fg);color:var(--bg);border-radius:10px;padding:10px 16px;font-weight:600;text-decoration:none;position:absolute;top:-100px}.skip-link:focus{top:12px}.icon{flex:none;width:20px;height:20px}kbd{border:1px solid var(--border-strong);background:var(--surface);min-width:1.6em;font-family:var(--font);text-align:center;color:var(--fg);border-bottom-width:2px;border-radius:6px;padding:1px 6px;font-size:.8125rem;font-weight:600;line-height:1.5;display:inline-block}kbd+kbd{margin-left:3px}.site-header{width:100%;max-width:1200px;padding:max(16px, env(safe-area-inset-top)) var(--gutter) 16px;justify-content:space-between;align-items:center;gap:16px;margin:0 auto;display:flex}.brand{letter-spacing:-.01em;align-items:center;gap:10px;font-size:1.0625rem;font-weight:700;text-decoration:none;display:inline-flex}.brand-mark{width:28px;height:28px;box-shadow:0 0 0 1px var(--border);border-radius:8px}.header-actions{align-items:center;gap:6px;display:flex}.icon-button,.github-link{height:40px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;align-items:center;gap:8px;padding:0 12px;font-size:.9375rem;font-weight:550;text-decoration:none;transition:color .15s,background-color .15s;display:inline-flex}.icon-button{justify-content:center;width:40px;padding:0}.icon-button:hover,.github-link:hover{color:var(--fg);background:var(--surface-2)}.model-chip{border:1px solid var(--border);height:30px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:999px;align-items:center;gap:7px;margin-right:4px;padding:0 11px 0 9px;font-size:.8125rem;font-weight:550;display:inline-flex}.model-chip-indicator{--p:0;background:conic-gradient(var(--accent) calc(var(--p) * 1%), var(--border-strong) 0);border-radius:50%;flex:none;width:12px;height:12px;position:relative}.model-chip-indicator:after{content:"";background:var(--bg);border-radius:50%;position:absolute;inset:2.5px}.model-chip[data-state=preparing] .model-chip-indicator{background:conic-gradient(var(--accent) 0 30%, var(--border-strong) 0);animation:1s linear infinite spin}.model-chip[data-state=ready] .model-chip-indicator,.model-chip[data-state=error] .model-chip-indicator{background:#22a06b;width:8px;height:8px;margin:0 2px}.model-chip[data-state=error] .model-chip-indicator{background:#e5a100}.model-chip[data-state=ready] .model-chip-indicator:after,.model-chip[data-state=error] .model-chip-indicator:after{display:none}.model-chip-retry{color:var(--fg);font:inherit;text-underline-offset:2px;cursor:pointer;background:0 0;border:0;padding:0;font-weight:650;text-decoration:underline}.only-narrow{display:none}@media (max-width:560px){.only-narrow{display:inline}.only-wide{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.github-link{padding:0 10px}}#theme-toggle .icon{display:none}#theme-toggle[data-mode=system] .icon-theme-system,#theme-toggle[data-mode=light] .icon-theme-light,#theme-toggle[data-mode=dark] .icon-theme-dark{display:block}.site-footer{width:100%;max-width:1200px;padding:24px var(--gutter) max(24px, env(safe-area-inset-bottom));color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 24px;margin:0 auto;font-size:.875rem;display:flex}.site-footer nav{flex-wrap:wrap;gap:4px 20px;display:flex}.site-footer a{text-decoration:none}.site-footer a:hover{color:var(--fg);text-underline-offset:3px;text-decoration:underline}.footer-model{color:var(--subtle);margin:0}main{width:100%;max-width:1200px;padding:0 var(--gutter);outline:none;flex:1;margin:0 auto}.view-work,html:not([data-view=idle]) .view-idle{display:none}html:not([data-view=idle]) .view-work{animation:fade-in .35s var(--ease);display:flex}@keyframes fade-in{0%{opacity:0;transform:translateY(6px)}}.view-idle{text-align:center;flex-direction:column;align-items:center;padding:clamp(24px,7vh,88px) 0 48px;display:flex}.view-idle h1{letter-spacing:-.035em;text-wrap:balance;max-width:22ch;margin:0 0 clamp(28px,5vh,48px);font-size:clamp(2.25rem,1.3rem + 3.2vw,3.625rem);font-weight:750;line-height:1.04}.dropzone{border:1.5px dashed var(--border-strong);border-radius:var(--radius-lg);background:var(--surface);cursor:pointer;width:min(100%,700px);min-height:clamp(260px,38vh,360px);transition:border-color .2s, background-color .2s, transform .2s var(--ease);flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:40px 24px;display:flex}.dropzone:hover{border-color:var(--subtle)}html.dragging .dropzone{border-color:var(--accent);background:var(--accent-tint);transform:scale(1.01)}.dropzone-icon{width:44px;height:44px;color:var(--subtle);margin-bottom:4px}.dropzone-title{letter-spacing:-.01em;margin:0;font-size:1.25rem;font-weight:650}.dropzone-or{color:var(--muted);margin:-2px 0 2px;font-size:.9375rem}.dropzone-paste{color:var(--muted);align-items:center;gap:6px;margin:8px 0 0;font-size:.9375rem;display:flex}.dropzone-formats{color:var(--subtle);margin:0;font-size:.8125rem}.trust{color:var(--muted);flex-wrap:wrap;justify-content:center;margin:28px 0 0;padding:0;font-size:.9375rem;font-weight:550;list-style:none;display:flex}.trust li+li:before{content:"·";color:var(--subtle);margin:0 10px}.privacy-promise{color:var(--fg);align-items:center;gap:8px;margin:10px 0 0;font-size:.9375rem;font-weight:600;display:inline-flex}.privacy-promise .icon{width:18px;height:18px;color:var(--accent)}@media (hover:none) and (pointer:coarse){.only-pointer{display:none!important}}@media not ((hover:none) and (pointer:coarse)){.only-touch{display:none!important}}.button{cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;min-height:44px;transition:background-color .15s, border-color .15s, opacity .15s, transform .15s var(--ease);border:1px solid #0000;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:0 18px;font-size:.9375rem;font-weight:600;line-height:1.2;text-decoration:none;display:inline-flex}.button:active{transform:scale(.98)}.button-large{border-radius:14px;min-height:52px;padding:0 28px;font-size:1.0625rem}.button-block{width:100%}.button-primary{background:var(--fg);color:var(--bg)}.button-primary:hover{opacity:.88}.button-secondary{background:var(--surface);border-color:var(--border);color:var(--fg)}.button-secondary:hover{border-color:var(--border-strong);background:var(--surface-2)}.button-quiet{min-height:36px;color:var(--muted);background:0 0;padding:0 4px;font-weight:550}.button-quiet:hover{color:var(--fg);text-underline-offset:3px;text-decoration:underline}.button[aria-disabled=true]{opacity:.55;cursor:progress;transform:none}.view-work{flex-direction:column;align-items:center;gap:24px;padding:4px 0 32px}.stage{justify-content:center;width:100%;min-width:0;display:flex}.frame{--split:100;--ar:1.3333;width:min(100%, 1000px, calc(max(260px, 100vh - 300px) * var(--ar)));width:min(100%, 1000px, calc(max(260px, 100dvh - 300px) * var(--ar)));aspect-ratio:var(--ar);background:var(--surface-2);box-shadow:var(--shadow);touch-action:pan-y;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border-radius:18px;position:relative;overflow:hidden}.layer{position:absolute;inset:0}.layer img,.layer canvas{pointer-events:none;-webkit-user-drag:none;-webkit-user-select:none;user-select:none;object-fit:contain;width:100%;height:100%}.layer-original{clip-path:inset(0 calc((100 - var(--split)) * 1%) 0 0)}.layer-result{clip-path:inset(0 0 0 calc(var(--split) * 1%));background-color:var(--checker-a);background-image:conic-gradient(var(--checker-b) 25%, transparent 0 50%, var(--checker-b) 0 75%, transparent 0);background-size:20px 20px}.frame[data-bg=white] .layer-result{background:#fff}.frame[data-bg=black] .layer-result{background:#000}.frame[data-bg=custom] .layer-result{background:var(--custom-bg,#3d7eff)}html:not([data-view=complete]) .layer-result{visibility:hidden}.divider{top:0;bottom:0;left:calc(var(--split) * 1%);pointer-events:none;opacity:0;background:#fff;width:2px;margin-left:-1px;transition:opacity .2s;position:absolute;box-shadow:0 0 0 1px #0000001f,0 0 12px #0003}html[data-view=complete] .divider{opacity:1}.divider-knob{top:50%;left:clamp(24px, calc(var(--split) * 1%), calc(100% - 24px));pointer-events:none;opacity:0;background:#fff;border-radius:50%;width:40px;height:40px;transition:opacity .2s;position:absolute;transform:translate(-50%,-50%);box-shadow:0 2px 10px #00000040}html[data-view=complete] .divider-knob{opacity:1}.divider-knob:before,.divider-knob:after{content:"";border:5px solid #0000;width:0;height:0;margin-top:-5px;position:absolute;top:50%}.divider-knob:before{border-right:6px solid #28282c;left:6px}.divider-knob:after{border-left:6px solid #28282c;right:6px}.compare-range:focus-visible~.divider-knob{outline:3px solid var(--focus);outline-offset:2px}html[data-view=complete] .frame{cursor:ew-resize}.compare-hint{color:#fff;pointer-events:none;opacity:0;background:#111113b8;border-radius:999px;padding:6px 12px;font-size:.8125rem;font-weight:600;transition:opacity .3s;position:absolute;bottom:14px;left:50%;transform:translate(-50%)}html[data-view=complete] .frame[data-hint=true] .compare-hint{opacity:1}.scan{pointer-events:none;opacity:0;background:linear-gradient(100deg,#0000 30%,#ffffff38 45%,#ffffff52 50%,#ffffff38 55%,#0000 70%) 0 0/250% 100%;transition:opacity .3s;position:absolute;inset:0}html[data-view=loading-model] .scan,html[data-view=processing] .scan,html[data-view=loading-image] .scan{opacity:1;animation:2.2s linear infinite sweep}html[data-view=loading-model] .layer-original,html[data-view=processing] .layer-original{filter:saturate(.85)brightness(.97)}@keyframes sweep{0%{background-position:125% 0}to{background-position:-125% 0}}.panel{justify-content:center;width:min(100%,760px);min-width:0;display:flex}.status,.result,.error{display:none}html[data-view=loading-image] .status,html[data-view=loading-model] .status,html[data-view=processing] .status,html[data-view=complete] .result,html[data-view=error] .error{display:flex}.status{text-align:center;flex-direction:column;align-items:center;gap:12px;width:min(100%,420px)}.status-line{align-items:center;gap:10px;font-weight:600;display:flex}.spinner{border:2px solid var(--border-strong);border-top-color:var(--fg);border-radius:50%;flex:none;width:18px;height:18px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.progress{background:var(--surface-2);border-radius:999px;width:100%;height:4px;position:relative;overflow:hidden}.progress-bar{width:calc(var(--progress,0) * 100%);border-radius:inherit;background:var(--accent);transition:width .2s linear;position:absolute;inset:0 auto 0 0}.progress[data-indeterminate=true] .progress-bar{width:35%;animation:indeterminate 1.4s var(--ease) infinite}@keyframes indeterminate{0%{transform:translate(-100%)}to{transform:translate(290%)}}.status-hint{color:var(--muted);margin:0;font-size:.875rem}.result{flex-direction:column;align-items:center;gap:16px;width:100%}.result-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.result-options{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px 18px;display:flex}.result-meta{color:var(--subtle);font-variant-numeric:tabular-nums;margin:-4px 0 0;font-size:.8125rem}.result-note{background:var(--surface-2);max-width:60ch;color:var(--muted);text-align:center;border-radius:10px;margin:0;padding:10px 14px;font-size:.8125rem}.bg-picker{align-items:center;gap:10px;display:flex}.bg-label{color:var(--muted);margin-right:2px;font-size:.875rem;font-weight:600}.swatch{cursor:pointer;position:relative}.swatch input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.swatch-chip{border:1px solid var(--border-strong);border-radius:50%;width:30px;height:30px;transition:box-shadow .15s;display:block}.swatch input:checked+.swatch-chip{box-shadow:0 0 0 3px var(--bg), 0 0 0 5px var(--fg)}.swatch input:focus-visible+.swatch-chip{outline:3px solid var(--focus);outline-offset:5px}.swatch-transparent .swatch-chip{background-color:#fff;background-image:conic-gradient(#d9d9de 25%, transparent 0 50%, #d9d9de 0 75%, transparent 0);background-size:10px 10px}.swatch-white .swatch-chip{background:#fff}.swatch-black .swatch-chip{background:#000}.swatch-custom .swatch-chip{background:conic-gradient(#ff5b5b,#ffcf4a,#5bd87a,#4ab7ff,#8b6bff,#ff5bd1,#ff5b5b)}.color-input{border:1px solid var(--border-strong);cursor:pointer;background:0 0;border-radius:8px;width:30px;height:30px;padding:0}.error{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);text-align:center;outline:none;flex-direction:column;align-items:center;gap:10px;width:min(100%,480px);padding:22px}.error-title{color:var(--danger);letter-spacing:-.01em;margin:0;font-size:1.125rem;font-weight:700}.error-text{color:var(--muted);margin:0}.error-actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:6px;display:flex}@media (max-width:560px){.result-actions{grid-template-columns:1fr 1fr;width:100%;display:grid}.result-actions #download-link{grid-column:1/-1}.result-actions .button{padding:0 12px}}.drop-overlay{z-index:50;opacity:0;visibility:hidden;pointer-events:none;background:#fafafaf2;padding:16px;transition:opacity .18s,visibility 0s .18s;display:flex;position:fixed;inset:0}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .drop-overlay{background:#0e0e10f2}}:root[data-theme=dark] .drop-overlay{background:#0e0e10f2}html.dragging .drop-overlay{opacity:1;visibility:visible;transition:opacity .18s}.drop-overlay-inner{border:2px dashed var(--accent);color:var(--fg);letter-spacing:-.02em;border-radius:28px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;font-size:clamp(1.25rem,1rem + 1.2vw,1.75rem);font-weight:700;display:flex}.drop-overlay-inner p{margin:0}.drop-overlay .dropzone-icon{width:52px;height:52px;color:var(--accent)}.toast{left:50%;bottom:max(24px, env(safe-area-inset-bottom));z-index:60;background:var(--fg);max-width:min(92vw,460px);color:var(--bg);box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:opacity .2s, transform .2s var(--ease);border-radius:12px;padding:12px 18px;font-size:.9375rem;font-weight:550;position:fixed;transform:translate(-50%,12px)}.toast.visible{opacity:1;transform:translate(-50%)}.prose{max-width:68ch;margin:0 auto;padding:24px 0 48px}.prose h1{letter-spacing:-.03em;margin:0 0 20px;font-size:clamp(2rem,1.5rem + 2vw,2.75rem);font-weight:750;line-height:1.1}.prose h2{letter-spacing:-.01em;margin:32px 0 8px;font-size:1.1875rem}.prose p,.prose li{color:var(--muted)}.prose strong{color:var(--fg)}.prose code{font-family:var(--mono);font-size:.875em}.prose a{color:var(--fg);text-underline-offset:3px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.scan{display:none}.spinner{border-top-color:var(--border-strong);animation:none}.progress[data-indeterminate=true] .progress-bar{opacity:.35;width:100%;transform:none}}.view-work:has(>.stage[hidden]){padding-top:clamp(24px,8vh,96px)}@media (max-width:420px){.trust{font-size:.875rem}.trust li+li:before{margin:0 6px}}
