@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap";:root{--bg:#1a1a1a;--panel-bg:#222;--surface:#2a2a2a;--text:#f0f0f0;--text-h:#fafafa;--text-dim:#909090;--border:#ffffff1f;--accent:#e0e0e0;--accent-hover:#fafafa;--accent-dim:#ffffff14;--accent-border:#ffffff2e;--accent-glow:#ffffff0d;--success:#22c55e;--warning:#eab308;--error:#ef4444;--mono:"JetBrains Mono", "Cascadia Code", "Fira Code", Consolas, monospace;--sans:"Inter", system-ui, -apple-system, "Segoe UI", sans-serif;font-family:var(--sans);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:15px;line-height:1.5}*,:before,:after{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);margin:0;overflow:hidden}#root{width:100vw;height:100svh}::selection{background:var(--accent);color:var(--bg)}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.app-shell{background:var(--bg);justify-content:center;align-items:center;width:100vw;height:100svh;display:flex;position:relative;overflow:hidden}.media-uploader{z-index:20;cursor:pointer;justify-content:center;align-items:center;transition:background .2s;display:flex;position:absolute;inset:0}.media-uploader.drag-over{background:var(--accent-glow)}.media-uploader .upload-prompt{color:var(--text-dim);border:1px solid var(--border);background:var(--panel-bg);border-radius:10px;flex-direction:column;align-items:center;gap:12px;max-width:90vw;padding:40px 52px;transition:border-color .2s,color .2s,box-shadow .2s;display:flex}.media-uploader:hover .upload-prompt{color:var(--accent);border-color:var(--accent-border);box-shadow:0 0 30px -10px var(--accent-dim)}.media-uploader .upload-prompt span{font-family:var(--sans);text-align:center;font-size:14px;font-weight:500}.media-uploader .upload-prompt small{font-family:var(--sans);opacity:.45;text-align:center;font-size:11px}.media-uploader .upload-prompt svg{width:40px;height:40px}.media-drop-zone{z-index:20;position:absolute;inset:0}.media-drop-zone.drag-over{background:var(--accent-glow)}.media-bar{z-index:30;border:1px solid var(--border);background:var(--panel-bg);border-radius:8px;align-items:center;gap:10px;max-width:calc(100vw - 32px);padding:8px 14px;display:flex;position:fixed;bottom:16px;left:50%;transform:translate(-50%)}.media-bar-btn{border:1px solid var(--border);color:var(--text);font-family:var(--mono);cursor:pointer;white-space:nowrap;background:0 0;border-radius:5px;align-items:center;gap:6px;padding:5px 10px;font-size:11px;transition:border-color .15s,color .15s,background .15s;display:inline-flex}.media-bar-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.media-bar-file{font-family:var(--sans);color:var(--text-dim);text-overflow:ellipsis;white-space:nowrap;max-width:200px;font-size:11px;overflow:hidden}@media (width<=480px){.media-bar{gap:6px;padding:6px 10px}.media-bar-btn{padding:4px 8px;font-size:10px}.media-bar-file{max-width:100px;font-size:10px}}.ascii-canvas-wrap{justify-content:center;align-items:center;display:flex;position:absolute;inset:0;overflow:hidden}.active-audio{background:var(--accent)!important;color:#000!important}.ascii-canvas-wrap.checkerboard{background-color:#0000;background-image:linear-gradient(45deg,#12121a 25%,#0000 25%),linear-gradient(-45deg,#12121a 25%,#0000 25%),linear-gradient(45deg,#0000 75%,#12121a 75%),linear-gradient(-45deg,#0000 75%,#12121a 75%);background-position:0 0,0 10px,10px -10px,-10px 0;background-repeat:repeat,repeat,repeat,repeat;background-size:20px 20px;background-attachment:scroll,scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box,border-box;background-color:var(--bg)}.ascii-canvas{object-fit:contain;display:block}.controls-toggle{z-index:30;border:1px solid var(--border);background:var(--panel-bg);width:34px;height:34px;color:var(--text-dim);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:7px;justify-content:center;align-items:center;transition:border-color .15s,color .15s,background .15s,box-shadow .15s;display:flex;position:fixed;top:14px;right:14px}.controls-toggle:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim);box-shadow:0 0 16px -6px var(--accent-dim)}.controls-panel{z-index:25;background:var(--panel-bg);border-left:1px solid var(--border);flex-direction:column;width:272px;height:100svh;transition:transform .25s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;top:0;right:0;transform:translate(100%)}.controls-panel.open{transform:translate(0)}.controls-scroll{flex:1;padding:54px 18px 18px;overflow-y:auto}.ctrl-group{padding:10px 0}.ctrl-group+.ctrl-group{border-top:1px solid var(--border)}.ctrl-label{font-family:var(--sans);color:var(--text-dim);letter-spacing:.8px;text-transform:uppercase;margin-bottom:8px;font-size:10px;font-weight:600;display:block}.ctrl-btn{border:1px solid var(--border);color:var(--text);font-family:var(--sans);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;gap:5px;padding:7px 14px;font-size:12px;font-weight:500;transition:border-color .15s,color .15s,background .15s,box-shadow .15s;display:inline-flex}.ctrl-btn:hover{border-color:var(--accent);color:var(--accent)}.ctrl-btn.primary{background:var(--text);border-color:var(--text);color:var(--bg)}.ctrl-btn.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--bg);box-shadow:0 0 20px -4px var(--accent-dim)}.ctrl-chip-group{flex-wrap:wrap;gap:4px;display:flex}.ctrl-chip{border:1px solid var(--border);color:var(--text-dim);font-family:var(--sans);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;padding:5px 10px;font-size:11px;font-weight:500;transition:border-color .15s,color .15s,background .15s,box-shadow .15s;display:inline-flex}.ctrl-chip:hover{border-color:var(--accent);color:var(--accent)}.ctrl-chip.active{background:var(--accent-dim);border-color:var(--accent-border);color:var(--accent-hover)}.ctrl-select{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text-h);font-family:var(--sans);cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 5L9 1' stroke='%235a5a66' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;border-radius:6px;padding:7px 30px 7px 12px;font-size:12px;transition:border-color .15s,box-shadow .15s}.ctrl-input{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--text-h);font-family:var(--mono);text-align:center;border-radius:6px;padding:7px 12px;font-size:13px;transition:border-color .15s,box-shadow .15s}.ctrl-input:hover,.ctrl-input:focus,.ctrl-select:hover,.ctrl-select:focus{border-color:var(--accent);outline:none}.slider-row{align-items:center;gap:12px;display:flex}.ctrl-slider{appearance:none;background:#707070;border-radius:2px;outline:none;flex:1;height:3px}.ctrl-slider::-webkit-slider-thumb{appearance:none;background:var(--accent);border:2px solid var(--panel-bg);cursor:pointer;border-radius:50%;width:14px;height:14px;transition:transform .1s,box-shadow .15s}.ctrl-slider::-webkit-slider-thumb:hover{box-shadow:0 0 12px -2px var(--accent-dim);transform:scale(1.2)}.ctrl-slider::-moz-range-thumb{background:var(--accent);border:2px solid var(--panel-bg);cursor:pointer;border-radius:50%;width:14px;height:14px}.slider-value{text-align:right;min-width:44px;font-family:var(--mono);color:var(--text);font-size:11px}.color-row{align-items:center;gap:10px;display:flex}.ctrl-color{appearance:none;border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:6px;flex-shrink:0;width:32px;height:32px;padding:0;transition:border-color .15s}.ctrl-color::-webkit-color-swatch-wrapper{padding:3px}.ctrl-color::-webkit-color-swatch{border:none;border-radius:3px}.ctrl-color::-moz-color-swatch{border:none;border-radius:3px}.ctrl-color:hover{border-color:var(--accent)}.export-overlay{z-index:5;pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.export-overlay-fade{background:#0000008c;animation:.4s ease-out both exportFadeIn;position:absolute;inset:0}@keyframes exportFadeIn{0%{opacity:0}to{opacity:1}}.export-overlay-content{z-index:1;flex-direction:column;align-items:center;gap:10px;width:min(280px,60vw);display:flex;position:relative}.export-overlay-percent{font-family:var(--mono);color:#fff;letter-spacing:-1px;font-size:32px;font-weight:600}.export-overlay-track{background:#ffffff26;border-radius:2px;width:100%;height:3px;overflow:hidden}.export-overlay-fill{background:#fff;border-radius:2px;height:100%;transition:width .15s linear}.export-overlay-label{font-family:var(--sans);color:#ffffff80;letter-spacing:1.5px;text-transform:uppercase;font-size:11px;font-weight:500}.export-info{font-family:var(--mono);color:var(--text-dim);opacity:.6;text-align:center;justify-content:center;align-items:center;gap:6px;margin-top:6px;font-size:10px;display:flex}.export-info-sep{opacity:.35}.export-progress{align-items:center;gap:8px;margin-top:6px;display:flex}.export-progress-track{background:var(--border);border-radius:2px;flex:1;height:3px;overflow:hidden}.export-progress-fill{background:var(--accent);border-radius:2px;height:100%;transition:width .1s linear}.export-progress-text{text-align:right;min-width:32px;font-family:var(--mono);color:var(--text-dim);font-size:10px}.controls-panel.exporting{opacity:.4;pointer-events:none}.media-bar-btn:disabled{opacity:.3;cursor:not-allowed;pointer-events:none}.ctrl-btn:disabled,.ctrl-chip:disabled,.ctrl-select:disabled,.ctrl-input:disabled{opacity:.35;cursor:not-allowed;pointer-events:none}.corner-brand{z-index:10;font-family:var(--sans);letter-spacing:3px;color:var(--text-dim);opacity:.22;pointer-events:none;text-transform:uppercase;font-size:10px;font-weight:600;position:fixed;bottom:16px;left:16px}@media (width<=480px){.corner-brand{display:none}}.mono{font-family:var(--mono)}
