.rhythms-page{font-size:16px;padding:0;background:var(--paper);--rh-ring:#28614d;--rh-cell:#faf9f5;--chord-dot:#173c34}
:root[data-theme=dark] .rhythms-page{--rh-ring:#a7d4a8;--rh-cell:#24372e;--chord-dot:#a7d4a8}
.rhythms-page .container{width:min(1200px,calc(100% - 48px));max-width:1200px}
.rhythms-page .site-header,.rhythms-page .site-header.scrolled{height:64px;margin:0;background:var(--white)}
.rhythms-page .header-inner,.rhythms-page .site-header.scrolled .header-inner{min-height:64px;height:64px}
.rhythms-page .brand-name{font-size:26px}.rhythms-page .brand-mark{width:26px;height:37px}.rhythms-page .brand-caption{font-size:9px}
.rhythms-page .primary-nav{gap:26px}.rhythms-page .primary-nav a{font-size:14px}.rhythms-page .songbook-button{font-size:12px}
.rhythms-page .primary-nav a{position:relative}.rhythms-page .primary-nav a:after{content:'';position:absolute;bottom:-5px;left:0;width:100%;height:1px;background:var(--rh-ring);transform:scaleX(0);transition:transform .16s}
.rhythms-page .primary-nav a:hover:after{transform:scaleX(1)}
.rhythms-page h1{font-size:25px;line-height:1.25;letter-spacing:-.025em}.rhythms-page h2{font-size:22px;line-height:1.3;letter-spacing:-.02em}.rhythms-page h3{font-size:16px;line-height:1.4;letter-spacing:0}
.rhythms-page ::selection{background:var(--sage);color:var(--ink)}.rhythms-page [hidden]{display:none!important}
.rhythms-page :is(button,a,input,summary):focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.rhythms-page button{touch-action:manipulation}.rhythms-page .icon{flex:none}.rhythms-page button{font-family:inherit}
.rh-main{padding-top:28px;padding-bottom:48px}.rh-main .breadcrumbs{display:flex;gap:16px;align-items:center;font-size:12px;line-height:18px;color:var(--muted)}
.rh-intro{position:relative;margin:16px 0 32px;min-height:65px;padding-right:220px}.rh-intro p{font-size:16px;line-height:24px;margin-top:10px}.rh-intro img{position:absolute;right:0;top:-29px;width:200px;height:133px;object-fit:contain;transform:translate(var(--art-x,0px),var(--art-y,0px));transition:transform .2s}
.rh-workspace{display:grid;grid-template-columns:minmax(0,840px) 336px;gap:24px;align-items:stretch}
.rh-tool,.rh-practice{min-width:0;padding:18px 24px 20px;background:var(--white);border:1px solid var(--line);border-radius:12px;min-height:526px}
.rh-tool{box-shadow:var(--shadow);scroll-margin-top:88px;position:relative}.rh-tool-title{display:flex;align-items:center;justify-content:space-between;min-height:26px;gap:12px}
.rh-tool-title h2{font-size:18px;font-weight:600}.rh-heart{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;flex:none;border-radius:50%;color:var(--accent);margin:-9px -10px -9px 0}
.rh-heart .icon{width:20px;height:20px;transition:fill .16s,transform .16s;fill:transparent}.rh-heart.is-saved .icon{fill:var(--accent);color:var(--accent)}
.rh-tool-meta{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:8px;min-height:44px}.rh-tool-meta>div:first-child{display:flex;gap:8px;align-items:center}
.rh-pill{display:inline-flex;align-items:center;min-height:24px;padding:3px 10px;border-radius:5px;background:var(--sage);font-size:12px;color:var(--ink);font-weight:500}.rh-pill-paper{background:var(--paper);color:var(--muted)}
.rh-notation{display:flex;align-items:center;gap:18px}.rh-notation>span{font-size:12px;color:var(--muted)}.rh-how-link{display:none}
.rh-tabs{position:relative;display:flex;background:var(--paper);border:1px solid var(--line);border-radius:7px;padding:3px;isolation:isolate}
.rh-tabs:before{content:'';position:absolute;top:3px;bottom:3px;left:3px;width:calc(50% - 3px);background:var(--white);border-radius:5px;z-index:-1;transform:translateX(var(--tab-x,0%));transition:transform .16s ease,background .18s}
.rh-tabs button{min-height:36px;flex:1;padding:6px 12px;font-size:12px;white-space:nowrap;color:var(--muted);font-weight:500;background:transparent;border:0}
.rh-tabs button[aria-pressed=true]{color:var(--rh-ring)}.rh-notation .rh-tabs{width:166px}.rh-mode-tabs{margin-top:14px}.rh-mode-tabs:before{background:var(--green)}.rh-mode-tabs button[aria-pressed=true]{color:#fff}
.rh-grid{display:grid;grid-template-columns:repeat(var(--slots),minmax(0,1fr));background:var(--rh-cell);border-radius:8px;padding:4px 0;min-width:0;height:100px;overflow:hidden}
#rh-main-grid{margin-top:18px}.rh-cell{position:relative;display:flex;align-items:center;flex-direction:column;justify-content:flex-start;gap:16px;min-width:0;border-radius:6px;padding:10px 2px;transition:background .08s}
.rh-cell small{font-size:13px;line-height:18px;color:var(--muted);font-weight:500}.rh-cell.rh-group-start:before{content:'';position:absolute;left:0;top:12px;bottom:12px;border-left:1px solid var(--line)}
.rh-cell.is-active{background:var(--sage)}.rh-cell.is-active small{color:var(--rh-ring)}.rh-cell[data-kind=X].is-active{background:var(--peach)}
.rh-cell>em{position:absolute;bottom:6px;width:4px;height:4px;border-radius:50%;background:var(--accent)}
.rh-stroke{display:flex;align-items:center;justify-content:center;height:30px;color:var(--rh-ring)}.rh-stroke .icon{width:30px;height:30px;stroke-width:1.8}.rh-stroke[data-direction=X]{color:var(--accent)}
.rh-letter{font-size:24px;line-height:30px;font-weight:500;color:var(--rh-ring)}.rh-cell[data-kind=X] .rh-letter{color:var(--accent)}.is-ghost{opacity:.27}.rh-dot{display:block;width:4px;height:4px;background:var(--muted);opacity:.6;border-radius:50%}
.rh-cell.is-striking .rh-stroke[data-direction=D]{animation:rh-down .11s ease-out}.rh-cell.is-striking .rh-stroke[data-direction=U]{animation:rh-up .11s ease-out}.rh-cell.is-striking .rh-stroke[data-direction=X]{animation:rh-hit .09s ease-out}
.rh-legend{display:flex;align-items:center;gap:48px;margin-top:18px;min-height:24px;font-size:12px;color:var(--muted)}.rh-legend>span{display:flex;align-items:center;gap:10px}.rh-legend .icon{width:18px;height:18px;color:var(--rh-ring)}.rh-legend [data-legend=X] .icon{color:var(--accent)}.rh-legend i{width:4px;height:4px;background:var(--muted);border-radius:50%;margin-inline:7px}
.rh-ghost-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px;min-height:24px}.rh-ghost-row>small{font-size:11px;color:var(--muted);text-align:right}
.rh-check{display:inline-flex;align-items:center;gap:9px;font-size:12px;line-height:18px;cursor:pointer;min-height:28px;position:relative}.rhythms-page .rh-check input{width:18px;height:18px;min-width:18px;accent-color:var(--green);margin:0;cursor:pointer}.rh-check:has(input:disabled){opacity:.6;cursor:default}
.rh-primary,.rh-secondary{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:9px 14px;font-size:13px;font-weight:500;border-radius:7px;line-height:20px;border:1px solid var(--line);background:var(--white);color:var(--ink);text-decoration:none;transition:background .16s,border-color .16s,transform .12s,box-shadow .16s}
.rh-primary{background:var(--green);color:#fff;border-color:var(--green)}.rh-primary .icon,.rh-secondary .icon{width:18px;height:18px}.rh-primary:active,.rh-secondary:active{transform:translateY(1px)}
.rh-secondary[aria-pressed=true]{background:var(--sage);border-color:var(--sage)}.rh-transport{display:flex;align-items:center;gap:26px;margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}
#rh-play{width:154px;flex:none}.rh-tempo{display:flex;align-items:center;gap:14px}.rh-square{width:44px;height:44px;padding:0;font-size:20px!important}.rh-tempo label{position:relative;display:flex;align-items:baseline;gap:6px}
#rh-bpm{width:60px;min-width:0;text-align:center;background:transparent;color:var(--ink);font:600 30px/40px Golos,sans-serif;border:0;border-radius:5px;padding:0;appearance:textfield;-moz-appearance:textfield;font-variant-numeric:tabular-nums}
#rh-bpm::-webkit-inner-spin-button,#rh-bpm::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.rh-tempo label>span{font-size:11px;color:var(--muted)}
.rh-quick{display:flex;gap:10px;margin-left:auto}.rh-quick button{min-width:62px}.rh-range{position:relative;margin-top:16px;height:40px}.rh-range>div{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);line-height:16px;margin-top:3px}
.rhythms-page input[type=range]{appearance:none;-webkit-appearance:none;background:linear-gradient(to right,var(--rh-ring) 0 var(--range,25%),var(--line) var(--range,25%) 100%);height:4px;border:0;border-radius:3px;padding:0;margin:10px 0;width:100%;cursor:pointer;accent-color:var(--rh-ring)}
.rhythms-page input[type=range]::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:14px;height:14px;border-radius:50%;background:var(--rh-ring);border:0;transition:transform .12s}
.rhythms-page input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--rh-ring);border:0}
#rh-range-tip{position:absolute;top:-24px;left:var(--tip,22%);transform:translateX(-50%);pointer-events:none;opacity:0;background:var(--ink);color:var(--white);border-radius:5px;padding:3px 7px;font-size:11px;white-space:nowrap;transition:opacity .12s}.rh-range:focus-within #rh-range-tip{opacity:1}
.rh-pending{position:absolute;bottom:78px;left:24px;font-size:11px;color:var(--accent);background:var(--white);padding-inline:3px}
.rh-options{display:flex;align-items:center;gap:22px;margin-top:8px;min-height:28px}.rh-volume{display:flex;align-items:center;gap:10px;margin-left:auto;min-width:100px;max-width:140px}.rh-volume>.icon{width:19px;height:19px;color:var(--muted)}.rh-settings-button{display:none}
.rh-tool-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:22px;margin-top:10px;font-size:12px;color:var(--muted)}.rh-share{display:flex;align-items:center;gap:8px;color:var(--ink);font-size:12px;min-height:32px}.rh-share .icon{width:17px;height:17px}.rh-error{background:var(--peach);color:var(--ink);padding:12px;border-radius:7px;font-size:13px;margin-top:14px}
.rh-practice{padding:18px 20px 20px;display:flex;flex-direction:column}.rh-practice h2{font-size:18px}.rh-practice-body{flex:1}#rh-practice-body{display:flex;flex-direction:column;flex:1;min-height:406px}
.rh-single-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:16px;font-size:12px;color:var(--muted)}.rh-single-heading button{min-width:70px;padding-inline:12px;gap:14px}.rh-single-heading button .icon{width:14px;height:14px}
.rh-single-diagram{text-align:center;margin-top:9px;color:var(--rh-ring)}.rh-single-diagram .chord-svg{width:135px;height:159px;max-width:100%}.rh-start-hint{text-align:center;font-size:13px;color:var(--rh-ring);margin-top:6px}
.rh-steps{list-style:none;padding:16px 0 0;margin:16px 0 0;border-top:1px solid var(--line);counter-reset:steps;display:grid;gap:10px;font-size:12px;color:var(--muted)}.rh-steps li{display:flex;align-items:center;gap:11px;counter-increment:steps}.rh-steps li:before{content:counter(steps);display:flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:50%;background:var(--sage);font-size:10px;color:var(--rh-ring);flex:none}
.rh-metro-link{width:100%;margin-top:auto;flex:none}.rh-practice .rh-metro-link{margin-top:auto}.rh-sequence{display:flex;align-items:center;gap:5px;margin-top:12px}.rh-sequence>button{min-width:40px;min-height:44px;font-size:16px;color:var(--muted);font-weight:600;position:relative}.rh-sequence>span{color:var(--muted);font-size:13px}.rh-sequence>button.is-current{color:var(--rh-ring)}.rh-sequence>button.is-current:after{content:'';position:absolute;bottom:5px;left:8px;right:8px;height:1px;background:var(--rh-ring)}
.rh-chord-pair{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}.rh-chord-pair>div{display:flex;flex-direction:column;align-items:center;min-width:0;border-radius:8px;padding:12px 5px 0;color:var(--muted)}.rh-chord-pair>div:first-child{background:var(--sage);color:var(--rh-ring)}.rh-chord-pair>div>span{font-size:12px;font-weight:500}.rh-chord-pair .chord-svg{width:118px;height:139px;max-width:100%}.rh-chord-pair .chord-label{font-size:22px}.rh-chord-pair .chord-dot{transition:fill .12s}.rh-chord-pair .is-next>span{color:var(--accent)}
.rh-every{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:12px}.rh-every>span{font-size:12px;color:var(--muted)}.rh-every>div{display:flex;gap:8px}.rh-every button{padding-inline:9px;font-size:12px}
.rh-practice-status{padding:12px 14px;background:var(--rh-cell);border-radius:7px;margin:14px 0 16px}.rh-practice-status strong{display:block;font-size:13px;font-weight:500}.rh-practice-status small{display:block;font-size:11px;color:var(--muted);margin-top:4px}
.rh-section{margin-top:48px}.rh-section>h2,.rh-section-heading{margin-bottom:24px}.rh-section-heading{display:flex;justify-content:space-between;gap:12px;align-items:center}.rh-section-heading>span{font-size:13px;color:var(--muted)}
.rh-filters{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:22px}.rh-search{display:flex;align-items:center;gap:12px;min-height:44px;background:var(--white);border:1px solid var(--line);border-radius:7px;padding:0 12px;flex:1;min-width:230px}.rh-search>.icon{width:18px;height:18px;color:var(--muted)}.rh-search input{border:0;background:transparent;font:14px Golos,sans-serif;color:var(--ink);width:100%;min-width:0;height:42px;padding:0}.rh-search input:focus{outline:none}.rh-search:focus-within{border-color:var(--rh-ring);box-shadow:0 0 0 2px color-mix(in srgb,var(--sage),transparent 30%)}.rh-search button{display:flex;align-items:center;justify-content:center;min-width:30px;height:42px}.rh-search button .icon{width:16px;height:16px}
.rh-filters>[data-picker]{gap:12px;min-width:164px;justify-content:space-between}.rh-filters>[data-picker] .icon{width:14px;height:14px}.rh-filter-saved{display:flex;align-items:center;gap:8px;min-height:44px;font-size:12px;font-weight:500;color:var(--ink)}.rh-filter-saved .icon{width:20px;height:20px;color:var(--accent)}.rh-filter-saved[aria-pressed=true]{text-decoration:underline;text-underline-offset:4px}.rh-filter-saved[aria-pressed=true] .icon{fill:var(--accent)}.rh-result-count{font-size:12px;color:var(--muted);margin-top:-9px;margin-bottom:14px}
.rh-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 24px}.rh-card{position:relative;border:1px solid var(--line);background:var(--white);border-radius:10px;padding:16px;min-width:0;transition:transform .16s,box-shadow .16s,border-color .16s;min-height:226px;display:flex;flex-direction:column}
.rh-card.is-selected{border-color:var(--rh-ring)}.rh-card-heading{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:24px}.rh-card h3{font-size:16px;font-weight:600}.rh-card .rh-heart{margin:-10px -12px -10px 0;width:36px;min-width:36px}.rh-card .rh-heart .icon{width:18px;height:18px}.rh-card-meta{font-size:12px;color:var(--muted);margin-top:2px}
.rh-grid-mini{height:62px;margin-top:12px;padding:2px 0}.rh-grid-mini .rh-cell{padding:3px 0;gap:5px;border-radius:4px}.rh-grid-mini .rh-cell small{font-size:10px;line-height:15px}.rh-grid-mini .rh-stroke{height:22px}.rh-grid-mini .icon{width:20px;height:20px}.rh-grid-mini .rh-letter{font-size:16px;line-height:22px}.rh-grid-mini .rh-cell:before{top:9px;bottom:9px}.rh-grid-mini .rh-cell>em{bottom:3px;width:3px;height:3px}
.rh-card-description{font-size:13px;line-height:18px;color:var(--muted);margin-top:12px;min-height:36px}.rh-card-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:auto;padding-top:10px}.rh-card-actions button{padding-inline:8px;white-space:nowrap}.rh-listen{background:var(--sage);border-color:var(--sage)}.rh-card.is-selected .rh-open{background:var(--green);border-color:var(--green);color:#fff}.rh-card .rh-listen[aria-pressed=true]{border-color:var(--rh-ring)}
.rh-empty{grid-column:1/-1;text-align:center;padding:35px 20px;background:var(--white);border:1px solid var(--line);border-radius:10px}.rh-empty p{font-size:14px;margin-top:8px;color:var(--muted)}.rh-empty button{margin-top:18px}
.rh-legend-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}.rh-legend-cards article{background:var(--white);border:1px solid var(--line);border-radius:8px;padding:18px;min-width:0}.rh-legend-icon{width:36px;height:36px;background:var(--sage);color:var(--rh-ring);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;float:left;margin-right:14px;font-size:30px;line-height:1}.rh-legend-icon .icon{width:23px;height:23px}.rh-legend-cards article:last-child .rh-legend-icon{background:var(--peach);color:var(--accent)}.rh-legend-cards h3{font-size:16px;font-weight:500;padding-top:7px}.rh-legend-cards p{clear:both;font-size:14px;line-height:21px;padding-top:16px;color:var(--muted)}
.rh-tip{background:var(--peach);padding:18px 20px;border-radius:9px;margin-top:20px}.rh-tip h3{font-weight:600}.rh-tip p{font-size:14px;line-height:21px;margin-top:9px;color:var(--ink)}
.rh-song-card{display:flex;align-items:center;gap:24px;background:var(--white);border:1px solid var(--line);border-radius:10px;padding:20px;transition:border-color .16s}.rh-song-cover{width:80px;height:80px;display:flex;align-items:center;justify-content:center;background:var(--sage);border-radius:8px;flex:none;color:var(--rh-ring)}.rh-song-cover .icon{width:34px;height:34px}.rh-song-card h3{font-size:16px;font-weight:600}.rh-song-card h3 a:hover{text-decoration:underline}.rh-song-card p{font-size:12px;color:var(--muted);margin-top:7px}.rh-song-card strong{display:block;font-size:13px;font-weight:500;color:var(--rh-ring);margin-top:10px}.rh-song-card .rh-song-pattern{margin-left:auto;margin-right:auto}.rh-song-pattern strong{font-size:14px;margin-top:0}.rh-song-pattern span{display:block;font-size:12px;color:var(--muted);margin-top:8px}.rh-song-card>a{margin-left:auto;flex:none}.rh-song-card>a .icon{transition:transform .16s}
.rh-faq details{background:var(--white);border:1px solid var(--line);border-radius:8px;margin-top:10px}.rh-faq summary{list-style:none;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:14px;font-weight:500;padding:14px 16px;cursor:pointer;min-height:48px}.rh-faq summary::-webkit-details-marker{display:none}.rh-faq summary>span{width:18px;height:18px;position:relative;flex:none}.rh-faq summary>span:before,.rh-faq summary>span:after{content:'';position:absolute;background:var(--muted);left:3px;right:3px;top:8px;height:1.5px}.rh-faq summary>span:after{transform:rotate(90deg);transition:transform .2s}.rh-faq details[open] summary>span:after{transform:rotate(90deg) scaleX(0)}.rh-faq details>p{padding:0 16px 18px;font-size:14px;line-height:21px;color:var(--muted);max-width:1050px}
.rh-tools{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.rh-tools>a{display:flex;align-items:center;gap:16px;background:var(--sage);border-radius:9px;padding:18px 16px;min-height:82px;transition:background .16s,transform .16s}.rh-tools>a>.icon{width:24px;height:24px;color:var(--rh-ring)}.rh-tools>a>.icon:last-child{margin-left:auto;width:18px;height:18px}.rh-tools strong{font-size:16px;font-weight:500;display:block}.rh-tools small{font-size:12px;color:var(--muted);display:block;margin-top:4px}
.rh-dialog{border:1px solid var(--line);border-radius:12px;padding:22px;background:var(--white);color:var(--ink);width:min(400px,calc(100% - 32px));max-height:calc(100dvh - 32px);overflow:auto;box-shadow:var(--shadow)}
.rh-dialog::backdrop{background:#173c3447}.rh-dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.rh-dialog-heading h2{font-size:20px}.rh-dialog-heading>button{width:36px;height:36px;display:flex;align-items:center;justify-content:center;margin:-5px -8px -5px 0;flex:none}.rh-dialog-heading .icon{width:22px;height:22px}.rh-dialog p{font-size:14px;line-height:22px;color:var(--muted)}
#rh-options{display:flex;flex-direction:column;gap:6px}#rh-options button{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-height:48px;text-align:left;padding:10px 38px 10px 12px;border:1px solid transparent;border-radius:7px;background:var(--rh-cell);font-size:14px;color:var(--ink)}#rh-options strong{font-size:14px;font-weight:500}#rh-options small{font-size:12px;color:var(--muted);margin-top:4px}#rh-options .icon{position:absolute;right:13px;top:calc(50% - 9px);width:18px;height:18px;opacity:0;color:var(--rh-ring)}#rh-options [aria-selected=true]{background:var(--sage);border-color:var(--rh-ring)}#rh-options [aria-selected=true] .icon{opacity:1}#rh-picker-apply{display:none;width:100%;margin-top:18px}
.rh-settings-dialog h3{font-size:14px;margin-top:22px;margin-bottom:10px}.rh-settings-dialog .rh-check{display:flex;font-size:14px;min-height:44px}.rh-settings-dialog>.rh-primary{width:100%;margin-top:24px}.rh-settings-dialog>p{font-size:12px;margin-top:12px}.rh-sheet-volume{display:block;margin-top:24px;font-size:14px}.rh-sheet-volume>span{display:flex;justify-content:space-between;gap:12px}.rh-sheet-volume output{color:var(--muted);font-size:13px}.rh-sheet-volume input{margin-block:20px!important}
#rh-share-dialog label{display:block;font-size:13px;margin-top:20px}#rh-share-url{width:100%;font:13px Golos,sans-serif;border:1px solid var(--line);border-radius:6px;background:var(--paper);color:var(--ink);padding:12px;margin-top:6px}#rh-share-copy{margin-top:16px;width:100%}
.rh-toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%,10px);opacity:0;pointer-events:none;z-index:100;background:var(--ink);color:var(--white);font-size:13px;padding:12px 18px;border-radius:8px;max-width:calc(100% - 32px);width:max-content;transition:opacity .16s,transform .16s}.rh-toast.is-visible{opacity:1;transform:translate(-50%,0)}.rh-dock{display:none}
.rh-entering .rh-intro{animation:rh-enter .35s ease-out both}.rh-entering .rh-tool{animation:rh-enter .25s ease-out both}.rh-entering .rh-practice{animation:rh-enter .25s .06s ease-out both}.rh-revealing{animation:rh-enter .22s ease-out}.rh-changing{animation:rh-change .15s ease-out}.rh-saved .icon{animation:rh-save .18s ease-out}.rh-logo-wave [data-logo-string]{animation:rh-string .62s ease both;transform-origin:center}.rh-logo-wave [data-logo-string]:nth-of-type(3){animation-delay:.06s}.rh-logo-wave [data-logo-string]:nth-of-type(4){animation-delay:.12s}.rh-logo-wave [data-logo-string]:nth-of-type(5){animation-delay:.18s}.rh-logo-beat [data-logo-string]{stroke:var(--accent)}
.rh-dialog[open]{animation:rh-panel .16s ease-out}.rh-search.is-hint-changing input::placeholder{opacity:0}.rh-search input::placeholder{transition:opacity .12s}.rh-legend-icon,.rh-legend .icon{transition:transform .16s}
@media(hover:hover) and (pointer:fine){.rh-primary:hover{background:#225346;box-shadow:0 4px 12px #173c3420}.rh-secondary:hover{background:var(--sage);border-color:var(--rh-ring)}.rh-heart:hover{background:var(--peach)}.rh-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:var(--rh-ring)}.rh-range:hover #rh-range-tip{opacity:1}.rhythms-page input[type=range]:hover::-webkit-slider-thumb{transform:scale(1.12)}.rh-legend [data-legend=D]:hover .icon,.rh-legend-cards article:first-child:hover .icon{transform:translateY(2px)}.rh-legend [data-legend=U]:hover .icon,.rh-legend-cards article:nth-child(2):hover .icon{transform:translateY(-2px)}.rh-song-card:hover{border-color:var(--rh-ring)}.rh-song-card:hover>a .icon{transform:translateX(3px)}.rh-tools>a:hover{transform:translateY(-2px)}#rh-options button:hover{border-color:var(--rh-ring)}}
@keyframes rh-enter{from{opacity:.4;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes rh-change{from{opacity:.5}to{opacity:1}}@keyframes rh-save{50%{transform:scale(1.15)}}@keyframes rh-down{50%{transform:translateY(2px)}}@keyframes rh-up{50%{transform:translateY(-2px)}}@keyframes rh-hit{50%{transform:scale(1.08)}}@keyframes rh-string{25%{transform:translateX(1.5px)}50%{transform:translateX(-1px)}75%{transform:translateX(.5px)}}@keyframes rh-panel{from{opacity:.5;transform:translateY(-4px)}to{opacity:1;transform:none}}
@media(max-width:1180px){.rh-workspace{grid-template-columns:minmax(0,1fr) 306px;gap:20px}.rh-tool{padding-inline:18px}.rh-transport{gap:16px;flex-wrap:wrap}.rh-quick{gap:8px}.rh-quick button{min-width:52px}.rh-options{gap:14px;flex-wrap:wrap}.rh-volume{min-width:110px}.rh-ghost-row{align-items:flex-start}.rh-ghost-row>small{max-width:180px}.rh-legend{gap:32px}.rh-sequence{gap:2px}.rh-sequence button{min-width:36px}.rh-legend-cards{gap:16px}.rh-legend-cards h3{font-size:15px}.rh-tools{gap:16px}.rh-song-card{gap:18px}.rh-song-pattern{display:none}}
@media(max-width:900px){.rh-workspace{grid-template-columns:1fr}.rh-practice{max-width:none;min-height:0}.rh-practice-body,#rh-practice-body{min-height:0}.rh-mode-tabs{max-width:380px}.rh-single-heading{max-width:380px}.rh-single-diagram{margin-top:12px}.rh-steps{margin-bottom:22px}.rh-practice .rh-metro-link{max-width:380px;margin-top:20px}.rh-chord-pair{max-width:380px}.rh-every{max-width:380px}.rh-practice-status{max-width:380px}.rh-sequence{gap:9px}.rh-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.rh-legend-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.rh-intro{padding-right:170px}.rh-intro img{width:160px;height:107px;top:-10px}.rh-filters .rh-search{flex-basis:45%}.rh-ghost-row>small{max-width:none}.rh-tools{grid-template-columns:1fr}.rh-tools>a{min-height:78px}}
@media(max-width:740px){.rhythms-page .container{width:calc(100% - 32px);max-width:1200px}.rhythms-page h1{font-size:24px}.rhythms-page .header-actions{gap:2px}.rhythms-page .brand-name{font-size:24px}.rhythms-page .brand-caption{font-size:8px}.rhythms-page .brand-mark{width:23px}.rhythms-page .primary-nav{top:64px}.rh-main{padding-top:22px;padding-bottom:42px}.rh-intro{padding:0;margin:20px 0 30px;min-height:0}.rh-intro p{line-height:23px;margin-top:12px}.rh-intro img{display:none}.rh-workspace{gap:16px}.rh-tool{padding:18px 16px 16px;min-height:0}.rh-tool-title h2{font-size:16px}.rh-tool-meta{display:block;margin-top:12px}.rh-notation{justify-content:space-between;margin-top:24px}.rh-notation>span{display:none}.rh-how-link{display:inline-flex;min-height:44px;align-items:center;font-size:12px;font-weight:500;color:var(--accent)}.rh-notation .rh-tabs{width:164px}#rh-main-grid{margin-top:24px}.rh-legend{display:grid;grid-template-columns:1fr 1fr;gap:12px 24px;margin-top:22px}.rh-ghost-row{margin-top:18px;display:block}.rh-ghost-row>small{display:none}.rh-check{min-height:32px;font-size:13px}.rh-transport{display:grid;grid-template-columns:minmax(110px,1fr) minmax(174px,1.2fr);gap:16px 20px;margin-top:18px;padding-top:20px}#rh-play{width:100%;min-width:0}.rh-tempo{justify-content:space-between;gap:4px}.rh-square{width:44px;flex:none}.rh-tempo label{display:block;text-align:center;min-width:48px}#rh-bpm{width:52px;font-size:25px;line-height:34px}.rh-tempo label>span{position:absolute;top:34px;left:0;right:0;text-align:center;font-size:10px;line-height:15px}.rh-range{margin-top:28px;height:26px}.rh-range>div{display:none}.rh-quick{grid-column:1/-1;grid-row:3;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;width:100%;margin:36px 0 0}.rh-transport{position:relative}.rh-range{margin-top:-80px;margin-bottom:94px;pointer-events:none}.rh-range input{pointer-events:auto}.rh-range output{top:-20px}.rh-options{display:grid;grid-template-columns:1fr 1fr;gap:5px 12px;margin-top:14px}.rh-options>.rh-check:nth-child(2) span{font-size:0}.rh-options>.rh-check:nth-child(2) span:after{content:'Отсчёт';font-size:13px}.rh-options>.rh-check:nth-child(3){grid-column:1}.rh-settings-button{display:flex;align-items:center;justify-content:flex-end;min-height:44px;color:var(--ink)}.rh-settings-button .icon{width:22px;height:22px}.rh-volume{grid-column:1/-1;max-width:160px;width:160px;margin:10px 0 0;min-height:28px}.rh-volume input{width:124px}.rh-tool-footer{margin-top:-29px;padding-left:170px;min-height:28px}.rh-tool-footer>span{font-size:0;text-align:right;width:100%}.rh-tool-footer>span:after{content:'Звучание GCEA';font-size:11px}.rh-tool[data-running=true] .rh-tool-footer{margin-top:10px;padding-left:0}.rh-tool[data-running=true] .rh-tool-footer>span{font-size:11px;text-align:left}.rh-tool[data-running=true] .rh-tool-footer>span:after{display:none}.rh-share{display:none}.rh-pending{position:static;margin:0 0 8px;background:none;font-size:11px}.rh-practice{padding:20px 16px;min-height:0}.rh-practice h2{font-size:18px}.rh-single-heading{margin-top:20px}.rh-single-diagram{margin-top:8px}.rh-single-diagram .chord-svg{width:140px;height:164px}.rh-start-hint{margin-top:4px}.rh-steps{margin-top:20px;padding-top:20px;gap:13px;margin-bottom:22px}.rh-practice .rh-metro-link{margin-top:auto;max-width:none}.rh-mode-tabs{margin-top:18px;max-width:none}.rh-chord-pair{max-width:none}.rh-chord-pair>div{padding-top:12px}.rh-chord-pair .chord-svg{height:151px;width:126px}.rh-sequence{gap:8px;margin-top:16px}.rh-every{max-width:none;margin-top:18px}.rh-practice-status{max-width:none;margin-block:18px 20px}.rh-section{margin-top:42px}.rh-section>h2,.rh-section-heading{margin-bottom:20px}.rh-section-heading>span{display:none}.rh-filters{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}.rh-filters .rh-search{grid-column:1/-1;min-width:0}.rh-filters>[data-picker]{min-width:0;padding-inline:10px;font-size:12px;gap:6px}.rh-filters>.rh-check{font-size:12px}.rh-filter-saved{font-size:12px;gap:8px}.rh-cards{grid-template-columns:1fr;gap:16px}.rh-card{min-height:226px}.rh-card h3{font-size:16px}.rh-card .rh-heart{width:44px;min-width:44px;height:44px;margin-block:-10px}.rh-result-count{margin-bottom:16px}.rh-legend-cards{grid-template-columns:1fr;gap:12px}.rh-legend-cards article{padding:15px 16px;min-height:81px;position:relative;padding-left:64px}.rh-legend-icon{position:absolute;left:14px;top:20px;margin:0}.rh-legend-cards h3{padding-top:0;font-size:16px}.rh-legend-cards p{clear:none;padding-top:5px;font-size:13px;line-height:18px}.rh-tip{padding:18px 16px}.rh-tip p{font-size:14px;line-height:21px}.rh-song-card{display:grid;grid-template-columns:80px 1fr;padding:16px;gap:20px 16px}.rh-song-card>div:not(.rh-song-pattern){grid-column:1/-1}.rh-song-card>.rh-song-pattern{display:block;grid-column:2;grid-row:1;margin:0}.rh-song-pattern strong{font-size:13px}.rh-song-pattern span{font-size:12px;line-height:18px}.rh-song-card>a{grid-column:1/-1;margin:0;width:100%}.rh-song-card>div strong{margin-top:12px}.rh-faq summary{font-size:14px;padding:14px 16px}.rh-faq details>p{font-size:14px}.rh-tools{gap:16px}.rh-dialog{width:100%;max-width:100%;margin:auto 0 0;max-height:calc(100dvh - 20px);border-radius:16px 16px 0 0;padding:30px 20px 20px}.rh-dialog:before{content:'';position:absolute;top:11px;left:calc(50% - 24px);height:4px;width:48px;background:var(--line);border-radius:3px}.rh-dialog[open]{animation:rh-sheet .24s ease-out}.rh-dialog-heading h2{font-size:20px}.rh-dialog-heading>button{height:44px;width:44px}#rh-picker-apply{display:flex}#rh-options button{min-height:54px}.rh-settings-dialog .rh-check{min-height:44px}.rh-settings-dialog h3{margin-top:18px}.rh-sheet-volume{margin-top:22px}.rh-dock{position:fixed;bottom:0;left:0;right:0;display:flex;gap:12px;align-items:center;justify-content:space-between;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:var(--white);border-top:1px solid var(--line);box-shadow:0 -4px 18px #173c3410;z-index:45}.rh-dock>div{min-width:0}.rh-dock strong{display:block;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rh-dock span{display:block;font-size:11px;color:var(--muted);margin-top:2px}.rh-dock button{flex:none;min-height:44px}.rh-has-dock{padding-bottom:calc(72px + env(safe-area-inset-bottom))}.rh-has-dock .back-top{bottom:90px}.rh-toast{bottom:90px}.rh-tools>a{min-height:82px}}
@media(max-width:370px){.rh-transport{gap:14px;grid-template-columns:minmax(96px,1fr) minmax(164px,1.3fr)}.rh-tempo .rh-square{width:40px;padding:0}.rh-tool-title h2{font-size:15px}.rh-sequence{gap:4px}.rh-tool-footer{padding-left:160px}.rh-card-actions{gap:8px}.rh-card-actions button{font-size:12px}.rh-filters>[data-picker]{font-size:11px}.rh-notation{gap:12px}.rh-legend{gap:12px}.rh-options{gap:5px}.rh-tool{padding-inline:14px}.rh-tools small{font-size:11px}}
@keyframes rh-sheet{from{opacity:.6;transform:translateY(20px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.rhythms-page *,.rhythms-page *:before,.rhythms-page *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.rh-card:hover,.rh-intro img,.rh-primary:active,.rh-secondary:active,.rh-tools>a:hover{transform:none!important}}
@media print{.rhythms-page .site-header,.rh-workspace,.song-footer,.rh-dialog,.rh-dock,.back-top,.rh-filters{display:none!important}.rhythms-page{background:white;color:#222}.rh-cards{grid-template-columns:repeat(2,1fr)}.rh-card{break-inside:avoid}}

/* One control grid keeps tempo, range and presets in document order. */
.rh-controls{display:grid;grid-template-columns:154px minmax(220px,auto) 1fr;align-items:center;gap:16px 26px;margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}
.rhythms-page .rh-transport{display:contents}
.rh-controls .rh-range{grid-column:1/-1;grid-row:2;margin:0;height:40px;pointer-events:auto}
.rh-controls .rh-quick{grid-column:3;grid-row:1;margin:0;justify-content:flex-end}
@media(max-width:1180px){.rh-controls{grid-template-columns:140px minmax(200px,1fr);gap:16px}.rh-controls .rh-quick{grid-column:1/-1;grid-row:3;justify-content:center}.rh-controls .rh-range{grid-row:2}}
@media(max-width:740px){.rh-controls{grid-template-columns:minmax(110px,1fr) minmax(174px,1.2fr);gap:20px 20px;padding-top:20px}.rh-controls .rh-range{grid-column:1/-1;grid-row:2;margin:6px 0 0;height:22px}.rh-controls .rh-quick{grid-column:1/-1;grid-row:3;margin:0;justify-content:stretch;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.rh-controls .rh-quick button{min-height:44px}.rh-controls .rh-tempo{min-width:0}}
@media(max-width:370px){.rh-controls{grid-template-columns:minmax(90px,1fr) minmax(172px,1.4fr);gap:20px 10px}.rh-controls .rh-tempo .rh-square{width:44px}}

@media(max-width:740px){.rh-options .rh-settings-button{grid-column:2;grid-row:2}.rh-options .rh-volume{grid-column:1/-1;grid-row:3}}

/* Mobile spacing follows the approved 390px mockup. */
@media(max-width:740px){
 .rh-tool-meta{margin-top:8px}.rh-notation{margin-top:16px}#rh-main-grid{margin-top:20px}
 .rh-legend{margin-top:16px;gap:8px 24px}.rh-ghost-row{margin-top:10px}
 .rh-controls{margin-top:14px;padding-top:14px;row-gap:12px}
 .rh-options{margin-top:10px;row-gap:0}.rh-options .rh-volume{margin-top:10px}
 .rh-practice .rh-mode-tabs{margin-top:14px}.rh-single-heading{margin-top:12px}
 .rh-single-diagram{margin-top:2px}.rh-single-diagram .chord-svg{width:120px;height:140px}
 .rh-start-hint{margin-top:0}.rh-steps{margin-top:12px;padding-top:12px;gap:10px;margin-bottom:14px}
 .rh-search button{min-width:44px;height:44px}
}
.rh-card .rh-heart{width:44px;min-width:44px}

.rh-mobile-share{width:100%;margin-top:20px}
