#rhythm-panel{--rh-gold:#d0b27a;--rh-muted:#a5ad9a;--rh-line:#c6b58d25;max-width:1280px;margin:26px auto 48px;color:#e6e7da;font-family:var(--brand-sans,Arial,sans-serif)}.rh-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:28px}.rh-eyebrow{font-size:10px;letter-spacing:.22em;font-weight:500;color:var(--rh-gold);margin:0 0 12px}.rh-heading h1{font:400 clamp(36px,4.5vw,56px)/1.12 var(--brand-serif,Georgia,serif);letter-spacing:-.025em;margin:0 0 12px;color:#eee6d5}.rh-heading #rh-piece{color:var(--rh-muted);font-size:13px;margin:0;line-height:1.6}.rh-text-button{background:none;border:0;padding:8px 0;color:var(--rh-gold);font-size:12px;white-space:nowrap}.rh-layout{display:grid;grid-template-columns:278px minmax(0,1fr);gap:24px;align-items:start}.rh-setup{border:1px solid var(--rh-line);border-radius:14px;padding:24px;background:linear-gradient(145deg,#20271c,#161c15)}.rh-step-label{font-size:9px;color:#b5aa8d;letter-spacing:.15em;margin:0 0 16px}.rh-setup>label,.rh-options>label{display:block;font-size:11px;color:#b9c0af;margin:18px 0 10px}.rh-setup select,.rh-setup input[type=number]{display:block;width:100%;min-width:0;margin-top:8px;background:#11170f;border:1px solid #ffffff1e;border-radius:7px;padding:10px 11px;color:#e1e5d7;font-size:12px}.rh-range{display:grid;grid-template-columns:minmax(0,1fr) 12px minmax(0,1fr);gap:8px;align-items:center}.rh-range label{font-size:10px;color:#bac0b1}.rh-range>span{margin-top:22px;color:#78836b}.rh-phrase-nav{display:flex;justify-content:space-between;margin:10px 0 24px}.rh-phrase-nav button{border:0;background:none;padding:4px;color:#b5bda9;font-size:10px}.rh-phrase-nav button:disabled{opacity:.35}.rh-micro{color:#8f9b84;font-size:10px;line-height:1.65;margin:10px 0 20px}.rh-exercises{display:grid;gap:8px}.rh-exercises button{display:flex;align-items:center;gap:12px;text-align:left;background:#ffffff03;border:1px solid #ffffff17;border-radius:9px;padding:13px 11px;color:#bbc3b0}.rh-exercises button[aria-pressed=true]{background:#c8a66e10;border-color:#c8a66e80;color:#eee0bf}.rh-exercise-icon{font:28px Georgia,serif;width:26px;flex:none;color:var(--rh-gold);text-align:center}.rh-exercises b{font-size:12px;font-weight:500;display:block}.rh-exercises small{display:block;font-size:9px;font-weight:400;margin-top:6px;color:#8f9b84;line-height:1.5}.rh-tempo-label{margin-top:24px!important}.rh-tempo-label output{float:right;font-size:11px;color:#d9c398}.rh-tempo-label input{display:block;accent-color:#c8a66e;width:100%;margin:18px 0 10px;padding:0;height:5px;min-height:5px}.rh-presets{display:flex;gap:6px}.rh-presets button{flex:1;padding:6px;font-size:10px;background:transparent;border:1px solid #ffffff18;color:#b3bea7}.rh-options{margin-top:24px;border-top:1px solid var(--rh-line);padding-top:18px}.rh-options summary{cursor:pointer;font-size:10px;color:#9cab8c}.rh-options .rh-check{display:flex;align-items:center;gap:8px;line-height:1.5}.rh-check input{accent-color:#c8a66e;width:14px;height:14px;min-height:0}.rh-options .rh-micro{margin-bottom:0}.rh-work{min-width:0;background:radial-gradient(ellipse at 50% 35%,#29342155,transparent 65%),#141b12;border:1px solid var(--rh-line);border-radius:16px;padding:26px 30px 20px;overflow:hidden}.rh-session-top{display:flex;align-items:center;justify-content:space-between;gap:15px}.rh-session-top .rh-step-label{margin:0 0 8px}.rh-session-top h2{font:normal 27px var(--brand-serif,Georgia,serif);margin:0;color:#eae4d3}.rh-chip{font-size:9px;letter-spacing:.07em;white-space:nowrap;padding:7px 10px;border:1px solid #c8a66e40;border-radius:20px;color:#c4b18a}.rh-counting{text-align:center;margin:30px 0 22px}.rh-beats{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;min-height:42px}.rh-beats>span{width:38px;height:38px;border:1px solid #a5ad8c24;border-radius:50%;display:grid;place-items:center;font:18px Georgia,serif;color:#697c5f;transition:background .1s,color .1s}.rh-beats>span.active{background:#d0b27a;color:#16200f;border-color:#dfc68e;box-shadow:0 0 25px #c8a66e20}.rh-counting p{font-size:11px;color:#a6b197;margin-top:12px;letter-spacing:.03em;min-height:18px}.rh-map-heading{display:flex;justify-content:space-between;gap:12px;margin-bottom:10px;font-size:8px;letter-spacing:.12em;color:#98a589}.rh-map-heading>span+span{letter-spacing:0;text-transform:none;color:#7f8e72}.rh-map-heading i{font-style:normal;margin-left:7px}.rh-map{width:100%;overflow-x:auto;border:1px solid #ffffff14;border-radius:9px;background:#0f150e;scrollbar-color:#5f6348 #172012;scrollbar-width:thin;padding-bottom:3px;overscroll-behavior-x:contain}.rh-map svg{display:block;width:100%;height:155px}.rh-barline{stroke:#b9bf9f40;stroke-width:1}.rh-grid-line{stroke:#acb79513;stroke-width:1;stroke-dasharray:2 5}.rh-bar-number{fill:#b9bd9d;font-size:10px;font-family:Georgia,serif}.rh-beat-label{fill:#66795a;font-size:10px;text-anchor:middle}.rh-baseline{stroke:#76896225}.rh-hold{stroke:#c8a66e70;stroke-width:3;stroke-linecap:round}.rh-stem{stroke:#b5bd9e70;stroke-width:1.4}.rh-target{fill:#b2bd9c;stroke:#182212;stroke-width:2}.rh-target.steady{fill:#a2c78a;stroke:#badc9f}.rh-target.early,.rh-target.late{fill:#d7ab69;stroke:#f1cf89}.rh-target.missed{fill:#482f2b;stroke:#b36f61;stroke-dasharray:2 2}.rh-onset-label{fill:#697c5e;font-size:8px;text-anchor:middle}.rh-map-cursor{stroke:#edd19a;stroke-width:2}.rh-work #rh-map-description{margin:10px 0 18px}.rh-actions{display:flex;align-items:center;justify-content:center;gap:10px;margin:12px 0 22px}.rh-actions button{min-height:42px;font-size:12px;padding:10px 20px;border-radius:7px}.rh-primary{background:#c8a66e!important;color:#182111!important;border:1px solid #ddc18b!important}.rh-secondary{background:#ffffff03;border:1px solid #ffffff22;color:#b3bea7}.rh-tap-pad{width:100%;height:154px;border-radius:12px;border:1px solid #c8a66e70;position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 50% 100%,#68764b30,transparent 75%),#1c2619;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:9px;touch-action:manipulation;user-select:none;-webkit-user-select:none;cursor:pointer;color:#e6d6b1;box-shadow:inset 0 0 30px #27381e40;transition:background .12s,border-color .12s}.rh-tap-pad:disabled{cursor:default;opacity:.65}.rh-tap-pad:focus-visible{outline:2px solid #e4c38a;outline-offset:4px}.rh-tap-pad #rh-tap-word{font-size:20px;letter-spacing:.2em;font-weight:400;z-index:1}.rh-tap-pad small{font-size:10px;color:#98a689;z-index:1}.rh-tap-ring{position:absolute;width:100px;height:100px;border:1px solid #c8a66e20;border-radius:50%;pointer-events:none;opacity:.4}.rh-tapped{animation:rh-pad-flash .16s ease-out}.rh-tapped .rh-tap-ring{animation:rh-ring .32s ease-out}@keyframes rh-pad-flash{from{background-color:#80734b;border-color:#f0d39d}to{background-color:#1c2619}}@keyframes rh-ring{from{transform:scale(.8);opacity:.9}to{transform:scale(2.5);opacity:0}}.rh-live-feedback{text-align:center;color:#99aa8b;font-size:11px;line-height:1.5;min-height:20px;margin:17px 0 6px}.rh-live-feedback[data-kind=steady]{color:#bad59f}.rh-live-feedback[data-kind=early],.rh-live-feedback[data-kind=late],.rh-live-feedback[data-kind=extra]{color:#d9b47a}.rh-best{text-align:center;font-size:9px;color:#718467;line-height:1.6;margin:14px 0 0}.rh-results{margin:24px 0 10px;border-top:1px solid var(--rh-line);padding-top:24px}.rh-result-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}.rh-result-heading h3{font:normal 23px Georgia,serif;color:#e5dfcc;margin:0}.rh-result-heading .rh-eyebrow{font-size:8px;margin-bottom:8px}.rh-result-heading strong{font:36px Georgia,serif;color:#d2b77f;text-align:center}.rh-result-heading strong:after{content:'on time';display:block;font:9px Arial,sans-serif;color:#a4b097;margin-top:4px}.rh-result-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:24px}.rh-result-stats>div{border-left:1px solid var(--rh-line);padding-left:12px}.rh-result-stats b{font-size:18px;font-weight:400;display:block;color:#cbd4bd}.rh-result-stats span{display:block;font-size:9px;color:#85987b;margin-top:5px}.rh-results>p{font-size:11px;line-height:1.7;color:#9caf8c;margin:20px 0 14px}.rh-result-actions{display:flex;gap:6px;flex-wrap:wrap}.rh-result-actions button{font-size:10px;padding:8px 12px;color:#c9cfb9;background:#ffffff03;border:1px solid #ffffff20}.rh-result-actions button:first-child{border-color:#c8a66e60;color:#d4bd90}body[data-session=rhythm] .player-layout,body[data-session=rhythm] .practice-connection,body[data-session=rhythm] .session-hint,body[data-session=rhythm] .workspace-actions,body[data-session=rhythm] .session-hands,body[data-session=rhythm] #session-bar>.session-tempo{display:none!important}body[data-session=rhythm] .session-bar{grid-template-columns:minmax(200px,1fr) auto}.shared-song #rhythm-panel{display:none!important}
@media(max-width:900px){.rh-layout{grid-template-columns:230px minmax(0,1fr);gap:16px}.rh-setup{padding:18px}.rh-work{padding:22px 18px}.rh-heading h1{font-size:42px}.rh-map-heading i{display:none}.rh-result-stats{gap:5px}.rh-result-stats>div{padding-left:7px}}
@media(max-width:650px){#rhythm-panel{margin-top:20px}.rh-heading{display:block;margin-bottom:20px}.rh-heading h1{font-size:38px}.rh-heading #rh-piece{font-size:11px}.rh-text-button{margin-top:8px;font-size:11px}.rh-layout{grid-template-columns:1fr;gap:16px}.rh-setup{display:grid;grid-template-columns:1fr 1fr;gap:12px 14px;padding:18px}.rh-setup>.rh-step-label:first-child{grid-column:1 / -1;margin-bottom:0}.rh-range{grid-column:1;grid-row:2}.rh-phrase-nav{grid-column:1;grid-row:3;margin:0}.rh-setup>label:not(.rh-tempo-label){grid-column:2;grid-row:2;margin:0;font-size:10px}.rh-setup>.rh-micro{grid-column:2;grid-row:3;margin:0;font-size:9px}.rh-setup>.rh-step-label:not(:first-child){grid-column:1 / -1;margin:8px 0 0}.rh-exercises{grid-column:1 / -1;grid-template-columns:1fr 1fr}.rh-exercises button{padding:10px 8px;gap:7px}.rh-exercises b{font-size:10px}.rh-exercises small{font-size:8px;line-height:1.5}.rh-exercise-icon{width:20px;font-size:23px}.rh-tempo-label{grid-column:1 / -1;margin:7px 0 0!important}.rh-presets{grid-column:1 / -1;margin-top:-5px}.rh-options{grid-column:1 / -1;margin-top:0;padding-top:10px}.rh-work{padding:22px 16px 18px}.rh-session-top h2{font-size:24px}.rh-chip{font-size:8px;padding:6px 8px}.rh-counting{margin:24px 0 18px}.rh-beats{gap:10px}.rh-beats>span{width:35px;height:35px}.rh-actions{gap:8px}.rh-actions button{font-size:11px;padding:10px 14px}.rh-tap-pad{height:146px}.rh-map-heading{font-size:7px}.rh-result-heading h3{font-size:20px}.rh-result-stats b{font-size:16px}.rh-result-stats span{font-size:8px}body[data-session=rhythm] .session-bar{display:flex;flex-wrap:wrap;gap:14px}.mode-switch #rhythm-mode{padding-left:10px;padding-right:10px}.rh-result-actions button{flex:1 1 auto}}
@media(prefers-reduced-motion:reduce){.rh-tapped,.rh-tapped .rh-tap-ring{animation:none}.rh-beats>span,.rh-tap-pad{transition:none}}
.rh-setup-container{min-width:0}.rh-setup-container>summary{display:none}body[data-session=rhythm]>header{min-height:64px;padding:10px 32px}body[data-session=rhythm]>header .badge,body[data-session=rhythm]>header>.small{display:none}body[data-session=rhythm]>header .account-link{margin-left:auto;color:#a9af9b}#rhythm-panel{margin-top:18px}.rh-heading{margin-bottom:20px}.rh-heading h1{font-size:44px;margin-bottom:8px}.rh-eyebrow{margin-bottom:8px}.rh-counting{margin:18px 0}.rh-work{padding-top:22px}.rh-map svg{height:135px}.rh-tap-pad{height:122px}.rh-actions{margin:10px 0 16px}.rh-work #rh-map-description{margin:8px 0 12px}
@media(max-width:650px){.rh-setup-container>summary{display:flex;justify-content:space-between;align-items:center;gap:12px;list-style:none;cursor:pointer;border:1px solid #c8a66e40;border-radius:9px;padding:14px;background:#1b2418;font-size:11px;color:#c3ccb4}.rh-setup-container>summary>span+span{font-size:10px;color:#cbb681;white-space:nowrap}.rh-setup-container[open]>summary{border-radius:9px 9px 0 0}.rh-setup-container[open] .rh-setup{border-radius:0 0 12px 12px;border-top:0}.rh-heading h1{font-size:36px}.rh-heading{margin-bottom:16px}.rh-layout{gap:12px}.rh-work{padding-top:20px}.rh-tap-pad{height:138px}body[data-session=rhythm]>header{padding:10px 16px}body[data-session=rhythm]>header .account-link{font-size:10px}}
