*{margin:0;padding:0;box-sizing:border-box}button,input,select,textarea{font-family:inherit}html{font-synthesis:none}html{font-size:16px;height:100%}body{font-family:var(--nfo-font-primary);font-size:var(--nfo-t-body);background-color:var(--nfo-bg);color:var(--nfo-ink-1);line-height:var(--nfo-lh-normal);height:100%;overflow:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{height:100vh;height:100dvh;display:flex;flex-direction:column}.drop-app{height:100vh;height:100dvh;display:flex;flex-direction:column;background-color:var(--nfo-bg);background-image:radial-gradient(circle,var(--nfo-grid-dot) 1px,transparent 1px);background-size:32px 32px;background-position:0 0;color:var(--nfo-ink-1);font-family:var(--nfo-font-primary)}.tool-container{flex:1;min-height:0;overflow:auto}.alert{padding:var(--nfo-space-2) var(--nfo-space-3);border:1px solid var(--nfo-border-faint);background:var(--nfo-surface);color:var(--nfo-ink-1);display:flex;align-items:baseline;gap:var(--nfo-space-2);font-family:var(--nfo-font-mono);font-size:var(--nfo-t-small);line-height:var(--nfo-lh-snug)}.alert-tag{display:inline-flex;align-items:baseline;gap:.25em;text-transform:uppercase;letter-spacing:.08em;font-weight:var(--nfo-fw-medium);flex-shrink:0}.alert-msg{color:var(--nfo-ink-1)}.alert-icon{display:inline-flex;align-items:center;flex-shrink:0}.alert-info .alert-tag-label{color:var(--nfo-info)}.alert-success .alert-tag-label{color:var(--nfo-ok)}.alert-warning .alert-tag-label{color:var(--nfo-warn)}.alert-error .alert-tag-label{color:var(--nfo-err)}.alert-error{border-color:var(--nfo-err)}::selection{background:var(--nfo-accent);color:var(--nfo-accent-fg)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--nfo-bg-alt)}::-webkit-scrollbar-thumb{background:var(--nfo-border)}::-webkit-scrollbar-thumb:hover{background:var(--nfo-border-strong)}@font-face{font-family:Fira Mono;src:url(/DROP/fonts/FiraMono-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Fira Mono;src:url(/DROP/fonts/FiraMono-Medium.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Fira Mono;src:url(/DROP/fonts/FiraMono-Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Departure Mono;src:url(/DROP/fonts/DepartureMono-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Helvetica Neue Cyr;src:url(/DROP/fonts/HelveticaNeueCyr-Roman.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Helvetica Neue Cyr;src:url(/DROP/fonts/HelveticaNeueCyr-Italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Helvetica Neue Cyr;src:url(/DROP/fonts/HelveticaNeueCyr-Light.woff2) format("woff2");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:Helvetica Neue Cyr;src:url(/DROP/fonts/HelveticaNeueCyr-Medium.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Helvetica Neue Cyr;src:url(/DROP/fonts/HelveticaNeueCyr-Bold.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}:root{--nfo-bg: #DBDBDB;--nfo-bg-alt: #cdcdcd;--nfo-bg-deep: #c2c2c2;--nfo-surface: #DBDBDB;--nfo-surface-alt: #d3d3d3;--nfo-ink-1: #1a1c1e;--nfo-ink-2: #4f5358;--nfo-ink-3: #878a8f;--nfo-ink-4: #b6b8bc;--nfo-ink-inv: #DBDBDB;--nfo-accent: #da532c;--nfo-accent-dim: #b84322;--nfo-accent-tint: rgba(218, 83, 44, .08);--nfo-accent-fg: #ffffff;--nfo-border: #b8babd;--nfo-border-faint: #c9cbcd;--nfo-border-strong: #7d8085;--nfo-grid-dot: rgba(0, 0, 0, .08);--nfo-ok: #3d7a4f;--nfo-warn: #b57a1f;--nfo-err: #c23b22;--nfo-info: #2e6098;--nfo-font-primary: "Departure Mono", "Fira Mono", "Courier New", Courier, monospace;--nfo-font-mono: "Departure Mono", "Fira Mono", "Courier New", Courier, monospace;--nfo-font-wordmark: "Instrument Serif", "Helvetica Neue Cyr", "Helvetica Neue", Helvetica, serif;--nfo-fw-regular: 400;--nfo-fw-medium: 500;--nfo-fw-bold: 700;--nfo-t-base: .9375rem;--nfo-t-hero: var(--nfo-t-base);--nfo-t-h1: var(--nfo-t-base);--nfo-t-h2: var(--nfo-t-base);--nfo-t-h3: var(--nfo-t-base);--nfo-t-h4: var(--nfo-t-base);--nfo-t-body: var(--nfo-t-base);--nfo-t-small: var(--nfo-t-base);--nfo-t-xs: var(--nfo-t-base);--nfo-t-mono: var(--nfo-t-base);--nfo-t-mono-sm: var(--nfo-t-base);--nfo-lh-tight: 1.15;--nfo-lh-snug: 1.3;--nfo-lh-normal: 1.5;--nfo-lh-code: 1.65;--nfo-lh-loose: 1.8;--nfo-ls-tight: -.02em;--nfo-ls-normal: 0em;--nfo-ls-wide: .04em;--nfo-ls-caps: .1em;--nfo-ls-wider: .14em;--nfo-space-1: 4px;--nfo-space-2: 8px;--nfo-space-3: 12px;--nfo-space-4: 16px;--nfo-space-5: 24px;--nfo-space-6: 32px;--nfo-space-7: 48px;--nfo-space-8: 64px;--nfo-space-9: 96px;--nfo-space-10: 128px;--nfo-radius: 0px;--nfo-border-default: 1px solid var(--nfo-border);--nfo-border-faint-line: 1px solid var(--nfo-border-faint);--nfo-border-strong-line: 1px solid var(--nfo-border-strong);--nfo-border-accent: 1px solid var(--nfo-accent);--nfo-shadow: none;--nfo-ease-default: cubic-bezier(.22, .1, .36, 1);--nfo-ease-snap: cubic-bezier(.4, 0, .2, 1);--nfo-duration-fast: 90ms;--nfo-duration-base: .15s;--nfo-duration-slow: .26s;--nfo-transition-color: color var(--nfo-duration-fast) var(--nfo-ease-default), background-color var(--nfo-duration-fast) var(--nfo-ease-default);--nfo-transition-border: border-color var(--nfo-duration-fast) var(--nfo-ease-default);--nfo-max-width: 1200px;--nfo-max-width-sm: 800px;--nfo-nav-height: 48px;--nfo-page-gutter: clamp(16px, 4vw, 48px)}[data-theme=dark]{--nfo-bg: #0f0e0c;--nfo-bg-alt: #181714;--nfo-bg-deep: #1e1d1a;--nfo-surface: #1c1b18;--nfo-surface-alt: #252320;--nfo-ink-1: #f0ede5;--nfo-ink-2: #b0a89e;--nfo-ink-3: #706862;--nfo-ink-4: #4a4540;--nfo-ink-inv: #1a1916;--nfo-border: #2e2b26;--nfo-border-faint: #232018;--nfo-border-strong: #4a4540;--nfo-grid-dot: rgba(255, 255, 255, .05)}:root{--ds-color-background: var(--nfo-bg);--ds-color-background-secondary: var(--nfo-bg-alt);--ds-color-background-tertiary: var(--nfo-bg-deep);--ds-color-text-primary: var(--nfo-ink-1);--ds-color-text-secondary: var(--nfo-ink-2);--ds-color-text-muted: var(--nfo-ink-3);--ds-color-text-tertiary: var(--nfo-ink-4);--ds-color-border: var(--nfo-border);--ds-color-border-muted: var(--nfo-border-faint);--ds-color-border-subtle: var(--nfo-border-faint);--ds-color-primary: var(--nfo-accent);--ds-color-accent: var(--nfo-accent);--ds-color-accent-dark: var(--nfo-accent-dim);--ds-color-accent-light: var(--nfo-accent);--ds-color-accent-glow: var(--nfo-accent-tint);--ds-color-success: var(--nfo-ok);--ds-color-error: var(--nfo-err);--ds-color-warning: var(--nfo-warn);--ds-color-info: var(--nfo-info);--ds-font-mono: var(--nfo-font-mono);--ds-font-sans: var(--nfo-font-primary);--ds-font-size-xs: var(--nfo-t-xs);--ds-font-size-sm: var(--nfo-t-small);--ds-font-size-base: var(--nfo-t-body);--ds-font-size-lg: var(--nfo-t-h4);--ds-font-size-xl: var(--nfo-t-h3);--ds-font-size-2xl: var(--nfo-t-h2);--ds-font-size-3xl: var(--nfo-t-h1);--ds-font-size-4xl: var(--nfo-t-h1);--ds-font-size-5xl: var(--nfo-t-hero);--ds-font-weight-light: var(--nfo-fw-regular);--ds-font-weight-normal: var(--nfo-fw-regular);--ds-font-weight-medium: var(--nfo-fw-medium);--ds-font-weight-semibold: var(--nfo-fw-medium);--ds-font-weight-bold: var(--nfo-fw-bold);--ds-line-height-tight: var(--nfo-lh-tight);--ds-line-height-normal: var(--nfo-lh-snug);--ds-line-height-relaxed: var(--nfo-lh-code);--ds-spacing-xs: var(--nfo-space-1);--ds-spacing-sm: var(--nfo-space-2);--ds-spacing-md: var(--nfo-space-4);--ds-spacing-lg: var(--nfo-space-5);--ds-spacing-xl: var(--nfo-space-6);--ds-spacing-xxl: var(--nfo-space-7);--ds-border-radius-sm: 0;--ds-border-radius-md: 0;--ds-border-radius-lg: 0;--ds-border-radius-full: 0;--ds-transition-fast: var(--nfo-duration-fast) var(--nfo-ease-default);--ds-transition-medium: var(--nfo-duration-base) var(--nfo-ease-default);--ds-transition-slow: var(--nfo-duration-slow) var(--nfo-ease-default);--ds-transition-bounce: var(--nfo-duration-base) var(--nfo-ease-snap)}h1,.ds-h1{font-family:var(--ds-font-mono);font-size:var(--nfo-t-h1);font-weight:var(--nfo-fw-regular);line-height:var(--nfo-lh-snug);letter-spacing:var(--nfo-ls-tight);color:var(--ds-color-text-primary);margin:0 0 var(--ds-spacing-lg) 0}h2,.ds-h2{font-family:var(--ds-font-mono);font-size:var(--nfo-t-h2);font-weight:var(--nfo-fw-regular);line-height:var(--nfo-lh-snug);color:var(--ds-color-text-primary);margin:0 0 var(--ds-spacing-md) 0}h3,.ds-h3{font-family:var(--ds-font-mono);font-size:var(--nfo-t-h3);font-weight:var(--nfo-fw-medium);line-height:var(--nfo-lh-snug);color:var(--ds-color-text-primary);margin:0 0 var(--ds-spacing-sm) 0}h4,.ds-h4{font-family:var(--ds-font-mono);font-size:var(--nfo-t-h4);font-weight:var(--nfo-fw-medium);line-height:var(--nfo-lh-normal);color:var(--ds-color-text-primary);margin:0 0 var(--ds-spacing-sm) 0}h5,.ds-h5{font-family:var(--ds-font-mono);font-size:var(--nfo-t-small);font-weight:var(--nfo-fw-regular);line-height:var(--nfo-lh-normal);color:var(--ds-color-text-secondary);margin:0 0 var(--ds-spacing-sm) 0;text-transform:uppercase;letter-spacing:var(--nfo-ls-caps)}h6,.ds-h6{font-family:var(--ds-font-mono);font-size:var(--nfo-t-xs);font-weight:var(--nfo-fw-regular);line-height:var(--nfo-lh-normal);color:var(--ds-color-text-muted);margin:0 0 var(--ds-spacing-sm) 0;text-transform:uppercase;letter-spacing:var(--nfo-ls-caps)}p,.ds-p{font-family:var(--ds-font-mono);font-size:var(--ds-font-size-base);font-weight:var(--ds-font-weight-normal);line-height:var(--ds-line-height-relaxed);color:var(--ds-color-text-secondary);margin:0 0 var(--ds-spacing-md) 0}.ds-text-xs{font-size:var(--ds-font-size-xs);line-height:var(--ds-line-height-normal)}.ds-text-sm{font-size:var(--ds-font-size-sm);line-height:var(--ds-line-height-normal)}.ds-text-base{font-size:var(--ds-font-size-base);line-height:var(--ds-line-height-normal)}.ds-text-lg{font-size:var(--ds-font-size-lg);line-height:var(--ds-line-height-normal)}.ds-text-xl{font-size:var(--ds-font-size-xl);line-height:var(--ds-line-height-normal)}.ds-font-light{font-weight:var(--ds-font-weight-light)}.ds-font-normal{font-weight:var(--ds-font-weight-normal)}.ds-font-medium{font-weight:var(--ds-font-weight-medium)}.ds-font-semibold{font-weight:var(--ds-font-weight-semibold)}.ds-font-bold{font-weight:var(--ds-font-weight-bold)}.ds-text-primary{color:var(--ds-color-text-primary)}.ds-text-secondary{color:var(--ds-color-text-secondary)}.ds-text-muted{color:var(--ds-color-text-muted)}.ds-text-accent{color:var(--ds-color-accent)}.ds-text-success{color:var(--ds-color-success)}.ds-text-error{color:var(--ds-color-error)}.ds-text-warning{color:var(--ds-color-warning)}.ds-text-info{color:var(--ds-color-info)}.ds-text-mono{font-family:var(--ds-font-mono)}.ds-text-uppercase{text-transform:uppercase;letter-spacing:var(--nfo-ls-caps)}.ds-text-center{text-align:center}.ds-text-left{text-align:left}.ds-text-right{text-align:right}.drop-simple-spectrum-chart{display:flex;flex-direction:column;height:100%;background:var(--color-background);border-radius:var(--border-radius-md);overflow:hidden}.drop-simple-controls{display:flex;align-items:center;gap:var(--spacing-md);padding:12px;background:rgba(var(--color-background-rgb),.95);border-top:1px solid var(--color-border-muted);font-family:var(--font-mono);min-height:42px}.drop-play-button{background:var(--color-amber);color:var(--color-background);border:none;border-radius:var(--border-radius-sm);padding:var(--spacing-sm) 12px;font-size:14px;cursor:pointer;transition:all .2s;outline:none;min-width:50px}.drop-play-button:hover{background:var(--color-amber-light)}.drop-play-button:active{transform:translateY(1px)}.drop-frame-controls{display:flex;align-items:center;gap:var(--spacing-md);flex:1}.drop-frame-info{color:var(--color-text-muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.5px;min-width:90px}.drop-frame-slider{flex:1;-webkit-appearance:none;background:var(--color-background-tertiary);height:6px;border-radius:3px;outline:none;transition:background .2s}.drop-frame-slider:hover{background:var(--color-background-secondary)}.drop-frame-slider::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--color-amber);cursor:pointer;border:2px solid var(--color-background);transition:all .2s}.drop-frame-slider::-webkit-slider-thumb:hover{background:var(--color-amber-light);transform:scale(1.1)}.drop-frame-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--color-amber);cursor:pointer;border:2px solid var(--color-background);transition:all .2s}.drop-chart-container{flex:1;position:relative;min-height:0}.drop-simple-chart-canvas{width:100%;height:100%;display:block;cursor:default}.drop-chart-info{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(var(--color-background-rgb),.8));padding:var(--spacing-sm) 12px var(--spacing-xs);pointer-events:none}.drop-chart-stats{display:flex;gap:var(--spacing-md);font-family:var(--font-mono);font-size:10px;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px}.drop-chart-stats span{padding:2px 4px;background:rgba(var(--color-background-rgb),.7);border-radius:var(--border-radius-sm);border:1px solid rgba(var(--color-border-muted-rgb),.3)}.drop-chart-stats span:first-child{color:var(--color-amber);border-color:var(--nfo-accent);font-weight:600}.drop-simple-spectrum-chart.empty{opacity:.6}.drop-simple-spectrum-chart.empty .drop-simple-chart-canvas{filter:grayscale(100%)}.drop-simple-spectrum-chart.loading:before{content:"";position:absolute;inset:0;background:rgba(var(--color-background-rgb),.8);z-index:20}.drop-simple-spectrum-chart.loading:after{content:"Executing Lua...";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:var(--color-amber);font-family:var(--font-mono);font-size:12px;z-index:21;animation:pulse 1.5s ease-in-out infinite;text-transform:uppercase;letter-spacing:.5px}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}@media (max-width: 768px){.drop-simple-controls{padding:var(--spacing-sm);gap:12px}.drop-frame-info{font-size:10px;min-width:80px}.drop-chart-stats{gap:12px;font-size:9px}.drop-chart-stats span{padding:1px 3px}}@media (max-width: 480px){.drop-simple-controls{flex-direction:column;gap:var(--spacing-sm)}.drop-frame-controls{width:100%}.drop-chart-stats{flex-direction:column;gap:var(--spacing-xs)}}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){.drop-simple-chart-canvas{image-rendering:-webkit-optimize-contrast;image-rendering:crisp-edges}}.ds-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--ds-spacing-sm);white-space:nowrap;font-family:var(--ds-font-mono);font-weight:var(--ds-font-weight-medium);letter-spacing:.1em;text-transform:uppercase;border:1px solid transparent;border-radius:0;box-shadow:none;cursor:pointer;transition:background-color var(--ds-transition-fast),color var(--ds-transition-fast),border-color var(--ds-transition-fast);-webkit-user-select:none;user-select:none}.ds-btn-xs{height:22px;padding:0 var(--ds-spacing-sm);font-size:var(--ds-font-size-xs)}.ds-btn-sm{height:28px;padding:0 var(--ds-spacing-md);font-size:var(--ds-font-size-sm)}.ds-btn-md{height:32px;padding:0 var(--ds-spacing-md);font-size:var(--ds-font-size-sm)}.ds-btn-lg{height:40px;padding:0 var(--ds-spacing-lg);font-size:var(--ds-font-size-base)}.ds-btn-xl{height:48px;padding:0 var(--ds-spacing-xl);font-size:var(--ds-font-size-lg)}.ds-btn-icon{padding:0;aspect-ratio:1}.ds-btn-block{display:flex;width:100%}.ds-btn-primary{background:var(--nfo-ink-1);color:var(--nfo-bg);border-color:var(--nfo-ink-1)}.ds-btn-primary:hover:not(:disabled){background:var(--nfo-ink-2);border-color:var(--nfo-ink-2)}.ds-btn-primary:active:not(:disabled){background:var(--nfo-ink-1)}.ds-btn-accent{background:var(--nfo-accent);color:var(--nfo-accent-fg);border-color:var(--nfo-accent)}.ds-btn-accent:hover:not(:disabled){background:var(--nfo-accent-dim);border-color:var(--nfo-accent-dim)}.ds-btn-secondary{background:var(--nfo-surface);color:var(--nfo-ink-1);border-color:var(--nfo-border)}.ds-btn-secondary:hover:not(:disabled){background:var(--nfo-surface-alt);border-color:var(--nfo-border-strong)}.ds-btn-ghost{background:transparent;color:var(--nfo-ink-2);border-color:transparent}.ds-btn-ghost:hover:not(:disabled){color:var(--nfo-ink-1);background:var(--nfo-surface-alt)}.ds-btn-danger{background:var(--nfo-surface);color:var(--nfo-err);border-color:var(--nfo-err)}.ds-btn-danger:hover:not(:disabled){background:var(--nfo-err);color:var(--nfo-bg)}.ds-btn-success{background:var(--nfo-surface);color:var(--nfo-ok);border-color:var(--nfo-ok)}.ds-btn-success:hover:not(:disabled){background:var(--nfo-ok);color:var(--nfo-bg)}.ds-btn:focus-visible{outline:1px solid var(--nfo-accent);outline-offset:1px}.ds-btn:disabled{opacity:.5;cursor:not-allowed;filter:none}.ds-btn-loading{color:transparent!important;pointer-events:none}.ds-btn-spinner{position:absolute;left:50%;top:50%;width:1em;height:1em;margin-left:-.5em;margin-top:-.5em;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:ds-spin .8s linear infinite}.ds-btn-primary .ds-btn-spinner,.ds-btn-accent .ds-btn-spinner{border-color:var(--nfo-bg);border-right-color:transparent}@keyframes ds-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ds-input-container{display:flex;flex-direction:column;gap:var(--ds-spacing-xs);width:100%}.ds-input-container-horizontal{flex-direction:row;align-items:center;gap:var(--ds-spacing-sm)}.ds-input-label{font-family:var(--ds-font-mono);font-size:var(--ds-font-size-sm);font-weight:var(--ds-font-weight-medium);color:var(--nfo-ink-2);letter-spacing:.06em;text-transform:lowercase;transition:color var(--ds-transition-fast)}.ds-input-container-horizontal .ds-input-label{white-space:nowrap;min-width:120px}.ds-input-wrapper{position:relative;width:100%}.ds-input-wrapper--prompt:before{content:"";position:absolute;left:var(--ds-spacing-sm);top:50%;transform:translateY(-50%);color:var(--nfo-accent);font-family:var(--ds-font-mono);font-size:var(--ds-font-size-base);pointer-events:none;z-index:1}.ds-input-wrapper--prompt .ds-input{padding-left:calc(var(--ds-spacing-md) + 10px)}.ds-input{width:100%;background:var(--nfo-surface);border:1px solid var(--nfo-border);border-radius:0;color:var(--nfo-ink-1);font-family:var(--ds-font-mono);transition:border-color var(--ds-transition-fast),background-color var(--ds-transition-fast),color var(--ds-transition-fast);outline:none}.ds-input::placeholder{color:var(--nfo-ink-3);opacity:1}.ds-input-xs{height:22px;padding:0 var(--ds-spacing-sm);font-size:var(--ds-font-size-xs)}.ds-input-sm{height:28px;padding:0 var(--ds-spacing-sm);font-size:var(--ds-font-size-sm)}.ds-input-md{height:32px;padding:0 var(--ds-spacing-md);font-size:var(--ds-font-size-sm)}.ds-input-lg{height:40px;padding:0 var(--ds-spacing-md);font-size:var(--ds-font-size-base)}textarea.ds-input{height:auto;padding:var(--ds-spacing-sm);min-height:80px;resize:vertical;line-height:var(--nfo-lh-code, 1.65)}.ds-input:hover:not(:disabled):not(:focus){border-color:var(--nfo-border-strong)}.ds-input:focus:not(:disabled){border-color:var(--nfo-border-strong);background:var(--nfo-bg);box-shadow:none}.ds-input:disabled{opacity:.55;cursor:not-allowed;background:var(--nfo-surface-alt)}.ds-input-error{border-color:var(--nfo-err)}.ds-input-error:focus{border-color:var(--nfo-err)}.ds-input-success{border-color:var(--nfo-ok)}.ds-input-success:focus{border-color:var(--nfo-ok)}.ds-input-helper{font-size:var(--ds-font-size-xs);color:var(--nfo-ink-3);margin-top:2px}.ds-input-error-text{font-size:var(--ds-font-size-xs);color:var(--nfo-err);margin-top:2px;display:flex;align-items:center;gap:4px}input[type=file]{width:100%;background:var(--nfo-surface);border:1px dashed var(--nfo-border);border-radius:0;color:var(--nfo-ink-2);font-family:var(--ds-font-mono);transition:border-color var(--ds-transition-fast),background-color var(--ds-transition-fast);outline:none;cursor:pointer;padding:var(--ds-spacing-sm) var(--ds-spacing-md);padding-left:calc(var(--ds-spacing-md) + 12px);font-size:var(--ds-font-size-sm);position:relative}input[type=file]:before{content:"";position:absolute;left:var(--ds-spacing-sm);top:50%;transform:translateY(-50%);color:var(--nfo-accent);font-family:var(--ds-font-mono);font-size:var(--ds-font-size-base);pointer-events:none}.ds-file-input-wrapper{position:relative;width:100%}.ds-file-input-wrapper:before{content:"";position:absolute;left:var(--ds-spacing-sm);top:50%;transform:translateY(-50%);color:var(--nfo-accent);font-family:var(--ds-font-mono);font-size:var(--ds-font-size-base);pointer-events:none;z-index:1}.ds-file-input-wrapper:has(input[type=file]:focus):before{color:var(--nfo-ink-1)}input[type=file]:hover:not(:disabled){border-color:var(--nfo-border-strong)}input[type=file]:focus:not(:disabled){border-color:var(--nfo-border-strong)}input[type=file]:disabled{opacity:.55;cursor:not-allowed;color:var(--nfo-ink-3)}input[type=file]::-webkit-file-upload-button{display:none}input[type=file]::file-selector-button{display:none}.ds-select-container{display:flex;flex-direction:column;gap:var(--ds-spacing-xs);width:100%}.ds-select-label{font-family:var(--ds-font-mono);font-size:var(--ds-font-size-sm);font-weight:var(--ds-font-weight-medium);color:var(--nfo-ink-2);letter-spacing:.06em;text-transform:lowercase;transition:color var(--ds-transition-fast)}.ds-select-wrapper{position:relative;width:100%}.ds-select-wrapper:before{content:"";position:absolute;left:var(--ds-spacing-sm);top:50%;transform:translateY(-50%);color:var(--nfo-accent);font-family:var(--ds-font-mono);font-size:var(--ds-font-size-base);pointer-events:none;transition:color var(--ds-transition-fast);z-index:1}.ds-select-wrapper.ds-select-open:before,.ds-select-wrapper:has(.ds-select:focus):before{content:"▾";color:var(--nfo-ink-1)}.ds-select{width:100%;background:var(--nfo-surface);border:1px solid var(--nfo-border);border-radius:0;color:var(--nfo-ink-1);font-family:var(--ds-font-mono);transition:border-color var(--ds-transition-fast),background-color var(--ds-transition-fast),color var(--ds-transition-fast);outline:none;appearance:none;cursor:pointer;padding-left:calc(var(--ds-spacing-md) + 10px);padding-right:var(--ds-spacing-md)}.ds-select-xs{height:22px;font-size:var(--ds-font-size-xs)}.ds-select-sm{height:28px;font-size:var(--ds-font-size-sm)}.ds-select-md{height:32px;font-size:var(--ds-font-size-sm)}.ds-select-lg{height:40px;font-size:var(--ds-font-size-base)}.ds-select:hover:not(:disabled):not(:focus){border-color:var(--nfo-border-strong)}.ds-select:focus:not(:disabled){border-color:var(--nfo-border-strong);background:var(--nfo-bg)}.ds-select:disabled{opacity:.55;cursor:not-allowed;background:var(--nfo-surface-alt);color:var(--nfo-ink-3)}.ds-select-error{border-color:var(--nfo-err)}.ds-select-success{border-color:var(--nfo-ok)}.ds-select-helper{font-size:var(--ds-font-size-xs);color:var(--nfo-ink-3);margin-top:2px}.ds-select-error-text{font-size:var(--ds-font-size-xs);color:var(--nfo-err);margin-top:2px;display:flex;align-items:center;gap:4px}.ds-select::-ms-expand{display:none}.ds-select option{background:var(--nfo-surface);color:var(--nfo-ink-1);padding:var(--ds-spacing-sm)}.ds-card{background:var(--nfo-surface);border:1px solid var(--nfo-border);border-radius:0;overflow:hidden;transition:background-color var(--ds-transition-medium),border-color var(--ds-transition-medium);display:flex;flex-direction:column}.ds-card-glass{background:var(--nfo-surface);-webkit-backdrop-filter:none;backdrop-filter:none;border-color:var(--nfo-border)}.ds-card-outline{background:transparent;border:1px solid var(--nfo-border)}.ds-card-header{padding:var(--ds-spacing-sm) var(--ds-spacing-md);border-bottom:1px solid var(--nfo-border-faint);background:transparent;font-family:var(--ds-font-mono);font-weight:var(--ds-font-weight-medium);font-size:var(--ds-font-size-sm);color:var(--nfo-ink-1);text-transform:lowercase;letter-spacing:.06em;display:flex;align-items:center;justify-content:space-between}.ds-card-body{padding:var(--ds-spacing-md);flex:1;color:var(--nfo-ink-1)}.ds-card-footer{padding:var(--ds-spacing-sm) var(--ds-spacing-md);border-top:1px solid var(--nfo-border-faint);background:transparent;display:flex;align-items:center;gap:var(--ds-spacing-md)}.ds-card-interactive{cursor:pointer}.ds-card-interactive:hover{border-color:var(--nfo-border-strong);background:var(--nfo-surface-alt);transform:none;box-shadow:none}.ds-card-interactive:focus-visible{outline:1px solid var(--nfo-accent);outline-offset:1px}.nfo-panel{background:var(--nfo-surface, var(--ds-color-surface));border:var(--nfo-border-default, 1px solid var(--ds-color-border));color:var(--nfo-ink-1, var(--ds-color-text-primary));font-family:var(--nfo-font-primary, var(--ds-font-mono))}.nfo-panel__chrome{display:flex;align-items:center;justify-content:space-between;gap:var(--nfo-space-3, 12px);padding:var(--nfo-space-2, 8px) var(--nfo-space-3, 12px);border-bottom:var(--nfo-border-faint-line, 1px solid var(--nfo-border-faint));font-size:var(--nfo-t-small, .6875rem);text-transform:lowercase;letter-spacing:.06em;color:var(--nfo-ink-2)}.nfo-panel__title{display:inline-flex;align-items:baseline;gap:.35em;font-weight:var(--nfo-fw-medium, 500)}.nfo-panel__label{color:var(--nfo-ink-1)}.nfo-panel__actions{display:inline-flex;align-items:center;gap:var(--nfo-space-2, 8px)}.nfo-panel__body{font-size:var(--nfo-t-body, .8125rem)}.nfo-panel--padded .nfo-panel__body{padding:var(--nfo-space-4, 16px)}.nfo-section-label{display:flex;align-items:center;gap:var(--nfo-space-3, 12px);font-family:var(--nfo-font-primary, var(--ds-font-mono));font-size:var(--nfo-t-small, .6875rem);color:var(--nfo-ink-2);text-transform:lowercase;letter-spacing:.06em;padding:var(--nfo-space-2, 8px) 0}.nfo-section-label__index{color:var(--nfo-ink-3);font-variant-numeric:tabular-nums}.nfo-section-label__title{display:inline-flex;align-items:baseline;gap:.35em;flex-shrink:0}.nfo-section-label__label{color:var(--nfo-ink-1);font-weight:var(--nfo-fw-medium, 500)}.nfo-section-label__rule{flex:1;height:0;border-top:var(--nfo-border-faint-line, 1px solid var(--nfo-border-faint))}.nfo-section-label__actions{display:inline-flex;align-items:center;gap:var(--nfo-space-2, 8px);flex-shrink:0}.nfo-status-badge{display:inline-flex;align-items:baseline;gap:.4em;font-family:var(--nfo-font-primary, var(--ds-font-mono));font-size:var(--nfo-t-small, .6875rem);letter-spacing:.08em;text-transform:uppercase;line-height:var(--nfo-lh-snug, 1.3)}.nfo-status-badge__label{font-weight:var(--nfo-fw-medium, 500)}.nfo-status-badge__msg{color:var(--nfo-ink-2);font-weight:var(--nfo-fw-regular, 400);text-transform:none;letter-spacing:0}.nfo-status-badge--ok .nfo-status-badge__label{color:var(--nfo-ok)}.nfo-status-badge--err .nfo-status-badge__label{color:var(--nfo-err)}.nfo-status-badge--warn .nfo-status-badge__label{color:var(--nfo-warn)}.nfo-status-badge--info .nfo-status-badge__label{color:var(--nfo-info)}.nfo-segmented{display:inline-flex;border:var(--nfo-border-default, 1px solid var(--nfo-border));background:var(--nfo-surface);font-family:var(--nfo-font-primary, var(--ds-font-mono))}.nfo-segmented__btn{appearance:none;border:0;background:transparent;color:var(--nfo-ink-2);font-family:inherit;font-size:var(--nfo-t-small, .6875rem);letter-spacing:.08em;text-transform:uppercase;padding:var(--nfo-space-2, 8px) var(--nfo-space-4, 16px);cursor:pointer;border-right:var(--nfo-border-faint-line, 1px solid var(--nfo-border-faint));transition:background-color 80ms linear,color 80ms linear}.nfo-segmented__btn:last-child{border-right:0}.nfo-segmented__btn:hover:not(:disabled):not(.is-selected){color:var(--nfo-ink-1);background:var(--nfo-surface-alt)}.nfo-segmented__btn.is-selected{background:var(--nfo-ink-1);color:var(--nfo-bg)}.nfo-segmented__btn:disabled{color:var(--nfo-ink-4);cursor:not-allowed}.nfo-segmented__btn:focus-visible{outline:1px solid var(--nfo-accent);outline-offset:-1px}.nfo-segmented--sm .nfo-segmented__btn{padding:var(--nfo-space-1, 4px) var(--nfo-space-3, 12px);font-size:var(--nfo-t-xs, .5625rem)}.nfo-param-slider{display:grid;grid-template-columns:120px 1fr 56px;gap:12px;align-items:center;font-family:var(--nfo-font-primary, var(--ds-font-mono))}.nfo-param-slider__label{font-size:var(--nfo-t-small, .75rem);text-transform:lowercase;letter-spacing:.06em;color:var(--nfo-ink-2)}.nfo-param-slider__track{position:relative;height:14px;display:flex;align-items:center}.nfo-param-slider__track:before{content:"";position:absolute;inset:50% 0;height:1px;background:var(--nfo-border-faint, var(--ds-color-border))}.nfo-param-slider__fill{position:absolute;left:0;top:50%;transform:translateY(-50%);height:1px;background:var(--nfo-accent, #da532c);pointer-events:none}.nfo-param-slider__track input[type=range]{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;background:transparent;appearance:none;-webkit-appearance:none;cursor:pointer}.nfo-param-slider__track input[type=range]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:8px;height:14px;background:var(--nfo-accent, #da532c);border:none;border-radius:0;cursor:pointer}.nfo-param-slider__track input[type=range]::-moz-range-thumb{width:8px;height:14px;background:var(--nfo-accent, #da532c);border:none;border-radius:0;cursor:pointer}.nfo-param-slider__track input[type=range]:focus-visible{outline:1px solid var(--nfo-accent);outline-offset:4px}.nfo-param-slider__track[data-disabled]{opacity:.45;pointer-events:none}.nfo-param-slider__value{font-size:var(--nfo-t-small, .75rem);color:var(--nfo-ink-1);font-variant-numeric:tabular-nums;text-align:right}.nfo-transport{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;font-family:var(--nfo-font-primary, var(--ds-font-mono));font-size:var(--nfo-t-small, .75rem);color:var(--nfo-ink-2)}.nfo-transport[aria-disabled=true]{opacity:.55;pointer-events:none}.nfo-transport__btn{font-family:inherit;font-size:var(--nfo-t-small, .75rem);text-transform:lowercase;letter-spacing:.06em;color:var(--nfo-ink-1);background:transparent;border:1px solid var(--nfo-border-strong, var(--ds-color-border));border-radius:0;padding:4px 10px;cursor:pointer}.nfo-transport__btn:hover:not(:disabled){border-color:var(--nfo-accent, #da532c);color:var(--nfo-accent, #da532c)}.nfo-transport__btn:disabled{opacity:.45;cursor:not-allowed}.nfo-transport__track{position:relative;height:16px;cursor:pointer;display:flex;align-items:center}.nfo-transport__track:before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:var(--nfo-border-faint, var(--ds-color-border))}.nfo-transport__fill{position:absolute;left:0;top:50%;height:1px;background:var(--nfo-accent, #da532c);pointer-events:none}.nfo-transport__dot{position:absolute;top:50%;width:6px;height:6px;background:var(--nfo-accent, #da532c);border-radius:50%;transform:translate(-50%,-50%);pointer-events:none}.nfo-transport__count{font-variant-numeric:tabular-nums;letter-spacing:.04em;color:var(--nfo-ink-3)}.nfo-transport__track:focus-visible{outline:1px solid var(--nfo-accent);outline-offset:4px}.nfo-dropzone{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--nfo-space-3, 12px);width:100%;padding:var(--nfo-space-6, 32px) var(--nfo-space-5, 24px);border:1px dashed var(--nfo-border);background:var(--nfo-surface);color:var(--nfo-ink-2);font-family:var(--nfo-font-primary, var(--ds-font-mono));font-size:var(--nfo-t-body, .9375rem);line-height:var(--nfo-lh-normal, 1.5);text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;transition:border-color 80ms linear,background-color 80ms linear,color 80ms linear}.nfo-dropzone:hover:not(.is-disabled){border-color:var(--nfo-border-strong);color:var(--nfo-ink-1)}.nfo-dropzone:focus-visible{outline:1px solid var(--nfo-accent);outline-offset:2px}.nfo-dropzone.is-over{border-color:var(--nfo-accent);color:var(--nfo-accent);background:var(--nfo-accent-tint)}.nfo-dropzone.is-disabled{opacity:.6;cursor:not-allowed}.nfo-dropzone__label{display:block;font-weight:var(--nfo-fw-medium, 500);font-size:var(--nfo-t-h3, 1.1875rem);line-height:1.3;color:var(--nfo-ink-1)}.nfo-dropzone__hint{display:block;color:var(--nfo-ink-3);font-size:var(--nfo-t-small, .8125rem);line-height:1.4;max-width:36ch}.nfo-dropzone__input{display:none}.nfo-terminal{background:#14130f;color:#d9d6cc;font-family:var(--nfo-font-mono, var(--ds-font-mono));font-size:var(--nfo-t-mono, .6875rem);line-height:var(--nfo-lh-code, 1.65);padding:var(--nfo-space-3, 12px);overflow-y:auto;border:var(--nfo-border-default, 1px solid var(--nfo-border));scrollbar-color:#3a3630 #14130f;scrollbar-width:thin}.nfo-terminal__line{display:grid;grid-template-columns:auto auto 1fr;gap:0 .6em;white-space:pre-wrap;word-break:break-word}.nfo-terminal__line:not(:has(.nfo-terminal__ts)){grid-template-columns:auto 1fr}.nfo-terminal__ts{color:#6e6a60;font-variant-numeric:tabular-nums}.nfo-terminal__prompt{color:#6e6a60;-webkit-user-select:none;user-select:none}.nfo-terminal__text{color:inherit}.nfo-terminal__line--ok{color:#7bbf8b}.nfo-terminal__line--err{color:#e07a64}.nfo-terminal__line--warn{color:#d9a455}.nfo-terminal__line--info{color:#6fa4d0}.nfo-terminal__line--ok .nfo-terminal__prompt{color:#7bbf8b}.nfo-terminal__line--err .nfo-terminal__prompt{color:#e07a64}.nfo-terminal__line--warn .nfo-terminal__prompt{color:#d9a455}.nfo-terminal__line--info .nfo-terminal__prompt{color:#6fa4d0}.ds-timeline{display:flex;align-items:center;gap:var(--ds-spacing-md);padding:var(--ds-spacing-md);background:rgba(var(--ds-color-background-rgb, 24, 24, 24),.95);border-top:1px solid var(--ds-color-border-muted);font-family:var(--ds-font-mono);min-height:42px}.ds-timeline-play-button{background:var(--ds-color-accent);color:var(--ds-color-background);border:none;border-radius:var(--ds-border-radius-sm);padding:var(--ds-spacing-sm) 12px;font-size:14px;cursor:pointer;transition:all var(--ds-transition-fast);outline:none;min-width:50px;display:flex;align-items:center;justify-content:center}.ds-timeline-play-button:hover:not(:disabled){background:var(--ds-color-accent-light)}.ds-timeline-play-button:active:not(:disabled){transform:translateY(1px)}.ds-timeline-play-button:disabled{background:var(--ds-color-background-tertiary);color:var(--ds-color-text-muted);cursor:not-allowed;opacity:.6}.ds-timeline-controls{display:flex;align-items:center;gap:var(--ds-spacing-md);flex:1}.ds-timeline-frame-info{color:var(--ds-color-text-muted);font-size:var(--ds-font-size-xs);text-transform:uppercase;letter-spacing:.5px;min-width:90px;white-space:nowrap}.ds-timeline-slider{flex:1;-webkit-appearance:none;background:var(--ds-color-background-tertiary);height:6px;border-radius:3px;outline:none;transition:background var(--ds-transition-fast);cursor:pointer}.ds-timeline-slider:hover:not(:disabled){background:var(--ds-color-background-secondary)}.ds-timeline-slider:disabled{cursor:not-allowed;opacity:.5}.ds-timeline-slider::-webkit-slider-thumb{-webkit-appearance:none;width:16px;height:16px;border-radius:50%;background:var(--ds-color-accent);cursor:pointer;border:2px solid var(--ds-color-background);transition:all var(--ds-transition-fast)}.ds-timeline-slider::-webkit-slider-thumb:hover:not(:disabled){background:var(--ds-color-accent-light);transform:scale(1.1)}.ds-timeline-slider::-webkit-slider-thumb:disabled{background:var(--ds-color-text-muted);cursor:not-allowed;transform:none}.ds-timeline-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--ds-color-accent);cursor:pointer;border:2px solid var(--ds-color-background);transition:all var(--ds-transition-fast);-moz-appearance:none}.ds-timeline-slider::-moz-range-thumb:hover:not(:disabled){background:var(--ds-color-accent-light);transform:scale(1.1)}.ds-timeline-slider::-moz-range-thumb:disabled{background:var(--ds-color-text-muted);cursor:not-allowed;transform:none}@media (max-width: 768px){.ds-timeline{padding:var(--ds-spacing-sm);gap:var(--ds-spacing-sm)}.ds-timeline-frame-info{font-size:10px;min-width:80px}}@media (max-width: 480px){.ds-timeline{flex-direction:column;gap:var(--ds-spacing-sm)}.ds-timeline-controls{width:100%}}.ds-timeline-play-button:focus,.ds-timeline-slider:focus{box-shadow:0 0 0 2px rgba(var(--ds-color-accent-rgb, 199, 238, 27),.3)}.tool-layout{display:grid;height:100%;background:var(--nfo-bg);color:var(--nfo-ink-1);font-family:var(--nfo-font-primary);overflow:hidden}.tool-layout{grid-template-rows:auto 1fr;grid-template-areas:"header" "main"}.tool-layout:not(:has(.tool-layout-header-row)){grid-template-rows:1fr;grid-template-areas:"main"}.tool-layout.has-logo{grid-template-areas:"header" "main"}.tool-layout:has(.tool-layout-status-bar){grid-template-rows:auto 1fr auto;grid-template-areas:"header" "main" "status"}.tool-layout.has-sidebar{grid-template-columns:auto 1fr;grid-template-areas:"header header" "sidebar main"}.tool-layout.has-sidebar:has(.tool-layout-status-bar){grid-template-rows:auto 1fr auto;grid-template-areas:"header header" "sidebar main" "status status"}.tool-layout.has-logo.has-sidebar{grid-template-columns:auto auto 1fr;grid-template-areas:"logo header header" "logo sidebar main"}.tool-layout.has-logo.has-sidebar:has(.tool-layout-status-bar){grid-template-rows:auto 1fr auto;grid-template-areas:"logo header header" "logo sidebar main" "status status status"}.tool-layout.sidebar-collapsed.has-sidebar{grid-template-columns:auto 1fr}.tool-layout.sidebar-collapsed.has-logo.has-sidebar{grid-template-columns:auto auto 1fr}.tool-layout-header-row{grid-area:header;display:flex;background:var(--nfo-bg);border-bottom:1px solid var(--nfo-border-faint);z-index:10;box-shadow:none}.tool-layout-logo{grid-area:logo;display:flex;align-items:center;justify-content:center;padding:var(--nfo-space-3);background:transparent;border-right:1px solid var(--nfo-border-faint);border-bottom:1px solid var(--nfo-border-faint);min-width:48px}.tool-layout-header{flex:1;display:flex;align-items:center;padding:var(--nfo-space-3) var(--nfo-page-gutter, var(--nfo-space-4))}.tool-layout-header-content{display:flex;align-items:center;justify-content:space-between;width:100%;gap:var(--ds-spacing-lg)}.tool-layout-header-text{display:flex;flex-direction:column;gap:var(--ds-spacing-xs)}.tool-layout-title{font-family:var(--nfo-font-primary);font-size:var(--nfo-t-h4);font-weight:var(--nfo-fw-medium);color:var(--nfo-ink-1);margin:0;text-transform:lowercase;letter-spacing:.04em}.tool-layout-description{font-size:var(--nfo-t-small);color:var(--nfo-ink-2);margin:0;text-transform:lowercase}.tool-layout-actions{display:flex;align-items:center;gap:var(--ds-spacing-md)}.tool-layout-action{display:flex;align-items:center}.tool-layout-main-row{grid-area:main;display:flex;overflow:hidden;height:100%;position:relative}.tool-layout-sidebar{display:flex;flex-direction:column;background:var(--nfo-bg-alt);border-right:1px solid var(--nfo-border-faint);position:relative;transition:width var(--ds-transition-medium);width:260px;min-width:260px}.tool-layout.sidebar-collapsed .tool-layout-sidebar{width:48px;min-width:48px}.sidebar-toggle{position:absolute;top:var(--nfo-space-1);right:var(--nfo-space-1);z-index:10;background:var(--nfo-surface);border:1px solid var(--nfo-border);color:var(--nfo-ink-2);padding:0;border-radius:0;cursor:pointer;width:22px;height:22px;display:flex;align-items:center;justify-content:center;transition:color var(--ds-transition-fast),border-color var(--ds-transition-fast)}.sidebar-toggle:hover{background:var(--nfo-surface-alt);border-color:var(--nfo-border-strong);color:var(--nfo-ink-1)}.tool-layout-sidebar-content{flex:1;overflow:hidden;padding:var(--ds-spacing-md);transition:opacity var(--ds-transition-medium)}.tool-layout.sidebar-collapsed .tool-layout-sidebar-content{opacity:0;pointer-events:none}.tool-layout-content{flex:1;display:flex;flex-direction:column;overflow:hidden;height:100%;background:var(--nfo-bg)}.tool-layout-single-panel{flex:1;overflow:auto;height:100%;padding:var(--nfo-space-5) var(--nfo-page-gutter, var(--nfo-space-4));width:100%;max-width:var(--nfo-max-width, 1280px);margin:0 auto}.tool-layout-dual-panels{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:0;background:transparent;overflow:hidden;height:100%}.tool-layout-panel{background:var(--nfo-bg);overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;height:100%;min-height:0;padding:var(--nfo-space-5) var(--nfo-page-gutter, var(--nfo-space-4))}.tool-layout-left-panel{border-right:1px solid var(--nfo-border-faint)}.tool-layout-status-bar{grid-area:status;display:flex;align-items:center;justify-content:space-between;padding:var(--nfo-space-1) var(--nfo-space-3);background:var(--nfo-bg-alt);border-top:1px solid var(--nfo-border-faint);font-family:var(--nfo-font-primary);font-size:var(--nfo-t-xs);color:var(--nfo-ink-2);min-height:24px;letter-spacing:.06em;text-transform:lowercase}@media (max-width: 768px){.tool-layout.has-sidebar{grid-template-columns:1fr;grid-template-areas:"header" "main"}.tool-layout.has-logo.has-sidebar{grid-template-columns:auto 1fr;grid-template-areas:"logo header" "main main"}.tool-layout-sidebar{display:none}.tool-layout-dual-panels{grid-template-columns:1fr;grid-template-rows:1fr 1fr}.tool-layout-header-content{flex-direction:column;align-items:flex-start;gap:var(--ds-spacing-sm)}.tool-layout-actions{align-self:stretch;justify-content:flex-end}}@media (max-width: 480px){.tool-layout-header{padding:var(--ds-spacing-sm)}.tool-layout-logo{min-width:48px;padding:var(--ds-spacing-sm)}.tool-layout-single-panel{padding:var(--ds-spacing-sm)}.tool-layout-status-bar{padding:var(--ds-spacing-xs) var(--ds-spacing-sm);font-size:var(--ds-font-size-xs)}}.nfo-tool-header{width:100%;padding:0 var(--nfo-page-gutter, 16px);margin:0 auto;max-width:var(--nfo-max-width, 1280px)}.nfo-tool-header__trailing{display:inline-flex;align-items:baseline;gap:var(--nfo-space-3, 12px);color:var(--nfo-ink-2);font-size:var(--nfo-t-small, .6875rem);text-transform:lowercase;letter-spacing:.04em}.nfo-tool-header__subtitle{color:var(--nfo-ink-2)}.ds-toast-container{position:fixed;bottom:var(--ds-spacing-lg);right:var(--ds-spacing-lg);display:flex;flex-direction:column;gap:var(--ds-spacing-sm);z-index:9999;pointer-events:none}.ds-toast{display:flex;align-items:center;justify-content:space-between;min-width:300px;max-width:400px;padding:var(--ds-spacing-md);border-radius:var(--ds-radius-md);background-color:var(--ds-surface-2);border:1px solid var(--ds-border-color);color:var(--ds-text-primary);font-family:var(--ds-font-family);font-size:var(--ds-font-size-sm);pointer-events:auto;animation:ds-toast-slide-in .3s ease-out forwards;overflow:hidden;position:relative}.ds-toast.ds-toast-exiting{animation:ds-toast-slide-out .3s ease-in forwards}.ds-toast-success{border-left:4px solid var(--ds-color-success)}.ds-toast-error{border-left:4px solid var(--ds-color-error)}.ds-toast-warning{border-left:4px solid var(--ds-color-warning)}.ds-toast-info{border-left:4px solid var(--ds-color-primary)}.ds-toast-content{flex:1;margin-right:var(--ds-spacing-sm)}.ds-toast-title{font-weight:600;margin-bottom:2px}.ds-toast-message{color:var(--ds-text-secondary);line-height:1.4}.ds-toast-close{background:none;border:none;color:var(--ds-text-tertiary);cursor:pointer;padding:4px;border-radius:var(--ds-radius-sm);display:flex;align-items:center;justify-content:center;transition:all .2s ease}.ds-toast-close:hover{background-color:var(--ds-surface-3);color:var(--ds-text-primary)}@keyframes ds-toast-slide-in{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes ds-toast-slide-out{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}.datum-viewer{display:flex;flex-direction:column;gap:var(--nfo-space-4, 16px);max-width:1360px;margin:0 auto;padding:var(--nfo-space-4, 16px);font-family:var(--nfo-font-primary, var(--ds-font-mono));color:var(--nfo-ink-1, var(--ds-color-text-primary))}.datum-viewer__header{display:flex;align-items:baseline;justify-content:flex-end;gap:var(--nfo-space-3, 12px);flex-wrap:wrap}.datum-viewer__clear{font-family:inherit;font-size:var(--nfo-t-small, .75rem);color:var(--nfo-ink-2);background:none;border:1px dashed var(--nfo-border-faint, var(--ds-color-border));border-radius:0;padding:2px 10px;cursor:pointer;text-transform:lowercase}.datum-viewer__clear:hover{color:var(--nfo-ink-1);border-color:var(--nfo-ink-3)}.datum-viewer__grid{display:grid;grid-template-columns:1fr;gap:var(--nfo-space-5, 24px);align-items:start}@media (min-width: 960px){.datum-viewer__grid{grid-template-columns:minmax(340px,1fr) minmax(0,1.7fr)}}.datum-viewer__section{display:flex;flex-direction:column;gap:var(--nfo-space-3, 12px);min-width:0}.datum-viewer__chart{height:320px;overflow:hidden}.datum-viewer__props{margin:0;display:grid;grid-template-columns:1fr;gap:6px;font-size:var(--nfo-t-body, .8125rem)}.datum-viewer__prop{display:grid;grid-template-columns:110px 1fr;gap:12px;align-items:baseline}.datum-viewer__prop dt{color:var(--nfo-ink-3);text-transform:lowercase;letter-spacing:.04em;font-size:var(--nfo-t-small, .75rem)}.datum-viewer__prop dd{color:var(--nfo-ink-1);margin:0;word-break:break-word;font-variant-numeric:tabular-nums}.wav2datum{display:flex;flex-direction:column;gap:var(--nfo-space-4, 16px);max-width:1360px;margin:0 auto;padding:var(--nfo-space-4, 16px);font-family:var(--nfo-font-primary, var(--ds-font-mono));color:var(--nfo-ink-1, var(--ds-color-text-primary))}.wav2datum__grid{display:grid;grid-template-columns:1fr;gap:var(--nfo-space-5, 24px);align-items:start}@media (min-width: 960px){.wav2datum__grid{grid-template-columns:minmax(340px,1fr) minmax(0,1.7fr)}}.wav2datum__column{display:flex;flex-direction:column;gap:var(--nfo-space-5, 24px);min-width:0}.wav2datum__section{display:flex;flex-direction:column;gap:var(--nfo-space-3, 12px)}.wav2datum__source{display:flex;flex-direction:column;gap:6px}.wav2datum__filemeta{font-size:var(--nfo-t-small, .75rem);color:var(--nfo-ink-2);font-variant-numeric:tabular-nums}.wav2datum__controls{display:flex;flex-direction:column;gap:var(--nfo-space-3, 12px)}.wav2datum__row{display:grid;grid-template-columns:120px auto 1fr;gap:8px;align-items:center}.wav2datum__rowlabel{font-size:var(--nfo-t-small, .75rem);text-transform:lowercase;letter-spacing:.06em;color:var(--nfo-ink-2)}.wav2datum__select{font-family:inherit;font-size:var(--nfo-t-body, .8125rem);color:var(--nfo-ink-1);background:var(--nfo-surface, transparent);border:1px solid var(--nfo-border-strong, var(--ds-color-border));border-radius:0;padding:4px 8px;width:100%}.wav2datum__rerun,.wav2datum__download{font-family:inherit;font-size:var(--nfo-t-body, .8125rem);text-transform:lowercase;letter-spacing:.06em;color:var(--nfo-ink-1);background:transparent;border:1px solid var(--nfo-border-strong, var(--ds-color-border));border-radius:0;padding:6px 14px;cursor:pointer;align-self:flex-start}.wav2datum__rerun:hover:not(:disabled){border-color:var(--nfo-accent, #da532c);color:var(--nfo-accent, #da532c)}.wav2datum__rerun:disabled,.wav2datum__download:disabled{opacity:.45;cursor:not-allowed}.wav2datum__download{border-color:var(--nfo-accent, #da532c);color:var(--nfo-accent, #da532c);font-weight:var(--nfo-fw-medium, 500)}.wav2datum__chart{height:240px;overflow:hidden}.wav2datum__slotmeta{display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:var(--nfo-t-small, .75rem);color:var(--nfo-ink-2)}.wav2datum__hairline{position:relative;height:1px;background:var(--nfo-border-faint, var(--ds-color-border))}.wav2datum__hairline-fill{position:absolute;left:0;top:0;bottom:0;background:var(--nfo-accent, #da532c);transition:width .15s linear}.wav2datum__output{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.wav2datum__preset{display:flex;align-items:center;gap:8px;flex:1;min-width:240px;border:1px solid var(--nfo-border-strong, var(--ds-color-border));padding:4px 10px;background:var(--nfo-surface, transparent);cursor:text}.wav2datum__preset:focus-within{border-color:var(--nfo-accent, #da532c)}.wav2datum__preset input{flex:1;font-family:inherit;font-size:var(--nfo-t-body, .8125rem);color:var(--nfo-ink-1);background:transparent;border:none;outline:none;padding:0;min-width:0}.wav2datum__preset input::placeholder{color:var(--nfo-ink-3)}.wav2datum__preset-ext{color:var(--nfo-ink-3);font-size:var(--nfo-t-small, .75rem);letter-spacing:.04em;-webkit-user-select:none;user-select:none}.wav2datum__analysis-action{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.firmware-notes{font-family:var(--nfo-font-primary, var(--ds-font-mono));font-size:var(--nfo-t-small, .75rem);line-height:1.55;color:var(--nfo-ink-2, var(--ds-color-text-secondary));padding-right:4px;max-height:240px;overflow-y:auto}@media (min-width: 960px){.firmware-notes{flex:1 1 auto;min-height:0;max-height:none}}.firmware-notes--empty{color:var(--nfo-ink-3);font-style:normal}.firmware-notes p{margin:0 0 .5em}.firmware-notes ul,.firmware-notes ol{margin:0 0 .5em;padding-left:1.25em}.firmware-notes li{margin:.1em 0}.firmware-notes code{font-family:inherit;background:var(--nfo-surface-2, transparent);padding:0 .25em;border:1px solid var(--nfo-border-faint)}.firmware-notes h1,.firmware-notes h2,.firmware-notes h3{font-size:var(--nfo-t-small);margin:.4em 0 .2em;text-transform:lowercase;color:var(--nfo-ink-1)}.flash-section{display:flex;flex-direction:column;gap:var(--nfo-space-3, 12px);font-family:var(--nfo-font-primary, var(--ds-font-mono))}.flash-section__controls{display:flex;flex-wrap:wrap;gap:var(--nfo-space-2, 8px)}.flash-section__btn{font-family:inherit;font-size:var(--nfo-t-body, .8125rem);text-transform:lowercase;letter-spacing:.06em;color:var(--nfo-ink-1);background:transparent;border:1px solid var(--nfo-border-strong, var(--ds-color-border));border-radius:0;padding:6px 14px;cursor:pointer}.flash-section__btn:hover:not(:disabled){border-color:var(--nfo-accent, #da532c);color:var(--nfo-accent, #da532c)}.flash-section__btn:disabled{opacity:.45;cursor:not-allowed}.flash-section__btn--primary{border-color:var(--nfo-accent, #da532c);color:var(--nfo-accent, #da532c);font-weight:var(--nfo-fw-medium, 500)}.flash-section__btn--primary:disabled{border-color:var(--nfo-border-faint, var(--ds-color-border));color:var(--nfo-ink-3)}.flash-section__option{display:inline-flex;align-items:center;gap:8px;font-size:var(--nfo-t-small, .75rem);color:var(--nfo-ink-2);cursor:pointer;-webkit-user-select:none;user-select:none;text-transform:lowercase;letter-spacing:.04em}.flash-section__option input{accent-color:var(--nfo-accent, #da532c)}.flash-section__option em{color:var(--nfo-ink-3);font-style:normal}.flash-section__hint{margin:0;font-size:var(--nfo-t-small, .75rem);color:var(--nfo-ink-3)}.flash-progress{display:grid;grid-template-columns:1fr 48px;gap:10px;align-items:center;font-size:var(--nfo-t-small, .75rem);color:var(--nfo-ink-2)}.flash-progress__bar{position:relative;display:block;height:4px;background:var(--nfo-border-faint, rgba(0, 0, 0, .1));overflow:hidden}.flash-progress__fill{position:absolute;inset:0 auto 0 0;background:var(--nfo-accent, #da532c);transition:width .15s linear}.flash-progress__pct{font-variant-numeric:tabular-nums;text-align:right;color:var(--nfo-ink-3)}.flash-progress--active .flash-progress__pct{color:var(--nfo-ink-1)}.download-panel{display:flex;flex-direction:column;gap:var(--nfo-space-3, 12px);font-family:var(--nfo-font-primary, var(--ds-font-mono))}.download-panel__hint{margin:0;font-size:var(--nfo-t-small, .75rem);color:var(--nfo-ink-3)}.download-panel__variant{display:inline-flex;align-items:center;gap:6px;font-size:var(--nfo-t-small, .75rem);color:var(--nfo-ink-2);cursor:pointer;-webkit-user-select:none;user-select:none;text-transform:lowercase;letter-spacing:.06em}.download-panel__variant input{accent-color:var(--nfo-accent, #da532c)}.download-panel__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--nfo-space-2, 8px)}.download-row{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;font-size:var(--nfo-t-body, .8125rem)}.download-row__label{text-transform:lowercase;letter-spacing:.06em;color:var(--nfo-ink-2);min-width:80px}.download-row__arrow{color:var(--nfo-ink-3)}.download-row__link{color:var(--nfo-accent, #da532c);text-decoration:underline;text-underline-offset:3px;font-variant-numeric:tabular-nums;word-break:break-all}.download-row__link:hover{color:var(--nfo-ink-1)}.download-row__link:focus-visible{outline:1px solid var(--nfo-accent);outline-offset:2px}.firmware-tool{display:flex;flex-direction:column;gap:var(--nfo-space-4, 16px);max-width:1360px;width:100%;margin:0 auto;padding:var(--nfo-space-4, 16px);font-family:var(--nfo-font-primary, var(--ds-font-mono));color:var(--nfo-ink-1, var(--ds-color-text-primary))}.firmware-tool__grid{display:grid;grid-template-columns:1fr;gap:var(--nfo-space-5, 24px)}@media (min-width: 960px){.firmware-tool{height:100%;min-height:0;padding-bottom:160px}.firmware-tool__grid{grid-template-columns:minmax(340px,1fr) minmax(0,1.3fr);align-items:stretch;flex:1;min-height:0}.firmware-section--version{min-height:0}}.firmware-tool__column{display:flex;flex-direction:column;gap:var(--nfo-space-5, 24px);min-width:0}.firmware-section{display:flex;flex-direction:column;gap:var(--nfo-space-3, 12px)}.firmware-section--collapsible{display:block}.firmware-section--collapsible>summary{list-style:none;cursor:pointer;position:relative}.firmware-section--collapsible>summary::-webkit-details-marker{display:none}.firmware-section--collapsible>summary>.nfo-section-label{padding-right:20px}.firmware-section--collapsible>summary:after{content:"";position:absolute;right:4px;top:50%;width:6px;height:6px;border-right:1px solid var(--nfo-ink-3);border-bottom:1px solid var(--nfo-ink-3);transform:translateY(-75%) rotate(45deg);transition:transform .12s ease}.firmware-section--collapsible[open]>summary:after{transform:translateY(-25%) rotate(-135deg)}.firmware-section--collapsible>summary:focus-visible{outline:1px solid var(--nfo-accent);outline-offset:2px}.firmware-section--collapsible[open]>summary{margin-bottom:var(--nfo-space-3, 12px)}.firmware-section--download{--nfo-bg: #2e2e2e;--nfo-bg-alt: #383838;--nfo-bg-deep: #242424;--nfo-surface: #2e2e2e;--nfo-surface-alt: #383838;--nfo-ink-1: #f4f4f4;--nfo-ink-2: #c4c6c9;--nfo-ink-3: #8e9094;--nfo-ink-4: #5a5c60;--nfo-ink-inv: #2e2e2e;--nfo-border: #4d4f51;--nfo-border-faint: #3a3c3e;--nfo-border-strong: #6c6e70;--nfo-grid-dot: rgba(255, 255, 255, .05);border:1px solid var(--nfo-border);background:var(--nfo-bg);color:var(--nfo-ink-1);padding:var(--nfo-space-3, 12px) var(--nfo-space-4, 16px) var(--nfo-space-4, 16px)}[data-theme=dark] .firmware-section--download{--nfo-bg: #c4c4c4;--nfo-bg-alt: #b8b8b8;--nfo-bg-deep: #aaaaaa;--nfo-surface: #c4c4c4;--nfo-surface-alt: #b8b8b8;--nfo-ink-1: #050505;--nfo-ink-2: #2e3236;--nfo-ink-3: #5c6065;--nfo-ink-4: #8a8d92;--nfo-ink-inv: #c4c4c4;--nfo-border: #8e9094;--nfo-border-faint: #a4a6aa;--nfo-border-strong: #5a5c60;--nfo-grid-dot: rgba(0, 0, 0, .08)}.firmware-version{display:flex;align-items:center;gap:var(--nfo-space-3, 12px);flex-wrap:wrap}.firmware-version__select{font-family:inherit;font-size:var(--nfo-t-body, .8125rem);color:var(--nfo-ink-1);background:var(--nfo-surface, transparent);border:1px solid var(--nfo-border-strong, var(--ds-color-border));border-radius:0;padding:4px 8px;min-width:220px}.firmware-version__select:focus-visible{outline:1px solid var(--nfo-accent);outline-offset:2px}.firmware-version__meta{display:flex;align-items:center;gap:var(--nfo-space-3, 12px);flex-wrap:wrap;min-height:1.4em}.firmware-version__refresh{font-family:inherit;font-size:var(--nfo-t-small, .75rem);color:var(--nfo-ink-2);background:none;border:1px dashed var(--nfo-border-faint, var(--ds-color-border));border-radius:0;padding:2px 8px;cursor:pointer;text-transform:lowercase;margin-left:auto}.firmware-version__refresh:hover{color:var(--nfo-ink-1);border-color:var(--nfo-ink-3)}.firmware-action{display:flex;flex-direction:column;gap:var(--nfo-space-2, 8px)}.firmware-action__hint{margin:0;font-size:var(--nfo-t-small, .75rem);color:var(--nfo-ink-3)}.firmware-action__version{margin:0;font-size:var(--nfo-t-body, .8125rem);color:var(--nfo-ink-2)}.firmware-action__date{color:var(--nfo-ink-3)}.uplot,.uplot *,.uplot *:before,.uplot *:after{box-sizing:border-box}.uplot{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";line-height:1.5;width:min-content}.u-title{text-align:center;font-size:18px;font-weight:700}.u-wrap{position:relative;-webkit-user-select:none;user-select:none}.u-over,.u-under{position:absolute}.u-under{overflow:hidden}.uplot canvas{display:block;position:relative;width:100%;height:100%}.u-axis{position:absolute}.u-legend{font-size:14px;margin:auto;text-align:center}.u-inline{display:block}.u-inline *{display:inline-block}.u-inline tr{margin-right:16px}.u-legend th{font-weight:600}.u-legend th>*{vertical-align:middle;display:inline-block}.u-legend .u-marker{width:1em;height:1em;margin-right:4px;background-clip:padding-box!important}.u-inline.u-live th:after{content:":";vertical-align:middle}.u-inline:not(.u-live) .u-value{display:none}.u-series>*{padding:4px}.u-series th{cursor:pointer}.u-legend .u-off>*{opacity:.3}.u-select{background:#00000012;position:absolute;pointer-events:none}.u-cursor-x,.u-cursor-y{position:absolute;left:0;top:0;pointer-events:none;will-change:transform}.u-hz .u-cursor-x,.u-vt .u-cursor-y{height:100%;border-right:1px dashed #607D8B}.u-hz .u-cursor-y,.u-vt .u-cursor-x{width:100%;border-bottom:1px dashed #607D8B}.u-cursor-pt{position:absolute;top:0;left:0;border-radius:50%;border:0 solid;pointer-events:none;will-change:transform;background-clip:padding-box!important}.u-axis.u-off,.u-select.u-off,.u-cursor-x.u-off,.u-cursor-y.u-off,.u-cursor-pt.u-off{display:none}.pot-scope{display:flex;flex-direction:column;gap:var(--nfo-space-3, 12px)}.pot-scope__chips{display:flex;flex-wrap:wrap;gap:6px}.pot-chip{display:inline-flex;align-items:center;gap:6px;font-family:inherit;font-size:var(--nfo-t-small, .75rem);text-transform:uppercase;letter-spacing:.06em;color:var(--nfo-ink-2);background:transparent;border:1px solid var(--nfo-border, var(--ds-color-border));border-radius:0;padding:3px 10px;cursor:pointer}.pot-chip:hover:not(.is-on){color:var(--nfo-ink-1);border-color:var(--nfo-ink-3)}.pot-chip.is-on{color:var(--nfo-bg);background:var(--nfo-ink-1);border-color:var(--nfo-ink-1)}.pot-chip__swatch{width:8px;height:8px;display:inline-block}.pot-scope__chart{width:100%;display:flex;align-items:center}.pot-scope__chart .uplot,.pot-scope__chart .u-wrap{width:100%}.pot-scope__readouts{display:flex;flex-wrap:wrap;gap:var(--nfo-space-4, 16px);font-size:var(--nfo-t-small, .75rem);font-variant-numeric:tabular-nums}.pot-readout{display:inline-flex;align-items:center;gap:6px;color:var(--nfo-ink-2)}.pot-readout__swatch{width:8px;height:8px;display:inline-block}.pot-readout__k{color:var(--nfo-ink-3)}.pot-readout__v{color:var(--nfo-ink-1)}.pitch-card{display:flex;flex-direction:column}.pitch-row{display:grid;grid-template-columns:56px 64px 1fr minmax(150px,240px);align-items:center;gap:var(--nfo-space-3, 12px);padding:10px 0;border-bottom:1px solid var(--nfo-border-faint, var(--ds-color-border))}.pitch-row:last-child{border-bottom:0}.pitch-row__idx{color:var(--nfo-ink-3);text-transform:uppercase;letter-spacing:.06em;font-size:var(--nfo-t-small, .75rem)}.pitch-row__note{color:var(--nfo-ink-1);font-weight:var(--nfo-fw-medium, 500);font-variant-numeric:tabular-nums}.pitch-row__freq{color:var(--nfo-ink-2);font-variant-numeric:tabular-nums}.pitch-row__cents{display:flex;align-items:center;gap:var(--nfo-space-2, 8px)}.pitch-row__cents-track{position:relative;flex:1;height:14px;border:1px solid var(--nfo-border, var(--ds-color-border));background:var(--nfo-surface)}.pitch-row__cents-mid{position:absolute;left:50%;top:0;bottom:0;width:1px;background:var(--nfo-border-strong, var(--ds-color-border))}.pitch-row__cents-dot{position:absolute;top:50%;width:6px;height:6px;background:var(--nfo-accent, #da532c);transform:translate(-50%,-50%);transition:left 90ms linear}.pitch-row__cents-val{color:var(--nfo-ink-3);font-size:var(--nfo-t-small, .75rem);font-variant-numeric:tabular-nums;min-width:42px;text-align:right}.debug-tool{display:flex;flex-direction:column;gap:var(--nfo-space-5, 24px);max-width:1360px;margin:0 auto;padding:var(--nfo-space-4, 16px);font-family:var(--nfo-font-primary, var(--ds-font-mono));color:var(--nfo-ink-1, var(--ds-color-text-primary))}.debug-conn{display:flex;flex-direction:column;gap:var(--nfo-space-3, 12px)}.debug-conn__controls{display:flex;flex-wrap:wrap;align-items:center;gap:var(--nfo-space-2, 8px)}.debug-conn__status{margin-left:auto}.debug-btn{font-family:inherit;font-size:var(--nfo-t-body, .8125rem);text-transform:lowercase;letter-spacing:.06em;color:var(--nfo-ink-1);background:transparent;border:1px solid var(--nfo-border-strong, var(--ds-color-border));border-radius:0;padding:6px 14px;cursor:pointer}.debug-btn:hover:not(:disabled){border-color:var(--nfo-accent, #da532c);color:var(--nfo-accent, #da532c)}.debug-btn:disabled{opacity:.45;cursor:not-allowed}.debug-hint{margin:0;font-size:var(--nfo-t-small, .75rem);color:var(--nfo-ink-3)}.debug-tool__cards{display:flex;flex-direction:column;gap:var(--nfo-space-5, 24px)}.debug-card{display:flex;flex-direction:column;gap:var(--nfo-space-3, 12px);min-width:0}.debug-empty{margin:0;font-size:var(--nfo-t-small, .75rem);color:var(--nfo-ink-3);padding:var(--nfo-space-4, 16px) 0}.manual-tool{display:flex;flex-direction:column;gap:var(--nfo-space-3, 12px);height:100%;max-width:1360px;width:100%;margin:0 auto;padding:var(--nfo-space-4, 16px);font-family:var(--nfo-font-primary, var(--ds-font-mono));color:var(--nfo-ink-1, var(--ds-color-text-primary))}.manual-tool__meta{display:flex;align-items:center;gap:var(--nfo-space-3, 12px);flex-wrap:wrap}.manual-tool__frame{flex:1;width:100%;min-height:70vh;border:1px solid var(--nfo-border);background:var(--nfo-bg-deep, var(--nfo-bg))}.manual-tool__placeholder{flex:1;display:flex;align-items:center;justify-content:center;min-height:40vh;border:1px dashed var(--nfo-border);color:var(--nfo-ink-3);font-size:var(--nfo-t-small);letter-spacing:.06em;text-transform:lowercase}.nfo-topbar{display:flex;align-items:center;justify-content:space-between;gap:var(--nfo-space-4, 16px);padding:10px var(--nfo-space-4, 16px);background:var(--nfo-bg-alt);border-bottom:1px solid var(--nfo-border);font-family:var(--nfo-font-primary);color:var(--nfo-ink-1)}.nfo-topbar__left{display:inline-flex;align-items:center;gap:var(--nfo-space-4, 16px);min-width:0;flex:1 1 auto}.nfo-topbar__brand{display:inline-flex;align-items:baseline;gap:.5em;flex-shrink:0}.nfo-topbar__wordmark{font-family:var(--nfo-font-wordmark);font-style:italic;font-weight:var(--nfo-fw-regular);font-size:1.125rem;letter-spacing:-.01em;color:var(--nfo-ink-1)}.nfo-topbar__divider{color:var(--nfo-ink-3);font-size:.875rem;-webkit-user-select:none;user-select:none}.nfo-topbar__product{font-family:var(--nfo-font-primary);font-size:var(--nfo-t-small);text-transform:lowercase;letter-spacing:.08em;color:var(--nfo-ink-2)}.nfo-topbar__segmented{display:inline-flex;align-items:stretch;border:1px solid var(--nfo-accent);background:var(--nfo-bg);max-width:100%;overflow-x:auto;scrollbar-width:none}.nfo-topbar__segmented::-webkit-scrollbar{display:none}.nfo-topbar__seg{appearance:none;background:transparent;border:0;padding:4px 14px;font-family:var(--nfo-font-primary);font-weight:400;font-size:var(--nfo-t-small);letter-spacing:.06em;text-transform:lowercase;color:var(--nfo-ink-3);cursor:pointer;transition:color 80ms linear,background-color 80ms linear;white-space:nowrap}.nfo-topbar__seg+.nfo-topbar__seg{border-left:1px solid var(--nfo-accent)}.nfo-topbar__seg-short{display:none}.nfo-topbar__seg:hover:not(.is-active){color:var(--nfo-ink-1)}.nfo-topbar__seg.is-active{color:var(--nfo-ink-1);background:var(--nfo-bg-alt)}.nfo-topbar__seg:focus-visible{outline:1px solid var(--nfo-accent);outline-offset:-3px}.nfo-topbar__actions{display:inline-flex;align-items:center;gap:var(--nfo-space-3, 12px);flex-shrink:0}.nfo-topbar__manual-select{appearance:none;border:1px solid var(--nfo-border);border-radius:0;background:var(--nfo-bg);min-width:110px;padding:5px 30px 5px 12px;font-family:var(--nfo-font-primary);font-size:var(--nfo-t-small);line-height:var(--nfo-lh-snug, 1.3);color:var(--nfo-ink-2);text-transform:lowercase;letter-spacing:.04em;cursor:pointer;background-image:linear-gradient(45deg,transparent 50%,var(--nfo-ink-3) 50%),linear-gradient(135deg,var(--nfo-ink-3) 50%,transparent 50%);background-position:calc(100% - 14px) 50%,calc(100% - 10px) 50%;background-size:4px 4px,4px 4px;background-repeat:no-repeat}.nfo-topbar__manual-select:hover:not(:disabled){color:var(--nfo-ink-1)}.nfo-topbar__manual-select:disabled{color:var(--nfo-ink-3);cursor:default}.nfo-topbar__manual-select:focus-visible{outline:1px solid var(--nfo-accent);outline-offset:1px}.nfo-topbar__marquee{position:relative;width:clamp(140px,22vw,280px);border:1px solid var(--nfo-border);background:var(--nfo-bg);font-family:var(--nfo-font-primary);font-size:var(--nfo-t-small);color:var(--nfo-ink-2);text-transform:lowercase;letter-spacing:.04em}.nfo-topbar__marquee-viewport{overflow:hidden;padding:3px 0;mask-image:linear-gradient(to right,transparent 0,black 14px,black calc(100% - 14px),transparent 100%);-webkit-mask-image:linear-gradient(to right,transparent 0,black 14px,black calc(100% - 14px),transparent 100%)}.nfo-topbar__marquee-track{display:inline-flex;white-space:nowrap;animation:nfo-marquee-scroll 12s linear infinite;will-change:transform}.nfo-topbar__marquee-item{display:inline-block;padding-right:2.5em}@keyframes nfo-marquee-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}@media (prefers-reduced-motion: reduce){.nfo-topbar__marquee-track{animation:none;transform:translate(0)}}@media (max-width: 720px){.nfo-topbar{gap:var(--nfo-space-2, 8px)}.nfo-topbar__left{gap:var(--nfo-space-3, 12px)}.nfo-topbar__divider,.nfo-topbar__product,.nfo-topbar__marquee,.nfo-topbar__seg-full{display:none}.nfo-topbar__seg-short{display:inline}.nfo-topbar__seg{padding:4px 10px;text-transform:uppercase;letter-spacing:.04em}}.nfo-topbar__icon-btn{appearance:none;background:transparent;border:1px solid transparent;color:var(--nfo-ink-2);width:28px;height:28px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:color 80ms linear,border-color 80ms linear,background-color 80ms linear}.nfo-topbar__icon-btn:hover{color:var(--nfo-ink-1);border-color:var(--nfo-border);background:var(--nfo-surface)}.nfo-topbar__icon-btn:focus-visible{outline:1px solid var(--nfo-accent);outline-offset:1px}
