.bookshelf{min-height:100vh;background-image:url(https://www.egypttoursportal.com/images/2025/03/Organizationof-the-Library-of-Alexandria-Egypt-Tours-Portal.jpg);background-size:cover;background-position:center;background-repeat:no-repeat;background-attachment:fixed;padding:2rem 2rem 4rem;position:relative}.bookshelf:before{content:"";position:fixed;inset:0;background-color:#f5f5f0d9;z-index:0;pointer-events:none}.bookshelf>*{position:relative;z-index:1}.bookshelf-header{margin-bottom:2rem;background-color:#ffffffb3;padding:1.5rem;border-radius:8px;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);box-shadow:0 2px 8px #0000001a}.bookshelf-title{font-size:2.5rem;font-weight:700;margin-bottom:1.5rem;color:#2c3e50;text-shadow:2px 2px 4px rgba(255,255,255,.8),0 0 10px rgba(255,255,255,.5);letter-spacing:2px}.search-container{position:relative;margin-bottom:1.5rem;max-width:500px}.search-input{width:100%;padding:.75rem 2.5rem .75rem 1rem;border:2px solid #ddd;border-radius:8px;font-size:1rem;transition:border-color .2s,box-shadow .2s;background-color:#fff}.search-input:focus{outline:none;border-color:#4a7c59;box-shadow:0 0 0 3px #4a7c591a}.search-input::placeholder{color:#999}.search-clear{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);background:none;border:none;font-size:1.5rem;color:#999;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;transition:color .2s;line-height:1}.search-clear:hover{color:#333}.bookshelf-controls{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem}.sort-controls{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.sort-label{font-weight:600;color:#333}.sort-button{padding:.5rem 1rem;border:2px solid #4a7c59;background-color:transparent;color:#4a7c59;font-weight:600;cursor:pointer;border-radius:4px;transition:all .2s;font-size:.9rem}.sort-button:hover,.sort-button.active{background-color:#4a7c59;color:#fff}.book-count{font-weight:600;color:#333;font-size:.9rem}.view-toggle-button{padding:.5rem 1rem;border:2px solid #4a7c59;background-color:#4a7c59;color:#fff;font-weight:600;cursor:pointer;border-radius:4px;transition:all .2s;font-size:.9rem}.view-toggle-button:hover{background-color:#3a6b49;border-color:#3a6b49}.books-container{position:relative}.year-label{font-size:1.5rem;font-weight:700;margin-bottom:1.5rem;color:#2c3e50;text-shadow:1px 1px 2px rgba(255,255,255,.8)}.books-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1.5rem;max-width:1400px}.book-card{position:relative;cursor:pointer;transition:transform .2s,box-shadow .2s;border-radius:4px;overflow:hidden}.book-card:hover{transform:translateY(-4px);box-shadow:0 8px 16px #0003}.book-cover{width:100%;height:auto;display:block;border-radius:4px;box-shadow:0 2px 8px #0000001a}.book-cover-placeholder{width:100%;aspect-ratio:2/3;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;align-items:center;justify-content:center;border-radius:4px;box-shadow:0 2px 8px #0000001a}.book-cover-text{padding:1rem;text-align:center;color:#fff}.book-title-small{font-size:.7rem;font-weight:700;margin-bottom:.5rem;line-height:1.2}.book-author-small{font-size:.6rem;opacity:.9}.book-liked-icon{position:absolute;top:8px;right:8px;font-size:1.2rem;background:#ffffffe6;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px #0003}.loading{text-align:center;padding:4rem;font-size:1.2rem;color:#666}.no-results{text-align:center;padding:4rem;color:#666}.no-results p{font-size:1.2rem;margin-bottom:.5rem}.no-results-hint{font-size:1rem;color:#999;font-style:italic}.scroll-to-top{position:fixed;bottom:2rem;right:2rem;width:50px;height:50px;background-color:#4a7c59;color:#fff;border:none;border-radius:50%;font-size:1.5rem;cursor:pointer;box-shadow:0 4px 8px #0003;transition:all .2s;display:flex;align-items:center;justify-content:center}.scroll-to-top:hover{background-color:#3a6b49;transform:translateY(-2px);box-shadow:0 6px 12px #0000004d}.books-shelf-container{width:100%;height:70vh;min-height:500px;position:relative;margin:2rem 0}.shelf-viewport{width:100%;height:100%;position:relative;overflow:hidden;background:linear-gradient(to bottom,#2a2a2a,#1a1a1a,#2a2a2a);border-radius:8px;perspective:1500px;perspective-origin:center center;cursor:pointer}.shelf-track{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;transform-style:preserve-3d;width:100%;height:100%}.shelf-book{position:absolute;width:200px;height:300px;cursor:pointer;transition:all .5s cubic-bezier(.4,0,.2,1);transform-style:preserve-3d;transform-origin:center center;left:50%;top:50%;margin-left:-100px;margin-top:-150px}.shelf-book:hover:not(.selected){opacity:.9!important}.shelf-book.selected{filter:drop-shadow(0 15px 40px rgba(0,0,0,.6));cursor:pointer}.shelf-book-cover{width:100%;height:100%;object-fit:cover;border-radius:4px;box-shadow:0 8px 24px #0006;border:2px solid rgba(255,255,255,.1)}.shelf-book-placeholder{width:100%;height:100%;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:4px;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 24px #0006;border:2px solid rgba(255,255,255,.1)}.shelf-book-text{padding:1rem;text-align:center;color:#fff}.shelf-book-title{font-size:.8rem;font-weight:700;margin-bottom:.5rem;line-height:1.2}.shelf-book-author{font-size:.7rem;opacity:.9}.shelf-book-liked{position:absolute;top:8px;right:8px;font-size:1.2rem;background:#ffffffe6;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px #0003;z-index:10}.shelf-book-info{position:absolute;bottom:-60px;left:50%;transform:translate(-50%);text-align:center;color:#fff;background:#000c;padding:.75rem 1.5rem;border-radius:8px;white-space:nowrap;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 4px 12px #0000004d}.shelf-book-info-title{font-size:1rem;font-weight:700;margin-bottom:.25rem}.shelf-book-info-author{font-size:.85rem;opacity:.9}.shelf-navigation-hint{text-align:center;margin-top:1rem;color:#666;font-size:.9rem;font-style:italic}@media(max-width:768px){.books-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:1rem}.bookshelf{padding:1rem}.bookshelf-title{font-size:1.5rem}.search-container{max-width:100%}.bookshelf-controls{flex-direction:column;align-items:flex-start}.book-count{margin-top:.5rem}.books-shelf-container{height:60vh;min-height:400px}.shelf-book{width:120px;height:180px}.shelf-book-info{bottom:-50px;padding:.5rem 1rem}.shelf-book-info-title{font-size:.85rem}.shelf-book-info-author{font-size:.75rem}}.book-detail{min-height:100vh;background-color:#f5f5f0;padding:2rem;max-width:1200px;margin:0 auto}.back-button{padding:.75rem 1.5rem;background-color:#4a7c59;color:#fff;border:none;border-radius:4px;font-size:1rem;font-weight:600;cursor:pointer;margin-bottom:2rem;transition:background-color .2s}.back-button:hover{background-color:#3a6b49}.book-detail-header{display:flex;gap:2rem;margin-bottom:3rem;padding-bottom:2rem;border-bottom:2px solid #ddd}.book-detail-cover{width:200px;height:auto;border-radius:4px;box-shadow:0 4px 12px #00000026;flex-shrink:0}.book-detail-info{flex:1}.book-detail-title{font-size:2.5rem;font-weight:700;margin-bottom:.5rem;color:#333;line-height:1.2}.book-detail-author{font-size:1.5rem;color:#666;font-weight:400}.book-reader{margin-top:2rem;display:flex;flex-direction:column;align-items:center;gap:2rem}.book-page-container{width:100%;max-width:900px;perspective:1000px;cursor:grab;-webkit-user-select:none;user-select:none}.book-page-container:active{cursor:grabbing}.book-page{background:linear-gradient(to right,#f9f9f4,#fff 5% 95%,#f9f9f4);min-height:70vh;max-height:80vh;padding:3rem 4rem;box-shadow:0 0 0 1px #0000001a,0 10px 40px #00000026,inset -1px 0 #0000000d;border-radius:2px;position:relative;overflow:hidden;display:flex;flex-direction:column;transition:transform .3s ease,box-shadow .3s ease,opacity .3s ease;animation:pageFadeIn .3s ease-in}@keyframes pageFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.book-page:hover{box-shadow:0 0 0 1px #0000001a,0 15px 50px #0003,inset -1px 0 #0000000d}.book-page-content{flex:1;font-size:1.15rem;line-height:1.9;color:#2c2c2c;text-align:justify;-webkit-hyphens:auto;hyphens:auto;overflow-y:auto;padding-right:1rem;font-family:Georgia,Times New Roman,serif}.book-page-content::-webkit-scrollbar{width:8px}.book-page-content::-webkit-scrollbar-track{background:transparent}.book-page-content::-webkit-scrollbar-thumb{background:#0003;border-radius:4px}.book-page-content::-webkit-scrollbar-thumb:hover{background:#0000004d}.book-page-footer{margin-top:2rem;padding-top:1.5rem;border-top:1px solid rgba(0,0,0,.1);display:flex;justify-content:center}.page-number{font-size:.9rem;color:#666;font-style:italic}.book-navigation{display:flex;align-items:center;justify-content:center;gap:2rem;width:100%;max-width:900px;padding:1rem}.nav-button{padding:.75rem 1.5rem;background-color:#4a7c59;color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s;min-width:120px}.nav-button:hover:not(:disabled){background-color:#3a6b49;transform:translateY(-1px);box-shadow:0 4px 8px #00000026}.nav-button:disabled{background-color:#ccc;cursor:not-allowed;opacity:.6}.page-indicator{font-size:1rem;color:#666;font-weight:500;min-width:150px;text-align:center}.loading,.error{text-align:center;padding:4rem;font-size:1.2rem;color:#666}.error{color:#d32f2f}@media(max-width:768px){.book-detail{padding:1rem}.book-detail-header{flex-direction:column;gap:1rem}.book-detail-cover{width:150px;margin:0 auto}.book-detail-title{font-size:1.8rem}.book-detail-author{font-size:1.2rem}.book-page{min-height:60vh;max-height:70vh;padding:2rem 1.5rem}.book-page-content{font-size:1rem;line-height:1.7}.book-navigation{flex-direction:column;gap:1rem}.nav-button{width:100%;max-width:200px}.page-indicator{order:-1}}.app{min-height:100vh}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f5f0;color:#333;margin:0;padding:0}#root{min-height:100vh}
