#loading_overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#fff;display:flex;flex-direction:column;justify-content:center;align-items:center;z-index:9999}#loading_overlay img{width:80vw;max-width:192px;height:auto;max-height:80vh;object-fit:contain;border:none}#loading_label{color:#6c24ea;font-weight:700;font-family:Poppins,sans-serif;text-align:center;animation:1.5s ease-in-out infinite pulse;pointer-events:none;white-space:nowrap;margin-top:8px;font-size:14px}#loading_bar_bg{width:60%;max-width:400px;height:12px;background:rgba(255,255,255,.15);border-radius:6px;overflow:hidden;margin-top:12px}#loading_bar{width:0%;height:100%;background:#6d5ef6;transition:width .2s}#loading_overlay.hidden,.loading_overlay.hidden{display:none!important}.cover video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;pointer-events:none;transition:opacity 220ms}.cover.has-video video{opacity:1}:root{--ink:#1f2a44;--ink-2:rgba(31, 42, 68, 0.72);--ink-3:rgba(31, 42, 68, 0.55);--surface:rgba(255, 255, 255, 0.94);--border:rgba(215, 211, 255, 0.95);--border-soft:rgba(112, 110, 180, 0.18);--shadow-card:0 26px 70px rgba(20, 35, 90, 0.16);--shadow-tile:0 14px 30px rgba(20, 35, 90, 0.1);--r-lg:18px;--r-md:14px;--r-pill:999px;--topbar-h:56px;--topbar-pad:18px;--logo-h:26px;--rail-gap:14px;--poster-r:18px;--poster-w:220px;--page-pad-x:16px}@media (pointer:fine) and (min-width:901px){:root{--topbar-pad:22px;--logo-h:28px;--poster-w:240px}}@media (min-width:1200px){:root{--poster-w:260px}}@media (min-width:1600px){:root{--poster-w:280px}}@media (max-width:520px){:root{--poster-w:clamp(175px, 66vw, 240px);--rail-gap:12px}}@media (max-width:920px) and (orientation:landscape){:root{--poster-w:clamp(210px, 42vw, 280px)}}*{box-sizing:border-box}body,html{height:100%;width:100%;margin:0;font-family:Arial,sans-serif;color:var(--ink)}body{background:radial-gradient(circle at 20% 10%,rgba(184,179,255,.22),transparent 45%),radial-gradient(circle at 80% 30%,rgba(122,114,242,.16),transparent 55%),#0b0b10;overflow-x:hidden}.library-shell{min-height:100%;display:block;padding-top:env(safe-area-inset-top,0);padding-bottom:env(safe-area-inset-bottom,0)}.library-card{width:100%;max-width:none;background:var(--surface);border:1px solid var(--border-soft);border-left:0;border-right:0;border-radius:0;box-shadow:var(--shadow-card);overflow:hidden}.topbar{height:var(--topbar-h);display:flex;align-items:center;justify-content:space-between;padding:0 var(--topbar-pad);border-bottom:1px solid rgba(112,110,180,.14);background:rgba(255,255,255,.72);backdrop-filter:blur(10px)}.brand{display:flex;align-items:center;gap:10px}.brand-logo{height:var(--logo-h);width:auto;display:block;object-fit:contain;user-select:none;-webkit-user-drag:none}.topbar-actions{display:flex;align-items:center;gap:18px}.btn-icon{border:0;padding:0;background:0 0;cursor:pointer;display:grid;place-items:center;user-select:none;transition:transform 120ms,box-shadow 160ms,border-color 160ms}.btn-icon:active{transform:scale(.98)}.btn-icon-img{width:32px;height:32px;object-fit:contain;display:block;user-select:none;-webkit-user-drag:none;pointer-events:none}.content{padding:16px}@media (min-width:900px){.content{padding:22px 32px}:root{--page-pad-x:32px}}@media (min-width:1400px){.content{padding:26px 46px}:root{--page-pad-x:46px}}.hidden{display:none!important}.rails{display:flex;flex-direction:column;gap:18px}.rail-head{display:flex;align-items:flex-start;justify-content:flex-start;gap:12px;margin:8px 2px 10px}.rail-title{min-width:0;flex:0 1 auto}.rail-title h2{margin:0;font-size:22px;letter-spacing:.2px;color:rgba(31,42,68,.92);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rail-sub{margin:4px 0 0;font-size:13px;color:rgba(31,42,68,.62);white-space:normal;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical}.rail-more{height:30px;padding:0 10px;border-radius:var(--r-pill);border:1px solid rgba(215,211,255,.95);background:rgba(255,255,255,.65);color:rgba(31,42,68,.88);font-size:12.5px;font-weight:800;cursor:pointer;user-select:none;white-space:nowrap;align-self:flex-start;margin-top:4px;transition:transform 120ms,box-shadow 160ms,border-color 160ms}.rail-more:active{transform:scale(.98)}@media (hover:hover) and (pointer:fine){.cover.has-video{cursor:pointer}.rail-more:hover{background:rgba(255,255,255,.82);border-color:rgba(155,149,255,.65);box-shadow:0 12px 24px rgba(20,35,90,.12)}.book-card:hover{transform:translateY(-3px);box-shadow:0 22px 46px rgba(20,35,90,.16);border-color:rgba(155,149,255,.48)}}@media (max-width:520px){.rail-title h2{font-size:18px}.rail-sub{font-size:12.5px}.rail-more{margin-top:0}}.rail-track{position:relative;display:flex;gap:var(--rail-gap);overflow-x:auto;overflow-y:hidden;padding:10px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:rgba(31,42,68,0.25) transparent}.rail-track::-webkit-scrollbar{height:10px}.rail-track::-webkit-scrollbar-thumb{background:rgba(31,42,68,.22);border-radius:var(--r-pill)}.rail-track::-webkit-scrollbar-track{background:0 0}.rail-skeleton{display:flex;gap:var(--rail-gap);padding:2px}.sk{width:var(--poster-w);aspect-ratio:3/4;border-radius:calc(var(--poster-r) + 2px);border:1px solid rgba(112,110,180,.12);background:linear-gradient(90deg,rgba(255,255,255,.35),rgba(255,255,255,.7),rgba(255,255,255,.35));background-size:220% 100%;animation:1.25s ease-in-out infinite shimmer}@keyframes shimmer{0%{background-position:0 0}100%{background-position:200% 0}}.book-card{flex:0 0 auto;width:var(--poster-w);scroll-snap-align:start;border-radius:calc(var(--poster-r) + 2px);border:1px solid rgba(112,110,180,.18);background:rgba(255,255,255,.96);box-shadow:var(--shadow-tile);overflow:hidden;cursor:pointer;outline:0;transition:transform 140ms,box-shadow 180ms,border-color 180ms}.book-card:focus-visible{box-shadow:0 0 0 4px rgba(122,114,242,.18),0 18px 42px rgba(20,35,90,.16)}.poster{position:relative;aspect-ratio:3/4;background:radial-gradient(220px 140px at 20% 15%,rgba(122,114,242,.35),transparent 55%),radial-gradient(220px 140px at 80% 35%,rgba(155,149,255,.22),transparent 58%),linear-gradient(135deg,#f6f8ff,#faf8ff);border-bottom:1px solid rgba(112,110,180,.14);overflow:hidden}.poster img,.poster video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}.poster video{opacity:0;pointer-events:none;transition:opacity 180ms}.poster.is-playing video{opacity:1}.badge-lib{position:absolute;z-index:4;left:10px;top:10px;padding:4px 12px;border-radius:var(--r-pill);font-size:11.5px;font-weight:900;letter-spacing:.3px;color:rgba(255,255,255,.98);border:1px solid rgba(255,255,255,.75);box-shadow:0 12px 24px rgba(0,0,0,.14)}.badge-lib[data-lib=literacy_books]{background:linear-gradient(180deg,rgba(37,99,235,.92),rgba(29,78,216,.92))}.badge-lib[data-lib=foreign_books]{background:linear-gradient(180deg,rgba(139,92,246,.92),rgba(99,102,241,.92))}@media (max-width:520px){.badge-lib{left:8px;top:8px;font-size:11px}}.poster-actions{position:absolute;right:10px;top:10px;z-index:4;display:flex;align-items:center;gap:8px}@media (max-width:520px){.poster-actions{right:8px;top:8px}.topbar-actions{gap:10px}}.poster-title{position:absolute;z-index:3;left:10px;right:10px;bottom:10px;padding:8px 10px;border-radius:14px;background:rgba(255,255,255,.88);border:1px solid rgba(215,211,255,.9);backdrop-filter:blur(8px);font-weight:900;font-size:13.5px;color:rgba(31,42,68,.92);text-align:center;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical}.book-meta.one-row{display:flex;align-items:center;gap:10px;padding:10px 12px 12px}.lang-pill{display:inline-flex;align-items:center;gap:10px;padding:7px 10px;border-radius:var(--r-pill);border:1px solid rgba(215,211,255,.95);background:rgba(255,255,255,.72);white-space:nowrap;min-width:0;max-width:100%;flex:0 1 auto;overflow:hidden}.lang-pill img{width:22px;height:22px;flex:0 0 auto;object-fit:cover;border-radius:8px;border:1px solid rgba(112,110,180,.18);background:#fff;display:block}.lang-pill .lang-pill-text{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;font-size:12px}.book-meta.one-row .meta-features{margin-left:auto;display:inline-flex;align-items:center;justify-content:flex-end;gap:10px;flex:0 0 auto}.meta-icon{width:28px;height:28px;border-radius:10px;background:rgba(255,255,255,.55);border:1px solid rgba(215,211,255,.7);display:grid;place-items:center;opacity:.9;pointer-events:none}.meta-icon img{width:18px;height:18px;object-fit:contain;display:block;user-select:none;-webkit-user-drag:none}@media (max-width:520px){.book-meta.one-row{padding:10px 12px 12px}.book-meta.one-row .meta-features,.lang-pill{gap:8px}}.state{border:1px dashed rgba(112,110,180,.3);background:rgba(255,255,255,.55);border-radius:var(--r-lg);padding:16px;color:var(--ink-2);font-size:14px;text-align:center}.share-btn{flex:0 0 auto;width:30px;height:30px;padding:0;border-radius:var(--r-pill);border:0;background:rgba(122,114,242,.12);display:grid;place-items:center;cursor:pointer;user-select:none;transition:transform 120ms,box-shadow 160ms,background 160ms,border-color 160ms}.share-btn img{width:30px;height:30px;display:block;opacity:.95}.share-btn:active{transform:scale(.97)}@media (hover:hover) and (pointer:fine){.share-btn:hover{background:rgba(122,114,242,.18);border-color:rgba(155,149,255,.65);box-shadow:0 12px 24px rgba(20,35,90,.14);transform:translateY(-1px)}}.topbar{padding-left:var(--page-pad-x);padding-right:var(--page-pad-x)}.content{padding:16px var(--page-pad-x)}@media (min-width:900px){.content{padding:22px var(--page-pad-x)}}@media (min-width:1400px){.content{padding:26px var(--page-pad-x)}}.brand{display:flex;align-items:flex-end;gap:18px}.brand-title{display:none;font-weight:800;letter-spacing:.2px;font-size:16px;line-height:1;padding-bottom:2px;color:rgba(31,42,68,.88);user-select:none;white-space:nowrap}@media (min-width:900px){.brand-title{display:inline-block}}@media (min-width:1200px){.brand-title{font-size:18px}}.rail-title-row{display:inline-flex;align-items:center;gap:10px;min-width:0}.rail-title-row h2{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rail-icon{width:32px;height:32px;object-fit:contain;flex:0 0 auto;opacity:.95;user-select:none;-webkit-user-drag:none;pointer-events:none}@media (min-width:900px){.rail-icon{width:36px;height:36px}}@media (max-width:520px){.rail-icon{width:22px;height:22px}}.lib-modal{position:fixed;inset:0;z-index:9999;display:none}.lib-modal.is-open{display:block}.lib-modal__backdrop{position:absolute;inset:0;background:rgba(2,6,23,.55);backdrop-filter:blur(6px)}.lib-modal__panel{position:relative;background:rgba(255,255,255,.96);border:1px solid rgba(215,211,255,.7);border-radius:18px;box-shadow:0 30px 80px rgba(0,0,0,.3);overflow:hidden;display:flex;flex-direction:column}@media (min-width:900px){.lib-modal__panel{margin:18px auto;width:min(1200px,calc(100vw - 36px));max-height:calc(100vh - 36px)}}.lib-modal__top{display:flex;align-items:flex-start;justify-content:space-between;padding:14px 14px 10px;border-bottom:1px solid rgba(112,110,180,.14);background:rgba(255,255,255,.8)}.lib-modal__title-row{display:flex;align-items:baseline}.lib-modal__title h3{margin:0;font-size:18px;font-weight:900;color:rgba(31,42,68,.92)}.lib-modal__count{font-size:12.5px;font-weight:800;color:rgba(31,42,68,.6)}.lib-modal__subtitle{margin-top:4px;font-size:13px;color:rgba(31,42,68,.62);display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.lib-modal__close{width:36px;height:36px;border-radius:999px;border:1px solid rgba(215,211,255,.9);background:rgba(255,255,255,.9);cursor:pointer;display:grid;place-items:center}.lib-modal__searchbar{padding:12px 14px 10px;border-bottom:1px solid rgba(112,110,180,.12);background:rgba(255,255,255,.78)}.lib-modal__search{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;border:1px solid rgba(215,211,255,.9);background:rgba(255,255,255,.9)}.lib-modal__search input{border:0;outline:0;background:0 0;width:100%;font-size:14px;color:rgba(31,42,68,.92)}.lib-modal__clear{width:28px;height:28px;border-radius:999px;border:1px solid rgba(215,211,255,.9);background:rgba(255,255,255,.9);cursor:pointer}.lib-modal__chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.lib-chip{height:32px;padding:0 10px;border-radius:999px;border:1px solid rgba(215,211,255,.9);background:rgba(255,255,255,.78);cursor:pointer;display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:800;color:rgba(31,42,68,.78);user-select:none}.lib-chip.is-on{background:rgba(122,114,242,.12);border-color:rgba(122,114,242,.35);color:rgba(31,42,68,.92)}.lib-chip img{width:18px;height:18px;object-fit:contain;display:block;pointer-events:none;-webkit-user-drag:none}.lib-modal__body{display:grid;grid-template-columns:1fr;gap:0;overflow:hidden;min-height:0}.lib-modal__filters{padding:12px 14px;border-bottom:1px solid rgba(112,110,180,.12);overflow:auto;max-height:42vh}@media (min-width:900px){.lib-modal__body{grid-template-columns:290px 1fr}.lib-modal__filters{border-bottom:0;border-right:1px solid rgba(112,110,180,.12);max-height:none}}.lib-filter{margin-bottom:14px}.lib-filter__head{font-size:12px;font-weight:900;color:rgba(31,42,68,.62);margin-bottom:8px}.lib-filter__row{display:flex;flex-wrap:wrap;gap:8px}.lib-pill{height:32px;padding:0 10px;border-radius:999px;border:1px solid rgba(215,211,255,.9);background:rgba(255,255,255,.78);cursor:pointer;font-size:12.5px;font-weight:800;color:rgba(31,42,68,.8)}.lib-pill.is-on{background:rgba(122,114,242,.12);border-color:rgba(122,114,242,.35);color:rgba(31,42,68,.92)}.lib-filter__list{display:flex;flex-direction:column;gap:8px;max-height:180px;overflow:auto;padding-right:6px}.lib-check{display:flex;align-items:center;gap:10px;font-size:13px;color:rgba(31,42,68,.86)}.lib-check input{transform:scale(1.05)}.lib-filter__footer{display:flex;gap:10px;padding-top:8px}.lib-btn{height:34px;padding:0 12px;border-radius:999px;border:1px solid rgba(215,211,255,.9);background:rgba(255,255,255,.85);cursor:pointer;font-weight:900;color:rgba(31,42,68,.82)}.lib-modal__results{padding:12px 14px 16px;overflow:auto;min-height:0}.lib-modal__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.lib-modal__empty{margin-top:14px;padding:16px;border-radius:14px;border:1px dashed rgba(112,110,180,.35);background:rgba(255,255,255,.55);color:rgba(31,42,68,.72);text-align:center;font-weight:800}.lib-modal__panel{width:min(1400px,calc(100vw - 24px));max-height:calc(100vh - 24px);margin:12px auto}.lib-modal__grid{display:grid;gap:14px;grid-template-columns:repeat(2,minmax(0,1fr))}@media (min-width:620px){.lib-modal__grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width:900px){.lib-modal__panel{width:min(1600px,calc(100vw - 32px));max-height:calc(100vh - 32px);margin:16px auto}.lib-modal__grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width:1200px){.lib-modal__grid{grid-template-columns:repeat(5,minmax(0,1fr))}}.lib-modal .book-card{width:100%!important;scroll-snap-align:unset;flex:initial}.lib-modal .poster{overflow:hidden}.lib-modal__title-row{display:flex;align-items:center;gap:10px}.lib-modal__title-icon{width:28px;height:28px;object-fit:contain;display:block;opacity:.95;-webkit-user-drag:none;user-select:none;pointer-events:none}@media (min-width:900px){.lib-modal__title-icon{width:32px;height:32px}}