:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}#root{text-align:center;border-inline:1px solid var(--border);box-sizing:border-box;flex-direction:column;width:100%;max-width:100%;min-height:100svh;margin:0 auto;display:flex}body{margin:0}.app{box-sizing:border-box;color:#eefaf7;background:#0f1715;flex-direction:column;align-items:flex-start;gap:1rem;min-height:100svh;padding:calc(4rem + 1px) 1.25rem 1.25rem;display:flex;overflow-x:clip}.app .playback{flex-direction:column;align-items:flex-start;gap:1rem;width:100%;display:flex}.app .menu{z-index:100;box-sizing:border-box;background:#091311;border-bottom:1px solid #a2e8dd2e;align-items:center;gap:.5rem;width:100%;height:calc(4rem + 1px);padding:1rem;display:flex;position:fixed;top:0;left:0;box-shadow:0 14px 36px #00000038}.app .timeline{box-sizing:border-box;z-index:100;background:#091311;border-bottom:1px solid #a2e8dd2e;flex-direction:column;width:calc(100% + 2.5rem);margin-left:-1.25rem;padding:.75rem calc(2rem + 1px);display:flex;position:sticky;top:calc(4rem + 1px);overflow-x:auto}.app .timeline .timeline-row{background:#17231fe6;border:1px solid #a2e8dd2e;border-radius:6px;flex-direction:row;width:max-content;margin-top:3px;margin-left:.25rem;display:flex;overflow:hidden}.app .timeline .timeline-row:nth-child(1 of .timeline-row){margin-top:.5rem}.app .brand{flex:none;align-items:center;height:2rem;padding-left:1.5rem;display:inline-flex}.app .brand img{height:2rem;display:block}.app .brand img.logo{border-radius:6px;width:7rem}.app .brand img.icon{width:1.5rem}.app button.brand{appearance:none;color:inherit;cursor:pointer;font:inherit;background:0 0;border:0;padding-right:2px;transition:transform .14s}.app button.brand:hover{transform:scale(.9)}.app button.brand:focus-visible{outline:0}.app .equalizer{width:var(--equalizer-width);height:var(--equalizer-height);position:relative}.app .equalizer .visual{width:100%;height:100%;position:absolute;inset:0}@media (width<=42rem){.app .brand{padding-right:.25rem}.app .menu{gap:.25rem}}.app button{-webkit-user-select:none;user-select:none}.app button,.app input,.app select{font:inherit;white-space:nowrap;text-overflow:ellipsis}.app .btn{box-sizing:border-box;color:#eefaf7;cursor:pointer;background:#32de8a1a;border:1px solid #32de8a61;border-radius:6px;min-width:5rem;min-height:2rem;padding:.35rem .75rem;transition:background-color .14s,border-color .14s,color .14s,transform .14s}.app .btn:hover{color:#a2e8dd;background:#32de8a33;border-color:#32de8ac7}.app .btn:active{transform:translateY(1px)}.app .btn:disabled{color:#eefaf71a}.app .btn.delete{background:#de4f3238;border-color:#de4f3280;border-top-right-radius:0;border-bottom-right-radius:0;min-width:1.5rem;padding:.35rem}.app .btn.delete:hover{color:#eefaf7;background:#de4f325c;border-color:#de4f32d1}.app .btn.delete.delete-rhythm{border-radius:4px 0 0 4px;padding:0}.app .btn.load-sample{box-sizing:border-box;color:#32de8a;cursor:pointer;background:#263a35;border:1px solid #779cab73;border-radius:4px;width:7rem;margin-left:9.25rem;margin-right:.5rem;padding:0 .5rem;font-size:.6rem;overflow:hidden}.app .btn.load-sample:hover{color:#a2e8dd;background:#779cab3d;border-color:#779cabb8}.app .btn.play{color:#32de8a;font-weight:700}.app .btn.stop{color:#de4f32;font-weight:700}.app .btn.show-hide{margin-left:5rem}.app label{color:#a2e8ddad;text-align:end;width:5rem;padding-right:.5rem}.app h1{color:#a2e8dd;letter-spacing:0;text-align:center;width:100%;margin:0;font-size:1.5rem;font-weight:700}.app dialog{box-sizing:border-box;color:#eefaf7;text-align:start;background:#17231f;border:1px solid #a2e8dd5c;border-radius:8px;gap:1rem;width:calc(100vw - 2rem);max-width:28rem;margin:auto;padding:1rem;box-shadow:0 24px 64px #00000075}.app dialog.samples-dialog{max-width:50rem}.app dialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f1715b8}.app dialog[open]{flex-direction:column;display:flex}.app dialog .dialog-header{border-bottom:1px solid #a2e8dd2e;justify-content:space-between;align-items:flex-start;gap:1rem;padding-bottom:.75rem;display:flex}.app dialog .dialog-eyebrow{color:#32de8a;letter-spacing:0;margin-bottom:.2rem;font-weight:700;display:block}.app dialog h2{color:#eefaf7;letter-spacing:0;margin:0;font-size:1.15rem;line-height:1.2}.app dialog .dialog-close{justify-content:center;align-items:center;width:2rem;min-width:2rem;min-height:2rem;padding:0;font-weight:700;display:inline-flex}.app dialog .dialog-hint{color:#a2e8ddad;margin:0;font-size:.85rem;font-style:italic}.app dialog .dialog-hint.example{font-size:.8rem}.app dialog .dialog-body{color:#a2e8dd;flex-direction:column;gap:1rem;font-size:.95rem;line-height:1.55;display:flex}.app dialog .dialog-body section{flex-direction:column;gap:.5rem;display:flex}.app dialog .dialog-body .about-summary{border-bottom:1px solid #a2e8dd2e;padding:0 1rem 1rem;font-style:italic}.app dialog .dialog-body .about-credits{color:#a2e8ddad;padding-top:.25rem}.app dialog .dialog-body p{margin:0}.app dialog .dialog-body h2{color:#32de8a;letter-spacing:0;text-transform:uppercase;margin:0 0 .1rem;font-size:.8rem;font-weight:700}.app dialog .dialog-body a{color:#a2e8dd;text-underline-offset:.18em;font-weight:700;text-decoration-color:#a2e8dd5c;transition:color .14s,text-decoration-color .14s}.app dialog .dialog-body a:hover{color:#32de8a;text-decoration-color:#32de8ab8}.app dialog .dialog-body a:focus-visible{outline-offset:3px;border-radius:3px;outline:2px solid #32de8a94}.app dialog .dialog-list{flex-direction:column;gap:.5rem;max-height:min(22rem,100svh - 12rem);display:flex;overflow-y:auto}.app dialog .dialog-row{align-items:stretch;display:flex}.app dialog .dialog-row.dialog-column-labels{z-index:1;color:#a2e8ddad;text-transform:uppercase;background:#17231f;grid-template-columns:1.5rem minmax(0,1fr) .5rem minmax(0,1fr);align-items:center;padding:.25rem 0;font-size:.7rem;font-weight:700;display:grid;position:sticky;top:0}.app dialog .dialog-row.dialog-column-labels:before{content:"";grid-column:1}.app dialog .dialog-row.dialog-column-labels label{text-align:center;width:auto;padding-right:0}.app dialog .dialog-row.dialog-column-labels label:first-child{grid-column:2}.app dialog .dialog-row.dialog-column-labels label:last-child{grid-column:4}.app dialog .dialog-row .delete+.dialog-field{border-top-left-radius:0;border-bottom-left-radius:0}.app dialog .dialog-row .mcp-description{margin-left:.5rem}.app dialog .dialog-form{grid-template-columns:5rem minmax(0,1fr) auto;align-items:center;gap:.5rem;display:grid}.app dialog .dialog-form label{color:#a2e8ddad;text-align:start;width:auto;padding-right:0}.app dialog .dialog-field{box-sizing:border-box;color:#a2e8dd;text-align:center;text-overflow:ellipsis;white-space:nowrap;background:#17231f;border:1px solid #a2e8dd2e;border-radius:6px;outline:none;width:100%;min-width:0;min-height:2rem;padding:0 .55rem;font-size:.9rem;overflow:hidden}.app dialog .dialog-field.filename{font-size:.5rem}.app dialog .dialog-field.selected-sample{background:#263a35}.app dialog button.dialog-field{cursor:pointer;justify-content:center;align-items:center;padding:.35rem;transition:background-color .14s,border-color .14s,color .14s,transform .14s;display:flex}.app dialog button.dialog-field:hover{background:#20312ceb;border-color:#a2e8dd5c}.app dialog button.dialog-field:active{transform:translateY(1px)}.app dialog .dialog-field:focus-visible{border-color:#32de8a;box-shadow:0 0 0 3px #32de8a2e}.app dialog.mcp-dialog .mcp-dialog-status{box-sizing:border-box;color:#a2e8ddad;background:#20312ce0;border:1px solid #a2e8dd2e;border-radius:6px;align-items:center;gap:.5rem;min-height:2rem;padding:.45rem .6rem;font-size:.9rem;display:flex}.app dialog.mcp-dialog .mcp-dialog-status.is-connected{color:#eefaf7;background:#32de8a1a;border-color:#32de8a6b}.app dialog.mcp-dialog .mcp-dialog-status.is-connected .mcp-dialog-status-dot{background:#32de8a;box-shadow:0 0 0 4px #32de8a24}.app dialog.mcp-dialog .mcp-dialog-status.is-closed{background:#779cab1a;border-color:#779cab57}.app dialog.mcp-dialog .mcp-dialog-status.is-closed .mcp-dialog-status-dot{background:#779cab;box-shadow:0 0 0 4px #779cab1f}.app dialog.mcp-dialog .mcp-dialog-status.is-error{color:#eefaf7;background:#de4f321f;border-color:#de4f327a}.app dialog.mcp-dialog .mcp-dialog-status.is-error .mcp-dialog-status-dot{background:#de4f32;box-shadow:0 0 0 4px #de4f3224}.app dialog.mcp-dialog .mcp-dialog-status-dot{border-radius:50%;flex:0 0 .55rem;width:.55rem;height:.55rem}.app dialog.mcp-dialog .mcp-dialog-fields{grid-template-columns:7rem minmax(0,1fr);align-items:center;gap:.5rem;display:grid}.app dialog.mcp-dialog .mcp-dialog-fields label{color:#a2e8ddad;text-align:start;width:auto;padding-right:0}.app dialog.mcp-dialog .mcp-dialog-fields input{color:#a2e8dd;text-overflow:ellipsis;width:100%;min-width:0;padding:0 .55rem;font-size:.9rem}@media (width<=36rem){.app dialog .dialog-form{grid-template-columns:1fr}.app dialog .dialog-form .btn{width:100%}.app dialog.mcp-dialog .mcp-dialog-fields{grid-template-columns:1fr}.app dialog.mcp-dialog .mcp-dialog-fields label{margin-top:.25rem}}.app input,.app select{box-sizing:border-box;color:#eefaf7;background:#20312cdb;border:1px solid #a2e8dd2e;border-radius:6px;outline:none;min-height:2rem}.app input.default,.app select.default{color:#a2e8dd;text-align:center;background:#17231f;width:10rem;min-width:10rem}.app input.notes-per-measure,.app select.notes-per-measure{color:#32de8a;background:#263a35;border-radius:4px;width:2.5rem;min-width:2.5rem;font-weight:700}.app input.slot-pattern,.app select.slot-pattern{color:#a2e8dd;background:#263a35;border-left:1px solid #a2e8dd2e;border-radius:0%;width:7rem;min-width:7rem;padding:0 .5rem;font-size:.6rem}.app input.slot-pattern:last-of-type,.app select.slot-pattern:last-of-type{border-top-right-radius:6px;border-bottom-right-radius:6px}.app input.pattern-name,.app input.rhythm-name,.app input.beat-name,.app select.pattern-name,.app select.rhythm-name,.app select.beat-name{text-align:center;border-top-left-radius:0;border-bottom-left-radius:0;width:7rem;padding:0 .5rem;font-weight:700}.app input.pattern-name.pattern-name,.app input.rhythm-name.pattern-name,.app input.beat-name.pattern-name,.app select.pattern-name.pattern-name,.app select.rhythm-name.pattern-name,.app select.beat-name.pattern-name{color:#a2e8dd;background:#20312ceb}.app input.pattern-name.rhythm-name,.app input.rhythm-name.rhythm-name,.app input.beat-name.rhythm-name,.app select.pattern-name.rhythm-name,.app select.rhythm-name.rhythm-name,.app select.beat-name.rhythm-name{color:#32de8a;background:#263a35}.app input.pattern-name.beat-name,.app input.rhythm-name.beat-name,.app input.beat-name.beat-name,.app select.pattern-name.beat-name,.app select.rhythm-name.beat-name,.app select.beat-name.beat-name{color:#a2e8dd;width:8.5rem;min-width:8.5rem;height:calc(2.15rem + 2px);font:inherit;background:#20312ceb;border-radius:6px;margin-right:.75rem;font-weight:700;line-height:1.45}.app input:hover,.app select:hover{border-color:#a2e8dd5c}.app input:focus-visible,.app select:focus-visible{border-color:#32de8a;box-shadow:0 0 0 3px #32de8a2e}.app select{appearance:none;text-align:center}.app input[type=number]{text-align:start;width:5rem;padding:0 .35rem}.app input[type=number].bpm-input{border-color:#32de8a52;font-weight:700}.app input[type=file]{display:none}.app .controls{flex-direction:row;align-items:center;min-height:2.4rem;padding-left:.25rem;display:flex}.app .anchor{display:flex;position:absolute}.app .options{align-items:center;min-height:2.4rem;display:flex}.app .flex-row-align-center{align-items:center;display:flex}.app .container{box-sizing:border-box;flex-direction:column;width:100%;display:flex}.app .container.patterns{gap:1rem;max-width:100%}.app .container.patterns>.add{margin-top:0;margin-left:.75rem}.app .pattern{box-sizing:border-box;background:#17231f;border:1px solid #a2e8dd2e;border-radius:8px;flex-direction:column;align-items:flex-start;width:100%;height:max-content;padding:.75rem;display:inline-flex;overflow-x:auto;box-shadow:0 18px 44px #0000003d}.app .pattern>.controls{margin-top:0;position:relative}.app .pattern>.controls>.options{padding-left:9.25rem}.app .pattern :nth-child(1 of .rhythm){margin-top:.5rem}.app .warning{text-align:center;background:#de4f321a;border:1px solid #de4f32;border-radius:6px;flex-direction:column;align-items:start;gap:.5rem;max-width:100%;margin-top:.5rem;padding:.55rem .7rem;display:flex}.app .warning p span{color:#de4f32eb;font-weight:700}.app .warning p{color:#b4baaa;margin:0;font-size:.85rem;line-height:1.35}.app .add{box-sizing:border-box;width:9rem;margin-top:.5rem;padding:0 .25rem}.app .add .btn{background:#32de8a0d;border:1px solid #32de8a1a;width:100%;padding:.25rem}.app .add .btn:hover{background:#32de8a33;border-color:#32de8ac7}.app .is-playing.measure{background:#a2e8dd1f;box-shadow:inset 0 0 0 1px #a2e8dd2e}.app .is-playing.slot-pattern{background:#32de8a1f;box-shadow:inset 0 0 0 1px #32de8a2e}.app .rhythm{background:#20312c;border:1px solid #a2e8dd2e;border-radius:4px;align-items:stretch;width:max-content;padding:.25rem;display:inline-flex}.app .rhythm+.rhythm{border-top:0}.app .rhythm .measures{flex:0 0 calc(var(--measure-width) * var(--number-of-measures));width:calc(var(--measure-width) * var(--number-of-measures));display:inline-flex}.app .rhythm .measures .measure{flex:0 0 var(--measure-width);width:var(--measure-width);box-sizing:border-box;background:#35524a42;align-items:center;min-width:0;display:inline-flex}.app .rhythm .measures .measure+.measure{border-left:2px solid #32de8a94}.app .rhythm .measures .measure .note{box-sizing:border-box;width:auto;min-width:0;height:1.75rem;padding:0 0 0 var(--note-value-padding-left);color:#a2e8dd;text-align:start;caret-color:#32de8a;background:#13211d;border-radius:4px;flex:1 1 0;margin-inline:0;font-weight:700}.app .rhythm .measures .measure .note::placeholder{color:#627c85cc}.app .rhythm .measures .measure .note:hover{background:#35524ab8}.app .rhythm .measures .measure .note.is-playing{color:#0f1715;background:#32de8a}.app .rhythm .measures .measure .note+.note{border-left:1px solid #779cab47}.app .rhythm .measures .measure .note:focus-visible{z-index:1;background:#35524af2;border-color:#32de8a;position:relative;box-shadow:0 0 0 3px #32de8a2e}.counter{color:var(--accent);background:var(--accent-bg);border:2px solid #0000;border-radius:5px;margin-bottom:24px;padding:5px 10px;font-size:16px;transition:border-color .3s}.counter:hover{border-color:var(--accent-border)}.counter:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.hero{position:relative}.hero .base,.hero .framework,.hero .vite{margin:0 auto;inset-inline:0}.hero .base{z-index:0;width:170px;position:relative}.hero .framework,.hero .vite{position:absolute}.hero .framework{z-index:1;height:28px;top:34px;transform:perspective(2000px)rotate(300deg)rotateX(44deg)rotateY(39deg)scale(1.4)}.hero .vite{z-index:0;width:auto;height:26px;top:107px;transform:perspective(2000px)rotate(300deg)rotateX(40deg)rotateY(39deg)scale(.8)}#center{flex-direction:column;flex-grow:1;place-content:center;place-items:center;gap:25px;display:flex}@media (width<=1024px){#center{gap:18px;padding:32px 20px 24px}}#next-steps{border-top:1px solid var(--border);text-align:left;display:flex}#next-steps>div{flex:1 1 0;padding:32px}@media (width<=1024px){#next-steps>div{padding:24px 20px}}#next-steps .icon{width:22px;height:22px;margin-bottom:16px}@media (width<=1024px){#next-steps{text-align:center;flex-direction:column}}#docs{border-right:1px solid var(--border)}@media (width<=1024px){#docs{border-right:none;border-bottom:1px solid var(--border)}}#next-steps ul{gap:8px;margin:32px 0 0;padding:0;list-style:none;display:flex}#next-steps ul .logo{height:18px}#next-steps ul a{color:var(--text-h);background:var(--social-bg);border-radius:6px;align-items:center;gap:8px;padding:6px 12px;font-size:16px;text-decoration:none;transition:box-shadow .3s;display:flex}#next-steps ul a:hover{box-shadow:var(--shadow)}#next-steps ul a .button-icon{width:18px;height:18px}@media (width<=1024px){#next-steps ul{flex-wrap:wrap;justify-content:center;margin-top:20px}#next-steps ul li{flex:calc(50% - 8px)}#next-steps ul a{box-sizing:border-box;justify-content:center;width:100%}}#spacer{border-top:1px solid var(--border);height:88px}@media (width<=1024px){#spacer{height:48px}}.ticks{width:100%;position:relative}.ticks:before,.ticks:after{content:"";border:5px solid #0000;position:absolute;top:-4.5px}.ticks:before{border-left-color:var(--border);left:0}.ticks:after{border-right-color:var(--border);right:0}
