.skip-link { position: absolute; top: -70px; left: 16px; padding: 12px; background: white; z-index: 10; }
.skip-link:focus { top: 10px; }
:focus-visible { outline: 3px solid #b84b00; outline-offset: 5px; }
.language-switch a { padding: 12px 6px; color: #514e48; }
.language-switch [aria-current] { font-weight: 800; text-decoration-thickness: 3px; }
.learn-main { max-width: 1060px; padding-top: 35px; }
.learn-main h1 { font-size: clamp(32px, 5vw, 64px); line-height: 1.15; letter-spacing: -.035em; max-width: 820px; margin-bottom: 24px; }
.learn-main .eyebrow { color: #9a4000; }
.lede { font-size: 18px; line-height: 1.8; max-width: 750px; }
.learn-hero { padding: 36px 0 46px; }
.primary-link, #play { display: inline-block; background: #191815; color: white; border: 0; border-radius: 8px; padding: 16px 24px; font-weight: 700; text-decoration: none; cursor: pointer; }
.free-label { margin: 22px 0 16px; font-size: 14px; color: #55514a; }
.pattern-card { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 34px; padding: 32px; background: var(--card); border: 1px solid var(--line); border-radius: 16px; text-decoration: none; }
.pattern-card h2, .app-cta h2 { font-size: 28px; line-height: 1.3; }
.pattern-card p, .app-cta p { line-height: 1.8; }
.pattern-card img { width: 100%; height: auto; border-radius: 8px; }
.pattern-card span { text-decoration: underline; font-weight: 700; }
.back { display: inline-block; margin-bottom: 30px; padding: 8px 0; }
.practice { background: var(--card); border: 1px solid var(--line); border-radius: 16px; padding: 26px 36px; }
.practice .free-label { margin-top: 0; }
.score-paper { background: white; border-radius: 10px; text-align: center; padding: 18px; }
.score-paper img { display: block; width: min(100%, 580px); height: auto; margin: auto; }
.sticking { font-size: 18px; font-weight: 700; letter-spacing: .3em; text-align: center; margin: 18px 0; }
.player-controls { display: flex; gap: 16px; align-items: center; flex-wrap: wrap; }
#tempo { font: inherit; width: 90px; min-height: 48px; padding: 10px; border: 1px solid #817b70; border-radius: 8px; background: white; color: var(--ink); }
#play { min-width: 100px; min-height: 48px; }
#play[aria-pressed="true"] { background: #9a4000; }
.audio-note { font-size: 14px; line-height: 1.7; margin: 20px 0 0; color: #55514a; }
.tip { padding: 24px 0; line-height: 1.8; }
.app-cta { display: flex; align-items: center; justify-content: space-between; gap: 32px; border-top: 1px solid var(--line); padding: 40px 0; margin-top: 40px; }
.app-cta .store-button { min-width: 145px; justify-content: center; }
.app-cta > div:first-child { max-width: 560px; }
@media(max-width: 650px) { .wrap { width: calc(100% - 32px); } .topbar { height: 78px; } .learn-main { padding-top: 18px; } .learn-hero { padding-top: 20px; } .pattern-card { grid-template-columns: 1fr; padding: 24px; } .practice { padding: 22px 16px; } .score-paper { padding: 8px; } .player-controls { gap: 12px; } #status { flex-basis: 100%; } .app-cta { flex-direction: column; align-items: stretch; } .footer { gap: 20px; } }
@media(prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
