/* ASMM — cream instrument, flat controls, pixel meters. Mobile first. */
:root{color-scheme:light;--bg:#e6e2d5;--surface:#f0ecdf;--text:#163c42;--muted:#52645e;--line:#bdc3b8;--ochre:#e5b654;--asmm-blue:#006eff;--asmm-link:#005ccc;--coral:#bd563d;font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;font-synthesis:none;font-size:16px}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button,input,select{font:inherit}button,select,input[type=range],summary{touch-action:manipulation}button{cursor:pointer;color:inherit;transition:background .12s,border-color .12s}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--coral);outline-offset:3px}button:hover:not(:disabled){border-color:var(--text)}a{color:inherit}[hidden]{display:none!important}
.app-shell{max-width:780px;padding:0 22px;margin:auto}.site-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:2px solid var(--text)}.brand{display:block;flex:0 1 300px;min-width:0;text-decoration:none}.language-switch{display:flex;flex-shrink:0;gap:3px}.language-switch button{min-width:44px;min-height:44px;background:transparent;border:1px solid #99a89b;font-size:.8125rem;font-weight:750}.language-switch button[aria-pressed=true]{background:var(--text);color:var(--ochre);border-color:var(--text)}
.title-row{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:14px 0}.eyebrow{font-size:.6875rem;letter-spacing:.12em;font-weight:700;margin:0;color:var(--muted)}h1,h2{font-family:'Arial Black',Arial,sans-serif;font-weight:900;text-transform:uppercase}h1{font-size:32px;line-height:1.1;letter-spacing:-.05em;margin:4px 0 0}h1:before{content:'/';color:var(--coral);margin-right:.1em}h2{font-size:.875rem;letter-spacing:-.01em;margin:0}.status{display:flex;align-items:center;gap:6px;flex-shrink:0;font-size:.6875rem;text-transform:uppercase;letter-spacing:.025em;margin:0;padding:7px;background:#dbddd1;border:1px solid var(--line)}.status:before{content:'';height:6px;width:6px;border:1px solid #65827e}.is-playing .status{background:var(--text);color:var(--surface)}.is-playing .status:before{background:var(--ochre);border-color:var(--ochre)}
.workspace{border:1.5px solid var(--text);border-radius:3px;background:var(--surface);overflow:hidden}
.rhythm-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);border-bottom:1px solid var(--line)}
.beat-panel{padding:16px 20px 12px;min-width:0}.panel-top{display:flex;justify-content:space-between;align-items:center;gap:6px}.panel-top .eyebrow{color:var(--text);letter-spacing:.05em}
.beats.pixel-beats{display:grid;grid-template-columns:repeat(var(--beat-columns,4),minmax(0,1fr));gap:7px;margin:11px auto 0;max-width:min(270px,calc(var(--beat-columns,4) * 66px))}.pixel-beats .beat{display:flex;flex-direction:column;min-width:0;gap:0;padding:0;overflow:hidden;border:1px solid #6b857a;border-radius:1px;background:#d7ddca;color:var(--text)}.meter-face{position:relative;display:block;height:112px;background:#10383e}.meter-face canvas{position:absolute;inset:0;display:block;width:100%;height:100%;image-rendering:pixelated}.beat-meta{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;padding:6px 2px;border-bottom:2px solid transparent;min-height:43px}.beat-number{font-family:'Arial Black',Arial,sans-serif;font-size:1.0625rem;font-weight:900;line-height:1}.beat-caption{font-size:.6875rem;font-weight:750;letter-spacing:-.025em}.beat.accent .beat-meta{color:#9b3f29;background:#e5d6be}.pixel-beats .beat.active .beat-meta{background:var(--ochre);border-bottom-color:var(--text)}.pixel-beats .beat.muted{border-color:#a6afa0;background:#dedccf}.beat.muted .meter-face{background:#cfcebd}.beat.muted .beat-caption{color:#a1402e}.pixel-beats .beat.muted.active .beat-meta{background:#d9c89e;border-bottom-color:var(--coral)}.beats[data-dense=true] .meter-face{height:65px}.beat-hint{font-size:.6875rem;line-height:1.5;color:var(--muted);margin:8px 0 0;text-align:center}
.subdivision-panel{padding:16px 20px 12px;border-left:1px solid var(--line);min-width:0;text-align:center}.subdivision-panel h2{font-family:inherit;font-size:.6875rem;letter-spacing:.05em;font-weight:700;line-height:1.2}.subdivision-button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:156px;width:100%;max-width:230px;margin:11px auto 0;padding:8px;border:1px solid #8b9f8e;background:#e2e2d0;border-radius:2px}.subdivision-button:hover{background:#dddcc7}.subdivision-button:active{background:var(--ochre)}.subdivision-button.swung{background:#e9dfc3}.subdivision-figure{display:block;width:110px;max-width:100%;height:66px}.subdivision-figure svg{display:block;width:100%;height:100%}.subdivision-name{display:block;font-size:.8125rem;line-height:1.3;font-weight:700;max-width:190px;min-height:34px;align-content:center}.subdivision-steps{display:flex;gap:6px;margin-top:3px}.subdivision-steps i{width:5px;height:5px;background:#a0af9b}.subdivision-steps i.selected{background:var(--coral)}.choice-hint{font-size:.6875rem;color:var(--muted);margin:8px 0 0;line-height:1.5}
select{min-height:44px;color:var(--text);border:1px solid #96aa99;background:var(--surface);border-radius:1px;padding:6px 9px;font-size:1rem;max-width:100%}.feel-panel{padding:7px 20px 12px;border-bottom:1px solid var(--line)}.swing-control{margin-top:0}.swing-top{display:flex;align-items:center;gap:10px;min-height:32px;font-size:.8125rem}.swing-top label{font-weight:750}.swing-top output{font-variant-numeric:tabular-nums;font-weight:750;margin-left:auto}#swing-reset{min-height:32px;padding:5px 10px;border:1px solid #93a997;background:transparent;border-radius:1px;font-size:.75rem}#swing-reset.at-center{background:#dedfcd;border-color:#8e9e8c}.swing-control.inactive .swing-range-wrap,.swing-control.inactive .swing-labels span{opacity:.4}.swing-range-wrap{position:relative;height:30px}.swing-center{position:absolute;left:50%;top:8px;height:15px;border-left:1px solid var(--coral);pointer-events:none;z-index:0}.swing-range-wrap input{position:relative;z-index:1}.swing-labels{display:flex;position:relative;align-items:center;justify-content:space-between;gap:8px;font-size:.6875rem;line-height:1.3;color:var(--muted)}.swing-labels button{width:44px;height:44px;flex:0 0 44px;padding:0;border:1px solid #93a997;border-radius:1px;background:transparent;color:var(--text);font-size:1.4rem;font-weight:600}.swing-labels button:hover:not(:disabled){background:var(--ochre)}.swing-labels span:nth-child(2){position:absolute;left:50%;transform:translateX(-50%)}.subdivision-preview{margin-top:8px}.sub-preview-label{display:flex;justify-content:space-between;gap:8px;font-size:.6875rem;color:var(--muted)}.subdivision-track{position:relative;height:12px;border-bottom:1px solid #a6b3a5;margin:3px 0}.subdivision-track i{position:absolute;left:calc(var(--position) * (100% - 9px));bottom:-3px;width:6px;height:6px;background:#7c9486}.subdivision-track i:first-child{width:8px;height:8px;background:var(--text)}.subdivision-track i.active{background:var(--coral);outline:2px solid var(--ochre)}
.tempo-panel{padding:11px 20px 15px}.tempo-control{display:flex;justify-content:center;align-items:center;gap:24px;margin:0 auto}.dial{width:205px;max-width:calc(100% - 112px);height:137px}.dial-center{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%}.dial input{font-family:'Arial Black',Arial,sans-serif;font-weight:900;letter-spacing:-.07em;font-variant-numeric:tabular-nums;font-size:82px;line-height:1.05;width:100%;padding:0;background:transparent;color:var(--text);border:0;appearance:textfield;text-align:center;margin:0}.dial input::-webkit-inner-spin-button,.dial input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.tempo-caption{display:flex;align-items:center;justify-content:center;gap:9px;font-size:.75rem}.bpm-unit{font-weight:750;letter-spacing:.1em}.tempo-name{color:var(--coral)}.step-btn{width:44px;height:44px;flex:0 0 44px;border:1.5px solid var(--text);border-radius:1px;background:transparent;font-size:1.5rem}.step-btn:hover:not(:disabled){background:var(--ochre)}.tempo-slider{max-width:490px;margin:2px auto 12px}.range-labels{display:flex;justify-content:space-between;font-size:.6875rem;color:var(--muted)}
input[type=range]{display:block;width:100%;height:28px;margin:0;appearance:none;background:transparent;cursor:pointer;--fill:35.7%}input[type=range]:disabled{cursor:default}input[type=range]::-webkit-slider-runnable-track{height:4px;background:linear-gradient(to right,var(--text) 0 var(--fill),#bdc5b9 var(--fill) 100%)}input[type=range]::-webkit-slider-thumb{appearance:none;width:17px;height:17px;background:var(--ochre);border:3px solid var(--text);border-radius:1px;margin-top:-6.5px}input[type=range]::-moz-range-track{height:4px;background:#bdc5b9}input[type=range]::-moz-range-progress{height:4px;background:var(--text)}input[type=range]::-moz-range-thumb{width:12px;height:12px;background:var(--ochre);border:3px solid var(--text);border-radius:1px}
.transport{display:grid;grid-template-columns:1.25fr 1fr;gap:10px;max-width:490px;margin:auto}.transport button{display:flex;align-items:center;justify-content:center;gap:9px;min-height:48px;text-transform:uppercase;font-size:.875rem;font-weight:750;letter-spacing:.03em;border-radius:1px}.play-btn{background:var(--text);border:1px solid var(--text);color:var(--ochre)}.play-btn:hover{background:#24545b}.tap-btn{background:var(--ochre);border:1px solid var(--ochre)}.tap-btn.tapped{background:#f2d494;border-color:var(--text)}.transport-hint{margin:8px 0 0;text-align:center;font-size:.75rem;color:var(--muted)}.error{padding:10px;border:1px solid var(--coral);font-size:.875rem;line-height:1.5;color:#8d3429}
.settings-details{margin-top:12px;border:1px solid #a6b2a4;background:#e5e3d6;border-radius:2px}.settings-details summary{padding:13px 16px;min-height:46px;cursor:pointer;font-size:.875rem;font-weight:750}.settings-details[open] summary{border-bottom:1px solid var(--line)}.settings{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.settings-section{padding:15px 16px;min-width:0}.section-heading{margin-bottom:12px}.sound-section{border-left:1px solid var(--line)}.signatures,.sounds{display:grid;gap:6px}.signatures{grid-template-columns:repeat(4,minmax(0,1fr))}.sounds{grid-template-columns:repeat(6,minmax(0,1fr))}.sounds button{grid-column:span 2}.sounds button:nth-child(n+4){grid-column:span 3}.signatures button,.sounds button{min-height:44px;min-width:0;border:1px solid #9ead9f;border-radius:1px;background:#dcded0;font-size:.875rem}.signatures button{font-weight:750}.sounds button{position:relative;min-height:51px}.sounds button:after{content:'';position:absolute;right:6px;top:6px;width:3px;height:3px;background:#8eaa9b}.signatures button[aria-pressed=true],.sounds button[aria-pressed=true]{background:var(--text);color:var(--ochre);border-color:var(--text)}.sounds button[aria-pressed=true]:after{background:var(--ochre)}.custom-signature{display:flex;justify-content:space-between;align-items:center;gap:9px;margin-top:13px;font-size:.8125rem}.fraction{display:flex;align-items:center;gap:6px}.fraction select{min-width:44px;font-size:.875rem;padding:4px}.unit-hint{font-size:.75rem;color:var(--muted);line-height:1.4;margin:10px 0}.accent-row{display:flex;justify-content:space-between;align-items:center;gap:10px;border-top:1px solid var(--line);padding-top:11px}.accent-row label{font-size:.8125rem}.accent-row p{font-size:.6875rem;line-height:1.4;color:var(--muted);margin:5px 0 0}.switch{position:relative;flex:0 0 44px;height:30px;background:#bbc5b6;border:1px solid #8b9f8e;border-radius:2px}.switch span{display:block;position:absolute;left:4px;top:4px;width:20px;height:20px;background:var(--surface)}.switch[aria-checked=true]{background:var(--text);border-color:var(--text)}.switch[aria-checked=true] span{left:18px;background:var(--ochre)}.volume-label{display:flex;justify-content:space-between;margin:17px 0 6px;font-size:.8125rem}.session-note{grid-column:1 / -1;display:flex;gap:9px;align-items:center;border-top:1px solid var(--line);padding:9px 16px;color:var(--muted)}.session-note p{font-size:.75rem;line-height:1.4;margin:0}.note-symbol{font-size:1.5rem}footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;margin:16px 0 20px;font-size:.6875rem;line-height:1.5;color:var(--muted)}.version{margin-left:8px}.shortcuts{display:flex;gap:12px}kbd{font:inherit;border:1px solid var(--line);padding:2px 3px;margin-right:3px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:619px){
 input[type=range]{height:36px}.swing-range-wrap{height:36px}.swing-center{top:11px}
 body{padding-bottom:calc(82px + env(safe-area-inset-bottom,0px))}.app-shell{padding:0 12px}.site-header{padding:8px 0}.brand{gap:8px;font-size:.625rem;letter-spacing:.02em}.language-switch button{min-width:44px;min-height:44px}.title-row{margin:11px 0}.title-row .eyebrow{display:none}h1{font-size:27px;margin:0}.status{font-size:.625rem;padding:6px}.rhythm-top{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}.beat-panel{padding:12px 9px 9px}.panel-top .eyebrow{font-size:.625rem;letter-spacing:0}.beats.pixel-beats{grid-template-columns:repeat(var(--beat-columns-mobile,4),minmax(0,1fr));gap:4px;margin-top:9px;max-width:calc(var(--beat-columns-mobile,4) * 50px)}.meter-face{height:94px}.beat-meta{padding:5px 1px;gap:4px;min-height:40px}.beat-number{font-size:1rem}.beat-caption{font-size:.6875rem}.beat-hint{font-size:.625rem;margin-top:7px}.subdivision-panel{padding:12px 9px 9px}.subdivision-panel h2{font-size:.625rem}.subdivision-button{margin-top:9px;min-height:134px;padding:6px;gap:3px}.subdivision-figure{width:100px;height:58px}.subdivision-name{font-size:.75rem;min-height:32px}.subdivision-steps{gap:5px}.choice-hint{font-size:.625rem;margin-top:7px}.feel-panel{padding:7px 12px 10px}h2{font-size:.75rem}.swing-top{min-height:36px}.swing-top label{font-size:.8125rem}#swing-reset{min-height:36px}.swing-labels{font-size:.625rem}.subdivision-preview{margin-top:8px}.sub-preview-label{font-size:.625rem}.tempo-panel{padding:7px 12px 11px}.tempo-control{gap:18px}.dial{width:190px;height:126px;max-width:calc(100% - 124px)}.dial input{font-size:76px}.tempo-slider{margin-bottom:0}.tempo-caption{font-size:.6875rem}.transport{position:fixed;bottom:0;left:0;right:0;max-width:none;padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));border-top:1.5px solid var(--text);background:var(--surface);z-index:20;gap:9px}.transport button{min-height:48px;font-size:.8125rem}.transport-hint{margin-top:5px;font-size:.6875rem}.settings-details{margin-top:10px}.settings{display:block}.sound-section{border-left:0;border-top:1px solid var(--line)}.settings-section{padding:13px}.settings-details summary{padding:12px}.shortcuts{display:none}footer{margin:11px 0 14px}
}
@media(max-width:359px){.language-switch{gap:2px}.language-switch button{min-width:44px}h1{font-size:24px}.status{font-size:.5625rem}.dial input{font-size:63px}.dial{max-width:calc(100% - 114px)}.tempo-control{gap:13px}.beat-hint{font-size:.625rem}.beat-panel,.subdivision-panel{padding-left:7px;padding-right:7px}.beat-caption{font-size:.625rem}.subdivision-name{font-size:.6875rem}.sub-preview-label{font-size:.625rem}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}

/* Direct rhythmic picker and the shared-clock drum machine. */
.mode-switch{display:flex;gap:5px;padding:8px;border-bottom:1px solid var(--line)}.mode-switch button{flex:1;min-height:42px;font-size:.875rem;font-weight:750;border:1px solid #9ead9f;background:transparent}.mode-switch button[aria-pressed=true]{background:var(--text);color:var(--ochre);border-color:var(--text)}.mode-switch button span{margin-right:5px;font-size:1.1rem}
.subdivision-dialog{color:var(--text);background:var(--surface);border:1.5px solid var(--text);border-radius:3px;padding:18px;width:min(520px,calc(100vw - 24px));max-height:calc(100dvh - 32px);overflow:auto}.subdivision-dialog::backdrop{background:#102e35aa}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.dialog-heading h2{font-size:1rem}.dialog-close{width:44px;height:44px;flex-shrink:0;font-size:1.75rem;border:1px solid var(--line);background:transparent}.subdivision-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.subdivision-options button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;padding:10px;min-height:125px;border:1px solid #94a294;background:#e3e2d3;color:var(--text);font-size:.875rem;line-height:1.3}.subdivision-options svg{width:112px;max-width:100%;height:65px;flex-shrink:0}.subdivision-options button[aria-pressed=true]{background:var(--ochre);border:2px solid var(--text)}.subdivision-options button:hover{background:#e9d299}
.loop-panel{padding:16px 20px;border-bottom:1px solid var(--line)}.loop-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}.loop-meter{font-size:.75rem;color:var(--muted);white-space:nowrap}.groove-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.groove-options button{font-size:.875rem;min-height:44px;border:1px solid #96aa99;background:transparent;padding:8px 3px}.groove-options button[aria-pressed=true]{background:var(--ochre);border-color:var(--text);font-weight:700}.kit-row{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:.875rem;margin-top:12px}.kit-row>div{display:flex;gap:5px}.kit-row button{min-height:40px;min-width:70px;font-size:.8125rem;border:1px solid #96aa99;background:transparent}.kit-row button[aria-pressed=true]{color:var(--ochre);background:var(--text);border-color:var(--text)}.loop-bottom{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:9px;min-height:40px;font-size:.75rem}.loop-click{display:flex;align-items:center;gap:8px;min-height:40px;cursor:pointer}.loop-click input{width:19px;height:19px;accent-color:var(--text)}.loop-bottom a{padding:10px 0}.audio-only-settings{display:block}.audio-only-settings .sound-section{border-left:0}.audio-only-settings .sounds{max-width:440px}.audio-only-settings .volume-label,.audio-only-settings #volume{max-width:440px}
@media(max-width:619px){.mode-switch{padding:6px}.mode-switch button{min-height:40px}.loop-panel{padding:12px}.loop-heading{margin-bottom:11px}.loop-heading h2{font-size:.875rem}.groove-options{gap:6px}.groove-options button{font-size:.8125rem}.kit-row{font-size:.8125rem}.subdivision-dialog{padding:12px}.subdivision-options button{min-height:116px;font-size:.8125rem}.dialog-heading h2{font-size:.875rem}}

/* Three audio treatments, one performance. */
.kit-row>div{flex:0 1 246px;min-width:0}.kit-row button{min-width:0;flex:1;min-height:44px;padding:6px 10px}.kit-row>span{flex:0 0 76px}
.beat.muted .meter-face{background:#cfcebd}

@media(max-width:619px){.kit-row{gap:6px}.kit-row>span{flex-basis:62px}.kit-row button{padding:6px;font-size:.75rem}}

@media(min-width:620px){.groove-options{grid-template-columns:repeat(6,minmax(0,1fr))}.loop-panel{padding:14px 20px}.loop-mode .dial{height:115px}.loop-mode .tempo-panel{padding:8px 20px 12px}}

/* Shared-cycle polyrhythms: compact voices above the central tempo. */
.poly-panel{padding:14px 20px 12px;border-bottom:1px solid var(--line)}
.poly-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.poly-heading h2{font-size:.875rem}.poly-heading output{font-size:1.3rem;font-weight:800;font-variant-numeric:tabular-nums}
.poly-choices{display:flex;gap:8px;margin-bottom:10px}.poly-choices label{flex:1;min-width:0}.poly-choices select{width:100%;height:40px;min-height:40px;font-size:.875rem}.poly-choices button{min-height:40px;padding:6px 16px;border:1px solid #96aa99;background:transparent;font-size:.8125rem}
.poly-voices{display:grid;gap:6px}.poly-voice{display:grid;grid-template-columns:40px 52px minmax(0,1fr) 66px;align-items:center;gap:9px;--voice:#90bba0}.poly-voice[data-voice="1"]{--voice:#e6b94f}.poly-voice[data-voice="2"]{--voice:#df8059}
.poly-mute{height:40px;background:var(--text);color:var(--voice);border:1px solid var(--text);font-weight:800;font-size:.875rem}.poly-count{width:100%;min-height:40px;height:40px;padding:4px;font-size:.875rem}.poly-dots{height:40px;display:flex;gap:4px;align-items:center;justify-content:space-evenly;padding:0 8px;background:#10383e}.poly-dots i{width:6px;height:16px;flex:1;max-width:16px;background:#36564f;box-shadow:inset 0 -5px #10383e,inset 0 5px #10383e}.poly-dots i.active,.sustained .poly-dots i{background:var(--voice)}.sustained .poly-dots i{opacity:.7}.poly-rate{font:11px ui-monospace,monospace;text-align:right;white-space:nowrap}.poly-voice.muted .poly-mute{background:transparent;color:var(--muted)}.poly-voice.muted .poly-dots{opacity:.45}
.poly-speed-top{display:flex;justify-content:space-between;align-items:center;margin-top:12px;font-size:.8125rem;font-weight:700}.poly-speed-top output{font-variant-numeric:tabular-nums}.poly-speed-actions{display:flex;gap:8px;margin-top:2px}.poly-speed-actions button{flex:1;min-height:40px;font-size:.8125rem;border:1px solid #96aa99;background:transparent}.poly-speed-actions button[aria-pressed=true]{background:var(--ochre);border-color:var(--text)}
@media(min-width:620px){.poly-mode .dial{height:115px}.poly-mode .tempo-panel{padding:8px 20px 12px}}
@media(max-width:619px){.poly-panel{padding:10px 12px}.poly-heading{margin-bottom:8px}.poly-voice{gap:6px;grid-template-columns:38px 46px minmax(0,1fr) 63px}.poly-dots{gap:3px;padding:0 5px}.mode-switch button{font-size:.8125rem}}

/* Musical library; large ratios retain readable pulse counters on phones. */
.poly-heading #poly-family{flex:1;min-width:0;max-width:215px;min-height:44px;font-size:.875rem;font-weight:700;background:transparent}.poly-heading output{flex-shrink:0;font-size:1.125rem;white-space:nowrap}.poly-choices select,.poly-choices button{min-height:44px;height:44px}.poly-choices select{font-size:.875rem}.poly-mute,.poly-count,.poly-dots{height:44px;min-height:44px}.poly-dots.dense{justify-content:center;gap:8px}.poly-dots.dense i{flex:0 0 12px;height:22px;box-shadow:inset 0 -5px #10383e,inset 0 5px #10383e}.poly-position{color:var(--voice);font:11px ui-monospace,monospace;white-space:nowrap}.poly-speed-actions button{min-height:44px}
@media(max-width:619px){.poly-heading{gap:8px}.poly-heading #poly-family{font-size:.8125rem;padding:6px}.poly-heading output{font-size:1rem}.poly-choices{gap:6px}.poly-choices button{padding:6px 10px}.poly-choices select{padding:6px;font-size:.8125rem}.poly-count{font-size:.8125rem}}
@media(min-width:620px) and (max-height:900px){body{padding-bottom:82px}.transport{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:min(736px,calc(100% - 44px));max-width:none;padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px));border:1.5px solid var(--text);border-bottom:0;background:var(--surface);z-index:20}}

/* Authentic horizontal wordmark and quick backbeat selection. */
.brand img{display:block;width:100%;height:auto;object-fit:contain}
.beat-actions{display:flex;align-items:center;gap:8px;margin-top:8px}.beat-actions .beat-hint{flex:1;margin:0;text-align:left;font-size:.75rem;line-height:1.35}
#backbeat{flex:0 0 48px;min-height:44px;padding:6px;border:1px solid #96aa99;background:transparent;font-weight:750;font-size:.875rem}
#backbeat[aria-pressed=true]{background:var(--ochre);border-color:var(--text)}
@media(max-width:619px){.brand{flex-basis:245px}.beat-actions{gap:6px}.beat-actions .beat-hint{font-size:.6875rem}}

.creator-credit{flex-basis:100%;margin:0;font-size:.75rem;line-height:1.5}
/* Practice tools stay folded; the main surface is devoted to pulse and tempo. */
[hidden]{display:none!important}.feel-panel:not(:has(.swing-control:not([hidden]))){padding-top:0;padding-bottom:7px}.practice-status{font-size:.75rem;line-height:1.5;margin:8px 0 0;color:var(--text);font-weight:650}.practice-status.silent{color:#9a4936}.detail-body{padding:16px}.detail-hint{font-size:.75rem;line-height:1.55;color:var(--muted);margin:12px 0 0}.check-label{display:flex;align-items:center;gap:10px;font-size:.875rem;font-weight:700;min-height:44px}.check-label input{width:21px;height:21px;accent-color:var(--text)}.practice-fields{border:0;padding:5px 0 14px;margin:0;display:flex;gap:10px}.practice-fields:disabled{opacity:.5}.practice-fields label{display:flex;flex:1;min-width:0;flex-direction:column;gap:7px;font-size:.75rem}.practice-fields input,.preset-form input,.share-link-label input{width:100%;min-width:0;min-height:44px;border:1px solid #9ead9f;background:var(--surface);color:var(--text);border-radius:1px;font:inherit;padding:8px}.practice-fields input{font-size:1rem}.preset-form{display:flex;gap:8px}.preset-form input{flex:1}.preset-form button,.small-buttons button,.preset-row button,#install-app{border:1px solid #9ead9f;background:var(--surface);color:var(--text);min-height:44px;padding:8px 12px;font-size:.8125rem}.preset-form button{background:var(--text);color:var(--ochre)}.preset-list{margin:12px 0}.preset-row{display:flex;gap:6px;margin:6px 0}.preset-row button:first-child{flex:1;text-align:left;overflow-wrap:anywhere}.preset-row button:last-child{width:44px;padding:4px}.small-buttons{display:flex;flex-wrap:wrap;gap:6px}.grouping-row{margin-top:12px;font-size:.75rem}.grouping-row>span{display:block;margin-bottom:6px}.pulse-choice{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px;font-size:.8125rem}.sounds button:nth-child(n){grid-column:span 2}.share-link-label{display:block;margin-top:12px;font-size:.75rem}.share-link-label input{display:block;margin-top:6px}.install-details{margin-top:12px;font-size:.75rem;color:var(--muted)}.install-details summary{cursor:pointer;min-height:44px;display:flex;align-items:center}.install-details[open]{padding:0 12px 12px;border:1px solid var(--line)}.grouping-row button:hover,.preset-row button:hover,.small-buttons button:hover{background:var(--ochre)}
@media(max-width:480px){.detail-body{padding:12px}.practice-fields{gap:7px}.practice-fields label{font-size:.6875rem}.subdivision-name{min-height:25px}.subdivision-options button{min-height:110px}}

/* A quiet school link beside the title, with readable context below the controls. */
.about-metronome{margin-top:22px;padding:18px 0 4px;border-top:1px solid var(--line);color:var(--muted)}.about-metronome h2{font-size:.875rem;letter-spacing:0;text-transform:none;color:var(--text)}.about-metronome p{font-size:.8125rem;line-height:1.65;max-width:70ch;margin:10px 0}.school-link{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 12px;flex-shrink:0;border:1px solid var(--asmm-blue);color:var(--asmm-link);text-decoration:none;font-size:.75rem;font-weight:700;line-height:1.3}.school-link:hover,.school-link:focus-visible{background:var(--asmm-link);border-color:var(--asmm-link);color:#fff}.sounds{grid-template-columns:repeat(12,minmax(0,1fr))}.sounds button:nth-child(n){grid-column:span 3}.sounds button:nth-child(n+5){grid-column:span 4}

@media(max-width:619px){.title-row{gap:8px}.school-link{flex-shrink:1;min-width:0;max-width:158px;padding:6px 8px;font-size:.6875rem;gap:6px}.school-link>span:last-child{flex-shrink:0}}

/* A short explanation beside the rhythm-to-pitch control. */
.poly-explainer{font-size:.75rem;line-height:1.5;color:var(--muted);margin:10px 0 0}.poly-explainer a{display:inline-block;padding:3px 0;text-underline-offset:3px;font-weight:650}.about-metronome h3{font-size:.9375rem;color:var(--text);margin:20px 0 0}.guide-links{display:flex;gap:8px 20px;flex-wrap:wrap}.guide-links a{display:inline-flex;align-items:center;min-height:44px;font-size:.8125rem;text-underline-offset:4px}

.about-bonus{margin:18px 0 0;padding:12px 0;border-top:1px solid var(--line)}.about-bonus summary{cursor:pointer;min-height:36px;display:list-item;font-size:.8125rem;font-weight:700;color:var(--text);line-height:1.5}
