:root{--bg:#f4f1ea;--surface:#fff;--text:#1f2522;--muted:#5d6862;--accent:#205e50;--good:#17663c;--danger:#9b2c2c;--black:#050505;--line:#dce2de;--shadow:0 8px 28px rgba(20,32,27,.08)}
*{box-sizing:border-box}html{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}body{margin:0}.topbar{max-width:900px;margin:auto;padding:22px 18px 8px}.topbar h1{font-size:clamp(2rem,5vw,3.2rem);margin:0}.topbar p{margin:.35rem 0;color:var(--muted);line-height:1.45}main{max-width:900px;margin:auto;padding:8px 18px 50px;display:grid;gap:16px}.card{background:var(--surface);border-radius:18px;padding:18px;box-shadow:var(--shadow)}.section-title{text-transform:uppercase;letter-spacing:.09em;color:var(--accent);font-size:.77rem;font-weight:800;margin-bottom:12px}.compact-title{padding-top:2px}.muted{color:var(--muted);line-height:1.45}.center-muted{text-align:center;color:var(--muted);font-size:.88rem;line-height:1.4}.sequence{min-height:1.4em;margin:4px 0 10px}.notice{color:var(--muted);line-height:1.45;padding:0 4px;margin:0}.mic-badge{border-radius:13px;padding:14px 16px;color:#fff;font-weight:800;white-space:pre-line;margin-bottom:10px}.mic-green{background:var(--good)}.mic-black{background:var(--black)}button,select,input{font:inherit}.primary,.secondary,.danger,.text-button{border-radius:13px;padding:12px 16px;min-height:48px;cursor:pointer}.primary{background:var(--accent);color:white;border:1px solid var(--accent);font-weight:700}.secondary{background:#fff;color:var(--accent);border:1px solid var(--accent);font-weight:650}.danger{background:#fff;color:var(--danger);border:1px solid var(--danger);font-weight:650}.text-button{background:transparent;color:var(--accent);border:0;text-decoration:underline}.full{width:100%}.square{width:60px;min-width:60px;font-size:1.25rem}.hidden{display:none!important}button:disabled{opacity:.4;cursor:not-allowed}select,input[type=number]{border:1px solid var(--line);border-radius:10px;padding:9px;background:#fff}.string-select{display:grid;grid-template-columns:repeat(5,1fr);gap:6px}.string-option,.meter-option,.count-option,.quant-option{border:1px solid var(--line);background:#fff;border-radius:11px;padding:10px;color:var(--text);min-height:46px}.string-option.active,.meter-option.active,.count-option.active,.quant-option.active{background:var(--accent);color:#fff;border-color:var(--accent)}.hero-note{text-align:center;color:var(--accent);font-size:clamp(3.8rem,12vw,6rem);font-weight:850;line-height:1.05;margin-top:10px}.hero-note.small{font-size:clamp(3rem,9vw,4.8rem)}.hero-sub{text-align:center;font-weight:650;font-size:1.15rem}.advice{text-align:center;font-weight:700;margin-top:7px}.subsection{border-top:1px solid var(--line);margin-top:16px;padding-top:15px}.setting-label{font-size:.88rem;color:var(--muted);margin-bottom:7px}.stepper-row{display:grid;grid-template-columns:60px 1fr 60px;gap:8px;align-items:center}.stepper-value{text-align:center;font-size:1.25rem;font-weight:800}.segmented{display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.count-segment,.segmented:has(.quant-option){grid-template-columns:repeat(3,1fr)}.button-row{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.button-row.two-col>*{flex:1}.metronome-row{margin-top:9px}.beat-display{font-size:1.15rem;font-weight:850;min-width:120px;text-align:center}.range-line{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:12px;margin-top:10px;color:var(--muted);font-size:.88rem}.status-line{text-align:center;font-weight:750;margin:10px 0}.status-line.left{text-align:left}.selected-note{text-align:center;color:var(--muted);padding:9px 0}.version{text-align:right;color:var(--muted);font-size:.8rem}canvas{display:block;width:100%;height:auto;border-radius:12px;background:#fafbf9;border:1px solid var(--line)}#staff{min-height:190px}#timeline{min-height:220px}.technical-details{margin-top:9px}.technical-details summary{cursor:pointer;color:var(--accent);text-decoration:underline;padding:10px 0}.input-label{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:.88rem}.hidden-range{position:absolute;opacity:0;pointer-events:none}.install-banner{position:sticky;top:0;z-index:30;margin:0 auto 14px;max-width:860px;padding:13px 16px;display:flex;gap:16px;align-items:center;justify-content:space-between;background:#111;color:#fff;border-radius:0 0 16px 16px;box-shadow:0 7px 22px rgba(0,0,0,.22)}.install-banner div{display:flex;flex-direction:column;gap:3px}.install-banner span{font-size:13px;opacity:.82}.install-banner .primary{white-space:nowrap}.install-banner.hidden{display:none}#toast{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);background:#111;color:#fff;padding:11px 15px;border-radius:10px;opacity:0;pointer-events:none;transition:opacity .2s;max-width:90vw;z-index:50}#toast.show{opacity:1}
@media(max-width:620px){.install-banner{position:relative;border-radius:14px;margin:10px 12px;align-items:stretch;flex-direction:column}.install-banner .primary{width:100%}.button-row.two-col{display:grid;grid-template-columns:1fr 1fr}.stepper-row{grid-template-columns:56px 1fr 56px}.string-select{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
