/* Tabfun — warm paper, dark ink, a little orange. */
:root{--bg:#faf7f2;--paper:#fff;--ink:#1f2937;--muted:#7d8188;--line:#ece7df;--green:#ea791b;--light:#fff0df;--orange:#fa9430}body{background:var(--bg);color:var(--ink);font-family:Inter,-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif}main{margin:0 auto;max-width:1328px;padding:0 48px 30px}.site-header{height:90px;gap:40px;border-bottom:1px solid var(--line)}.brand{gap:10px;letter-spacing:0;flex-shrink:0}.brand-icon{display:block;width:46px;height:46px;position:relative;overflow:hidden;border-radius:12px;background:#f4eadd}.brand-icon img{display:block;width:100%;height:100%;object-fit:contain}.brand-wordmark{font-size:28px;line-height:1;font-weight:800;letter-spacing:-1.1px;color:#171d24}.brand-wordmark small{font-size:15px;letter-spacing:.2px;margin-top:3px;font-weight:750}.desktop-nav{display:flex;gap:26px;margin-right:auto;height:100%;align-items:center}.desktop-nav .nav{font-size:13px;padding:12px 0;white-space:nowrap;border-radius:0;color:#6b7079;position:relative}.desktop-nav .nav.active{background:none;color:#e77820}.desktop-nav .nav.active:after{content:'';height:2px;position:absolute;bottom:0;left:20%;right:20%;background:#fa9430}.header-actions{gap:12px}.header-actions .button{white-space:nowrap;padding:9px 13px}.language-control select{border:0;background:transparent;font-size:12px;color:#5f6670;max-width:86px;cursor:pointer}.button{border-color:#e8e2da;border-radius:7px}.button.primary,.primary,.vision-confirm-action{background:#ef8426!important;border-color:#ef8426!important}.import-trigger{background:#ef8426;border-color:#ef8426;box-shadow:0 3px 8px #e9812220}.icon-button{color:#65707d}.discovery-hero{position:relative;margin-top:28px;height:350px;overflow:hidden;border-radius:16px;background:#eee0cb url('assets/riffly-hero.png') center/cover no-repeat}.hero-copy{position:relative;padding:40px 46px;width:63%;z-index:1}.hero-copy .eyebrow{color:#8a7153;font-size:10px;letter-spacing:2px}.hero-copy h1{font-family:inherit;font-size:46px;font-weight:750;line-height:1.3;letter-spacing:1px;margin:18px 0 14px;color:#252829}.hero-copy h1 span{display:block}.hero-copy p{font-size:14px;letter-spacing:2px;margin:0 0 8px;color:#343941}.hero-copy small{color:#72716c;font-size:11px;letter-spacing:1px}.hero-cta{display:flex;gap:24px;align-items:center;margin-top:22px;background:#fffaf4;border:1px solid #fffc;border-radius:7px;padding:11px 18px;color:#474138;font-size:12px;box-shadow:0 3px 15px #372a1010}.hero-cta span{color:#e77e24;font-size:20px;line-height:1}.hero-caption{position:absolute;bottom:20px;right:26px;font-size:8px;color:#fffaf0;letter-spacing:1.8px}.feature-row{display:grid;grid-template-columns:repeat(4,1fr);margin:24px 0 38px;gap:14px}.feature-row button{display:flex;align-items:center;text-align:left;gap:14px;border:1px solid var(--line);border-radius:12px;padding:19px;background:#ffffff9c}.feature-icon{display:grid;place-items:center;flex:0 0 42px;height:42px;border-radius:50%;background:#fff0df;color:#e77e24;font-size:23px}.feature-row b{display:block;font-size:13px;font-weight:600}.feature-row small{display:block;font-size:10px;color:#8b8d91;margin-top:7px}.feature-row i{font-style:normal;color:#b2aaa0;margin-left:auto}.library-heading{display:flex;justify-content:space-between;align-items:center;gap:30px;scroll-margin-top:25px}.library-heading h2{font-size:24px;margin:8px 0 10px;letter-spacing:.5px}.library-heading p{font-size:12px;color:var(--muted);margin:0}.eyebrow{color:#b28963;font-size:9px;letter-spacing:2px}.library-controls{display:flex;align-items:center;position:relative;margin:0;flex:0 1 340px}.library-controls>span{position:absolute;left:15px;top:9px;font-size:25px;color:#9a9da2}.library-controls input{min-width:0;padding:13px 15px 13px 42px;background:#fff;border-color:var(--line);border-radius:24px;font-size:12px}.community-toolbar{margin:26px 0 20px}.filters button{border:0;background:none;border-radius:5px;font-size:12px;padding:9px 16px}.filters .selected{background:#ffeddd;color:#dd7020}.song-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));columns:auto;gap:22px;align-items:start}.score-card{margin:0;border:1px solid #ebe5dd;border-radius:13px;box-shadow:0 4px 14px #27211603}.score-card:hover{box-shadow:0 10px 25px #7b4e1710;transform:translateY(-3px)}.score-cover{height:228px;min-height:0;padding:26px;color:#fff;background:#4f4638}.score-cover:has(img){height:228px;max-height:228px}.score-cover img{height:100%;object-fit:cover;object-position:top}.editorial-card .score-cover{background:linear-gradient(90deg,#302719bb,#30271910),url('assets/riffly-hero.png') 83% center/auto 125%}.editorial-card:nth-child(2) .score-cover{background-position:67% center}.editorial-card:nth-child(3) .score-cover{background-position:100% center}.cover-kicker{font-size:10px;letter-spacing:1px;color:#fff5e4}.cover-title{font-size:25px;font-family:'Songti SC',Georgia,serif;color:#fffaf1;max-width:85%;margin:22px 0 8px}.cover-staff{font-size:45px;color:#ffc58e;opacity:.6}.cover-caption{color:#fff5e6}.score-visibility{background:#fff9;color:#614d35;font-size:9px;padding:4px 9px}.score-card-body{padding:17px 18px}.score-card-title{color:#242c34;font-size:15px}.score-description{color:#96989c;font-size:11px;margin:7px 0 12px;-webkit-line-clamp:2;min-height:38px}.score-author{color:#85878d;font-size:10px;margin:13px 0}.avatar{background:#f5ece0;color:#9e794c}.score-stats{border-color:#f1ece6;color:#9c9fa4}.score-stats button{font-size:12px;color:#979ba2}.score-stats button.is-active{color:#ef8124}.publish-action{background:#fff2e5;color:#b56b2c}.delete-action{color:#a18a7c}.library-note{color:#9a9b9f;font-size:10px;line-height:1.8}.site-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding-top:25px;margin-top:45px;font-size:10px;color:#a09b94;letter-spacing:.3px}.site-footer b{color:#77716b;font-weight:600}.local-badge{display:block;border:0;padding:0;font-size:10px;color:#9c9c96}body[data-view=mine] .discovery-hero,body[data-view=mine] .feature-row{display:none}body[data-view=mine] .library-heading{margin-top:42px}.intro{padding:30px 0 24px}.intro h1{font-size:26px;letter-spacing:.3px;color:#29303a}.intro p{color:#94969a}.intro-stamp{transform:none;border:0;border-radius:0;font-size:10px;letter-spacing:2px;color:#afa89e;text-align:right;padding:0}.practice-grid{grid-template-columns:minmax(0,1fr) 252px;gap:22px}.score-panel,.settings{border-color:var(--line);border-radius:13px;box-shadow:0 3px 12px #21212102}.score-panel{container-type:inline-size}.song-cover{background:#fff2e5;color:#e88a37;border-color:#f4ddc6}.song-heading{padding:23px 20px}.song-info h2{font-weight:700;color:#252d35}.mini-label{color:#9a9ca0}.mini-label span{background:#fff0e2;color:#d77c2e}.score-toolbar{background:#fffdfa;color:#85888d;border-color:var(--line)}.score-toolbar select,.field select{color:#6f747b}.check{color:#7e858d}.score-foot{color:#9b9ca0}.green-dot{background:#f3a559}.score-viewport{height:495px}.settings{padding:22px}.settings section{border-color:var(--line)}.settings-title span{color:#f69b47}.setting-label>span{background:#fff1e4;color:#d88135}.tempo button{background:#fffcf8}.tempo strong{color:#343b44}.tempo div>span,.range-labels,.field,.volume,.loop-range label,.loop-caption,.setting-help{color:#92969d}.field select,.loop-range input{background:#fffcf9;border-color:#ece5dc;color:#5d6570}.presets .selected{background:#fff1e4;border-color:#f5cfaa;color:#d47a2b}.switch input:checked+span{background:#f4953d}.beat-dots i.on{background:#f6973a;box-shadow:0 0 0 3px #fff1e2}.loop-apply{color:#cd7428;background:#fff5ea;border-color:#f1dfcc}.play-button{background:#f18a2c;box-shadow:0 3px 10px #ef84262b}.player .icon-button{color:#676e76}.player .timeline{color:#999da2}.player .player-speed{color:#b4845a}.at-cursor-beat{background:#f39336}.at-highlight *{fill:#d87925;stroke:#d87925}.at-cursor-bar{background:#fba03b12}.practice-note{color:#777e87}.practice-note p{color:#9a9da2}.practice-note>span:first-child{color:#f69a43}.photo-controls{background:#fffbf6;border-color:#eee8df;color:#9d815f}.photo-playhead{background:#ee8b27}.photo-controls .button{font-size:11px}.vision-header{background:#fff}.vision-header h2{color:#29303a}.vision-status{background:#faf6ef;color:#97764e}.vision-left{background:#f8f5ef}.vision-stats{background:#fff1e2;color:#8e592d}.vision-stats small{color:#9a806a}.vision-progress{background:#fff9f1}.vision-progress>div{color:#a86e38}.vision-progress progress{accent-color:#ef8b2e}.vision-page-label,.vision-help,.vision-page-heading{color:#8d8983}.vision-footer{background:#fffdfa}.vision-save-summary{color:#76716b}.vision-box{border-color:#b8c6b4}.vision-box.selected{border-color:#ea8c33}.vision-tools .button{border-color:#e7dfd4}.vision-hint{color:#949087}.vision-editor{background:#fffdf9}.vision-editor input,.vision-editor textarea,.vision-editor select{color:#4a535d;border-color:#e6dfd4}.vision-snippet{border-color:#eae3d9}.vision-bar-heading h3{color:#515a63}.vision-bar-error.ok{color:#68866a}.vision-next .button,.pattern-buttons button{color:#9c744c;background:#fff6eb;border-color:#eedecb}.vision-repeat{border-color:#eee4d8}.batch-help,.batch-footer{background:#fff8ed}.batch-item{border-color:#eee3d4}.batch-item button{color:#a57d51}.community-dialog{color:#29313b;border-color:#e7ded2}.community-dialog p,dialog p{color:#85888e}.community-dialog input:not([type=checkbox]),.community-dialog textarea{background:#fffcf7;border-color:#e9dfd2}.dropzone{background:#fffbf4;border-color:#e9c9a7;padding:38px 20px}.dropzone>span{color:#e6a058;font-size:38px}.dropzone b{background:#f68e2f;color:white;padding:11px 24px;border-radius:6px}.dropzone small{color:#8a8b8e}.privacy-note{border-color:#ece5dc}.vision-confirm p{color:#81848a}.vision-confirm::backdrop,dialog::backdrop{background:#28221c66}#toast{background:#292c30}#photo-workbench{border-color:#e5ded5}html[lang=en] .hero-copy h1{font-family:Georgia,serif;font-size:43px;letter-spacing:-1px}html[lang=en] .hero-copy p{letter-spacing:0}html[lang=en] .feature-row button{gap:10px;padding-inline:14px}html[lang=en] .desktop-nav{gap:20px}html[lang=en] .brand-wordmark{font-size:22px}.mobile-nav{display:none}
@media(max-width:1050px){main{padding-inline:26px}.site-header{gap:25px}.desktop-nav{gap:18px}.header-actions{gap:7px}#account-name{display:none}.discovery-hero{height:330px}.hero-copy{padding:34px}.feature-row{gap:10px}.feature-row button{padding:15px;gap:10px}.feature-row small{font-size:9px}.feature-row i{display:none}.practice-grid{grid-template-columns:minmax(0,1fr) 225px}.settings{padding:17px}.score-cover{height:208px}.score-cover:has(img){height:208px}.score-stats{gap:12px}}
@media(max-width:800px){main{padding:0 20px 80px}.site-header{height:76px;gap:18px}.desktop-nav{gap:16px}.desktop-nav .nav{font-size:11px}.header-actions .button{font-size:10px;padding:9px}.header-actions #account-link{max-width:110px;overflow:hidden;text-overflow:ellipsis}.brand-icon{width:39px;height:39px}.brand-wordmark{font-size:21px}.brand-wordmark small{font-size:13px}.feature-row{grid-template-columns:repeat(2,1fr);margin-bottom:28px}.hero-copy{width:70%;padding:32px}.hero-copy h1{font-size:40px}.discovery-hero{height:310px;background-position:61% center}.song-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.practice-grid{grid-template-columns:1fr}.settings{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.settings section{margin:0;padding:0;border-top:0}.settings section+section{border-left:1px solid var(--line);padding-left:16px}.score-viewport{height:480px}.library-heading{gap:20px}.library-heading h2{font-size:21px}.library-heading p{font-size:11px}.library-controls{flex-basis:260px}.intro-stamp{display:none}}
@media(max-width:600px){main{padding:0 16px 95px}.site-header{height:73px;gap:12px}.brand{display:flex;margin:0;gap:7px}.brand>span:last-child{display:block}.brand-icon{width:36px;height:36px;border-radius:9px}.brand-wordmark{font-size:20px}.brand-wordmark small{font-size:12px}.desktop-nav{display:none}.header-actions{margin-left:auto;gap:5px;flex-wrap:nowrap}.header-actions .button{font-size:10px;padding:8px}.header-actions #account-link{max-width:80px;padding:8px 5px}.language-control select{font-size:10px;width:61px;max-width:61px}.header-actions .import-trigger{font-size:10px;padding:8px;max-width:86px}html[lang=en] .header-actions .import-trigger{max-width:80px}.discovery-hero{height:280px;margin-top:18px;border-radius:12px;background-position:65% center}.hero-copy{padding:27px 22px;width:85%;background:linear-gradient(90deg,#f6ead4ba,transparent)}.hero-copy .eyebrow{font-size:7px;letter-spacing:1px}.hero-copy h1{font-size:36px;letter-spacing:2px;margin:19px 0 14px}.hero-copy p{font-size:11px;letter-spacing:.8px}.hero-copy small{font-size:9px;letter-spacing:.2px}.hero-cta{font-size:10px;padding:8px 12px;gap:13px;margin-top:18px}.hero-caption{font-size:6px;bottom:11px;right:12px;letter-spacing:.7px}.feature-row{gap:9px;margin:14px 0 28px}.feature-row button{padding:13px 10px;border-radius:9px;gap:9px}.feature-icon{flex-basis:32px;height:32px;font-size:19px}.feature-row b{font-size:11px}.feature-row small{font-size:9px;margin-top:4px}.library-heading{display:block}.library-heading h2{font-size:22px}.library-heading .eyebrow{font-size:8px}.library-heading p{font-size:11px;line-height:1.8}.library-controls{margin-top:18px;width:100%}.library-controls input{padding-block:12px;font-size:11px}.community-toolbar{margin:19px 0 15px}.community-toolbar .filters{flex-wrap:wrap;gap:5px}.community-toolbar .filters button{font-size:10px;padding:8px 10px}#community-sort{font-size:10px;padding:7px;max-width:115px}.song-grid{gap:12px}.score-card{border-radius:10px}.score-cover,.score-cover:has(img){height:180px;padding:16px;min-height:0}.score-cover:has(img){padding:0}.cover-title{font-size:20px;margin-top:18px}.cover-kicker{font-size:8px}.cover-caption{font-size:8px}.cover-staff{font-size:30px}.score-visibility{right:8px;top:8px;font-size:8px}.score-card-body{padding:12px}.score-card-title{font-size:13px}.score-description{font-size:10px;min-height:34px}.score-stats{gap:10px;font-size:10px}.score-stats button{font-size:11px}.score-author{font-size:9px;gap:5px}.avatar{width:21px;height:21px}.site-footer{margin-top:30px;padding-top:20px;display:block;font-size:9px}.site-footer .local-badge{margin-top:12px;font-size:9px}.mobile-nav{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:10;justify-content:space-around;background:#fffffff5;backdrop-filter:blur(14px);border-top:1px solid var(--line);padding:8px 10px max(8px,env(safe-area-inset-bottom));gap:0}.mobile-nav .nav{display:flex;flex-direction:column;gap:4px;padding:4px 18px;margin:0;font-size:10px;text-align:center;color:#8c8f94;border-radius:0;background:none}.mobile-nav .nav span{font-size:20px;line-height:20px}.mobile-nav .nav.active{color:#ef8426}.intro h1{font-size:22px}.intro p{font-size:11px}.intro{padding:25px 0 20px}.score-viewport{height:410px}.settings{display:block;padding:20px}.settings section{padding:14px 0}.settings section+section{border-left:0;border-top:1px solid var(--line);padding:20px 0}.settings-title{display:flex}.setting-help,.loop-caption{font-size:11px}.score-foot{gap:10px;line-height:1.7}.photo-controls{gap:10px;flex-wrap:wrap;padding:12px}.photo-controls>div{gap:5px}.photo-controls .button{padding:7px;font-size:10px}.vision-stats{padding:10px 15px;font-size:12px}.vision-progress{padding:10px 15px}.vision-header{padding:18px}.vision-tools{gap:7px}.vision-tools .button{padding:8px;font-size:10px}.vision-confirm{padding:22px}.vision-confirm h2{font-size:19px}#toast{bottom:85px}.practice-note kbd,.key-hint{display:none}html[lang=en] .hero-copy h1{font-size:33px}html[lang=en] .hero-copy{width:90%}html[lang=en] .feature-row button{padding:12px 9px;gap:8px}html[lang=en] .feature-row b{font-size:11px}html[lang=en] .brand-wordmark{font-size:20px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

.batch-primary{background:#ef8426;color:white;border-color:#ef8426}.batch-primary:hover{background:#df731c}
/* Personal space */
.account-menu{position:relative}.account-toggle{display:flex;align-items:center;gap:9px;border:0;background:transparent;padding:3px;color:#6b7079;cursor:pointer}.user-avatar{display:grid;place-items:center;width:36px;height:36px;flex-shrink:0;overflow:hidden;border-radius:50%;background:#f8e6cf;color:#ac6b2d;font-weight:700}.user-avatar img,.avatar img{width:100%;height:100%;object-fit:cover}.avatar{overflow:hidden}.account-toggle #account-name{max-width:85px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.account-dropdown{position:absolute;right:0;top:calc(100% + 12px);z-index:30;width:180px;padding:7px;border:1px solid var(--line);border-radius:13px;background:#fff;box-shadow:0 12px 35px #30271920}.account-dropdown button,.account-dropdown a{display:block;width:100%;text-align:left;border:0;padding:12px 14px;background:none;color:#454c55;box-shadow:none;font-size:13px;border-radius:7px;text-decoration:none}.account-dropdown button:hover,.account-dropdown a:hover{background:#fff1e4}.account-dropdown a{border-top:1px solid var(--line);border-radius:0;margin-top:5px}.account-dropdown[hidden],.account-menu[hidden]{display:none}.composer-credit{margin:5px 0;color:#ba7941;font-size:12px}.song-info .song-composer{color:#ba7941;font-size:12px;margin:5px 0}.edit-info-action{font-size:11px;margin-bottom:8px}.import-author{display:block;font-size:12px;color:#616975;margin:20px 0}.import-author input{display:block;width:100%;margin-top:8px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fffcf8}.profile-intro{padding:38px 0 28px}.profile-intro h1{font-size:30px;margin:12px 0}.profile-intro p{color:#91949b;font-size:13px}.profile-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:24px}.profile-card,.journey-card,.activity-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:30px}.profile-identity{display:flex;align-items:center;gap:20px;margin-bottom:18px}.avatar-large{width:88px;height:88px;font-size:32px}.profile-identity h2{margin:0 0 14px;font-size:23px;overflow-wrap:anywhere}.profile-identity .text-button{margin-right:15px;font-size:12px;color:#c47b35}.profile-card label{display:block;color:#666d76;font-size:12px;margin:18px 0}.profile-card input,.profile-card textarea{display:block;width:100%;padding:12px;margin-top:8px;border:1px solid #e7e0d7;border-radius:8px;background:#fffcf8;color:#333d47;font:inherit;resize:vertical}.profile-hint{color:#99989a;font-size:11px;line-height:1.8}.profile-card .primary{color:#fff;margin-top:10px}#profile-saved{margin-left:12px;font-size:12px;color:#828f71}#profile-error,#song-info-error{color:#b94337;font-size:12px}.journey-card{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;position:relative;overflow:hidden;background:linear-gradient(140deg,#fff6e8,#f8e6ce)}.journey-mark{color:#d4a26e;font-size:110px;line-height:1;margin-bottom:22px}.journey-card h2{font-family:'Songti SC',Georgia,serif;font-size:30px;margin:15px 0}.journey-card p{font-size:12px;color:#a08b74;line-height:1.9;max-width:260px}.journey-card .button{background:#fffcf6;margin-top:22px;color:#a06d3b}.practice-history{margin-top:42px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}.section-heading h2{font-size:23px;margin:10px 0}.section-heading h3{font-size:17px;margin:0}.section-heading>span{font-size:11px;color:#999}.practice-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border:1px solid var(--line);background:#fff;border-radius:16px;margin:20px 0 24px;padding:26px 0}.practice-metrics>div{text-align:center;padding:4px 12px;border-left:1px solid var(--line)}.practice-metrics>div:first-child{border:0}.practice-metrics strong{font-size:22px;font-weight:600;display:block;white-space:nowrap}.practice-metrics span{display:block;font-size:12px;color:#91949b;margin-top:9px}.heatmap-scroll{overflow-x:auto;margin:24px 0 18px;padding:2px}.practice-heatmap{display:grid;grid-auto-flow:column;grid-template-rows:repeat(7,13px);grid-auto-columns:13px;gap:5px;min-width:max-content}.practice-heatmap button,.heatmap-legend i{border:0;border-radius:4px;min-width:0;padding:0;display:block;background:#f2efeb}.practice-heatmap button:focus-visible{outline:2px solid #222;outline-offset:2px}.practice-heatmap button:hover{outline:1px solid #cf995a;outline-offset:1px}[data-level="1"]{background:#ffe1bd!important}[data-level="2"]{background:#fbbb77!important}[data-level="3"]{background:#ee913d!important}[data-level="4"]{background:#b46124!important}.heatmap-bottom{display:flex;justify-content:space-between;gap:14px;color:#aaa;font-size:11px}.heatmap-legend{display:flex;gap:5px;align-items:center}.heatmap-legend i{width:12px;height:12px}.practice-history #stats-status{font-size:12px;color:#b18254}
@media(max-width:800px){.profile-layout{grid-template-columns:1fr}.journey-card{display:none}.practice-metrics{grid-template-columns:repeat(3,1fr);gap:22px;padding:22px 0}.practice-metrics>div:nth-child(4){border:0}.practice-metrics strong{font-size:20px}}
@media(max-width:600px){.account-toggle{gap:3px;padding:0}.account-toggle>span:last-child{display:none}.user-avatar{width:32px;height:32px}.account-dropdown{width:170px;right:-50px}.header-actions .account-dropdown .import-trigger{max-width:none;font-size:13px;padding:12px 14px}.profile-intro{padding:26px 0 15px}.profile-intro h1{font-size:25px}.profile-card,.activity-card{padding:20px}.avatar-large{width:72px;height:72px}.profile-identity h2{font-size:21px}.practice-history{margin-top:28px}.section-heading h2{font-size:21px}.practice-metrics strong{font-size:17px}.practice-metrics span{font-size:10px}.heatmap-bottom{flex-direction:column}.activity-card .section-heading{align-items:flex-start;flex-direction:column}.score-toolbar{flex-wrap:wrap;gap:8px}}

.heatmap-months{display:grid;grid-template-columns:repeat(53,13px);column-gap:5px;min-width:max-content;margin-bottom:9px;font-size:10px;color:#aaa}.heatmap-months span{white-space:nowrap}
/* Tabfun classroom */
.classroom-status{padding:50px 0;color:#9b8a76}.classroom-hero{margin:30px 0 36px;padding:46px 48px;border-radius:20px;background:linear-gradient(115deg,#f8e8cf,#fffbf4);display:flex;justify-content:space-between;align-items:center;overflow:hidden}.classroom-hero>div:first-child{max-width:640px;position:relative;z-index:1}.classroom-hero h1{font-family:'Songti SC',Georgia,serif;font-size:42px;letter-spacing:1px;margin:18px 0}.classroom-hero p{font-size:14px;line-height:1.9;color:#9b846b;max-width:530px;margin:0 0 26px}.classroom-hero-art{font-size:165px;line-height:1;color:#d6a268;transform:rotate(-12deg);padding:20px 35px}.classroom-section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.classroom-section-heading h2{font-size:23px;margin:0}.classroom-section-heading>span{color:#9c9b97;font-size:11px}.course-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.course-card{border:1px solid var(--line);border-radius:15px;padding:25px;background:#fff}.course-open{border-color:#efc798;background:#fffcf6}.course-card-top{display:flex;justify-content:space-between;align-items:center}.course-icon{width:50px;height:50px;display:grid;place-items:center;background:#f6f1e9;color:#b99468;border-radius:14px;font-size:30px}.course-open .course-icon{background:#ffead1;color:#d88031}.course-badge{font-size:10px;color:#a29d96;background:#f6f4f1;padding:6px 9px;border-radius:20px}.course-open .course-badge{color:#bb712d;background:#fff0dd}.course-card h3{font-size:20px;margin:22px 0 11px}.course-card>p{font-size:12px;color:#96928d;line-height:1.9;min-height:46px}.course-card-meta{font-size:11px;color:#9e958b;margin:18px 0 12px}.course-format{display:flex;gap:6px;margin-bottom:18px}.course-format span{font-size:10px;border:1px solid #eee5d8;padding:4px 8px;border-radius:4px;color:#a58a6b}.course-card progress,.course-outline progress{width:100%;height:5px;appearance:none;border:0;border-radius:5px;overflow:hidden;background:#f0e9df;accent-color:#e69343}.course-card progress::-webkit-progress-bar,.course-outline progress::-webkit-progress-bar{background:#f0e9df}.course-card progress::-webkit-progress-value,.course-outline progress::-webkit-progress-value{background:#e69343}.course-card>small{font-size:10px;color:#a18d77;display:block;margin-top:5px}.course-card-action{display:block;margin-top:20px;border:0;background:none;padding:0;color:#b07d4c;font-size:12px;text-align:left}.course-open .course-card-action{color:#dc812b}.course-footnote{margin:28px 0;font-size:11px;color:#a59b90;line-height:1.8}.classroom-breadcrumb{display:flex;gap:15px;align-items:center;padding:25px 0;font-size:12px;color:#a49b91}.classroom-breadcrumb button{font-size:12px}.classroom-layout{display:grid;grid-template-columns:290px minmax(0,1fr);gap:24px;align-items:start}.course-outline{background:#fff;border:1px solid var(--line);border-radius:15px;padding:24px 14px;position:sticky;top:20px}.course-outline>.eyebrow,.course-outline>h2,.course-outline>.outline-progress,.course-outline>progress{margin-left:10px;margin-right:10px}.course-outline h2{font-size:19px;margin-top:12px}.outline-progress{font-size:11px;color:#a28d75}.course-outline>progress{width:calc(100% - 20px)}.lesson-list{list-style:none;margin:20px 0 0;padding:0}.lesson-link{display:flex;align-items:center;gap:12px;padding:13px 10px;width:100%;text-align:left;background:none;border:0;border-radius:8px}.lesson-link-copy b{display:block;font-size:12px;font-weight:500;line-height:1.5;color:#6d6b67}.lesson-link-copy small{display:block;font-size:10px;color:#a8a29a;margin-top:5px}.lesson-number{font-size:11px;width:22px;flex-shrink:0;color:#ba9870}.lesson-link.selected{background:#fff1df}.lesson-link.selected b{color:#b57530;font-weight:650}.lesson-link:disabled{opacity:.55;cursor:not-allowed}.lesson-link.completed .lesson-number{color:#8a9d7d}.lesson-content{padding:38px 42px;border:1px solid var(--line);border-radius:16px;background:#fff;min-width:0}.lesson-content h1{font-size:29px;line-height:1.5;letter-spacing:.1px;margin:13px 0}.lesson-lead{line-height:1.9;color:#958b7d;font-size:14px}.course-facts{display:flex;flex-wrap:wrap;gap:10px;margin:25px 0 35px}.course-facts span{padding:8px 10px;border-radius:6px;background:#faf5ed;font-size:11px;color:#a18a70}.lesson-content h2{font-size:19px}.course-outcomes{padding-left:20px;color:#837c73;font-size:13px;line-height:2.2}.lesson-note{padding:20px;background:#faf6f0;font-size:12px;line-height:1.9;color:#9a8b78;border-radius:9px;margin:24px 0}.course-coming{text-align:center;padding:45px 10px}.course-coming>span{font-size:90px;color:#d6c1a4}.course-coming p{color:#a2988c;font-size:13px;line-height:1.9;max-width:420px;margin:auto}.lesson-format{font-size:11px;color:#ac9c89;margin-bottom:24px}.lesson-goal{background:#fff6e9;border-left:3px solid #efab65;padding:17px 20px;font-size:13px;color:#a28158;line-height:1.8}.lesson-section{padding:22px 0 8px;position:relative}.lesson-section-number{font-size:10px;color:#cca87f;letter-spacing:2px}.lesson-section h2{margin:8px 0 12px}.lesson-section p{font-size:14px;line-height:2.1;color:#79766f;margin:0}.lesson-references{font-size:10px;color:#b0a599;line-height:1.8;padding-top:24px}.lesson-references a{color:#a4845b;margin-left:8px}.lesson-diagram{border:1px solid #eee6da;background:#fffdf8;border-radius:12px;margin:26px 0;padding:24px}.lesson-diagram figcaption{font-size:10px;color:#a39786;text-align:center;margin:18px 0 0;line-height:1.7}.guitar-anatomy svg{width:100%;max-height:210px;display:block}.anatomy-labels{display:grid;grid-template-columns:1fr 1fr 2fr 1fr;font-size:11px;color:#9f886d;text-align:center;padding:0 5%}.string-diagram{max-width:400px;margin:auto}.string-diagram>div{display:flex;align-items:center;gap:15px;height:29px}.string-diagram b{font-size:11px;color:#ae926f}.string-diagram i{display:block;background:#d5b790;flex:1;border-radius:2px}.string-diagram strong{width:30px;font-size:12px;color:#a7804e;font-weight:500}.tab-diagram{font:15px/1.8 ui-monospace,monospace;color:#977b5b;text-align:center;overflow:auto}.chord-charts{display:flex;flex-wrap:wrap;justify-content:center;gap:14px}.chord-chart{width:105px;text-align:center;color:#9e723c;font-size:15px}.chord-chart svg{display:block;width:100%;margin-top:8px}.rhythm-diagram{display:flex;justify-content:space-around;gap:12px}.rhythm-diagram>div{display:flex;gap:20px;align-items:center;padding:16px;border:1px solid #f0e2cf;border-radius:8px;color:#bb8c55}.rhythm-diagram span{font-size:12px;color:#c5b39b}.lesson-practice-callout{background:#fff2df;padding:24px;border-radius:12px;margin:30px 0}.lesson-practice-callout h2{margin-top:0}.lesson-practice-callout p{font-size:12px;line-height:1.8;color:#9b815f}.lesson-time{display:block;font-size:11px;color:#b58a57;margin:15px 0}.lesson-completion{border-top:1px solid var(--line);padding-top:28px;margin-top:30px}.lesson-completion fieldset{border:0;margin:0 0 22px;padding:0}.lesson-completion legend{font-size:14px;font-weight:600;line-height:1.7;margin-bottom:14px}.quiz-option{display:flex;gap:10px;align-items:center;border:1px solid #e9e3db;border-radius:7px;padding:12px 14px;margin-bottom:8px;color:#878078;font-size:12px}.quiz-option:has(input:checked){border-color:#e5ad6b;background:#fff6e8}.lesson-self-check{display:flex;gap:10px;align-items:flex-start;font-size:12px;line-height:1.9;color:#8a7e70;margin:20px 0}.lesson-self-check input{margin-top:4px}.course-error{font-size:12px;line-height:1.8;color:#b55e41}.lesson-success{font-size:13px;color:#8a987b;margin-top:25px}.lesson-video{width:100%;border-radius:10px;margin-top:25px}.lesson-practice-banner{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:16px 20px;border:1px solid #efd7b8;background:#fff3df;border-radius:11px;margin-top:24px;color:#a18056;font-size:12px}.lesson-practice-banner[hidden]{display:none}.lesson-practice-banner .button{font-size:11px;color:#a0713a;background:#fffaf2}
@media(max-width:1050px){.course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.classroom-hero{padding:35px}.classroom-hero-art{font-size:120px;padding:10px}.classroom-layout{grid-template-columns:240px minmax(0,1fr);gap:18px}.lesson-content{padding:30px}.chord-chart{width:85px}.course-outline{position:static}}
@media(max-width:800px){.classroom-layout{grid-template-columns:1fr}.course-outline{max-height:320px;overflow:auto}.course-outline .lesson-list{display:grid;grid-template-columns:repeat(2,1fr);margin-top:14px}.classroom-hero h1{font-size:32px}.classroom-hero p{font-size:12px}.lesson-content{padding:28px}.classroom-hero-art{display:none}}
@media(max-width:600px){.classroom-hero{padding:28px 24px;margin:20px 0 25px;border-radius:14px}.classroom-hero h1{font-size:28px}.classroom-section-heading{align-items:flex-start;gap:12px;flex-direction:column}.classroom-section-heading h2{font-size:21px}.course-grid{grid-template-columns:1fr;gap:14px}.course-card{padding:22px}.course-card>p{min-height:0}.classroom-breadcrumb{font-size:10px;flex-wrap:wrap;gap:8px}.course-outline{padding:20px 10px;max-height:250px}.course-outline .lesson-list{display:block}.lesson-content{padding:24px 20px}.lesson-content h1{font-size:23px}.lesson-section p{font-size:13px}.lesson-diagram{padding:16px 10px}.tab-diagram{font-size:13px}.chord-chart{width:95px}.rhythm-diagram{gap:5px}.rhythm-diagram>div{padding:13px 8px;gap:8px}.lesson-practice-banner{flex-direction:column;align-items:flex-start}.lesson-completion>.button{width:100%;font-size:12px}.classroom-hero .button{font-size:12px}.lesson-goal{padding:14px;font-size:12px}}

/* Arrangement type and five-star performance difficulty. */
.score-filterbar{display:flex;align-items:center;gap:20px;flex-wrap:wrap;padding:17px 0 24px;border-top:1px solid var(--line,#e8e3db)}
.score-filterbar label{display:flex;gap:9px;align-items:center;font-size:13px;color:#66645f}
.score-filterbar select,.score-metadata-fields select{font:inherit;background:#fffdf9;border:1px solid #e2dbd0;border-radius:8px;padding:9px 12px;color:#383c40;min-height:40px}
.score-filterbar>span{font-size:12px;color:#8b8984;margin-left:auto}
.score-metadata-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:18px 0 6px}
.score-metadata-fields label{display:flex;flex-direction:column;gap:8px;font-size:13px;color:#5e625f}
.difficulty-hint{font-size:11px!important;line-height:1.7!important;color:#8b8984!important;margin:7px 0 16px!important}
.score-classification{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:9px 0 10px}
.score-type-badge{font-size:11px;background:#f5eee3;color:#8a6134;border:1px solid #eadcc9;padding:3px 8px;border-radius:5px;line-height:1.5}
.score-difficulty{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.difficulty-stars{font-size:15px;letter-spacing:1px;color:#b67934}
.score-difficulty small{font-size:11px;color:#8b8984}
#song-classification .score-classification{margin:7px 0 3px}
.score-source{background:#fffdf8;border:1px solid #e9decd;border-radius:10px;padding:13px 18px;margin:0 0 18px;font-size:13px;color:#736d64}
.score-source summary{cursor:pointer;color:#8a6134;font-weight:600}
.score-source-content{padding:5px 0;line-height:1.8}
.score-source-content p{margin:9px 0}
.score-source-content a{display:inline-block;margin:0 18px 0 0;color:#9c682e;text-decoration:underline;text-underline-offset:3px}
@media(max-width:600px){.score-filterbar{gap:12px}.score-filterbar label{flex:1 1 145px;flex-direction:column;align-items:stretch;gap:5px}.score-filterbar>span{margin-left:0}.score-metadata-fields{grid-template-columns:1fr;gap:10px}.score-classification{gap:7px}}

/* Rounded two-tone TabFun signature, rendered as a crisp vector at every size. */
.brand-lockup{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0}
.brand .brand-wordmark{display:block;width:118px;height:auto;max-width:none;font-size:inherit}
.brand .brand-tagline{display:block;font-size:8px;font-weight:500;line-height:1.3;letter-spacing:.35px;color:#8b8a85;white-space:nowrap}
.site-footer .footer-wordmark{font-weight:800;color:#141e23;font-size:12px;letter-spacing:-.4px}.footer-wordmark span{color:#ff861c}
.hero-copy .hero-slogan{font-weight:600;letter-spacing:5px;color:#343941}
@media(max-width:800px){.brand .brand-wordmark{width:103px}.brand .brand-tagline{font-size:7px;letter-spacing:.2px}}
@media(max-width:600px){.brand .brand-wordmark{width:96px}.brand .brand-tagline{font-size:6.5px}.brand-lockup{gap:2px}.hero-copy .hero-slogan{letter-spacing:3px}}
