@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;700&family=Outfit:wght@400;500;700;800&display=swap";:root{--gs-bg-deep:#000;--gs-bg-panel:#0a0a0a;--gs-bg-surface:#141414;--gs-bg-elevated:#1e1e1e;--gs-border:#fff3;--gs-border-dim:#ffffff14;--gs-accent:#fff;--gs-accent-dim:#ffffff59;--gs-accent-glow:#ffffff1f;--gs-text:#e0e0e0;--gs-text-dim:#888;--gs-text-muted:#444;--gs-active-btn:#ffffff26;--gs-radius:6px;--gs-radius-lg:12px;--gs-drawer-w:320px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--gs-bg-deep);width:100%;height:100%;color:var(--gs-text);-webkit-user-select:none;user-select:none;touch-action:none;-webkit-tap-highlight-color:transparent;font-family:Outfit,Inter,system-ui,sans-serif;overflow:hidden}#root{flex-direction:column;width:100vw;height:100vh;display:flex}.gs-app{background:var(--gs-bg-deep);flex-direction:column;width:100%;height:100%;display:flex;position:relative}.gs-keyboard{background:var(--gs-bg-deep);flex:1;width:100%;height:100%;position:relative;overflow:hidden}.gs-menu-btn{z-index:500;-webkit-backdrop-filter:blur(12px);color:#fff;cursor:pointer;background:#000000b3;border:1px solid #ffffff26;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;font-size:22px;transition:background .2s,border-color .2s,transform .2s;display:flex;position:fixed;top:16px;left:16px;box-shadow:0 4px 20px #00000080}.gs-menu-btn:hover{background:#ffffff1f;border-color:#ffffff4d}.gs-menu-btn:active{transform:scale(.92)}.gs-menu-btn.gs-menu-open{background:#ffffff26;border-color:#fff6}.gs-backdrop{z-index:300;-webkit-backdrop-filter:blur(4px);opacity:0;pointer-events:none;background:#0009;transition:opacity .3s;position:fixed;inset:0}.gs-backdrop.gs-backdrop-visible{opacity:1;pointer-events:auto}.gs-drawer{z-index:400;width:var(--gs-drawer-w);background:var(--gs-bg-panel);border-right:1px solid var(--gs-border);flex-direction:column;height:100vh;transition:transform .3s cubic-bezier(.4,0,.2,1);display:flex;position:fixed;top:0;left:0;overflow:hidden auto;transform:translate(-100%);box-shadow:8px 0 40px #0009}.gs-drawer.gs-drawer-open{transform:translate(0)}.gs-drawer-header{border-bottom:1px solid var(--gs-border-dim);justify-content:space-between;align-items:center;padding:20px 20px 12px;display:flex}.gs-drawer-title{color:var(--gs-text);letter-spacing:.02em;font-size:18px;font-weight:700}.gs-drawer-close{background:var(--gs-bg-elevated);border:1px solid var(--gs-border-dim);width:32px;height:32px;color:var(--gs-text-dim);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:16px;transition:all .15s;display:flex}.gs-drawer-close:hover{color:var(--gs-text);background:#ffffff1a}.gs-drawer-section{border-bottom:1px solid var(--gs-border-dim);padding:16px 20px}.gs-drawer-section:last-child{border-bottom:none}.gs-section-title{letter-spacing:.1em;text-transform:uppercase;color:var(--gs-text-dim);margin-bottom:12px;font-size:10px;font-weight:700}.gs-instrument-row{gap:8px;display:flex}.gs-instrument-btn{background:var(--gs-bg-elevated);border:1px solid var(--gs-border-dim);border-radius:var(--gs-radius);color:var(--gs-text-dim);cursor:pointer;text-align:center;flex:1;padding:10px 8px;font-family:Outfit,sans-serif;font-size:13px;font-weight:600;transition:all .15s}.gs-instrument-btn:hover{color:var(--gs-text);border-color:var(--gs-border);background:#ffffff0f}.gs-instrument-btn.gs-instrument-active{background:var(--gs-active-btn);border-color:var(--gs-accent);color:var(--gs-accent);box-shadow:0 0 12px #ffffff1a}.gs-octave-row{align-items:center;gap:12px;display:flex}.gs-octave-btn{background:var(--gs-bg-elevated);border:1px solid var(--gs-border);width:36px;height:36px;color:var(--gs-accent);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:18px;font-weight:700;transition:background .15s,box-shadow .15s;display:flex}.gs-octave-btn:hover{background:var(--gs-accent-glow);box-shadow:0 0 8px var(--gs-accent-dim)}.gs-octave-value{color:var(--gs-accent);text-align:center;min-width:30px;font-family:Outfit,sans-serif;font-size:28px;font-weight:800}.gs-slider-row{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.gs-slider-row:last-child{margin-bottom:0}.gs-slider-label{color:var(--gs-text-dim);min-width:70px;font-size:12px;font-weight:500}.gs-slider-track{background:var(--gs-bg-elevated);cursor:pointer;touch-action:none;border:1px solid var(--gs-border-dim);border-radius:3px;flex:1;height:6px;margin-left:12px;position:relative}.gs-slider-fill{background:var(--gs-accent);opacity:.6;border-radius:3px;height:100%;transition:width 50ms;position:absolute;top:0;left:0}.gs-slider-handle{background:var(--gs-accent);pointer-events:none;border-radius:50%;width:16px;height:16px;position:absolute;top:50%;transform:translate(-50%,-50%);box-shadow:0 0 8px #ffffff4d}.gs-slider-value{color:var(--gs-text);text-align:right;min-width:32px;margin-left:8px;font-size:12px;font-weight:600}.gs-mode-row{flex-wrap:wrap;gap:6px;display:flex}.gs-mode-btn{background:var(--gs-bg-elevated);border:1px solid var(--gs-border-dim);border-radius:var(--gs-radius);color:var(--gs-text-dim);cursor:pointer;text-align:center;white-space:nowrap;padding:8px 12px;font-family:Outfit,sans-serif;font-size:11px;font-weight:600;transition:all .15s}.gs-mode-btn:hover{color:var(--gs-text);border-color:var(--gs-border);background:#ffffff0f}.gs-mode-active{box-shadow:0 0 8px #ffffff1a;background:var(--gs-active-btn)!important;border-color:var(--gs-accent)!important;color:var(--gs-accent)!important}.gs-preset-selector{cursor:pointer;border-radius:var(--gs-radius);border:1px solid var(--gs-border-dim);background:var(--gs-bg-elevated);justify-content:space-between;align-items:center;padding:10px 14px;transition:border-color .15s;display:flex}.gs-preset-selector:hover{border-color:var(--gs-accent)}.gs-preset-name{color:var(--gs-text);font-size:14px;font-weight:600}.gs-preset-arrow{color:var(--gs-text-dim);font-size:12px}.gs-preset-dropdown{background:var(--gs-bg-surface);border:1px solid var(--gs-border);border-radius:var(--gs-radius-lg);margin-top:8px;overflow:hidden}.gs-preset-item{cursor:pointer;color:var(--gs-text);border-bottom:1px solid var(--gs-border-dim);padding:10px 14px;font-size:13px;font-weight:500;transition:background .1s}.gs-preset-item:last-child{border-bottom:none}.gs-preset-item:hover{background:var(--gs-bg-elevated)}.gs-preset-item-active{color:var(--gs-accent);background:var(--gs-active-btn);font-weight:700}.gs-playmode-row{gap:6px;display:flex}.gs-playmode-btn{background:var(--gs-bg-elevated);border:1px solid var(--gs-border-dim);border-radius:var(--gs-radius);color:var(--gs-text-dim);cursor:pointer;text-align:center;flex:1;padding:8px 0;font-family:Outfit,sans-serif;font-size:12px;font-weight:600;transition:all .15s}.gs-playmode-btn:hover{color:var(--gs-text);border-color:var(--gs-border)}.gs-playmode-active{background:var(--gs-active-btn)!important;border-color:var(--gs-accent)!important;color:var(--gs-accent)!important}.gs-sample-upload{flex-direction:column;gap:10px;display:flex}.gs-sample-btn{background:var(--gs-bg-elevated);border:2px dashed var(--gs-border);border-radius:var(--gs-radius-lg);color:var(--gs-text-dim);cursor:pointer;text-align:center;padding:12px;font-family:Outfit,sans-serif;font-size:13px;font-weight:600;transition:all .2s}.gs-sample-btn:hover{border-color:var(--gs-accent);color:var(--gs-text);background:#ffffff0d}.gs-sample-btn.gs-sample-loaded{color:var(--gs-accent);border-style:solid;border-color:#fff6}.gs-sample-hint{color:var(--gs-text-muted);text-align:center;font-size:11px}
