@font-face{font-family:Space Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/SpaceMono-Regular.ttf)format("truetype")}@font-face{font-family:Space Mono;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/SpaceMono-Bold.ttf)format("truetype")}:root{--paper-0:#fff;--paper-50:#fff;--paper-100:#f2f3f1;--paper-200:#e4e4df;--paper-300:#c7c7c2;--paper-400:#9a9a95;--paper-500:#707070;--paper-600:#3c3c3c;--paper-700:#1f1f1f;--paper-800:#141414;--paper-900:#0a0a0a;--signal-50:#fce7e5;--signal-100:#f9cfcb;--signal-300:#ee6259;--signal-500:#e63022;--signal-600:#c7241a;--signal-700:#b61c12;--blueprint-700:#0f2c7a;--ok-500:#1e7a3b;--ok-50:#e6f1e9;--warn-500:#b57700;--warn-50:#fbf1dc;--err-500:var(--signal-500);--err-50:var(--signal-50);--info-500:#1f2a44;--info-50:#ecedf1;--bg:var(--paper-50);--bg-alt:var(--paper-100);--surface:var(--paper-0);--hairline:var(--paper-300);--rule:var(--paper-900);--fg:var(--paper-900);--fg-1:var(--paper-700);--fg-2:var(--paper-500);--fg-3:var(--paper-400);--fg-inv:var(--paper-0);--accent:var(--signal-500);--accent-hover:var(--signal-600);--accent-press:var(--signal-700);--accent-tint:var(--signal-50);--on-accent:var(--paper-0);--focus-ring:var(--signal-500);--font-sans:"Helvetica Neue", Helvetica, Arial, sans-serif;--font-mono:"Space Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--font-display:var(--font-mono);--fs-12:12px;--fs-13:13px;--fs-14:14px;--fs-15:15px;--fs-16:16px;--fs-18:18px;--fs-20:20px;--fs-24:24px;--fs-30:30px;--fs-38:38px;--fs-48:48px;--fs-64:64px;--s-2:2px;--s-4:4px;--s-6:6px;--s-8:8px;--s-12:12px;--s-16:16px;--s-20:20px;--s-24:24px;--s-32:32px;--s-40:40px;--s-56:56px;--s-80:80px;--s-120:120px;--r-0:0;--r-2:0;--r-4:0;--r-8:0;--r-pill:0;--border-hair:1px solid var(--hairline);--border-rule:1px solid var(--rule);--border-ink:1px solid var(--fg);--shadow-sm:0 1px 0 #0a0a0a0f;--shadow-md:0 1px 0 #0a0a0a0f, 0 8px 24px -10px #0a0a0a1f;--shadow-inset:inset 0 0 0 1px var(--hairline);--ease:linear;--dur-fast:60ms;--dur:.12s;--dur-slow:.2s}html,body{background:var(--bg);color:var(--fg);font-family:var(--font-sans);font-size:var(--fs-15);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;line-height:1.45}::selection{background:var(--accent);color:var(--on-accent)}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);letter-spacing:-.03em;color:var(--fg);text-wrap:balance;margin:0;font-weight:700}h1{font-size:var(--fs-64);letter-spacing:-.045em;line-height:.95}h2{font-size:var(--fs-38);letter-spacing:-.035em;line-height:1}h3{font-size:var(--fs-24);letter-spacing:-.02em;line-height:1.15}h4{font-size:var(--fs-18);letter-spacing:-.01em;line-height:1.2}h5{font-size:var(--fs-12);text-transform:uppercase;letter-spacing:.08em;color:var(--fg-2);font-weight:700;line-height:1.2}p{text-wrap:pretty;margin:0}a{color:var(--fg);text-underline-offset:3px;text-decoration:underline;text-decoration-thickness:1px;-webkit-text-decoration-color:var(--fg);text-decoration-color:var(--fg);transition:color var(--dur) var(--ease), text-decoration-color var(--dur) var(--ease)}a:hover{-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);color:var(--accent)}code,kbd,samp,pre{font-family:var(--font-mono);font-size:.92em}code{background:var(--bg-alt);border:var(--border-hair);border-radius:0;padding:1px 6px}kbd{font-family:var(--font-mono);font-size:var(--fs-12);background:var(--surface);border:1px solid var(--rule);color:var(--fg);border-bottom-width:2px;border-radius:0;padding:1px 6px}hr{border:0;border-top:var(--border-rule);margin:var(--s-24) 0}.label{font-family:var(--font-mono);font-size:var(--fs-12);text-transform:uppercase;letter-spacing:.08em;color:var(--fg-2);font-weight:700}.dim{color:var(--fg-3)}.numeric{font-variant-numeric:tabular-nums}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}html,body{background:#e4e4df;height:100%}body{justify-content:center;align-items:stretch;min-height:100vh;padding:24px;display:flex}.app-window{background:var(--bg);border:1px solid var(--rule);border-radius:0;flex-direction:column;width:100%;max-width:880px;display:flex;overflow:hidden;box-shadow:0 30px 60px -20px #00000040}.app-titlebar{background:var(--paper-100);border-bottom:1px solid var(--hairline);justify-content:space-between;align-items:center;padding:9px 14px;display:flex}.traffic{gap:6px;display:flex}.tl{border-radius:50%;width:11px;height:11px;display:block}.tl-red{background:#ff5f57}.tl-amber{background:#febc2e}.tl-green{background:#28c840}.app-title{font-family:var(--font-mono);color:var(--fg-1);letter-spacing:normal;text-wrap:normal;align-items:center;gap:8px;font-size:12px;font-weight:400;line-height:normal;display:flex}.app-title .wm{color:var(--fg);align-items:center;gap:6px;font-weight:600;display:inline-flex}.app-title .wm-mark{color:var(--fg);display:block}.app-title .sep{color:var(--fg-3);margin:0 2px}.app-title .prod{color:var(--fg);font-weight:600}.app-title .ver{color:var(--fg-3);border:1px solid var(--hairline);border-radius:0;padding:1px 6px}.app-menubar{border-bottom:1px solid var(--hairline);background:var(--bg);font-family:var(--font-sans);color:var(--fg-1);align-items:center;gap:22px;padding:6px 14px;font-size:13px;display:flex}.app-menubar .menu-spacer{flex:1}.app-main{flex-direction:column;flex:1;gap:22px;min-height:540px;padding:28px 32px;display:flex}.app-statusbar{border-top:1px solid var(--hairline);background:var(--bg-alt);align-items:center;gap:8px;padding:8px 14px;display:flex}.status-dot{border-radius:0;width:7px;height:7px;display:inline-block}.status-spacer{flex:1}.small{font-size:11px}.mono{font-family:var(--font-mono)}.muted{color:var(--fg-2)}.ink{color:var(--fg)}.label{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.08em;color:var(--fg-2);text-wrap:normal;font-size:10px;font-weight:500;line-height:normal}.dropzone{box-sizing:border-box;border:1.5px dashed var(--rule);background:var(--surface);font-family:var(--font-sans);cursor:pointer;text-align:center;transition:border-color .12s var(--ease), background .12s var(--ease);width:100%;font:inherit;border-radius:0;flex-direction:column;align-items:center;gap:12px;padding:40px 24px;display:flex}.dropzone.empty{color:var(--fg-1)}.dropzone.empty:hover,.dropzone.empty.hover{border-color:var(--fg);background:var(--bg-alt);color:var(--fg)}.dropzone svg{color:var(--fg-3)}.dz-headline{color:var(--fg);font-size:16px;font-weight:500}.dz-sub{display:block}.dropzone.has-file{border:1px solid var(--hairline);text-align:left;cursor:default;border-style:solid;flex-direction:row;align-items:center;gap:16px;padding:16px 18px}.file-icon img{width:32px;height:36px;display:block}.file-meta{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.file-name{color:var(--fg);text-overflow:ellipsis;white-space:nowrap;font-size:14px;overflow:hidden}.file-sub{gap:8px;display:flex}.options-bar{background:var(--bg-alt);border:1px solid var(--hairline);border-radius:0;grid-template-columns:1fr 1fr 1.4fr;gap:10px;padding:14px 16px;display:grid}.opt{cursor:pointer;align-items:flex-start;gap:10px;display:flex}.opt.opt-format{cursor:default;flex-direction:column;gap:8px}.opt.is-disabled{opacity:.5;cursor:not-allowed}.opt-text{flex-direction:column;gap:2px;display:flex}.opt-label{font-family:var(--font-sans);color:var(--fg);font-size:13px;font-weight:500}.opt-hint{line-height:1.3}.tog{background:var(--paper-300);width:28px;height:16px;transition:background .12s var(--ease);border-radius:0;flex:none;margin-top:2px;position:relative}.tog-knob{width:12px;height:12px;transition:left .12s var(--ease);background:#fff;border-radius:0;position:absolute;top:2px;left:2px}.tog.is-on{background:var(--accent)}.tog.is-on .tog-knob{left:14px}.seg{border:1px solid var(--hairline);background:var(--surface);border-radius:0;align-self:flex-start;display:inline-flex;overflow:hidden}.seg-btn{font:inherit;font-family:var(--font-mono);color:var(--fg-1);cursor:pointer;border:0;border-right:1px solid var(--hairline);transition:background .12s var(--ease), color .12s var(--ease);background:0 0;padding:6px 10px;font-size:12px}.seg-btn:last-child{border-right:0}.seg-btn:hover:not(:disabled){background:var(--bg-alt);color:var(--fg)}.seg-btn.is-on{background:var(--fg);color:var(--fg-inv)}.seg-btn:disabled{cursor:not-allowed}.btn{font-family:var(--font-sans);cursor:pointer;white-space:nowrap;transition:background .12s var(--ease), color .12s var(--ease), border-color .12s var(--ease), transform 60ms var(--ease);border:1px solid #0000;border-radius:0;align-items:center;gap:8px;padding:10px 16px;font-size:14px;font-weight:500;line-height:1;display:inline-flex}.btn.small{padding:6px 10px;font-size:12px}.btn-primary{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover)}.btn-primary:active{background:var(--accent-press);transform:translateY(1px)}.btn-secondary{background:var(--surface);color:var(--fg);border-color:var(--fg)}.btn-secondary:hover{background:var(--bg-alt)}.btn-ghost{color:var(--fg);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--bg-alt)}.btn-block{justify-content:center;width:100%}.btn-run{padding:13px 20px;font-size:15px}.btn-run-main{font-weight:600}.btn:disabled{opacity:.45;cursor:not-allowed}.icon-btn{border:1px solid var(--hairline);color:var(--fg-1);cursor:pointer;background:0 0;border-radius:0;padding:5px}.icon-btn:hover{background:var(--bg-alt);color:var(--fg)}.action-row{align-items:center;gap:12px;display:flex}.action-row .spacer{flex:1}.action-meta{font-family:var(--font-mono);color:var(--fg-2);align-items:center;gap:8px;font-size:11px;display:flex}.progress-view{flex-direction:column;gap:18px;display:flex}.progress-top{justify-content:space-between;align-items:center;gap:12px;display:flex}.prog-stats{gap:28px;display:flex}.stat{flex-direction:column;gap:2px;display:flex}.stat-v{color:var(--fg);font-variant-numeric:tabular-nums;font-size:22px;font-weight:600}.stat-k{text-transform:uppercase;letter-spacing:.08em;color:var(--fg-3)}.progress-bar-wrap{background:var(--bg-alt);border:1px solid var(--hairline);border-radius:0;height:22px;position:relative;overflow:hidden}.progress-bar{background:var(--accent);transition:width .12s var(--ease);position:absolute;inset:0 auto 0 0}.progress-bar-label{z-index:1;color:var(--fg);mix-blend-mode:difference;filter:invert();padding:0 10px;line-height:22px;display:block;position:relative}.logview{border:1px solid var(--hairline);background:var(--paper-900);border-radius:0}.logview-head{border-bottom:1px solid #1f1f1f;justify-content:space-between;padding:8px 12px;display:flex}.logview-head .label{color:#9a9a95}.logview-head .small{color:#707070}.logview-body{max-height:140px;margin:0;padding:10px 12px;overflow:auto}.log-line{gap:12px;display:flex}.log-t{color:#707070;flex:none;min-width:70px}.log-m{color:#c7c7c2}.result-view{flex-direction:column;gap:16px;display:flex}.result-card{border:1px solid var(--hairline);background:var(--surface);border-radius:0;flex-direction:column;gap:12px;padding:28px;display:flex}.result-head{justify-content:space-between;align-items:center;gap:8px;display:flex}.result-card .label{color:var(--accent)}.result-num{color:var(--fg);letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:64px;font-weight:600;line-height:1}.result-sub{color:var(--fg-1);font-size:15px}.result-meta{flex-wrap:wrap;gap:8px;display:flex}.result-preview{flex-direction:column;gap:6px;margin-top:4px;display:flex}.preview-pre{background:var(--paper-900);color:var(--paper-100);border:1px solid var(--paper-800);white-space:pre;border-radius:0;margin:0;padding:12px 14px;font-size:11px;line-height:1.55;overflow:auto}.result-actions{flex-wrap:wrap;align-items:center;gap:10px;margin-top:4px;display:flex}.result-privacy{border:1px dashed var(--hairline);color:var(--fg-2);border-radius:0;align-items:center;gap:8px;padding:10px 14px;display:flex}.section-row{align-items:baseline;gap:12px;display:flex}.section-row .rule{background:var(--hairline);flex:1;height:1px}.in{font-family:var(--font-sans);background:var(--surface);border:1px solid var(--hairline);color:var(--fg);border-radius:0;outline:none;padding:9px 12px;font-size:14px}.in:focus{border-color:var(--fg);outline:2px solid var(--accent);outline-offset:1px}.in.mono{font-family:var(--font-mono)}.notice{border:1px solid var(--hairline);border-radius:0;padding:10px 14px;font-size:13px}.notice-warn{background:var(--warn-50);border-color:var(--warn-500);color:var(--warn-500)}.notice-err{background:var(--err-50);border-color:var(--err-500);color:var(--err-500)}
