@import "https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&family=Geist+Mono:wght@400;500;700&display=swap";:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--font-display:"Geist", "Segoe UI", sans-serif;--font-body:"Geist", "Segoe UI", sans-serif;--font-mono:"Geist Mono", "Consolas", "Courier New", monospace;--text-strong:#f4f7f8;--text-body:#c7d0d3;--text-soft:#97a3a8;--bg-base:#0e0e0e;--bg-panel:#131313;--bg-panel-strong:#1c1b1b;--bg-overlay:#0a0a0ab3;--surface-bright:#393939;--line-soft:#2b2b2b;--line-strong:#3d3d3d;--accent-primary:#00f0ff;--accent-play:#a8ff3f;--accent-tab:#00c8d6;--accent-step:#ff8a00;--accent-bass:#32d7ff;--accent-lead:#7be4ff;--accent-error:#ff5c5c;--shadow-soft:0 16px 38px #00000075;--shadow-press:0 8px 20px #00000080;--glow-primary:0 0 0 1px #00f0ff73, 0 0 22px #00f0ff33;--glow-play:0 0 0 1px #a8ff3f73, 0 0 20px #a8ff3f38;--glow-step:0 0 0 1px #ff8a0080, 0 0 14px #ff8a0059;--glow-tab:0 0 0 1px #00f0ff66, 0 0 16px #00f0ff33;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:24px;--space-6:32px;--radius-sm:4px;--radius-md:4px;--radius-lg:4px;--radius-pill:999px;--dur-fast:.14s;--dur-med:.22s;--dur-slow:.36s;--ease-standard:cubic-bezier(.2, .8, .2, 1);--ease-soft:cubic-bezier(.24, .84, .32, 1);font-weight:400;line-height:1.5;font-family:var(--font-body);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:before,:after{box-sizing:border-box}body{color:var(--text-body);background:var(--bg-base);margin:0}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@keyframes panel-enter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-step{0%,to{box-shadow:0 0 #ff8a0000}50%{box-shadow:0 0 12px #ff8a006b}}.app-shell{min-height:100svh;color:var(--text-strong);gap:var(--space-4);padding:var(--space-5) var(--space-4) 44px;background:radial-gradient(circle at 12% 8%,#00f0ff1f,#0000 32%),radial-gradient(circle at 86% 4%,#00f0ff14,#0000 28%),linear-gradient(#111213 0%,#0e0e0e 100%);flex-direction:column;display:flex}.app-shell>*{animation:panel-enter var(--dur-med) var(--ease-soft) both}.app-shell>:first-child{animation-delay:20ms}.app-shell>:nth-child(2){animation-delay:50ms}.app-shell>:nth-child(3){animation-delay:75ms}.app-shell>:nth-child(4){animation-delay:.1s}.app-shell>:nth-child(5){animation-delay:.12s}.app-shell>:nth-child(6){animation-delay:.14s}.app-header{border:1px solid var(--line-strong);border-radius:var(--radius-md);width:min(1080px,100%);box-shadow:var(--shadow-soft);justify-content:space-between;align-items:center;gap:var(--space-3);background:linear-gradient(#1c1b1beb,#0f0f0ff5);margin-inline:auto;padding:16px 18px;display:flex}.app-title-block{flex-direction:column;gap:3px;display:flex}.app-header h1{font-family:var(--font-display);letter-spacing:.02em;color:var(--text-strong);margin:0;font-size:clamp(1.5rem,3vw,2.2rem)}.app-metadata{color:var(--text-soft);letter-spacing:.08em;text-transform:uppercase;font-size:.8rem;font-family:var(--font-mono);margin:0}.header-waveform{border-radius:var(--radius-sm);background:linear-gradient(#00f0ff17,#0000),#101416b3;border:1px solid #00f0ff52;align-items:center;min-width:210px;height:72px;padding:10px;display:flex;box-shadow:inset 0 0 18px #00f0ff14}.header-waveform svg{width:100%;height:100%}.waveform-line,.waveform-glow{fill:none;stroke-linecap:round;stroke-linejoin:round}.waveform-line{stroke:#7ff8ff;stroke-width:1.8px}.waveform-glow{stroke:#00f0ffa6;stroke-width:4.8px;filter:blur(1.8px);transition:opacity .12s linear}.groove-header,.transport-panel,.drum-grid-panel,.bass-grid-panel,.synth-controls{border:1px solid var(--line-soft);border-radius:var(--radius-md);width:min(1080px,100%);box-shadow:var(--shadow-soft);background:linear-gradient(#171717 0%,#131313 100%);margin-inline:auto}.transport-panel{padding:var(--space-4);gap:var(--space-3);display:grid}.tab-bar{gap:var(--space-2);flex-wrap:wrap;width:min(1080px,100%);margin-inline:auto;display:flex}.transport-row{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.transport-row.controls{justify-content:space-between}.transport-row label{align-items:center;gap:var(--space-2);width:min(440px,100%);color:var(--text-body);font-weight:500;font-family:var(--font-mono);letter-spacing:.02em;grid-template-columns:72px 1fr 48px;display:grid}.primary-btn,.secondary-btn,.mute-btn,.step{border:1px solid var(--line-strong);background:var(--bg-panel-strong);color:var(--text-strong);border-radius:var(--radius-sm);cursor:pointer;font-family:var(--font-body);transition:transform var(--dur-fast) var(--ease-standard), box-shadow var(--dur-fast) var(--ease-standard), background-color var(--dur-fast) var(--ease-standard), border-color var(--dur-fast) var(--ease-standard), color var(--dur-fast) var(--ease-standard)}.primary-btn:hover,.secondary-btn:hover,.mute-btn:hover{box-shadow:var(--glow-primary);border-color:#00f0ff73;transform:translateY(-1px)}.primary-btn:active,.secondary-btn:active,.mute-btn:active{transform:translateY(0)}.primary-btn{color:#152100;background:linear-gradient(#c1ff6f 0%,#9be536 100%);border-color:#8fd727;padding:8px 16px;font-weight:700}.primary-btn:hover{box-shadow:var(--glow-play)}.secondary-btn{padding:8px 12px;font-weight:500}.groove-loaded-label{color:var(--text-soft);font-size:.9rem}.save-groove-btn{margin-left:auto}.app-footer{text-align:center;color:var(--text-soft);padding-top:var(--space-2);margin-top:auto;font-size:.88rem}.app-footer a{color:var(--accent-primary);text-decoration:none}.app-footer a:hover{text-decoration:underline}.active-tab{color:#dffcff;box-shadow:var(--glow-tab);background:linear-gradient(#00f0ff42,#00f0ff1f);border-color:#00f0ff8f}.playhead-grid{grid-template-columns:repeat(16,minmax(8px,1fr));gap:6px;display:grid}.playhead-step{border-radius:var(--radius-pill);background:#2f3537;height:7px}.playhead-step.active{background:var(--accent-primary);box-shadow:0 0 10px #00f0ff73}.transport-error{color:var(--accent-error);margin:4px 0 0;font-size:.88rem;font-weight:500}.drum-grid-panel,.bass-grid-panel,.synth-controls{padding:var(--space-4)}.panel-header-row{justify-content:space-between;align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.drum-grid-panel h2,.bass-grid-panel h2,.synth-controls h3{margin:0 0 var(--space-3);font-family:var(--font-display);letter-spacing:.015em;color:var(--text-strong)}.kit-select{align-items:center;gap:var(--space-2);color:var(--text-soft);letter-spacing:.07em;text-transform:uppercase;font-size:.82rem;font-family:var(--font-mono);display:inline-flex}.kit-select select{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--bg-panel-strong);color:var(--text-strong);padding:6px 10px}.panel-hint{margin:-6px 0 var(--space-3);color:var(--text-soft);font-size:.82rem;font-family:var(--font-mono)}.bass-grid{padding-bottom:var(--space-1);overflow-x:auto}.bass-step-header,.bass-note-row{grid-template-columns:56px repeat(16,minmax(18px,1fr));align-items:center;gap:6px;display:grid}.bass-step-header{margin-bottom:4px}.step-label{color:var(--text-soft);text-align:center;font-size:.7rem;font-family:var(--font-mono)}.note-label{color:var(--text-body);font-size:.82rem;font-weight:600;font-family:var(--font-mono)}.bass-step.active{background:linear-gradient(#32d7ff80,#32d7ff2e);border-color:#32d7ffcc;box-shadow:0 0 10px #32d7ff52}.lead-step.active{background:linear-gradient(#7be4ff8c,#7be4ff33);border-color:#7be4ffbf;box-shadow:0 0 10px #7be4ff57}.synth-controls-grid{grid-template-columns:repeat(2,minmax(220px,1fr));gap:10px 14px;display:grid}.synth-controls-grid label{align-items:center;gap:var(--space-2);color:var(--text-body);font-family:var(--font-mono);letter-spacing:.03em;grid-template-columns:80px 1fr 48px;font-size:.82rem;display:grid}.synth-controls-grid select{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--bg-panel-strong);color:var(--text-strong);padding:6px 8px}.synth-controls-buttons{margin-top:var(--space-3);gap:var(--space-2);flex-wrap:wrap;display:flex}.drum-grid{gap:var(--space-3);display:grid}.drum-row{gap:var(--space-2);padding:var(--space-2);border-radius:var(--radius-md);background:linear-gradient(#181818f0,#121212e6),repeating-linear-gradient(90deg,#00f0ff08 0 1px,#00f0ff00 1px 7px);border:1px solid #242a2d;display:grid}.drum-row-meta{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.drum-row-meta strong{min-width:88px;font-family:var(--font-mono)}.mute-btn{padding:4px 10px}.mute-btn.muted{color:#280000;background:linear-gradient(#ff7b7b 0%,#e24949 100%);border-color:#ff8787}.volume-control{gap:var(--space-2);color:var(--text-soft);font-family:var(--font-mono);letter-spacing:.03em;text-transform:uppercase;align-items:center;font-size:.76rem;display:flex}.steps{grid-template-columns:repeat(16,minmax(12px,1fr));gap:6px;display:grid}.step{background:linear-gradient(#2a2c2f 0%,#202225 100%);height:30px;box-shadow:inset 0 -1px #ffffff08}.step:hover{transform:translateY(-1px)}.step.active{background:linear-gradient(180deg, #ffbf80 0%, var(--accent-step) 72%, #db6f00 100%);box-shadow:var(--glow-step);animation:pulse-step .76s var(--ease-standard) infinite;border-color:#ff9f39}input[type=range]{appearance:none;border-radius:var(--radius-pill);background:linear-gradient(90deg,#293238 0%,#3d4f59 100%);border:1px solid #2d363b;width:100%;height:5px}input[type=range]::-webkit-slider-thumb{appearance:none;border-radius:var(--radius-pill);border:1px solid var(--accent-primary);background:#e9ffff;width:13px;height:13px;box-shadow:0 0 8px #00f0ff66}input[type=range]::-moz-range-thumb{border-radius:var(--radius-pill);border:1px solid var(--accent-primary);background:#e9ffff;width:13px;height:13px;box-shadow:0 0 8px #00f0ff66}button:focus-visible,input:focus-visible,select:focus-visible{outline-offset:2px;outline:2px solid #00f0ff9e}@media (width<=820px){.app-shell{padding-inline:12px}.app-header{flex-direction:column;align-items:stretch}.header-waveform{width:100%;min-width:0}.transport-row label,.synth-controls-grid label{grid-template-columns:62px 1fr 44px}.synth-controls-grid{grid-template-columns:1fr}}
