:root{color-scheme:light dark;--bg:#101216;--panel:#191c22;--panel-2:#22262e;--line:#2c313b;--dot:#3a404c;--explored:#7a3350;--ink:#eef0f4;--muted:#8c94a0;--accent:#ff4878;--accent-ink:#ff6b92;--on-accent:#101216;--good:#78dca0;--focus:#ffd1de;--sans:"Avenir Next", Avenir, "Segoe UI Variable Text", "Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", sans-serif;--mono:Menlo, ui-monospace, "SF Mono", "Cascadia Mono", Consolas, "Roboto Mono", monospace;--gutter:16px;--radius:14px;--radius-sm:9px;--hit:44px;--max:1180px}@media (prefers-color-scheme:light){:root{--bg:#f3f2ef;--panel:#fff;--panel-2:#e9e7e3;--line:#d9d6d0;--dot:#c4c7ce;--explored:#f0bccd;--ink:#101216;--muted:#5d6470;--accent:#e8235c;--accent-ink:#c4114a;--on-accent:#fff;--good:#1c8a52;--focus:#101216}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;flex-direction:column;min-height:100dvh;margin:0;font-size:17px;line-height:1.55;display:flex}main{flex:1}img,svg,canvas,video{max-width:100%;display:block}a{color:inherit;text-decoration-color:color-mix(in srgb, var(--accent) 70%, transparent);text-underline-offset:3px;text-decoration-thickness:1.5px}a:hover{color:var(--accent-ink)}:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:6px}button,input,select{font:inherit;color:inherit}h1,h2,h3{letter-spacing:-.015em;text-wrap:balance;margin:0;line-height:1.12}p{text-wrap:pretty}.wrap{width:100%;max-width:var(--max);padding-inline:var(--gutter);margin-inline:auto}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.mono{font-family:var(--mono);font-feature-settings:"tnum"}.kicker{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent-ink);margin:0;font-size:12px}.site-head{border-bottom:1px solid var(--line)}.site-head .wrap{justify-content:space-between;align-items:center;gap:12px;height:52px;display:flex}.brand{letter-spacing:-.01em;min-height:var(--hit);align-items:center;gap:10px;font-weight:600;text-decoration:none;display:inline-flex}.brand svg{border-radius:7px;width:28px;height:28px}.brand b{font-weight:700}.brand span{color:var(--muted);font-weight:500}.head-link{font-family:var(--mono);color:var(--muted);min-height:var(--hit);align-items:center;padding-inline:4px;font-size:13px;text-decoration:none;display:inline-flex}.head-link:hover{color:var(--ink)}.site-foot{border-top:1px solid var(--line);color:var(--muted);margin-top:64px;font-size:14px}.site-foot .wrap{gap:14px;padding-block:28px 40px;display:grid}.site-foot nav{flex-wrap:wrap;gap:4px 18px;display:flex}.site-foot a{color:var(--ink);min-height:var(--hit);align-items:center;text-decoration:none;display:inline-flex}.site-foot a:hover{color:var(--accent-ink)}.site-foot p{margin:0}.btn{appearance:none;border:1px solid var(--line);background:var(--panel);min-height:48px;color:var(--ink);letter-spacing:-.005em;cursor:pointer;-webkit-tap-highlight-color:transparent;user-select:none;border-radius:999px;justify-content:center;align-items:center;gap:10px;padding:0 20px;font-size:16px;font-weight:600;text-decoration:none;transition:background-color .15s,border-color .15s,transform .1s;display:inline-flex}.btn:hover{border-color:var(--muted);color:var(--ink)}.btn:active{transform:scale(.98)}.btn[disabled]{opacity:.45;cursor:not-allowed;transform:none}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn-primary:hover{background:var(--accent-ink);border-color:var(--accent-ink);color:var(--on-accent)}.btn svg{flex:none;width:20px;height:20px}.dots-bg{background-image:radial-gradient(circle at center, var(--dot) 1.4px, transparent 1.6px);background-position:9px 9px;background-size:18px 18px}.hero{padding-block:36px 28px;position:relative}.hero h1{max-width:14ch;margin-top:14px;font-size:clamp(34px,9vw,64px);font-weight:700}.hero h1 em{color:var(--accent);font-style:normal}.hero p.lede{color:var(--muted);max-width:46ch;margin:16px 0 0;font-size:clamp(17px,2.2vw,20px)}.hero .privacy-pill{margin-top:22px}.hero-art{display:none}@media (width>=900px){.hero{grid-template-columns:1fr 320px;align-items:center;gap:48px;padding-block:72px 48px;display:grid}.hero-art{border-radius:28px;width:320px;height:320px;display:block;overflow:hidden}}.privacy-pill{background:color-mix(in srgb, var(--good) 12%, transparent);color:var(--ink);border-radius:999px;align-items:center;gap:10px;padding:8px 14px 8px 10px;font-size:14px;line-height:1.3;display:inline-flex}.privacy-pill svg{width:18px;height:18px;color:var(--good);flex:none}.tools-head{justify-content:space-between;align-items:baseline;margin:20px 0 14px;display:flex}.tools-head h2{font-size:20px}.tool-grid{grid-template-columns:1fr;gap:12px;margin:0;padding:0;list-style:none;display:grid}@media (width>=560px){.tool-grid{grid-template-columns:1fr 1fr}}@media (width>=960px){.tool-grid{grid-template-columns:repeat(3,1fr);gap:16px}}.tool-card{border-radius:var(--radius);background:var(--panel);border:1px solid var(--line);color:var(--ink);grid-template-columns:104px 1fr;align-items:center;gap:14px;min-height:128px;padding:12px;text-decoration:none;transition:border-color .15s,transform .15s;display:grid;position:relative}.tool-card:hover{border-color:var(--accent);color:var(--ink)}.tool-card .art{border-radius:var(--radius-sm);background:var(--bg);width:104px;height:104px;overflow:hidden}.tool-card h3{font-size:19px;font-weight:700}.tool-card p{color:var(--muted);margin:4px 0 0;font-size:15px;line-height:1.4}.tool-card .num{font-family:var(--mono);color:var(--accent-ink);letter-spacing:.1em;margin-bottom:6px;font-size:11px;display:block}.tool-card .go{width:18px;height:18px;color:var(--muted);position:absolute;bottom:12px;right:14px}.tool-card:hover .go{color:var(--accent)}@media (width>=960px){.tool-card{grid-template-columns:1fr;align-items:start;padding:14px}.tool-card .art{aspect-ratio:1;width:100%;height:auto}}.channel{border-radius:var(--radius);background:var(--panel);border:1px solid var(--line);gap:14px;margin-top:40px;padding:22px;display:grid}.channel h2{font-size:22px}.channel p{color:var(--muted);margin:0}.socials{flex-wrap:wrap;gap:8px;display:flex}@media (width>=760px){.channel{grid-template-columns:1fr auto;align-items:center}}.tool{padding-top:12px}.tool-top{gap:14px;display:grid}.tool-title h1{font-size:28px;font-weight:700}.tool-title p{color:var(--muted);margin:2px 0 0;font-size:15px;line-height:1.35}.tool-title .kicker{margin-bottom:4px}.stage{aspect-ratio:1;border-radius:var(--radius);background-color:var(--panel);contain:layout paint;place-items:center;width:100%;display:grid;position:relative;overflow:hidden}.stage .frame{width:100%;height:100%;position:relative}.stage canvas{object-fit:contain;width:100%;height:100%;position:absolute;inset:0}.stage canvas.result.crisp{image-rendering:pixelated}.stage .placeholder{place-items:center;padding:18%;display:grid;position:absolute;inset:0}.stage .placeholder svg{opacity:.9;width:100%;height:100%}.stage .placeholder-msg{text-align:center;color:var(--muted);padding:0 16px;font-size:14px;position:absolute;bottom:18px;left:0;right:0}.stage[data-state=ready] .placeholder,.stage[data-state=ready] .placeholder-msg{display:none}.stage[data-state=loading] .placeholder-msg:after{content:"…"}.chip{z-index:3;font-family:var(--mono);letter-spacing:.02em;color:#eef0f4;-webkit-backdrop-filter:blur(6px);pointer-events:none;white-space:nowrap;text-overflow:ellipsis;background:#101216c7;border-radius:7px;max-width:calc(100% - 20px);padding:7px 9px;font-size:12px;line-height:1;position:absolute;top:10px;left:10px;overflow:hidden}.chip:empty{display:none}.chip b{color:#ff6b92;font-weight:600}.chip.right{left:auto;right:10px}.progress{z-index:3;background:0 0;height:3px;position:absolute;bottom:0;left:0;right:0}.progress i{background:var(--accent);width:0;height:100%;transition:width .12s linear,opacity .4s .3s;display:block}.progress.done i{opacity:0}.stage[data-view=original] canvas.result{visibility:hidden}.stage[data-view=compare] canvas.result{clip-path:inset(0 0 0 var(--split,50%))}.split-line{top:0;bottom:0;left:var(--split,50%);z-index:2;pointer-events:none;background:#fff;width:2px;margin-left:-1px;display:none;position:absolute;box-shadow:0 0 0 1px #00000040}.split-line:after{content:"";background:#fff;border-radius:50%;width:28px;height:28px;margin:-14px 0 0 -14px;position:absolute;top:50%;left:50%;box-shadow:0 1px 6px #00000059}.split-range{z-index:4;opacity:0;cursor:ew-resize;touch-action:pan-y;width:100%;height:100%;margin:0;display:none;position:absolute;inset:0}.stage[data-view=compare] .split-line,.stage[data-view=compare] .split-range{display:block}.stage[data-view=compare] .split-range:focus-visible+.split-line{outline:2px solid var(--focus)}.chip.tag-o,.chip.tag-r{display:none;top:auto;bottom:12px}.chip.tag-r{left:auto;right:10px}.stage[data-view=compare] .tag-o,.stage[data-view=compare] .tag-r{display:block}.tool-actions{gap:14px;display:grid}.photo-btn{width:100%}.photo-row{gap:8px;display:grid}.photo-note{color:var(--muted);text-align:center;justify-content:center;align-items:center;gap:8px;margin:0;font-size:13px;display:flex}.photo-note svg{width:15px;height:15px;color:var(--good);flex:none}.status{min-height:20px;color:var(--muted);margin:0;font-size:14px}.status.error{color:var(--accent-ink)}.params{border:0;gap:16px;margin:0;padding:0;display:grid}.param{gap:6px;display:grid}.param-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.param label,.param .label{font-size:15px;font-weight:600}.param output{font-family:var(--mono);color:var(--accent-ink);font-feature-settings:"tnum";font-size:14px}input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:var(--hit);cursor:pointer;touch-action:pan-y;background:0 0;margin:0}input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--accent) 0 var(--fill,50%), var(--panel-2) var(--fill,50%) 100%);border-radius:3px;height:6px}input[type=range]::-moz-range-track{background:var(--panel-2);border-radius:3px;height:6px}input[type=range]::-moz-range-progress{background:var(--accent);border-radius:3px;height:6px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--ink);border:4px solid var(--accent);border-radius:50%;width:26px;height:26px;margin-top:-10px;box-shadow:0 1px 4px #0000004d}input[type=range]::-moz-range-thumb{background:var(--ink);border:4px solid var(--accent);border-radius:50%;width:18px;height:18px}input[type=range]:focus-visible{outline:none}input[type=range]:focus-visible::-webkit-slider-thumb{outline:2px solid var(--focus);outline-offset:3px}input[type=range]:focus-visible::-moz-range-thumb{outline:2px solid var(--focus);outline-offset:3px}.seg{flex-wrap:wrap;gap:6px;display:flex}.seg input{opacity:0;width:1px;height:1px;position:absolute}.seg label{min-height:var(--hit);border:1px solid var(--line);background:var(--panel);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:999px;align-items:center;padding:0 14px;font-size:14px;font-weight:600;display:inline-flex}.seg label:hover{border-color:var(--muted)}.seg input:checked+label{background:var(--ink);color:var(--bg);border-color:var(--ink)}.seg input:focus-visible+label{outline:2px solid var(--focus);outline-offset:2px}.select-wrap{position:relative}.select-wrap select{width:100%;min-height:var(--hit);-webkit-appearance:none;appearance:none;border-radius:var(--radius-sm);border:1px solid var(--line);background:var(--panel);padding:0 40px 0 14px;font-size:15px;font-weight:600}.select-wrap:after{content:"";border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);pointer-events:none;width:8px;height:8px;margin-top:-6px;position:absolute;top:50%;right:16px;transform:rotate(45deg)}.toggle{min-height:var(--hit);cursor:pointer;justify-content:space-between;align-items:center;gap:12px;display:flex}.toggle input{-webkit-appearance:none;appearance:none;background:var(--panel-2);border:1px solid var(--line);cursor:pointer;border-radius:14px;flex:none;width:48px;height:28px;margin:0;transition:background-color .15s;position:relative}.toggle input:after{content:"";background:var(--ink);border-radius:50%;width:20px;height:20px;transition:transform .15s;position:absolute;top:3px;left:3px}.toggle input:checked{background:var(--accent);border-color:var(--accent)}.toggle input:checked:after{background:#fff;transform:translate(20px)}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);gap:14px;padding:16px;display:grid}.panel h2{font-size:15px;font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600}.panel .panel-sub{color:var(--muted);margin:-6px 0 0;font-size:14px}.export-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.export-grid .btn{padding:0 12px;font-size:15px}.export-grid .btn.wide{grid-column:1/-1}.inapp-hint{border-radius:var(--radius-sm);background:color-mix(in srgb, var(--accent) 12%, transparent);margin:0;padding:10px 12px;font-size:14px;line-height:1.45;display:none}.is-inapp .inapp-hint{display:block}.tool-below{gap:14px;margin-top:14px;display:grid}@media (width>=960px){.tool{padding-top:28px}.tool-layout{grid-template:"stage actions""stage export"1fr/minmax(0,1fr) 380px;align-items:start;gap:16px 32px;display:grid}.tool-layout .stage-col{grid-area:stage;gap:16px;display:grid;position:sticky;top:20px}.tool-layout .tool-actions{grid-area:actions}.tool-layout .export-panel{grid-area:export;align-self:start}.view-mobile{display:none}.stage{aspect-ratio:5/4;max-height:calc(100dvh - 120px)}.tool-title h1{font-size:40px}.tool-top{gap:18px}.tool-below{margin-top:18px}}.article{margin-top:56px}.article .wrap{max-width:720px}.article .prose h2{margin:40px 0 10px;font-size:24px}.article .prose h3{margin:28px 0 6px;font-size:19px}.article .prose p,.article .prose li{font-size:18px;line-height:1.65}.article .prose p{margin:0 0 16px}.article .prose ul,.article .prose ol{margin:0 0 16px;padding-left:22px}.article .prose li{margin-bottom:6px}.article .prose strong{color:var(--ink)}.article .prose code{font-family:var(--mono);background:var(--panel-2);border-radius:5px;padding:1px 6px;font-size:.88em}.article .prose blockquote{border-left:3px solid var(--accent);color:var(--ink);margin:24px 0;padding:4px 0 4px 18px}.article .prose blockquote p{font-size:20px}.article-head h2{margin-top:8px;font-size:clamp(26px,5vw,34px)}.article-head p{color:var(--muted);margin:10px 0 0}.reel-box{border-radius:var(--radius);border:1px solid var(--line);background:var(--panel);gap:12px;margin-top:40px;padding:18px;display:grid}.reel-box h2{font-size:18px}.reel-box ul{gap:10px;margin:0;padding:0;list-style:none;display:grid}.reel-box li{gap:6px;display:grid}.reel-box li>span{color:var(--muted);font-size:15px}.note{color:var(--muted);align-items:flex-start;gap:12px;margin-top:18px;font-size:15px;display:flex}.note svg{width:20px;height:20px;color:var(--good);flex:none;margin-top:2px}.note p{margin:0}.page{padding-block:40px}.page .wrap{max-width:720px}.page h1{margin:10px 0 18px;font-size:clamp(32px,7vw,48px)}.page p,.page li{font-size:18px;line-height:1.65}.page h2{margin:32px 0 8px;font-size:22px}dialog.save-sheet{background:var(--panel);width:min(100vw - 24px,520px);max-height:calc(100dvh - 24px);color:var(--ink);border:0;border-radius:18px;margin:auto;padding:0;box-shadow:0 20px 60px #00000080}dialog.save-sheet::backdrop{background:#08090cc7}.save-sheet .sheet{gap:12px;max-height:calc(100dvh - 24px);padding:14px;display:grid;overflow:auto}.save-sheet .sheet-head{justify-content:space-between;align-items:center;gap:12px;display:flex}.save-sheet .sheet-head h2{font-size:17px}.save-sheet .close{width:var(--hit);height:var(--hit);border:1px solid var(--line);background:var(--panel-2);cursor:pointer;border-radius:50%;flex:none;place-items:center;display:grid}.save-sheet .close svg{width:18px;height:18px}.save-sheet .media{background:#101216;border-radius:12px;place-items:center;display:grid;overflow:hidden}.save-sheet .media img,.save-sheet .media video{-webkit-touch-callout:default;user-select:auto;width:auto;height:auto;max-height:58dvh}.save-sheet .hint{color:var(--muted);margin:0;font-size:14px;line-height:1.45}.save-sheet .hint b{color:var(--ink)}.save-sheet .row{grid-template-columns:1fr;gap:8px;display:grid}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:0s!important;animation-duration:0s!important}}.param legend,.view-set legend{margin:0 0 8px;padding:0;font-size:15px;font-weight:600}.photo-row:focus-within .photo-btn{outline:2px solid var(--focus);outline-offset:3px}.photo-btn{cursor:pointer}.stage.drop{outline:2px dashed var(--accent);outline-offset:-8px}.more-tools{margin-top:40px}.more-tools ul{gap:8px;margin:12px 0 0;padding:0;list-style:none;display:grid}@media (width>=640px){.more-tools ul{grid-template-columns:1fr 1fr}}.more-tools a{min-height:var(--hit);border-radius:var(--radius-sm);border:1px solid var(--line);gap:2px;padding:12px 14px;font-weight:600;text-decoration:none;display:grid}.more-tools a span{color:var(--muted);font-size:15px;font-weight:400}.more-tools a:hover{border-color:var(--accent);color:var(--ink)}.reel-box .btn svg{width:16px;height:16px}@media (width<=959px){.tool-layout{gap:14px;display:grid}}.tool-title .kicker{color:var(--accent-ink);font-size:12px}[hidden]{display:none!important}.page p.kicker{margin:0;font-size:12px;line-height:1.4}.more-params{border-top:1px solid var(--line);gap:12px;padding-top:14px}.more-params .param{gap:2px}.more-params .param[data-type=toggle]{gap:0}.view-set .seg label{justify-content:center;min-width:88px}@media (width<=959px){.view-wide{display:none}}
