mroctopus / api /static /assets /index-1_DPe19x.css
Ewan
Sample-based guitar/bass sounds, filter bass from piano roll, two guitar tabs
aeb0fce
:root{--bg: #07070e;--surface: #0f0f1a;--surface-2: #161628;--surface-3: #1c1c36;--border: #1e1e3a;--border-hover: #2e2e52;--primary: #8b5cf6;--primary-hover: #a78bfa;--primary-dim: #7c3aed;--primary-glow: rgba(139, 92, 246, .25);--accent: #06b6d4;--text: #f1f5f9;--text-muted: #94a3b8;--text-subtle: #525280;--danger: #ef4444;--danger-bg: rgba(239, 68, 68, .1);--radius: 10px;--radius-lg: 14px}*{margin:0;padding:0;box-sizing:border-box}body{background:var(--bg);color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{width:100vw;height:100vh}.app{width:100%;height:100%;display:flex;flex-direction:column}.upload-screen{width:100vw;height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);background-image:radial-gradient(ellipse at 50% 30%,rgba(139,92,246,.08) 0%,transparent 60%),radial-gradient(ellipse at 50% 60%,rgba(6,182,212,.04) 0%,transparent 50%)}.upload-content{width:100%;max-width:520px;padding:0 24px}.upload-logo{display:flex;flex-direction:column;align-items:center;margin-bottom:48px}.upload-logo h1{font-size:36px;font-weight:700;letter-spacing:-1px;background:linear-gradient(135deg,#a78bfa,#06b6d4);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-top:14px}.upload-tagline{color:var(--text-muted);font-size:16px;margin-top:8px}.upload-mode-tabs{display:flex;gap:4px;margin-bottom:20px;background:var(--surface-2);border-radius:var(--radius);padding:4px;border:1px solid var(--border)}.upload-mode-tab{flex:1;padding:10px 20px;border:none;border-radius:7px;background:transparent;color:var(--text-muted);font-size:14px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .15s}.upload-mode-tab:hover{color:var(--text)}.upload-mode-tab.active{background:var(--primary);color:#fff;box-shadow:0 2px 8px var(--primary-glow)}.upload-description{color:var(--text-muted);font-size:14px;line-height:1.6;text-align:center;margin-bottom:28px}.copyright-notice{margin-top:20px;padding:12px 16px;font-size:12px;line-height:1.5;color:var(--text-subtle);text-align:center;border-top:1px solid var(--border)}.drop-zone{border:2px dashed var(--border);border-radius:var(--radius-lg);padding:36px 24px;cursor:pointer;transition:all .2s;text-align:center}.drop-zone:hover,.drop-zone.dragging{border-color:var(--primary);background:#8b5cf60d;box-shadow:inset 0 0 30px #8b5cf608}.drop-icon{font-size:32px;margin-bottom:10px;opacity:.4}.drop-zone p{color:var(--text-muted);font-size:14px;font-weight:500}.drop-hint{font-size:12px!important;color:var(--text-subtle)!important;font-weight:400!important;margin-top:6px}.upload-error{margin-top:20px;color:var(--danger);font-size:13px;font-weight:500;background:var(--danger-bg);padding:12px 16px;border-radius:var(--radius);border:1px solid rgba(239,68,68,.2)}.upload-processing{text-align:center}.processing-logo{animation:pulse 2s ease-in-out infinite;margin-bottom:24px}.upload-processing h2{font-size:24px;font-weight:700;color:var(--text);margin-bottom:8px}.upload-processing p{color:var(--text-muted);font-size:15px}.loading-sub{margin-bottom:28px}.loading-bar{width:200px;height:4px;background:var(--border);border-radius:2px;margin:0 auto;overflow:hidden}.loading-bar-fill{width:40%;height:100%;background:linear-gradient(90deg,var(--primary),var(--accent));border-radius:2px;animation:loading-slide 1.5s ease-in-out infinite}@keyframes loading-slide{0%{transform:translate(-100%)}to{transform:translate(350%)}}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.08);opacity:.7}}.controls{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;display:flex;flex-direction:column}.controls-main{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;gap:20px}.controls-left{display:flex;align-items:center;gap:16px;min-width:0;flex:1}.brand-mark{display:flex;align-items:center;gap:10px;flex-shrink:0}.brand-name{font-size:16px;font-weight:700;background:linear-gradient(135deg,#a78bfa,#06b6d4);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;white-space:nowrap;letter-spacing:-.3px}.file-name{font-size:14px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:240px;padding-left:16px;border-left:1.5px solid var(--border);font-weight:500}.controls-center{display:flex;align-items:center;gap:10px;flex-shrink:0}.controls-right{display:flex;align-items:center;gap:20px;flex:1;justify-content:flex-end}.transport-btn{width:48px;height:48px;border-radius:10px;border:none;background:var(--surface-2);color:var(--text-muted);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;transition:all .15s;border:1px solid var(--border)}.transport-btn:hover{background:var(--surface-3);color:var(--text);border-color:var(--border-hover)}.transport-label{font-size:10px;font-weight:600;letter-spacing:.3px;opacity:.7}.play-btn{width:56px;height:56px;border-radius:50%;border:none;background:var(--primary);color:#fff;font-size:20px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;box-shadow:0 0 24px var(--primary-glow)}.play-btn:hover{background:var(--primary-hover);box-shadow:0 0 36px var(--primary-glow);transform:scale(1.06)}.play-btn:active{transform:scale(.96)}.btn{background:var(--surface-2);color:var(--text-muted);border:1.5px solid var(--border);border-radius:8px;padding:8px 18px;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .15s;white-space:nowrap;letter-spacing:.2px}.btn:hover{background:var(--surface-3);color:var(--text);border-color:var(--border-hover)}.btn-new{border-color:var(--primary-dim);color:var(--primary-hover)}.btn-new:hover{background:#8b5cf61a;border-color:var(--primary);color:var(--primary-hover)}.tempo-control{display:flex;align-items:center;gap:10px;background:var(--surface-2);padding:8px 16px;border-radius:10px;border:1px solid var(--border)}.tempo-label{font-size:12px;font-weight:700;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap}.tempo-value{font-size:14px;font-weight:700;color:var(--text);min-width:40px;text-align:right;font-variant-numeric:tabular-nums}.tempo-control input[type=range]{width:100px}.timeline{display:flex;align-items:center;gap:14px;padding:0 24px 12px}.timeline-time{font-size:13px;font-weight:600;color:var(--text-muted);font-variant-numeric:tabular-nums;min-width:40px}.timeline-time:last-child{text-align:right}.timeline-track{flex:1;position:relative}.timeline-track input[type=range]{width:100%;height:8px;border-radius:4px;-webkit-appearance:none;appearance:none;outline:none;cursor:pointer;transition:height .15s}.timeline-track input[type=range]:hover{height:10px}.timeline-track input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:var(--primary-hover);cursor:pointer;border:2px solid white;box-shadow:0 0 10px var(--primary-glow);transition:transform .1s}.timeline-track input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.25)}.timeline-track input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--primary-hover);cursor:pointer;border:2px solid white;box-shadow:0 0 10px var(--primary-glow)}input[type=range]{-webkit-appearance:none;appearance:none;background:var(--border);height:5px;border-radius:3px;outline:none;cursor:pointer}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:var(--primary);cursor:pointer;border:none;transition:transform .1s}input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.2)}input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--primary);cursor:pointer;border:none}.loop-controls{display:flex;align-items:center;gap:6px}.loop-badge{font-size:12px;font-weight:600;color:var(--primary-hover);background:#8b5cf61f;padding:5px 10px;border-radius:6px;white-space:nowrap}.loop-step{font-size:12px;font-weight:600;color:var(--text);white-space:nowrap}.loop-arrow{font-size:13px;color:var(--text-muted)}.btn-loop-action{font-size:12px;font-weight:600;padding:5px 12px;border-radius:6px;background:#8b5cf61a;border:1px solid rgba(139,92,246,.25);color:var(--primary-hover);cursor:pointer;font-family:inherit;white-space:nowrap;transition:background .15s,border-color .15s}.btn-loop-action:hover{background:#8b5cf633;border-color:var(--primary)}.btn-loop-clear{font-size:16px;line-height:1;padding:2px 6px;border-radius:4px;background:transparent;border:1px solid transparent;color:var(--text-muted);cursor:pointer;font-family:inherit;transition:color .15s,background .15s}.btn-loop-clear:hover{color:var(--text);background:var(--surface-2)}.view-tabs{display:flex;gap:2px;padding:8px 24px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0}.view-tab{padding:8px 20px;border:1.5px solid var(--border);border-radius:8px;background:var(--surface-2);color:var(--text-muted);font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .15s;letter-spacing:.2px}.view-tab:hover{background:var(--surface-3);color:var(--text);border-color:var(--border-hover)}.view-tab.active{background:#8b5cf626;border-color:var(--primary);color:var(--primary-hover)}.canvas-container{flex:1;position:relative;overflow:hidden;width:100%}.sheet-music-wrapper{flex:1;display:flex;flex-direction:column;overflow:hidden}.sheet-music-toolbar{display:flex;align-items:center;justify-content:space-between;padding:10px 24px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0}.sheet-music-info{font-size:13px;color:var(--text-muted);font-weight:500}.btn-download{display:flex;align-items:center;gap:8px;background:var(--surface-2);color:var(--text-muted);border:1.5px solid var(--border);border-radius:8px;padding:8px 16px;font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;transition:all .15s}.btn-download:hover{background:var(--surface-3);color:var(--text);border-color:var(--border-hover)}.sheet-music-scroll{flex:1;overflow:auto;background:#fff;position:relative}.sheet-music-container{min-height:100%;padding:20px}.sheet-music-container svg{display:block}.sheet-music-progress-line{position:absolute;width:2px;background:#8b5cf6;border-radius:1px;pointer-events:none;display:none;z-index:10;box-shadow:0 0 6px #8b5cf680}.sheet-music-progress-line.smooth{transition:left .12s linear,top .12s linear}.sheet-music-empty,.tab-empty{flex:1;display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:15px}@media print{.controls,.view-tabs,.sheet-music-toolbar{display:none!important}.sheet-music-scroll{overflow:visible}}