:root{--bg:#17131a;--key:#302a36;--text:#f5ebdb;--dim:#f5ebdb8c;--faint:#f5ebdb2e;--well:#17131a8c;--go:#5ca86b;--rec:#e2575c;--lcd:#0f1a0f;--lcd-text:#c7ed80;--pink:#ffc7db;--well-pink:#f7a8c7;--ink:#4a243c;--plum:#c45ca3;--cream:#fff4e4;--butter:#faf3c8;--bar-h:44px;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;overscroll-behavior:none;touch-action:manipulation;font:700 15px/1.25 ui-rounded,SF Pro Rounded,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;overflow:hidden}button{font:inherit;color:inherit;background:var(--key);cursor:pointer;letter-spacing:.02em;white-space:nowrap;-webkit-tap-highlight-color:transparent;border:0;border-radius:11px;min-height:44px;padding:0 12px;font-weight:900}button:active{filter:brightness(1.2)}button:disabled{opacity:.35}button.lit{background:var(--text);color:var(--bg)}.mono{font-variant-numeric:tabular-nums;font-family:ui-monospace,SF Mono,Menlo,monospace}.app{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);flex-direction:column;display:flex;position:fixed;inset:0}.topbar{height:calc(var(--bar-h) + 10px);scrollbar-width:none;flex:none;align-items:center;gap:6px;padding:6px 8px 4px;display:flex;overflow-x:auto}.topbar::-webkit-scrollbar{display:none}.topbar .home.lit{background:var(--go);color:var(--bg)}.switcher{background:var(--key);border-radius:11px;flex:none;display:flex}.switcher button{background:0 0;width:38px;padding:0;font-size:22px}.switcher .name{width:76px;font-size:15px}.spacer{flex:1;min-width:4px}.lcd{background:var(--lcd);color:var(--lcd-text);height:var(--bar-h);border-radius:10px;flex:none;align-items:center;gap:8px;padding:0 10px;display:flex}.lcd .pos{min-width:52px;font-size:17px}.lcd .bpm{opacity:.8;font-size:13px}.recbtn{width:90px;color:var(--rec);box-shadow:inset 0 0 0 2px var(--rec);background:0 0;flex:none;line-height:1.05}.recbtn.lit{background:var(--rec);color:var(--bg)}.recbtn small{font-size:11px;font-weight:800;display:block}.playbtn{width:84px;box-shadow:inset 0 0 0 2px var(--text);background:0 0;flex:none}.playbtn.lit{background:var(--text);color:var(--bg)}.main{flex:1;min-height:0;position:relative}.timeline{flex-direction:column;gap:6px;padding:0 8px 8px;display:flex;position:absolute;inset:0}.tl-tools{flex:none;align-items:center;gap:6px;display:flex}.tl-scroll{touch-action:pan-x pan-y;background:#00000040;border-radius:12px;flex:1;min-height:0;position:relative;overflow:auto}.tl-inner{position:relative}.ruler{z-index:2;cursor:pointer;background:#211b25;height:30px;position:sticky;top:0}.ruler .bar{border-left:1px solid var(--faint);color:var(--dim);padding:6px 0 0 4px;font-size:11px;position:absolute;top:0;bottom:0}.lane{border-bottom:1px solid #ffffff0d;height:84px;position:relative}.lane .grid{border-left:1px solid #ffffff0a;position:absolute;top:0;bottom:0}.lane-head{z-index:3;background:linear-gradient(90deg,#211b25 85%,#0000);flex-direction:column;justify-content:center;gap:4px;width:152px;height:100%;padding:4px 6px;display:flex;position:sticky;left:0}.lane-head .open{text-align:left;min-height:36px;font-size:16px}.lane-head .row{gap:4px;display:flex}.lane-head .row button{flex:1;min-width:32px;min-height:34px;padding:0 6px;font-size:13px}.arm{color:var(--rec)}.arm.lit{background:var(--rec);color:var(--bg)}.clip{border-radius:8px;position:absolute;top:6px;bottom:6px;overflow:hidden}.clip canvas{width:100%;height:100%;display:block}.recording{box-shadow:inset 0 0 0 2px var(--rec);background:#e2575c47;border-radius:8px;position:absolute;top:6px;bottom:6px}.playhead{background:var(--text);z-index:4;pointer-events:none;width:2px;position:absolute;top:0;bottom:0}.hint{color:var(--dim);padding:4px 2px;font-size:13px}.face{touch-action:pan-y;flex-direction:column;gap:8px;padding:0 8px 8px;animation:.22s ease-out in-right;display:flex;position:absolute;inset:0}.face.back{animation-name:in-left}@keyframes in-right{0%{opacity:.3;transform:translate(40px)}to{opacity:1;transform:none}}@keyframes in-left{0%{opacity:.3;transform:translate(-40px)}to{opacity:1;transform:none}}.unit{border-radius:18px;flex-direction:column;flex:1;gap:8px;min-height:0;padding:10px;display:flex}.unit-head{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.unit-name{flex-direction:column;margin-right:6px;line-height:1;display:flex}.unit-name small{letter-spacing:.12em;opacity:.6;font-size:8px}.unit-name b{font-size:20px;font-weight:900}.screen{background:var(--lcd);color:var(--lcd-text);border-radius:8px;align-items:center;min-width:120px;height:36px;padding:0 10px;font-size:15px;display:flex}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border-radius:10px;min-height:40px;padding:0 10px;font-size:14px}.knobs{flex-wrap:wrap;gap:10px;display:flex}.fader{flex-direction:column;flex:1;gap:2px;min-width:96px;display:flex}.fader label{letter-spacing:.1em;opacity:.7;justify-content:space-between;font-size:11px;display:flex}.fader input{width:100%;height:34px;accent-color:var(--plum)}.keys-face{background:var(--pink);color:var(--ink)}.keys-face button{background:var(--cream);color:var(--ink)}.keys-face button.lit{background:var(--plum);color:var(--cream)}.keys-face .well{background:var(--well-pink);border-radius:14px;flex-direction:column;gap:8px;padding:8px;display:flex}.keys-hint{opacity:.6;font-size:12px;display:none}@media (hover:hover) and (pointer:fine){.keys-hint{display:block}}.keyboard{touch-action:none;flex:none;height:30%;min-height:120px;max-height:240px;position:relative}.keyboard .white,.keyboard .black{border-radius:0 0 8px 8px;position:absolute;top:0}.keyboard .white{background:var(--cream);bottom:0;box-shadow:inset 0 0 0 1px #4a243c40}.keyboard .black{background:var(--ink);z-index:2;height:60%}.keyboard .down.white{background:#f2b9cf}.keyboard .down.black{background:var(--plum)}.keyboard .c{text-align:center;opacity:.5;font-size:10px;position:absolute;bottom:6px;left:0;right:0}.beat-face{color:var(--text);background:#3a1f2a}.beat-face button{background:#5a3242}.beat-face button.lit{color:#2a1018;background:#f2848c}.pads{touch-action:none;flex:1;grid-template-columns:repeat(4,1fr);gap:8px;min-height:160px;display:grid}.beat-face .pad{color:#3a1f2a;background:linear-gradient(#f9d7da,#f2b4ba);border-radius:14px;align-items:flex-end;padding:8px;font-size:15px;transition:filter 80ms;display:flex}.beat-face .pad.hit{filter:brightness(1.25)saturate(1.3)}.beat-body{flex-direction:column;flex:1;gap:8px;min-height:0;display:flex}.steps{flex:none;gap:2px;display:grid}.steps .row{grid-template-columns:54px repeat(16,1fr);align-items:center;gap:2px;display:grid}.steps .row span{opacity:.7;white-space:nowrap;font-size:11px;overflow:hidden}.steps .cell{background:#ffffff14;border-radius:4px;height:22px;min-height:0;padding:0}.steps .cell.beat1{background:#ffffff24}.steps .cell.on{background:#f2848c}.steps .cell.now{box-shadow:inset 0 0 0 2px var(--text);filter:brightness(1.6)}select{font:inherit;color:var(--text);background:#5a3242;border:0;border-radius:10px;max-width:100%;height:40px;padding:0 8px;font-weight:800}.drawer{background:var(--bg);z-index:10;border-radius:20px 20px 0 0;flex-direction:column;animation:.15s ease-out up;display:flex;position:absolute;inset:0;box-shadow:0 -4px 24px #00000080}@keyframes up{0%{opacity:.4;transform:translateY(40px)}to{opacity:1;transform:none}}.drawer-head{align-items:center;gap:8px;padding:8px 12px 4px;display:flex}.strips{flex:1;gap:10px;padding:8px 12px 12px;display:flex;overflow-x:auto}.strip{background:var(--key);border-radius:16px;flex-direction:column;align-items:stretch;gap:8px;min-width:108px;padding:10px;display:flex}.strip .nm{text-align:center;font-size:16px}.vfader{flex:1;justify-content:center;align-items:center;min-height:120px;display:flex;position:relative}.vfader input{writing-mode:vertical-lr;width:40px;height:100%;accent-color:var(--text);direction:rtl}.meter{background:#ffffff14;border-radius:4px;width:8px;height:100%;position:relative;overflow:hidden}.meter i{background:var(--go);position:absolute;bottom:0;left:0;right:0}.meter i.hot{background:var(--rec)}.strip .row{gap:4px;display:flex}.strip .row button{flex:1;min-height:36px;padding:0}.toast{z-index:20;text-align:center;pointer-events:none;background:#302a36f2;border-radius:999px;max-width:90%;padding:10px 16px;font-size:14px;position:absolute;bottom:24px;left:50%;transform:translate(-50%)}.gate{background:var(--bg);z-index:50;cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex;position:fixed;inset:0}.gate b{font-size:34px}.gate span{color:var(--dim)}.tempo{align-items:center;gap:4px;display:flex}.tempo button{min-width:40px;padding:0}.pop{top:calc(var(--bar-h) + 14px);z-index:30;background:#241e29;border-radius:16px;flex-direction:column;gap:8px;padding:10px;display:flex;position:absolute;right:8px;box-shadow:0 8px 30px #00000080}button.lcd{border-radius:10px}@media (width<=620px){.topbar{gap:4px;padding:6px 4px 4px}.topbar>button,.topbar .lcd{padding:0 6px}.topbar .home{letter-spacing:0;font-size:11px}.topbar .wide{display:none}.switcher button{width:26px}.switcher .name{width:54px;font-size:13px}.lcd .pos{min-width:38px;font-size:15px}.recbtn{width:46px;font-size:17px}.recbtn small{display:none}.playbtn{width:46px;font-size:17px}.lcd .bpm{display:none}}@media (height<=520px){.face{padding:0 6px 6px}.unit{gap:6px;padding:6px 8px}.unit-head button{min-height:36px}.unit-head select{height:36px}.unit-head .screen{height:32px}.chips{scrollbar-width:none;flex-wrap:nowrap;overflow-x:auto}.chips::-webkit-scrollbar{display:none}.chip{flex:none;min-height:34px}.keys-face .well{gap:4px;padding:6px}.fader input{height:26px}.keys-face>.fill{display:none}.keyboard{flex:auto;height:auto;min-height:110px}.beat-body{flex-direction:row}.beat-body .pads{flex:4;min-height:0}.beat-body .steps{flex:6;align-content:start}.steps .cell{height:20px}.drawer-head{padding:4px 12px 0}.drawer-head button{min-height:36px}.strips{padding:6px 12px 8px}.strip{gap:4px;padding:8px}.vfader{min-height:60px}}.demo{min-width:64px;color:var(--dim);flex:none;padding:0 8px;font-size:12px;line-height:1.05}.demo small{color:var(--text);font-size:13px;display:block}.demo.low small{color:var(--rec)}.sheet-back{z-index:60;background:#0000008c;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.sheet{background:var(--key);border-radius:18px;flex-direction:column;gap:12px;width:100%;max-width:420px;padding:20px;display:flex}.sheet b{font-size:22px}.sheet p{color:var(--dim);margin:0}.sheet .err{color:var(--rec)}.sheet .sub-btn{text-align:center;background:var(--go);color:var(--bg);border-radius:12px;padding:14px;font-weight:900;text-decoration:none;display:block}.sheet label{color:var(--dim);margin-bottom:6px;font-size:13px;display:block}.key-row{gap:6px;display:flex}.key-row input{min-width:0;min-height:44px;font:inherit;background:var(--bg);color:var(--text);border:0;border-radius:11px;flex:1;padding:0 12px}.key-row button{min-height:44px;padding:0 14px}.sheet .close{min-height:44px;color:var(--dim);background:0 0;font-weight:700}
