:root{--navy:#17345b;--navy2:#0f2748;--ink:#17233a;--muted:#66758e;--paper:#f4f1e8;--cream:#fbfaf6;--white:#fff;--line:#dfe3e5;--gold:#f5c451;--blue:#356ee8;--teal:#1c7d73;--coral:#dc765a;--shadow:0 18px 50px rgba(20,38,68,.10)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font:15px/1.6 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;background:var(--cream)}button,input,select,textarea{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit}.shell-wide{width:min(1180px,calc(100% - 40px));margin-inline:auto}.reading-progress{position:fixed;left:0;top:0;height:3px;width:0;background:var(--gold);z-index:1000}.site-header{height:70px;background:var(--navy);color:#fff;position:relative;z-index:20}.nav{height:70px;display:flex;align-items:center;gap:28px}.brand{display:inline-flex;align-items:center;gap:9px;text-decoration:none;font-size:19px;font-weight:700;letter-spacing:-.03em}.brand strong{font-weight:850}.brand-mark{display:grid;grid-template-columns:1fr 1fr;width:27px;height:30px;filter:drop-shadow(0 2px 2px rgba(0,0,0,.16))}.brand-mark i,.brand-mark b{display:block}.brand-mark i{background:var(--gold);border-radius:4px 0 0 2px}.brand-mark b{background:white;border-radius:0 4px 2px 0;position:relative}.brand-mark b:after{content:"";position:absolute;inset:8px 4px auto;height:2px;background:#9ba9ba;box-shadow:0 6px #9ba9ba}.navlinks{margin-left:auto;display:flex;gap:26px}.navlinks a{text-decoration:none;color:#d8e3ef;font-size:13px}.navlinks a:hover{color:white}.nav-cta{text-decoration:none;background:#ffffff14;border:1px solid #ffffff2d;padding:8px 13px;border-radius:9px;font-size:13px}.hero{background:var(--navy);color:white;position:relative;overflow:hidden}.hero:after{content:"";position:absolute;inset:auto -100px -150px 35%;height:300px;border-radius:50%;background:#224b75;filter:blur(1px);opacity:.4}.hero-grid{display:grid;grid-template-columns:1.03fr .97fr;min-height:555px;position:relative;z-index:2}.hero-copy{padding:82px 0 75px}.eyebrow,.kicker{text-transform:uppercase;letter-spacing:.14em;font-size:11px;font-weight:850;color:#8a6930}.eyebrow{color:#f4d57d;display:flex;align-items:center;gap:8px}.eyebrow span{width:24px;height:1px;background:currentColor}.hero h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(48px,6.3vw,76px);line-height:.98;letter-spacing:-.05em;margin:15px 0 20px;font-weight:600}.hero h1 em{font-weight:400;color:#f1d37c}.hero-copy>p{max-width:650px;color:#d7e0ec;font-size:16px;margin:0 0 27px}.search-box{max-width:690px;display:grid;grid-template-columns:22px 1fr auto auto;align-items:center;gap:9px;background:#fff;border-radius:12px;padding:7px 7px 7px 15px;box-shadow:0 17px 50px #09182f55}.search-box svg{width:20px;fill:none;stroke:#718096;stroke-width:2}.search-box input{min-width:0;border:0;outline:0;color:var(--ink);padding:11px 4px;background:transparent}.search-box kbd{font:11px ui-monospace,SFMono-Regular,Menlo,monospace;color:#8591a1;background:#edf0f4;border:1px solid #d9dee5;border-radius:5px;padding:2px 6px}.search-box button{border:0;border-radius:8px;padding:10px 17px;background:var(--blue);color:white;font-weight:750}.hero-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.chip{border:1px solid #ffffff24;background:#ffffff0c;color:#e8eef5;border-radius:99px;text-decoration:none;padding:7px 11px;font-size:12px}.chip:hover{background:#ffffff17}.trust-row{display:flex;gap:10px;align-items:center;margin-top:25px;font-size:11px;color:#9fb2c8;text-transform:uppercase;letter-spacing:.08em}.trust-row b{color:#fff}.desk-scene{position:relative;min-height:555px}.desk-line{position:absolute;left:5%;right:-40%;bottom:90px;height:14px;background:#d69b54;border-radius:3px;box-shadow:0 9px 0 #8e5f36}.sun{position:absolute;width:120px;height:120px;border:1px solid #ffffff12;border-radius:50%;right:4%;top:45px;box-shadow:0 0 0 30px #ffffff05,0 0 0 65px #ffffff03}.lamp{position:absolute;right:25px;bottom:102px;width:160px;height:300px}.lamp i{position:absolute;width:5px;height:215px;background:#8398ad;right:70px;bottom:0;transform:rotate(7deg);transform-origin:bottom}.lamp b{position:absolute;width:110px;height:64px;border-radius:70px 70px 10px 10px;background:#e2a644;right:11px;top:20px;transform:rotate(8deg);box-shadow:inset -15px -8px #bc7d38}.lamp span{position:absolute;width:90px;height:15px;background:#7e5d43;right:30px;bottom:-6px;border-radius:50%}.plant{position:absolute;left:18px;bottom:103px;width:115px;height:145px}.plant b{position:absolute;left:25px;bottom:0;width:72px;height:65px;background:#b9654e;clip-path:polygon(5% 0,95% 0,80% 100%,20% 100%)}.plant i{position:absolute;bottom:53px;left:52px;width:46px;height:80px;border-radius:100% 0 100% 0;background:#4a8975;transform-origin:bottom}.plant i:nth-child(2){transform:rotate(-48deg);left:40px;height:68px}.plant i:nth-child(3){transform:rotate(48deg);left:58px;height:60px;background:#6fa18c}.desk-books{position:absolute;left:145px;bottom:103px;width:170px;height:110px}.desk-books i{display:block;position:absolute;left:0;bottom:0;width:165px;height:32px;background:#c76550;border-radius:3px;transform:rotate(-3deg);box-shadow:inset 0 -5px #984638}.desk-books i:nth-child(2){bottom:33px;width:150px;background:#f2c55e;transform:rotate(2deg);box-shadow:inset 0 -5px #d69b37}.desk-books i:nth-child(3){bottom:67px;left:14px;width:136px;background:#d8e0d5;transform:rotate(-1deg);box-shadow:inset 0 -5px #aab8a9}.open-book{position:absolute;left:205px;bottom:111px;width:290px;height:140px;filter:drop-shadow(0 12px 8px #07162c55);animation:float-book 6s ease-in-out infinite}.open-book div{position:absolute;bottom:0;width:50%;height:125px;background:#f9f4dd}.open-book div:first-child{left:0;clip-path:polygon(0 9%,94% 0,100% 100%,5% 94%);transform:rotate(-3deg)}.open-book div:nth-child(2){right:0;clip-path:polygon(6% 0,100% 9%,95% 94%,0 100%);transform:rotate(3deg)}.open-book div:after{content:"";position:absolute;left:22px;right:18px;top:32px;height:2px;background:#c4baa1;box-shadow:0 13px #c4baa1,0 26px #c4baa1,0 39px #c4baa1,0 52px #c4baa1}.open-book span{position:absolute;left:50%;bottom:4px;width:2px;height:118px;background:#b8ae98;z-index:2}.pencil{position:absolute;left:470px;bottom:119px;width:120px;height:9px;border-radius:4px;background:#efbf45;transform:rotate(-16deg);box-shadow:inset 16px 0 #e98a6e}.clip{position:absolute;left:175px;bottom:260px;width:27px;height:62px;border:4px solid #9bafc2;border-left-color:#6f879d;border-radius:18px;transform:rotate(24deg);animation:clip-bob 5s ease-in-out infinite}.sticky-visual{position:absolute;right:105px;bottom:138px;width:120px;height:120px;background:#f2d76f;color:#63531c;padding:28px 16px 12px;font:14px/1.25 "Comic Sans MS",cursive;transform:rotate(5deg);box-shadow:7px 10px 20px #07162d3e}.sticky-visual:before{content:"";position:absolute;top:-7px;left:28px;width:64px;height:17px;background:#ffffff6b;transform:rotate(-4deg)}@keyframes float-book{50%{transform:translateY(-4px) rotate(.5deg)}}@keyframes clip-bob{50%{transform:translateY(-7px) rotate(18deg)}}.browse{padding:72px 0 80px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:26px}.section-heading h2{font-family:Georgia,serif;font-size:34px;line-height:1.12;margin:5px 0 7px;letter-spacing:-.025em}.section-heading p{margin:0;color:var(--muted);max-width:630px}.view-toggle{display:flex;border:1px solid var(--line);border-radius:9px;padding:3px;background:white}.view-toggle button{width:35px;height:32px;border:0;background:transparent;border-radius:6px;color:#718095}.view-toggle button.active{background:#edf2f8;color:var(--navy)}.filterbar{border-block:1px solid var(--line);padding:14px 0;display:flex;gap:18px;align-items:center;justify-content:space-between}.filter-tabs{display:flex;gap:4px;overflow:auto}.filter-tabs button{border:0;background:transparent;color:var(--muted);padding:7px 12px;border-radius:7px;white-space:nowrap;font-size:13px}.filter-tabs button.active{background:#e8edf4;color:var(--navy);font-weight:750}.selects{display:flex;gap:8px}.selects select{border:1px solid var(--line);background:white;color:var(--ink);border-radius:8px;padding:7px 9px;font-size:12px;max-width:170px}.catalog-meta{display:flex;align-items:center;justify-content:space-between;gap:15px;color:var(--muted);font-size:12px;padding:17px 1px 11px}.text-button{border:0;background:transparent;color:var(--blue);font-weight:700;padding:0}.book-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.book-card{min-width:0;background:white;border:1px solid var(--line);border-radius:13px;overflow:hidden;transition:.25s;position:relative}.book-card:hover{transform:translateY(-5px);box-shadow:var(--shadow);border-color:#c6d0dd}.cover-wrap{height:238px;background:#e9edf0;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden}.cover-wrap:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 75% 15%,#fff9,transparent 33%),linear-gradient(130deg,#eef1e8,#d9e1e4)}.book-cover-img{position:absolute;z-index:2;max-width:72%;max-height:84%;object-fit:contain;border-radius:3px;box-shadow:11px 13px 20px #283a4a42;background:white}.fake-cover{position:relative;z-index:1;width:132px;height:182px;background:var(--navy);box-shadow:11px 13px 20px #283a4a42;padding:19px 13px;color:white;display:flex;flex-direction:column;justify-content:space-between}.fake-cover:before{content:"BUKU MEJA";font:8px/1 sans-serif;letter-spacing:.15em;color:#f4d276}.fake-cover strong{font:20px/1.08 Georgia,serif}.fake-cover i{height:3px;width:45px;background:var(--gold)}.book-card:nth-child(4n+2) .fake-cover{background:#356757}.book-card:nth-child(4n+3) .fake-cover{background:#9e5545}.book-card:nth-child(4n+4) .fake-cover{background:#655889}.book-card-body{padding:14px 15px 16px}.book-meta{display:flex;gap:8px;align-items:center;justify-content:space-between;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.06em}.format-badge{border:1px solid var(--line);padding:2px 5px;border-radius:4px;color:#53647a}.book-card h3{font:700 16px/1.25 Georgia,serif;letter-spacing:-.01em;margin:9px 0 7px;min-height:40px}.book-card p{font-size:12px;line-height:1.45;color:var(--muted);margin:0 0 14px;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.book-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px}.read-link{text-decoration:none;color:var(--blue);font-size:12px;font-weight:800}.source-mini{font-size:10px;color:#8995a7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.book-grid.list{grid-template-columns:1fr}.book-grid.list .book-card{display:grid;grid-template-columns:120px 1fr}.book-grid.list .cover-wrap{height:160px}.book-grid.list .fake-cover{width:82px;height:112px;padding:11px}.book-grid.list .fake-cover strong{font-size:13px}.book-grid.list .book-card h3{min-height:0;font-size:19px}.empty-search{text-align:center;padding:55px 20px;border:1px dashed var(--line);border-radius:12px;color:var(--muted)}.empty-search div{font-size:44px}.empty-search h3{color:var(--ink);margin:7px 0 0}.empty-search p{margin:3px 0 14px}.empty-search button{border:1px solid var(--line);background:white;border-radius:8px;padding:8px 13px}.feature-band{background:var(--navy2);color:white;padding:76px 0}.feature-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px}.kicker.light{color:#e8c568}.feature-intro h2{font:44px/1.05 Georgia,serif;letter-spacing:-.03em;margin:8px 0 14px}.feature-intro p{color:#b6c4d5;max-width:390px}.light-btn{display:inline-block;margin-top:12px;border:1px solid #ffffff29;border-radius:8px;padding:9px 12px;text-decoration:none;color:#fff}.feature-cards{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #ffffff1b;border-left:1px solid #ffffff1b}.feature-cards article{min-height:170px;padding:25px;border-right:1px solid #ffffff1b;border-bottom:1px solid #ffffff1b}.feature-cards span{font:12px ui-monospace;color:#ebc96e}.feature-cards b{display:block;font:22px Georgia,serif;margin:15px 0 5px}.feature-cards p{font-size:13px;color:#aebdd0;margin:0}.sources{padding:70px 0}.source-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.source-cards a{display:grid;grid-template-columns:42px 1fr auto;gap:12px;align-items:center;text-decoration:none;background:white;border:1px solid var(--line);border-radius:11px;padding:16px;transition:.2s}.source-cards a:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.source-cards span{display:grid;place-items:center;width:42px;height:42px;border-radius:10px;background:#e9eef4;color:var(--navy);font:700 19px Georgia,serif}.source-cards b{display:block;font-size:13px}.source-cards small{display:block;color:var(--muted);font-size:11px;margin-top:2px}.source-cards i{font-style:normal;color:#8492a3}footer{border-top:1px solid var(--line);background:#f0eee6}.footer-inner{min-height:120px;display:grid;grid-template-columns:auto 1fr auto;gap:30px;align-items:center}.footer-inner p{font-size:11px;color:var(--muted);max-width:650px}.footer-inner>a{font-size:11px;color:var(--muted)}.sticky-board{position:fixed;right:22px;bottom:22px;z-index:60}.sticky-launch{width:50px;height:50px;border:0;border-radius:50% 50% 45% 45%;background:var(--gold);color:#4a3b13;box-shadow:0 12px 30px #192d4d3a;font-size:20px}.sticky-panel{display:none;position:absolute;right:0;bottom:62px;width:300px;background:#f6df7c;color:#55471d;padding:18px 17px 14px;transform:rotate(-1deg);box-shadow:0 22px 50px #17243b4b}.sticky-panel.open{display:block;animation:notein .2s ease}.sticky-tape{position:absolute;width:70px;height:18px;background:#ffffff70;left:50%;top:-8px;transform:translateX(-50%) rotate(2deg)}.sticky-head{display:flex;justify-content:space-between;font-weight:800;font-family:Georgia,serif}.sticky-head button{border:0;background:transparent;font-size:20px}.sticky-panel textarea{width:100%;min-height:155px;border:0;outline:0;resize:vertical;background:transparent;color:inherit;padding:9px 0;font:15px/1.5 "Comic Sans MS",cursive}.sticky-panel small{font-size:10px;opacity:.7}.toast{position:fixed;left:50%;bottom:25px;z-index:70;transform:translate(-50%,15px);background:#16243a;color:white;padding:9px 13px;border-radius:8px;opacity:0;pointer-events:none;transition:.2s;font-size:12px}.toast.show{opacity:1;transform:translate(-50%,0)}@keyframes notein{from{opacity:0;transform:translateY(10px) rotate(-3deg)}to{opacity:1;transform:rotate(-1deg)}}@media(max-width:980px){.hero-grid{grid-template-columns:1fr}.desk-scene{display:none}.hero-copy{padding:66px 0}.book-grid{grid-template-columns:repeat(3,1fr)}.feature-grid{grid-template-columns:1fr;gap:40px}.source-cards{grid-template-columns:1fr 1fr}.navlinks{display:none}}@media(max-width:720px){.shell-wide{width:min(100% - 28px,1180px)}.site-header,.nav{height:62px}.nav-cta{margin-left:auto}.hero-copy{padding:54px 0 58px}.hero h1{font-size:48px}.search-box{grid-template-columns:20px 1fr auto}.search-box kbd{display:none}.trust-row{flex-wrap:wrap}.book-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.cover-wrap{height:190px}.fake-cover{width:105px;height:150px}.section-heading{align-items:start}.view-toggle{display:none}.filterbar{align-items:stretch;flex-direction:column}.selects select{flex:1;max-width:none}.catalog-meta{align-items:flex-start;flex-direction:column}.feature-cards{grid-template-columns:1fr}.source-cards{grid-template-columns:1fr}.footer-inner{grid-template-columns:1fr;padding:28px 0;gap:9px}.sticky-board{right:13px;bottom:13px}.sticky-panel{width:min(300px,calc(100vw - 26px))}}@media(max-width:420px){.nav-cta{font-size:0}.nav-cta:after{content:"＋ File";font-size:12px}.book-grid{grid-template-columns:1fr 1fr}.cover-wrap{height:160px}.fake-cover{width:90px;height:128px}.book-card-body{padding:12px}.book-card h3{font-size:14px}.hero h1{font-size:42px}.search-box button{padding-inline:12px}.feature-intro h2{font-size:36px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* v2 — boot, micro-interactions, and lightweight desk motion */
.app-loader{position:fixed;inset:0;z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f5f2e9;color:#17345b;transition:opacity .38s ease,visibility .38s ease}.app-loader.done{opacity:0;visibility:hidden;pointer-events:none}.app-loader strong{font:700 22px/1.1 Georgia,serif;margin-top:18px}.app-loader small{font-size:11px;color:#738095;margin-top:6px}.boot-track{width:min(270px,68vw);height:4px;background:#dce2e4;border-radius:99px;overflow:hidden;margin-top:15px}.boot-track i{display:block;width:5%;height:100%;background:#356ee8;border-radius:99px;transition:width .28s ease}.loader-desk{width:148px;height:90px;position:relative}.loader-book{position:absolute;left:26px;top:14px;width:88px;height:58px;background:#fff;border-radius:4px 9px 9px 4px;box-shadow:0 16px 30px #17345b24;transform:rotate(-3deg);overflow:hidden}.loader-book:before{content:"";position:absolute;left:43px;top:0;bottom:0;width:2px;background:#e6dfce}.loader-book i{position:absolute;width:31px;height:2px;background:#c6bda8;left:7px}.loader-book i:nth-child(1){top:18px}.loader-book i:nth-child(2){top:29px}.loader-book i:nth-child(3){top:40px}.loader-pencil{position:absolute;width:83px;height:7px;border-radius:9px;background:#f0bb42;right:4px;bottom:7px;transform:rotate(-18deg);animation:loader-pencil 1.7s ease-in-out infinite}.loader-clip{position:absolute;left:9px;top:3px;width:17px;height:38px;border:3px solid #8aa0b4;border-radius:12px;transform:rotate(18deg);animation:loader-clip 2s ease-in-out infinite}.dust{position:absolute;left:50%;top:23%;width:4px;height:4px;border-radius:50%;background:#fff9;box-shadow:92px 35px #fff6,-128px 75px #fff5,174px 100px #fff4,-55px 165px #fff6,220px 185px #fff4;animation:dust-float 7s ease-in-out infinite}.book-card{transform-style:preserve-3d}.book-card:hover .book-cover-img,.book-card:hover .fake-cover{transform:translateY(-4px) rotate(-1.5deg);transition:transform .28s ease}.fake-cover,.book-cover-img{transition:transform .28s ease}.card-clip{position:absolute;z-index:4;right:17px;top:11px;width:14px;height:31px;border:2px solid #8da0b2;border-radius:9px;transform:rotate(9deg);opacity:.0;transition:.2s}.book-card:hover .card-clip{opacity:.8;transform:rotate(4deg) translateY(3px)}.catalog-loading{opacity:.58;filter:saturate(.75);animation:catalog-pulse 1s ease-in-out infinite}.text-button.busy:before{content:"";display:inline-block;width:10px;height:10px;margin-right:7px;border:2px solid #cdd8ea;border-top-color:#356ee8;border-radius:50%;vertical-align:-1px;animation:spin-v2 .75s linear infinite}.search-box:focus-within{box-shadow:0 0 0 4px #356ee81a,0 12px 35px #17345b16;transform:translateY(-1px)}
@keyframes loader-pencil{50%{transform:translateY(-5px) rotate(-15deg)}}@keyframes loader-clip{50%{transform:translateY(-4px) rotate(13deg)}}@keyframes dust-float{50%{transform:translate(7px,-10px);opacity:.65}}@keyframes catalog-pulse{50%{opacity:.78}}@keyframes spin-v2{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.app-loader{transition:none}.loader-pencil,.loader-clip,.dust,.catalog-loading{animation:none!important}}

/* v15 reading progress */
.card-progress{display:grid;gap:5px;margin:10px 0 2px}.card-progress>div{display:flex;justify-content:space-between;gap:10px;font-size:9px;color:#728095}.card-progress small{font-size:9px;color:#9aa5b2}.card-progress>i{height:4px;border-radius:99px;background:#e7ecf0;overflow:hidden}.card-progress>i>b{display:block;height:100%;border-radius:99px;background:#356ee8}
.continue-chip{max-width:min(420px,100%);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration:none}

/* v16 — larger open catalog */
.catalog-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.catalog-source-state{font-size:10px;color:#748296}.book-cover-img{position:absolute;inset:0;margin:auto;max-width:72%;max-height:84%;object-fit:contain;border-radius:3px;box-shadow:0 10px 22px #20334c2d;z-index:2}.book-cover-img+.fake-cover{position:absolute;inset:0;margin:auto;opacity:.12}.book-license{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:8px 0;font-size:8px;color:#8794a5}.book-license span{border:1px solid #dde3e8;border-radius:99px;padding:2px 6px;max-width:58%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.book-license small{font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.source-open{display:grid;place-items:center;text-decoration:none;width:27px;height:27px;border:1px solid var(--line);border-radius:7px;color:#75869a}.source-open:hover{border-color:#99adca;color:#315f99}.source-cards{grid-template-columns:repeat(3,1fr)}.source-cards a:nth-child(2) span{background:#e8f1e5;color:#37663d}.source-cards a:nth-child(3) span{background:#efe7f6;color:#66468a}.source-cards a:nth-child(4) span{background:#fff1dd;color:#8b5f1e}.text-button.busy{pointer-events:none;opacity:.65}
@media(max-width:900px){.source-cards{grid-template-columns:1fr 1fr}.catalog-actions{justify-content:flex-start}}
@media(max-width:560px){.source-cards{grid-template-columns:1fr}.catalog-actions{width:100%}.catalog-actions .text-button{padding:5px 0}.book-license span{max-width:52%}}


/* v17 — compact catalog cards, consistent covers, readable truncation */
.cover-wrap{aspect-ratio:4/3;height:auto;min-height:220px;padding:18px}
.book-cover-img{width:min(72%,152px);height:min(84%,204px);max-width:none;max-height:none;object-fit:contain}
.fake-cover{width:min(66%,132px);aspect-ratio:132/182;height:auto;min-height:0}
.fake-cover strong{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden;text-overflow:ellipsis;max-height:4.35em;word-break:break-word}
.book-card h3{min-height:2.55em;max-height:2.55em;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis}
.book-author{font-size:10px;line-height:1.3;color:#8390a0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:-2px 0 7px;min-height:13px}
.book-card-body{display:flex;flex-direction:column;min-height:244px}
.book-card-body>p{min-height:34px}
.book-bottom{margin-top:auto}
.book-grid.list .book-card h3{min-height:0;max-height:2.6em;-webkit-line-clamp:2}
.book-grid.list .book-card-body{min-height:160px}
.book-grid.list .cover-wrap{aspect-ratio:auto;height:160px;min-height:160px}
.book-grid.list .book-cover-img{width:auto;height:126px;max-width:90px}
@media(max-width:720px){.cover-wrap{min-height:180px;padding:12px}.book-cover-img{width:min(74%,120px);height:min(84%,164px)}.book-card-body{min-height:230px}.book-author{font-size:9px}}
@media(max-width:420px){.cover-wrap{min-height:150px}.book-cover-img{width:min(76%,104px);height:min(86%,138px)}.fake-cover{width:min(70%,92px)}.fake-cover strong{-webkit-line-clamp:3;max-height:3.3em}.book-card h3{max-height:2.5em;min-height:2.5em}.book-card-body{min-height:216px}}

/* v17 — lightweight infinite catalog */
.book-card{min-width:0}.book-card-body{min-width:0;display:flex;flex-direction:column}.book-card h3{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis;line-height:1.28;min-height:2.56em;margin-bottom:4px}.book-author{font-size:10px;color:#788699;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:6px}.book-description{display:-webkit-box!important;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;text-overflow:ellipsis;min-height:4.45em;line-height:1.48!important}.fake-cover strong{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4;overflow:hidden;text-overflow:ellipsis;max-width:82%;line-height:1.12}.book-cover-img{content-visibility:auto}.catalog-sentinel{min-height:72px;margin:8px 0 2px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:#8a96a5;font-size:10px}.catalog-sentinel[hidden]{display:none!important}.catalog-sentinel span{width:24px;height:24px;border:2px solid #d6dee6;border-top-color:#356ee8;border-radius:50%;opacity:.35}.catalog-sentinel.loading span{opacity:1;animation:spin-v17 .75s linear infinite}.catalog-pager{display:flex;align-items:center;justify-content:center;gap:14px;margin:4px 0 28px}.catalog-pager button{border:1px solid var(--line);background:#fff;color:#52647a;border-radius:9px;padding:9px 13px;font-weight:700;font-size:10px}.catalog-pager button:hover:not(:disabled){border-color:#aebdd0;background:#f7f9fb}.catalog-pager button:disabled{opacity:.38;cursor:not-allowed}.catalog-pager span{min-width:140px;text-align:center;font-size:10px;color:#7d8999}.book-grid.list .book-card h3{min-height:auto;-webkit-line-clamp:1}.book-grid.list .book-description{-webkit-line-clamp:2;min-height:auto}.book-grid.list .book-author{max-width:420px}@keyframes spin-v17{to{transform:rotate(360deg)}}
@media(max-width:720px){.book-card h3{-webkit-line-clamp:2}.book-description{-webkit-line-clamp:2;min-height:2.95em}.catalog-pager{gap:8px}.catalog-pager button{padding:8px 10px}.catalog-pager span{min-width:96px}.catalog-sentinel{min-height:58px}.fake-cover strong{-webkit-line-clamp:3}}
@media(max-width:420px){.book-author{font-size:9px}.catalog-pager{display:grid;grid-template-columns:1fr auto 1fr}.catalog-pager button{font-size:9px;padding-inline:6px}.catalog-pager span{min-width:0}}
