.pack-library,.pack-admin-panel{min-width:0}.pack-library h3,.pack-admin-panel h3{margin:0;font-size:14px;line-height:1.4}.pack-library p,.pack-admin-panel p{overflow-wrap:anywhere;margin:8px 0;line-height:1.6}.pack-section-heading,.pack-card-heading,.pack-admin-identity{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.pack-card-heading h3{overflow-wrap:anywhere;min-width:0}.pack-hint{color:var(--muted);font-size:11px;line-height:1.5}.pack-card{background:var(--panel-2);border:1px solid var(--grid);border-radius:8px;margin-bottom:12px;padding:14px}.pack-badge{color:var(--muted);text-transform:uppercase;background:#141418;border-radius:4px;flex-shrink:0;padding:4px 6px;font-size:10px}.pack-badge.published,.pack-badge.installed{color:#9edcb0;background:#213029}.pack-badge.draft{color:#efc675;background:#33291d}.pack-action{border:1px solid var(--grid);min-height:38px;color:var(--text);background:var(--panel-2);font:inherit;cursor:pointer;border-radius:5px;justify-content:center;align-items:center;padding:7px 12px;font-size:11px;text-decoration:none;display:inline-flex}.pack-action.primary{background:var(--accent);border-color:var(--accent);color:#171214;font-weight:600}.pack-card-actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.pack-card summary{cursor:pointer;min-height:32px;color:var(--muted);padding-block:6px;font-size:11px}.pack-samples{margin:4px 0;padding:0;list-style:none}.pack-samples li{border-top:1px solid var(--grid);overflow-wrap:anywhere;justify-content:space-between;gap:10px;padding:7px 0;font-size:11px;display:flex}.pack-samples li span{color:var(--muted);flex-shrink:0}.pack-progress{align-items:center;gap:10px;margin:10px 0;display:flex}.pack-progress progress{min-width:0;accent-color:var(--accent);flex:1}.pack-notice,.pack-empty{border:1px dashed var(--grid);color:var(--muted);border-radius:6px;padding:12px;font-size:12px}.pack-success{color:#a5dbb2;background:#1c3023;border:1px solid #365a40;border-radius:6px;padding:10px;font-size:12px}.pack-admin-entry{border-top:1px solid var(--grid);margin-top:16px;padding-top:12px}.pack-admin-identity{color:var(--muted);flex-wrap:wrap;font-size:11px}.pack-admin-identity a{color:var(--text)}.pack-create-form{gap:12px;margin:8px 0 20px;display:grid}.pack-create-form label{color:var(--muted);gap:6px;font-size:11px;display:grid}.pack-create-form input,.pack-create-form textarea,.pack-create-form select{width:100%;min-width:0;min-height:36px;color:var(--text)}.pack-file-list{gap:8px;display:grid}.pack-file{border:1px solid var(--grid);border-radius:5px;grid-template-columns:minmax(0,1fr) 140px;gap:10px;padding:10px;display:grid}.pack-file>.pack-hint{overflow-wrap:anywhere;grid-column:1/-1}.sample-library-tabs{gap:5px;margin-bottom:16px;display:flex}.sample-library-tabs button{flex:1;min-height:40px;font-size:12px}.sample-pack-source{color:var(--muted);margin-top:4px;font-size:10px;display:block}.drawer-container.library-drawer{max-width:580px}.sample-list .sample-name{min-width:0}@media (width<=600px){.pack-file{grid-template-columns:minmax(0,1fr)}.pack-action{min-height:42px}.pack-create-form input,.pack-create-form textarea,.pack-create-form select{font-size:16px}.pack-samples li{flex-wrap:wrap;gap:3px}.pack-card-heading{flex-wrap:wrap;gap:6px}}.panel.drummer-panel.drummer-workspace{min-height:0;margin-top:0;padding:0;display:block;overflow:visible;container:drummer/inline-size}.drummer-workspace .drummer-create-bar{z-index:18;border-bottom:1px solid var(--grid);background:#222229;border-radius:8px 8px 0 0;padding:14px 16px 12px;position:sticky;top:10px;box-shadow:0 6px 16px #0003}.drummer-workspace .drummer-heading-row{align-items:center;gap:10px;min-width:0;margin-bottom:12px;display:flex}.drummer-workspace .drummer-heading-row h2{letter-spacing:.3px;white-space:nowrap;margin:0;font-size:15px}.drummer-workspace .drummer-current-name{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.drummer-workspace .drummer-ready{color:#a3b6a9;white-space:nowrap;margin-left:auto;font-size:10px}.drummer-workspace .drummer-ready.pending{color:#ffbc95}.drummer-workspace .drummer-create-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.drummer-workspace .drummer-create-action{text-align:left;border-radius:7px;justify-content:center;align-items:center;gap:9px;min-width:0;min-height:56px;padding:10px 8px;display:flex}.drummer-workspace .drummer-create-action>span:not(.die){flex-direction:column;gap:3px;min-width:0;display:flex}.drummer-workspace .drummer-create-action strong{font-size:12px;font-weight:700;line-height:1.3}.drummer-workspace .drummer-create-action small{color:var(--muted);font-size:9px;line-height:1.4}.drummer-workspace .drummer-create-action .ui-icon{flex:none;width:19px;height:19px}.drummer-workspace .drummer-create-action .die{flex:0 0 15px}.drummer-workspace .drummer-generate{color:#fff;background:#b8492b;border-color:#ed815c}.drummer-workspace .drummer-generate small{color:#ffe0cf}.drummer-workspace .drummer-generate:hover{background:#ce5534;border-color:#ffa17a}.drummer-workspace .drummer-ai{color:#b9dfa8;border-color:#46513e}.drummer-workspace .drummer-creation-status{color:#b0b0bd;margin:10px 0 0;font-size:11px;line-height:1.5}.drummer-workspace .drummer-creation-error{color:#ffc0b1;margin:8px 0 0;font-size:12px;line-height:1.5}.drummer-workspace .drummer-body{grid-template-columns:minmax(210px,.7fr) minmax(0,1.3fr);align-items:stretch;gap:16px;padding:16px;display:grid}.drummer-workspace .drummer-joystick{flex-direction:column;gap:8px;min-width:0;display:flex}.drummer-workspace .drummer-joystick .joystick-pad{flex:auto;width:100%;height:auto;min-height:242px}.drummer-workspace .drummer-joystick>p{color:var(--muted);margin:0;font-size:10px;line-height:1.5}.drummer-workspace .drummer-joystick .joystick-heading{letter-spacing:.6px;font-size:8px}.drummer-workspace .drummer-joystick .joystick-lock{font-size:7px}.drummer-workspace .drummer-joystick .joystick-seed{letter-spacing:.3px;font-size:8px}.drummer-workspace .drummer-settings{align-content:start;gap:14px;min-width:0;display:grid}.drummer-workspace .drummer-setting-section{border:1px solid var(--grid);background:var(--panel-2);border-radius:8px;min-width:0;padding:12px}.drummer-workspace .drummer-setting-section h3{align-items:center;gap:7px;margin:0 0 10px;font-size:12px;font-weight:600;display:flex}.drummer-workspace .drummer-setting-section h3>span{color:#a3b6a9;margin-left:auto;font-size:9px;font-weight:400}.drummer-workspace .drummer-instruments{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}.drummer-workspace .drummer-instrument{min-width:0;min-height:40px;color:var(--muted);justify-content:flex-start;align-items:center;gap:6px;padding:7px;font-size:11px;display:flex}.drummer-workspace .drummer-instrument span{overflow-wrap:anywhere;min-width:0}.drummer-workspace .drummer-instrument .drum-icon{flex:0 0 17px;width:17px;height:17px}.drummer-workspace .drummer-instrument.active{color:#f9c3a9;background:#3a2e29;border-color:#90604c}.drummer-workspace .drummer-setting-help{color:var(--muted);margin:9px 0 0;font-size:10px;line-height:1.5}.drummer-workspace .drummer-groove-controls{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.drummer-workspace .drummer-groove-controls label{flex-direction:column;gap:4px;min-width:0;display:flex}.drummer-workspace .drummer-groove-controls label>span{justify-content:space-between;gap:8px;font-size:11px;display:flex}.drummer-workspace .drummer-groove-controls output{font-variant-numeric:tabular-nums;color:#e2b397}.drummer-workspace .drummer-groove-controls input{width:100%;min-width:0;min-height:32px;accent-color:var(--accent);padding:0}.drummer-workspace .drummer-libraries{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:10px;padding:0 16px 16px;display:grid}.drummer-workspace .drummer-library{border:1px solid var(--grid);background:var(--panel-2);border-radius:7px;min-width:0}.drummer-workspace .drummer-library summary{cursor:pointer;align-items:center;gap:8px;min-height:44px;padding:12px;font-size:12px;list-style:none;display:flex}.drummer-workspace .drummer-library summary::-webkit-details-marker{display:none}.drummer-workspace .drummer-library summary:after{content:"+";color:var(--muted);margin-left:auto;font-size:17px}.drummer-workspace .drummer-library[open] summary:after{content:"−"}.drummer-workspace .drummer-library summary small{color:var(--muted);font-size:9px}.drummer-workspace .drummer-library summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:7px}.drummer-workspace .drummer-library-content{padding:0 12px 12px}.drummer-workspace .drummer-library-picker{color:var(--muted);flex-direction:column;gap:6px;font-size:10px;display:flex}.drummer-workspace .drummer-library-picker select{width:100%;min-width:0;min-height:36px;font-size:11px}.drummer-workspace .drummer-library-actions{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.drummer-workspace .drummer-library-actions button{align-items:center;gap:5px;min-height:34px;font-size:10px;display:inline-flex}.drummer-workspace .drummer-break-details{color:#c0c0ca;margin:8px 0 0;font-size:10px;line-height:1.5}.effect-rack-panel .effect-rack-slots{grid-template-columns:minmax(0,1fr)}.effect-rack-panel .effect-slot{grid-template-columns:12px 26px minmax(0,1fr) 40px 32px;gap:5px;padding:6px}.effect-rack-panel .effect-order button{width:26px;height:24px}.effect-rack-panel .effect-select{min-height:36px;font-size:10px}.effect-rack-panel .effect-bypass{min-height:36px}.midi-instrument-mappings{border-top:1px solid var(--grid);margin-top:18px;padding-top:14px}.midi-instrument-mappings h3{margin:0;font-size:13px}.midi-mapping-list{gap:7px;display:grid}.midi-mapping-row{grid-template-columns:minmax(0,1fr) auto 76px;align-items:center;gap:10px;font-size:12px;display:grid}.midi-mapping-name{overflow-wrap:anywhere}.midi-mapping-value{color:var(--muted);font-size:10px}.midi-mapping-row button{min-height:36px;font-size:11px}@container drummer (width<=760px){.drummer-workspace .drummer-instruments{grid-template-columns:repeat(2,minmax(0,1fr))}.drummer-workspace .drummer-create-action{gap:6px}.drummer-workspace .drummer-create-action small{font-size:8px}.drummer-workspace .drummer-joystick .joystick-lock,.drummer-workspace .drummer-library summary small{display:none}}@container drummer (width<=560px){.drummer-workspace .drummer-body{grid-template-columns:minmax(0,1fr);gap:12px;padding:12px}.drummer-workspace .drummer-joystick .joystick-pad{height:210px;min-height:210px}.drummer-workspace .drummer-instruments{grid-template-columns:repeat(4,minmax(0,1fr))}.drummer-workspace .drummer-instrument{flex-direction:column;justify-content:center;gap:4px;padding:6px 3px;font-size:10px}.drummer-workspace .drummer-create-bar{padding:12px}.drummer-workspace .drummer-create-actions{gap:6px}.drummer-workspace .drummer-create-action{text-align:center;flex-direction:column;gap:5px;min-height:62px;padding:8px 4px}.drummer-workspace .drummer-create-action strong{font-size:11px}.drummer-workspace .drummer-create-action small{display:none}.drummer-workspace .drummer-libraries{grid-template-columns:minmax(0,1fr);padding:0 12px 12px}.drummer-workspace .drummer-creation-status{font-size:10px;line-height:1.5}}@media (width<=600px){.drummer-workspace .drummer-create-bar{top:64px}.drummer-workspace .drummer-current-name{display:none}.drummer-workspace .drummer-groove-controls input{min-height:40px}.drummer-workspace .drummer-library-picker select,.drummer-workspace .drummer-library-actions button{min-height:42px}}@container drummer (width<=560px){.drummer-workspace .drummer-create-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.drummer-workspace .drummer-generate{grid-column:1/-1}.drummer-workspace .drummer-create-action{flex-direction:row;min-height:46px}}.drummer-workspace .drummer-ai-settings{border:1px solid var(--grid);background:#1c1c23;border-radius:6px;grid-template-columns:126px minmax(100px,230px) minmax(0,1fr);align-items:center;gap:10px;margin-top:12px;padding:10px 12px;display:grid}.drummer-workspace .drummer-ai-settings label{justify-content:space-between;gap:8px;font-size:11px;display:flex}.drummer-workspace .drummer-ai-settings output{color:#b9dfa8;font-variant-numeric:tabular-nums}.drummer-workspace .drummer-ai-settings input{accent-color:#9bbb86;width:100%;min-width:0;min-height:28px;padding:0}.drummer-workspace .drummer-ai-settings p{color:var(--muted);margin:0;font-size:10px;line-height:1.5}@container drummer (width<=760px){.drummer-workspace .drummer-ai-settings{grid-template-columns:126px minmax(0,1fr)}.drummer-workspace .drummer-ai-settings p{grid-column:1/-1}}@media (width<=600px){.drummer-workspace .drummer-ai-settings{gap:3px 8px;padding:6px 8px}.drummer-workspace .drummer-ai-settings input{min-height:36px}}:root{--bg:#141418;--panel:#1d1d24;--panel-2:#24242e;--text:#e8e8ec;--muted:#8a8a96;--accent:#ff6a3d;--accent-dim:#ff6a3d33;--step-on:#ffb03a;--grid:#2c2c38}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font-family:SF Mono,ui-monospace,Menlo,monospace;font-size:13px}button{background:var(--panel-2);color:var(--text);border:1px solid var(--grid);font:inherit;cursor:pointer;border-radius:4px;padding:6px 10px}button:hover{border-color:var(--accent)}button:focus-visible{outline:2px solid var(--accent)}button.active{background:var(--accent);border-color:var(--accent);color:#141418}select,input{background:var(--panel-2);color:var(--text);border:1px solid var(--grid);font:inherit;border-radius:4px;max-width:100%;padding:4px 6px}.app{flex-direction:column;gap:12px;min-height:100vh;padding:16px 16px 96px;display:flex}.tape-deck{z-index:20;background:linear-gradient(#26262e,#191920);border-top:1px solid #383844;align-items:center;gap:10px;padding:10px 20px;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -8px 24px #00000073}.deck-btn{background:linear-gradient(#34343f,#23232b);border:1px solid #40404d;border-radius:6px;width:60px;height:40px;font-size:15px;box-shadow:inset 0 1px #ffffff12,0 3px 6px #00000059}.deck-steps{flex:none;gap:3px;display:flex}.deck-step-btn{width:32px;height:40px;color:var(--muted);background:linear-gradient(#34343f,#23232b);border-color:#40404d;padding:0;font-size:10px}.deck-step-btn.active{color:#141418;background:var(--accent);border-color:var(--accent)}.deck-btn:active{transform:translateY(1px)}.deck-btn:disabled{opacity:.35;cursor:not-allowed;transform:none}.deck-btn:disabled:hover{border-color:#40404d}.deck-btn.play.active:disabled{opacity:1;cursor:default}.deck-group{background:#0000002e;border:1px solid #30303a;border-radius:8px;align-items:center;gap:4px;padding:3px;display:flex}.deck-lcd-stack{flex-direction:column;align-items:center;gap:2px;display:flex}.deck-beats{gap:4px;display:flex}.deck-beat{text-align:center;color:#24352a;background:#0c110d;border:1px solid #1a2a1f;border-radius:2px;width:14px;font-size:9px;line-height:1.4;transition:color 60ms,text-shadow 60ms}.deck-beat.on{color:#6eff8a;text-shadow:0 0 5px #6eff8a99}.tap-tempo-btn{letter-spacing:1px;color:var(--muted);padding:1px 6px;font-size:9px}.tap-tempo-btn:active{background:var(--accent);color:#141418}.deck-btn.play.active{color:#6eff8a;background:linear-gradient(#1d3324,#16251a);border-color:#6eff8a}.deck-btn.record{letter-spacing:1px;font-size:10px;font-weight:700}.deck-btn.record.active{color:#fff;background:linear-gradient(#6b2025,#351316);border-color:#ff4040;box-shadow:inset 0 1px #ffffff1a,0 0 10px #ff404059}.deck-btn.reverse{letter-spacing:1px;font-size:10px;font-weight:700}.deck-btn.reverse.active{color:#141418;border-color:var(--accent);background:var(--accent)}.deck-btn.stop.pending{color:var(--accent);border-color:var(--accent);animation:.5s infinite pulse}.deck-message{color:#ffb03a;background:#100e0a;border:1px solid #3a2c18;border-radius:4px;flex:1;align-items:center;gap:10px;min-width:180px;height:40px;padding:0 12px;display:flex;box-shadow:inset 0 0 12px #ffb03a0d}.deck-message-label{color:#7d6849;letter-spacing:2px;flex:none;font-size:9px}.deck-message-text{text-overflow:ellipsis;white-space:nowrap;letter-spacing:.3px;font-variant-numeric:tabular-nums;min-width:0;font-size:11px;overflow:hidden}.deck-lcd{letter-spacing:2px;color:#6eff8a;text-shadow:0 0 6px #6eff8a66;text-align:center;background:#0c110d;border:1px solid #24352a;border-radius:4px;min-width:96px;padding:6px 14px;font-size:16px}.deck-hint{color:var(--muted);letter-spacing:1px;font-size:10px}.deck-tempo{min-width:170px;margin-left:auto}.deck-tempo-input{appearance:none;cursor:ew-resize;background:0 0;border:0;height:28px;padding:0 9px}.deck-tempo-input::-webkit-slider-runnable-track{background:linear-gradient(to right, var(--accent) 0 var(--tempo-fill), #101014 var(--tempo-fill) 100%);border-radius:2px;height:4px;box-shadow:inset 0 0 3px #000}.deck-tempo-input::-webkit-slider-thumb{appearance:none;background:linear-gradient(90deg,#0000 0 7px,#0a0a0e 7px 9px,#0000 9px),linear-gradient(90deg,#42424e,#26262e 42%,#1a1a20 58%,#32323c);border:1px solid #000;border-radius:3px;width:18px;height:26px;margin-top:-11px;box-shadow:2px 0 5px #000000a6}.deck-tempo-input::-moz-range-track{background:#101014;border-radius:2px;height:4px;box-shadow:inset 0 0 3px #000}.deck-tempo-input::-moz-range-progress{background:var(--accent);border-radius:2px;height:4px}.deck-tempo-input::-moz-range-thumb{background:linear-gradient(90deg,#42424e,#26262e 42%,#1a1a20 58%,#32323c);border:1px solid #000;border-radius:3px;width:18px;height:26px;box-shadow:2px 0 5px #000000a6}.app-header{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.app-header .transport{background:0 0;border-radius:0;align-items:center;gap:8px;margin-left:auto;padding:0}.app-version{color:var(--step-on);letter-spacing:1.5px;font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none;background:#100e0a;border:1px solid #3a2c18;border-radius:3px;padding:3px 8px;font-size:10px}.app-version.has-update{background:var(--accent);color:#141418;border-color:var(--accent);cursor:pointer;animation:1s infinite pulse}.transport-status{border:1px solid var(--grid);color:var(--muted);border-radius:3px;padding:2px 8px;font-size:11px}.transport-status.playing{color:#6eff8a;border-color:#6eff8a}.transport-status.recording{color:#ff6060;border-color:#ff4040;animation:.8s infinite pulse}.transport{background:var(--panel);border-radius:8px;flex-wrap:wrap;align-items:flex-end;gap:20px;padding:14px 16px;display:flex}.transport-play{letter-spacing:1px;padding:12px 24px;font-weight:700}.slider{flex-direction:column;gap:4px;min-width:120px;display:flex}.slider-label{color:var(--muted);letter-spacing:1px;align-items:center;gap:6px;font-size:10px;display:flex}.learn-chip,.learn-ctrl{color:var(--muted);padding:2px 6px;font-size:9px}.learn-chip.active,.learn-ctrl.active,.midi-learn.active{background:var(--accent);color:#141418;border-color:var(--accent);animation:1s infinite pulse}@keyframes pulse{50%{opacity:.6}}.slider-value{color:var(--muted);font-size:11px}.app-main{flex:1;gap:12px;min-height:0;display:flex}.app-left{flex-direction:column;flex:1;gap:12px;min-width:0;display:flex}.sequencer{background:var(--panel);-webkit-user-select:none;user-select:none;border-radius:8px;flex-direction:column;flex:1;gap:4px;padding:12px;display:flex;position:relative;overflow-x:auto}.sequencer-skeleton-banner,.sequencer-empty-hint{border:1px dashed var(--grid);color:var(--muted);letter-spacing:.5px;text-align:center;background:#191922;border-radius:4px;margin-bottom:6px;padding:6px 12px;font-size:10px}.sequencer-skeleton-banner{color:var(--step-on);border-color:#ffb03a44;animation:1s infinite pulse}.track-row{align-items:center;gap:8px;display:flex}.track-meta{flex-shrink:0;align-items:center;gap:6px;width:210px;display:flex}.track-name{min-width:56px;padding:4px 8px;font-size:11px;font-weight:700}.track-sample-select{text-overflow:ellipsis;flex:1;min-width:0;font-size:11px}.mute,.midi-learn{padding:2px 5px;font-size:9px}.mute.active{background:var(--accent);color:#141418}.steps{touch-action:none;flex:1;gap:3px;display:flex}.step{background:var(--panel-2);border:1px solid var(--grid);border-radius:5px;flex:1 1 0;min-width:18px;height:44px;padding:0;position:relative}.step.alt{background:#191920}.step.on{background:color-mix(in srgb, var(--step-on) calc(var(--vel) * 100%), transparent);border-color:var(--step-on)}.step.on:after{content:"";height:calc(var(--vel) * (100% - 2px));pointer-events:none;background:#00000059;border-radius:2px;position:absolute;bottom:1px;left:1px;right:1px}.step.playing{outline:2px solid var(--accent);box-shadow:0 0 8px var(--accent)}@media (prefers-reduced-motion:no-preference){.step.playing{animation:.14s ease-out step-hit}}@keyframes step-hit{0%{box-shadow:0 0 16px var(--accent);filter:brightness(1.5)}to{box-shadow:0 0 8px var(--accent);filter:brightness()}}.step:nth-child(4n+1):not(:first-child){margin-left:7px}.step:nth-child(4n+1):not(:first-child):before{content:"";pointer-events:none;background:#3a3a48;width:1px;position:absolute;top:20%;bottom:20%;left:-6px}.step:hover{border-color:var(--accent)}.app-sidebar{flex-direction:column;flex-shrink:0;gap:12px;width:auto;min-width:260px;max-width:25%;display:flex}.mixer{gap:6px;display:flex}.channel{background:var(--panel-2);border-radius:6px;flex-direction:column;flex:1 0 40px;align-items:center;gap:5px;min-width:0;padding:8px 4px 6px;display:flex}.channel.muted .fader-fill{background:var(--muted)}.fader-rail{cursor:ns-resize;touch-action:none;background:repeating-linear-gradient(to bottom, var(--grid) 0 1px, transparent 1px 37px) right / 5px calc(100% - 2px) no-repeat, transparent;width:30px;height:150px;position:relative}.fader-rail:before{content:"";background:#101014;border-radius:2px;width:4px;position:absolute;top:2px;bottom:2px;left:50%;transform:translate(-50%);box-shadow:inset 0 0 3px #000}.fader-fill{background:var(--accent);pointer-events:none;border-radius:2px;width:4px;position:absolute;bottom:2px;left:50%;transform:translate(-50%)}.fader-cap{pointer-events:none;background:linear-gradient(#42424e,#26262e 42%,#1a1a20 58%,#32323c);border:1px solid #000;border-radius:3px;width:26px;height:18px;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 2px 5px #000000a6}.fader-cap:before{content:"";background:#0a0a0e;height:2px;position:absolute;top:50%;left:3px;right:3px;transform:translateY(-50%);box-shadow:0 1px #4c4c58}.channel-db{color:var(--muted);font-variant-numeric:tabular-nums;font-size:9px}.pan-pot{appearance:none;cursor:ew-resize;background:#101014;border-radius:2px;outline:none;width:100%;height:4px}.pan-pot::-webkit-slider-thumb{-webkit-appearance:none;background:linear-gradient(#42424e,#1f1f26);border:1px solid #000;border-radius:2px;width:10px;height:14px;box-shadow:0 1px 3px #0009}.pan-pot::-moz-range-thumb{background:linear-gradient(#42424e,#1f1f26);border:1px solid #000;border-radius:2px;width:10px;height:14px;box-shadow:0 1px 3px #0009}.channel-mute,.channel-btns{width:100%}.channel-btns{gap:3px;display:flex}.channel-btns button{flex:1;padding:2px 0;font-size:9px}.solo.active{color:#141418;background:#ffb03a;border-color:#ffb03a}.channel.soloed .fader-fill{background:#ffb03a}.channel .midi-learn{width:100%;padding:2px;font-size:9px}.send-row{gap:2px;display:flex}.knob-wrap{flex-direction:column;align-items:center;gap:1px;display:flex}.knob{cursor:ns-resize;touch-action:none;background:radial-gradient(circle at 35% 30%,#3c3c46,#1c1c22 70%);border:1px solid #000;border-radius:50%;flex-shrink:0;position:relative;box-shadow:0 2px 4px #0009,inset 0 1px #ffffff14}.knob-ind{transform:rotate(var(--a,0deg));position:absolute;inset:0}.knob-ind:before{content:"";background:var(--accent);border-radius:1px;width:2px;height:38%;position:absolute;top:2px;left:calc(50% - 1px)}.knob-label{color:var(--muted);letter-spacing:.5px;font-size:9px}.knob-val{color:var(--muted);font-variant-numeric:tabular-nums;font-size:9px}.channel.master{border:1px solid var(--grid);background:#23232d}.channel.master .fader-cap:before{box-shadow:0 1px 0 var(--accent)}.master-rack{flex-direction:column;display:flex}.fx-row{gap:10px;margin-bottom:10px;display:flex}.fx-block{flex-direction:column;flex:1;gap:5px;display:flex}.fx-title{letter-spacing:2px;color:var(--muted);font-size:9px}.fx-select{padding:3px 4px;font-size:10px}.fx-knobs{justify-content:space-between;gap:6px;display:flex}.eq-canvas,.comp-canvas{border:1px solid var(--grid);border-radius:6px;width:100%;height:auto;display:block}.eq-canvas{cursor:crosshair}.knob:focus-visible,.fader-rail:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.track-clear-btn{opacity:.7;font-size:10px;font-weight:700}.track-clear-btn:hover{opacity:1;color:#ff4040;border-color:#ff4040}.eq-bands{gap:4px;margin-top:6px;display:flex}.eq-band{flex-direction:column;flex:1;align-items:center;gap:3px;min-width:0;display:flex}.eq-band .fader-rail{background:0 0;width:20px}.eq-band-label{color:var(--muted);letter-spacing:.5px;font-size:9px}.freq-pot{appearance:none;cursor:ew-resize;background:#101014;border-radius:2px;outline:none;width:100%;height:3px}.freq-pot::-webkit-slider-thumb{-webkit-appearance:none;background:linear-gradient(#42424e,#1f1f26);border:1px solid #000;border-radius:2px;width:8px;height:11px}.freq-pot::-moz-range-thumb{background:linear-gradient(#42424e,#1f1f26);border:1px solid #000;border-radius:2px;width:8px;height:11px}.comp-row{align-items:flex-end;gap:8px;margin-top:10px;display:flex}.comp-knobs{flex:1;justify-content:space-between;gap:4px;display:flex}.gr-block{flex-direction:column;align-items:stretch;gap:3px;width:64px;display:flex}.gr-meter{border:1px solid var(--grid);background:#101014;border-radius:4px;height:8px;overflow:hidden}.gr-fill{background:linear-gradient(90deg,#35e05a,#ffb03a 60%,#ff4040);width:0%;height:100%}.comp-title{letter-spacing:2px;color:var(--muted);text-align:right;margin-top:4px;font-size:9px}.drummer-panel{align-items:stretch;min-height:320px;margin-top:auto;padding:0;display:flex;overflow:hidden}.joystick-half{flex:50%;min-width:0;display:flex}.joystick-half .joystick-pad{border:none;border-right:1px solid var(--grid);border-radius:0;flex:1;width:100%;height:auto;min-height:320px}.drummer-grid{flex:50%;grid-template-columns:20% 1fr 1fr;align-content:start;align-items:stretch;gap:8px;min-width:0;padding:10px 12px;display:grid}.drummer-sub{background:var(--panel-2);border:1px solid var(--grid);border-radius:6px;flex-direction:column;gap:6px;padding:6px 8px;display:flex}.instr-col .grid-toggles{grid-template-columns:minmax(0,1fr);gap:3px;display:grid}.instr-control{grid-template-columns:minmax(0,1fr) 28px;gap:3px;display:grid}.instr-col .instr-toggle{text-align:left;align-items:center;gap:4px;min-width:0;padding:4px;font-size:9px;display:flex}.instr-midi-learn{min-width:0;color:var(--muted);justify-content:center;align-items:center;gap:2px;padding:2px 0;font-size:8px;font-weight:700;display:flex}.instr-midi-learn.mapped{color:#6eff8a;border-color:#6eff8a59}.instr-midi-learn.active{background:var(--accent);color:#141418;border-color:var(--accent);animation:1s infinite pulse}.ui-icon,.drum-icon{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;flex:none;width:13px;height:13px}.drum-icon{width:13px;height:13px}.instr-midi-learn .ui-icon{width:11px;height:11px}.sub-title>.ui-icon{color:var(--accent)}.icon-button,.ai-btn{justify-content:center;align-items:center;gap:4px;display:inline-flex}.drummer-col .drummer-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;display:grid}.drummer-col .drummer-actions button{min-width:0;padding:5px 3px;font-size:8px}.drummer-col .drummer-actions .ui-icon{width:11px;height:11px}.generate-btn{grid-column:1/-1}.drummer-col{flex-direction:column;gap:8px;min-width:0;display:flex}.sub-title{letter-spacing:2px;color:var(--muted);align-items:center;gap:6px;font-size:9px;display:flex}.sub-title:after{content:"";background:var(--grid);flex:1;height:1px}.groove-row{grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:8px;display:grid}.groove-row .knob-wrap{justify-self:center}.preset-stack{flex-direction:column;flex:1;gap:6px;display:flex}.classic-breaks{flex-direction:column;gap:6px;min-width:0;padding-top:8px;display:flex}.effect-rack{background:var(--panel-2);border:1px solid var(--grid);border-radius:6px;flex-direction:column;grid-column:1/-1;gap:6px;min-width:0;padding:8px;display:flex}.effect-rack-slots{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;min-width:0;display:grid}.effect-slot{border:1px solid var(--grid);background:#191920;border-radius:4px;grid-template-columns:14px 18px minmax(0,1fr) 30px 24px;align-items:center;gap:4px;min-width:0;padding:3px;transition:opacity .12s,border-color .12s;display:grid}.effect-slot.dragging{opacity:.4;border-color:var(--accent)}.effect-drag-handle{cursor:grab;color:var(--muted);text-align:center;-webkit-user-select:none;user-select:none;font-size:11px}.effect-drag-handle:active{cursor:grabbing}.effect-slot.bypassed{opacity:.55}.effect-order{flex-direction:column;gap:2px;display:flex}.effect-order button{width:18px;height:15px;padding:0;font-size:9px;line-height:1}.effect-select{width:100%;min-width:0;padding:3px 2px;font-size:9px}.effect-slot .knob-wrap{gap:1px}.effect-slot .knob-val{font-size:9px}.effect-bypass{width:24px;height:28px;padding:0;font-size:9px}.effect-bypass.active{color:#ff6060;background:#41191c;border-color:#ff4040}.breakbeat-readout{color:var(--muted);letter-spacing:.5px;font-size:9px;line-height:1.4}.drummer-meta{flex-direction:column;justify-content:center;gap:6px;min-width:0;display:flex}.drummer-actions{flex-wrap:wrap;gap:6px;display:flex}.drummer-toggles,.drummer-knobs,.drummer-row,.drummer-play{display:none}.instr-toggle{letter-spacing:.5px;color:var(--muted);padding:4px 8px;font-size:9px}.instr-toggle.active{background:var(--accent);color:#141418;border-color:var(--accent)}.drummer-knobs{flex-wrap:wrap;flex:1;align-items:flex-start;gap:12px;display:flex}.drummer-tempo{min-width:150px}.drummer-play{align-items:center}.joystick-pad{--joy-x:50%;--joy-y:50%;isolation:isolate;border:1px solid var(--grid);touch-action:none;cursor:crosshair;-webkit-user-select:none;user-select:none;background:linear-gradient(135deg,#ff6a3d09,#0000 42%),radial-gradient(at 50% 42%,#292935 0%,#191920 63%,#121217 100%);border-radius:10px;flex-shrink:0;width:160px;height:96px;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff0a,inset 0 2px 18px #000000b8}.joystick-pad:before{content:"";z-index:1;pointer-events:none;background:radial-gradient(circle 140px at var(--joy-x) var(--joy-y), #ff6a3d33, #ff6a3d0e 42%, transparent 72%);transition:background 80ms linear;position:absolute;inset:0}.joystick-pad:after{content:"";z-index:7;pointer-events:none;border:1px solid #ffffff09;position:absolute;inset:10px;box-shadow:inset 0 0 0 1px #0000006b}.joystick-pad:focus-visible{outline:2px solid var(--accent);outline-offset:-3px}.joystick-grid{z-index:0;pointer-events:none;opacity:.68;background-image:linear-gradient(#7b7b911c 1px,#0000 1px),linear-gradient(90deg,#7b7b911c 1px,#0000 1px),linear-gradient(#7b7b9129 1px,#0000 1px),linear-gradient(90deg,#7b7b9129 1px,#0000 1px);background-size:6.25% 12.5%,6.25% 12.5%,25% 25%,25% 25%;position:absolute;inset:0;-webkit-mask-image:radial-gradient(#000 20%,#0000 88%);mask-image:radial-gradient(#000 20%,#0000 88%)}.joystick-radar{z-index:2;aspect-ratio:1;pointer-events:none;border:1px solid #ffb03a26;border-radius:50%;width:min(52%,220px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 42px #ff6a3d09}.joystick-radar:before,.joystick-radar:after,.joystick-radar span{content:"";border:1px solid #ffb03a1b;border-radius:50%;position:absolute}.joystick-radar:before{inset:16.66%}.joystick-radar:after{inset:33.33%}.joystick-radar span:first-child{border-color:#ffb03a4d;inset:49%}.joystick-radar span:nth-child(2),.joystick-radar span:nth-child(3){transform-origin:50%;border:0;border-top:1px solid #ffb03a14;border-radius:0;width:141%;height:0;top:50%;left:50%}.joystick-radar span:nth-child(2){transform:translate(-50%,-50%)rotate(45deg)}.joystick-radar span:nth-child(3){transform:translate(-50%,-50%)rotate(-45deg)}.joystick-crosshair{z-index:3;left:var(--joy-x);top:var(--joy-y);pointer-events:none;width:1px;height:1px;position:absolute}.joystick-crosshair:before,.joystick-crosshair:after{content:"";filter:drop-shadow(0 0 3px #ff6a3d61);background:#ff6a3d42;position:absolute}.joystick-crosshair:before{width:200vw;height:1px;left:-100vw}.joystick-crosshair:after{width:1px;height:200vh;top:-100vh}.joystick-stick{z-index:5;left:var(--joy-x);top:var(--joy-y);pointer-events:none;background:radial-gradient(circle at 35% 28%,#ffffff3d,#0000 21%),radial-gradient(circle at 50% 55%,#3f3f4a 0%,#25252d 62%,#15151a 100%);border:1px solid #050506;border-radius:50%;width:44px;height:44px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 7px 15px #000000b8,0 0 0 2px #ff6a3d3d,0 0 24px #ff6a3d52,inset 0 1px 2px #ffffff2b,inset 0 -5px 9px #0000007a}.joystick-stick:before{content:"";border:1px solid #ffb03a47;border-radius:50%;position:absolute;inset:-8px;box-shadow:0 0 12px #ff6a3d29}.joystick-stick:after{content:"";background:radial-gradient(circle at 38% 32%,#777782 0%,#3a3a44 52%,#23232a 100%);border:1px solid #ffffff14;border-radius:50%;position:absolute;inset:8px;box-shadow:inset 0 -2px 4px #00000073,0 0 0 2px #0000003b}.joystick-heading{z-index:6;letter-spacing:2px;color:#b8b8c2;pointer-events:none;text-shadow:0 1px 3px #000;align-items:center;gap:8px;font-size:9px;font-weight:700;display:flex;position:absolute;top:18px;left:20px;right:20px}.joystick-live-dot{background:var(--accent);width:6px;height:6px;box-shadow:0 0 8px var(--accent);border-radius:50%}.joystick-lock{letter-spacing:1px;color:#6eff8a;text-shadow:0 0 7px #6eff8a47;margin-left:auto;font-size:8px;font-weight:500}.joystick-readout{z-index:6;color:#d3d3da;letter-spacing:1px;pointer-events:none;background:#0a0a0d8c;border:1px solid #ffffff0e;align-items:center;gap:9px;padding:4px 6px;font-size:8px;display:flex;position:absolute;bottom:17px;right:18px;box-shadow:inset 0 0 8px #00000070}.joystick-seed{color:var(--accent)}.joy-label{z-index:6;letter-spacing:1.5px;color:var(--muted);pointer-events:none;text-shadow:0 1px 3px #000;font-size:9px;position:absolute}.joy-l{top:50%;left:15px;transform:translate(-50%,-50%)rotate(-90deg)}.joy-r{top:50%;right:14px;transform:translate(50%,-50%)rotate(90deg)}.joy-b{bottom:16px;left:50%;transform:translate(-50%)}.joy-t{top:48px;left:50%;transform:translate(-50%)}.drummer-meta{flex-direction:column;gap:6px;display:flex}.drummer-name{letter-spacing:1px;font-weight:700}.drummer-readout{color:var(--muted);letter-spacing:1px;font-size:9px}.drummer-actions{gap:6px;display:flex}.dice-btn{justify-content:center;align-items:center;padding:4px 8px;display:flex}.ai-btn{color:var(--step-on);font-weight:700}.ai-btn:hover:not(:disabled){border-color:var(--step-on)}.ai-btn:disabled{opacity:.6}.die{background-color:#e8e8ec;background-image:radial-gradient(2.1px at 5px 5px,#141418 100%,#0000),radial-gradient(2.1px at 10px 10px,#141418 100%,#0000),radial-gradient(2.1px at 7.5px 7.5px,#141418 100%,#0000),radial-gradient(2.1px at 5px 10px,#141418 100%,#0000),radial-gradient(2.1px at 10px 5px,#141418 100%,#0000);border-radius:3px;width:15px;height:15px}.channel-name{letter-spacing:1px;color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:9px;overflow:hidden}.panel{background:var(--panel);border-radius:8px;padding:12px}.panel h2{letter-spacing:1px;color:var(--muted);margin:0 0 10px;font-size:12px}.upload-btn{width:100%}.upload-row{gap:6px;display:flex}.sample-launcher,.midi-launcher{align-items:center;gap:10px;display:flex}.sample-launcher h2,.midi-launcher h2{margin:0}.sample-open-btn{flex:1}.status-toast{z-index:150;letter-spacing:.3px;font-variant-numeric:tabular-nums;color:#ffb03a;text-overflow:ellipsis;white-space:nowrap;pointer-events:none;opacity:1;background:#100e0a;border:1px solid #3a2c18;border-radius:4px;max-width:340px;padding:8px 14px;font-size:11px;transition:opacity .5s;position:fixed;top:14px;right:16px;overflow:hidden;box-shadow:0 6px 20px #00000080,inset 0 0 12px #ffb03a0d}.status-toast.idle{opacity:0}@media (prefers-reduced-motion:no-preference){.status-toast{animation:.16s cubic-bezier(.16,1,.3,1) toast-pop}}@keyframes toast-pop{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.deck-message-text{transition:opacity .5s}.deck-message.idle .deck-message-text{opacity:.35}@media (prefers-reduced-motion:no-preference){button{transition:background-color 80ms,border-color 80ms,color 80ms,opacity 80ms}.step{transition:background-color 60ms,border-color 60ms}.drawer-overlay{animation:.18s ease-out overlay-fade}.drawer-panel{animation:.2s cubic-bezier(.16,1,.3,1) drawer-slide}.dialog-overlay{animation:.14s ease-out overlay-fade}.dialog-box{animation:.15s cubic-bezier(.16,1,.3,1) dialog-pop}.fader-cap{transition:bottom 40ms linear}.knob-ind{transition:transform 60ms ease-out}}@keyframes overlay-fade{0%{opacity:0}to{opacity:1}}@keyframes drawer-slide{0%{opacity:0;transform:translate(40px)}to{opacity:1;transform:translate(0)}}@keyframes dialog-pop{0%{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}.drawer-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:90;pointer-events:auto;background:#00000073;justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer-container{flex-direction:column;width:100%;max-width:440px;height:100%;display:flex}.drawer-panel{background:var(--panel);border-left:1px solid var(--grid);box-sizing:border-box;flex-direction:column;height:100%;padding:18px;display:flex;overflow-y:auto;box-shadow:-8px 0 32px #0009}.drawer-head{border-bottom:1px solid var(--grid);justify-content:space-between;align-items:center;margin-bottom:14px;padding-bottom:10px;display:flex}.drawer-head h2{letter-spacing:1px;margin:0;font-size:14px}.drawer-close{border:1px solid var(--grid);color:var(--muted);background:0 0;border-radius:4px;justify-content:center;align-items:center;width:28px;height:28px;padding:0;font-size:14px;display:flex}.drawer-close:hover{color:var(--text);border-color:var(--accent)}.shortcuts-list{flex-direction:column;gap:10px;margin-top:10px;display:flex}.shortcut-row{background:var(--panel-2);border:1px solid var(--grid);border-radius:4px;justify-content:space-between;align-items:center;gap:12px;padding:8px 10px;display:flex}.shortcut-key{color:var(--step-on);white-space:nowrap;background:#101014;border:1px solid #383844;border-radius:3px;padding:3px 8px;font-family:inherit;font-size:11px;font-weight:700}.shortcut-desc{color:var(--text);text-align:right;font-size:12px}.dialog-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:120;background:#000000a6;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.dialog-box{background:var(--panel);border:1px solid var(--grid);border-radius:8px;width:100%;max-width:400px;padding:20px;box-shadow:0 16px 48px #000000b3}.dialog-title{letter-spacing:1px;color:var(--text);margin-bottom:8px;font-size:14px;font-weight:700}.dialog-msg{color:var(--muted);margin-bottom:16px;font-size:12px;line-height:1.5}.dialog-input{box-sizing:border-box;width:100%;margin-bottom:16px;padding:8px 10px;font-size:13px}.dialog-actions{justify-content:flex-end;gap:10px;display:flex}.dialog-btn{padding:6px 14px;font-size:12px;font-weight:700}.dialog-btn.primary{background:var(--accent);color:#141418;border-color:var(--accent)}.dialog-btn.danger{color:#fff;background:#ff4040;border-color:#ff4040}.dialog-btn.secondary{background:var(--panel-2);color:var(--muted)}.dialog-btn.secondary:hover{color:var(--text)}.modal-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:100;background:#0009;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--panel);border:1px solid var(--border);border-radius:10px;flex-direction:column;width:100%;max-width:440px;max-height:75vh;padding:14px;display:flex;box-shadow:0 12px 48px #00000080}.modal-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.modal-head h2{margin:0}.modal-close{color:var(--muted);padding:2px 8px;font-size:14px}.modal-close:hover{color:var(--text);border-color:var(--accent)}.modal .sample-list{flex:1;min-height:0;overflow-y:auto}.upload-btn.clear{width:auto;color:var(--muted);flex-shrink:0}.upload-btn.clear:hover{color:var(--text);border-color:#ff3d3d}.util-cluster{flex-direction:column;gap:4px;margin-left:auto;display:flex}.shortcuts-hint-bubble{background:var(--step-on);color:#141418;cursor:pointer;white-space:nowrap;z-index:50;border-radius:4px;margin-top:6px;padding:3px 8px;font-size:9px;font-weight:700;animation:1.2s infinite pulse;position:absolute;top:100%;right:0;box-shadow:0 4px 12px #0006}.util-buttons{gap:4px;display:flex;position:relative}.util-btn{color:var(--muted);padding:4px 8px;font-size:10px}.util-btn:hover{color:var(--text);border-color:var(--accent)}.util-btn.active{background:var(--accent);color:#141418;border-color:var(--accent)}.sample-error{color:#ff8a8a;background:#ff3d3d22;border:1px solid #ff3d3d;border-radius:4px;margin-top:8px;padding:6px 8px;font-size:11px}.sample-restoring{color:var(--muted);margin-top:8px;font-size:11px;animation:1s infinite pulse}.sample-list,.pattern-list{flex-direction:column;gap:4px;margin:10px 0 0;padding:0;list-style:none;display:flex}.sample-list li,.pattern-list li{background:var(--panel-2);border-radius:4px;align-items:center;gap:6px;padding:6px 8px;display:flex}.pattern-list li.current{outline:1px solid var(--accent)}.pattern-name{text-overflow:ellipsis;white-space:nowrap;cursor:text;flex:1;overflow:hidden}.pattern-actions{gap:4px;display:flex}.pattern-actions button,.sample-delete{padding:2px 5px;font-size:9px}.sample-name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.sample-size{color:var(--muted);font-size:10px}.sample-empty{color:var(--muted);justify-content:center}.sample-total{color:var(--muted);margin:8px 0 0;font-size:10px}.midi-pickers{flex-direction:column;gap:8px;margin-top:10px;display:flex}.midi-pickers label{align-items:center;gap:8px;display:flex}.midi-pickers select{flex:1;font-size:11px}.learn-banner{background:var(--accent-dim);border:1px solid var(--accent);border-radius:4px;align-items:center;gap:8px;margin-top:10px;padding:8px;font-size:11px;display:flex}.learn-banner button{margin-left:auto;padding:2px 6px;font-size:9px}.learn-floating{z-index:200;white-space:nowrap;margin-top:0;position:fixed;top:12px;left:50%;transform:translate(-50%);box-shadow:0 6px 24px #00000080}.midi-hint{color:var(--muted);margin-bottom:0;font-size:10px;line-height:1.5}.viz-panel{background:var(--panel);border-radius:8px;flex-shrink:0;height:150px;transition:box-shadow 80ms;position:relative;overflow:hidden}.master-bay{flex-direction:column;gap:8px;width:100%;padding:8px 10px;display:flex}.bay-main{align-items:stretch;gap:10px;display:flex}.bay-controls{flex-direction:column;flex:1;gap:10px;min-width:0;display:flex}.bay-fx{gap:8px;display:flex}.bay-fx .fx-block{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.bay-comp{flex-direction:column;align-items:stretch;gap:5px;display:flex}.comp-controls{align-items:flex-end;gap:8px;display:flex}.bay-comp .comp-canvas{height:90px}.bay-fader{flex-direction:column;flex:0 0 48px;justify-content:flex-start;align-items:center;gap:3px;display:flex}.bay-fader .fader-rail{flex:1;width:30px;height:100%;min-height:200px}.bay-eq{flex-direction:column;gap:4px;min-width:0;display:flex}.bay-eq .eq-canvas{height:120px}.export-sub{margin-top:auto}.export-btn{letter-spacing:1px;font-size:10px}.export-btn:disabled{opacity:.6}.viz-canvas-host{width:100%;height:100%;position:absolute;inset:0}.viz-canvas-host canvas{image-rendering:pixelated;display:block;width:100%!important;height:100%!important}.viz-panel:after{content:"";pointer-events:none;background:repeating-linear-gradient(0deg,#00000038 0 1px,#0000 1px 3px);position:absolute;inset:0}.viz-label{letter-spacing:3px;color:var(--muted);z-index:1;text-shadow:0 0 4px #000c;font-size:9px;position:absolute;top:8px;left:12px}@media (width<=900px){.app{padding:8px 8px 88px}.app-main{flex-direction:column}.app-sidebar{flex-flow:wrap;width:100%;max-width:none}.app-sidebar .panel{flex:1;min-width:240px}.track-meta{width:160px}.step{min-width:34px}.deck-hint{display:none}.tape-deck{gap:6px;padding:8px}.deck-btn{width:40px}.deck-step-btn{width:28px}.deck-message{min-width:100px}.deck-tempo{min-width:120px}.viz-panel{height:100px}}@media (width<=600px){.app{padding-bottom:126px}.tape-deck{flex-wrap:wrap;gap:6px;padding:8px}.deck-hint,.deck-lcd{display:none}.deck-btn{width:36px}.deck-message{order:2;min-width:70px;padding:0 8px}.deck-message-label{display:none}.deck-tempo{flex:0 0 118px;order:2;min-width:92px;margin-left:0}.effect-rack-slots{grid-template-columns:1fr}}.sequencer{--track-width:180px;border:1px solid var(--grid);flex:none;gap:10px;overflow:hidden}.sequencer-toolbar,.sequence-ruler,.track-controls{align-items:center;gap:8px;display:flex}.sequencer-toolbar{flex-wrap:wrap;justify-content:space-between}.sequence-title{min-width:0}.sequence-title h2{letter-spacing:.4px;overflow-wrap:anywhere;margin:0 0 4px;font-size:14px}.sequence-title>span,.ruler-label{color:var(--muted);letter-spacing:1px;font-size:9px}.edit-modes{gap:3px;display:flex}.edit-modes button{min-height:30px;padding:5px 8px;font-size:9px}.sequencer-scroll{scrollbar-color:#565664 var(--panel);padding:3px 2px 8px;overflow-x:auto}.sequencer-grid{min-width:calc(var(--track-width) + 8px + var(--step-count) * 31px);flex-direction:column;gap:6px;display:flex}.sequence-ruler{margin-bottom:2px}.ruler-label{width:var(--track-width);flex-shrink:0}.ruler-step{text-align:center;color:#8a8a96;flex:1 1 0;min-width:28px;font-size:10px}.ruler-step.downbeat{color:var(--step-on);font-weight:700}.ruler-step:nth-child(4n+1):not(:first-child){margin-left:7px}.track-meta{width:var(--track-width);z-index:2;background:var(--panel);flex-direction:column;align-items:stretch;gap:3px;padding-right:6px;position:sticky;left:0}.track-controls{gap:3px}.track-controls .track-name{text-align:left;flex:1;padding:3px 6px}.track-controls .mute,.track-controls .solo{min-width:25px;height:24px;padding:2px 5px;font-size:10px}.track-sample-select{width:100%;padding:2px 5px;font-size:10px}.track-silent .steps{opacity:.38}.track-soloed .track-name{color:var(--step-on);border-color:var(--step-on)}.track-controls .solo.active{background:var(--step-on);border-color:var(--step-on);color:var(--bg)}.sequencer .step{touch-action:none;min-width:28px;height:50px}.step:focus-visible{outline-offset:1px;z-index:1;outline:2px solid #fff}.sequence-help{color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:4px 12px;margin:0;font-size:10px;line-height:1.6;display:flex}.sequence-help>span{color:#aaaab6}.app-sidebar{width:370px;min-width:0;max-width:34%}.app-sidebar .panel{min-width:0}.mixer{padding-bottom:6px;overflow-x:auto}button:disabled{cursor:default;opacity:.45}button:disabled:hover{border-color:var(--grid)}select:focus-visible,input:focus-visible,.sequencer-scroll:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.persistence-warning{color:#ffd28e;background:#342b1b;border:1px solid #bf852d;border-radius:6px;margin:0;padding:10px 12px;line-height:1.5}.dialog-error{color:#ff9b9b;margin:0 0 12px;font-size:12px}@media (width<=1100px) and (width>=901px){.deck-message,.deck-hint{display:none}.sequencer{--track-width:156px}}@media (width<=900px){.app-sidebar{width:100%;max-width:none}.app-sidebar .panel{min-width:min(100%,320px)}.deck-message{display:none}.sequencer{--track-width:160px}}@media (width<=600px){.app-header{gap:8px}.app-header .transport{justify-content:space-between;width:100%;margin-left:0}.transport .util-cluster{margin-left:0}.transport .learn-ctrl{display:none}.sequencer{--track-width:142px;padding:10px}.sequence-help>span{display:none}.track-controls .mute,.track-controls .solo{min-width:26px}.deck-tempo{flex:1}.deck-lcd-stack{margin-left:auto}.tape-deck{padding-bottom:max(8px, env(safe-area-inset-bottom))}.app{padding-bottom:calc(148px + env(safe-area-inset-bottom))}.app-sidebar{flex-direction:column}.app-sidebar .panel{flex:auto;width:100%}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.mobile-brand,.mobile-workspace-nav,.mobile-tools-toggle{display:none}@media (width<=600px){.app{padding:12px 10px calc(162px + env(safe-area-inset-bottom));gap:12px}.mobile-brand{letter-spacing:1px;margin-right:auto;font-size:14px;font-weight:800;display:block}.app-header .app-version:not(.has-update),.app-header [title="Audio output latency"],.app-header .transport .slider-label,.shortcuts-hint-bubble,.viz-panel{display:none}.app-header{gap:12px}.app-header>.transport-status{letter-spacing:1px;padding:4px 7px;font-size:9px}.app-header .transport{justify-content:flex-start;gap:6px}.transport .panels-cluster{flex:1}.panels-cluster .util-buttons{gap:5px}.panels-cluster .util-btn{min-height:36px;padding:6px 9px;font-size:10px}.mobile-tools-toggle{min-height:36px;color:var(--muted);padding:6px 8px;font-size:10px;display:block}.transport .history-cluster,.transport .utility-cluster{display:none}.transport[data-mobile-tools=true] .history-cluster,.transport[data-mobile-tools=true] .utility-cluster{flex:40%;padding-top:4px;display:flex}.history-cluster .util-buttons,.utility-cluster .util-buttons{width:100%}.history-cluster .util-btn,.utility-cluster .util-btn{flex:1;min-height:38px}.mobile-workspace-nav{border:1px solid var(--grid);background:#19191f;border-radius:9px;grid-template-columns:repeat(3,1fr);gap:4px;padding:4px;display:grid}.mobile-workspace-nav button{min-height:40px;color:var(--muted);background:0 0;border-color:#0000;font-size:12px}.mobile-workspace-nav button[aria-pressed=true]{color:#fff;box-shadow:inset 0 -2px var(--accent);background:#353039;border-color:#53434a}.app[data-mobile-view=beat] .workspace-drummer,.app[data-mobile-view=beat] .app-sidebar,.app[data-mobile-view=drummer] .workspace-beat,.app[data-mobile-view=drummer] .app-sidebar,.app[data-mobile-view=mixer] .app-left{display:none}.app-main{flex:none}.sequencer{--track-width:122px;gap:8px;padding:10px 8px}.sequence-title h2{font-size:13px}.sequence-title>span{letter-spacing:.5px;font-size:9px}.edit-modes button{min-height:34px;padding:6px 8px}.track-meta{gap:5px;padding-right:5px}.track-controls{flex-wrap:wrap;gap:3px}.track-controls .track-name{flex:100%;min-height:26px;padding:4px 5px}.track-controls .mute,.track-controls .solo{flex:1;min-height:28px}.track-sample-select{min-height:28px;font-size:10px}.sequencer .track-row,.sequencer .steps{align-items:stretch}.sequencer .step{min-width:32px;height:auto;min-height:92px}.ruler-step{min-width:32px}.sequence-help{font-size:10px}.sequencer-toolbar{gap:8px}.sequencer-empty-hint{margin:0;padding:8px;font-size:11px;line-height:1.6}.workspace-drummer .drummer-panel{margin:0}}.deck-mobile-tempo,.deck-mobile-label{display:none}@media (width<=600px){.track-controls{flex-wrap:nowrap}.track-controls .track-name{flex:1;min-width:42px}.track-controls .mute,.track-controls .solo{flex:0 0 27px;padding:2px}.track-controls .track-clear-btn{display:none}.sequencer .step{min-height:62px}.tape-deck{padding:10px 12px max(10px, env(safe-area-inset-bottom));grid-template-columns:1fr 116px;gap:7px 10px;display:grid}.deck-playback-controls{background:0 0;border:0;grid-area:1/1;gap:8px;padding:0}.deck-playback-controls .deck-btn{flex:1;justify-content:center;align-items:center;gap:8px;width:auto;height:44px;display:flex}.deck-mobile-label{font-size:12px;font-weight:600;display:inline}.deck-btn.play{color:#93d8a9;background:#203429;border-color:#538062}.deck-mobile-tempo{grid-area:1/2;align-items:center;gap:6px;display:flex}.deck-mobile-tempo-input{font-variant-numeric:tabular-nums;text-align:center;color:#a3edb5;background:#101712;border-color:#3f5946;width:76px;min-width:0;height:44px;padding:5px;font-size:19px}.deck-mobile-tempo-label{color:var(--muted);font-size:10px}.deck-length-controls{background:0 0;border:0;grid-area:2/1;padding:0}.deck-steps{align-items:center;gap:5px;width:100%}.deck-steps:before{content:"STEPS";color:var(--muted);margin-right:4px;font-size:9px}.deck-step-btn{flex:1;width:auto;height:32px;font-size:11px}.deck-secondary-controls{background:0 0;border:0;grid-area:2/2;gap:5px;padding:0}.deck-secondary-controls .deck-btn{flex:1;width:auto;height:32px;font-size:10px}.tape-deck .deck-start,.tape-deck .deck-tempo,.tape-deck .deck-lcd-stack,.tape-deck .deck-hint,.tape-deck .deck-message{display:none}.app{padding-bottom:calc(128px + env(safe-area-inset-bottom))}.workspace-drummer .drummer-panel{flex-direction:column;min-height:0}.workspace-drummer .joystick-half{flex:auto}.workspace-drummer .joystick-half .joystick-pad{border-right:0;border-bottom:1px solid var(--grid);height:210px;min-height:210px}.workspace-drummer .drummer-grid{flex:auto;grid-template-columns:minmax(0,1fr);gap:10px;padding:10px}.workspace-drummer .drummer-sub{gap:10px;padding:10px}.workspace-drummer .instr-col{order:0}.workspace-drummer .instr-col .grid-toggles{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.workspace-drummer .instr-control{display:block}.workspace-drummer .instr-midi-learn{display:none}.workspace-drummer .instr-toggle{justify-content:center;width:100%;min-height:38px;padding:5px;font-size:10px}.workspace-drummer .preset-col{order:1}.workspace-drummer .drummer-col{order:2;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.workspace-drummer .effect-rack{order:3}.workspace-drummer .drummer-actions button{min-height:38px;font-size:10px}.workspace-drummer .fx-select{min-height:36px;font-size:11px}.workspace-drummer .effect-slot{grid-template-columns:12px 26px minmax(0,1fr) 36px 32px;gap:6px;padding:6px}.workspace-drummer .effect-order button{width:26px;height:24px}.workspace-drummer .effect-select{min-height:36px;font-size:10px}.workspace-drummer .effect-bypass{min-height:36px}}.mobile-mixer-hint{display:none}@media (width<=600px){.mobile-workspace-nav{z-index:25;position:sticky;top:6px}.mobile-mixer-hint{color:var(--muted);margin:0 0 8px;font-size:10px;display:block}.mixer{scroll-snap-type:x proximity}.mixer .channel{scroll-snap-align:start;flex:0 0 62px}.mixer .channel-name{max-width:100%;font-size:11px}.mixer .fader-rail{width:38px}.mixer .channel-btns button{min-width:27px;min-height:30px}}
