:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#293e34;--double:#b65435;--single:#34766e;--border:#dddfd4;background:#f5f3ec;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0}main{max-width:1050px;margin:auto;padding:24px 32px}button,input,textarea{font:inherit}button,input[type=checkbox],input[type=radio]{cursor:pointer}button{color:inherit}button:focus-visible,input:focus-visible,a:focus-visible{outline-offset:4px;outline:3px solid #438aa1}button:disabled{opacity:.45;cursor:default}.page-header{align-items:center;margin-bottom:20px;display:flex}.wordmark{letter-spacing:0;margin:0;font-family:inherit;font-size:18px;font-weight:750}.wordmark a{color:#293e34;text-decoration:none}h1{margin:0 0 10px;font-family:Georgia,serif;font-size:32px;font-weight:400}h2{margin:0;font-size:15px;font-weight:650}.workspace{border:1px solid var(--border);background:#fffcf6;border-radius:14px;overflow:hidden}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.quiet-button{white-space:nowrap;background:0 0;border:1px solid #d7ddce;border-radius:7px;padding:8px 12px;font-size:12px}.quiet-button:hover:not(:disabled){background:#efeee5}.transport-bar{border-bottom:1px solid var(--border);grid-template-columns:100px minmax(0,1fr) 76px;align-items:center;gap:20px;padding:18px 24px;display:grid}.play-button{color:#fff;background:#2b4538;border:0;border-radius:7px;min-height:40px;font-size:13px;font-weight:650}.play-button:hover:not(:disabled){background:#3b5948}.bpm-controls{justify-content:center;align-items:center;gap:12px;min-width:0;display:flex}.bpm-controls label{align-items:center;gap:9px;font-size:11px;font-weight:650;display:flex}#bpm{width:90px;color:inherit;font-variant-numeric:tabular-nums;background:#fffcf6;border:1px solid #d7ddce;border-radius:6px;padding:9px 8px;font-size:14px}.pulse-light{background:#dfe5d5;border:1px solid #bac7b2;border-radius:50%;flex-shrink:0;width:10px;height:10px;display:block}.share-toast{color:#fff;z-index:100;background:#293e34;border-radius:8px;padding:10px 16px;font-size:12px;position:fixed;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 5px 20px #203b2725}.share-toast:empty{display:none}.metric-controls{background:#f5f4ed;grid-template-columns:1fr 70px 1fr;align-items:center;gap:20px;padding:18px 24px;display:grid}.sign-control{justify-content:center;align-items:center;gap:18px;min-width:0;display:flex}.count-stepper{flex-shrink:0;justify-content:center;align-items:center;gap:6px;display:flex}.count-stepper button{width:34px;height:36px;padding:0;font-size:20px;line-height:1}.metric-sign{flex-shrink:1;width:140px;height:115px;display:block}.metric-sign path{stroke:#47594d;stroke-width:1.6px;stroke-linejoin:round;stroke-linecap:round}.metric-sign .hand-shape{fill:var(--hand-fill)}.metric-sign .hand-detail{fill:none;stroke-width:.85px;opacity:.55}.metric-sign .hand-nail{fill:#fffdf8;stroke-width:.7px;opacity:.65}.metric-sign .gesture-symbol{fill:none;stroke-width:4.5px}.swap-button{place-items:center;min-height:42px;padding:8px;line-height:1;display:grid}.composition-controls{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding:16px 24px;display:flex}.decomposition-choices{border:0;flex:400px;min-width:0;margin:0;padding:0}.mix-options{flex-wrap:wrap;gap:8px;display:flex}.mix-option{border:1px solid var(--border);cursor:pointer;background:#fdfbf5;border-radius:8px;align-items:center;gap:7px;max-width:100%;padding:8px;display:flex}.mix-option.selected{background:#eff3e8;border-color:#88a18d}.mix-option input{accent-color:#2b4538;flex-shrink:0;width:13px;height:13px;margin:0}.mix-icons{flex-direction:column;gap:4px;min-width:0;display:flex}.icon-run{flex-wrap:wrap;gap:3px;display:flex}.block-icon{border:1px solid;border-radius:4px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;gap:4px;width:22px;height:28px;display:inline-flex}.block-icon b{font-size:11px;line-height:11px}.mini-sounds{gap:3px;display:flex}.mini-sounds .block-hit,.mini-sounds .block-rest{width:3px;height:3px}.pattern-section{padding:18px 24px}.pattern-toolbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:12px;display:flex}.mode-switch{border:1px solid var(--border);background:#f2f2e9;border-radius:8px;flex:none;gap:3px;width:max-content;padding:3px;display:inline-flex}.mode-switch button{background:0 0;border:0;border-radius:5px;flex:none;padding:9px 17px;font-size:12px}.mode-switch button[aria-pressed=true]{color:#fff;background:#2b4538}.shift-controls{flex-shrink:0;align-items:center;gap:9px;display:flex}.shift-controls span{text-align:center;font-variant-numeric:tabular-nums;min-width:66px;font-size:14px;font-weight:650}.shift-controls button{place-items:center;width:34px;height:34px;padding:0;line-height:1;display:grid}.timeline-scroll{overscroll-behavior-x:contain;padding:4px 0 6px;overflow-x:auto}.timeline-surface{width:100%;position:relative}.timeline-surface.paired .timeline-row+.timeline-row{border-top:1px solid #e7e8de;margin-top:12px;padding-top:10px}.paired-scroll{overflow-x:visible}.finger-row{grid-template-columns:repeat(var(--columns), minmax(0, 1fr));display:grid}.block-track{height:70px;margin-top:6px;position:relative}.rhythm-block{touch-action:manipulation;-webkit-user-select:none;user-select:none;cursor:grab;border:1px solid;border-radius:8px;flex-direction:column;justify-content:center;min-width:0;height:64px;padding:6px 0;display:flex;position:absolute;top:3px}.double{color:#8c442e;background:#f6e9df;border-color:#dfb8a6}.single{color:#2d6a62;background:#e7f0e9;border-color:#b6d1c5}.rhythm-block.dragging{opacity:.2}.rhythm-block.clip-start{border-left:2px dashed;border-top-left-radius:0;border-bottom-left-radius:0}.rhythm-block.clip-end{border-right:2px dashed;border-top-right-radius:0;border-bottom-right-radius:0}.drag-overlay{cursor:grabbing;position:relative;top:0;box-shadow:0 12px 28px #1a392b25}.block-name{white-space:nowrap;justify-content:center;align-items:center;gap:4px;font-size:11px;font-weight:700;display:flex}.drag-grip{opacity:.5;font-size:13px;font-weight:400;line-height:12px}.narrow .drag-grip{display:none}.continuation{opacity:.7;font-size:11px;font-weight:400}.block-sounds{grid-template-columns:repeat(var(--length), 1fr);place-items:center;width:calc(100% + 4px);margin:9px -2px 0;display:grid}.block-hit,.block-rest{border-radius:50%;width:9px;height:9px;display:block}.block-hit{background:currentColor}.block-rest{opacity:.4;border:1px solid}.finger-slot{border-left:1px solid #0000;min-width:0;padding:5px 0 0}.finger-slot.beat-start:not(:first-child){border-left-color:#e7e8de}.finger-space{justify-content:center;align-items:end;height:64px;padding-bottom:3px;display:flex;position:relative}.finger{border:1px solid #c6ccbb;border-radius:8px 8px 3px 3px;width:15px;display:block}.finger.raised{background:#385447;border-color:#385447;height:52px}.finger.lowered{background:#e5e8db;height:18px}.finger.preview-finger{opacity:.4;background:#cd835f;border:1px dashed #a75c3e;width:10px;position:absolute;bottom:3px;left:calc(50% + 4px)}.finger-slot.is-playing{background:#e9eddf;border-radius:5px 5px 0 0}.finger-slot.measure-start.is-playing{background:#f2e1d4}.paired .finger{width:13px}.paired .finger.preview-finger{width:8px;left:calc(50% + 3px)}.paired .block-name{gap:3px;font-size:10px}.paired .continuation{font-size:9px}.listening-controls{border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:20px;padding:16px 24px;display:flex}.listening-controls label{align-items:center;gap:7px;font-size:12px;display:flex}.listening-controls input{accent-color:#2b4538}.listening-controls>#randomize{margin-left:auto}.empty-state{color:#77816e;padding:24px;font-size:12px;line-height:1.8}.error{background:#f7e7de;border:1px solid #e3bcae;border-radius:7px;padding:12px;font-size:12px}.audio-diagnostics{border:1px solid var(--border);background:#fffcf6;border-radius:10px;margin-top:20px;padding:20px}.audio-diagnostics p{color:#6d7968;font-size:12px;line-height:1.8}.diagnostic-actions{flex-wrap:wrap;gap:10px;display:flex}.diagnostic-metrics{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;font-size:11px;display:grid}.diagnostic-metrics>div{background:#f2f3ea;border-radius:6px;padding:10px}.diagnostic-metrics dt{color:#76816e}.diagnostic-metrics dd{font-variant-numeric:tabular-nums;margin:5px 0 0;font-size:14px}.diagnostic-options{border:1px solid var(--border);border-radius:7px;flex-wrap:wrap;gap:12px;margin:16px 0;padding:12px;font-size:11px;display:flex}.diagnostic-options label{align-items:center;gap:6px;display:flex}.diagnostic-options legend{color:#76816e}.diagnostic-report{gap:8px;font-size:11px;display:grid}.diagnostic-report textarea{border:1px solid var(--border);width:100%;max-width:100%;color:inherit;background:#f8f8ef;border-radius:6px;padding:10px;font:10px ui-monospace,monospace}.crash-report p{font-size:13px;line-height:1.8}.crash-report pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#f5e6df;border-radius:7px;padding:14px}.crash-report .diagnostic-report{margin-top:18px}@media (width<=760px){main{padding:20px}.sign-control{flex-direction:column;gap:4px}.metric-controls{gap:12px}}@media (width<=520px){main{padding:16px}.transport-bar{grid-template-columns:70px minmax(0,1fr) 56px;gap:8px;padding:12px}.play-button{padding:0 6px;font-size:12px}.transport-bar>#share{padding:8px 4px;font-size:11px}.bpm-controls{gap:6px}.bpm-controls label{gap:5px;font-size:10px}#bpm{appearance:textfield;width:72px;padding:7px 5px;font-size:13px}#bpm::-webkit-inner-spin-button{appearance:none;margin:0}#bpm::-webkit-outer-spin-button{appearance:none;margin:0}.pulse-light{width:8px;height:8px}.metric-controls{grid-template-columns:1fr 52px 1fr;gap:8px;padding:16px}.metric-sign{width:100%;max-width:140px;height:96px}.count-stepper button{width:32px}.composition-controls,.pattern-section,.listening-controls{padding:16px}.decomposition-choices{flex-basis:100%}.pattern-toolbar{gap:8px}.mode-switch button{padding:8px 7px}.shift-controls{gap:4px}.shift-controls span{min-width:54px;font-size:13px}.shift-controls button{width:32px}.listening-controls{gap:14px}}
