@font-face{font-family:Vazirmatn;src:local('Vazirmatn');font-display:swap}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{--bg:#f4f3ee;--card:#fffefa;--text:#223a37;--muted:#6d7c75;--line:#dde1d8;--accent:#215951;--soft:#e6eee7;--warm:#b88145;margin:0;background:var(--bg);color:var(--text);font:14px/1.8 Vazirmatn,Tahoma,sans-serif;padding-bottom:96px}body.dark{--bg:#102724;--card:#18352f;--text:#eaf0e8;--muted:#acbfb4;--line:#315046;--accent:#98c9b1;--soft:#25473b;--warm:#e1b77f}button,input,select{font:inherit}button,select{color:var(--text);background:var(--card);border:1px solid var(--line);border-radius:12px;padding:9px 15px;cursor:pointer}button{touch-action:manipulation}button:hover{background:var(--soft)}button:disabled{opacity:.4;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--warm);outline-offset:3px}svg.icon{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.primary{background:var(--accent);color:var(--card);border-color:var(--accent)}.primary:hover{filter:brightness(1.1);background:var(--accent)}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;padding:8px}.text-btn{border:0;background:none;color:var(--accent);padding:5px}.app-header{max-width:1220px;margin:auto;padding:27px 30px;display:flex;align-items:center;justify-content:space-between;gap:18px}.brand{display:flex;align-items:center;gap:12px;border:0;background:none;padding:0;text-align:right;font-size:20px;font-weight:bold}.brand small{display:block;font-size:10px;font-weight:normal;color:var(--muted)}.brand-mark{display:grid;place-items:center;width:45px;height:50px;background:var(--accent);color:var(--card);font:44px Georgia;border-radius:12px 12px 24px 12px}.header-end{display:flex;align-items:center;gap:20px;font-size:11px;color:var(--muted)}main{max-width:1220px;margin:auto;padding:0 30px}.view[hidden]{display:none!important}.hero{display:grid;grid-template-columns:1.13fr 1fr;min-height:362px;border-radius:26px;overflow:hidden;background:#163d38;color:#fbf8ed;box-shadow:0 14px 35px #183e3812}.hero-copy{padding:35px 40px}.eyebrow{font-size:10px;letter-spacing:1px;color:var(--muted)}.hero .eyebrow{color:#b8ccba}.hero h1{font-size:39px;line-height:1.55;font-weight:400;margin:13px 0 14px}.hero h1 em{font-style:normal;color:#d6bf8c}.hero p{font-size:12px;color:#c6d6c9}.hero-actions{display:flex;gap:12px;margin:24px 0}.hero-actions button{padding:10px 20px;background:transparent;color:#f5f0e6;border-color:#789185}.hero-actions .primary{background:#e5d2aa;color:#1a3d35;border-color:#e5d2aa}.hero-stats{display:flex;gap:22px;font-size:10px;color:#bdcfc3}.hero-stats b{font-size:17px;color:#f4e6ca;margin-left:3px}.hero-art{position:relative;overflow:hidden;background:radial-gradient(ellipse at 25% 35%,#8b967459,transparent 68%)}.hero-art .staff{position:absolute;font:52px Georgia;color:#d7d8bb9c;border-top:1px solid #bac9b32a;border-bottom:1px solid #bac9b32a;line-height:1.8;transform:rotate(-12deg);width:90%;left:15%;text-align:center}.hero-art .staff-one{top:35px}.hero-art .staff-two{top:130px;left:-15%;font-size:37px;opacity:.5}.piano-keys{position:absolute;display:flex;direction:ltr;gap:3px;bottom:-90px;left:30px;width:440px;transform:rotate(-24deg);height:265px}.piano-keys i{display:block;flex:1;background:linear-gradient(#e9eadc,#fffdf0);border-radius:0 0 6px 6px;box-shadow:0 10px 0 #c6cabb;position:relative}.piano-keys i:not(:nth-child(3n)):after{content:'';position:absolute;width:65%;height:60%;background:linear-gradient(#11231f,#29413a);right:-35%;z-index:1;border-radius:0 0 5px 5px;box-shadow:0 7px 0 #071b17}.art-label{position:absolute;top:24px;left:25px;writing-mode:vertical-rl;font-size:8px;letter-spacing:3px;color:#ccd1b5}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:15px;margin:30px 0 16px}.section-heading h2{font-size:24px;font-weight:500;margin:1px 0}.muted{color:var(--muted);font-size:12px}.small{font-size:10px}.artist-strip{display:flex;gap:21px;overflow:auto;padding:4px 2px 9px;scroll-snap-type:x proximity}.artist-item{flex:0 0 100px;border:0;background:none;padding:0;text-align:center;scroll-snap-align:start;font-size:11px}.artist-item img,.artist-avatar{width:79px;height:79px;margin:0 auto 8px;border-radius:50%;object-fit:cover;object-position:center 22%;display:block;filter:grayscale(.22);border:3px solid var(--card);outline:1px solid var(--line)}.artist-avatar{display:grid;place-items:center;background:var(--soft);color:var(--accent);font-size:27px}.artist-item strong{display:block;font-weight:500;white-space:nowrap}.artist-item small{color:var(--muted);font-size:9px}.search-row{display:flex;gap:9px;align-items:center}.search-box{flex:1;display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:13px;background:var(--card);padding:4px 15px}.search-box input{border:0;background:transparent;color:var(--text);width:100%;padding:10px 0;outline:0;min-width:0}.chips{display:flex;gap:8px;overflow:auto;padding:15px 0 20px}.chips button{white-space:nowrap;font-size:11px;border-radius:30px;padding:6px 15px}.selected,button[aria-pressed=true]{background:var(--soft);border-color:var(--accent);color:var(--accent)}.catalog{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.work-card{background:var(--card);border:1px solid var(--line);border-radius:17px;overflow:hidden;position:relative;display:flex;flex-direction:column;min-width:0}.card-open{border:0;background:none;text-align:right;width:100%;padding:22px;flex:1;border-radius:0}.card-category{font-size:9px;color:var(--muted);display:flex;align-items:center;gap:7px}.card-category:before{content:'';width:5px;height:5px;border-radius:50%;background:var(--warm)}.card-open h3{font-size:20px;font-weight:500;margin:10px 0 2px;line-height:1.7;padding-left:15px}.card-en{direction:ltr;text-align:right;font:10px/1.5 Georgia,serif;color:var(--muted);min-height:16px}.card-credits{font-size:11px;color:var(--muted);margin-top:14px;min-height:40px}.card-footer{padding:11px 22px;background:var(--soft);display:flex;justify-content:space-between;font-size:10px;color:var(--accent)}.favorite{position:absolute;left:11px;top:14px;border:0;background:transparent;font-size:22px;padding:0 6px;color:var(--warm);z-index:2}.bottom-nav{position:fixed;z-index:80;bottom:0;left:0;right:0;display:flex;justify-content:center;gap:28px;background:var(--card);border-top:1px solid var(--line);padding:9px 12px max(9px,env(safe-area-inset-bottom))}.bottom-nav button{display:flex;flex-direction:column;gap:3px;align-items:center;border:0;border-radius:13px;padding:6px 27px;color:var(--muted);font-size:10px;background:transparent;min-width:90px}.bottom-nav .active{background:var(--soft);color:var(--accent)}.player-title{display:flex;align-items:center;gap:14px;margin:0 0 15px}.player-title>div{flex:1}.player-title h1{font-size:27px;margin:0;font-weight:500}.player-title p{margin:0}.transport{position:sticky;top:8px;z-index:40;background:var(--card);border:1px solid var(--line);border-radius:16px;box-shadow:0 5px 24px #0000000a;padding:12px 17px}.transport-main{display:flex;gap:10px;align-items:center}.play{display:flex;gap:8px;align-items:center;min-width:95px;justify-content:center}.time-readout{font-size:10px;display:flex;flex-direction:column;color:var(--muted);margin:0 6px;min-width:87px}.time-readout b{color:var(--text);font-weight:normal}.level-switch{display:flex;gap:3px;margin-right:auto;padding:3px;background:var(--bg);border-radius:13px}.level-switch button{font-size:12px;padding:6px 19px;background:transparent;border-color:transparent}.level-switch .selected{background:var(--accent);color:var(--card)}.progress-row{display:flex;align-items:center;gap:9px;height:20px;margin-top:5px}input[type=range]{accent-color:var(--accent);cursor:pointer;direction:ltr;min-width:0}#seek{width:100%;height:4px}#loading{font-size:10px;white-space:nowrap}.practice-row{display:flex;align-items:center;gap:17px;padding:15px 3px;font-size:11px;flex-wrap:wrap}.practice-row input{accent-color:var(--accent)}.practice-row button,.practice-row select{font-size:10px;padding:5px 10px}.practice-row #loopA{margin-right:auto}.score-tools{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0 0 12px}.score-tools>div{display:flex;align-items:center;gap:5px}.score-tools button{font-size:10px;padding:7px 11px}.score-tools .icon-btn{width:35px;height:35px}.score-tools .icon{width:18px;height:18px}.page-control{font-size:11px;direction:ltr}.download{display:flex;align-items:center;gap:7px}.score-scroll{height:calc(100dvh - 285px);min-height:310px;max-height:900px;overflow:auto;border-radius:17px;background:#c3cdc0;border:1px solid var(--line);padding:14px;direction:ltr;overscroll-behavior:contain;scrollbar-gutter:stable}.paper{width:100%;background:#fff;color:#24332e;margin:auto;box-shadow:0 5px 20px #16302722;direction:rtl;container-type:inline-size}.sheet-tempo{padding:15px 7% 0;position:relative}.tempo-equation{display:flex;align-items:center;gap:8px;color:#253d35}.tempo-equation button{color:#24332e;background:white;border-color:#e4e7e0;padding:3px 8px;height:36px}.tempo-equation input{font:18px Georgia;width:65px;border:0;border-bottom:1px solid #bccdc0;background:transparent;color:#22382d;padding:4px}.tempo-equation #tempoWord{font:italic 15px Georgia;color:#617367}.tempo-equation #resetTempo{margin-left:auto}.unit-symbol{width:24px;height:28px;fill:currentColor;stroke:currentColor;stroke-width:1.7}#speed{display:block;width:100%;height:3px;margin-top:12px;accent-color:#215951}.unit-options{display:flex;position:absolute;z-index:25;top:56px;left:7%;gap:4px;background:#fff;padding:8px;border:1px solid #bbc7bd;border-radius:10px;box-shadow:0 6px 20px #0002}.unit-options[hidden]{display:none}.unit-options button{padding:7px;color:#24332e;background:#fff;display:flex;flex-direction:column;align-items:center;font-size:9px}.sheet-heading{text-align:center;padding:14px 8% 3px;color:#26382e}.sheet-heading>span{font-size:8px;color:#849088}.sheet-heading h2{font-size:clamp(17px,3cqw,29px);margin:3px 0;font-weight:500}.sheet-heading p{font-size:clamp(8px,1.45cqw,12px);margin:2px 0;color:#647068}.sheet-footer{padding:9px 7% 18px;display:flex;justify-content:space-between;border-top:1px solid #eee;font-size:9px;color:#6c796f}#notation svg{width:100%;height:auto;display:block}
/* Imported page SVGs may include fixed inline dimensions; the viewer owns their display size. */
#notation>svg{width:100%!important;height:auto!important}#notation .measure{cursor:pointer}#notation .note.playing .notehead,#notation .note.playing .notehead use{fill:#c66d2f!important;color:#c66d2f!important;stroke:#c66d2f!important}#notation .measure.active-measure>.hit-area{fill:#dceade;fill-opacity:.3}.hit-area{fill:transparent;stroke:none;pointer-events:all}.hint{font-size:11px;color:var(--muted);text-align:center}.narrow{max-width:680px;margin:10px auto}.narrow h1{font-size:30px;font-weight:500}.settings-card{padding:22px 27px;border:1px solid var(--line);border-radius:18px;background:var(--card);margin:18px 0}.settings-card h2{font-size:18px;font-weight:500;margin:0 0 15px}.setting-range{display:block;margin:18px 0}.setting-range output{float:left;font-size:11px;color:var(--muted)}.setting-range input{display:block;width:100%;margin:12px 0}.setting-check{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:12px 0;font-size:12px}.setting-check input{accent-color:var(--accent);width:18px;height:18px}.coming{text-align:center;background:var(--card);border:1px solid var(--line);border-radius:25px;padding:50px 25px;margin-top:40px}.coming-note{display:block;font:85px Georgia;color:var(--warm)}.coming p{color:var(--muted);font-size:13px;margin-bottom:30px}.empty{padding:70px 0;text-align:center;color:var(--muted)}dialog{border:1px solid var(--line);background:var(--card);color:var(--text);border-radius:23px;padding:25px;max-width:650px;width:92vw;max-height:87dvh;box-shadow:0 30px 100px #0005}dialog::backdrop{background:#10272099;backdrop-filter:blur(5px)}.dialog-top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:15px}.dialog-top h2{font-size:22px;margin:0}.dialog-top button{font-size:25px;padding:0 12px}.dialog-artists{display:flex;flex-wrap:wrap;gap:15px}.dialog-artists button{border:0;background:var(--soft);font-size:12px}.level-explainer{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:20px 0}.level-explainer div{border:1px solid var(--line);border-radius:12px;padding:12px;font-size:11px}.level-explainer b{font-size:15px;color:var(--accent)}.source-list{direction:ltr;text-align:left;font-size:10px;overflow-wrap:anywhere}.source-list a{color:var(--accent)}#toast{position:fixed;bottom:105px;left:50%;transform:translateX(-50%);max-width:90%;padding:11px 22px;background:var(--text);color:var(--bg);border-radius:14px;font-size:12px;z-index:200;opacity:0;pointer-events:none}#toast.show{opacity:1}.focus-bar{display:none}body.focus{padding:0;overflow:hidden}body.focus .app-header,body.focus .bottom-nav,body.focus .player-title,body.focus .transport,body.focus .practice-row,body.focus .score-tools,body.focus .hint{display:none}body.focus main{padding:0;max-width:none}body.focus #player{height:100dvh;display:flex;flex-direction:column}body.focus .focus-bar{display:flex;align-items:center;gap:7px;min-height:44px;height:44px;background:var(--card);padding:3px max(7px,env(safe-area-inset-left));font-size:11px}body.focus .focus-bar button{padding:2px 11px;min-height:34px;display:grid;place-items:center}body.focus .focus-bar svg{width:19px;height:19px}#focusTitle{flex:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}body.focus .score-scroll{height:auto;min-height:0;max-height:none;flex:1;border:0;border-radius:0;padding:3px}body.focus .sheet-tempo,body.focus .sheet-heading,body.focus .sheet-footer{display:none}body.focus .paper{max-width:1100px}
@media(max-width:900px){.catalog{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-copy{padding:28px}.hero h1{font-size:31px}.piano-keys{left:0}.artist-strip{gap:13px}.level-switch button{padding:6px 12px}}
@media(max-width:600px){body{font-size:13px;padding-bottom:85px}.app-header{padding:20px 18px}.brand{font-size:17px;gap:9px}.brand-mark{width:36px;height:43px;font-size:35px}#editionBadge{display:none}main{padding:0 16px}.hero{display:block;min-height:0;border-radius:21px}.hero-copy{padding:27px 24px}.hero h1{font-size:31px;line-height:1.65}.hero p{font-size:11px}.hero-art{display:none}.hero-stats{gap:15px;font-size:9px}.hero-actions{margin:20px 0}.hero-actions button{font-size:11px;padding:9px 15px}.section-heading{margin:24px 0 14px}.section-heading h2{font-size:21px}.section-heading .text-btn{font-size:10px}.artist-item{flex-basis:84px;font-size:10px}.artist-item img,.artist-avatar{width:66px;height:66px}.search-row{flex-wrap:wrap;gap:8px}.search-box{flex-basis:70%}.search-row>button{padding:9px 10px;font-size:10px}.chips{padding:13px 0 16px;gap:6px}.chips button{font-size:10px;padding:5px 12px}.catalog{grid-template-columns:1fr;gap:12px}.card-open{padding:18px 20px}.card-open h3{font-size:21px;margin-top:6px}.card-credits{min-height:0;margin-top:10px}.card-footer{padding:9px 20px}.bottom-nav{gap:3px;justify-content:space-around;padding:7px 6px max(7px,env(safe-area-inset-bottom))}.bottom-nav button{padding:5px 14px;min-width:0;flex:1;font-size:9px}.bottom-nav svg{width:21px;height:21px}.player-title{gap:7px;flex-wrap:wrap}.player-title>button[data-view]{font-size:10px}.player-title h1{font-size:22px}.player-title p{font-size:10px}.player-title .icon-btn{width:34px;height:34px;padding:6px}.transport{padding:9px;top:4px;border-radius:13px}.transport-main{flex-wrap:wrap;gap:7px}.transport-main>.icon-btn{width:35px;height:36px}.transport .play{padding:7px 13px;min-width:77px;font-size:12px}.time-readout{margin-right:auto;font-size:9px;min-width:83px}.level-switch{width:100%;margin:2px 0 0;padding:2px}.level-switch button{flex:1;padding:4px 12px;font-size:11px}.practice-row{gap:9px 12px;padding:11px 0;font-size:10px}.practice-row #loopA{margin-right:0}.practice-row select,.practice-row button{padding:3px 7px;font-size:9px}.score-tools{flex-wrap:wrap;gap:6px}.score-tools button{padding:5px 7px;font-size:9px}.score-tools .icon-btn{width:29px;height:30px}.score-tools .download{margin-right:auto}.score-scroll{padding:4px;border-radius:10px;height:calc(100dvh - 315px);min-height:300px;scrollbar-gutter:auto}.sheet-tempo{padding:10px 5% 0}.tempo-equation{gap:5px}.tempo-equation button{height:30px;padding:2px 5px}.tempo-equation input{font-size:16px;width:57px}.tempo-equation #tempoWord{font-size:12px}.sheet-heading h2{font-size:19px}.sheet-heading p{font-size:8px}.sheet-footer{font-size:7px;padding:6px 6% 12px}.settings-card{padding:19px}.level-explainer{gap:5px}.level-explainer div{padding:9px 6px;font-size:10px}dialog{padding:19px}.dialog-top h2{font-size:20px}.hint{font-size:10px}}
@media(orientation:landscape) and (max-height:560px){.app-header{padding:9px 20px}.brand small{display:none}.bottom-nav{padding:3px 8px}.bottom-nav button{flex-direction:row;justify-content:center;gap:7px;padding:4px 20px}.player-title{margin-bottom:7px}.transport{padding:7px 12px}.practice-row{padding:8px 0}.score-scroll{height:68dvh}body:not(.focus){padding-bottom:55px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

#notation .bounding-box{display:none}#notation .measure .hit-area{stroke:none!important}

/* Original editions: one shared tempo control outside the score in every view. */
.brand-mark svg{width:32px;height:38px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.brand-mark .black-key{stroke-width:4}
.arrangement-switch{margin-right:auto;display:flex;align-items:center;gap:8px;font-size:11px}.arrangement-switch[hidden]{display:none}.arrangement-switch select{padding:5px 10px;max-width:230px}
.tempo-controls{display:flex;align-items:center;gap:18px;position:relative;border-top:1px solid var(--line);padding-top:9px;margin-top:5px}.tempo-controls .tempo-equation{flex-shrink:0;color:var(--text)}.tempo-controls .tempo-equation button{background:var(--card);color:var(--text);border-color:var(--line)}.tempo-controls .tempo-equation input{color:var(--text)}.tempo-controls #tempoWord{color:var(--muted)}.tempo-controls #speed{flex:1;margin:0;height:28px;accent-color:var(--accent)}.tempo-controls .unit-options{top:48px;left:0;right:auto}.tempo-controls #resetTempo{margin:0}
.source-pdf .sheet-heading,.source-pdf .sheet-footer{display:none}#notation .original-note .notehead{fill:transparent;stroke:none;pointer-events:none}#notation .original-note.playing .notehead{fill:#d87527!important;fill-opacity:.55;stroke:none!important}#notation .original-measure .hit-area{fill:transparent;stroke:none;pointer-events:all}#notation .original-measure.active-measure>.hit-area{fill:#65a486;fill-opacity:.14}.score-overlay{isolation:isolate}
.about-links,#storeLinks{display:flex;gap:9px;flex-wrap:wrap}.about-links a,#storeLinks a{display:inline-block;color:var(--accent);border:1px solid var(--line);border-radius:10px;text-decoration:none;padding:7px 15px}.app-download{padding:15px 0;border-top:1px solid var(--line);margin-top:16px}.app-download h3{font-weight:500;margin:4px 0 12px}#storeLinks button{font-size:12px}
body.focus .focus-bar{order:0;flex-shrink:0}body.focus .transport{display:block;order:1;position:relative;top:0;border-radius:0;padding:3px 10px;border-width:0 0 1px;box-shadow:none;flex-shrink:0}body.focus .transport-main,body.focus .progress-row{display:none}body.focus .tempo-controls{padding:0;margin:0;border:0}body.focus .score-scroll{order:2}body.focus .tempo-controls button{height:29px}body.focus .tempo-controls input[type=number]{font-size:15px}body.focus .tempo-controls #tempoWord{font-size:12px}
@media(max-width:600px){.arrangement-switch{width:100%;margin:0;justify-content:space-between}.arrangement-switch select{flex:1;max-width:none}.tempo-controls{gap:10px;flex-wrap:wrap}.tempo-controls .tempo-equation{width:100%;justify-content:center}.tempo-controls #speed{flex-basis:100%;height:20px}.tempo-controls #tempoWord{min-width:72px}.tempo-controls .unit-options{top:40px}.score-scroll{height:calc(100dvh - 360px);min-height:240px}body.focus .tempo-controls{flex-wrap:nowrap}body.focus .tempo-controls .tempo-equation{width:auto}body.focus .tempo-controls #speed{flex-basis:auto}body.focus #focusTitle{font-size:9px}}
/* Edition 8: readable versions, graded index and natural page scrolling. */
.brand-mark svg{width:40px;height:40px;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.brand-mark .black-key{stroke-width:3.1}.brand small{font-size:11px;letter-spacing:0}
.difficulty-filters{margin-top:-3px;margin-bottom:22px}.version-options{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 16px;padding:14px;background:var(--panel,#f1eee7);border-radius:14px}.version-options[hidden]{display:none}.version-chip{display:flex;align-items:center;gap:14px;padding:10px 16px;border:2px solid transparent;border-radius:10px}.version-chip.selected{border-color:currentColor;box-shadow:0 0 0 2px #ffffff90}.version-chip b{font-size:13px}.easy{background:#d9eee3;color:#235941}.medium{background:#fff0c5;color:#795512}.hard{background:#f4dce0;color:#893c50}.level-badge{font-size:12px;border-radius:7px;padding:5px 10px;white-space:nowrap}.dark .version-options{background:#203d3b}.dark .easy{background:#234f40;color:#c8efdd}.dark .medium{background:#5d4d25;color:#ffebba}.dark .hard{background:#603747;color:#ffd7e3}.arrangement-switch[hidden]{display:none}
.index-search{margin:22px 0}.graded-list{list-style:none;padding:0;margin:20px 0}.graded-list li{border-bottom:1px solid var(--line,#ddd)}.graded-list button{display:flex;align-items:center;gap:15px;width:100%;text-align:right;padding:15px 6px;border:0;background:transparent;border-radius:0}.graded-list button:hover{background:#788f8314}.index-number{font-size:13px;color:var(--muted);min-width:28px;font-variant-numeric:tabular-nums}.index-name{flex:1;min-width:0}.index-name strong{display:block;font-size:15px;font-weight:600;text-align:start}.index-name small{display:block;font-size:11px;color:var(--muted);margin-top:3px}
body:not(.focus) .score-scroll{height:auto;max-height:none;min-height:0;overflow-x:auto;overflow-y:hidden;overscroll-behavior:auto;touch-action:pan-x pan-y pinch-zoom;padding-bottom:12px}body:not(.focus) #player .transport{position:sticky;top:0;z-index:20;background:var(--paper,#fffdf8);box-shadow:0 5px 14px #18373110}body.dark:not(.focus) #player .transport{background:#203632}body.focus .version-options{display:none}.paper{touch-action:pan-x pan-y pinch-zoom}.work-card h3[dir=auto]{text-align:start}
@media(max-width:600px){.brand small{font-size:11px}.version-options{gap:7px;padding:10px}.version-chip{flex:1 1 110px;padding:9px 11px;gap:9px;font-size:12px}.version-chip span{white-space:normal}.index-name strong{font-size:14px}.graded-list button{gap:10px}body:not(.focus) .score-scroll{margin-inline:0;border-radius:8px;padding:4px}.brand-mark svg{width:36px;height:36px}}
/* Notiran campaign and continuous practice surface. */
.brand-mark{width:46px;height:46px;background:none!important;padding:0}.brand-mark svg{width:100%;height:100%;stroke:none}.brand{font-weight:650}.brand small{font-weight:400}.brand-mark svg path{stroke-linecap:round}
.campaign{height:410px;border-radius:25px;overflow:hidden;position:relative;background:#102e34;color:#fffdf5;isolation:isolate}.campaign-slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;visibility:hidden;transition:opacity .7s,visibility .7s;pointer-events:none}.campaign-slide.current{opacity:1;visibility:visible;pointer-events:auto}.campaign-copy{position:absolute;right:5%;top:25px;width:42%;z-index:2}.campaign-brand{display:flex;align-items:center;gap:9px;font-size:17px}.campaign-brand img{width:37px;height:37px}.campaign-brand small{display:block;font-size:9px;letter-spacing:1px;opacity:.7}.campaign-chip{font-size:10px;color:#d9c498;display:block;margin-top:17px;letter-spacing:.3px}.campaign h2{font-size:32px;line-height:1.65;font-weight:550;margin:7px 0 8px;color:white}.campaign-copy p{font-size:12px;line-height:1.9;color:#e0e7e3;margin:0;max-width:340px}.campaign-action{background:#f0debb;color:#1b3435;border:0;border-radius:10px;font-weight:600;font-size:11px;margin-top:20px;padding:10px 19px}.campaign-demo{position:absolute;left:4%;bottom:52px;width:43%;background:#fffdf7ed;color:#263e3d;padding:13px 16px 11px;border-radius:12px;box-shadow:0 15px 45px #0007;transform:rotate(-2deg);backdrop-filter:blur(8px)}.demo-title{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:9px;margin-bottom:8px}.demo-title>span{font-size:7px;letter-spacing:1.7px;opacity:.6}.demo-notation{direction:ltr;width:100%;height:95px;overflow:hidden;background:#fff;border-radius:5px}.demo-notation>svg{width:100%;height:100%;display:block}.demo-controls{display:flex;align-items:center;justify-content:center;gap:7px;margin-top:9px;font-size:8px}.demo-controls span{padding:4px 8px;border-radius:20px;background:#dde6e0;color:#294b44;white-space:nowrap}.demo-controls .demo-left{background:#f1e2c4;color:#785c2e}.demo-controls .easy{background:#d9eee3}.demo-controls .medium{background:#fff0c5}.demo-controls .hard{background:#f4dce0;color:#893c50}.campaign-controls{position:absolute;bottom:13px;right:5%;display:flex;gap:9px;align-items:center;z-index:4;direction:ltr}.campaign-controls button{background:#ffffff12;border:1px solid #ffffff35;color:#fff;padding:0;width:25px;height:25px;border-radius:50%;font-size:12px}.campaign-controls #heroPause{margin-left:10px;font-size:9px}#heroDots{display:flex;gap:6px}#heroDots button{width:5px;height:5px;background:#ffffff60;border:0;transition:width .25s}#heroDots button[aria-pressed=true]{width:19px;border-radius:8px;background:#e0bc73}.home-quick{display:flex;align-items:center;gap:19px;margin:12px 0 0;font-size:11px;color:var(--muted)}.home-quick>span{margin-left:auto}.home-quick button{font-size:11px}.all-artists-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:17px;margin:26px 0}.directory-artist{background:var(--card);border:1px solid var(--line);display:flex;align-items:center;flex-direction:column;text-align:center;padding:21px 9px;gap:8px;border-radius:19px}.directory-artist img{width:95px;height:95px;border-radius:50%;object-fit:cover}.directory-artist strong{font-size:13px}.directory-artist span{font-size:10px;opacity:.7}.directory-artist small{font-size:10px;color:var(--muted)}.view-modes{display:flex;align-items:center;gap:6px;margin:0 0 13px}.view-modes button{font-size:11px;border-radius:8px;padding:6px 12px}.view-modes button[aria-pressed=true]{background:var(--accent);color:#fff}.view-modes #meterNow{font:14px Georgia;color:var(--muted);margin-right:auto}.sheet-heading,.sheet-footer{display:none!important}.paper{position:relative}.panorama-view #paper{margin:0;max-width:none!important}.panorama-view .score-scroll{overflow-x:auto!important;overflow-y:hidden!important;min-height:0!important;direction:ltr;scrollbar-gutter:stable;overscroll-behavior-x:contain;padding:12px}.panorama-view #notation>svg{width:100%;height:auto}.panorama-view #panoCursor{position:absolute;width:2px;background:#d05942;box-shadow:0 0 0 3px #d0594212;pointer-events:none;z-index:5}.panorama-view .page-control{opacity:.45}.focus .view-modes{display:none}.focus.panorama-view .score-scroll{display:flex;align-items:center}.focus.panorama-view #paper{flex-shrink:0}.dark .campaign-action{background:#f0debb;color:#1b3435}
@media(max-width:900px){.campaign h2{font-size:28px}.campaign-copy{right:4%;width:45%}.all-artists-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:600px){.campaign{height:465px;border-radius:19px}.campaign-slide{background-position:32% center}.campaign-slide:after{content:'';position:absolute;inset:0;background:linear-gradient(270deg,#061c24e6 0%,#061c2480 60%,#061c2420)}.campaign-copy{top:19px;right:22px;width:calc(100% - 44px)}.campaign-brand{font-size:15px}.campaign-brand img{width:32px;height:32px}.campaign-chip{margin-top:12px;font-size:9px}.campaign h2{font-size:25px;line-height:1.6;margin:5px 0}.campaign-copy p{font-size:10px;max-width:260px;line-height:1.8}.campaign-action{margin-top:11px;padding:7px 14px;font-size:10px}.campaign-demo{z-index:2;left:6%;bottom:43px;width:88%;padding:10px 13px;transform:rotate(-1deg)}.demo-notation{height:73px}.demo-title{font-size:8px}.demo-controls{font-size:7px;margin-top:6px}.demo-controls span{padding:3px 6px}.campaign-controls{right:50%;transform:translateX(50%);bottom:10px}.home-quick{gap:12px;font-size:9px}.home-quick button{font-size:9px}.all-artists-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.directory-artist{padding:17px 7px}.directory-artist img{width:86px;height:86px}.directory-artist strong{font-size:12px}.view-modes button{font-size:10px;padding:6px 9px}.brand-mark{width:40px;height:40px}.brand-mark svg{width:40px;height:40px}.panorama-view .score-scroll{padding:5px}}
.demo-notation>img{width:100%;height:100%;object-fit:contain;display:block}.campaign-slide{overflow:hidden}.panorama-view:not(.focus) #scoreScroll{margin-bottom:65px}

/* REC-10: keep essential controls available in landscape focus mode. */
body.focus .recovery-notice{display:none}
body.focus .focus-bar{height:auto;min-height:44px;flex-wrap:wrap;gap:4px;flex-shrink:0}
body.focus .focus-bar button{min-width:40px;min-height:40px;flex-shrink:0;padding:3px 8px}
body.focus .focus-zoom{display:flex;align-items:center;gap:3px;direction:ltr;flex-shrink:0}
body.focus #focusFit{min-width:80px;font-size:10px}
body.focus #focusTitle{flex:1;min-width:0;max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
body.focus .practice-row{display:flex;order:1;flex-shrink:0;gap:5px 14px;padding:2px 10px;margin:0;border-bottom:1px solid var(--line);font-size:11px}
body.focus .practice-row label{display:inline-flex;align-items:center;gap:3px;min-height:36px;cursor:pointer;white-space:nowrap}
body.focus .practice-row [hidden]{display:none!important}
body.focus .practice-row select{min-height:36px;font-size:11px;padding:3px 8px}
body.focus .score-scroll{min-height:0}
@media(max-width:700px){body.focus #focusTitle{display:none}body.focus .focus-bar{column-gap:3px}body.focus .focus-bar button{padding-inline:5px}body.focus .practice-row{column-gap:10px}}

.booting main,.booting .bottom-nav{visibility:hidden}#startupStatus{padding:24px;text-align:center}.internal-preview{padding:5px 12px;background:#fff3cd;color:#493a16;text-align:center;font-size:11px}body.focus .internal-preview{display:none}

.preview-notice{padding:7px 12px;background:#fff1cb;color:#493d22;font-size:12px;border-radius:8px}.preview-notice[hidden]{display:none}.preview-notice a{color:#184b44;text-decoration:underline;white-space:nowrap}body.focus .preview-notice{border-radius:0;padding:3px 8px;font-size:10px;flex-shrink:0}


/* PAGE_VIEW_FIX_01: readable current measure, with an audible-time cursor. */
body:not(.panorama-view) #notation .measure.active-measure > .hit-area{
 fill:#418873;fill-opacity:.24;stroke:#397960!important;stroke-opacity:.48;
 stroke-width:1;vector-effect:non-scaling-stroke;
}
#notation{position:relative}
#pageCursor{position:absolute;left:0;top:0;width:6px;background:transparent;contain:strict;pointer-events:none;will-change:transform;z-index:5}
#pageCursor>div{position:absolute;top:0;height:100%;border-radius:2px;pointer-events:none}
#pageCursor .page-cursor-halo{display:none}
#pageCursor .page-cursor-line{left:2.25px;width:1.5px;background:rgba(190,77,55,.4);opacity:1}
@media print{
 #pageCursor{display:none!important}
 body:not(.panorama-view) #notation .measure.active-measure > .hit-area{fill:transparent;stroke:none!important}
}

/* MOBILE_VIEW_FIX_01: keep practice controls compact, without reducing touch targets. */
@media (max-width:600px), (max-width:1100px) and (max-height:600px) and (pointer:coarse){
 #player .transport{padding:6px 8px}
 #player .transport-main{gap:6px;flex-wrap:nowrap}
 #player .transport-main>.icon-btn{width:36px;height:36px;min-height:36px}
 #player .transport .play{min-height:36px;padding:4px 12px;min-width:72px}
 #player .time-readout{margin-inline-start:auto;margin-inline-end:0;min-width:75px;font-size:10px;line-height:1.5}
 #player .progress-row{height:24px;margin-top:0}
 #player .tempo-controls{flex-wrap:nowrap;gap:8px;padding-top:4px;margin-top:0}
 #player .tempo-controls .tempo-equation{width:auto;gap:4px;justify-content:flex-start}
 #player .tempo-equation input{width:48px;font-size:16px;padding:3px}
 #player .tempo-controls .tempo-equation button{height:36px;min-width:32px;padding:3px 5px}
 #player .tempo-controls #tempoWord{display:none}
 #player .tempo-controls #speed{min-width:50px;flex:1 1 60px;height:28px}
 #player .tempo-controls .unit-options{top:100%;z-index:60}
 #player .practice-row{gap:3px 8px;padding:3px 0;margin:0;font-size:10px;flex-wrap:wrap}
 #player .practice-row label{min-height:32px;display:inline-flex;align-items:center;gap:3px;white-space:nowrap}
 #player .practice-row input{margin:0;flex-shrink:0}
 #player .practice-row select{min-height:32px;padding:2px 5px;font-size:10px}
 #player .view-modes{margin-bottom:6px}
 #player .view-modes button{min-height:32px;padding:4px 9px}
 #player .score-tools{margin-bottom:7px;gap:5px}
 #player .score-tools button{min-height:32px}
 #player .player-title{margin-bottom:9px;gap:6px}
 #player .player-title h1{font-size:19px;line-height:1.6;margin-bottom:3px}
 #player .version-options{padding:6px;margin-bottom:9px;gap:6px}
 #player .version-chip{padding:5px 8px;min-height:36px;gap:6px;font-size:11px}
 #player .version-chip b{font-size:11px}
 body.focus .focus-bar{padding:3px max(5px,env(safe-area-inset-left)) 3px max(5px,env(safe-area-inset-right));gap:3px;min-height:42px}
 body.focus .focus-bar button{min-width:36px;min-height:36px;padding:2px 5px}
 body.focus #focusPage{min-width:24px;text-align:center;font-size:10px}
 body.focus #player .transport{padding:2px max(5px,env(safe-area-inset-left)) 2px max(5px,env(safe-area-inset-right))}
 body.focus #player .tempo-controls{padding:0;gap:4px}
 body.focus #player .practice-row{padding:2px max(5px,env(safe-area-inset-left));border-bottom:1px solid var(--line);justify-content:flex-start}
 body.mobile-focus-controls .focus-bar{flex-wrap:nowrap;justify-content:space-between}
 body.mobile-focus-controls #focusTitle{display:none}
 body.mobile-focus-controls #player .tempo-controls{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:6px;row-gap:0;direction:ltr}
 body.mobile-focus-controls .focus-zoom{display:flex;align-items:center;justify-content:flex-start;gap:2px;direction:ltr;min-width:0}
 body.mobile-focus-controls .focus-zoom button{min-width:32px;min-height:36px;padding:2px 4px}
 body.mobile-focus-controls .focus-zoom svg{width:17px;height:17px}
 body.mobile-focus-controls #focusFit{min-width:72px;font-size:9px}
 body.mobile-focus-controls #player .tempo-controls #speed{grid-column:1/-1;width:100%;height:24px;margin:0;min-width:0}
 body.mobile-focus-controls .tempo-controls .tempo-equation{justify-content:flex-end}
 body.mobile-focus-controls .unit-options{direction:rtl}
 body.mobile-focus-controls.panorama-view #focusPrev,body.mobile-focus-controls.panorama-view #focusNext{display:none}
}
@media (min-width:700px) and (max-width:1100px) and (max-height:600px) and (pointer:coarse){
 body.focus #player{display:grid;grid-template-columns:minmax(280px,1fr) auto;grid-template-rows:auto auto auto minmax(0,1fr)}
 body.focus .focus-bar{grid-area:1/1/2/-1}
 body.focus .transport{grid-area:2/1/3/2;min-width:0}
 body.focus #player .practice-row{grid-area:2/2/3/3;flex-wrap:nowrap;padding-inline:5px;align-items:center}
 body.focus .preview-notice{grid-area:3/1/4/-1}
 body.focus .score-scroll{grid-area:4/1/5/-1;min-width:0;min-height:0;height:auto}
 body.focus #focusTitle{max-width:140px}
}
/* End MOBILE_VIEW_FIX_01. */
/* IDENTITY_FIX_01: original Honarino mark, no layout/timing changes. */
.brand-mark img{display:block;width:100%;height:100%;object-fit:contain;border-radius:10px;background:#fff}
.campaign-brand img{object-fit:contain;border-radius:8px;background:#fff}
.brand small{white-space:normal}

/* FREE_PREVIEW_01 — catalog discovery and a single authorized page. */
.access-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 14px}
.access-filters button{border-radius:24px;min-height:42px;font-size:12px}
.access-filters .muted{margin-inline-start:auto}.access-filters #freeCount{font-size:11px;margin-inline-start:5px}
.score-access{display:inline-block;font-size:10px;line-height:1.8;color:var(--muted);margin-top:8px}
.score-access.free{background:var(--soft);color:var(--accent);border-radius:6px;padding:1px 7px}
.paper.limited-preview #notation{-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 44%,rgba(0,0,0,.7) 62%,rgba(0,0,0,.15) 82%,transparent 96%);mask-image:linear-gradient(to bottom,#000 0%,#000 44%,rgba(0,0,0,.7) 62%,rgba(0,0,0,.15) 82%,transparent 96%)}
.preview-notice{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;background:var(--soft);color:var(--text);border:1px solid var(--line);border-radius:12px;padding:10px 14px;margin-bottom:12px;font-size:12px}
.preview-notice a{color:var(--accent);font-weight:bold}
.preview-end{padding:24px 18px;margin:16px 0;background:var(--card);border:1px solid var(--line);border-radius:16px;text-align:center}
.preview-end h2{font-size:21px;margin:5px 0}.preview-end p{margin:8px auto;max-width:540px}
.preview-actions{display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap;margin:16px 0}
.preview-actions a{padding:9px 16px;border-radius:11px;color:var(--accent);text-decoration:none;border:1px solid var(--line)}
.preview-actions a.primary{background:var(--accent);color:var(--card);border-color:var(--accent)}
.preview-notice[hidden],.preview-end[hidden],.preview-actions a[hidden]{display:none!important}
body.focus .preview-notice,body.focus .preview-end{display:none}
@media(max-width:600px){.access-filters .muted{flex-basis:100%;margin:0;font-size:10px}.preview-end h2{font-size:18px}.home-quick{flex-wrap:wrap}.preview-notice{font-size:11px}}

/* Compact sheet cards: three columns when phone width permits, two on narrow screens. */
.catalog{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;align-items:stretch}
.work-card{border-radius:13px;box-shadow:0 3px 10px #142e2606}
.card-open{display:flex;flex-direction:column;padding:0;min-width:0}
.score-thumbnail{width:100%;aspect-ratio:9/7;overflow:hidden;background:#fff;border-bottom:1px solid var(--line)}
.score-thumbnail>img{display:block;width:100%;height:100%;object-fit:cover}
.score-card-copy{width:100%;padding:11px 12px 10px;min-width:0}
.card-open h3{font-size:17px;font-weight:600;line-height:1.6;margin:0;height:3.2em;padding:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card-en{font:10px/1.5 Tahoma,sans-serif;text-align:start;height:3em;min-height:0;margin-top:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card-artist{display:flex;align-items:center;gap:5px;margin-top:8px;height:26px;font-size:10px;color:var(--muted);min-width:0}
.card-artist img{width:24px;height:24px;border-radius:50%;object-fit:cover;flex:none}.card-artist span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.favorite{top:5px;left:5px;width:30px;height:30px;border-radius:50%;background:var(--card);border:1px solid var(--line);display:grid;place-items:center;padding:0;font-size:21px;line-height:1;box-shadow:0 1px 5px #0001}
.card-footer{padding:8px;gap:5px;align-items:center;background:var(--card);border-top:1px solid var(--line);font-size:9px;min-height:38px}
.card-footer .score-access{margin:0;padding:2px 5px;font-size:9px;border-radius:5px;white-space:nowrap}
.level-tag{font-size:9px;color:var(--muted);white-space:nowrap}.level-tag.easy{color:var(--accent)}
.home-quick{margin:12px 0;gap:10px}.home-quick>span{margin-inline-end:auto}
#catalogTop{margin-top:20px}.access-filters{margin-bottom:10px}
@media(max-width:1000px){.catalog{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:700px){.catalog{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.score-card-copy{padding:8px}.card-open h3{font-size:14px}.card-en{font-size:9px}.card-artist{font-size:9px}.card-footer{padding:6px 5px;gap:2px}.card-footer .score-access,.level-tag{font-size:8px}.card-artist img{width:20px;height:20px}.score-thumbnail{aspect-ratio:1}.home-quick>span{font-size:10px}.access-filters .muted{display:none}#catalogTop h2{font-size:21px}.chips{padding-top:9px;padding-bottom:10px}}
@media(max-width:379px){.catalog{grid-template-columns:repeat(2,minmax(0,1fr))}.score-thumbnail{aspect-ratio:9/7}.card-open h3{font-size:15px}.card-footer .score-access,.level-tag{font-size:9px}}
/* Reclaim phone space while retaining every practice control. */
@media(max-width:600px){.app-header{padding-top:12px;padding-bottom:12px}.player-title{gap:8px;margin-bottom:8px}.player-title h1{font-size:21px}.practice-row{padding-top:9px;padding-bottom:9px;gap:10px}.view-modes{margin-top:0;margin-bottom:7px}.score-tools{margin-bottom:8px}.preview-notice{padding:7px 10px;gap:5px}}

@media(max-width:600px){
 .campaign{height:205px;border-radius:16px}.campaign-demo,.campaign-brand,.campaign-chip{display:none}
 .campaign-copy{top:12px;right:18px;width:calc(100% - 36px)}
 .campaign h2{font-size:22px;line-height:1.4;margin:0 0 5px;max-width:95%}
 .campaign-copy p{font-size:10px;line-height:1.65;max-width:100%;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
 .campaign-action{margin-top:8px;padding:5px 12px}.campaign-controls{bottom:9px}
 #catalogTop{margin-top:15px;margin-bottom:10px}.home-quick{margin:9px 0;row-gap:2px}
}

.favorite{width:34px;height:34px}.favorite svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round}.favorite[aria-pressed=true] svg{fill:currentColor}
.score-thumbnail img[hidden]{display:none}.score-thumbnail.thumbnail-missing{background:repeating-linear-gradient(to bottom,#fff 0,#fff 22px,#dfe5df 23px,#fff 24px)}
.card-en[dir=auto]{unicode-bidi:plaintext}

/* CARD_DESIGN_01 — Honarino emerald and brass score sleeves, scoped to the library. */
#library{
 --score-shell:#0a3838;--score-panel:#104847;--score-edge:#346560;
 --score-title:#fff9e8;--score-secondary:#c0d4ce;--score-gold:#ebc77d;
 --score-rule:#49706a;--score-free:#d8ecdd;--score-free-ink:#124d40;
 --score-badge:#174643;--score-shadow:0 6px 18px #092e3024,0 1px 3px #092e3020;
}
body.dark #library{
 --score-shell:#123b3e;--score-panel:#17474a;--score-edge:#487475;
 --score-title:#fbf5e7;--score-secondary:#c1d5d0;--score-gold:#efd08e;
 --score-rule:#406969;--score-free:#b6dac5;--score-free-ink:#103f36;
 --score-badge:#163c3e;--score-shadow:0 8px 22px #0004,0 1px 2px #0003;
}
#library .catalog{gap:18px;padding:3px 0 14px}
#library .work-card{
 background:var(--score-shell);border:1px solid var(--score-edge);border-radius:17px;
 box-shadow:var(--score-shadow);isolation:isolate;transition:box-shadow .2s,border-color .2s;
}
#library .card-open{background:transparent;color:var(--score-title);border-radius:0;text-align:start}
#library .score-thumbnail{
 position:relative;width:calc(100% - 16px);margin:8px 8px 0;aspect-ratio:9/7;
 border:1px solid #d1d3ba;border-radius:10px 10px 2px 2px;background:#fff;
}
#library .score-thumbnail:after{content:'';position:absolute;inset:0;pointer-events:none}
#library .score-thumbnail>img{filter:none}
body.dark #library .score-thumbnail{background:#fff;border-color:#758e81}
body.dark #library .score-thumbnail>img{filter:none}
#library .score-card-copy{
 position:relative;padding:15px 14px 12px;background:linear-gradient(135deg,var(--score-panel),var(--score-shell));
 margin-top:10px;border-top:1px solid var(--score-rule);flex:1;
}
#library .score-card-copy:before{
 content:'';position:absolute;top:-1px;inset-inline-start:14px;width:28px;height:2px;background:var(--score-gold);border-radius:2px;
}
#library .card-open h3{color:var(--score-title);font-size:17px;line-height:1.55;height:3.1em;font-weight:700;letter-spacing:-.2px}
#library .card-en{color:var(--score-secondary);font-size:11px;line-height:1.55;height:3.1em;margin-top:3px}
#library .card-artist{color:var(--score-secondary);height:28px;margin-top:9px;gap:7px;font-size:11px}
#library .card-artist img{width:27px;height:27px;border:1px solid #c5b989;border-radius:50%;box-shadow:0 0 0 2px #ffffff08}
#library .card-footer{
 background:var(--score-shell);border-top:1px solid var(--score-rule);padding:10px;gap:5px;min-height:43px;
}
#library .card-footer .level-tag{
 color:var(--score-secondary);background:none;padding:0;font-size:10px;line-height:1.6;
}
#library .card-footer .score-access{
 font-size:10px;line-height:1.6;font-weight:500;border:1px solid #9a8552;color:var(--score-gold);
 background:var(--score-badge);padding:2px 7px;border-radius:6px;
}
#library .card-footer .score-access.free{color:var(--score-free-ink);background:var(--score-free);border-color:var(--score-free)}
#library .favorite{top:13px;left:13px;width:34px;height:34px;color:#31514c;border-color:#aebbaf;background:#fffdf4;box-shadow:0 2px 6px #123b3825}
#library .favorite[aria-pressed=true]{color:#f7dc9b;background:#155b51;border-color:#c6ae72}
#library .favorite:focus-visible,#library .card-open:focus-visible{outline:3px solid var(--score-gold);outline-offset:-4px}
#library .work-card:focus-within{border-color:var(--score-gold)}
#library #listTitle{font-weight:650;letter-spacing:-.5px}
#library #catalogTop{padding-bottom:10px;border-bottom:1px solid var(--line)}
#library .access-filters button[aria-pressed=true]{color:#fff8e7;background:#15534e;border-color:#15534e;box-shadow:0 2px 5px #184b4320}
body.dark #library .access-filters button[aria-pressed=true]{color:#122e2b;background:#d8bc7e;border-color:#d8bc7e}
#library .search-box{box-shadow:0 2px 7px #123d3510}
#library #difficultyFilters{margin-bottom:8px}
@media(hover:hover) and (pointer:fine){
 #library .work-card:hover{border-color:#b29a63;box-shadow:0 10px 24px #092e3030,0 1px 3px #092e3020}
 #library .card-open:hover{background:transparent}
 #library .favorite:hover{background:#ead8ab;color:#164c46}
}
@media(max-width:1000px){#library .catalog{gap:12px}}
@media(max-width:700px){
 #library .catalog{gap:9px}
 #library .work-card{border-radius:12px}
 #library .score-thumbnail{width:calc(100% - 10px);margin:5px 5px 0;border-radius:7px 7px 2px 2px;aspect-ratio:1.1}
 #library .score-card-copy{padding:11px 8px 9px;margin-top:7px}
 #library .score-card-copy:before{inset-inline-start:8px;width:20px}
 #library .card-open h3{font-size:14px;line-height:1.55;height:3.1em}
 #library .card-en{font-size:10px;line-height:1.45;height:2.9em}
 #library .card-artist{font-size:9px;gap:4px;margin-top:7px;height:24px}
 #library .card-artist img{width:22px;height:22px}
 #library .card-footer{padding:7px 5px;gap:3px;min-height:36px}
 #library .card-footer .level-tag{font-size:8px;letter-spacing:-.1px}
 #library .card-footer .score-access{font-size:9px;padding:1px 4px;border-radius:5px}
 #library .favorite{top:9px;left:9px;width:30px;height:30px}
}
@media(max-width:379px){
 #library .score-thumbnail{aspect-ratio:9/7}
 #library .card-open h3{font-size:15px}
 #library .card-artist{font-size:10px}
 #library .card-footer{padding:8px}
 #library .card-footer .level-tag{font-size:9px}
}
@media(prefers-reduced-motion:reduce){#library .work-card,#library .score-thumbnail>img{transition:none}}
/* End CARD_DESIGN_01. */

/* The score image keeps its original colors in both themes. Compact, centered copy. */
#library{background:radial-gradient(ellipse at 80% 45%,#0a62550b,transparent 65%)}
body.dark #library{background:radial-gradient(ellipse at 70% 45%,#39a7960d,transparent 65%)}
#library .score-card-copy{display:flex;flex-direction:column;justify-content:flex-start;padding:11px 12px 10px;min-height:122px}
#library .card-open h3{height:auto;text-align:center;line-height:1.45;flex-shrink:0}
#library .card-en{height:auto;text-align:center;margin-top:2px;line-height:1.4;flex-shrink:0}
#library .card-artist{height:auto;min-height:32px;margin-top:auto;padding-top:9px;justify-content:center;font-size:12px;line-height:1.45;color:#dbe6da}
#library .card-artist span{white-space:normal;text-overflow:clip;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-align:center}
#library .card-artist img{flex-shrink:0;width:25px;height:25px}
#library .card-footer{min-height:36px;padding-top:7px;padding-bottom:7px}
@media(max-width:700px){
 #library .score-card-copy{min-height:108px;padding:9px 7px 8px}
 #library .card-open h3{font-size:14px;height:auto;line-height:1.4}
 #library .card-en{font-size:10px;height:auto;line-height:1.35}
 #library .card-artist{font-size:11px;line-height:1.4;min-height:31px;padding-top:7px;margin-top:auto;gap:4px}
 #library .card-artist img{width:20px;height:20px}
 #library .card-footer{min-height:33px;padding:6px 5px}
}
@media(max-width:379px){
 #library .score-card-copy{min-height:111px}
 #library .card-open h3{font-size:15px}
 #library .card-artist{font-size:11.5px}
}
/* Signature detail uses the unchanged original mark; black is removed by screen blending. */
#library .score-card-copy{isolation:isolate;overflow:hidden}
#library .score-card-copy:after{
 content:'';position:absolute;inset-inline-end:-10px;bottom:-10px;width:90px;height:90px;
 background:url('/assets/media/honarino-logo.jpg') center/contain no-repeat;
 filter:grayscale(1) invert(1);mix-blend-mode:screen;opacity:.11;pointer-events:none;z-index:-1;
}
#library .work-card{transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
#library .score-thumbnail>img{transition:transform .3s ease;transform-origin:center}
#library .card-open h3{transition:color .2s ease}
@media(hover:hover) and (pointer:fine){
 #library .work-card:hover{transform:translateY(-4px);border-color:#d3b375;box-shadow:0 13px 26px #092e3038,0 0 0 1px #d3b37540}
 #library .card-open:hover .score-thumbnail>img{transform:scale(1.025)}
 #library .card-open:hover h3{color:#f0d399}
}
#library .card-open:active{box-shadow:inset 0 0 0 2px #e3c28488}
#library .favorite:active{transform:scale(.94)}
@media(max-width:700px){#library .score-card-copy:after{width:70px;height:70px;opacity:.1}}
@media(prefers-reduced-motion:reduce){
 #library .work-card,#library .score-thumbnail>img,#library .card-open h3{transition:none}
 #library .work-card:hover,#library .card-open:hover .score-thumbnail>img,#library .favorite:active{transform:none}
}

/* NOTE_READING_NR02: one compact exercise dock, independent of musical playback. */
#noteReading[hidden],#noteReading [hidden]{display:none!important}
.nr-dock{position:fixed;bottom:max(8px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(620px,calc(100vw - 16px));z-index:90;max-height:60dvh;overflow:auto;background:var(--card);color:var(--text);border:1px solid var(--line);border-top:3px solid var(--accent);border-radius:18px;padding:8px 14px;box-shadow:0 6px 32px #103b3840;direction:rtl}
.nr-heading{display:flex;align-items:center;gap:10px;font-size:12px;min-height:24px}.nr-heading>strong{color:var(--accent)}.nr-heading>span{margin-right:auto;color:var(--muted);font-size:11px}.nr-heading button{font-size:23px;width:30px;height:28px;padding:0;border:0;background:none;line-height:1}
.nr-answer{text-align:center;font-size:18px;min-height:28px;color:var(--accent)}.nr-actions{display:grid;grid-template-columns:1fr 1.6fr 1fr;gap:8px;direction:rtl}.nr-actions button{min-height:39px;font-size:13px;padding:5px 8px}.nr-actions button:disabled{opacity:.4}
.nr-selectors{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:7px 0 2px}.nr-selectors fieldset{border:0;padding:0;margin:0;display:flex;gap:10px;font-size:12px;white-space:nowrap}.nr-selectors label{cursor:pointer;display:flex;align-items:center;gap:3px;min-height:30px}.nr-selectors input,.nr-choices input{accent-color:var(--accent);margin:0;width:15px;height:15px}
.nr-speed{display:flex;align-items:center;gap:14px;font-size:11px;min-height:30px}.nr-speed label{white-space:nowrap}.nr-speed output{font-weight:bold;margin-right:6px}.nr-speed input{min-width:70px;flex:1;margin:0;direction:ltr}
.nr-settings{font-size:11px}.nr-settings summary{cursor:pointer;color:var(--accent);padding:2px 0}.nr-choices{display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding:5px 0}.nr-choices label{display:flex;align-items:center;gap:4px}.nr-choices select{font-size:11px;max-width:70px;padding:2px 5px}
.nr-help{font-size:11px;color:var(--muted)}#nrHint{margin:2px 0 0}#nrStatus{margin:3px 0 0}#nrStatus:empty{display:none}#nrReadMeasure{font-size:11px;padding:3px 9px}.nr-access{color:var(--accent);font-weight:bold}
.nr-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.note-reading-active .transport,.note-reading-active .focus-bar,.note-reading-active .practice-row,.note-reading-active .bottom-nav,.note-reading-active #pageCursor,.note-reading-active #panoCursor,.note-reading-active #player>.hint{display:none!important}
.note-reading-active #player{padding-bottom:calc(var(--nr-dock-height,245px) + 24px)}.note-reading-active #paper{scroll-margin-top:20px}.note-reading-active .player-title{margin-bottom:5px}.note-reading-active .score-tools{margin:5px 0;display:flex!important}
.note-reading-active .version-options,.note-reading-active .app-header,.note-reading-active .internal-preview{display:none!important}
body.focus.note-reading-active{overflow:auto}body.focus.note-reading-active #player{display:block;height:auto}
body.note-reading-active .score-scroll{height:auto;max-height:none;min-height:0;overflow-x:auto;overflow-y:hidden;touch-action:pan-x pan-y pinch-zoom}
#notation .reading-note .notehead use,#notation .reading-note.rest use,#notation .reading-note.mRest use{fill:#078b83!important;color:#078b83!important;filter:drop-shadow(0 0 8px #25a69c66)}
#notation .reading-measure>.hit-area{fill:#36a89d!important;fill-opacity:.08!important}.note-reading-active #notation .note,.note-reading-active #notation .rest,.note-reading-active #notation .mRest{cursor:pointer;touch-action:pan-x pan-y pinch-zoom}
.note-reading-active #notation [role=button]:focus-visible{outline:2px solid #078b83;outline-offset:3px}
@media(max-width:430px){.nr-dock{padding:7px 9px}.nr-selectors{gap:4px}.nr-selectors fieldset{gap:6px;font-size:11px}.nr-heading{gap:5px;font-size:11px}.nr-heading>span{font-size:10px}.nr-answer{font-size:17px}.nr-actions button{font-size:12px}}
@media(max-width:350px){.nr-selectors{flex-wrap:wrap;justify-content:center;margin:2px 0}.nr-selectors fieldset{min-height:25px}.nr-selectors label{min-height:25px}}
@media(min-width:650px) and (max-height:550px){.nr-dock{width:min(920px,calc(100vw - 16px));display:grid;grid-template-columns:1fr 1fr;column-gap:20px;padding:5px 12px}.nr-heading{grid-column:1/-1}.nr-main{grid-column:1;grid-row:2/5}.nr-selectors{grid-column:2;grid-row:2;margin:0}.nr-speed{grid-column:2;grid-row:3}.nr-settings{grid-column:2;grid-row:4}.nr-help{grid-column:1/-1}.nr-answer{min-height:25px;font-size:16px}.nr-actions button{min-height:35px}.note-reading-active .app-header,.note-reading-active .internal-preview,.note-reading-active .player-title{display:none}.note-reading-active .score-tools{margin:2px 0}}
@media(prefers-reduced-motion:reduce){.note-reading-active *{scroll-behavior:auto!important}}

/* NR03: small transport buttons alongside the answer; speed without time units. */
.nr-main{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;margin:3px 0}
.nr-answer{min-height:0;line-height:1.5;font-size:17px;text-align:right;padding-inline:4px}
.nr-actions{grid-template-columns:repeat(3,40px);gap:5px}
.nr-actions button{width:40px;min-height:40px;height:40px;padding:0;font-size:20px;line-height:1;border-radius:12px}
.nr-actions .primary{font-size:14px}
.nr-speed{gap:12px;min-height:29px}.nr-speed-track{display:flex;align-items:center;direction:ltr;gap:6px;flex:1;min-width:0}.nr-speed-track span{font-size:10px;color:var(--muted);white-space:nowrap}.nr-speed-track input{min-width:35px}
.nr-selectors{margin-top:3px}
@media(min-width:650px) and (max-height:550px){.nr-main{grid-row:2/4}.nr-actions button{min-height:40px}.nr-settings{grid-column:1/-1;grid-row:4}.nr-help{grid-row:5}.nr-dock{column-gap:14px}}

.nr-piano{margin-top:4px;border-top:1px solid var(--line);padding-top:2px}
.nr-piano summary{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--accent);cursor:pointer;min-height:23px;list-style:none}.nr-piano summary::-webkit-details-marker{display:none}.nr-piano summary:before{content:'▸';font-size:12px}.nr-piano[open] summary:before{content:'▾'}.nr-piano-range{font-size:9px;color:var(--muted);margin-right:auto}
.nr-piano-body{direction:ltr;border-radius:8px;overflow:hidden;background:#173c38;padding:4px 4px 2px}
.nr-piano-overview{height:10px;position:relative;width:100%;margin-bottom:4px;opacity:.85;overflow:hidden;border-radius:2px}
.nr-piano-scroll{overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#74a89a #173c38;touch-action:pan-x pan-y pinch-zoom;direction:ltr}
.nr-piano-keys{height:61px;min-width:980px;position:relative;isolation:isolate}
.nr-key{position:absolute;top:0;display:block;border-radius:0 0 3px 3px;box-sizing:border-box;transition:background .08s,box-shadow .08s;pointer-events:none}
.nr-white{height:100%;z-index:1;background:linear-gradient(100deg,#fffef9 0%,#f6f5eb 75%,#dbdfd4 100%);border:1px solid #abb8b0;border-top:0;box-shadow:inset 0 -3px 0 #c9d2c8}
.nr-black{height:62%;z-index:2;background:linear-gradient(100deg,#101e20,#354443 65%,#122525);border:1px solid #061a19;border-top:0;box-shadow:inset 0 -3px 0 #081c1b,1px 2px 2px #0005}
.nr-key small{position:absolute;bottom:3px;left:0;right:0;text-align:center;font-size:8px;line-height:1.2;color:#64766c;white-space:nowrap}
.nr-key i{display:none;position:absolute;left:50%;bottom:14px;width:5px;height:5px;border-radius:50%;transform:translateX(-50%);background:#fff7df;box-shadow:0 0 5px #fff8}
.nr-key.is-current{background:linear-gradient(160deg,#63d2b0,#218977 75%,#14695d);box-shadow:inset 0 -3px 0 #0c5c50,0 0 9px #57d7b36b;border-color:#166354}.nr-black.is-current{background:linear-gradient(150deg,#f5ddb0,#d29b57);border-color:#90652f;box-shadow:inset 0 -3px 0 #a97436,0 0 8px #e4bb807a}.nr-key.is-current i{display:block}.nr-key.is-current small{color:#fff8e5}
.nr-piano-overview .nr-key{border-radius:0;box-shadow:none}.nr-piano-overview .nr-key small,.nr-piano-overview .nr-key i{display:none}.nr-piano-overview .nr-key.is-current{background:#57d7b3}.nr-piano-overview .nr-black.is-current{background:#efc484}
@media(min-width:650px) and (max-height:550px){.nr-main{grid-row:2}.nr-speed{grid-row:3}.nr-settings{grid-column:1;grid-row:3}.nr-piano{grid-column:1/-1;grid-row:4}.nr-help{grid-row:5}.nr-piano-keys{height:48px;min-width:980px}.nr-piano summary{min-height:19px}.nr-piano-body{padding-top:3px}.nr-piano-overview{height:7px;margin-bottom:3px}}
@media(prefers-reduced-motion:reduce){.nr-key{transition:none}}
.nr-piano-heading{display:flex;align-items:center;gap:7px;font-size:11px;min-height:27px;color:var(--accent)}.nr-piano-heading small{color:var(--muted);font-size:9px;margin:0}.nr-piano-heading button{margin-right:auto;padding:2px 8px;font-size:10px;min-height:25px;border-radius:8px;background:var(--soft)}
.nr-piano-keys{min-width:0;width:100%;height:59px}.nr-piano-overview{display:none}.nr-piano.is-near .nr-piano-overview{display:block}.nr-piano-scroll{scrollbar-width:none}.nr-piano-scroll::-webkit-scrollbar{display:none}
@media(min-width:650px) and (max-height:550px){.nr-piano-keys{min-width:0;height:43px}.nr-piano-heading{min-height:23px}.nr-piano-heading button{min-height:22px;padding:0 8px}.nr-key small{font-size:7px}}

.practice-row .reading-primary{padding:5px 8px 5px 5px;border-radius:14px;background:var(--soft);border:1px solid var(--accent);gap:10px}
.practice-row #readingLaunch{font-size:13px;font-weight:700;padding:9px 15px;min-height:43px;background:linear-gradient(135deg,#256c60,#13463e);color:#fff9e9;border-color:#205c50;box-shadow:0 3px 9px #174f3826}
#readingLaunch>span{font-size:20px;line-height:1;margin-left:7px;color:#e8d0a2}.practice-row #readingLaunch:hover{filter:brightness(1.1)}
#library .card-actions{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:7px 9px 9px;background:var(--card)}
#library .card-actions button{font-size:11px;padding:5px 4px;min-height:35px;border-radius:9px;font-weight:600;line-height:1.5}
#library .card-actions [data-read-work]{background:var(--accent);color:var(--card);border-color:var(--accent)}
#library .card-actions button:hover{filter:brightness(1.1);box-shadow:0 2px 8px #123e3920}#library .card-actions button span{margin-left:3px}
@media(max-width:600px){.practice-row .reading-primary{width:100%;justify-content:space-between}.practice-row #readingLaunch{flex:1;font-size:12px;padding:8px 9px}.practice-row .reading-primary small{font-size:9px;max-width:74px}#library .card-actions{grid-template-columns:1fr;gap:4px;padding:5px 5px 7px}#library .card-actions button{min-height:31px;font-size:10px;padding:3px 2px}}

/* Fit the exercise around the score: compact controls, one shared piano row. */
.nr-help{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:10px;line-height:1.5}
#nrHint{margin:2px 0}#nrStatus{flex-basis:100%}#nrReadMeasure{margin-right:auto;font-size:10px;line-height:1.5;padding:3px 7px}
.nr-dock{padding:6px 10px}.nr-main{gap:6px;margin:1px 0}.nr-selectors{margin:0}.nr-settings summary{padding:0;min-height:24px;display:list-item}.nr-choices{gap:6px;padding:2px 0}
@media(min-width:650px){
 .nr-dock{width:min(900px,calc(100vw - 16px));display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 16px;padding:4px 10px;border-radius:14px}
 .nr-heading{grid-column:1;grid-row:1;font-size:11px;gap:6px}.nr-heading>span{font-size:10px}
 .nr-main{grid-column:2;grid-row:1;margin:0}.nr-answer{font-size:16px}.nr-actions button{height:36px;min-height:36px;width:36px;border-radius:10px}.nr-actions{grid-template-columns:repeat(3,36px);gap:4px}
 .nr-selectors{grid-column:1;grid-row:2;gap:4px}.nr-selectors fieldset{font-size:11px;gap:7px}.nr-selectors label{min-height:28px}
 .nr-speed{grid-column:2;grid-row:2;min-height:28px}
 .nr-settings{grid-column:1;grid-row:3}.nr-help{grid-column:2;grid-row:3;align-self:start;min-height:24px;justify-content:flex-end}
 .nr-piano{grid-column:1/-1;grid-row:4;margin-top:0;padding-top:0}.nr-piano-heading{min-height:24px}.nr-piano-heading button{min-height:23px;padding:0 8px}.nr-piano-keys{height:46px}.nr-piano-body{padding:3px 3px 2px}.nr-key small{font-size:7px}
}
@media(orientation:landscape) and (max-height:450px){.nr-dock{bottom:max(4px,env(safe-area-inset-bottom));max-height:68dvh}.nr-piano-keys{height:39px}.nr-piano-heading{min-height:22px}.nr-piano-heading button{min-height:22px}}

/* AI03: a quiet entry, with a readable conversation beside the lesson. */
.guide-launch{position:fixed;z-index:85;left:max(16px,env(safe-area-inset-left));bottom:100px;display:flex;align-items:center;gap:8px;padding:7px 12px;border-radius:18px;background:linear-gradient(135deg,#256c60,#133e39);border:1px solid #7fbaaa;color:#fff9ea;box-shadow:0 5px 20px #123a3833;line-height:1.45;font-size:12px;text-align:right}.guide-launch>span:first-child{font:27px Georgia;color:#e8c98e}.guide-launch small{display:block;color:#d2e3d9;font-size:9px}.guide-launch:hover{background:#245e53;transform:translateY(-1px)}
.note-reading-active .guide-launch{display:none}.focus .guide-launch{bottom:74px}.nr-heading .guide-inline{border:1px solid var(--line);border-radius:7px;background:var(--soft);color:var(--accent);font-size:10px;width:auto;height:25px;line-height:1.4;padding:2px 6px;white-space:nowrap}.practice-row #guidePlayer{font-weight:bold;border-color:var(--accent);background:var(--soft);color:var(--accent)}
#guidePanel{position:fixed;inset:auto auto 16px 20px;margin:0;width:420px;max-width:calc(100vw - 24px);height:min(700px,calc(100dvh - 32px));max-height:calc(100dvh - 32px);padding:0;border:1px solid var(--line);border-radius:22px;background:var(--card);color:var(--text);box-shadow:0 18px 75px #071f3d44;direction:rtl;overflow:hidden;font-size:13px;line-height:1.8}
#guidePanel[open]{display:flex;flex-direction:column}#guidePanel::backdrop{background:#082b273b;backdrop-filter:blur(2px)}#guidePanel [hidden]{display:none!important}
.guide-header{display:flex;align-items:center;gap:11px;padding:14px 16px;background:linear-gradient(125deg,#123f38,#286d5e);color:#fff9e9;flex-shrink:0}.guide-emblem{display:grid;place-items:center;width:40px;height:40px;border-radius:14px;background:#ffffff12;border:1px solid #dcce9c55;color:#eed8aa;font:30px Georgia}.guide-header h2{font-size:18px;margin:0;line-height:1.5}.guide-header p{margin:1px 0 0;font-size:10px;color:#d0e1d6}.guide-header #guideClose{margin-right:auto;background:transparent;color:#f8f2df;border:0;font-size:26px;padding:0;width:32px;height:32px;line-height:1}
.guide-context{display:flex;gap:7px;align-items:center;font-size:10px;padding:8px 13px;border-bottom:1px solid var(--line);background:var(--soft);flex-shrink:0}.guide-context>span:first-child{color:var(--warm)}#guideContext{min-width:0;flex:1}#guideNew{font-size:9px;white-space:nowrap;padding:3px 6px;border-radius:7px;background:transparent;color:var(--accent)}
.guide-feed{flex:1;overflow:auto;overscroll-behavior:contain;min-height:80px;padding:16px 13px;scrollbar-width:thin}.guide-welcome{padding:5px 3px 10px}.guide-welcome strong{font-size:17px;color:var(--accent)}.guide-welcome p{font-size:12px;margin:7px 0;color:var(--muted)}.guide-suggestions{display:grid;gap:8px}.guide-suggestions button{padding:10px 12px;text-align:right;font-size:12px;border-radius:12px;line-height:1.8;background:var(--soft)}.guide-suggestions button:after{content:'↖';float:left;color:var(--accent);margin-right:8px}
.guide-turn{margin-bottom:20px}.guide-question{margin:0 0 10px 25px;background:var(--accent);color:var(--card);border-radius:14px 4px 14px 14px;padding:9px 12px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:12px}.guide-answer{padding:3px 1px}.guide-answer-text{white-space:pre-wrap;overflow-wrap:anywhere;font-size:13px;line-height:2.05}.guide-answer-context{display:block;margin-top:8px;font-size:9px;color:var(--muted)}.guide-sources{display:flex;gap:5px;flex-wrap:wrap;margin-top:5px}.guide-sources>a,.guide-sources>span{font-size:9px;padding:3px 7px;border:1px solid var(--line);border-radius:7px;color:var(--accent);text-decoration:none;max-width:100%;overflow-wrap:anywhere}.guide-sources>a:hover{background:var(--soft)}.guide-web-badge{font-size:9px;color:var(--muted)}
.guide-actions{display:flex;gap:6px;padding:0 12px;flex-shrink:0}.guide-actions:empty{display:none}.guide-actions button{font-size:10px;flex:1;padding:5px;border-radius:8px;line-height:1.5}
#guideForm{display:flex;gap:7px;margin:10px 12px 0;padding:6px;background:var(--bg);border:1px solid var(--line);border-radius:14px;flex-shrink:0;align-items:flex-end}#guideQuestion{resize:none;min-width:0;width:100%;max-height:120px;border:0;background:transparent;font:12px/1.8 Vazirmatn,Tahoma,sans-serif;color:var(--text);padding:4px 5px;outline-offset:1px}#guideSend{padding:8px 9px;white-space:nowrap;min-width:61px;border:0;border-radius:10px;font-size:11px;line-height:1.5;background:var(--accent);color:var(--card)}#guideSend span{font-size:17px}
.guide-status{font-size:10px;color:var(--accent);margin:5px 16px 0;flex-shrink:0}.guide-status:empty{display:none}.guide-status.is-error{color:var(--warm)}.guide-about{margin:6px 15px 10px;font-size:9px;color:var(--muted);flex-shrink:0}.guide-about summary{cursor:pointer}.guide-about p{font-size:10px;margin:6px 0;line-height:1.8}.guide-gate{padding:14px;font-size:12px}.guide-gate a{display:inline-block;padding:7px 14px;border-radius:9px;text-decoration:none}.guide-sr{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
@media(max-width:600px){#guidePanel{inset:auto 8px max(8px,env(safe-area-inset-bottom));width:calc(100% - 16px);max-width:none;height:min(720px,calc(100dvh - 24px));max-height:calc(100dvh - 24px);border-radius:20px}.guide-launch{left:12px;bottom:98px}.guide-header{padding:11px 13px}.guide-header h2{font-size:17px}.guide-feed{padding:12px}.nr-heading .guide-inline{font-size:9px;padding:2px 4px}}
@media(orientation:landscape) and (max-height:550px){#guidePanel{inset:8px auto 8px 12px;height:calc(100dvh - 16px);max-height:calc(100dvh - 16px);width:min(520px,65vw);border-radius:15px}.guide-header{padding:6px 12px}.guide-header h2{font-size:15px}.guide-header p{display:none}.guide-emblem{width:28px;height:28px;font-size:24px}.guide-context{padding:4px 12px}.guide-feed{padding:8px 12px}.guide-suggestions{gap:5px}.guide-suggestions button{padding:5px 9px;font-size:11px}#guideForm{margin-top:5px}#guideQuestion{max-height:64px}.guide-about{margin:3px 15px 5px}.guide-launch{bottom:63px}}
@media(prefers-reduced-motion:reduce){.guide-launch:hover{transform:none}}


/* PP01: the same seven-octave instrument in performance, with a shallow landscape profile. */
#performancePiano[hidden],.note-reading-active #performancePiano{display:none!important}
#performancePiano{position:fixed;z-index:40;left:50%;transform:translateX(-50%);bottom:calc(var(--pp-nav-height,68px) + 8px);width:min(980px,calc(100% - 24px));margin:0;padding:5px 10px 7px;border:1px solid var(--line);border-top:2px solid var(--accent);border-radius:15px;background:var(--card);box-shadow:0 7px 26px #0d403324;box-sizing:border-box}
#performancePiano .nr-piano-heading{min-height:25px;font-size:11px}#performancePiano .nr-piano-keys{height:58px}#performancePiano .nr-piano-body{padding:4px 4px 2px}#performancePiano .nr-piano-heading button{min-height:26px}
body.performance-piano-visible:not(.focus) #player{padding-bottom:calc(var(--pp-height,100px) + 24px)}
body.performance-piano-visible:not(.focus) .guide-launch{bottom:calc(var(--pp-height,100px) + var(--pp-nav-height,68px) + 20px)}
body.focus #performancePiano{position:relative;inset:auto;transform:none;width:100%;flex-shrink:0;order:3;grid-area:5/1/6/-1;border-radius:0;box-shadow:none;padding:2px max(7px,env(safe-area-inset-left)) max(3px,env(safe-area-inset-bottom))}
body.focus.performance-piano-visible:not(.note-reading-active) #player{grid-template-rows:auto auto auto minmax(0,1fr) auto}
body.focus.performance-piano-visible .guide-launch{bottom:calc(var(--pp-height,84px) + 10px)}
#performancePiano .nr-key.is-right{background:linear-gradient(160deg,#76dec1,#258878 80%);border-color:#176c60;box-shadow:inset 0 -3px #125e52,0 0 8px #46bd9466}
#performancePiano .nr-black.is-right{background:linear-gradient(145deg,#65ceb2,#186355);border-color:#124c43}
#performancePiano .nr-key.is-left{background:linear-gradient(160deg,#d6b8fb,#8867bd 80%);border-color:#705599;box-shadow:inset 0 -3px #614186,0 0 8px #b091db66}
#performancePiano .nr-black.is-left{background:linear-gradient(145deg,#ba94e5,#6c478e);border-color:#533576}
#performancePiano .nr-key.is-both{background:linear-gradient(90deg,#54c3a6 0 49%,#dff1e9 49% 51%,#ab88d8 51% 100%);border-color:#507f83;box-shadow:inset 0 -3px #3f6468,0 0 8px #a7cabb88}
#performancePiano .nr-key.is-current small{color:#112f30;font-weight:bold}#performancePiano .nr-key.is-left small{color:#30223d}#performancePiano .nr-key.is-current i{box-shadow:0 0 4px #fff}
#performancePiano .nr-piano-overview .nr-key.is-right{background:#55c9ac}#performancePiano .nr-piano-overview .nr-key.is-left{background:#ba95e7}
@media(max-width:600px){#performancePiano{width:calc(100% - 16px);padding:3px 6px 5px;border-radius:12px}#performancePiano .nr-piano-keys{height:49px}#performancePiano .nr-key small{font-size:7px}#performancePiano .nr-piano-heading{font-size:10px}}
@media(orientation:landscape) and (max-height:550px){#performancePiano{padding-top:0;padding-bottom:max(3px,env(safe-area-inset-bottom))}#performancePiano .nr-piano-keys{height:33px}#performancePiano .nr-piano-heading{min-height:23px}#performancePiano .nr-piano-heading button{min-height:23px;padding:0 8px}#performancePiano .nr-piano-body{padding:3px 3px 2px}#performancePiano .nr-key small{font-size:7px;bottom:2px}#performancePiano .nr-key i{bottom:12px}.performance-piano-visible .guide-launch{padding:4px 8px;font-size:10px}.performance-piano-visible .guide-launch small{display:none}}

/* An airy trail of notes behind an always readable practice label. */
.practice-row #readingLaunch{position:relative;isolation:isolate;overflow:hidden;background:linear-gradient(115deg,#174e45,#2d7565 65%,#526e52);border-color:#508b74;box-shadow:inset 0 1px #ffffff29,0 3px 10px #184c3920;color:#fffbee;transition:box-shadow .2s,filter .2s}
.practice-row #readingLaunch:hover{filter:brightness(1.08);box-shadow:inset 0 1px #ffffff38,0 4px 15px #245d3c35}
.practice-row #readingLaunch .reading-button-label{position:relative;z-index:1;font:inherit;text-shadow:0 1px 2px #153d35;pointer-events:none}
.reading-motion{position:absolute;inset:0;z-index:0;pointer-events:none;overflow:hidden;direction:ltr;background:repeating-linear-gradient(0deg,transparent 0 7px,#e3e6b310 7px 8px,transparent 8px 12px)}
.reading-motion i{position:absolute;left:calc(var(--note)*18% - 8%);top:5px;font:29px Georgia,serif;font-style:normal;color:#f6dda5;opacity:.2;animation:reading-note-journey 9s linear infinite;animation-delay:calc(var(--note)*-1.5s);will-change:transform}.reading-motion i:nth-child(2n){top:10px}
@keyframes reading-note-journey{0%{transform:translate3d(-35px,8px,0) rotate(-10deg);opacity:0}15%{opacity:.22}80%{opacity:.17}100%{transform:translate3d(100px,-12px,0) rotate(7deg);opacity:0}}
body:has(#play[aria-label="مکث"]) .reading-motion i,#readingLaunch:disabled .reading-motion i{animation-play-state:paused}
body.dark .practice-row #readingLaunch{background:linear-gradient(115deg,#255b50,#367e6d 65%,#667550);color:#fffbee}
@media(prefers-reduced-motion:reduce){.reading-motion i{animation:none;will-change:auto;opacity:.15;transform:none}.practice-row #readingLaunch{transition:none}}
@media(orientation:landscape) and (max-width:1100px) and (max-height:550px){
 body.focus.performance-piano-visible #player{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto auto minmax(0,1fr) auto}
 body.focus.performance-piano-visible .focus-bar{grid-area:1/1/2/2}
 body.focus.performance-piano-visible .transport{grid-area:2/1/3/2}
 body.focus.performance-piano-visible #player .practice-row{grid-area:3/1/4/2;flex-wrap:nowrap;gap:4px 10px;min-width:0;padding:2px 7px}
 body.focus.performance-piano-visible .score-scroll{grid-area:4/1/5/2}
 body.focus.performance-piano-visible #performancePiano{grid-area:5/1/6/2}
 body.focus.performance-piano-visible .reading-teaser small{display:none}
 body.focus.performance-piano-visible #player .reading-primary{width:auto;padding:0;border:0;background:none;gap:0;flex:0 1 auto}
 body.focus.performance-piano-visible #readingLaunch{font-size:11px;min-height:32px;padding:4px 9px;white-space:nowrap}
 body.focus.performance-piano-visible #guidePlayer{font-size:10px;min-height:32px;padding:4px 7px;white-space:nowrap}
 body.focus.performance-piano-visible .guide-launch{display:none}
}

/* PS01: keep ordinary controls compact; execution mode is a quiet score stand. */
.progress-row{display:contents}#seek{display:none!important}#loading:empty{display:none}
.setting-check[hidden]{display:none!important}
.transport{padding:7px 10px;border-radius:12px}.transport-main{gap:7px;flex-wrap:nowrap}
.transport .play{min-width:44px;height:36px;padding:3px 10px}.transport .play span:last-child{display:none}
.transport-main>.icon-btn{width:36px;height:36px}.time-readout{flex-direction:row;align-items:center;gap:9px;min-width:0;margin-inline-start:auto}
.tempo-controls{display:flex;align-items:center;gap:10px;position:relative;padding:3px 0 0}
.tempo-equation{gap:4px;flex:0 0 auto}.tempo-equation input{width:46px;font-size:16px}.tempo-equation button{height:30px;padding:2px 5px}
.tempo-equation #tempoWord{display:none}.tempo-controls #speed{flex:1;width:auto;min-width:65px;height:22px;margin:0}
.tempo-controls .unit-options{top:100%;left:0;right:auto;flex-wrap:wrap;max-width:100%;z-index:90}
.practice-row{gap:5px 12px;padding:6px 0;align-items:center}
#player .reading-primary{width:auto;flex:0 1 auto;border:0;padding:0;background:none;gap:0}
#player .reading-primary small{display:none}#player #readingLaunch{min-height:35px;padding:4px 12px;font-size:11px;border-radius:10px;box-shadow:0 2px 6px #163e3529;white-space:nowrap}
#readingLaunch .reading-button-label{font:inherit}#player .reading-teaser:not(.reading-primary) small{display:none}
#player #guidePlayer{min-height:32px;padding:4px 9px;font-size:10px}
.player-title{margin-bottom:8px}.player-title .stage-entry{display:inline-flex;align-items:center;gap:5px;font-size:11px;padding:5px 9px;min-height:36px;background:var(--soft);border-color:var(--accent);white-space:nowrap}
.stage-entry span{font-size:19px;line-height:1}.view-modes{margin-bottom:6px}.score-tools{margin-bottom:7px}
@media(max-width:650px){
 .player-title{gap:6px}.player-title h1{font-size:20px}.transport{padding:5px 8px}.time-readout{gap:6px;font-size:9px}
 #player .practice-row{gap:4px 9px}#player #readingLaunch{font-size:10px;padding:4px 9px;min-height:33px}
 .practice-row label{min-height:30px;display:inline-flex;align-items:center;gap:3px}.practice-row input{margin:0}
 .tempo-controls{gap:8px}.tempo-equation #unitBtn{width:28px}.tempo-equation input{width:40px}
 .version-options{margin-block:5px;padding:4px;gap:4px}.version-chip{flex:1 1 80px;padding:5px 7px;font-size:10px;gap:4px}
}
@media(orientation:landscape) and (max-height:600px){
 body:not(.stage-view) .app-header{padding:4px 12px}.player-title h1{font-size:19px}.player-title p{display:none}
 body:not(.stage-view) .transport{display:grid;grid-template-columns:minmax(180px,.9fr) minmax(210px,1.1fr);align-items:center;gap:12px;padding:4px 8px}
 .transport .tempo-controls{padding:0}.player-title{margin-bottom:4px}.version-options{padding:3px;margin:4px 0;gap:4px}.version-chip{padding:3px 9px;font-size:10px}
 .practice-row{padding:4px 0}.view-modes{margin-bottom:4px}.score-tools{margin-bottom:4px}
}

body.stage-view{padding:0!important;overflow:hidden}
body.stage-view .app-header,body.stage-view .bottom-nav,body.stage-view .internal-preview,body.stage-view .guide-launch{display:none!important}
body.stage-view main{padding:0;max-width:none}
body.stage-view #player{position:fixed;inset:0;height:100vh;height:100dvh;max-width:none;padding:0!important;display:flex!important;flex-direction:column;gap:0;overflow:hidden;background:#fff;z-index:90}
body.stage-view #player>.player-title,body.stage-view #player>.version-options,body.stage-view #player>.transport,body.stage-view #player>.practice-row,body.stage-view #player>.view-modes,body.stage-view #player>.score-tools,body.stage-view .focus-bar,body.stage-view #player>.hint,body.stage-view .preview-notice,body.stage-view .preview-end{display:none!important}
body.stage-view #scoreScroll{order:1;flex:1;min-height:0!important;height:auto!important;max-height:none;margin:0!important;border:0;border-radius:0;padding:8px max(8px,env(safe-area-inset-right)) 4px max(8px,env(safe-area-inset-left));overflow:auto!important;scrollbar-gutter:auto;scrollbar-width:none;background:#fff;touch-action:none;scroll-behavior:auto!important}
body.stage-view #scoreScroll::-webkit-scrollbar{display:none}
body.stage-view.panorama-view #scoreScroll{display:flex;align-items:flex-start}
body.stage-view #paper{flex-shrink:0;max-width:none;box-shadow:none;margin-block:auto}
body.stage-view #notation .measure{cursor:default}
body.stage-view #stageRail{display:flex;position:relative;order:0;align-items:center;justify-content:flex-start;gap:6px;direction:rtl;min-height:46px;padding:max(3px,env(safe-area-inset-top)) max(8px,env(safe-area-inset-right)) 3px max(8px,env(safe-area-inset-left));background:#fff;border-bottom:1px solid #edf1ed;flex-shrink:0}
#stageRail button{width:40px;height:40px;padding:4px;border-radius:50%;display:grid;place-items:center;font-size:17px;border:1px solid #d6e1d9;background:#edf3eff0;color:#235a50;box-shadow:0 2px 5px #204c3810}
#stageRail #stagePlay{background:#215951;color:#fff;border-color:#215951}
body.stage-view #performancePiano{order:2;position:relative;inset:auto;width:100%;transform:none;flex-shrink:0;border-radius:0;box-shadow:none;max-height:110px;padding-bottom:max(3px,env(safe-area-inset-bottom))}
body.stage-view.stage-piano-hidden #performancePiano{display:none!important}
body.stage-view.stage-piano-hidden #scoreScroll{padding-bottom:max(5px,env(safe-area-inset-bottom))}
body.stage-view #stageCount{position:absolute;z-index:5;top:50%;left:50%;transform:translate(-50%,-50%);padding:12px 25px;border-radius:18px;color:#fff;background:#174f46ee;box-shadow:0 6px 35px #153b3928;font-size:26px;pointer-events:none}
#stageCount[hidden],#stageRail[hidden]{display:none!important}
/* A narrow side rail costs width, not an entire row of valuable staff height. */
body.stage-view #stageRail{position:absolute;top:env(safe-area-inset-top);right:env(safe-area-inset-right);bottom:auto;width:52px;flex-direction:column;gap:7px;min-height:0;padding:7px 5px;background:transparent;border:0;z-index:6}
body.stage-view #scoreScroll{width:calc(100% - 52px - env(safe-area-inset-right));margin-right:calc(52px + env(safe-area-inset-right))!important;padding-top:max(6px,env(safe-area-inset-top));padding-right:4px}
#stagePanel,#stageWelcome{color:var(--text);background:var(--card);border:1px solid var(--line);padding:16px;max-height:calc(100dvh - 20px);border-radius:20px}
#stagePanel{width:min(620px,calc(100vw - 24px));overflow:auto}
#stagePanel::backdrop,#stageWelcome::backdrop{background:#0f282571;backdrop-filter:blur(2px)}
#stagePanel header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px}
#stagePanel header small{font-size:9px;color:var(--muted)}#stagePanel h2{font-size:17px;margin:0}#stagePanel header button{width:36px;height:36px;padding:0;font-size:23px}
.stage-settings{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.stage-settings section{border:1px solid var(--line);background:var(--bg);border-radius:12px;padding:9px;min-width:0}
.stage-settings h3{margin:0 0 6px;font-size:11px;font-weight:normal;color:var(--muted)}
#stagePanel .tempo-controls{display:flex!important;flex-wrap:wrap;padding:0!important;gap:3px}
#stagePanel .tempo-equation{display:flex;justify-content:center;width:100%;color:var(--text)}
#stagePanel .tempo-equation input{color:var(--text);font-size:16px}#stagePanel #speed{width:100%;flex-basis:100%;height:22px;margin:0}
#stagePanel .focus-zoom{display:flex;align-items:center;gap:3px;direction:ltr;justify-content:center}
#stagePanel .focus-zoom button{min-width:32px;height:34px;min-height:34px;padding:3px 6px;display:grid;place-items:center;font-size:10px}
#stagePanel .focus-zoom #focusFit{flex:1}#stagePanel .focus-zoom svg{width:17px;height:17px}
#stageHandsSlot{display:flex;align-items:center;flex-wrap:wrap;gap:7px;font-size:11px}
#stageHandsSlot label{display:flex;align-items:center;gap:4px;min-height:32px}
#stageHandsSlot #focusMetro{width:34px;height:34px;padding:5px;margin-inline-start:auto}
.stage-options{display:flex;flex-direction:column;justify-content:center;gap:9px}.stage-options label{display:flex;align-items:center;gap:6px;font-size:11px;min-height:28px}
#stagePanel input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px}
#stageViewSlot .view-modes{display:flex!important;gap:3px;margin:0;flex-wrap:nowrap}#stageViewSlot .view-modes button{flex:1;min-height:32px;font-size:10px;padding:3px 6px}#stageViewSlot #meterNow{display:none}
#stagePanel #stageHelp{font-size:10px;color:var(--muted);line-height:1.9;margin:10px 0}
#stagePanel footer{display:flex;justify-content:space-between;gap:8px}#stagePanel footer button{padding:5px 10px;min-height:34px;font-size:11px}
#stagePanel #stageExit{background:var(--accent);color:var(--card)}
#stageWelcome{width:min(420px,calc(100vw - 28px));text-align:center;padding:22px}
.stage-welcome-mark{font-size:40px;color:var(--accent);line-height:1.3}#stageWelcome h2{font-size:20px;margin:8px 0}#stageWelcome p{font-size:13px;line-height:1.9}#stageWelcome .stage-welcome-hint{font-size:11px;color:var(--muted)}#stageWelcome>div:last-child{display:flex;gap:8px;justify-content:center}#stageWelcome button{font-size:12px}
.dark #stageRail{background:#fff}.dark #stagePanel .tempo-equation button{background:var(--card);color:var(--text);border-color:var(--line)}
@media(orientation:landscape) and (max-height:600px){
 #stagePanel{max-width:640px;padding:10px 14px}.stage-settings{gap:7px;grid-template-columns:1.2fr 1fr 1.1fr}
 .stage-settings section{padding:6px 8px}.stage-settings .stage-options{grid-column:1/-1;flex-direction:row;flex-wrap:wrap;justify-content:flex-start;gap:12px}
 #stagePanel header{margin-bottom:5px}#stagePanel #stageHelp{margin:5px 0;font-size:10px}
 body.stage-view #performancePiano .nr-piano-keys{height:33px}
}
@media(max-width:350px){#stagePanel{padding:10px}.stage-settings{gap:6px}.stage-settings section{padding:7px}.stage-options label{font-size:10px}#player #readingLaunch{padding:4px 7px;font-size:9px}}

/* PS02: a score-first workspace, with one toolbar and on-demand controls. */
.ui-icon{width:21px;height:21px;display:inline-block;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
body.player-layout{padding:0}body.player-layout .app-header,body.player-layout .internal-preview,body.player-layout .bottom-nav,body.player-layout .guide-launch{display:none!important}
body.player-layout main{padding:0;max-width:none}
body.player-layout:not(.note-reading-active):not(.stage-view) #player{position:fixed;inset:0;display:flex;flex-direction:column;height:100dvh;padding:0!important;overflow:hidden;background:var(--bg);max-width:none}
body.player-layout .player-title{order:0;flex-shrink:0;gap:9px;padding:8px max(12px,env(safe-area-inset-right)) 3px max(12px,env(safe-area-inset-left));margin:0}
body.player-layout .player-title>div{min-width:0}body.player-layout .player-title h1{font-size:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.6}
body.player-layout .player-title p{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0;line-height:1.5}
body.player-layout .player-title>button{flex-shrink:0;min-height:40px;padding:6px 9px;border:0;background:transparent;color:var(--accent)}
body.player-layout .player-title .download{font-size:11px;gap:5px;border:1px solid var(--line);background:var(--card);border-radius:10px;margin-inline-start:auto}
body.player-layout #player>.practice-row{order:1;display:flex;flex-shrink:0;gap:8px;padding:3px 12px;margin:0;flex-wrap:nowrap}
body.player-layout .reading-teaser{display:contents}body.player-layout .reading-teaser small{display:none!important}
body.player-layout #player #readingLaunch,body.player-layout #player #guidePlayer{min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border-radius:10px;font-size:11px;padding:4px 11px;white-space:nowrap;width:auto}
body.player-layout #readingLaunch .reading-button-label{display:flex;align-items:center;gap:6px}
body.player-layout #readingLaunch .ui-icon{width:18px;height:18px}
body.player-layout #guidePlayer{background:var(--card);color:var(--accent);border:1px solid var(--line);font-weight:500}
body.player-layout .score-tools{order:2;flex-shrink:0;display:flex;gap:8px;padding:3px 12px 6px;margin:0;min-width:0}
body.player-layout .score-tools .stage-entry{display:inline-flex;align-items:center;gap:5px;min-height:38px;padding:5px 9px;border-radius:10px;color:var(--accent);border:1px solid var(--accent);background:var(--soft);font-size:11px;white-space:nowrap}
body.player-layout .stage-entry span{font-size:11px;line-height:1.5}
body.player-layout .score-tools .time-readout{margin-inline-start:auto;font-size:10px;gap:5px}body.player-layout #timeNow{display:none}
body.player-layout .page-control{display:flex;gap:1px;align-items:center;font-size:10px}
body.player-layout .page-control button{display:grid;place-items:center;width:32px;min-height:38px;padding:3px;border:0;background:transparent}
body.player-layout .page-control .ui-icon{width:17px;height:17px}
body.player-layout.panorama-view .page-control{display:none!important}
body.player-layout:not(.note-reading-active):not(.stage-view) #scoreScroll{order:3;flex:1;min-height:0!important;height:auto!important;max-height:none;margin:0 8px;border-radius:10px;padding:8px;overflow:auto;scrollbar-gutter:auto;overscroll-behavior:contain}
body.player-layout:not(.note-reading-active):not(.stage-view) #performancePiano{order:4;position:relative;inset:auto;left:auto;transform:none;width:100%;margin:0;flex-shrink:0;border:0;border-top:1px solid var(--line);border-radius:0;box-shadow:none;padding:3px max(10px,env(safe-area-inset-right)) 4px max(10px,env(safe-area-inset-left));background:var(--card)}
body.player-layout:not(.note-reading-active):not(.stage-view) #performancePiano .nr-piano-keys{height:46px}
body.player-layout:not(.note-reading-active):not(.stage-view) #performancePiano .nr-piano-heading{min-height:24px}
body.player-layout #playerDock{order:5;position:relative;inset:auto;display:flex;align-items:center;justify-content:center;flex-shrink:0;gap:8px;padding:5px max(10px,env(safe-area-inset-right)) max(5px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left));margin:0;border:0;border-top:1px solid var(--line);border-radius:0;box-shadow:none;background:var(--card);z-index:45}
#playerDock button{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:42px;width:auto;height:42px;padding:5px 8px;background:transparent;border:0;border-radius:10px;font-size:11px;color:var(--text)}
#playerDock #play{width:46px;min-width:46px;height:42px;background:var(--accent);color:var(--card)}
#playerDock #play span:last-child{display:none}#playerDock #play .ui-icon{width:22px;height:22px}
.dock-zoom{display:inline-flex;direction:ltr;gap:0;align-items:center;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--bg)}
#playerDock .dock-zoom button{width:40px;min-width:40px;border-radius:0;height:40px}
.dock-zoom button+button{border-inline-start:1px solid var(--line)!important}
#playerDock button:hover{background:var(--soft);color:var(--accent)}#playerDock #play:hover{filter:brightness(1.1);background:var(--accent);color:var(--card)}
#playerDock #loading:not(:empty){position:absolute;bottom:100%;right:8px;padding:3px 8px;background:var(--card);border-radius:7px;box-shadow:0 1px 5px #0002}
body.player-layout #player>.hint{display:none}body.player-layout #previewNotice{order:2;flex-shrink:0;margin:0 8px 4px;font-size:10px;padding:4px 8px}
body.player-layout #previewEnd{order:4;max-height:100px;overflow:auto;margin:0;padding:8px 14px;flex-shrink:0}
.player-panel{width:min(440px,calc(100vw - 20px));max-height:calc(100dvh - 24px);padding:16px;border:1px solid var(--line);border-radius:18px;background:var(--card);color:var(--text);overflow:auto}
.player-panel::backdrop{background:#102f285c;backdrop-filter:blur(2px)}
.player-panel header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 0 10px;border-bottom:1px solid var(--line)}
.player-panel h2{font-size:17px;margin:0}.player-panel header button{display:grid;place-items:center;width:40px;height:40px;padding:0;border:0;background:var(--soft)}
.player-panel section{padding:12px 0;border-bottom:1px solid var(--line)}.player-panel section:last-child{border:0;padding-bottom:0}
.player-panel h3{font-size:11px;color:var(--muted);margin:0 0 7px;font-weight:500}
.player-panel .view-modes{display:flex!important;align-items:center;margin:0 0 8px;gap:6px;flex-wrap:wrap}.player-panel .view-modes button{min-height:40px;flex:1;font-size:12px}
.player-panel #meterNow{display:none}.player-panel #fit{font-size:11px;min-height:36px}
.panel-hands{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px;font-size:12px}.panel-hands label,.panel-check{display:flex;align-items:center;gap:6px;min-height:38px;font-size:12px}
.player-panel input[type=checkbox]{accent-color:var(--accent);width:17px;height:17px;margin:0}.panel-hands #metro{margin-inline-start:auto}
.pedal-label{width:100%}.pedal-label select{flex:1;padding:5px;font-size:12px;min-height:36px}
.player-panel [hidden]{display:none!important}.player-panel .tempo-controls{display:flex!important;flex-wrap:wrap;gap:12px;padding-top:16px}
.player-panel .tempo-equation{width:100%;justify-content:center;gap:8px;color:var(--text)}.player-panel .tempo-equation input{color:var(--text);width:64px;font-size:21px}
.player-panel .tempo-equation button{min-width:38px;min-height:38px;color:var(--text);background:var(--soft)}
.player-panel #speed{flex-basis:100%;height:30px;margin:0;width:100%}.player-panel #unitOptions{position:relative;inset:auto;gap:5px;border:0;box-shadow:none;padding:0;background:var(--card)}
#playerMore .panel-content{display:flex;flex-direction:column;gap:7px;padding-top:12px}#playerMore .panel-content>button{display:flex;gap:9px;align-items:center;min-height:42px;width:100%;text-align:right;font-size:12px;padding:8px 10px;border:0;background:var(--bg)}
#playerMore #versionOptions{margin:0;padding:5px}#playerMore .arrangement-switch{display:flex;align-items:center;gap:8px;font-size:12px}#playerMore .arrangement-switch select{flex:1;min-width:0}
body.stage-view #playerDock,body.stage-view #readingZoomSlot{display:none!important}
#stageRail .ui-icon{width:21px;height:21px}body.stage-view #stageRail{gap:5px}
#stageRail #stageSpeed{writing-mode:vertical-lr;direction:rtl;width:32px;height:86px;margin:3px 0;min-width:0;accent-color:#215951;touch-action:none}
#stageRail #stageExitDirect{background:transparent;box-shadow:none;border-color:transparent;color:#4e6b63}
.stage-welcome-mark .ui-icon{width:42px;height:42px}
body.note-reading-active #playerDock,body.note-reading-active .score-tools>.stage-entry,body.note-reading-active .score-tools>.time-readout{display:none!important}
body.player-layout.note-reading-active #player{padding:0 8px calc(var(--nr-dock-height,245px) + 14px)!important}
body.note-reading-active #readingZoomSlot{margin-inline-start:auto;display:flex}.note-reading-active .dock-zoom button{height:36px;min-width:38px;padding:4px;display:grid;place-items:center;border:0;background:var(--card)}
@media(min-width:800px){body.player-layout:not(.stage-view):not(.note-reading-active) #player{padding-inline:max(0px,calc((100vw - 1200px)/2))!important}body.player-layout #player>.practice-row{position:absolute;top:8px;left:max(150px,calc((100vw - 1200px)/2 + 150px));z-index:2}body.player-layout .player-title{padding-left:calc(12px + env(safe-area-inset-left));padding-right:calc(12px + env(safe-area-inset-right))}body.player-layout .player-title>div{max-width:calc(100% - 410px)}}
@media(max-width:380px){#playerDock{gap:4px!important}#playerDock button{min-width:40px;padding:5px 6px}body.player-layout .score-tools{gap:4px;padding-inline:8px}body.player-layout .player-title h1{font-size:18px}body.player-layout .score-tools .stage-entry{padding-inline:7px}}
@media(orientation:landscape) and (max-height:600px){body.player-layout .player-title{padding-block:3px 0}body.player-layout .player-title h1{font-size:17px}body.player-layout #player>.practice-row{position:absolute;top:3px;left:130px;padding:0;gap:6px;z-index:2}body.player-layout .player-title>div{max-width:calc(100% - 380px)}body.player-layout #player #readingLaunch,body.player-layout #player #guidePlayer{min-height:34px;font-size:10px;padding:4px 8px}body.player-layout .score-tools{padding-block:1px 3px;min-height:34px}body.player-layout .score-tools .stage-entry{min-height:32px}body.player-layout #playerDock{padding-block:2px max(2px,env(safe-area-inset-bottom));gap:12px}#playerDock button,#playerDock #play{height:38px}#playerDock .dock-zoom button{height:36px}body.player-layout:not(.note-reading-active):not(.stage-view) #performancePiano .nr-piano-keys{height:30px}#stageRail #stageSpeed{height:65px}body.stage-view #stageRail{gap:3px;padding-top:4px}#stageRail button{width:36px;height:36px}.player-panel{max-height:calc(100dvh - 16px);padding:10px 16px}.player-panel section{padding-block:8px}}
@media(orientation:landscape) and (max-height:600px) and (max-width:700px){body.player-layout .player-title>div{max-width:calc(100% - 320px)}body.player-layout .player-title .download span{display:none}body.player-layout #player>.practice-row{left:65px}body.player-layout .player-title h1{font-size:15px}}
@media(max-width:650px) and (orientation:portrait){.player-panel{position:fixed;inset:auto 10px max(10px,env(safe-area-inset-bottom));margin:0;width:calc(100% - 20px)}}
@media(prefers-reduced-motion:reduce){.player-panel::backdrop{backdrop-filter:none}}

/* Academy AM01 entry */
.academy-entry{display:flex;align-items:center;gap:16px;padding:18px 22px;margin:22px 0 6px;background:linear-gradient(120deg,var(--card),var(--soft));border:1px solid var(--line);border-inline-start:4px solid var(--warm);border-radius:18px;box-shadow:0 5px 18px #183d3510}.academy-entry>div:nth-child(2){flex:1;min-width:0}.academy-entry h2{font-size:18px;margin:0;color:var(--text)}.academy-entry p{font-size:12px;color:var(--muted);margin:3px 0 0}.academy-entry-icon{color:var(--accent);width:40px;flex-shrink:0}.academy-entry-icon svg{display:block;width:40px;height:40px}.academy-entry-link{display:inline-flex;gap:14px;align-items:center;justify-content:center;min-height:44px;padding:8px 16px;border-radius:11px;background:var(--accent);color:var(--card);font-weight:bold;text-decoration:none;font-size:12px;white-space:nowrap}.academy-entry-link:hover{filter:brightness(1.12)}.academy-entry-link:focus-visible{outline:3px solid var(--warm);outline-offset:3px}@media(max-width:620px){.academy-entry{gap:11px;padding:14px;flex-wrap:wrap;margin-top:16px}.academy-entry h2{font-size:15px}.academy-entry p{font-size:11px}.academy-entry-icon,.academy-entry-icon svg{width:32px;height:32px}.academy-entry-link{width:100%;padding:7px 14px}}

/* EN01: official live trust seal, limited to the library homepage. */
#library .home-trust{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:32px 0 6px;padding:18px 4px 0;border-top:1px solid var(--line)}
.home-trust-copy{align-self:flex-start;padding-top:4px;display:flex;flex-direction:column;gap:3px;min-width:0}.home-trust-copy strong{font-size:19px;color:var(--accent)}.home-trust-copy>span{font-size:12px;color:var(--muted)}
.enamad-seal{order:-1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;flex-shrink:0;min-width:124px;padding:7px 10px;border:1px solid var(--line);border-radius:14px;background:#fff;color:#215951;text-decoration:none;font-size:11px;transition:border-color .18s,box-shadow .18s}
.enamad-seal img{display:block;width:100px;height:110px;object-fit:contain;cursor:pointer;font-size:10px;color:#215951}.enamad-seal:hover{border-color:var(--warm);box-shadow:0 3px 12px #153c3a12}.enamad-seal:focus-visible{outline:3px solid var(--warm);outline-offset:3px}
@media(max-width:480px){#library .home-trust{gap:12px;margin-top:24px;padding-top:14px}.home-trust-copy strong{font-size:17px}.home-trust-copy>span{max-width:180px;font-size:11px}.enamad-seal{min-width:114px;padding:6px}.enamad-seal img{width:92px;height:102px}}
