:root{--page-bg:#0a0a0a;--page-fg:#fafafa;--page-muted:#a3a3a3;--page-border:#262626;--page-accent:#eceae5;--page-accent-fg:#212121;--page-accent-ink:var(--page-accent);--ui-surface:#ffffff0d;--ui-surface-hover:#ffffff1a;--ui-surface-active:#ffffff1c;--ui-surface-subtle:#ffffff0f;--ui-border:#ffffff1a;--ui-border-hover:#ffffff26;--ui-text-root:#fff;--ui-text-primary:#fffffff2;--ui-text-label:#ffffffb3;--ui-text-secondary:#fff9;--ui-text-tertiary:#fff6;--ui-text-focus:#fff;--ui-panel-bg:#212121;--ui-popover-bg:#2a2a2a;--ui-blur:20px;--ui-radius:8px;--ui-radius-sm:6px;--ui-radius-xs:4px;--ui-radius-panel:14px;--ui-radius-dropdown:12px;--ui-row:36px;--ui-shadow:0 8px 32px #00000080;--ui-shadow-sm:0 4px 16px #00000040;--ui-shadow-dropdown:0 8px 24px #0006;--ui-card-edge:none;--ui-good:#a3e635;--ui-good-soft:#a3e6351f;--ui-warn:#f87171;--ui-warn-soft:#f8717121;--ui-accent-soft:#eceae533;--ui-accent-line:#eceae580;--ui-glow:var(--page-accent-ink);--ui-checker:repeating-conic-gradient(#00000029 0% 25%, transparent 0% 50%) 0 0 / 16px 16px;--ui-scrim:#000000a3}[data-theme=light]{--page-bg:#fafafa;--page-fg:#0a0a0a;--page-muted:#737373;--page-border:#e5e5e5;--page-accent:#eceae5;--page-accent-fg:#212121;--page-accent-ink:#56544f;--ui-surface:#0000000a;--ui-surface-hover:#00000014;--ui-surface-active:#0000001a;--ui-surface-subtle:#0000000f;--ui-border:#0000001a;--ui-border-hover:#00000026;--ui-text-root:#000;--ui-text-primary:#000000e6;--ui-text-label:#0009;--ui-text-secondary:#0000008c;--ui-text-tertiary:#00000059;--ui-text-focus:#000;--ui-panel-bg:#fafafa;--ui-popover-bg:#fff;--ui-shadow:0 4px 20px #00000014;--ui-shadow-sm:0 2px 10px #0000000f;--ui-shadow-dropdown:0 4px 16px #00000014;--ui-good:#4d7c0f;--ui-good-soft:#4d7c0f1a;--ui-warn:#dc2626;--ui-warn-soft:#dc26261a;--ui-accent-soft:#56544f1f;--ui-accent-line:#56544f99;--ui-glow:var(--page-accent-ink);--ui-card-edge:0 0 0 1px var(--ui-border);--ui-checker:repeating-conic-gradient(#00000012 0% 25%, transparent 0% 50%) 0 0 / 16px 16px;--ui-scrim:#0a0a0a52}:root{--bg:var(--page-bg);--surface:var(--ui-panel-bg);--surface-2:var(--ui-surface);--surface-3:var(--ui-surface-hover);--surface-inset:var(--ui-surface-subtle);--border:var(--ui-border);--border-strong:var(--ui-border);--border-input:var(--ui-border-hover);--text:var(--ui-text-root);--text-2:var(--ui-text-label);--text-3:var(--ui-text-tertiary);--black:var(--page-fg);--black-hover:var(--page-fg);--on-black:var(--page-bg);--accent-fg:var(--page-accent-ink);--accent-tint:var(--ui-accent-soft);--good:var(--ui-good);--good-tint:var(--ui-good-soft);--warn:var(--ui-warn);--warn-tint:var(--ui-warn-soft);--font:var(--font-sans);--r-sm:var(--ui-radius-sm);--r-md:var(--ui-radius);--r-lg:var(--ui-radius-panel);--r-card:var(--ui-radius-panel);--r-pill:999px;--ring:0 0 0 3px var(--ui-accent-soft);--shadow-sm:var(--ui-shadow-sm);--shadow-lg:var(--ui-shadow);--font-sans:system-ui, -apple-system, "SF Pro Display", sans-serif;--font-mono:"Geist Mono", ui-monospace, "SF Mono", monospace}.t-display{font:600 48px/1.5 var(--font-sans);letter-spacing:-.02em}.t-lede{font:400 18px/1.5 var(--font-sans);color:var(--page-muted)}.t-title{font:600 15px/20px var(--font-sans);letter-spacing:-.01em}.t-section{font:600 13px var(--font-sans);letter-spacing:-.01em;color:var(--ui-text-section,var(--ui-text-label))}.t-control{font:500 13px/17px var(--font-sans)}.t-numeric{font:500 13px var(--font-mono);font-variant-numeric:tabular-nums}.t-caption{font:500 11px var(--font-sans);color:var(--ui-text-tertiary)}.t-overline{font:600 11px var(--font-sans);text-transform:uppercase;letter-spacing:.05em;color:var(--ui-text-tertiary)}.t-tick{font:400 9.5px var(--font-mono)}:root{--ease:cubic-bezier(.4, 0, .2, 1);--dur-fast:.12s;--dur-base:.15s;--dur-slow:.2s;--dur-rotate:.18s}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--page-bg);color:var(--page-fg);font:500 13px/1.45 var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0}button{cursor:pointer;color:inherit;font-family:inherit}input,textarea,select{font-family:inherit}.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}svg.lucide,svg.morphicon{stroke-width:1.75px;flex:none}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}::view-transition-old(root){z-index:1}::view-transition-new(root){z-index:2}html.theme-transitioning *,html.theme-transitioning :before,html.theme-transitioning :after{transition:none!important}:focus-visible{outline:2px solid var(--page-accent-ink);outline-offset:2px;border-radius:var(--ui-radius-xs)}::selection{background:var(--ui-accent-soft)}*{scrollbar-width:thin;scrollbar-color:var(--ui-border-hover) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--ui-border-hover);background-clip:padding-box;border:3px solid #0000;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--ui-text-tertiary);background-clip:padding-box}.ui-row{height:var(--ui-row);border-radius:var(--ui-radius);background:var(--ui-surface);color:var(--ui-text-label);font:500 13px var(--font-sans);transition:background var(--dur-base) var(--ease), color var(--dur-base) var(--ease);border:0;justify-content:space-between;align-items:center;gap:12px;padding:0 12px;display:flex}.ui-row:hover{background:var(--ui-surface-hover)}.ui-row:active,.ui-row[data-open=true]{background:var(--ui-surface-active)}.ui-row:disabled{opacity:.4;cursor:default;background:var(--ui-surface)}.ui-icon{width:var(--ui-row);flex:none;justify-content:center;padding:0}.ui-row--ghost{background:0 0}.ui-row--accent{background:var(--page-accent);color:var(--page-accent-fg);font-weight:600}.ui-row--accent:hover{background:color-mix(in srgb, var(--page-accent) 88%, #fff)}.ui-row--accent:active{background:color-mix(in srgb, var(--page-accent) 88%, #000)}.ui-row--accent:disabled{background:var(--ui-surface);color:var(--ui-text-tertiary)}.ui-row--danger:hover{background:var(--ui-warn-soft);color:var(--ui-warn)}.ui-panel{background:var(--ui-panel-bg);border:1px solid var(--ui-border);border-radius:var(--ui-radius-panel);box-shadow:var(--ui-shadow);scrollbar-width:none;padding:10px 12px;transform:translateZ(0)}.ui-panel::-webkit-scrollbar{display:none}.ui-section{border-bottom:1px solid var(--ui-surface-subtle);margin-bottom:8px;padding-bottom:8px}.ui-section:last-child{border:0;margin:0;padding:0}.ui-section-body{flex-direction:column;gap:6px;display:flex}.ui-section-head{width:100%;height:28px;color:var(--ui-text-label);text-align:left;background:0 0;border:0;align-items:center;gap:8px;padding:0;display:flex}button.ui-section-head:hover{color:var(--ui-text-primary)}.ui-section-head__chevron{color:var(--ui-text-tertiary);transition:transform var(--dur-rotate) var(--ease);margin-left:auto}.ui-section-head[aria-expanded=false] .ui-section-head__chevron{transform:rotate(-90deg)}.ui-section-head__aside{color:var(--ui-text-tertiary);margin-left:auto}.ui-slider{height:var(--ui-row);background:var(--ui-surface);border-radius:var(--ui-radius);cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:none;position:relative;overflow:hidden}.ui-slider:hover{background:var(--ui-surface-hover)}.ui-slider-fill{background:var(--ui-surface-active);transition:background var(--dur-base) var(--ease);position:absolute;inset:0 auto 0 0}.ui-slider[data-active] .ui-slider-fill{background:var(--ui-border-hover)}.ui-slider-handle{background:var(--ui-text-primary);border-radius:999px;width:3px;height:20px;position:absolute;top:50%;transform:translate(-50%,-50%)}.ui-slider-label{color:var(--ui-text-label);font:500 13px var(--font-sans);pointer-events:none;position:absolute;top:50%;left:10px;transform:translateY(calc(-50% - .5px))}.ui-slider-value{font:500 13px var(--font-mono);font-variant-numeric:tabular-nums;color:var(--ui-text-label);pointer-events:none;transition:color var(--dur-base) var(--ease);position:absolute;top:50%;right:10px;transform:translateY(calc(.5px - 50%))}.ui-slider-value.is-centred{text-align:center;width:100%;left:0;right:auto}.ui-slider[data-active] .ui-slider-value{color:var(--ui-text-focus)}.ui-segmented{height:var(--ui-row);background:var(--ui-surface);border-radius:var(--ui-radius);padding:2px;display:flex;position:relative}.ui-segmented-pill{z-index:0;border-radius:var(--ui-radius-sm);background:var(--ui-surface-active);pointer-events:none;transition:left var(--dur-fast) var(--ease), width var(--dur-fast) var(--ease);position:absolute;top:2px;bottom:2px}.ui-segmented button{z-index:1;border-radius:var(--ui-radius-sm);min-width:0;font:500 13px var(--font-sans);color:var(--ui-text-label);cursor:pointer;transition:color var(--dur-base) var(--ease);white-space:nowrap;text-overflow:ellipsis;background:0 0;border:0;flex:1;padding:6px 8px;position:relative;overflow:hidden}.ui-segmented button:hover,.ui-segmented button[data-active=true]{color:var(--ui-text-primary)}.ui-toggle{color:var(--ui-text-label);font:500 13px var(--font-sans);transition:color var(--dur-base) var(--ease);background:0 0;border:0;align-items:center;gap:8px;padding:0;display:inline-flex}.ui-toggle:hover{color:var(--ui-text-primary)}.ui-toggle-track{background:var(--ui-surface-active);width:36px;height:20px;transition:background var(--dur-slow) var(--ease);border-radius:10px;flex:none;position:relative}.ui-toggle[data-checked=true] .ui-toggle-track{background:var(--page-accent)}.ui-toggle-thumb{background:var(--ui-text-primary);width:16px;height:16px;transition:transform var(--dur-slow) var(--ease), background var(--dur-slow) var(--ease);border-radius:8px;position:absolute;top:2px;left:2px}.ui-toggle[data-checked=true] .ui-toggle-thumb{background:var(--page-accent-fg);transform:translate(16px)}[data-theme=light] .ui-toggle-thumb{box-shadow:0 0 0 1px #0000000f,0 1px 2px #00000014}.ui-dropdown{background:var(--ui-popover-bg);border:1px solid var(--ui-border);border-radius:var(--ui-radius-dropdown);box-shadow:var(--ui-shadow-dropdown);z-index:10000;padding:4px}.ui-option{text-align:left;border-radius:var(--ui-radius-sm);width:100%;font:500 13px var(--font-sans);color:var(--ui-text-label);cursor:pointer;transition:background var(--dur-base) var(--ease), color var(--dur-base) var(--ease);background:0 0;border:0;align-items:center;gap:10px;padding:8px 10px;display:flex}.ui-option:hover{background:var(--ui-surface-hover)}.ui-option[data-selected=true]{background:var(--ui-surface-active);color:var(--ui-text-primary)}.ui-option__check{color:var(--page-accent-ink);margin-left:auto}.btn{height:var(--ui-row);border-radius:var(--ui-radius);background:var(--ui-surface);color:var(--ui-text-label);font:500 13px var(--font-sans);white-space:nowrap;transition:background var(--dur-base) var(--ease), color var(--dur-base) var(--ease);border:0;justify-content:center;align-items:center;gap:8px;padding:0 14px;display:inline-flex}.btn:hover:not(:disabled){background:var(--ui-surface-hover);color:var(--ui-text-primary)}.btn:disabled{opacity:.4;cursor:default}.btn--primary{background:var(--page-accent);color:var(--page-accent-fg);font-weight:600}.btn--primary:hover:not(:disabled){background:color-mix(in srgb, var(--page-accent) 88%, #fff);color:var(--page-accent-fg)}.btn--ghost{background:0 0}.btn--sm{height:28px;padding:0 10px;font-size:12px}.btn--warn{color:var(--ui-warn)}.btn--warn:hover:not(:disabled){background:var(--ui-warn-soft);color:var(--ui-warn)}.ui-kbd{border-radius:var(--ui-radius-xs);background:var(--ui-surface-subtle);color:var(--ui-text-tertiary);font:600 10px/16px var(--font-sans);letter-spacing:.02em;padding:1px 5px;display:inline-block}.ui-row--accent .ui-kbd{background:color-mix(in srgb, var(--page-accent-fg) 12%, transparent);color:var(--page-accent-fg)}.app{flex-direction:column;height:100%;display:flex;overflow:hidden}.topbar{z-index:30;background:var(--page-bg);--ui-row:40px;flex:none;justify-content:space-between;align-items:center;gap:16px;height:60px;padding:0 14px 0 18px;display:flex;position:relative}.topbar .ui-row{font-size:14.5px}.brand{border-radius:var(--ui-radius);min-width:0;color:inherit;transition:opacity var(--dur-base) var(--ease);align-items:flex-end;gap:10px;text-decoration:none;display:flex;overflow:hidden}.brand:hover{opacity:.8}.brand:focus-visible{outline:2px solid var(--ui-accent-line);outline-offset:4px}.brand__logo{object-fit:contain;flex:none;width:48px;height:32px;margin-bottom:4px;display:block}.brand__name{font:600 23px/24px "Nunito", var(--font-sans);letter-spacing:-.01em;color:var(--ui-text-root);margin-bottom:3px}.topbar__right{flex:none;align-items:center;gap:6px;display:flex}.main{flex:1;justify-content:center;align-items:center;min-height:0;padding:24px;display:flex;overflow-y:auto}.hero{text-align:center;flex-direction:column;align-items:center;width:100%;max-width:560px;margin:auto;padding:32px 0;display:flex}.hero__title{color:var(--page-fg);font:600 42px/1.12 var(--font-sans);letter-spacing:-.03em;text-wrap:balance;max-width:15ch;margin:0 0 12px}.hero__sub{max-width:58ch;font:400 15px/1.55 var(--font-sans);color:var(--page-muted);margin:0 0 32px}.facts{flex-wrap:wrap;justify-content:center;gap:10px;margin:20px 0 0;padding:0;list-style:none;display:flex}.fact{background:var(--ui-surface-hover);border-radius:999px;align-items:center;gap:10px;height:44px;padding:0 18px 0 16px;display:flex}.fact__icon{flex:none}.fact__icon--local{color:#30d158}.fact__icon--cloud{color:#64d2ff}[data-theme=light] .fact__icon--local{color:#248a3d}[data-theme=light] .fact__icon--cloud{color:#0071a4}.fact__text{color:var(--ui-text-root);font:500 15px/1 var(--font-sans);letter-spacing:-.01em;white-space:nowrap}.fact__text b{font-variant-numeric:tabular-nums;font-weight:600}.dropzone{background:var(--ui-surface);border-radius:var(--ui-radius-panel);width:100%;color:var(--ui-border-hover);cursor:pointer;transition:background var(--dur-base) var(--ease), color var(--dur-base) var(--ease);flex-direction:column;align-items:center;gap:4px;padding:36px 28px 32px;display:flex;position:relative}.dropzone:hover{background:var(--ui-surface-hover);color:var(--ui-accent-line)}.dropzone.is-over{background:var(--ui-accent-soft);color:var(--page-accent-ink)}.dropzone__border{pointer-events:none;border-radius:inherit;width:100%;height:100%;position:absolute;inset:0}.dropzone__border rect{fill:none;stroke:currentColor;stroke-width:3px;stroke-dasharray:10 8;rx:var(--ui-radius-panel);transition:stroke-dasharray var(--dur-base) var(--ease)}.dropzone.is-over .dropzone__border rect{stroke-dasharray:none}.dropzone__title{color:var(--ui-text-root);font:600 16px/22px var(--font-sans);letter-spacing:-.01em;margin:0}.dropzone__orb{place-items:center;margin:26px 0 28px;display:grid}.dropzone__icon{color:var(--ui-text-secondary);transition:transform var(--dur-slow) var(--ease), color var(--dur-base) var(--ease)}.dropzone:hover .dropzone__icon{color:var(--ui-text-root);transform:translateY(-3px)}.dropzone.is-over .dropzone__icon{color:var(--page-accent-ink);transform:translateY(-5px)scale(1.06)}.dropzone__sub{max-width:46ch;color:var(--ui-text-tertiary);font:500 13px/18px var(--font-sans);text-align:center;margin:0}.dropzone__kbd{color:var(--ui-text-tertiary);font:500 11px var(--font-sans);align-items:center;gap:5px;margin-top:10px;display:flex}@media (prefers-reduced-motion:reduce){.dropzone__icon{transition:none}.dropzone:hover .dropzone__icon,.dropzone.is-over .dropzone__icon{transform:none}}[data-theme=light] .dropzone,[data-theme=light] .fact{background:#f3f3f5}[data-theme=light] .dropzone:hover{background:#eeeef1}.workspace{grid-template-columns:calc(288px * var(--scale)) minmax(0, 1fr) calc(340px * var(--scale));gap:calc(10px * var(--scale));min-height:0;padding:calc(10px * var(--scale));flex:1;display:grid}.sidebar{background:var(--ui-panel-bg);border-radius:var(--ui-radius-panel);min-height:0;box-shadow:var(--ui-card-edge);flex-direction:column;gap:10px;padding:10px;display:flex}.sidebar__head{flex:none;justify-content:space-between;align-items:center;gap:8px;height:24px;padding:0 2px;display:flex}.sidebar__count{color:var(--ui-text-tertiary)}.savings{--sv-bg:#0c0c0c;--sv-fg:#d4d4d4;--sv-muted:#8a8a8a;--sv-lit:#a3e635;background:linear-gradient(180deg, #161616, var(--sv-bg) 70%);border-radius:16px;flex:none;grid-template-columns:auto minmax(0,1fr);align-items:stretch;gap:12px 24px;padding:12px;display:grid;box-shadow:inset 0 0 0 .5px #ffffff14}.savings.is-warn{--sv-lit:#f87171}.savings__info{flex-direction:column;min-width:0;display:flex}.savings__label{color:var(--sv-muted);font:600 11px/1 var(--font-sans);letter-spacing:.06em;text-transform:uppercase}.savings__pct{color:var(--sv-fg);font:500 58px/.85 "Barlow Condensed", var(--font-sans);letter-spacing:-.01em;font-variant-numeric:tabular-nums;margin:7px 0 0}.savings__pct sup{vertical-align:top;margin-left:1px;font-size:16px;font-weight:300;line-height:1}.savings.is-warn .savings__pct{color:var(--sv-lit)}.savings__sizes{color:var(--sv-muted);font:400 16px/1 var(--font-mono);font-variant-numeric:tabular-nums;white-space:nowrap;text-overflow:ellipsis;grid-column:1/-1;overflow:hidden}.savings__sizes b{color:var(--sv-fg);font-weight:500}.savings__ticks{justify-content:space-between;gap:2px;min-height:72px;display:flex}.savings__ticks span{background:#ffffff1f;border-radius:2px;flex:0 3px;min-width:1.5px}.savings__ticks span.is-lit{background:var(--sv-lit);box-shadow:0 0 8px -2px color-mix(in srgb, var(--sv-lit) 70%, transparent)}.savings__skel{border-radius:var(--ui-radius-xs);background:#ffffff14;animation:1.4s ease-in-out infinite skel;display:block}.savings__skel--label{width:40px;height:10px}.savings__skel--num{width:80px;height:48px;margin:7px 0 0}.savings__skel--sizes{grid-column:1/-1;width:150px;height:16px}.savings__skel--ticks{height:72px}@keyframes skel{0%,to{opacity:.5}50%{opacity:1}}.slides{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:transparent transparent;min-height:0;transition:scrollbar-color var(--dur-base) var(--ease);flex-direction:column;flex:1;gap:4px;margin:-6px -6px -6px 0;padding:8px 6px 8px 0;list-style:none;display:flex;overflow-y:auto;-webkit-mask-image:linear-gradient(#0000 0,#000 8px calc(100% - 8px),#0000 100%);mask-image:linear-gradient(#0000 0,#000 8px calc(100% - 8px),#0000 100%)}.slides:hover,.slides:focus-within{scrollbar-color:var(--ui-border-hover) transparent}.slides::-webkit-scrollbar{width:4px}.slides::-webkit-scrollbar-track{background:0 0}.slides::-webkit-scrollbar-thumb{background:0 0;border-radius:999px}.slides:hover::-webkit-scrollbar-thumb{background:var(--ui-border-hover)}.slides:focus-within::-webkit-scrollbar-thumb{background:var(--ui-border-hover)}.slide{isolation:isolate;border-radius:var(--ui-radius);cursor:pointer;transition:background var(--dur-base) var(--ease);flex:none;align-items:center;gap:10px;padding:6px 8px 6px 6px;display:flex;position:relative;overflow:hidden}.slide:hover{background:var(--ui-surface-hover)}.slide.is-active{background:var(--ui-surface-active)}.slide.is-processing:after{content:"";z-index:0;background:linear-gradient(90deg, color-mix(in srgb, var(--ui-accent-soft) 35%, transparent), var(--ui-accent-soft));width:100%;transform:scaleX(var(--processing-progress,0));transform-origin:0;pointer-events:none;transition:transform .16s linear;position:absolute;inset:0 auto 0 0}.slide>:is(.slide__grip,.slide__thumb,.slide__meta,.slide__remove){z-index:1;position:relative}.slide.is-active:before{content:"";background:var(--page-accent);border-radius:999px;width:2px;position:absolute;top:9px;bottom:9px;left:0}.slide__grip{width:12px;color:var(--ui-text-tertiary);opacity:0;cursor:grab;transition:opacity var(--dur-base) var(--ease);flex:none;place-items:center;display:grid}.slide:hover .slide__grip{opacity:1}.slide__thumb{border-radius:var(--ui-radius-sm);background:var(--ui-surface-subtle);width:40px;height:40px;box-shadow:inset 0 0 0 1px var(--ui-border);flex:none;position:relative;overflow:hidden}.slide__thumb img{object-fit:cover;width:100%;height:100%;display:block}.slide__meta{flex-direction:column;gap:1px;min-width:0;display:flex}.slide__name{font:500 13px/17px var(--font-sans);color:var(--ui-text-label);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.slide.is-active .slide__name{color:var(--ui-text-primary)}.slide__dim{font:500 11px var(--font-mono);font-variant-numeric:tabular-nums;color:var(--ui-text-tertiary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.slide__dim b{color:var(--ui-good);font-weight:500}.slide__status{color:var(--page-accent-ink)}.slide.is-error .slide__dim{color:var(--ui-warn)}.slide__remove{width:24px;height:24px;color:var(--ui-text-tertiary);border-radius:var(--ui-radius-sm);opacity:0;transition:opacity var(--dur-base) var(--ease), background var(--dur-base) var(--ease), color var(--dur-base) var(--ease);background:0 0;border:none;flex:none;place-items:center;margin-left:auto;display:grid}.slide:hover .slide__remove,.slide.is-active .slide__remove,.slide__remove:focus-visible{opacity:1}.slide__remove:hover{background:var(--ui-warn-soft);color:var(--ui-warn)}.sidebar__foot{flex-direction:column;flex:none;gap:6px;display:flex}.sidebar__upload{justify-content:center;gap:8px;width:100%}.stage{background:var(--page-bg);flex-direction:column;min-width:0;min-height:0;display:flex;overflow:auto}.stage__card{flex-direction:column;flex:1;width:100%;max-width:1040px;min-height:0;margin:0 auto;display:flex;position:relative}.stage__placeholder{border-radius:var(--ui-radius-panel);background:var(--ui-surface);color:var(--ui-text-tertiary);font:500 13px var(--font-sans);flex:1;place-items:center;gap:12px;display:grid}.stage__error{color:var(--ui-warn)}.ready-preview{border-radius:var(--ui-radius-panel);background:var(--ui-surface-subtle);background-image:var(--ui-checker);min-height:240px;box-shadow:var(--ui-card-edge);animation:processing-enter .22s var(--ease) both;flex:1;position:relative;overflow:hidden}.ready-preview__image{object-fit:contain;width:100%;height:100%;position:absolute;inset:0}.stage__loading{border:1px solid var(--ui-border);border-radius:var(--ui-radius-panel);background:var(--ui-surface);flex:1;justify-content:center;align-items:center;min-height:240px;padding:20px;display:flex}.processing-card{isolation:isolate;border:1px solid var(--ui-border);border-radius:var(--ui-radius-panel);background:var(--ui-panel-bg);width:100%;max-width:420px;box-shadow:var(--ui-shadow-sm);animation:processing-enter .26s var(--ease) both;padding:20px;position:relative;overflow:hidden}.processing-card:before{content:"";z-index:0;background:linear-gradient(90deg, color-mix(in srgb, var(--ui-accent-soft) 35%, transparent), var(--ui-accent-soft));width:100%;transform:scaleX(var(--processing-progress,0));transform-origin:0;pointer-events:none;transition:transform .16s linear;position:absolute;inset:0 auto 0 0}.processing-card__info{z-index:1;align-items:center;gap:14px;display:flex;position:relative}.processing-card__thumb{object-fit:cover;border-radius:var(--ui-radius);background:var(--ui-surface-active);width:48px;height:48px;box-shadow:0 0 0 1px var(--ui-border);flex:none}.processing-card__meta{flex-direction:column;gap:7px;min-width:0;display:flex}.processing-card__name{text-overflow:ellipsis;white-space:nowrap;color:var(--ui-text-primary);font:600 13px/18px var(--font-sans);overflow:hidden}.processing-card__detail{color:var(--ui-text-secondary);font:500 11px/16px var(--font-sans);font-variant-numeric:tabular-nums;flex-wrap:wrap;align-items:center;gap:3px 7px;display:flex}.processing-card__status{color:var(--page-accent-ink)}.processing-percent{white-space:nowrap;font-variant-numeric:tabular-nums}.processing-card--overlay{z-index:5;pointer-events:none;width:calc(100% - 32px);max-width:360px;padding:14px 16px;position:absolute;bottom:72px;left:50%;translate:-50%}.processing-card--overlay .processing-card__thumb{width:36px;height:36px}.processing-bar{background:var(--ui-surface-active);pointer-events:none;border-radius:999px;height:4px;display:block;overflow:hidden}.processing-bar__fill{border-radius:inherit;background:linear-gradient(90deg, color-mix(in srgb, var(--page-accent-ink) 15%, transparent), var(--page-accent-ink));width:100%;height:100%;transform:scaleX(var(--processing-progress,0));transform-origin:0;transition:transform .16s linear;display:block}.processing-card.is-complete,.slide.is-processing.is-complete:after{animation:.6s ease-out both processing-complete}@keyframes processing-complete{0%,45%{opacity:1}to{opacity:0}}@keyframes processing-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.panel{background:var(--ui-panel-bg);border-radius:var(--ui-radius-panel);min-height:0;box-shadow:var(--ui-card-edge);flex-direction:column;display:flex}.panel__head{border-bottom:1px solid var(--ui-surface-subtle);flex:none;align-items:center;gap:8px;height:44px;padding:0 12px;display:flex}.panel__name{text-align:left;border-radius:var(--ui-radius-sm);min-width:0;color:var(--ui-text-root);font:600 13px/17px var(--font-sans);letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;cursor:text;transition:background var(--dur-base) var(--ease);background:0 0;border:none;flex:1;margin-left:-6px;padding:4px 6px;overflow:hidden}.panel__name:hover{background:var(--ui-surface-hover)}.panel__name-input{border:1px solid var(--page-accent-ink);border-radius:var(--ui-radius-sm);background:var(--ui-surface);min-width:0;color:var(--ui-text-focus);font:600 13px/17px var(--font-sans);outline:none;flex:1;margin-left:-6px;padding:4px 6px}.panel__body{overscroll-behavior:contain;scrollbar-width:none;flex:1;min-height:0;padding:10px 12px 12px;overflow-y:auto}.panel__body::-webkit-scrollbar{display:none}.applyall{height:var(--ui-row);border-radius:var(--ui-radius);background:var(--ui-surface);align-items:center;margin-bottom:10px;padding:0 12px;display:flex}.applyall .ui-toggle{justify-content:space-between;width:100%}.field{flex-direction:column;gap:6px;display:flex}.frames{grid-template-columns:repeat(6,1fr);gap:4px;display:grid}.frame{border-radius:var(--ui-radius-sm);background:var(--ui-surface);height:46px;color:var(--ui-text-label);transition:background var(--dur-base) var(--ease), color var(--dur-base) var(--ease);border:0;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:0 2px;display:flex}.frame:hover{background:var(--ui-surface-hover);color:var(--ui-text-primary)}.frame.is-active{background:var(--ui-surface-active);color:var(--ui-text-primary)}.frame__glyph{place-items:center;width:18px;height:18px;display:grid}.frame__rect{opacity:.65;border:1.5px solid;border-radius:2px;display:block}.frame.is-active .frame__rect{opacity:1;border-color:var(--page-accent-ink)}.frame__label{font:500 9.5px var(--font-mono);font-variant-numeric:tabular-nums;text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.compression-control{align-items:center;gap:6px;min-width:0;display:flex}.compression-control>:first-child{flex:1;min-width:0}.compression-convert{border-radius:var(--ui-radius);animation:processing-enter .18s var(--ease) both}.compression-size{color:var(--ui-text-label);font:500 11px var(--font-mono);font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:auto}.target{height:var(--ui-row);border-radius:var(--ui-radius);background:var(--ui-surface);transition:background var(--dur-base) var(--ease);justify-content:space-between;align-items:center;padding:0 10px;display:flex}.target:focus-within{background:var(--ui-surface-active)}.target__label{color:var(--ui-text-label);font:500 13px var(--font-sans)}.target__input{align-items:baseline;gap:3px;display:flex}.target input{text-align:right;width:62px;font:500 13px var(--font-mono);font-variant-numeric:tabular-nums;color:var(--ui-text-focus);-moz-appearance:textfield;background:0 0;border:none;outline:none}.target input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.target input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.target__unit{color:var(--ui-text-tertiary);font:500 11px var(--font-mono)}.lossless{height:var(--ui-row);border-radius:var(--ui-radius);background:var(--ui-surface-subtle);color:var(--ui-text-tertiary);font:500 13px var(--font-sans);align-items:center;gap:8px;padding:0 12px;display:flex}.stat{flex-direction:column;display:flex}.stat__row{height:28px;color:var(--ui-text-secondary);font:500 13px var(--font-sans);justify-content:space-between;align-items:center;gap:12px;display:flex}.stat__row .num{color:var(--ui-text-root);font:600 13px var(--font-mono);font-variant-numeric:tabular-nums}.stat__row--accent .num{color:var(--ui-good)}.stat__row--accent.is-warn .num{color:var(--ui-warn)}.alts__row{height:26px;color:var(--ui-text-secondary);font:500 13px var(--font-sans);align-items:center;gap:8px;display:flex}.alts__row .num{font:500 12px var(--font-mono);font-variant-numeric:tabular-nums;margin-left:auto}.alts__row.is-chosen{color:var(--ui-text-primary)}.alts__check{color:var(--page-accent-ink)}.actions{flex-direction:column;gap:6px;display:flex}.actions .ui-row{justify-content:center;gap:8px}.actions__download{gap:6px;display:flex}.actions__download .ui-row{flex:1;min-width:0}.actions__scope{height:var(--ui-row);border-radius:var(--ui-radius);background:var(--ui-surface);flex:none;align-items:center;padding:0 10px;display:flex}.actions__scope .ui-toggle{white-space:nowrap;gap:8px}.snippet{flex-direction:column;gap:6px;display:flex}.snippet__code{border-radius:var(--ui-radius-sm);background:var(--ui-surface-subtle);max-height:148px;color:var(--ui-text-secondary);font:400 11px/1.65 var(--font-mono);white-space:pre;overscroll-behavior:contain;scrollbar-width:none;margin:0;padding:10px;overflow:auto}.snippet__code::-webkit-scrollbar{display:none}.snippet__box{position:relative}.snippet__copy{border:1px solid var(--ui-border);border-radius:var(--ui-radius-sm);background:var(--ui-panel-bg);width:24px;height:24px;color:var(--ui-text-tertiary);cursor:pointer;place-items:center;padding:0;transition:color .15s,border-color .15s;display:grid;position:absolute;top:6px;right:6px}.snippet__copy:hover{color:var(--ui-text-primary);border-color:var(--ui-border-hover)}.snippet__copy.is-copied{color:var(--ui-good);border-color:var(--ui-good)}.hl-tag{color:var(--page-accent-ink)}.hl-attr{color:var(--ui-text-label)}.hl-str{color:var(--ui-good)}.hl-punc{color:var(--ui-text-tertiary)}.compare{border-radius:var(--ui-radius-panel);background:var(--ui-surface-subtle);background-image:var(--ui-checker);min-height:0;box-shadow:var(--ui-card-edge);touch-action:none;-webkit-user-select:none;user-select:none;cursor:ew-resize;flex:1;position:relative;overflow:hidden}.compare.is-zoomed{cursor:grab}.compare__layer{transform-origin:50%;will-change:transform;position:absolute;inset:0}.compare__img{object-fit:contain;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.compare__clip{position:absolute;inset:0}.compare__tag{z-index:4;border-radius:var(--ui-radius-sm);height:26px;-webkit-backdrop-filter:blur(var(--ui-blur));backdrop-filter:blur(var(--ui-blur));color:#ffffff8c;font:500 11px var(--font-sans);pointer-events:none;white-space:nowrap;text-overflow:ellipsis;background:#000000a6;align-items:center;gap:8px;max-width:calc(50% - 16px);padding:0 10px;display:inline-flex;position:absolute;top:10px;overflow:hidden}.compare__tag em{font-style:normal;font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:#fff;font-weight:600}.compare__tag--l{left:10px}.compare__tag--r{right:10px}.compare__zoombar{z-index:5;border-radius:var(--ui-radius);-webkit-backdrop-filter:blur(var(--ui-blur));backdrop-filter:blur(var(--ui-blur));opacity:0;transition:opacity var(--dur-base) var(--ease);background:#000000a6;align-items:center;gap:2px;padding:3px;display:inline-flex;position:absolute;bottom:10px;left:50%;transform:translate(-50%)}.compare:hover .compare__zoombar,.compare.is-zoomed .compare__zoombar,.compare__zoombar:focus-within{opacity:1}.zoombtn{color:#ffffffd9;border-radius:var(--ui-radius-sm);width:26px;height:26px;transition:background var(--dur-base) var(--ease);background:0 0;border:none;place-items:center;display:grid}.zoombtn:hover:not(:disabled){background:#ffffff26}.zoombtn.is-disabled,.zoombtn:disabled{opacity:.35;cursor:default}.stage__copy{z-index:5;border-radius:var(--ui-radius);height:32px;-webkit-backdrop-filter:blur(var(--ui-blur));backdrop-filter:blur(var(--ui-blur));color:#ffffffd9;font:500 12px var(--font-sans);white-space:nowrap;cursor:pointer;opacity:0;transition:opacity var(--dur-base) var(--ease), background var(--dur-base) var(--ease), color var(--dur-base) var(--ease);background:#000000a6;border:0;align-items:center;gap:7px;padding:0 12px;display:inline-flex;position:absolute;bottom:10px;right:10px}.stage__card:hover .stage__copy,.stage__copy:focus-visible{opacity:1}.stage__copy:hover{color:#fff;background:#000c}.stage__copy.is-copied,.stage__copy.is-copied:hover{opacity:1;color:var(--ui-good)}@media (hover:none){.stage__copy{opacity:1}}.zoomlvl{text-align:center;color:#ffffffd9;min-width:44px;font:500 11px var(--font-mono);font-variant-numeric:tabular-nums}.compare__handle{z-index:3;background:#fff;width:2px;position:absolute;top:0;bottom:0;transform:translate(-1px);box-shadow:0 0 0 1px #00000029}.compare__grip{width:32px;height:32px;-webkit-backdrop-filter:blur(var(--ui-blur));backdrop-filter:blur(var(--ui-blur));color:#fff;cursor:ew-resize;transition:transform var(--dur-fast) var(--ease);background:#000000a6;border-radius:999px;place-items:center;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:inset 0 0 0 1px #ffffff40}.compare__handle:hover .compare__grip,.compare__handle:focus-visible .compare__grip{transform:translate(-50%,-50%)scale(1.1)}.cropeditor{flex-direction:column;flex:1;gap:12px;min-height:0;display:flex}.cropeditor__frame{flex:1;justify-content:center;align-items:center;min-height:0;display:flex}.cropeditor__stage{border-radius:var(--ui-radius-panel);touch-action:none;-webkit-user-select:none;user-select:none;max-width:100%;box-shadow:0 0 0 1px var(--ui-border);line-height:0;display:inline-block;position:relative;overflow:hidden}.cropeditor__img{width:auto;max-width:100%;height:auto;max-height:58vh;display:block}.cropeditor__rect{cursor:move;touch-action:none;outline:1.5px solid #fff;position:absolute;box-shadow:0 0 0 9999px #000000a3}.crop__grid{pointer-events:none;background-image:linear-gradient(90deg,#0000 calc(33.333% - .5px),#ffffff47 calc(33.333% - .5px) calc(33.333% + .5px),#0000 calc(33.333% + .5px) calc(66.666% - .5px),#ffffff47 calc(66.666% - .5px) calc(66.666% + .5px),#0000 calc(66.666% + .5px)),linear-gradient(0deg,#0000 calc(33.333% - .5px),#ffffff47 calc(33.333% - .5px) calc(33.333% + .5px),#0000 calc(33.333% + .5px) calc(66.666% - .5px),#ffffff47 calc(66.666% - .5px) calc(66.666% + .5px),#0000 calc(66.666% + .5px));position:absolute;inset:0}.crophandle{touch-action:none;background:#fff;border-radius:2px;width:12px;height:12px;position:absolute;box-shadow:0 1px 3px #00000080}.crophandle--tl{cursor:nwse-resize;top:0;left:0;transform:translate(-50%,-50%)}.crophandle--tr{cursor:nesw-resize;top:0;right:0;transform:translate(50%,-50%)}.crophandle--bl{cursor:nesw-resize;bottom:0;left:0;transform:translate(-50%,50%)}.crophandle--br{cursor:nwse-resize;bottom:0;right:0;transform:translate(50%,50%)}.crophandle--t{cursor:ns-resize;top:0;left:50%;transform:translate(-50%,-50%)}.crophandle--b{cursor:ns-resize;bottom:0;left:50%;transform:translate(-50%,50%)}.crophandle--l{cursor:ew-resize;top:50%;left:0;transform:translate(-50%,-50%)}.crophandle--r{cursor:ew-resize;top:50%;right:0;transform:translate(50%,-50%)}.cropeditor__bar{flex-wrap:wrap;flex:none;justify-content:center;align-items:center;gap:6px;padding:4px;display:flex}.cropratio{border-radius:var(--ui-radius-sm);background:var(--ui-surface);height:28px;color:var(--ui-text-label);font:500 12px var(--font-mono);transition:background var(--dur-base) var(--ease), color var(--dur-base) var(--ease);border:0;padding:0 10px}.cropratio:hover{background:var(--ui-surface-hover);color:var(--ui-text-primary)}.cropratio.is-active{background:var(--ui-surface-active);color:var(--ui-text-primary)}.cropeditor__div{background:var(--ui-surface-subtle);width:1px;height:20px;margin:0 4px}.langswitch,.feedback{position:relative}.figma-link__metal{flex:none;margin-right:4px;visibility:visible!important;opacity:1!important}@property --figma-spin{syntax:"<angle>";inherits:false;initial-value:0deg}.figma-link__metal:after{content:"";z-index:3;border-radius:inherit;background:conic-gradient(from var(--figma-spin), #f24e1e, #ff7262, #a259ff, #1abcfe, #0acf83, #f24e1e);-webkit-mask-composite:xor;mix-blend-mode:color;opacity:.9;pointer-events:none;padding:1px;animation:10s linear infinite figma-spin;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}@keyframes figma-spin{to{--figma-spin:360deg}}@media (prefers-reduced-motion:reduce){.figma-link__metal:after{animation:none}}.figma-link{background:var(--ui-surface);height:34px;color:var(--ui-text-root);border-radius:999px;gap:7px;padding:0 14px 0 12px;text-decoration:none}.figma-link:hover{background:var(--ui-surface-hover)}.figma-link__mark{width:12px;height:18px;transition:transform var(--dur-base) var(--ease);flex:none}.figma-link:hover .figma-link__mark{transform:translateY(-1px)rotate(-6deg)}.feedback__btn,.langswitch__btn{gap:6px;padding:0 10px}.langswitch__code{font:500 13.5px var(--font-mono);letter-spacing:.03em}.langswitch__menu{min-width:176px;animation:rise var(--dur-base) var(--ease);margin:0;list-style:none;position:absolute;top:calc(100% + 6px);right:0}.feedback__pop{z-index:10000;background:var(--ui-popover-bg);border:1px solid var(--ui-border);border-radius:var(--ui-radius-panel);width:272px;max-width:calc(100vw - 24px);box-shadow:var(--ui-shadow);animation:rise var(--dur-base) var(--ease);padding:14px;position:absolute;top:calc(100% + 6px);right:0}.feedback__head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.feedback__title{color:var(--ui-text-root);font:600 15px/20px var(--font-sans);letter-spacing:-.01em;margin:0}.feedback__sub{color:var(--ui-text-tertiary);font:500 12px/1.45 var(--font-sans);margin:3px 0 0}.feedback__close{width:28px;height:28px;margin:-4px -6px 0 0}.feedback__links{flex-direction:column;gap:6px;margin-top:14px;display:flex}.feedback__link{border-radius:var(--ui-radius);background:var(--ui-surface);color:var(--ui-text-root);transition:background var(--dur-base) var(--ease);align-items:center;gap:10px;padding:8px 10px 8px 8px;text-decoration:none;display:flex}.feedback__link:hover{background:var(--ui-surface-hover)}.feedback__mark{border-radius:50%;flex:none;place-items:center;width:32px;height:32px;display:grid}.feedback__mark svg{display:block}.feedback__mark--x{color:#fff;background:#000;box-shadow:inset 0 0 0 .5px #ffffff2e}.feedback__who{flex-direction:column;flex:1;gap:1px;min-width:0;display:flex}.feedback__who b{font:600 13px/1.3 var(--font-sans)}.feedback__who small{color:var(--ui-text-tertiary);font:500 11.5px/1.3 var(--font-mono)}.feedback__go{color:var(--ui-text-tertiary);transition:transform var(--dur-base) var(--ease), color var(--dur-base) var(--ease);flex:none}.feedback__link:hover .feedback__go{color:var(--ui-text-root);transform:translate(1px,-1px)}.toast{z-index:10002;height:var(--ui-row);background:var(--ui-popover-bg);border:1px solid var(--ui-border);color:var(--ui-text-primary);font:500 13px var(--font-sans);border-radius:var(--ui-radius);box-shadow:var(--ui-shadow);opacity:0;pointer-events:none;transition:opacity var(--dur-slow) var(--ease), transform var(--dur-slow) var(--ease);align-items:center;padding:0 16px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%,12px)}.toast.is-shown{opacity:1;transform:translate(-50%)}.dropoverlay{z-index:10003;background:var(--ui-scrim);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);pointer-events:none;animation:fade var(--dur-fast) var(--ease);place-items:center;padding:24px;display:grid;position:fixed;inset:0}.dropoverlay__box{border:1px dashed var(--page-accent-ink);border-radius:var(--ui-radius-panel);background:var(--ui-popover-bg);color:var(--ui-text-root);font:600 15px var(--font-sans);box-shadow:var(--ui-shadow);flex-direction:column;align-items:center;gap:12px;padding:36px 52px;display:flex}.dropoverlay__box .lucide{color:var(--page-accent-ink)}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(-4px)}}@keyframes pop{0%{opacity:0;transform:scale(.7)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}}@keyframes spin{to{transform:rotate(360deg)}}.animate-fade{animation:fadeIn .24s var(--ease) forwards}.spin{animation:.8s linear infinite spin}.spinner{border:2px solid #ffffff3d;border-top-color:#fff;border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin}@media (width<=1120px){.workspace{grid-template-columns:244px minmax(0,1fr) 316px}}:root{--scale:1}@media (width>=1600px){:root{--scale:1.12}}@media (width>=1920px){:root{--scale:1.25}}@media (width>=2400px){:root{--scale:1.5}}@media (width>=3200px){:root{--scale:1.9}}.topbar,.main,.sidebar,.panel,.toast,.compare__tag,.compare__zoombar,.compare__grip,.stage__copy,.stage__placeholder,.cropeditor__bar,.processing-card{zoom:var(--scale)}@media (width<=900px){.app{height:auto;min-height:100%;overflow:visible}.workspace{flex-direction:column;display:flex}.sidebar{flex:none}.slides{max-height:200px}.stage{min-height:46vh}.panel{flex:none}.panel__body{overflow:visible}}@media (width<=720px){.brand__name,.ui-row__label{display:none}.topbar__right{gap:2px}.topbar .ui-row{min-width:var(--ui-row);justify-content:center;padding:0 8px}}@media (width<=560px){.topbar{gap:8px;padding:0 8px 0 12px}.hero__title{font-size:30px}.hero__sub{font-size:14px}.main{padding:16px}.feedback__pop{width:auto;position:fixed;top:58px;left:12px;right:12px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
