:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--accent-green:#018300;--accent-green-dim:#01830080;--accent-green-subtle:#01830033;--accent-green-faint:#0183001a;--accent-orange:#cc6e2f;--accent-orange-dim:#cc6e2f14;--accent-orange-subtle:#cc6e2f26;--accent-orange-glow:#cc6e2f33;--bg-darkest:#0a0a0a;--bg-dark:#1a1a1a;--bg-darker:#3c3c3c;--text-secondary:#bbb;--text-tertiary:#999;--border-gray:#555;--font-mono:Menlo, Monaco, "Courier New", monospace;--transition-normal:all .2s ease;--transition-fast:all 50ms ease;--glow-green-sm:0 0 5px var(--accent-green-dim);--glow-green-md:0 0 8px var(--accent-green-dim);--glow-green-lg:0 0 15px var(--accent-green-dim);--glow-orange-md:0 0 8px var(--accent-orange-glow)}html,body{color:#fff;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#0a0a0a;width:100%;height:100%;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Arial,sans-serif}#app{width:100%;min-height:100vh}.btn-green{border:1.5px solid var(--accent-green);color:var(--accent-green);cursor:pointer;transition:var(--transition-normal);font-weight:700;font-family:var(--font-mono)}.btn-green:hover{background:var(--accent-green-faint);box-shadow:var(--glow-green-md)}.btn-green:active{background:var(--accent-green-subtle);transform:scale(.96)}.btn-orange{border:1.5px solid var(--accent-orange);color:var(--accent-orange);cursor:pointer;transition:var(--transition-normal);font-weight:700;font-family:var(--font-mono)}.btn-orange:hover{background:var(--accent-orange-dim);box-shadow:var(--glow-orange-md)}.btn-orange:active{background:var(--accent-orange-subtle);transform:scale(.96)}.form-control-green{border:1px solid var(--accent-green);color:var(--accent-green);font-family:var(--font-mono);background:#0000004d}.form-control-green:focus{box-shadow:var(--glow-green-md);outline:none}.slider-input{appearance:none;background:var(--bg-darker);cursor:pointer;border-radius:3px;outline:none;flex:1;min-width:100px;height:6px}.slider-input::-webkit-slider-thumb{appearance:none;background:var(--accent-green);cursor:pointer;width:14px;height:14px;box-shadow:var(--glow-green-sm);border-radius:50%}.slider-input::-moz-range-thumb{background:var(--accent-green);cursor:pointer;width:14px;height:14px;box-shadow:var(--glow-green-sm);border:none;border-radius:50%}.dtmf-grid[data-v-b7202edf]{background:var(--bg-dark);border-radius:.5rem;grid-template-columns:repeat(4,1fr);gap:.5625rem;width:fit-content;padding:1.40625rem;display:grid}.dtmf-button[data-v-b7202edf]{border:2.25px solid var(--border-gray);background:var(--bg-darker);width:3.75rem;height:3.75rem;color:var(--accent-green);cursor:pointer;transition:var(--transition-fast);font-size:1.5rem;font-weight:700;font-family:"Faculty Glyphic", var(--font-mono);border-radius:.5625rem;justify-content:center;align-items:center;display:flex}.dtmf-button[data-v-b7202edf]:hover{border-color:var(--accent-green);box-shadow:var(--glow-green-md);background:#4a4a4a}.dtmf-button[data-v-b7202edf]:active{box-shadow:var(--glow-green-lg);background:var(--accent-green);color:var(--bg-darkest);transform:scale(.95)}.slider-item[data-v-3f395a2a]{align-items:center;gap:10px;display:flex}.slider-item label[data-v-3f395a2a]{color:var(--text-secondary);min-width:60px;font-size:12px;font-family:var(--font-mono)}.slider[data-v-3f395a2a]{appearance:none;background:var(--bg-darker);cursor:pointer;border-radius:3px;outline:none;flex:1;min-width:100px;height:6px}.slider[data-v-3f395a2a]::-webkit-slider-thumb{appearance:none;background:var(--accent-green);cursor:pointer;width:14px;height:14px;box-shadow:var(--glow-green-sm);border-radius:50%}.slider[data-v-3f395a2a]::-moz-range-thumb{background:var(--accent-green);cursor:pointer;width:14px;height:14px;box-shadow:var(--glow-green-sm);border:none;border-radius:50%}.freq-input[data-v-3f395a2a]{border:1px solid var(--accent-green);width:75px;color:var(--accent-green);font-size:11px;font-family:var(--font-mono);text-align:center;background:#0000004d;border-radius:3px;padding:4px 6px}.freq-input[data-v-3f395a2a]:focus{box-shadow:var(--glow-green-md);outline:none}.freq-unit[data-v-3f395a2a]{color:#018300;min-width:25px;font-family:Menlo,Monaco,Courier New,monospace;font-size:11px}.reference-btn[data-v-3f395a2a]{color:#018300;cursor:pointer;background:0 0;border:2px solid #018300;border-radius:4px;padding:4px 8px;font-family:Menlo,Monaco,Courier New,monospace;font-size:12px;transition:all 50ms}.reference-btn[data-v-3f395a2a]:hover{background:#0183001a;box-shadow:0 0 8px #0183004d}.reference-btn[data-v-3f395a2a]:active{color:#000;background:#018300;transform:scale(.95);box-shadow:0 0 12px #01830099}.multi-toggle[data-v-25e6321e]{cursor:pointer;align-items:center;gap:.5rem;display:flex}.multi-toggle-btn[data-v-25e6321e]{background:var(--bg-darker);border:2px solid var(--accent-green);text-align:center;color:var(--accent-green);font-size:.6875rem;font-weight:700;font-family:var(--font-mono);text-transform:capitalize;letter-spacing:0;cursor:pointer;transition:var(--transition-normal);box-sizing:border-box;border-radius:.375rem;min-width:4.5rem;padding:.375rem .625rem;display:inline-block}.multi-toggle-btn[data-v-25e6321e]:hover{background:var(--accent-green-faint);box-shadow:var(--glow-green-md)}.multi-toggle-btn[data-v-25e6321e]:active{transform:scale(.98)}.waveform-selector[data-v-54569118]{flex-direction:column;align-items:center;gap:.5rem;display:flex}h4[data-v-54569118]{color:var(--accent-green);text-transform:capitalize;letter-spacing:.06em;margin:0;font-size:.75rem;font-weight:700}.sliders-container[data-v-9d1f0a75]{background:var(--bg-dark);box-sizing:border-box;border-radius:.5rem;gap:3rem;padding:1.25rem;display:flex}.slider-section[data-v-9d1f0a75]{flex:1;min-width:0}.slider-section h3[data-v-9d1f0a75]{color:var(--accent-green);text-transform:capitalize;letter-spacing:.06em;margin:0 0 1rem;font-size:.875rem}.slider-group[data-v-9d1f0a75]{flex-direction:column;gap:1rem;display:flex}.toggle-switch[data-v-d8319526]{cursor:pointer;align-items:center;gap:8px;display:flex}.toggle-input[data-v-d8319526]{display:none}.toggle-label[data-v-d8319526]{background:var(--bg-darker);border:2px solid var(--accent-green);text-align:center;min-width:50px;height:24px;color:var(--accent-green);transition:var(--transition-normal);font-size:11px;font-weight:700;line-height:20px;font-family:var(--font-mono);box-sizing:border-box;border-radius:12px;padding:0 10px;display:inline-block}.toggle-input:checked+.toggle-label[data-v-d8319526]{background:var(--accent-green-subtle);box-shadow:var(--glow-green-md)}.third-tone-section[data-v-52fb386e]{background:var(--bg-dark);border-radius:.5rem;padding:5%}.third-tone-header[data-v-52fb386e]{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.third-tone-header h3[data-v-52fb386e]{color:var(--accent-green);text-transform:capitalize;letter-spacing:.06em;margin:0;font-size:.875rem}.third-tone-header h3 .note[data-v-52fb386e]{color:#888;text-transform:lowercase;letter-spacing:0;font-size:.6875rem;font-weight:400}.hidden[data-v-52fb386e]{visibility:hidden}@keyframes slideDown-52fb386e{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.control-column[data-v-3e70daee]{flex-direction:column;gap:.5rem;display:flex}.control-column h3[data-v-3e70daee]{text-transform:capitalize;letter-spacing:.06em;color:var(--text-tertiary);margin:0 0 .25rem;font-size:.75rem;font-weight:700}.normalize-btn[data-v-3e70daee],.preset-btn[data-v-3e70daee]{text-transform:capitalize;letter-spacing:.03em;background:0 0;border-radius:.1875rem;padding:.3125rem .625rem;font-size:.6875rem}.normalize-btn[data-v-3e70daee]{border:1.5px solid var(--accent-green);color:var(--accent-green);cursor:pointer;transition:var(--transition-normal);font-weight:700;font-family:var(--font-mono)}.normalize-btn[data-v-3e70daee]:hover{background:var(--accent-green-faint);box-shadow:var(--glow-green-md)}.normalize-btn[data-v-3e70daee]:active{background:var(--accent-green-subtle);transform:scale(.96)}.preset-btn[data-v-3e70daee]{border:1.5px solid var(--accent-orange);color:var(--accent-orange);cursor:pointer;transition:var(--transition-normal);font-weight:700;font-family:var(--font-mono)}.preset-btn[data-v-3e70daee]:hover{background:var(--accent-orange-dim);box-shadow:var(--glow-orange-md)}.preset-btn[data-v-3e70daee]:active{background:var(--accent-orange-subtle);transform:scale(.96)}.normalize-controls[data-v-2fe9202f]{box-sizing:border-box;background:#1a1a1a;border-radius:.5rem;grid-template-columns:1fr 1fr;gap:20px;width:100%;padding:1.25rem;display:grid}.spectrogram-container[data-v-65019740]{background:var(--bg-dark);box-sizing:border-box;border-radius:8px;flex-direction:column;width:100%;padding:20px;display:flex}.spectrogram-container h3[data-v-65019740]{color:var(--accent-green);text-transform:capitalize;letter-spacing:1px;margin:0 0 15px;font-size:14px}.spectrum-canvas[data-v-65019740]{border:2px solid var(--accent-green);aspect-ratio:16/9;width:100%;height:auto;box-shadow:var(--glow-green-md);box-sizing:border-box;background:#000;border-radius:4px;display:block}.oscilloscope-container[data-v-dbf88b96]{background:var(--bg-dark);box-sizing:border-box;border-radius:8px;flex-direction:column;width:100%;padding:20px;display:flex}.oscilloscope-container h3[data-v-dbf88b96]{color:var(--accent-green);text-transform:capitalize;letter-spacing:1px;margin:0 0 15px;font-size:14px}.oscilloscope-canvas[data-v-dbf88b96]{border:2px solid var(--accent-green);aspect-ratio:16/9;width:100%;height:auto;box-shadow:var(--glow-green-md);box-sizing:border-box;background:#000;border-radius:4px;display:block}.history-widget[data-v-0542637b]{background:var(--bg-dark);border-radius:.5rem;width:100%;padding:5%}.history-header[data-v-0542637b]{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.history-header h3[data-v-0542637b]{color:var(--accent-green);text-transform:capitalize;letter-spacing:.06em;margin:0;font-size:.875rem}.history-header-buttons[data-v-0542637b]{gap:.5rem;display:flex}.lock-btn[data-v-0542637b]{border:2px solid var(--accent-green);color:var(--accent-green);cursor:pointer;transition:var(--transition-normal);background:0 0;border-radius:.25rem;justify-content:center;align-items:center;width:2.375rem;height:2.125rem;padding:.375rem .625rem;font-size:1rem;display:flex}.lock-btn[data-v-0542637b]:hover{background:var(--accent-green-faint);box-shadow:var(--glow-green-md)}.lock-btn[data-v-0542637b]:active{transform:scale(.98)}.backspace-btn[data-v-0542637b]{border:2px solid var(--accent-green);color:var(--accent-green);cursor:pointer;transition:var(--transition-normal);font-size:.875rem;font-weight:700;font-family:var(--font-mono);background:0 0;border-radius:.25rem;padding:.375rem .625rem}.backspace-btn[data-v-0542637b]:hover:not(:disabled){background:var(--accent-green-faint);box-shadow:var(--glow-green-md)}.backspace-btn[data-v-0542637b]:active:not(:disabled){transform:scale(.98)}.backspace-btn[data-v-0542637b]:disabled{opacity:.5;cursor:not-allowed}.clear-btn[data-v-0542637b]{border:2px solid var(--accent-orange);color:var(--accent-orange);cursor:pointer;text-transform:capitalize;letter-spacing:.06em;transition:var(--transition-normal);font-size:.6875rem;font-weight:700;font-family:var(--font-mono);background:0 0;border-radius:.25rem;padding:.375rem .75rem}.clear-btn[data-v-0542637b]:hover{background:var(--accent-orange-dim);box-shadow:var(--glow-orange-md)}.clear-btn[data-v-0542637b]:active{transform:scale(.98)}.history-display[data-v-0542637b]{border:1px solid var(--accent-green);border-radius:.25rem;min-height:4rem;max-height:7.5rem;margin-bottom:1rem;padding:.75rem;overflow-y:auto}.empty-message[data-v-0542637b]{color:#888;text-align:center;padding:1.25rem;font-size:.75rem;font-style:italic}.history-buttons[data-v-0542637b]{flex-wrap:wrap;gap:.5rem;display:flex}.history-btn[data-v-0542637b]{background:var(--accent-green-subtle);border:1px solid var(--accent-green);color:var(--accent-green);font-size:.75rem;font-weight:700;font-family:var(--font-mono);cursor:pointer;border-radius:.25rem;flex-shrink:0;padding:.375rem .625rem;transition:all .15s;display:inline-block}.history-btn[data-v-0542637b]:hover{background:var(--accent-green-faint);box-shadow:var(--glow-green-md)}.history-btn[data-v-0542637b]:active{background:var(--accent-green-dim);transform:scale(.95)}.history-btn-playing[data-v-0542637b]{background:var(--accent-green);color:var(--bg-darkest);box-shadow:var(--glow-green-lg)}.history-controls[data-v-0542637b]{flex-direction:column;gap:.375rem;display:flex;position:relative}.controls-labels[data-v-0542637b]{grid-template-columns:5rem 1fr 6rem;place-items:center;gap:1rem;height:.75rem;display:grid}.controls-row[data-v-0542637b]{grid-template-columns:5rem 1fr 6rem;align-items:center;gap:1rem;display:grid}.controls-row .speed-slider[data-v-0542637b]{width:100%}.control-label[data-v-0542637b]{color:#888;font-size:.625rem;font-family:var(--font-mono);text-transform:capitalize;letter-spacing:0;white-space:nowrap;height:.75rem;line-height:.75rem}.speed-slider[data-v-0542637b]{appearance:none;background:var(--bg-darker);cursor:pointer;border-radius:.1875rem;outline:none;width:100%;height:.375rem}.speed-slider[data-v-0542637b]::-webkit-slider-thumb{appearance:none;background:var(--accent-green);cursor:pointer;width:.875rem;height:.875rem;box-shadow:var(--glow-green-sm);border-radius:50%}.speed-slider[data-v-0542637b]::-moz-range-thumb{background:var(--accent-green);cursor:pointer;width:.875rem;height:.875rem;box-shadow:var(--glow-green-sm);border:none;border-radius:50%}.replay-btn[data-v-0542637b]{border:2px solid var(--accent-green);color:var(--accent-green);cursor:pointer;text-transform:capitalize;letter-spacing:.06em;transition:var(--transition-normal);font-size:.75rem;font-weight:700;font-family:var(--font-mono);text-align:center;box-sizing:border-box;background:0 0;border-radius:.25rem;justify-content:center;align-items:center;gap:.25rem;width:100%;padding:.5rem 0;display:flex}.btn-emoji[data-v-0542637b]{font-size:.625rem;line-height:1;display:inline-block}.replay-btn[data-v-0542637b]:hover:not(:disabled){background:var(--accent-green-faint);box-shadow:var(--glow-green-md)}.replay-btn[data-v-0542637b]:active:not(:disabled){transform:scale(.98)}.replay-btn[data-v-0542637b]:disabled{opacity:.5;cursor:not-allowed}.replay-btn-stop[data-v-0542637b]{color:#da4939;border-color:#da4939;animation:1s infinite pulse-stop-0542637b}.replay-btn-stop[data-v-0542637b]:hover{background:#da49391a;box-shadow:0 0 8px #da49394d}@keyframes pulse-0542637b{0%,to{opacity:1}50%{opacity:.6}}@keyframes pulse-stop-0542637b{0%,to{opacity:1}50%{opacity:.6}}.modal-overlay[data-v-3e523c07]{z-index:1000;background:#000000b3;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content[data-v-3e523c07]{background:#0a0a0af2;border:2px solid #0f0;border-radius:.5rem;width:90%;max-width:500px;padding:5%;box-shadow:0 0 20px #00ff004d}.modal-header[data-v-3e523c07]{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.modal-header h3[data-v-3e523c07]{color:#018300;text-transform:capitalize;letter-spacing:.06em;margin:0;font-size:1rem}.modal-close[data-v-3e523c07]{color:#018300;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:1.5rem;height:1.5rem;padding:0;font-size:1.25rem;transition:all .2s;display:flex}.modal-close[data-v-3e523c07]:hover{transform:scale(1.2)}.import-textarea[data-v-3e523c07]{color:#018300;resize:vertical;box-sizing:border-box;background:#00000080;border:1px solid #018300;border-radius:.25rem;width:100%;height:12.5rem;margin-bottom:1rem;padding:.625rem;font-family:Menlo,Monaco,Courier New,monospace;font-size:.75rem}.import-textarea[data-v-3e523c07]:focus{outline:none;box-shadow:0 0 8px #01830066}.modal-footer[data-v-3e523c07]{justify-content:flex-end;gap:.625rem;display:flex}.modal-btn[data-v-3e523c07]{cursor:pointer;text-transform:capitalize;letter-spacing:.06em;border-radius:.25rem;padding:.5rem 1rem;font-family:Menlo,Monaco,Courier New,monospace;font-size:.75rem;font-weight:700;transition:all .2s}.cancel-btn[data-v-3e523c07]{color:#bbb;background:0 0;border:2px solid #888}.cancel-btn[data-v-3e523c07]:hover{color:#dedede;background:#8888881a}.import-btn[data-v-3e523c07]{color:#018300;background:0 0;border:2px solid #018300}.import-btn[data-v-3e523c07]:hover{background:#0183001a;box-shadow:0 0 8px #0183004d}.import-btn[data-v-3e523c07]:active{transform:scale(.98)}.settings-widget[data-v-465694f0]{background:var(--bg-dark);border-radius:.5rem;flex-direction:column;gap:.5rem;width:100%;padding:3.75%;display:flex}.settings-buttons[data-v-465694f0]{flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}.button-group[data-v-465694f0]{flex-wrap:nowrap;gap:.5rem;display:flex}.settings-btn[data-v-465694f0]{border:1.5px solid var(--accent-green);color:var(--accent-green);cursor:pointer;text-transform:capitalize;letter-spacing:.03em;transition:var(--transition-normal);font-size:.6875rem;font-weight:700;font-family:var(--font-mono);white-space:nowrap;background:0 0;border-radius:.1875rem;flex:none;padding:.3125rem .625rem}.settings-btn[data-v-465694f0]:hover:not(:disabled){background:var(--accent-green-faint);box-shadow:var(--glow-green-md)}.settings-btn[data-v-465694f0]:active:not(:disabled){transform:scale(.96)}.settings-btn[data-v-465694f0]:disabled{opacity:.5;cursor:not-allowed}.settings-status[data-v-465694f0]{text-align:center;height:1rem;color:var(--accent-green);font-size:.6875rem;font-family:var(--font-mono);animation:2s ease-out fadeInOut-465694f0}@keyframes fadeInOut-465694f0{0%{opacity:1}to{opacity:0}}.tone-previewer[data-v-9e66f82e]{background:var(--bg-dark);box-sizing:border-box;border-radius:8px;width:100%;padding:20px}.tone-previewer h3[data-v-9e66f82e]{color:var(--accent-green);text-transform:capitalize;letter-spacing:1px;margin:0 0 15px;font-size:14px}.waveform-selector[data-v-9e66f82e]{flex-wrap:wrap;gap:8px;margin-bottom:20px;display:flex}.waveform-btn[data-v-9e66f82e]{color:#bbb;cursor:pointer;background:#3c3c3c;border:1px solid #555;border-radius:4px;padding:6px 12px;font-size:12px;transition:all .15s}.waveform-btn[data-v-9e66f82e]:hover{background:#555}.waveform-btn.active[data-v-9e66f82e]{background:var(--accent-green);color:#000;border-color:var(--accent-green)}.tone-groups[data-v-9e66f82e]{grid-template-columns:1fr;gap:15px;display:grid}.tone-group h4[data-v-9e66f82e]{color:var(--accent-green);text-transform:uppercase;letter-spacing:.5px;opacity:.8;margin:0 0 10px;font-size:12px}.tone-buttons[data-v-9e66f82e]{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.tone-btn[data-v-9e66f82e]{color:#bbb;cursor:pointer;-webkit-user-select:none;user-select:none;background:#3c3c3c;border:1px solid #555;border-radius:4px;padding:10px;font-size:11px;transition:all .1s}.tone-btn[data-v-9e66f82e]:hover{border-color:var(--accent-green);background:#555}.tone-btn[data-v-9e66f82e]:active{background:var(--accent-green);color:#000}*{box-sizing:border-box;margin:0;padding:0}body{color:#fff;background:#0a0a0a;font-family:Menlo,Monaco,Courier New,monospace}#app{background:#2b2b2b;grid-template-rows:auto 1fr;grid-template-columns:350px 1fr;gap:2rem;width:100%;min-height:100vh;padding:2rem;display:grid}.warble-app{width:100%;display:contents}.app-header{text-align:left;flex-direction:column;grid-area:1/1;justify-content:flex-start;align-items:flex-start;animation:.6s ease-out fadeIn;display:flex}.app-header h1{color:#018300;text-shadow:0 0 20px #0183004d;letter-spacing:.125em;margin:0 0 1rem;font-size:2rem;line-height:1.1}.title-font{font-family:Fontdiner Swanky,cursive}.app-header h1 .version{color:#888;text-shadow:none;letter-spacing:0;margin-top:.5rem;margin-left:0;font-size:.5em;display:block}.app-header p{color:#bbb;text-transform:capitalize;letter-spacing:.03em;white-space:nowrap;margin:0 0 .5rem;font-size:.75rem;line-height:1.4}.help-link{color:#018300;text-align:center;cursor:pointer;width:24px;height:24px;font-size:.875rem;font-weight:700;line-height:24px;font-family:var(--font-mono);background:0 0;border:1.5px solid #018300;border-radius:50%;text-decoration:none;transition:all .2s;display:inline-block}.help-link:hover{background:#0183001a;box-shadow:0 0 8px #0183004d}.left-sidebar{flex-direction:column;grid-area:1/1/3;gap:1.5rem;display:flex}.app-main{flex-direction:column;grid-area:1/2/3;gap:1.5rem;display:flex}.keypad-history{grid-template-columns:1fr 1fr;align-items:start;gap:1.5rem;display:grid}.keypad-wrapper{justify-content:center;display:flex}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@media (width<=768px){.app-header h1{font-size:28px}.app-main{gap:20px}}
