@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--bg:var(--lightningcss-light,#f5f5f7)var(--lightningcss-dark,#000);--surface:var(--lightningcss-light,#fff)var(--lightningcss-dark,#1c1c1e);--surface-2:var(--lightningcss-light,#f5f5f7)var(--lightningcss-dark,#2c2c2e);--fill:var(--lightningcss-light,#7878801f)var(--lightningcss-dark,#7676803d);--fill-strong:var(--lightningcss-light,#78788033)var(--lightningcss-dark,#7676805c);--separator:var(--lightningcss-light,#3c3c431f)var(--lightningcss-dark,#5454588c);--text:var(--lightningcss-light,#1d1d1f)var(--lightningcss-dark,#f5f5f7);--muted:var(--lightningcss-light,#6e6e73)var(--lightningcss-dark,#98989d);--accent:var(--lightningcss-light,#0071e3)var(--lightningcss-dark,#0a84ff);--accent-hover:var(--lightningcss-light,#0077ed)var(--lightningcss-dark,#409cff);--accent-soft:var(--lightningcss-light,#0071e312)var(--lightningcss-dark,#0a84ff24);--focus:var(--lightningcss-light,#0071e359)var(--lightningcss-dark,#0a84ff80);--good:var(--lightningcss-light,#248a3d)var(--lightningcss-dark,#30d158);--good-soft:var(--lightningcss-light,#34c75924)var(--lightningcss-dark,#30d1582e);--bad:var(--lightningcss-light,#d70015)var(--lightningcss-dark,#ff453a);--bad-soft:var(--lightningcss-light,#ff3b301a)var(--lightningcss-dark,#ff453a2e);--segment-on:var(--lightningcss-light,#fff)var(--lightningcss-dark,#636366);--switch-off:var(--lightningcss-light,#e9e9eb)var(--lightningcss-dark,#39393d);--card-edge:var(--lightningcss-light,#0000)var(--lightningcss-dark,#ffffff0f);--shadow:var(--lightningcss-light,#0000000d)var(--lightningcss-dark,#00000080);--radius:18px;--ease:cubic-bezier(.25, .8, .35, 1)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-feature-settings:"cv11", "ss01";margin:0;font:14px/1.45 -apple-system,BlinkMacSystemFont,SF Pro Text,Inter Variable,Segoe UI Variable,Segoe UI,system-ui,sans-serif}h1,h2{letter-spacing:-.02em}button,input,select{font:inherit;color:inherit}:focus-visible{box-shadow:0 0 0 4px var(--focus);outline:none}.hint{color:var(--muted);margin:8px 0 0;font-size:12px}.app-header{z-index:20;background:color-mix(in srgb, var(--bg) 72%, transparent);-webkit-backdrop-filter:saturate(180%)blur(20px);border-bottom:1px solid var(--separator);position:sticky;top:0}.app-header-inner{justify-content:space-between;align-items:center;gap:16px;max-width:1480px;margin:0 auto;padding:10px 24px;display:flex}.brand{align-items:center;gap:12px;display:flex}.logo{border-radius:10px;box-shadow:0 2px 8px #0071e34d}h1{margin:0;font-size:17px;font-weight:600}.tagline{color:var(--muted);margin:0;font-size:12px}.theme-switch{background:var(--fill);border-radius:10px;gap:2px;padding:2px;display:inline-flex}.theme-switch button{width:34px;height:28px;color:var(--muted);cursor:pointer;transition:background .2s var(--ease), color .2s;background:0 0;border:0;border-radius:8px;place-items:center;display:grid}.theme-switch button:hover{color:var(--text)}.theme-switch button[aria-pressed=true]{background:var(--segment-on);color:var(--text);box-shadow:0 1px 3px #0000001f,0 0 0 .5px #0000000a}.layout{grid-template-columns:290px minmax(0,1fr) 330px;grid-template-areas:"settings main history";align-items:start;gap:20px;max-width:1480px;margin:0 auto;padding:24px;display:grid}.surface{background:var(--surface);border-radius:var(--radius);box-shadow:0 0 0 1px var(--card-edge), 0 1px 2px var(--shadow), 0 8px 28px var(--shadow)}.panel{grid-area:settings;position:sticky;top:80px}.work{grid-area:main;min-width:0;padding:22px 24px 24px}.history{flex-direction:column;grid-area:history;max-height:calc(100vh - 104px);display:flex;position:sticky;top:80px;overflow:hidden}.panel section{border-bottom:1px solid var(--separator);padding:18px 20px}.panel section:last-child{border-bottom:0}.section-title{margin:0 0 12px;font-size:15px;font-weight:600}.field{flex-direction:column;gap:8px;margin-top:14px;display:flex}.field:first-child,.row .field{margin-top:0}.field-label{justify-content:space-between;align-items:baseline;font-size:13px;font-weight:500;display:flex}.field-label output{font-variant-numeric:tabular-nums;color:var(--accent);font-weight:600}.sub{margin-top:14px}.range-labels{color:var(--muted);justify-content:space-between;font-size:11px;display:flex}.segmented{background:var(--fill);border-radius:10px;grid-auto-columns:1fr;grid-auto-flow:column;gap:2px;padding:2px;display:grid}.segmented.grid{grid-template-columns:repeat(4,1fr);grid-auto-flow:row}.segmented label{position:relative}.segmented input{z-index:1;opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.segmented span{text-align:center;white-space:nowrap;transition:background .2s var(--ease), box-shadow .2s var(--ease);border-radius:8px;padding:6px 4px;font-size:13px;font-weight:500;display:block}.segmented label:hover span{background:var(--fill)}.segmented input:checked+span{background:var(--segment-on);font-weight:600;box-shadow:0 1px 3px #0000001f,0 0 0 .5px #0000000a}.segmented input:focus-visible+span{box-shadow:0 0 0 3px var(--focus)}.switch-row{cursor:pointer;justify-content:space-between;align-items:center;gap:12px;min-height:34px;font-size:13px;font-weight:500;display:flex}.switch-row+.field,.field+.switch-row{margin-top:10px}input.switch{appearance:none;background:var(--switch-off);cursor:pointer;width:42px;height:26px;transition:background .25s var(--ease);border-radius:999px;flex-shrink:0;margin:0;position:relative}input.switch:before{content:"";width:22px;height:22px;transition:transform .25s var(--ease);background:#fff;border-radius:50%;position:absolute;top:2px;left:2px;box-shadow:0 2px 4px #0003,0 0 0 .5px #0000000a}input.switch:checked{background:var(--accent)}input.switch:checked:before{transform:translate(16px)}input[type=number]{background:var(--fill);font-variant-numeric:tabular-nums;border:0;border-radius:10px;width:100%;padding:8px 12px;transition:box-shadow .15s}input[type=number]::placeholder{color:var(--muted)}.input-suffix{display:block;position:relative}.input-suffix input{padding-right:36px}.input-suffix>span{color:var(--muted);pointer-events:none;font-size:13px;position:absolute;top:50%;right:12px;transform:translateY(-50%)}input[type=color]{appearance:none;cursor:pointer;width:28px;height:28px;box-shadow:0 0 0 1px var(--separator);background:0 0;border:0;border-radius:50%;padding:0}input[type=color]::-webkit-color-swatch-wrapper{padding:0}input[type=color]::-webkit-color-swatch{border:0;border-radius:50%}input[type=color]::-moz-color-swatch{border:0;border-radius:50%}.row{align-items:flex-end;gap:8px;margin-bottom:6px;display:flex}.row .field{flex:1;min-width:0}.times{height:36px;color:var(--muted);align-items:center;display:flex}input[type=range]{appearance:none;cursor:pointer;background:0 0;width:100%;height:22px;margin:0}input[type=range]::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--accent) var(--fill,50%), var(--fill-strong) var(--fill,50%));border-radius:999px;height:4px}input[type=range]::-moz-range-track{background:var(--fill-strong);border-radius:999px;height:4px}input[type=range]::-moz-range-progress{background:var(--accent);border-radius:999px;height:4px}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:#fff;border:0;border-radius:50%;width:22px;height:22px;margin-top:-9px;box-shadow:0 1px 4px #00000040,0 0 0 .5px #0000000f}input[type=range]::-moz-range-thumb{background:#fff;border:0;border-radius:50%;width:22px;height:22px;box-shadow:0 1px 4px #00000040,0 0 0 .5px #0000000f}input[type=range]:focus-visible{box-shadow:none}input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 4px var(--focus)}.chips{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.chips button{background:var(--fill);cursor:pointer;border:0;border-radius:999px;padding:5px 12px;font-size:12px;font-weight:500;transition:background .15s}.chips button:hover{background:var(--fill-strong)}.chips button[aria-pressed=true]{background:var(--accent);color:#fff}.btn{background:var(--fill);color:var(--accent);white-space:nowrap;cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:600;text-decoration:none;transition:background .15s,opacity .15s,transform .1s;display:inline-flex}.btn:hover:not(:disabled){background:var(--fill-strong)}.btn:active:not(:disabled){transform:scale(.97)}.btn:disabled{opacity:.4;cursor:default}.btn.primary{background:var(--accent);color:#fff}.btn.primary:hover:not(:disabled){background:var(--accent-hover)}.btn.dark{background:var(--text);color:var(--surface)}.btn.dark:hover:not(:disabled){background:color-mix(in srgb, var(--text) 85%, var(--surface))}.btn.ghost{background:0 0}.btn.ghost:hover:not(:disabled){background:var(--fill)}.btn.small{padding:5px 12px;font-size:12px}.btn.pulse{background:var(--accent);color:#fff;box-shadow:0 0 0 4px var(--focus)}.icon-btn{background:var(--surface);width:34px;height:34px;color:var(--text);box-shadow:0 0 0 1px var(--separator), 0 1px 2px var(--shadow);cursor:pointer;border:0;border-radius:10px;place-items:center;padding:0;text-decoration:none;transition:color .15s,background .15s;display:grid}.icon-btn:hover{color:var(--accent)}.icon-btn.small{border-radius:9px;width:30px;height:30px}.icon-btn.plain{box-shadow:none;color:var(--muted);background:0 0}.icon-btn.plain:hover{background:var(--fill);color:var(--text)}.icon-btn[aria-pressed=true]{background:var(--accent-soft);color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.work-head h2{margin:0;font-size:22px;font-weight:600}.subtitle{color:var(--muted);margin:4px 0 0}.drop{border:1.5px dashed color-mix(in srgb, var(--accent) 55%, transparent);background:var(--accent-soft);text-align:center;color:var(--muted);cursor:pointer;transition:background .2s, border-color .2s, transform .2s var(--ease);border-radius:16px;margin-top:18px;padding:40px 20px}.drop svg{color:var(--accent)}.drop-title{color:var(--text);margin:8px 0 0;font-size:15px;font-weight:500}.drop:hover{background:color-mix(in srgb, var(--accent) 11%, transparent)}.drop.over{background:color-mix(in srgb, var(--accent) 15%, transparent);border-color:var(--accent);transform:scale(1.01)}.list{flex-direction:column;gap:8px;margin:16px 0 0;padding:0;list-style:none;display:flex}.list:empty{display:none}.card{background:var(--surface-2);border-radius:14px;grid-template-columns:48px minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:10px 12px;display:grid}.thumb{background:repeating-conic-gradient(var(--fill) 0 25%, transparent 0 50%) 0 0 / 12px 12px;border-radius:10px;place-items:center;width:48px;height:48px;display:grid;overflow:hidden}.thumb img{max-width:100%;max-height:100%}.thumb img:not([src]){display:none}.info{min-width:0}.name{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.meta{color:var(--muted);font-variant-numeric:tabular-nums;flex-wrap:wrap;gap:2px 8px;margin-top:2px;font-size:12px;display:flex}.arrow{color:var(--accent)}.out{color:var(--text)}.card-actions{align-items:center;gap:6px;display:flex}.badge{font-variant-numeric:tabular-nums;border-radius:999px;padding:3px 9px;font-size:12px;font-weight:600}.badge:empty{display:none}.badge.good{color:var(--good);background:var(--good-soft)}.badge.bad{color:var(--bad);background:var(--bad-soft)}.card[data-state=working] .download{visibility:hidden}.card[data-state=working] .badge{display:none}.card[data-state=working] .out{color:var(--muted);align-items:center;gap:6px;display:inline-flex}.card[data-state=working] .out:before{content:"";border:2px solid var(--fill-strong);border-top-color:var(--accent);border-radius:50%;width:12px;height:12px;animation:.8s linear infinite spin}.card[data-state=error] .out{color:var(--bad)}.card[data-state=error] :is(.download,.badge,.crop){display:none}@keyframes spin{to{transform:rotate(360deg)}}.toolbar{border-top:1px solid var(--separator);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-top:16px;padding-top:16px;display:flex}#summary{color:var(--muted);font-variant-numeric:tabular-nums}.toolbar-actions{flex-wrap:wrap;gap:8px;display:flex}.history-head{justify-content:space-between;align-items:flex-start;gap:12px;padding:20px 20px 8px;display:flex}.history-head h2{margin:0;font-size:17px;font-weight:600}.history-head .hint{margin:2px 0 0;display:block}.history-list{flex:1;min-height:0;margin:0;padding:0 10px 8px;list-style:none;overflow-y:auto}.history-list:empty{display:none}.history-day{z-index:1;background:var(--surface);color:var(--muted);padding:10px 10px 6px;font-size:12px;font-weight:600;position:sticky;top:0}.history-item{border-radius:12px;grid-template-columns:40px minmax(0,1fr) auto auto;align-items:center;gap:10px;padding:8px 10px;transition:background .15s;display:grid}.history-item+.history-item{box-shadow:0 -1px 0 var(--separator)}.history-item:hover{background:var(--surface-2);box-shadow:none}.history-item:hover+.history-item{box-shadow:none}.history-item .thumb{border-radius:9px;width:40px;height:40px}.history-item .meta{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.saving{font-weight:600}.saving.good{color:var(--good)}.saving.bad{color:var(--bad)}.history-item .delete{opacity:0;transition:opacity .15s}.history-item:hover .delete,.history-item .delete:focus-visible{opacity:1}@media (hover:none){.history-item .delete{opacity:1}}.history-empty{text-align:center;color:var(--muted);padding:28px 20px 32px}.history-empty svg{opacity:.6}.history-empty p{margin:6px 0 0}.history-empty p:first-of-type{color:var(--text);font-weight:500}.history-foot{border-top:1px solid var(--separator);padding:12px 20px 16px}.history-foot .hint{margin-top:4px}.site-footer{text-align:center;color:var(--muted);padding:4px 20px 32px;font-size:12px}.sheet{background:var(--surface);color:var(--text);max-width:calc(100vw - 16px);max-height:calc(100vh - 16px);box-shadow:0 0 0 1px var(--card-edge), 0 24px 64px #0000004d;border:0;border-radius:20px;padding:0}.sheet::backdrop{-webkit-backdrop-filter:blur(6px);background:#00000059}.sheet[open]{animation:sheet-in .25s var(--ease)}@keyframes sheet-in{0%{opacity:0;transform:scale(.96)translateY(8px)}}.crop-inner{flex-direction:column;gap:14px;padding:20px;display:flex}.crop-head h2{margin:0;font-size:17px;font-weight:600}.crop-head .chips{margin-top:12px}.crop-stage-wrap{background:repeating-conic-gradient(var(--fill) 0 25%, transparent 0 50%) 0 0 / 16px 16px, var(--surface-2);border-radius:14px;justify-content:center;padding:12px;display:flex;overflow:hidden}.crop-stage{touch-action:none;-webkit-user-select:none;user-select:none;line-height:0;position:relative}.crop-stage canvas{cursor:crosshair;display:block}.crop-box{cursor:move;--g:#ffffff73;background:linear-gradient(to right, transparent calc(100% / 3 - .5px), var(--g) 0 calc(100% / 3 + .5px), transparent 0 calc(200% / 3 - .5px), var(--g) 0 calc(200% / 3 + .5px), transparent 0), linear-gradient(to bottom, transparent calc(100% / 3 - .5px), var(--g) 0 calc(100% / 3 + .5px), transparent 0 calc(200% / 3 - .5px), var(--g) 0 calc(200% / 3 + .5px), transparent 0);outline:1.5px solid #fff;position:absolute;box-shadow:0 0 0 9999px #00000080}.crop-box:focus-visible{outline:2px solid var(--accent);box-shadow:0 0 0 9999px #00000080}.crop-box span{background:#fff;border-radius:50%;width:16px;height:16px;margin:-8px 0 0 -8px;position:absolute;box-shadow:0 1px 4px #00000073}.crop-box [data-h=nw]{cursor:nwse-resize;top:0;left:0}.crop-box [data-h=n]{cursor:ns-resize;top:0;left:50%}.crop-box [data-h=ne]{cursor:nesw-resize;top:0;left:100%}.crop-box [data-h=e]{cursor:ew-resize;top:50%;left:100%}.crop-box [data-h=se]{cursor:nwse-resize;top:100%;left:100%}.crop-box [data-h=s]{cursor:ns-resize;top:100%;left:50%}.crop-box [data-h=sw]{cursor:nesw-resize;top:100%;left:0}.crop-box [data-h=w]{cursor:ew-resize;top:50%;left:0}.crop-box[data-locked=true] :is([data-h=n],[data-h=e],[data-h=s],[data-h=w]){display:none}@media (pointer:coarse){.crop-box span{width:24px;height:24px;margin:-12px 0 0 -12px}}.crop-foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.crop-size{color:var(--muted);font-variant-numeric:tabular-nums}@media (max-width:1240px){.layout{grid-template-columns:280px minmax(0,1fr);grid-template-areas:"settings main""settings history"}.history{max-height:560px;position:static}}@media (max-width:860px){.app-header-inner{padding:10px 16px}.tagline{display:none}.toolbar-actions{width:100%}.toolbar-actions .btn{flex:1}.layout{grid-template-columns:minmax(0,1fr);grid-template-areas:"settings""main""history";gap:16px;padding:16px}.panel{position:static}.work{padding:18px 16px}.drop{padding:28px 16px}.card{grid-template-columns:44px minmax(0,1fr) auto;gap:10px}.card .thumb{grid-row:span 2;width:44px;height:44px}.card .info{grid-column:2/4}.card .badge{grid-area:2/2;justify-self:start}.card .card-actions{grid-area:2/3}}
