@font-face{font-family:Silkscreen;font-style:normal;font-display:swap;font-weight:400;src:url(data:font/woff2;base64,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) format("woff2"),url(data:font/woff;base64,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) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Silkscreen;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/silkscreen-latin-400-normal-CtPo2yA5.woff2) format("woff2"),url(/assets/silkscreen-latin-400-normal-D0DfPJut.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:VT323;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/vt323-vietnamese-400-normal-D0VnvwZ9.woff2) format("woff2"),url(/assets/vt323-vietnamese-400-normal-D_5Q7Vcv.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:VT323;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/vt323-latin-ext-400-normal-iUdYUaX4.woff2) format("woff2"),url(/assets/vt323-latin-ext-400-normal-DqOq58ri.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:VT323;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/vt323-latin-400-normal-wDgJuOC9.woff2) format("woff2"),url(/assets/vt323-latin-400-normal-Dqn9ZSPj.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--bg: #161224;--card: #2a223c;--card-2: #221b31;--line: #3d3256;--text: #f4f0e8;--dim: #9d93b3;--faint: #5f5578;--accent: #ffc857;--accent-ink: #161224;--note: #f4f0e8;--inst: #7fd1c7;--vol: #9be36b;--fx: #f28fb5;--off: #ff8a5c;--warn: #ffc857;--error: #ff6b6b;--beat: #1d1830;--bar: #251e3a;--play: #4a3a1a;--scope: #9be36b;--pixel: "Silkscreen", ui-monospace, monospace;--mono: "VT323", ui-monospace, "SF Mono", Menlo, monospace;--ui: system-ui, -apple-system, "Segoe UI", sans-serif;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0;height:100%}body{background:var(--bg);color:var(--text);font:14px/1.35 var(--ui);overflow:hidden}.loading{font-family:var(--pixel);padding:24px;color:var(--dim)}.app{display:grid;grid-template-rows:auto 1fr auto auto;height:100vh;height:100dvh}.app.dropping{outline:3px dashed var(--accent);outline-offset:-6px}button{font:12px var(--pixel);color:var(--text);background:var(--card);border:1px solid var(--line);border-radius:3px;padding:5px 9px;cursor:pointer;white-space:nowrap;box-shadow:inset 0 -2px #00000040}button:hover{border-color:var(--accent)}button:active{transform:translateY(1px);box-shadow:none}button.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}button.mini{padding:2px 6px;font-size:11px}button.wide{flex:1 1 auto}input,select{font:14px var(--ui);color:var(--text);background:var(--card-2);border:1px solid var(--line);border-radius:3px;padding:4px 6px;min-width:0}input:focus,select:focus,button:focus-visible,.grid:focus-visible{outline:2px solid var(--accent);outline-offset:-1px}input[type=number]{width:100%}input[type=range]{accent-color:var(--accent);width:100%}input[type=checkbox]{accent-color:var(--accent)}.top{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding:8px 12px;background:var(--card-2);border-bottom:2px solid var(--line)}.brand{font:18px var(--pixel);color:var(--accent);letter-spacing:1px;margin-right:6px;text-shadow:2px 2px 0 #000}.group{display:flex;align-items:center;gap:5px}.transport .play.on{animation:pulse 1s steps(2) infinite}@keyframes pulse{50%{background:#ffdb8a}}.edit-state .label{font:11px var(--pixel);color:var(--dim);margin-left:6px}.edit-state .value{font:22px var(--mono);color:var(--accent);min-width:1.4ch;text-align:center}.body{display:grid;grid-template-columns:230px minmax(0,1fr) 290px;min-height:0}.side{display:flex;flex-direction:column;gap:10px;padding:10px;overflow:auto;min-height:0}.panel{background:var(--card);border:1px solid var(--line);border-radius:4px;padding:10px;display:flex;flex-direction:column;gap:8px}.panel.grow{flex:1 1 auto;min-height:220px}.panel h2{margin:0;font:13px var(--pixel);color:var(--accent);letter-spacing:1px}.title-input{font-weight:600}.fields{display:grid;grid-template-columns:1fr 1fr;gap:6px}.field{display:flex;flex-direction:column;gap:2px;font-size:11px;color:var(--dim)}.field.wide{grid-column:1 / -1}.check{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--dim)}.length{font:16px var(--mono);color:var(--dim)}.actions{display:flex;flex-wrap:wrap;gap:4px}.order,.instruments{position:relative;list-style:none;margin:0;padding:0;overflow:auto;flex:1 1 auto;min-height:90px;background:var(--card-2);border-radius:3px}.order li,.instruments li{display:flex;gap:8px;align-items:baseline;padding:1px 8px;cursor:pointer;font:19px var(--mono);border-left:3px solid transparent}.order li:hover,.instruments li:hover{background:var(--line)}.order li.sel,.instruments li.sel{background:var(--accent);color:var(--accent-ink)}.order li.loop{border-left-color:var(--fx)}.order .idx,.instruments .idx{color:var(--faint)}.order .sel .idx,.instruments .sel .idx{color:var(--accent-ink);opacity:.6}.order .pat{color:var(--inst)}.order .sel .pat{color:inherit}.order .pname,.instruments .iname{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.instruments .wave{color:var(--dim);font-size:16px}.instruments li{transition:border-color .12s}.instruments li.sounding{border-left-color:var(--scope)}.instruments li.sounding .idx{color:var(--scope)}.instruments li.sel.sounding .idx{color:var(--accent-ink);opacity:1}.instruments .sel .wave{color:var(--accent-ink)}.instruments{max-height:34vh}.inst-editor{display:flex;flex-direction:column;gap:6px}.slider{display:grid;grid-template-columns:78px 1fr 64px;gap:6px;align-items:center;font-size:11px;color:var(--dim)}.center{min-width:0;min-height:0;padding:10px 0;display:flex;flex-direction:column;gap:6px}.tools{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center}.tools .group{gap:3px;flex-wrap:wrap}.tools .label{font:10px var(--pixel);color:var(--dim);margin-right:2px}.tools button.helper{border-color:var(--inst);color:var(--inst)}.tools button.helper:hover{background:var(--inst);color:var(--accent-ink)}.tools button[data-empty]{color:var(--faint)}.grid{position:relative;flex:1;overflow:auto;background:var(--bg);border:1px solid var(--line);border-radius:4px;font:21px/1 var(--mono);outline:none;user-select:none;-webkit-user-select:none;touch-action:pan-x pan-y}.grid-head{position:sticky;top:0;z-index:2;display:flex;background:var(--card);border-bottom:2px solid var(--line);width:max-content;min-width:100%}.grid-head .ch{display:flex;align-items:center;gap:4px;width:var(--cellw);padding:5px 8px 5px 10px;border-left:1px solid var(--line);font:21px/1 var(--mono)}.grid-head .ch-name{font:11px var(--pixel);color:var(--dim);flex:1}.grid-head .ch{position:relative;flex-wrap:wrap;row-gap:3px}.grid-head .ch:before{content:"";position:absolute;inset:0;background:var(--accent);opacity:calc(var(--level, 0) * .28);pointer-events:none}.grid-head .ch>*{position:relative}.grid-head .ch-break{flex-basis:100%;height:0}.grid-head .ch-note{font:18px/20px var(--mono);color:var(--note);width:6.5ch;height:20px;white-space:nowrap}.grid-head .scope{flex:1;min-width:0;height:20px;image-rendering:pixelated;background:var(--card-2);border-radius:2px}.grid-head .ch.silent .scope{opacity:.4}.grid-head .ch.silent .ch-name{color:var(--faint);text-decoration:line-through}.grid-head .solo.on{background:var(--inst);border-color:var(--inst)}.grid-body{width:max-content;min-width:100%;padding-bottom:40vh}.grid{--cellw: calc(12.2ch + 19px) }.row{display:flex;height:22px;align-items:center;white-space:pre}.row.beat{background:var(--beat)}.row.bar{background:var(--bar)}.row.cur-row{background:#2f2645}.row.play{background:var(--play);box-shadow:inset 3px 0 0 var(--accent)}.rn{position:sticky;left:0;z-index:1;width:40px;flex:none;text-align:right;padding-right:8px;color:var(--faint);background:inherit}.grid-head .rn{background:var(--card)}.row.beat .rn{color:var(--dim)}.row.bar .rn,.row.play .rn{color:var(--accent)}.cell{display:flex;width:var(--cellw);padding:0 8px 0 10px;flex:none;border-left:1px solid var(--line);height:100%;align-items:center}.cell>span{display:inline-block;text-align:center}.cell .n{width:3ch;color:var(--note);margin-right:.6ch}.cell .i{width:1ch;color:var(--inst)}.cell .i1,.cell .v1{margin-right:.6ch}.cell .v{width:1ch;color:var(--vol)}.cell .f{width:1ch;color:var(--fx)}.cell .off{color:var(--off)}.cell .e{color:var(--faint)}.cell.sel{background:#7fd1c729;box-shadow:inset 0 1px #7fd1c71f}.cell .cur{background:var(--accent);color:var(--accent-ink);border-radius:1px}.grid:not(:focus) .cell .cur{background:transparent;color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.tap-row{display:flex;align-items:center;gap:8px}.hint{margin:0;font-size:12px;color:var(--dim)}.dialog{padding:0;border:2px solid var(--line);border-radius:6px;background:var(--card);color:var(--text);width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 32px);box-shadow:6px 6px #000}.dialog::backdrop{background:#0a08128c}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;background:var(--card-2);border-bottom:2px solid var(--line);position:sticky;top:0;z-index:1}.dialog-head h2{margin:0;font:13px var(--pixel);color:var(--accent);letter-spacing:1px}.dialog-body{display:flex;flex-direction:column;gap:10px;padding:12px}.dialog-body .fields{grid-template-columns:repeat(2,minmax(0,1fr))}.dialog-body select,.dialog-body input[type=text]{width:100%}.dialog-foot{display:flex;justify-content:flex-end;gap:8px;padding:10px 12px;border-top:1px solid var(--line);background:var(--card-2);position:sticky;bottom:0}.dialog-foot .go{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);min-width:90px}.chords{margin:0;font:20px var(--mono);color:var(--inst)}.chords.bad{font:13px var(--ui);color:var(--warn)}.keys h3{margin:0 0 6px;font:11px var(--pixel);color:var(--dim);letter-spacing:1px}.example-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:5px}.example{text-align:left;padding:7px 9px;font-size:11px}.help-dialog{width:min(760px,calc(100vw - 32px))}.keys{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px 20px}.keys dl{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:3px 10px;margin:0}.keys dt{font:17px var(--mono);color:var(--accent)}.keys dd{margin:0;font-size:13px;color:var(--text);align-self:center}.pad{display:none;gap:10px;padding:8px 12px;background:var(--card-2);border-top:2px solid var(--line);align-items:stretch;flex-wrap:wrap}.app.pad-open .pad{display:flex}.app.pad-open .pad-toggle{background:var(--accent);color:var(--accent-ink)}.piano{display:flex;height:64px;flex:1 1 360px;min-width:260px}.pkey{flex:1;height:100%;padding:0;background:var(--text);border:1px solid var(--bg);border-radius:0 0 4px 4px}.pkey.black{background:#000;flex:.7;height:62%;margin:0 -2%;z-index:1;border-color:var(--line)}.pkey:active{background:var(--accent)}.padbtns{display:grid;grid-template-columns:repeat(5,auto);gap:4px;flex:0 1 auto}.padbtn{padding:6px 8px}.bottom{background:var(--card-2);border-top:2px solid var(--line)}.statusline{display:flex;gap:16px;padding:6px 12px;align-items:baseline;flex-wrap:wrap}.status{flex:1 1 300px}.status.s-warn{color:var(--warn)}.status.s-error{color:var(--error)}.errors .dismiss{align-self:flex-start}.where{font:17px var(--mono);color:var(--dim)}.saved{font-size:11px;color:var(--faint)}.saved.bad{color:var(--error)}.stats{font-size:11px;color:var(--faint)}.stats .linkish{padding:0;border:0;background:none;font:inherit;color:var(--dim);text-decoration:underline;cursor:pointer}.stats .linkish:hover{color:var(--text)}.kofi{display:inline-flex;gap:4px;align-items:baseline;font-size:12px;color:var(--faint);text-decoration:none;white-space:nowrap}.kofi:hover,.kofi:focus-visible{color:var(--text);text-decoration:underline}.errors{display:none;max-height:24vh;overflow:auto;padding:4px 12px 10px;border-top:1px solid var(--line)}.errors.shown{display:flex;flex-direction:column;gap:3px}.errors-title{color:var(--error);font:11px var(--pixel);margin:6px 0 2px}.error{display:flex;gap:10px;text-align:left;font:13px var(--ui);background:transparent;border:0;border-left:3px solid var(--error);box-shadow:none;padding:3px 8px}.error:hover{background:var(--card)}.epath{color:var(--accent);white-space:nowrap}.emsg{color:var(--text);white-space:normal}@media(max-width:1100px){body{overflow:auto}.app{height:auto;min-height:100dvh}.body{grid-template-columns:minmax(0,1fr)}.center{order:-1;height:66vh;padding:8px}.side{overflow:visible;padding:0 8px 8px}.side.left{display:grid;grid-template-columns:1fr 1fr;align-items:start}.instruments{max-height:30vh}.pad{position:sticky;bottom:0;z-index:5;box-shadow:0 -6px 16px #0006}}@media(max-width:640px){.kofi .t{display:none}.top{padding:8px 16px}.side.left{grid-template-columns:1fr}.center{padding:8px 16px}.side{padding:0 16px 8px}.grid{font-size:19px}.dialog-body .fields,.keys{grid-template-columns:minmax(0,1fr)}}
