:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-primary:#0a0a0a;--bg-secondary:#151515;--bg-tertiary:#202020;--bg-elevated:#111;--bg-hover:#363636;--bg-active:#424242;--bg-press:#4d4d4d;--glass-bg:#131313d9;--glass-border:#ffffff0f;--glass-shadow:0 8px 32px #0006;--blur-chip:12px;--blur-chrome:20px;--blur-panel:30px;--text-primary:#ededed;--text-secondary:#999;--text-tertiary:#8b8b8b;--text-disabled:#5a5a5a;--accent-blue:#f2f2f5;--accent-blue-dim:#f2f2f51f;--accent-blue-glow:#f2f2f52e;--accent-teal:#b0b0ba;--accent-teal-dim:#b0b0ba24;--danger:#ff5a67;--danger-dim:#ff5a6724;--danger-border:#ff5a6759;--warning:#f0a93b;--warning-dim:#f0a93b24;--warning-border:#f0a93b59;--success:#46c46a;--success-dim:#46c46a24;--success-border:#46c46a59;--accent-red:var(--danger);--accent-red-dim:var(--danger-dim);--accent-orange:var(--warning);--accent-primary:var(--accent-blue);--gradient-primary:linear-gradient(135deg, #f2f2f5 0%, #c4c4cc 100%);--gradient-subtle:linear-gradient(135deg, #ffffff14 0%, #ffffff0a 100%);--border-subtle:1px solid #ffffff0f;--border-default:1px solid #ffffff1a;--border-accent:1px solid #ffffff40;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--space-xs:.25rem;--space-sm:.5rem;--space-md:.75rem;--space-lg:1rem;--space-xl:1.5rem;--space-2xl:2rem;--space-3xl:3rem;--sidebar-btn-pad-y:var(--space-md);--sidebar-btn-pad-x:var(--space-lg);--tap-target:2.75rem;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", "Consolas", monospace;--font-2xs:.625rem;--font-xs:.6875rem;--font-sm:.75rem;--font-base:.8125rem;--font-md:.875rem;--font-lg:1rem;--font-xl:1.25rem;--font-2xl:1.75rem;--font-3xl:2.5rem;--tracking-display:-.03em;--tracking-2xl:-.022em;--tracking-xl:-.015em;--tracking-lg:-.008em;--tracking-base:0;--tracking-sm:.005em;--tracking-xs:.012em;--tracking-2xs:.02em;--leading-display:1.05;--leading-heading:1.2;--leading-ui:1.4;--leading-body:1.6;--transition-fast:.12s ease;--transition-normal:.2s ease;--transition-smooth:.3s cubic-bezier(.4, 0, .2, 1);--ease-out-soft:cubic-bezier(.16, 1, .3, 1);--ease-in-soft:cubic-bezier(.7, 0, .84, 0);--sidebar-width:17rem;--statusbar-height:2rem;--toolbar-height:2.75rem}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;overflow:hidden}body{font-family:var(--font-sans);font-size:var(--font-base);color:var(--text-primary);background:var(--bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:var(--leading-ui);letter-spacing:var(--tracking-base);font-optical-sizing:auto}.t-2xs,.statusbar,.info-hint-text,.dropdown-group-label{letter-spacing:var(--tracking-2xs)}.t-xs{letter-spacing:var(--tracking-xs)}.t-sm{letter-spacing:var(--tracking-sm)}:focus-visible{outline:2px solid var(--accent-blue);outline-offset:2px;border-radius:var(--radius-sm)}.dropdown-trigger:focus-visible,.btn:focus-visible,.toolbar-btn:focus-visible,.topbar-btn:focus-visible,.rail-btn:focus-visible,.rail-tool:focus-visible{box-shadow:0 0 0 2px var(--bg-primary), 0 0 0 4px var(--accent-blue);outline:none}button:not(:disabled):active,[role=button]:not([aria-disabled=true]):active,.dropzone:active,.format-badge[role=button]:active{transition:transform 80ms ease-out;transform:scale(.97)}.btn-full:not(:disabled):active,.rail-btn:not(:disabled):active,.dropdown-trigger:not(:disabled):active{background:var(--bg-press);transform:none}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#fff3}.app-shell{background:var(--bg-primary);flex-direction:column;height:100dvh;display:flex}.app-shell-body{flex-direction:column;flex:1;min-height:0;display:flex}.app-titlebar{height:40px;padding:0 var(--space-md);background:var(--bg-primary);border-bottom:var(--border-subtle);-webkit-app-region:drag;-webkit-user-select:none;user-select:none;flex-shrink:0;align-items:center;display:flex}.app-titlebar.is-mac{padding-left:96px}.app-titlebar button,.app-titlebar a,.app-titlebar input,.app-titlebar [role=button]{-webkit-app-region:no-drag}.app-titlebar-brand{font-weight:600;font-size:var(--font-md);letter-spacing:var(--tracking-lg);color:var(--text-primary)}.app-layout{background:var(--bg-primary);flex-direction:column;height:100%;display:flex}.app-main{flex:1;display:flex;overflow:hidden}.topbar:after,.spectral-panel:before,.statusbar:before{content:"";pointer-events:none;z-index:1;height:10px;position:absolute;left:0;right:0}.topbar:after{background:linear-gradient(#00000073,#0000);top:100%}.spectral-panel:before,.statusbar:before{background:linear-gradient(#0000,#00000073);bottom:100%}.toolbar-logo{align-items:center;gap:var(--space-sm);font-weight:600;font-size:var(--font-md);color:var(--text-primary);letter-spacing:-.02em;-webkit-user-select:none;user-select:none;display:flex}.toolbar-logo svg{width:22px;height:22px}.toolbar-logo span{background:var(--gradient-primary);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.toolbar-divider{background:#ffffff14;width:1px;height:20px}.toolbar-group{align-items:center;gap:var(--space-xs);display:flex}.toolbar-btn{width:32px;height:32px;color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);font-size:var(--font-md);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.toolbar-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.toolbar-btn:not(:disabled):active{background:var(--bg-press);color:var(--text-primary)}.toolbar-btn.active{background:var(--accent-blue-dim);color:var(--accent-blue)}.toolbar-btn-text{width:auto;padding:0 var(--space-md);gap:var(--space-xs);font-size:var(--font-sm);font-family:var(--font-sans);font-weight:500}.toolbar-spacer{flex:1}.toolbar-filename{font-size:var(--font-sm);color:var(--text-secondary);font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;max-width:300px;overflow:hidden}.sidebar{width:var(--sidebar-width);min-width:var(--sidebar-width);background:var(--bg-primary);border-right:var(--border-subtle);z-index:50;padding:var(--space-sm);gap:var(--space-sm);flex-direction:column;display:flex;overflow:hidden auto}.sidebar-section{background:var(--bg-elevated);border-radius:var(--radius-md);border:1px solid #ffffff0f;padding:12px 11px;box-shadow:0 4px 6px #0003}.sidebar-section-title{font-size:var(--font-base);text-transform:uppercase;letter-spacing:.08em;color:var(--text-primary);margin-bottom:var(--space-sm);-webkit-user-select:none;user-select:none;font-weight:700}.section-head{justify-content:space-between;align-items:center;gap:var(--space-xs);margin-bottom:var(--space-sm);padding-bottom:var(--space-xs);border-bottom:var(--border-subtle);display:flex}.section-head .sidebar-section-title{margin-bottom:0}.panel-section-body{gap:var(--space-sm);margin-bottom:var(--space-lg);flex-direction:column;display:flex}.section-head-toggle{align-items:center;gap:var(--space-xs);min-width:0;font:inherit;color:inherit;cursor:pointer;text-align:left;background:0 0;border:none;flex:1;margin:0;padding:0;display:flex}.section-head-toggle>svg{color:var(--text-tertiary);flex-shrink:0}.section-summary{font-size:var(--font-2xs);font-family:var(--font-mono);color:var(--text-tertiary);text-overflow:ellipsis;white-space:nowrap;padding-left:var(--space-sm);margin-left:auto;overflow:hidden}.info-hint-btn{border-radius:var(--radius-sm);width:22px;height:22px;color:var(--text-tertiary);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.info-hint-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.info-hint-btn:not(:disabled):active{background:var(--bg-press)}.info-hint-btn.active{color:var(--text-primary);background:var(--bg-hover)}.info-hint-text{font-size:var(--font-xs);line-height:var(--leading-body);color:var(--text-tertiary);margin-bottom:var(--space-sm);padding:var(--space-xs) var(--space-sm);background:var(--bg-tertiary);border:var(--border-subtle);border-radius:var(--radius-sm);animation:.14s infoHintIn}@keyframes infoHintIn{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}.control-row{margin-bottom:var(--space-sm);justify-content:space-between;align-items:center;display:flex}.control-label{font-size:var(--font-sm);color:var(--text-secondary);-webkit-user-select:none;user-select:none}.control-value{font-size:var(--font-sm);color:var(--accent-blue);font-family:var(--font-mono);font-weight:500}input[type=checkbox]{appearance:none;background-color:var(--bg-tertiary);font:inherit;color:currentColor;border:1px solid var(--border-default);cursor:pointer;border-radius:4px;place-content:center;width:18px;height:18px;margin:0;transition:all .15s ease-in-out;display:grid}input[type=checkbox]:before{content:"";background-color:var(--bg-primary);transform-origin:50%;clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0%,43% 62%);width:10px;height:10px;transition:transform .12s ease-in-out;transform:scale(0)}input[type=checkbox]:checked{background-color:var(--accent-blue);border-color:var(--accent-blue)}input[type=checkbox]:checked:before{transform:scale(1)}input[type=radio]{appearance:none;background-color:var(--bg-tertiary);font:inherit;color:currentColor;border:1px solid var(--border-default);cursor:pointer;border-radius:50%;place-content:center;width:18px;height:18px;margin:0;transition:all .15s ease-in-out;display:grid}input[type=radio]:before{content:"";background-color:var(--bg-primary);border-radius:50%;width:8px;height:8px;transition:transform .12s ease-in-out;transform:scale(0)}input[type=radio]:checked{background-color:var(--accent-blue);border-color:var(--accent-blue)}input[type=radio]:checked:before{transform:scale(1)}input[type=range]{appearance:none;background:var(--bg-hover);cursor:pointer;border-radius:2px;outline:none;width:100%;height:4px}input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--accent-blue);border:2px solid var(--bg-primary);width:14px;height:14px;box-shadow:0 0 8px var(--accent-blue-glow);cursor:pointer;transition:transform var(--transition-fast);border-radius:50%}input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.2)}input[type=range]::-moz-range-thumb{background:var(--accent-blue);border:2px solid var(--bg-primary);width:14px;height:14px;box-shadow:0 0 8px var(--accent-blue-glow);cursor:pointer;border-radius:50%}.dual-range{height:24px;margin:4px 0;position:relative}.dual-range-track{background:var(--bg-hover);border-radius:2px;height:4px;position:absolute;top:10px;left:0;right:0}.dual-range-fill{background:var(--accent-blue);border-radius:2px;height:4px;position:absolute;top:10px}.dual-range input[type=range]{pointer-events:none;background:0 0;width:100%;height:24px;margin:0;position:absolute;top:0;left:0}.dual-range input[type=range]::-webkit-slider-runnable-track{background:0 0}.dual-range input[type=range]::-moz-range-track{background:0 0}.dual-range input[type=range]::-webkit-slider-thumb{pointer-events:auto}.dual-range input[type=range]::-moz-range-thumb{pointer-events:auto}select{background:var(--bg-tertiary);color:var(--text-primary);border:var(--border-default);border-radius:var(--radius-sm);padding:var(--space-xs) var(--space-sm);font-family:var(--font-sans);font-size:var(--font-sm);cursor:pointer;transition:border-color var(--transition-fast);outline:none}select:hover,select:focus{border-color:var(--accent-blue)}.dropdown{flex-shrink:0;display:inline-flex;position:relative}.dropdown.full{width:100%;display:flex}.dropdown.full .dropdown-trigger{width:100%}.dropdown-trigger{background:var(--bg-tertiary);min-width:0;color:var(--text-primary);border:var(--border-default);font-family:var(--font-sans);font-size:var(--font-sm);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--transition-fast), border-color var(--transition-fast);border-radius:8px;outline:none;justify-content:space-between;align-items:center;gap:8px;padding:5px 8px 5px 10px;line-height:1.4;display:inline-flex}.dropdown-trigger:hover{background:var(--bg-elevated);border-color:#ffffff2e}.dropdown-trigger:focus-visible{box-shadow:0 0 0 3px var(--accent-blue-dim);border-color:#ffffff4d}.dropdown-trigger:disabled{opacity:.5;cursor:not-allowed}.dropdown-trigger.sm{font-size:var(--font-xs);border-radius:7px;gap:6px;padding:3px 6px 3px 8px}.dropdown-value{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.dropdown-chevron{color:var(--text-tertiary);transition:transform var(--transition-fast);flex-shrink:0}.dropdown-chevron.open{transform:rotate(180deg)}.dropdown-menu{z-index:600;background:var(--bg-elevated);border-radius:var(--radius-md);transform-origin:top;border:1px solid #ffffff1f;min-width:100%;max-height:300px;padding:4px;animation:.14s cubic-bezier(.4,0,.2,1) dropdownIn;position:absolute;top:calc(100% + 5px);left:0;overflow-y:auto;box-shadow:0 12px 32px #0000008c,0 2px 8px #00000059}.dropdown-menu.right{left:auto;right:0}.dropdown-menu.up{transform-origin:bottom;animation-name:dropdownInUp;top:auto;bottom:calc(100% + 5px)}@keyframes dropdownIn{0%{opacity:0;transform:translateY(-4px)scale(.98)}to{opacity:1;transform:none}}@keyframes dropdownInUp{0%{opacity:0;transform:translateY(4px)scale(.98)}to{opacity:1;transform:none}}.dropdown-option{border-radius:var(--radius-sm);font-size:var(--font-sm);color:var(--text-primary);white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;gap:10px;padding:6px 9px;display:flex}.dropdown-menu.sm .dropdown-option{font-size:var(--font-xs);padding:5px 8px}.dropdown-option.highlighted{background:var(--bg-hover)}.dropdown-option:active{background:var(--bg-press)}.dropdown-option .dropdown-check{color:var(--text-primary);flex-shrink:0}.dropdown-group-label{font-size:var(--font-xs);letter-spacing:.07em;text-transform:uppercase;color:var(--text-tertiary);-webkit-user-select:none;user-select:none;padding:6px 9px 3px;font-weight:600}.dropdown-group+.dropdown-group{border-top:var(--border-subtle);margin-top:3px;padding-top:3px}.btn{justify-content:center;align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-xl);border-radius:var(--radius-lg);font-family:var(--font-sans);font-size:var(--font-md);cursor:pointer;transition:all var(--transition-normal);-webkit-user-select:none;user-select:none;white-space:nowrap;border:none;font-weight:500;display:inline-flex}.sidebar .btn{padding:var(--sidebar-btn-pad-y) var(--sidebar-btn-pad-x)}.btn-primary{background:var(--gradient-primary);color:var(--bg-primary);box-shadow:0 2px 12px var(--accent-blue-glow)}.btn-primary:hover{box-shadow:0 4px 20px var(--accent-blue-glow);transform:translateY(-1px)}.btn-primary:not(:disabled):active{box-shadow:0 1px 6px var(--accent-blue-glow);transform:scale(.97)}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary);border:var(--border-default)}.btn-secondary:hover{background:var(--bg-hover);border-color:#ffffff26}.btn-secondary:not(:disabled):active{background:var(--bg-press)}.btn-ghost{color:var(--text-secondary);background:0 0}.btn-ghost:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-ghost:not(:disabled):active{background:var(--bg-press);color:var(--text-primary)}.btn-danger{background:var(--danger);color:#1a0406;border:none;font-weight:600}.btn-danger:hover{background:#ff7480}.btn-danger:not(:disabled):active{background:#e64653}.btn:disabled,.btn[aria-disabled=true]{opacity:.45;cursor:not-allowed}.btn-icon{border-radius:var(--radius-sm);width:32px;height:32px;padding:0}.btn-sm{padding:var(--space-xs) var(--space-md);font-size:var(--font-xs)}.btn-full{width:100%}.viewer-area{background:var(--bg-primary);flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.viewer-container{cursor:crosshair;flex:1;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.viewer-canvas-wrapper{transform-origin:50%;display:inline-block;position:relative}.viewer-canvas-wrapper canvas{display:block}.annotation-canvas{pointer-events:auto;position:absolute;top:0;left:0}.crop-resize-handle{border:1px solid var(--accent-teal);pointer-events:auto;z-index:10;background:#fff;border-radius:50%;width:10px;height:10px;position:absolute;transform:translate(-50%,-50%)}.crop-resize-handle.n{cursor:n-resize;top:0;left:50%}.crop-resize-handle.s{cursor:s-resize;top:100%;left:50%}.crop-resize-handle.e{cursor:e-resize;top:50%;left:100%}.crop-resize-handle.w{cursor:w-resize;top:50%;left:0}.crop-resize-handle.nw{cursor:nw-resize;top:0;left:0}.crop-resize-handle.ne{cursor:ne-resize;top:0;left:100%}.crop-resize-handle.sw{cursor:sw-resize;top:100%;left:0}.crop-resize-handle.se{cursor:se-resize;top:100%;left:100%}.spectral-panel{background:var(--glass-bg);height:240px;min-height:180px;-webkit-backdrop-filter:blur(var(--blur-panel));backdrop-filter:blur(var(--blur-panel));padding:var(--space-md);flex-direction:column;display:flex;position:relative}.spectral-panel-header{margin-bottom:var(--space-sm);justify-content:space-between;align-items:center;display:flex}.spectral-panel-title{font-size:var(--font-sm);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.spectral-panel-content{flex:1;min-height:0}.statusbar{height:var(--statusbar-height);background:var(--bg-secondary);padding:0 var(--space-lg);align-items:center;gap:var(--space-xl);font-size:var(--font-xs);color:var(--text-tertiary);font-family:var(--font-mono);z-index:100;display:flex;position:relative}.statusbar-item{align-items:center;gap:var(--space-xs);white-space:nowrap;flex-shrink:0;display:flex}.statusbar-item .label{color:var(--text-tertiary)}.statusbar-item .value{color:var(--text-secondary)}.statusbar-spacer{flex:1}.statusbar{overflow:hidden}.statusbar-flex{flex:1 1 0;min-width:0}.statusbar-hints{white-space:nowrap;color:var(--text-tertiary);font-size:var(--font-xs);letter-spacing:var(--tracking-xs);flex-shrink:0;justify-content:center;align-items:center;gap:16px;display:flex}.statusbar[data-compact="1"] .sb-p1,.statusbar[data-compact="2"] .sb-p1,.statusbar[data-compact="3"] .sb-p1,.statusbar[data-compact="2"] .sb-p2,.statusbar[data-compact="3"] .sb-p2,.statusbar[data-compact="3"] .sb-p3{display:none}.landing-page{background:var(--bg-primary);scroll-behavior:smooth;height:100vh;position:relative;overflow:hidden auto}.landing-page:before{content:"";opacity:.75;pointer-events:none;background-image:linear-gradient(#ffffff08 1px,#0000 1px),linear-gradient(90deg,#ffffff08 1px,#0000 1px);background-size:60px 60px;position:fixed;inset:0}.landing-page:after{content:"";pointer-events:none;width:600px;max-width:100%;height:600px;animation:glowSettle .9s var(--ease-out-soft) both;background:radial-gradient(circle,#ffffff0f 0%,#ffffff05 40%,#0000 70%);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes glowSettle{0%{opacity:0;transform:translate(-50%,-50%)scale(.94)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}.landing-content{z-index:1;text-align:center;max-width:600px;padding:var(--space-2xl);flex-direction:column;justify-content:center;min-height:100vh;margin:0 auto;display:flex;position:relative}.landing-title{font-size:clamp(1.75rem, 7vw, var(--font-3xl));letter-spacing:var(--tracking-display);font-weight:700;line-height:var(--leading-display);margin-bottom:var(--space-md);background:var(--gradient-primary);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.landing-subtitle{font-size:clamp(.875rem, 3.5vw, var(--font-lg));color:var(--text-secondary);margin-bottom:var(--space-3xl);line-height:var(--leading-body);text-wrap:pretty}.dropzone{border-radius:var(--radius-xl);padding:var(--space-xl) var(--space-2xl);cursor:pointer;transition:all var(--transition-smooth);background:var(--glass-bg);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:50;border:3px dotted #fff3;position:relative}.dropzone:before{content:"";border-radius:inherit;background:var(--gradient-subtle);opacity:0;transition:opacity var(--transition-smooth);position:absolute;inset:0}.dropzone:hover,.dropzone.drag-over{border-color:var(--accent-blue);background:#ffffff0d;transform:translateY(-2px);box-shadow:0 12px 40px #ffffff14}.dropzone:active{background:#ffffff12;transform:scale(.99)}.dropzone:hover:before,.dropzone.drag-over:before{opacity:1}.dropzone-icon{margin-bottom:var(--space-lg);opacity:.6;font-size:48px}.dropzone-text{font-size:var(--font-md);color:var(--text-primary);margin-bottom:var(--space-sm);font-weight:500}.dropzone-hint{font-size:var(--font-sm);color:var(--text-tertiary)}.dropzone-formats{gap:var(--space-sm);margin-top:var(--space-lg);flex-wrap:wrap;justify-content:center;display:flex}.format-badge{padding:var(--space-xs) var(--space-md);background:var(--bg-tertiary);border:var(--border-subtle);border-radius:var(--radius-sm);font-size:var(--font-xs);font-family:var(--font-mono);color:var(--text-secondary);letter-spacing:var(--tracking-xs)}.landing-actions{align-items:center;gap:var(--space-md);margin-top:var(--space-xl);flex-direction:column;display:flex}.sample-row{justify-content:center;align-items:center;gap:var(--space-sm);flex-wrap:wrap;display:flex}.sample-label{font-size:var(--font-sm);color:var(--text-secondary);margin-right:var(--space-xs)}.sample-btn{justify-content:center;align-items:center;gap:var(--space-xs);min-height:var(--tap-target);padding:var(--space-sm) var(--space-lg);background:var(--bg-tertiary);color:var(--text-primary);border:var(--border-default);border-radius:var(--radius-md);font-family:var(--font-sans);font-size:var(--font-sm);letter-spacing:var(--tracking-sm);cursor:pointer;white-space:nowrap;transition:background var(--transition-fast), border-color var(--transition-fast);font-weight:500;display:inline-flex}.sample-btn:hover:not(:disabled){background:var(--bg-hover);border-color:#fff3}.sample-btn:not(:disabled):active{background:var(--bg-press)}.sample-btn:disabled{opacity:.5;cursor:not-allowed}.link-btn{justify-content:center;align-items:center;gap:var(--space-xs);min-height:var(--tap-target);padding:var(--space-sm) var(--space-md);border-radius:var(--radius-sm);color:var(--text-secondary);font-family:var(--font-sans);font-size:var(--font-sm);cursor:pointer;transition:color var(--transition-fast), background var(--transition-fast);background:0 0;border:none;display:inline-flex}.link-btn:hover{color:var(--text-primary);background:#ffffff0a}.link-btn:active{background:var(--bg-press)}.resize-handle{cursor:ns-resize;background:0 0;flex-shrink:0;width:100%;height:4px;position:relative}.resize-handle:after{content:"";width:40px;height:3px;transition:background var(--transition-fast);background:#ffffff1a;border-radius:2px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.resize-handle:hover:after{background:var(--accent-blue)}.resize-handle-x{cursor:ew-resize;z-index:20;background:0 0;width:6px;position:absolute;top:0;bottom:0}.resize-handle-x.left{left:0}.resize-handle-x.right{right:0}.resize-handle-x:after{content:"";width:3px;height:40px;transition:background var(--transition-fast);background:#ffffff1a;border-radius:2px;display:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.resize-handle-x:hover:after{background:0 0}.spinner{border:2px solid #00000026;border-top-color:var(--bg-primary);border-radius:50%;width:20px;height:20px;margin:0;animation:.8s linear infinite spin;display:inline-block}.btn-secondary .spinner,.btn-ghost .spinner,.sidebar-section .spinner,.landing-page .spinner,.spectral-panel .spinner{border-color:#ffffff26;border-top-color:var(--text-primary)}.btn-primary .spinner{border-color:#00000026;border-top-color:var(--bg-primary)}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:.8s linear infinite spin}.tooltip{position:relative}.tooltip:after{content:attr(data-tooltip);padding:var(--space-xs) var(--space-sm);background:var(--bg-elevated);border:var(--border-subtle);border-radius:var(--radius-sm);font-size:var(--font-xs);color:var(--text-primary);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity var(--transition-fast);z-index:1000;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.tooltip:hover:after{opacity:1}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUpOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(10px)}}@keyframes slideDown{0%{opacity:0;transform:translate(-50%,-12px)scale(.98)}to{opacity:1;transform:translate(-50%)scale(1)}}@keyframes slideDownOut{0%{opacity:1;transform:translate(-50%)scale(1)}to{opacity:0;transform:translate(-50%,-12px)scale(.98)}}@keyframes slideIn{0%{opacity:0;transform:translate(-10px)}to{opacity:1;transform:translate(0)}}@keyframes slideInOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-10px)}}@keyframes slideInRight{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}@keyframes slideInRightOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(16px)}}.animate-fade-in{animation:fadeIn var(--transition-smooth) forwards}.animate-slide-up{animation:slideUp var(--transition-smooth) forwards}.side-pane{animation:slideInRight .3s var(--ease-out-soft) forwards}.side-pane.closing{animation:slideInRightOut .2s var(--ease-in-soft) forwards}.pixel-info{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--blur-chip));backdrop-filter:blur(var(--blur-chip));border:var(--border-default);border-radius:var(--radius-md);padding:var(--space-md);font-size:var(--font-xs);font-family:var(--font-mono);color:var(--text-secondary);pointer-events:none;z-index:200;box-shadow:var(--glass-shadow);min-width:140px;position:absolute}.pixel-info .coords{color:var(--text-primary);margin-bottom:var(--space-xs);font-weight:500}.pixel-info .value{color:var(--accent-blue)}.empty-state{height:100%;color:var(--text-tertiary);justify-content:center;align-items:center;gap:var(--space-md);-webkit-user-select:none;user-select:none;flex-direction:column;display:flex}.empty-state-icon{color:var(--text-tertiary);opacity:.5;justify-content:center;align-items:center;display:flex}.empty-state-text{font-size:var(--font-sm)}.toggle{cursor:pointer;width:36px;height:20px;position:relative}.toggle:active .toggle-thumb{width:19px}.toggle input{display:none}.toggle-track{background:var(--bg-hover);transition:background var(--transition-fast);border-radius:10px;position:absolute;inset:0}.toggle input:checked+.toggle-track{background:var(--accent-blue)}.toggle-thumb{width:16px;height:16px;transition:transform var(--transition-fast), width var(--transition-fast);background:#fff;border-radius:8px;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0000004d}.toggle input:checked~.toggle-thumb{background:var(--bg-active);transform:translate(16px)}.landing-features-section{z-index:1;border-top:var(--border-subtle);padding:clamp(var(--space-2xl), 8vw, 5rem) var(--space-lg);background:0 0;position:relative}.landing-features{text-align:left;max-width:1000px;margin:0 auto}.landing-features h2{font-size:clamp(1.0625rem, 4vw, var(--font-xl));letter-spacing:var(--tracking-xl);line-height:var(--leading-heading);margin-bottom:var(--space-lg);color:var(--text-primary);text-align:center;text-wrap:balance}.bento-grid{gap:var(--space-lg);margin-bottom:var(--space-2xl);grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));grid-auto-rows:minmax(160px,auto);display:grid}.use-cases-grid{gap:var(--space-lg);margin-bottom:var(--space-2xl);grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));display:grid}.feature-card{background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--blur-chip));backdrop-filter:blur(var(--blur-chip));border:var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-xl);transition:transform var(--transition-smooth), border-color var(--transition-smooth), box-shadow var(--transition-smooth);column-gap:var(--space-md);row-gap:var(--space-sm);grid-template-columns:auto 1fr;min-width:0;display:grid;position:relative;overflow:hidden}@media (width>=800px){.feature-card.bento-wide{grid-column:span 2}}.feature-card:hover{border-color:#ffffff26;transform:translateY(-4px);box-shadow:0 12px 32px #0000004d}.feature-card:before{content:"";opacity:0;height:1px;transition:opacity var(--transition-smooth);background:linear-gradient(90deg,#0000,#fff3,#0000);position:absolute;top:0;left:0;right:0}.feature-card:hover:before{opacity:1}.feature-icon{border-radius:var(--radius-md);background:var(--gradient-subtle);border:var(--border-subtle);width:48px;height:48px;color:var(--accent-blue);grid-area:1/1;justify-content:center;align-items:center;display:flex}.feature-card h3{font-size:var(--font-lg);letter-spacing:var(--tracking-lg);line-height:var(--leading-heading);color:var(--text-primary);overflow-wrap:break-word;grid-area:1/2;align-self:center;min-width:0;margin:0;font-weight:600}.feature-card p{font-size:var(--font-sm);letter-spacing:var(--tracking-sm);color:var(--text-secondary);line-height:var(--leading-body);margin:0;margin-top:var(--space-sm);text-wrap:pretty;grid-area:2/1/auto/-1;min-width:0}@media (width<=640px){.landing-content{padding:var(--space-xl) var(--space-lg)}.dropzone{padding:var(--space-lg) var(--space-md)}.dropzone-formats{max-width:calc(100vw - 2 * var(--space-lg))}.sample-row{width:100%}.sample-btn{flex:8rem}.landing-features{text-align:left}.feature-card{padding:var(--space-lg);grid-template-columns:1fr}.feature-icon{grid-area:1/1;width:40px;height:40px}.feature-card h3{grid-area:2/1}.feature-card p{grid-row:3}}@media (pointer:coarse){.toolbar-btn,.topbar-btn,.btn-icon,.info-hint-btn,.rail-btn{min-width:var(--tap-target);min-height:var(--tap-target)}.dropdown-option{padding:var(--space-md) var(--space-md)}.tooltip:after{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.animate-fade-in,.side-pane,.side-pane.closing{animation-duration:.14s!important}button:not(:disabled):active,[role=button]:active,.btn-primary:not(:disabled):active,.dropzone:active,.feature-card:hover,.dropzone:hover,.btn-primary:hover{transform:none!important}.landing-page:after{animation:none!important}}@media (prefers-reduced-transparency:reduce){:root{--glass-bg:#131313}.topbar,.spectral-panel,.rail-pane,.pixel-info,.feature-card,.dropzone{-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--bg-elevated)}.topbar:after,.spectral-panel:before,.statusbar:before{display:none}.topbar{border-bottom:var(--border-default)}.spectral-panel,.statusbar{border-top:var(--border-default)}}@media (prefers-contrast:more){:root{--text-secondary:#c4c4c4;--text-tertiary:#ababab;--text-disabled:#7a7a7a;--border-subtle:1px solid #ffffff38;--border-default:1px solid #ffffff59;--border-accent:1px solid #fff9;--glass-bg:#0c0c0cf7}:focus-visible{outline-width:3px}.toolbar-btn.active,.rail-tool.active,.rail-segment button.active{outline:1px solid var(--text-primary)}}@media (forced-colors:active){.toolbar-btn.active,.topbar .toolbar-btn.active,.rail-btn.active,.rail-tool.active{forced-color-adjust:none;color:highlighttext;background:highlight}:focus-visible{outline:2px solid highlight}}.topbar{height:var(--toolbar-height);background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--blur-chrome));backdrop-filter:blur(var(--blur-chrome));padding:0 var(--space-lg);align-items:center;gap:var(--space-md);z-index:100;display:flex;position:relative}.topbar-logo{font-weight:600;font-size:var(--font-md);letter-spacing:var(--tracking-lg);color:var(--text-primary)}.topbar-btn{color:var(--text-secondary);border:var(--border-default);border-radius:var(--radius-sm);font-size:var(--font-sm);letter-spacing:var(--tracking-sm);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;align-items:center;gap:7px;padding:6px 12px;display:flex}.topbar-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.topbar-btn:not(:disabled):active{background:var(--bg-press);color:var(--text-primary)}.topbar-btn-ghost{font-size:var(--font-xs);border:none;padding:2px 6px}.topbar-btn-primary{background:var(--accent-blue);color:#0a0a0a;border:none;font-weight:600}.topbar-btn-primary:hover{color:#0a0a0a;background:#fff}.topbar-btn-primary:not(:disabled):active{color:#0a0a0a;background:#d6d6db}.topbar-divider{background:#ffffff1a;width:1px;height:20px}.topbar-file{align-items:baseline;gap:var(--space-md);min-width:0;display:flex}.topbar-filename{font-family:var(--font-mono);font-size:var(--font-base);color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;max-width:320px;overflow:hidden}.topbar-dims{font-size:var(--font-xs);color:var(--text-tertiary);white-space:nowrap}.topbar-spacer{flex:1}.topbar{overflow:hidden}.topbar-btn,.topbar .toolbar-btn,.topbar .toolbar-group,.topbar-divider{flex-shrink:0}.topbar.tb-compact .tb-label{display:none}.topbar.tb-measuring .tb-label{display:inline!important}.topbar .toolbar-btn{border:var(--border-default);border-radius:var(--radius-sm);background:0 0}.topbar .toolbar-btn-text{height:32px;padding:0 12px}.topbar .toolbar-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.topbar .toolbar-btn:not(:disabled):active{background:var(--bg-press)}.topbar .toolbar-btn.active{background:var(--accent-blue);color:#0a0a0a;border-color:#0000}.topbar .toolbar-btn.active:not(:disabled):active{background:#d6d6db}.topbar .toolbar-btn:disabled:hover{color:var(--text-secondary);background:0 0}.sidebar .btn-primary{background:var(--accent-blue);color:#0a0a0a;border-radius:var(--radius-sm);box-shadow:none}.sidebar .btn-primary:hover{color:#0a0a0a;box-shadow:none;background:#fff;transform:none}.sidebar .btn-primary:not(:disabled):active{box-shadow:none;background:#d6d6db}.app-main{position:relative}.left-rail{border-right:var(--border-subtle);width:56px;padding:var(--space-sm);transition:width var(--transition-smooth), flex-basis var(--transition-smooth);z-index:60;background:#0d0d0d;flex-direction:column;flex:0 0 56px;align-items:stretch;gap:2px;display:flex}.left-rail.expanded{flex-basis:200px;width:200px}.rail-btn{color:var(--text-tertiary);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;gap:0;padding:9px;display:flex;position:relative}.left-rail.expanded .rail-btn{justify-content:flex-start;gap:12px;padding:9px 11px}.rail-btn:hover{color:var(--text-primary);background:#ffffff0a}.rail-btn:not(:disabled):active{background:var(--bg-press);color:var(--text-primary)}.rail-btn.active{color:var(--text-primary);box-shadow:inset 3px 0 0 var(--text-primary);background:#ffffff0a}.rail-label{font-size:var(--font-sm);letter-spacing:var(--tracking-sm);white-space:nowrap;font-weight:500;display:none}.left-rail.expanded .rail-label{display:inline}.rail-hamburger{color:var(--text-secondary)}.rail-divider{background:#ffffff0f;height:1px;margin:6px 6px 8px}.rail-flex{flex:1}.rail-pane{top:var(--space-md);bottom:var(--space-md);left:calc(56px + var(--space-md));width:288px;max-width:calc(100vw - 56px - 2 * var(--space-md));background:var(--glass-bg);-webkit-backdrop-filter:blur(var(--blur-panel));backdrop-filter:blur(var(--blur-panel));border:var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--glass-shadow);z-index:55;transition:left var(--transition-smooth);animation:slideIn .2s var(--ease-out-soft) both;flex-direction:column;display:flex;position:absolute;overflow:hidden}.rail-pane.expanded{left:calc(200px + var(--space-md))}.rail-pane-header{border-bottom:var(--border-subtle);font-size:var(--font-sm);letter-spacing:.04em;text-transform:uppercase;color:var(--text-primary);justify-content:space-between;align-items:center;padding:14px 16px 10px;font-weight:600;display:flex}.rail-pane-close{color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;padding:6px;display:flex}.rail-pane-close:hover{color:var(--text-primary);background:var(--bg-hover)}.rail-pane-close:active{background:var(--bg-press)}.rail-pane-body{padding:var(--space-md);gap:var(--space-lg);flex-direction:column;flex:1;display:flex;overflow-y:auto}.rail-pane-body .sidebar-section{border:none;margin:0;padding:0}.rail-segment{background:var(--bg-tertiary);border:var(--border-default);border-radius:var(--radius-md);gap:4px;padding:3px;display:flex}.rail-segment button{border-radius:var(--radius-sm);color:var(--text-secondary);font-size:var(--font-sm);cursor:pointer;letter-spacing:var(--tracking-sm);transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:none;flex:1;padding:7px;font-weight:500}.rail-segment button:hover{color:var(--text-primary);background:#ffffff0a}.rail-segment button:active{background:var(--bg-press)}.rail-segment button.active{background:var(--accent-blue);color:#0a0a0a}.rail-segment button.active:active{background:#d6d6db}.rail-num{background:var(--bg-tertiary);width:60px;color:var(--text-primary);border:var(--border-default);border-radius:var(--radius-sm);padding:var(--space-xs) var(--space-sm);font-family:var(--font-mono);font-size:var(--font-sm)}.rail-tool-grid{grid-template-columns:repeat(4,1fr);gap:6px;display:grid}.rail-tool{aspect-ratio:1;border-radius:var(--radius-sm);cursor:pointer;border:var(--border-default);background:var(--bg-tertiary);color:var(--text-secondary);transition:background var(--transition-fast), color var(--transition-fast);justify-content:center;align-items:center;display:flex}.rail-tool:hover{color:var(--text-primary);background:var(--bg-hover)}.rail-tool:active{background:var(--bg-press)}.rail-tool.active{background:var(--accent-blue);color:#0a0a0a;border-color:var(--accent-blue)}.rail-tool.active:active{background:#d6d6db}
