:root{color:#f4f4f4;background:#202020;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none}*{box-sizing:border-box;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-user-drag:none;-webkit-tap-highlight-color:transparent}html{overflow:hidden;overscroll-behavior:none;background:#202020}body{margin:0;min-width:320px;height:100dvh;overflow:hidden;background:#202020}button{min-width:0;min-height:2.75rem;padding:.45rem;border:1px solid #727272;border-radius:0;background:#303030;color:inherit;font:inherit;touch-action:manipulation}button:disabled{color:#929292}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.app-shell{display:flex;flex-direction:column;gap:.5rem;width:min(100%,42rem);height:100dvh;margin:0 auto;padding:max(.5rem,env(safe-area-inset-top)) max(.5rem,env(safe-area-inset-right)) max(.5rem,env(safe-area-inset-bottom)) max(.5rem,env(safe-area-inset-left));overflow:hidden}.top-bar{position:relative;z-index:5;display:grid;flex:none;grid-template-columns:repeat(4,minmax(0,1fr));gap:.4rem;width:100%;height:2.75rem}.top-beat-button{will-change:background-color,box-shadow,color}.top-beat-button:disabled{opacity:1}#metronome-button[data-mode=record]{padding-inline:.1rem;font-size:.72rem;white-space:nowrap}.app-menu{position:absolute;top:calc(100% + .4rem);left:0;display:grid;width:min(16rem,100%);gap:.4rem;padding:.4rem;border:1px solid #727272;background:#292929;box-shadow:0 .25rem .75rem #0000008c}.app-menu[hidden]{display:none}.autosave-status{padding:.15rem .25rem;color:#b8b8b8;font-size:.72rem;line-height:1.25;text-align:center}#clear-track-button[data-confirm=true]{border-color:#e15a52;background:#b3261e;color:#fff}.instrument{display:grid;flex:none;place-items:start center;width:100%;min-height:0}.touch-surface{position:relative;display:flex;width:min(100%,calc(100dvh - 19.75rem));min-width:0;aspect-ratio:1;overflow:hidden;border:1px solid #727272;background:#181818;cursor:crosshair}.touch-surface,.touch-surface *{touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-user-drag:none;-webkit-tap-highlight-color:transparent}.note-region{position:relative;flex:1 1 0;min-width:0;background:#2e2e2e;pointer-events:none}.note-region.role-tonic{background:#f0f0f0}.note-region.role-stable.variant-a{background:#a2a2a2}.note-region.role-stable.variant-b{background:#8c8c8c}.note-region.role-characteristic.variant-a{background:#626262}.note-region.role-characteristic.variant-b{background:#505050}.note-region.role-other.variant-a{background:#353535}.note-region.role-other.variant-b{background:#242424}.note-region.drum-region.intensity-1{background:#272727}.note-region.drum-region.intensity-2{background:#424242}.note-region.drum-region.intensity-3{background:#626262}.note-region.drum-region.intensity-4{background:#898989}.note-region.drum-region.intensity-5{background:#b7b7b7}.note-region:after{position:absolute;inset:0;content:"";background:transparent}.note-region.is-active:after{background:#fff3}.touch-input-layer{position:absolute;z-index:2;inset:0;background:transparent}.glow-layer{position:absolute;z-index:1;inset:0;overflow:hidden;pointer-events:none;--beat-pulse: 1}.touch-glow{position:absolute;width:clamp(4.75rem,22%,6rem);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,color-mix(in oklch,var(--glow-color) 92%,transparent) 0%,color-mix(in oklch,var(--glow-color) 68%,transparent) 24%,color-mix(in oklch,var(--glow-color) 36%,transparent) 48%,color-mix(in oklch,var(--glow-color) 12%,transparent) 65%,transparent 80%);box-shadow:none;filter:blur(.12rem) drop-shadow(0 0 .9rem color-mix(in oklch,var(--glow-color) 78%,transparent));opacity:.96;transform:translate(-50%,-50%) scale(var(--beat-pulse));transform-origin:center;will-change:transform}.touch-glow.is-playback{box-shadow:none;opacity:.88}.instrument-switcher{display:grid;position:relative;z-index:4;flex:none;grid-template-columns:repeat(5,minmax(0,1fr));gap:.3rem;width:100%;overflow:visible}.instrument-switcher.is-track-expanded{grid-template-columns:minmax(0,1fr)}.instrument-switcher.is-track-expanded button:not([aria-pressed=true]){display:none}.instrument-switcher button{position:relative;min-height:2.75rem;padding-inline:.2rem;background:var(--track-background, #303030);transform:translateY(var(--track-gesture-shift, 0));touch-action:none;user-select:none;-webkit-user-select:none;will-change:transform}.track-loop-visual{position:absolute;z-index:1;inset:0;overflow:hidden;pointer-events:none}.track-loop-chart{position:absolute;z-index:1;inset:0;display:block;width:100%;height:100%}.track-loop-path{fill:none;stroke:var(--track-color, #aaa);stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5;vector-effect:non-scaling-stroke}.track-loop-dividers{position:absolute;z-index:2;inset:0}.track-loop-divider{position:absolute;top:0;bottom:0;width:1px;background:#ffffff57;transform:translate(-50%)}.track-loop-playhead{position:absolute;z-index:3;top:0;left:var(--track-loop-progress, 0%);width:1px;height:100%;background:#fff;opacity:0;transform:translate(-50%)}.instrument-switcher button[data-playing=true] .track-loop-playhead{opacity:1}.track-state-indicators{position:absolute;z-index:3;right:.18rem;bottom:.14rem;left:.18rem;display:flex;align-items:center;justify-content:space-between;pointer-events:none}.track-state-indicator{display:grid;width:.92rem;height:.92rem;place-items:center;border:1px solid currentColor;border-radius:50%;background:#303030;font-size:.56rem;font-weight:800;line-height:1;opacity:0;visibility:hidden}.track-state-indicator.solo{color:#f0c419}.track-state-indicator.mute{color:#4394ff}.instrument-switcher button[data-solo=true] .track-state-indicator.solo{background:#f0c419;box-shadow:0 0 .35rem #f0c419bf;color:#191919;opacity:1;visibility:visible}.instrument-switcher button[data-muted=true] .track-state-indicator.mute{background:#2678d8;box-shadow:0 0 .35rem #4394ffb3;color:#fff;opacity:1;visibility:visible}.instrument-switcher button[data-gesture-preview]:after{position:absolute;z-index:8;left:50%;display:grid;min-width:4.2rem;min-height:1.7rem;place-items:center;padding:.2rem .45rem;border:1px solid #8a8a8a;background:#363636;box-shadow:0 .2rem .45rem #00000073;color:#fff;content:attr(data-gesture-label);font-size:.74rem;font-weight:700;letter-spacing:.04em;opacity:var(--track-gesture-opacity, 0);pointer-events:none;white-space:nowrap}.instrument-switcher button[data-gesture-preview=solo]:after{bottom:calc(100% + .25rem);border-color:#ffe06a;background:#f0c419;color:#191919;transform:translate(-50%,var(--track-label-offset, 10px))}.instrument-switcher button[data-gesture-preview=mute]:after{top:calc(100% + .25rem);border-color:#79b5ff;background:#2678d8;color:#fff;transform:translate(-50%,calc(-1 * var(--track-label-offset, 10px)))}.instrument-switcher button[data-gesture-preview=solo][data-gesture-confirmed=true]:after{box-shadow:0 0 0 2px #f0c41961,0 0 .7rem #f0c4198c,0 .25rem .65rem #0000008c}.instrument-switcher button[data-gesture-preview=mute][data-gesture-confirmed=true]:after{box-shadow:0 0 0 2px #4394ff59,0 0 .7rem #4394ff8c,0 .25rem .65rem #0000008c}.instrument-switcher button[data-instrument=melody]{--track-color: oklch(78% .13 95);--track-background: oklch(28% .045 95);--track-muted-background: oklch(20% .025 95)}.instrument-switcher button[data-instrument=bass]{--track-color: oklch(78% .13 255);--track-background: oklch(28% .045 255);--track-muted-background: oklch(20% .025 255)}.instrument-switcher button[data-instrument=chord]{--track-color: oklch(78% .13 335);--track-background: oklch(28% .045 335);--track-muted-background: oklch(20% .025 335)}.instrument-switcher button[data-instrument=sfx]{--track-color: oklch(78% .13 150);--track-background: oklch(28% .045 150);--track-muted-background: oklch(20% .025 150)}.instrument-switcher button[data-instrument=drums]{--track-color: oklch(78% .13 25);--track-background: oklch(28% .045 25);--track-muted-background: oklch(20% .025 25)}.instrument-switcher button[data-muted=true]{--track-background: var(--track-muted-background)}.instrument-switcher button[data-muted=true] .track-loop-path{opacity:.42}.instrument-switcher button[aria-pressed=true]{outline:2px solid #f4f4f4;outline-offset:2px;z-index:3}.record-button[aria-pressed=true]{border-color:#8f1712;background:#b3261e;color:#fff}#play-button[aria-pressed=true]{outline:2px solid #f4f4f4;outline-offset:-3px}.eraser-button{touch-action:none}.eraser-button[data-held=true]{border-color:#a0a0a0;background:#444}.eraser-button[data-erasing=true]{border-color:#ff7a72;background:#a52c25;box-shadow:inset 0 0 0 2px #ffffff2e;color:#fff}.display-button[aria-disabled=true]{cursor:default}.control-panel{flex:1 1 auto;min-height:0;overflow:hidden}.function-grid{display:grid;height:100%;gap:.4rem}.function-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr))}.scale-panel{display:grid;grid-template-rows:minmax(0,1fr) 2.75rem;gap:.4rem;height:100%}.scale-panel[hidden],.function-grid[hidden],.setting-panel[hidden]{display:none}.setting-panel{display:grid;grid-template-rows:auto minmax(2.75rem,1fr) 2.75rem;gap:.6rem;height:100%;align-items:center}.tempo-setting-panel{grid-template-rows:auto minmax(2.75rem,1fr) minmax(2.75rem,1fr) 2.75rem}.loop-shift-panel{grid-template-rows:auto 2.75rem minmax(2.2rem,1fr) 2.75rem;gap:.3rem}.loop-shift-coarse-controls{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.25rem;min-width:0}.loop-shift-coarse-controls button{min-height:2.75rem;padding-inline:.15rem;font-size:clamp(.6rem,2.6vw,.76rem);line-height:1.15}.loop-shift-fine-control{display:grid;grid-template-rows:auto 1rem auto;gap:.08rem;min-width:0;align-items:center}.loop-shift-fine-control>span:first-child{font-size:.68rem;line-height:1;text-align:center}.loop-shift-fine-control input{width:100%;height:1rem;margin:0}.loop-shift-range-labels{display:flex;justify-content:space-between;color:#bdbdbd;font-size:.58rem;line-height:1}.setting-panel>label,.setting-panel>span,.setting-panel>output{text-align:center}.setting-panel>output{font-size:1.25rem;font-variant-numeric:tabular-nums}.tempo-controls{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.3rem;width:100%;height:100%;min-height:2.75rem}.tempo-controls output{display:grid;place-items:center;min-width:0;border:1px solid #727272;background:#262626;font-size:1rem;font-variant-numeric:tabular-nums;white-space:nowrap}.setting-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.4rem;min-height:0}.setting-options button[aria-pressed=true]{outline:2px solid #f4f4f4;outline-offset:-3px}.scale-options{min-height:0;padding-right:.15rem;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.scale-group+.scale-group{margin-top:.65rem}.scale-group h3{margin:0 0 .35rem;font-size:.8rem;font-weight:600}.scale-group-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem}.scale-options button[aria-pressed=true]{outline:2px solid #f4f4f4;outline-offset:-3px}
