.library-app{min-height:100vh;background:#f7f4ea;color:#18352c;font-family:var(--font-inter);padding-bottom:80px}.library-header{height:72px;padding:0 clamp(20px,5vw,72px);justify-content:space-between;border-bottom:1px solid #dfe5d8;background:rgba(255,255,250,.9);position:sticky;top:0;z-index:20;backdrop-filter:blur(14px)}.library-header,.library-logo{display:flex;align-items:center}.library-logo{gap:10px;font-family:Georgia,serif;font-size:22px;color:#244a37}.library-logo img{border-radius:50%;background:#fff}.library-header nav{display:flex;gap:8px}.library-header nav a{display:flex;align-items:center;gap:7px;padding:10px 14px;border-radius:999px;color:#486256;font-size:14px}.library-header nav a.active,.library-header nav a:hover{background:#e5efd7;color:#254f35}.library-hero{margin:0 auto;padding:72px clamp(24px,7vw,110px) 46px;max-width:1280px;display:flex;align-items:center;justify-content:space-between;gap:30px}.library-hero>div{max-width:720px}.library-hero h1{font:500 clamp(44px,7vw,78px)/.98 Georgia,serif;letter-spacing:-.045em;color:#193b2b;margin:18px 0}.library-hero p{font-size:18px;line-height:1.7;color:#617369;max-width:650px}.library-hero img{filter:drop-shadow(0 18px 30px rgba(38,78,50,.16))}.eyebrow{font-size:12px;letter-spacing:.2em;font-weight:700;color:#6b866d}.library-controls{max-width:1120px;margin:0 auto 28px;padding:16px 18px;border:1px solid #dce3d5;background:hsla(0,0%,100%,.62);border-radius:20px;display:flex;align-items:end;gap:14px}.library-controls label{display:grid;gap:6px;font-size:12px;color:#647268}.library-controls select{min-width:160px;border:1px solid #cdd8c9;border-radius:12px;padding:10px 12px;background:#fff;color:#243d32}.library-controls>a{margin-left:auto;padding:11px 15px;border-radius:12px;background:#315d45;color:#fff;font-weight:700;font-size:13px}.content-grid{max-width:1120px;margin:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.content-card{text-align:left;border:1px solid #dbe1d4;background:#fffef8;border-radius:24px;overflow:hidden;box-shadow:0 15px 40px rgba(37,62,44,.06);transition:.25s}.content-card:hover{transform:translateY(-4px);box-shadow:0 20px 50px rgba(37,62,44,.12)}.content-cover{height:210px;display:grid;place-items:center;position:relative}.content-cover>span{font-size:72px;filter:drop-shadow(0 10px 15px rgba(30,50,40,.2))}.content-cover em{position:absolute;left:14px;top:14px;background:hsla(0,0%,100%,.83);padding:6px 9px;border-radius:999px;font-style:normal;font-size:11px;color:#355744}.content-card-body{padding:20px}.content-meta{display:flex;gap:8px;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:#708276}.content-meta span{background:#edf2e7;padding:5px 7px;border-radius:8px}.content-card h2{font:500 27px/1.1 Georgia,serif;margin:14px 0 7px;color:#1f4431}.content-card p{font-size:13px;color:#6d7a72}.content-details{display:flex;gap:18px;margin-top:18px;color:#53685c;font-size:12px}.content-details span{display:flex;gap:6px;align-items:center}.card-progress{margin-top:15px}.card-progress>i{height:4px;background:#dce5d8;border-radius:4px;display:block;position:relative}.card-progress>i:after{content:"";position:absolute;inset:0;background:#70935e;border-radius:4px}.card-progress small{display:block;margin-top:5px;color:#718177}.empty-state{grid-column:1/-1;text-align:center;padding:60px;border:1px dashed #cad4c5;border-radius:24px}.empty-state button{display:block;margin:12px auto;color:#315d45;text-decoration:underline}.reader-back{display:flex;align-items:center;gap:7px;margin:26px auto 0;max-width:1040px;width:calc(100% - 40px);color:#527064}.reader-shell,.song-shell{max-width:1040px;margin:20px auto}.content-title,.song-title{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.content-title h1,.song-title h1{font:500 clamp(36px,6vw,62px)/1 Georgia,serif;margin:10px 0;color:#173a2a}.content-title p,.song-title p{color:#6d7d72}.demo-pill{display:inline-flex;background:#e6eedc;color:#52714f;border-radius:999px;padding:6px 10px;font-size:11px;text-transform:uppercase;letter-spacing:.08em}.text-size{display:flex;align-items:center;gap:10px;border:1px solid #d2dccd;background:#fff;padding:8px;border-radius:14px}.text-size button{width:38px;height:38px;display:grid;place-items:center;border-radius:10px}.text-size button:hover{background:#edf2e7}.before-card{display:flex;gap:14px;padding:18px 20px;background:#fff6d9;border:1px solid #ead9a4;border-radius:18px;margin-bottom:18px}.before-card svg{color:#a97a25;flex:none}.before-card p{color:#715e39;margin-top:3px}.reader-page{display:grid;grid-template-columns:minmax(260px,.8fr) 1.2fr;background:#fffef9;border:1px solid #dce3d6;border-radius:28px;overflow:hidden;min-height:470px;box-shadow:0 20px 50px rgba(37,62,44,.07)}.page-art{display:grid;place-items:center;min-height:420px}.page-art span{font-size:100px}.page-copy{padding:clamp(28px,5vw,62px);display:flex;flex-direction:column;justify-content:center}.page-copy>small{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:#7a897f}.page-copy>p{font:500 27px/1.65 Georgia,serif;color:#223c30;margin:22px 0;transition:font-size .2s}.quiet-button{align-self:flex-start;border:1px solid #cfdacd;border-radius:11px;padding:8px 11px;color:#42604e;font-size:12px;background:#fff}.word-help{margin-top:14px;padding:14px;background:#edf4e8;border-radius:14px}.word-help>p{display:flex;gap:12px;margin:5px 0}.word-help p strong{min-width:70px}.word-help details,.word-help span{font-size:13px;color:#566b5d}.word-help summary{cursor:pointer;font-weight:700;margin-top:10px}.word-help details p{margin-top:8px}.moli-ask{display:flex;align-items:center;gap:7px;color:#315d45;font-weight:700;font-size:13px;margin-top:16px}.moli-reply{margin-top:10px;border-left:3px solid #7d9c69;padding:10px 14px;background:#f4f7ef}.moli-reply p{margin:3px 0}.moli-reply small{color:#748178}.page-nav{display:grid;grid-template-columns:1fr 1.5fr 1fr;align-items:center;margin:18px 0 44px}.page-nav button{display:flex;align-items:center;gap:7px;color:#315d45;font-weight:700}.page-nav button:last-child{justify-self:end}.page-nav button:disabled{opacity:.3}.page-nav>div{text-align:center;color:#64756a;font-size:12px}.page-nav i{height:4px;background:#dce4d8;display:block;margin-top:8px;border-radius:4px;overflow:hidden}.page-nav b{height:100%;background:#6f9360;display:block}.activity-card{border:1px solid #d7dfd2;background:#fffef8;border-radius:24px;padding:clamp(24px,5vw,44px);margin:24px 0}.activity-card h2{font:500 34px Georgia,serif;margin:10px 0;color:#234734}.activity-card>p{color:#68786e}.sequence-list{display:grid;gap:9px;margin:20px 0}.sequence-list>div{display:grid;grid-template-columns:34px 1fr 38px 38px;gap:8px;align-items:center;background:#f0f4eb;border-radius:14px;padding:10px}.sequence-list>div>span{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#dce9d2}.sequence-list button{height:34px;border-radius:9px;background:#fff}.create-link,.primary-action{display:inline-flex;align-items:center;gap:8px;padding:12px 17px;border-radius:13px;font-weight:700}.primary-action{background:#315d45;color:#fff}.create-link{background:#e0ecce;color:#2d573c;margin-top:14px}.success{color:#287044!important;font-weight:700;margin-top:12px}.try-again{color:#a4652e!important;margin-top:12px}.source-note{padding:18px 20px;border:1px solid #d9e0d5;border-radius:16px;color:#68776e;font-size:13px}.source-note strong{color:#334f40}.song-title{justify-content:flex-start}.song-title>div:last-child{flex:1}.song-title small{color:#78877e}.song-orb{width:170px;height:170px;border-radius:38px;display:grid;place-items:center;font-size:70px;flex:none}.audio-player{display:grid;grid-template-columns:52px 1fr auto 44px;align-items:center;gap:14px;background:#254c39;color:#fff;padding:18px;border-radius:20px;margin:24px 0}.audio-player button{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#f2f5e8;color:#294c39}.audio-player input{accent-color:#d7e7a8}.audio-player span{font-size:12px}.lyrics-card{background:#fffef9;border:1px solid #d9e1d5;border-radius:24px;padding:30px}.lyrics-head{display:flex;justify-content:space-between;align-items:center}.lyrics-head h2{font:500 32px Georgia,serif;color:#214430}.lyric-line{display:grid;grid-template-columns:38px 1fr;gap:12px;padding:15px;border-radius:14px;margin-top:8px;transition:.2s}.lyric-line.active{background:#e9f1d8;box-shadow:inset 3px 0 #71965b}.lyric-line>span{width:30px;height:30px;display:grid;place-items:center;background:#edf1e8;border-radius:50%}.lyric-line p{font:500 22px Georgia,serif}.lyric-line small{display:block;color:#6c7b72}.lyric-line em{display:block;font-size:12px;color:#52705e;font-style:normal;margin-top:4px}.timestamp-note{display:block;margin-top:18px;color:#7d8982}.move-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:18px 0}.move-grid button{display:flex;align-items:center;gap:10px;padding:15px;border:1px solid #d3ddd0;border-radius:14px;text-align:left}.move-grid button>span,.move-grid button>svg{width:24px;height:24px;border-radius:50%;border:1px solid #9aad96;padding:3px}.move-grid button.done{background:#e9f2df;border-color:#7d9d6a}.move-grid button.done>svg{background:#6e925c;color:#fff;border:none}.library-app a:focus-visible,.library-app button:focus-visible,.library-app input:focus-visible,.library-app select:focus-visible{outline:3px solid #6d77d8;outline-offset:3px}@media(max-width:800px){.library-header{height:auto;padding:10px 14px;align-items:flex-start}.library-header nav{overflow:auto;max-width:70%;gap:2px}.library-header nav a{padding:8px;font-size:12px}.library-header nav svg{display:none}.library-hero{padding-top:42px}.library-hero img{width:90px;height:90px}.library-controls{margin-inline:16px;flex-wrap:wrap}.library-controls>a{margin-left:0}.content-grid{grid-template-columns:1fr}.content-grid,.reader-shell,.song-shell{margin-inline:16px}.reader-page{grid-template-columns:1fr}.page-art{min-height:240px}.page-copy{padding:28px}.song-title{align-items:flex-start}.song-orb{width:100px;height:100px;border-radius:24px;font-size:45px}.audio-player{grid-template-columns:46px 1fr 40px}.audio-player>span{display:none}.move-grid{grid-template-columns:1fr}.page-nav{grid-template-columns:1fr 1fr}.page-nav>div{grid-column:1/-1;grid-row:1}.page-nav button{margin-top:35px}}@media(prefers-reduced-motion:reduce){.content-card{transition:none}.content-card:hover{transform:none}}.content-moli{margin:22px 0;padding:20px;border:1px solid #d6e0cf;border-radius:20px;background:#fffef8}.content-moli-title{display:flex;align-items:center;gap:10px}.content-moli-title>svg{color:#658653}.content-moli-title small{display:block;color:#718076;margin-top:2px}.moli-chips{display:flex;flex-wrap:wrap;gap:8px;margin:15px 0}.moli-chips button{border:1px solid #cedaca;border-radius:999px;padding:8px 11px;color:#3f5d4d;background:#f6f8f1}.content-moli form{display:flex;border:1px solid #cad8c7;border-radius:13px;background:#fff;overflow:hidden}.content-moli form input{flex:1;padding:12px 14px;background:transparent;min-width:0}.content-moli form button{width:46px;display:grid;place-items:center;color:#315d45}.spin{animation:library-spin 1s linear infinite}@keyframes library-spin{to{transform:rotate(1turn)}}.teacher-library-wrap{max-width:1240px;margin:auto;padding:0 24px 70px}.import-intro{padding:42px 0 26px;max-width:760px}.import-intro h1{font:500 clamp(42px,6vw,68px)/1 Georgia,serif;margin:14px 0;color:#193b2b}.import-intro p{font-size:17px;line-height:1.65;color:#65766c}.import-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(290px,.75fr);gap:24px}.import-form,.import-preview{background:#fffef9;border:1px solid #d8e0d3;border-radius:24px;padding:24px;box-shadow:0 18px 44px rgba(35,70,45,.06)}.import-form label{display:grid;gap:7px;margin:15px 0;font-size:12px;font-weight:700;color:#53695c}.import-form input,.import-form select,.import-form textarea{width:100%;border:1px solid #ccd8c8;border-radius:12px;background:#fff;padding:11px 12px;color:#254334;font:inherit}.import-form textarea{min-height:120px;resize:vertical}.form-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.type-switch{display:flex;gap:9px}.type-switch button{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:12px;border:1px solid #d2dbcf}.type-switch button.active{background:#e5efd7;border-color:#8aa27b}.file-drop{position:relative;text-align:center;place-items:center;padding:24px!important;border:1px dashed #9fb397;border-radius:16px;background:#f5f8ef}.file-drop input{position:absolute;inset:0;opacity:0;cursor:pointer}.file-drop span{font-weight:400;color:#718076;line-height:1.6}.processing-state{display:flex;gap:12px;padding:14px;border-radius:14px;background:#f1f4ed}.processing-state.ready{background:#e9f4e3}.processing-state.failed{background:#fff0e8}.processing-state svg{flex:none}.processing-state p{font-size:13px;color:#617167}.processing-state small{color:#78857d}.privacy-note{display:flex;gap:10px;padding:14px;background:#fff7df;border-radius:14px;color:#695f44;font-size:12px;line-height:1.5}.privacy-note svg{flex:none}.primary-action:disabled{opacity:.4}.import-notice{margin-top:10px;color:#366549}.import-preview h2{font:500 27px Georgia,serif;margin-bottom:13px}.import-preview>button{width:100%;display:flex;gap:10px;text-align:left;padding:12px;border-radius:13px}.import-preview>button:hover{background:#eef3e9}.import-preview>button span{font-size:24px}.import-preview>button small{display:block;color:#738278;margin-top:3px}.preview-card{margin-top:18px;padding-top:18px;border-top:1px solid #dbe2d7}.preview-card h3{font:500 26px Georgia,serif;margin:9px 0}.preview-card>p,.preview-card>small{color:#69796f;font-size:12px}.preview-card audio{width:100%;margin:12px 0}.preview-text{max-height:360px;overflow:auto;margin:14px 0;padding:13px;background:#f4f6ef;border-radius:13px}.preview-text section{margin-bottom:13px}.preview-text p{white-space:pre-wrap;line-height:1.55;font-size:13px}.import-loading{height:70vh;display:grid;place-items:center}.library-app audio{max-width:100%}@media(max-width:850px){.form-row,.import-layout{grid-template-columns:1fr}.teacher-library-wrap{padding-inline:16px}.moli-chips{overflow:auto;flex-wrap:nowrap}.moli-chips button{white-space:nowrap}}