@import"https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;700&display=swap";:root{--primary-color: #e63946;--secondary-color: #181818;--accent-color: #fff3e2;--background-color: #121212;--text-color: #fff3e2;--light-gray: #f7eedd;--white: #fff;--shadow: 0 4px 6px -1px rgba(230, 57, 70, .08), 0 2px 4px -1px rgba(24, 24, 24, .06);--transition: all .3s cubic-bezier(.4, 0, .2, 1);--gradient-primary: linear-gradient(135deg, #e63946 0%, #181818 100%);--gradient-accent: linear-gradient(135deg, #fff3e2 0%, #e63946 100%);--gradient-light: linear-gradient(135deg, #fff3e2 0%, #f7eedd 100%);--gradient-dark: linear-gradient(135deg, #181818 0%, #121212 100%);--urban-pattern: url('data:image/svg+xml,<svg width="100" height="100" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><rect width="100" height="100" fill="none"/><path d="M0 0 L100 100 M100 0 L0 100 M50 0 L50 100 M0 50 L100 50" stroke="rgba(230, 57, 70, 0.08)" stroke-width="1"/></svg>')}.footer{background:var(--gradient-dark);padding:2rem;text-align:center;margin-top:auto;position:relative;overflow:hidden}.footer:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:var(--urban-pattern);opacity:.1;animation:rotate 20s linear infinite}.footer p{color:var(--accent-color);font-size:.9rem;position:relative;z-index:1}.form-group label{color:var(--accent-color);font-weight:500}.form-group input{padding:.75rem 1rem;border:2px solid rgba(230,57,70,.2);border-radius:8px;background:#181818cc;color:var(--text-color);font-size:1rem;transition:var(--transition)}.form-group input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #e6394633}.form-group input::placeholder{color:var(--accent-color);opacity:.5}@media (max-width: 768px){.header{padding:1rem}.header-content{flex-direction:column;gap:1rem}.nav-links{gap:1rem}.nav-link{padding:.5rem}.book-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}}@media (max-width: 480px){.header{padding:.75rem}.header-content{flex-direction:column}.nav-links{flex-direction:column;align-items:center}.nav-link{width:100%;text-align:center}.search-bar{flex-direction:column}.search-bar button{width:100%}.book-grid{grid-template-columns:1fr}}@media (max-width: 768px){.home-page h1{font-size:3rem}}@media (max-width: 480px){.home-page h1{font-size:2.5rem}}.search-bar{display:flex;gap:1rem;margin-bottom:2rem}.search-bar input{flex:1;padding:1rem;border:2px solid rgba(230,57,70,.2);border-radius:8px;background:#181818cc;color:var(--text-color);font-size:1rem;transition:var(--transition)}.search-bar input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 2px #e6394633}.search-bar button{padding:1rem 2rem;background:var(--gradient-primary);color:var(--white);border:none;border-radius:8px;cursor:pointer;font-weight:600;transition:var(--transition)}.search-bar button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #e6394633}.book-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:2rem;margin-top:2rem}.book-card:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:var(--gradient-primary);opacity:0;transition:var(--transition)}.book-card:hover:before{opacity:.1}.book-card img{width:100%;height:300px;object-fit:cover;transition:var(--transition)}.book-card:hover img{transform:scale(1.05)}.book-info h3{color:var(--text-color);margin-bottom:.5rem;font-size:1.2rem}.author{color:var(--accent-color);font-size:.9rem;opacity:.8}.book-meta{display:flex;justify-content:space-between;margin-top:1rem;color:var(--accent-color);font-size:.9rem}.preview-badge{position:absolute;top:1rem;right:1rem;background:var(--gradient-primary);color:var(--white);padding:.5rem 1rem;border-radius:4px;font-size:.8rem;font-weight:600;z-index:1}@media (max-width: 768px){.browse-header h1{font-size:2rem}.filters{flex-direction:column}.filter-group,.filter-select{width:100%}}@media (max-width: 480px){.browse-header{padding:1.5rem}.browse-header h1{font-size:1.8rem}.search-filters{flex-direction:column}.book-info{padding:1rem}}.book-detail{max-width:1400px;margin:0 auto;padding:2rem;background:var(--background-color)}.book-detail-header{margin-bottom:2rem}.back-button{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:var(--gradient-primary);color:var(--white);border:none;border-radius:8px;cursor:pointer;font-weight:600;transition:var(--transition);text-decoration:none}.back-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #e6394633}.book-detail-content{display:grid;grid-template-columns:300px 1fr;gap:3rem;align-items:start}.book-cover{position:relative;border-radius:12px;overflow:hidden;box-shadow:var(--shadow);aspect-ratio:2/3}.book-cover:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:var(--gradient-primary);opacity:.1;transition:var(--transition)}.book-cover img{width:100%;height:100%;object-fit:cover;transition:var(--transition)}.preview-button{position:absolute;bottom:1rem;left:50%;transform:translate(-50%);padding:.75rem 1.5rem;background:var(--gradient-primary);color:var(--white);border:none;border-radius:8px;cursor:pointer;font-weight:600;transition:var(--transition);opacity:0;pointer-events:none}.book-cover:hover .preview-button{opacity:1;pointer-events:auto}.book-info h1{font-size:2.5rem;margin-bottom:1rem;color:var(--text-color);position:relative;padding-bottom:.5rem}.book-info h1:after{content:"";position:absolute;bottom:0;left:0;width:100px;height:4px;background:var(--gradient-primary);border-radius:2px}.book-info .author{font-size:1.2rem;color:var(--accent-color);margin-bottom:1.5rem}.book-rating{display:flex;align-items:center;gap:.5rem;margin-bottom:1.5rem}.book-meta{display:flex;gap:2rem;margin-bottom:2rem;color:var(--accent-color)}.book-description h2,.book-subjects h2{font-size:1.5rem;margin-bottom:1rem;color:var(--text-color)}.book-description p,.book-info p,.book-subjects{color:var(--accent-color);line-height:1.8;margin-bottom:1.5rem}.book-description{margin-bottom:2rem}.book-subjects h2{margin-bottom:1.5rem}.subject-tags{display:flex;flex-wrap:wrap;gap:1rem}.subject-tag{padding:.5rem 1rem;background:#181818cc;border-radius:8px;color:var(--accent-color);font-size:.9rem;transition:var(--transition);position:relative;overflow:hidden;cursor:pointer}.subject-tag:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:var(--gradient-primary);opacity:0;transition:var(--transition);z-index:-1}.subject-tag:hover{color:var(--white);transform:translateY(-2px)}.subject-tag:hover:before{opacity:.2}.similar-books{margin-top:3rem}.similar-books h2{font-size:1.8rem;margin-bottom:1.5rem;color:var(--text-color);position:relative;padding-bottom:.5rem}.similar-books-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:2rem}.similar-book-card{background:#181818cc;border-radius:12px;overflow:hidden;transition:var(--transition)}.similar-book-card:hover{transform:translateY(-5px)}.similar-book-card img{width:100%;height:250px;object-fit:cover;transition:var(--transition)}.similar-book-card h3{padding:1rem;color:var(--text-color);font-size:1.1rem}.similar-book-card p{padding:0 1rem 1rem;color:var(--accent-color);font-size:.9rem}.book-detail.loading{opacity:.7;pointer-events:none}.skeleton-cover,.skeleton-title,.skeleton-author,.skeleton-description{background:linear-gradient(90deg,#181818,#242424,#181818);background-size:200% 100%;animation:shimmer 1.5s infinite}.skeleton-cover{width:100%;height:450px;border-radius:12px;margin-bottom:2rem}.skeleton-cover:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:var(--gradient-primary);opacity:.1}.skeleton-title{width:80%;height:2.5rem;margin-bottom:1rem;border-radius:4px}.skeleton-title:after{content:"";position:absolute;bottom:0;left:0;width:100px;height:4px;background:var(--gradient-primary);border-radius:2px}.skeleton-author{width:60%;height:1.5rem;margin-bottom:2rem;border-radius:4px}.skeleton-author:after{content:"";position:absolute;bottom:0;left:0;width:100px;height:4px;background:var(--gradient-primary);border-radius:2px}.skeleton-description{width:100%;height:1rem;margin-bottom:1rem;border-radius:4px}.skeleton-description:after{content:"";position:absolute;bottom:0;left:0;width:100px;height:4px;background:var(--gradient-primary);border-radius:2px}@media (max-width: 1200px){.book-detail-content{grid-template-columns:250px 1fr;gap:2rem}}@media (max-width: 768px){.book-detail-content{grid-template-columns:1fr}.book-cover{max-width:300px;margin:0 auto}.book-info h1:after{width:80px}.similar-books-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}}.favorites-page{max-width:1400px;margin:0 auto;padding:2rem;background:var(--background-color)}.favorites-page h1{font-size:2.5rem;margin-bottom:2rem;color:var(--text-color);position:relative;padding-bottom:.5rem}.favorites-page h1:after{content:"";position:absolute;bottom:0;left:0;width:100px;height:4px;background:var(--gradient-primary);border-radius:2px}.favorites-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:4rem 2rem;background:var(--gradient-dark);border-radius:12px;margin-top:2rem}.favorites-empty h1{font-size:2rem;margin-bottom:1rem;color:var(--text-color);position:relative;padding-bottom:0}.favorites-empty h1:after{display:none}.favorites-empty p{color:var(--accent-color);font-size:1.1rem;max-width:500px;margin-bottom:2rem}.book-card{background:#181818cc;border-radius:12px;overflow:hidden;transition:var(--transition);position:relative;border:1px solid rgba(230,57,70,.1)}.favorite-button{position:absolute;top:1rem;right:1rem;background:var(--gradient-primary);color:var(--white);border:none;border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--transition);z-index:1;box-shadow:var(--shadow)}.favorite-button:hover{transform:scale(1.1)}.favorite-button.active{background:var(--gradient-accent);color:var(--secondary-color)}@media (max-width: 768px){.favorites-page{padding:1.5rem}.favorites-page h1{font-size:2rem}.favorite-button{width:35px;height:35px}}.signup-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:2rem;background:var(--gradient-dark);position:relative;overflow:hidden}.signup-container{background:#181818f2;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:16px;padding:3rem;width:100%;max-width:500px;box-shadow:var(--shadow);border:1px solid rgba(230,57,70,.2);position:relative;z-index:1}.signup-container h1{font-size:2.5rem;margin-bottom:1rem;color:var(--text-color);text-align:center;position:relative;padding-bottom:.5rem}.signup-container h1:after{content:"";position:absolute;bottom:0;left:50%;transform:translate(-50%);width:100px;height:4px;background:var(--gradient-primary);border-radius:2px}.signup-container p{color:var(--accent-color);text-align:center;margin-bottom:2rem;font-size:1.1rem}.signup-form .form-group input.error{border-color:var(--primary-color)}.error-message{color:var(--primary-color);font-size:.9rem;margin-top:.5rem}.signup-submit{padding:1rem;background:var(--gradient-primary);color:var(--white);border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:var(--transition);margin-top:1rem}.signup-footer{text-align:center;margin-top:2rem}.signup-footer p{color:var(--accent-color);margin-bottom:.5rem}.signup-footer a:hover{text-decoration:underline}:root{--primary-color: #e63946;--secondary-color: #181818;--accent-color: #fff3e2;--background-color: #121212;--text-color: #fff3e2;--light-gray: #f7eedd;--white: #fff;--shadow: 0 4px 6px -1px rgba(230, 57, 70, .08), 0 2px 4px -1px rgba(24, 24, 24, .06);--transition: all .3s cubic-bezier(.4, 0, .2, 1);--gradient-primary: linear-gradient(135deg, #e63946 0%, #181818 100%);--gradient-accent: linear-gradient(135deg, #fff3e2 0%, #e63946 100%);--gradient-light: linear-gradient(135deg, #fff3e2 0%, #f7eedd 100%);--gradient-dark: linear-gradient(135deg, #181818 0%, #121212 100%);--urban-pattern: url('data:image/svg+xml,<svg width="100" height="100" viewBox="0 0 100 100" xmlns="http://www.w3.org/2000/svg"><rect width="100" height="100" fill="none"/><path d="M0 0 L100 100 M100 0 L0 100 M50 0 L50 100 M0 50 L100 50" stroke="rgba(230, 57, 70, 0.08)" stroke-width="1"/></svg>')}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Space Grotesk,Poppins,Montserrat,Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background-color:var(--background-color);color:var(--text-color);line-height:1.6;-webkit-font-smoothing:antialiased}.app{min-height:100vh;display:flex;flex-direction:column}.header{background-color:#181818f2;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid rgba(230,57,70,.15);padding:1rem 2rem;position:sticky;top:0;z-index:100}.header-content{max-width:1400px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.logo{position:relative;padding:.5rem 1rem;font-size:1.8rem;font-weight:800;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;text-decoration:none;letter-spacing:-.5px;font-family:Inter,sans-serif;text-transform:uppercase}.logo:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:var(--gradient-primary);opacity:.2;border-radius:4px;z-index:-1}.nav-links{display:flex;gap:2rem}.nav-link{color:var(--accent-color);text-decoration:none;font-weight:600;transition:var(--transition);padding:.5rem 1rem;border-radius:8px;position:relative}.nav-link:after{content:"";position:absolute;bottom:0;left:50%;width:0;height:2px;background:var(--gradient-primary);transition:var(--transition);transform:translate(-50%)}.nav-link:hover:after{width:100%}.login-button{background:var(--gradient-primary);color:var(--white)!important;padding:.5rem 1.5rem!important;border-radius:8px;transition:var(--transition);border:1px solid rgba(230,57,70,.2)}.login-button:hover{transform:translateY(-1px);box-shadow:0 4px 12px #e6394633}.login-button:after{display:none}.home-page{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:6rem 2rem;background:var(--gradient-dark);position:relative;overflow:hidden;color:var(--text-color)}.home-page:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:var(--urban-pattern);opacity:.1;animation:rotate 20s linear infinite}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.home-page h1{background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;text-shadow:0 2px 4px rgba(0,0,0,.2);font-size:4rem;margin-bottom:1.5rem;color:var(--text-color);position:relative;z-index:1;line-height:1.2;letter-spacing:-.5px;font-family:Inter,sans-serif;text-transform:uppercase}.home-page p{font-size:1.25rem;margin-bottom:2.5rem;color:var(--text-color);max-width:600px;position:relative;z-index:1;opacity:.9}.browse-button{display:inline-block;padding:1rem 2.5rem;background:var(--gradient-primary);color:var(--white);text-decoration:none;border-radius:12px;font-weight:700;transition:var(--transition);box-shadow:var(--shadow);position:relative;z-index:1;border:2px solid rgba(230,57,70,.2);cursor:pointer;text-transform:uppercase;letter-spacing:1px}.browse-button:hover{transform:translateY(-2px);box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;background:var(--gradient-accent);color:var(--secondary-color)}.browse-page{max-width:1400px;margin:0 auto;padding:2rem;background:var(--background-color)}.browse-header{background:linear-gradient(135deg,#181818 60%,#fff3e2);color:var(--primary-color);box-shadow:0 4px 16px -1px #e639461f;border:1.5px solid var(--primary-color);text-align:center;margin-bottom:3rem;padding:2rem;border-radius:18px;transition:background .3s}.browse-header h1{color:var(--primary-color);font-weight:800;text-shadow:0 2px 8px rgba(24,24,24,.12)}.browse-header p{color:gold;font-size:1.2rem;font-weight:600;opacity:1;text-shadow:0 1px 8px rgba(24,24,24,.18);letter-spacing:.5px}.search-bar{display:flex;gap:1rem;margin-bottom:3rem;position:relative}.search-bar input{flex:1;padding:1rem 1.5rem;border:2px solid var(--primary-color);border-radius:12px;font-size:1rem;transition:var(--transition);background-color:var(--secondary-color);box-shadow:var(--shadow);color:var(--accent-color)}.search-bar input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 4px #e639461a}.search-bar input::placeholder{color:#bdbdbd}.search-bar button{padding:1rem 2rem;background:var(--gradient-primary);color:var(--accent-color);border:none;border-radius:12px;cursor:pointer;transition:var(--transition);font-weight:700;box-shadow:var(--shadow);text-transform:uppercase;letter-spacing:1px}.search-bar button:hover{transform:translateY(-2px);box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;background:var(--gradient-accent);color:var(--secondary-color)}.book-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:2.5rem;padding:1rem 0;background:var(--background-color)}.book-card{background-color:var(--secondary-color);border-radius:16px;overflow:hidden;box-shadow:0 4px 16px -1px #e639461a;transition:var(--transition);text-decoration:none;color:var(--accent-color);position:relative;isolation:isolate;border:1.5px solid var(--primary-color)}.book-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--gradient-primary);opacity:0;transition:opacity .3s ease;z-index:-1}.book-card:hover:before{opacity:1}.book-card img{width:100%;height:380px;object-fit:cover;transition:var(--transition);position:relative;z-index:1;border-bottom:4px solid var(--primary-color)}.book-card:hover img{transform:translateY(-8px) rotate(-1deg)}.book-info h3{font-size:1.25rem;margin-bottom:.75rem;color:var(--primary-color);font-weight:700;line-height:1.4}.book-info p,.author{font-size:1rem;color:var(--accent-color);margin-bottom:1rem;line-height:1.5}.book-detail{background:var(--background-color);color:var(--accent-color)}.book-detail-header{margin-bottom:2.5rem}.back-button{background-color:var(--accent-color);color:var(--secondary-color);border:2px solid var(--primary-color);font-weight:700;font-size:1.1rem;box-shadow:0 2px 12px #e6394622}.back-button:hover{background-color:var(--primary-color);color:var(--accent-color);border:2px solid var(--accent-color)}.book-detail-content{background:linear-gradient(135deg,#181818 70%,#222);border-radius:18px;padding:2.5rem 2rem;box-shadow:0 8px 32px -8px #e63946cc,0 2px 8px #18181844;display:grid;grid-template-columns:350px 1fr;gap:3rem;margin-bottom:4rem}.book-cover{position:relative;box-shadow:var(--shadow);border-radius:16px;overflow:hidden;transform-style:preserve-3d;transition:transform .5s ease;border:4px solid var(--primary-color)}.book-cover:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,transparent 0%,rgba(0,0,0,.3) 100%);border-radius:16px;pointer-events:none}.book-cover img{width:100%;height:auto;display:block}.preview-button{position:absolute;bottom:0;left:0;right:0;background:var(--gradient-accent);color:#fff;padding:1.25rem;text-align:center;text-decoration:none;font-weight:600;transition:var(--transition);transform:translateY(100%)}.book-cover:hover .preview-button{transform:translateY(0)}.book-info h1{color:var(--accent-color);font-family:Space Grotesk,Poppins,Montserrat,Inter,sans-serif;font-size:2.7rem;font-weight:800;letter-spacing:-1px;text-transform:uppercase;margin-bottom:1rem;text-shadow:0 2px 8px #18181899}.book-info h1:after{background:var(--primary-color);height:4px;border-radius:2px}.book-info .author{color:gold;font-size:1.2rem;font-weight:600;margin-bottom:1.2rem}.book-rating{color:gold;font-size:1.5rem;margin-bottom:1.5rem}.book-meta{color:var(--accent-color);font-size:1.1rem;margin-bottom:2rem}.book-description h2,.book-subjects h2{color:var(--primary-color);font-size:1.3rem;font-weight:700;margin-bottom:1rem}.book-description p,.book-info p,.book-subjects{color:var(--accent-color);font-size:1.08rem;font-weight:500;opacity:.95}.book-description{margin-bottom:2.5rem}.book-subjects h2{margin-bottom:.7rem}.subject-tags{display:flex;flex-wrap:wrap;gap:.75rem}.subject-tag{position:relative;overflow:hidden;background:var(--gradient-light);padding:.5rem 1rem;border-radius:8px;font-size:.9rem;color:#475569;font-weight:600;transition:var(--transition);border:1px solid rgba(37,99,235,.2);text-transform:uppercase;letter-spacing:1px}.subject-tag:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:var(--gradient-primary);opacity:0;transition:opacity .3s ease;z-index:-1}.subject-tag:hover{color:#fff}.subject-tag:hover:before{opacity:1}.similar-books{margin-top:4rem;padding-top:3rem;border-top:2px solid var(--light-gray)}.similar-books h2{font-size:2rem;margin-bottom:2rem;color:var(--secondary-color);font-weight:700;letter-spacing:-.5px}.similar-books-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:2rem}.similar-book-card{text-decoration:none;color:inherit;transition:var(--transition)}.similar-book-card:hover{transform:translateY(-8px)}.similar-book-card img{width:100%;height:350px;object-fit:cover;border-radius:12px;margin-bottom:1rem;box-shadow:var(--shadow)}.similar-book-card h3{font-size:1.1rem;margin-bottom:.5rem;color:var(--secondary-color);font-weight:600}.similar-book-card p{font-size:.9rem;color:#64748b}.book-detail.loading{padding:2rem}.skeleton-cover,.skeleton-title,.skeleton-author,.skeleton-description{position:relative;overflow:hidden;background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb,#f3f4f6 75%)}.skeleton-cover{width:350px;height:500px;background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:16px;margin-bottom:2rem}.skeleton-cover:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 50%,transparent 100%);animation:shimmer 2s infinite}.skeleton-title{width:80%;height:2.5rem;background-size:200% 100%;animation:shimmer 1.5s infinite;margin-bottom:1.5rem;border-radius:8px}.skeleton-title:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 50%,transparent 100%);animation:shimmer 2s infinite}.skeleton-author{width:60%;height:1.75rem;background-size:200% 100%;animation:shimmer 1.5s infinite;margin-bottom:1.5rem;border-radius:8px}.skeleton-author:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 50%,transparent 100%);animation:shimmer 2s infinite}.skeleton-description{width:100%;height:10rem;background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:8px}.skeleton-description:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 50%,transparent 100%);animation:shimmer 2s infinite}@media (max-width: 1200px){.book-detail-content{grid-template-columns:300px 1fr}}@media (max-width: 768px){.book-detail-content{grid-template-columns:1fr}.book-cover{max-width:300px;margin:0 auto;transform:none!important}.book-info h1:after{width:3rem}.similar-books-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.home-page h1{font-size:3rem}.book-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}}@media (max-width: 480px){.header{padding:1rem}.header-content{flex-direction:column;gap:1rem}.nav-links{width:100%;justify-content:space-around}.nav-link{padding:.5rem}.search-bar{flex-direction:column}.search-bar button{width:100%}.book-grid{grid-template-columns:1fr}.home-page h1{font-size:2.5rem}}.footer{background-color:var(--secondary-color);padding:3rem 2rem;text-align:center;margin-top:auto;box-shadow:0 -4px 6px -1px #0000001a;position:relative;color:var(--accent-color);border-top:1px solid rgba(230,57,70,.15)}.footer:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:var(--gradient-primary)}.footer p{color:var(--accent-color);font-size:.9rem}.loading{text-align:center;padding:3rem;color:var(--primary-color);font-size:1.25rem;font-weight:500}.error{text-align:center;padding:3rem;color:var(--accent-color);font-size:1.25rem;font-weight:500;background-color:#fef2f2;border-radius:12px;margin:2rem;box-shadow:var(--shadow)}.pdf-viewer{margin-top:3rem;background-color:var(--white);border-radius:16px;padding:2rem;box-shadow:var(--shadow);position:relative;overflow:hidden;border:1px solid rgba(230,57,70,.1)}.pdf-viewer:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:var(--gradient-primary);opacity:.5}.pdf-viewer h3{font-size:1.75rem;margin-bottom:1.5rem;color:var(--secondary-color);font-weight:700}.pdf-controls{display:flex;align-items:center;justify-content:center;gap:1.5rem;margin-bottom:2rem}.pdf-controls button{padding:.75rem 1.5rem;background:var(--gradient-primary);color:var(--white);border:none;border-radius:8px;cursor:pointer;transition:var(--transition);font-weight:700;box-shadow:var(--shadow);position:relative;overflow:hidden;text-transform:uppercase;letter-spacing:1px}.pdf-controls button:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.2) 50%,transparent 100%);animation:shimmer 2s infinite}.pdf-controls button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 20px 25px -5px #0000001a}.pdf-controls button:disabled{background:var(--light-gray);color:#94a3b8;cursor:not-allowed;box-shadow:none}.pdf-container{display:flex;justify-content:center;background-color:var(--light-gray);padding:2rem;border-radius:12px;box-shadow:inset 0 2px 4px #0000000f}.genre-filters,.genre-button,.genre-button:hover,.genre-button.active{display:none}.search-filters{background-color:var(--white);padding:2rem;border-radius:8px;box-shadow:0 4px 6px -1px #0000000d;margin-bottom:2rem}.filters{display:flex;gap:2rem;margin-top:1.5rem;flex-wrap:wrap}.filter-group{display:flex;flex-direction:column;gap:.5rem}.filter-group label{font-weight:600;color:var(--secondary-color)}.filter-select{padding:.8rem 1.2rem;border:2px solid var(--light-gray);border-radius:50px;font-size:1rem;background-color:var(--white);color:var(--text-color);cursor:pointer;transition:var(--transition)}.filter-select:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 3px #4a90e21a}.results-info{margin-bottom:1rem;color:var(--text-color);font-size:.9rem}.book-cover-container{position:relative;overflow:hidden}.book-cover-container img{width:100%;height:300px;object-fit:cover;transition:var(--transition)}.book-overlay{position:absolute;top:0;left:0;right:0;bottom:0;background-color:#e63946eb;display:flex;align-items:center;justify-content:center;opacity:0;transition:var(--transition)}.book-card:hover .book-overlay{opacity:1}.book-overlay span{color:var(--secondary-color);font-weight:600;font-size:1.1rem}.book-info{padding:1.5rem}.book-info h3{font-size:1.2rem;margin-bottom:.5rem;color:var(--primary-color);line-height:1.4}.author{color:#666;font-size:.9rem;margin-bottom:1rem}.book-meta{display:flex;justify-content:space-between;align-items:center}.preview-badge{background-color:var(--primary-color);color:var(--accent-color);padding:.3rem .8rem;border-radius:50px;font-size:.8rem;font-weight:600}@media (max-width: 768px){.browse-header h1{font-size:2rem}.filters{flex-direction:column;gap:1rem}.filter-group,.filter-select{width:100%}}@media (max-width: 480px){.browse-header{padding:1.5rem}.browse-header h1{font-size:1.8rem}.search-filters{padding:1.5rem}.book-info{padding:1rem}}.skeleton{background-color:var(--secondary-color);border-radius:8px;overflow:hidden;box-shadow:var(--shadow)}.skeleton-cover{width:100%;height:300px;background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb,#f3f4f6 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}.skeleton-title{height:24px;width:80%;background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb,#f3f4f6 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;margin:1rem;border-radius:4px}.skeleton-author{height:16px;width:60%;background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb,#f3f4f6 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;margin:.5rem 1rem;border-radius:4px}.skeleton-genre{height:16px;width:40%;background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb,#f3f4f6 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;margin:.5rem 1rem;border-radius:4px}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.book-rating{position:absolute;bottom:0;left:0;right:0;background-color:#000000b3;color:gold;padding:.5rem;font-size:1rem;text-align:center}.load-more{text-align:center;margin:2rem 0}.load-more-button{padding:1rem 2rem;background-color:var(--primary-color);color:var(--white);border:none;border-radius:50px;font-weight:600;cursor:pointer;transition:var(--transition);box-shadow:var(--shadow)}.load-more-button:hover{transform:translateY(-2px);box-shadow:0 6px 12px #00000026;background-color:#357abd}.load-more-button:disabled{background-color:var(--light-gray);color:#666;cursor:not-allowed;transform:none;box-shadow:none}.graffiti-effect,.hip-hop-quote,.street-art-pattern{display:none}@keyframes breakdance{}@keyframes beat{}@font-face{font-family:Urban Jungle}.features{display:flex;justify-content:center;gap:2.5rem;padding:3rem 1rem 0;max-width:1100px;margin:0 auto;flex-wrap:wrap}.feature-card{background:linear-gradient(135deg,#181818 70%,#e63946);color:var(--accent-color);border-radius:18px;box-shadow:0 6px 32px -4px #e639462e;padding:2.5rem 2rem 2rem;min-width:260px;max-width:320px;flex:1 1 260px;text-align:left;transition:transform .2s,box-shadow .2s;border:1.5px solid var(--primary-color);position:relative;z-index:1}.feature-card:hover{transform:translateY(-8px) scale(1.03);box-shadow:0 16px 48px -8px #e63946cc,0 2px 8px #18181844}.feature-card h3{font-size:1.5rem;margin-bottom:1.2rem;color:gold;font-weight:800;letter-spacing:.5px;text-shadow:0 2px 8px #18181899}.feature-card p{color:var(--accent-color);opacity:.92;font-size:1.08rem;line-height:1.7;font-weight:500;letter-spacing:.1px}@media (max-width: 900px){.features{flex-direction:column;align-items:center;gap:2rem}.feature-card{max-width:90vw;min-width:220px}}@media (max-width: 900px){.book-detail-content{grid-template-columns:1fr;padding:1.5rem .5rem}}.login-page{min-height:calc(100vh - 180px);display:flex;align-items:center;justify-content:center;padding:2rem;background:var(--gradient-dark);position:relative}.login-page:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:var(--urban-pattern);opacity:.1;animation:rotate 20s linear infinite}.login-container{background:linear-gradient(135deg,#181818 70%,#222);padding:3rem;border-radius:18px;width:100%;max-width:450px;box-shadow:0 8px 32px -8px #e63946cc,0 2px 8px #18181844;border:1.5px solid var(--primary-color);position:relative;z-index:1}.login-container h1{color:var(--accent-color);font-size:2.5rem;margin-bottom:1rem;text-align:center;font-weight:800;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.login-container p{color:var(--accent-color);text-align:center;margin-bottom:2rem;font-size:1.1rem;opacity:.9}.login-form{display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{color:var(--accent-color);font-weight:600;font-size:1rem}.form-group input{padding:1rem;border:2px solid rgba(230,57,70,.2);border-radius:8px;font-size:1rem;background-color:var(--secondary-color);color:var(--accent-color);transition:var(--transition)}.form-group input:focus{outline:none;border-color:var(--primary-color);box-shadow:0 0 0 4px #e639461a}.form-group input::placeholder{color:#fff3e280}.login-submit{background:var(--gradient-primary);color:var(--white);border:none;padding:1rem;border-radius:8px;font-size:1.1rem;font-weight:700;cursor:pointer;transition:var(--transition);text-transform:uppercase;letter-spacing:1px;margin-top:1rem}.login-submit:hover{transform:translateY(-2px);box-shadow:0 4px 12px #e6394633}.login-footer{margin-top:2rem;text-align:center;display:flex;flex-direction:column;gap:1rem}.login-footer p{margin-bottom:0;color:var(--accent-color)}.login-footer a{color:var(--primary-color);text-decoration:none;font-weight:600;transition:var(--transition)}.login-footer a:hover{color:var(--accent-color)}.forgot-password{font-size:.9rem}@media (max-width: 480px){.login-container{padding:2rem}.login-container h1{font-size:2rem}.login-form{gap:1rem}}.signup-page{min-height:calc(100vh - 180px);display:flex;align-items:center;justify-content:center;padding:2rem;background:var(--gradient-dark);position:relative}.signup-page:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:var(--urban-pattern);opacity:.1;animation:rotate 20s linear infinite}.signup-container{background:linear-gradient(135deg,#181818 70%,#222);padding:3rem;border-radius:18px;width:100%;max-width:500px;box-shadow:0 8px 32px -8px #e63946cc,0 2px 8px #18181844;border:1.5px solid var(--primary-color);position:relative;z-index:1}.signup-container h1{color:var(--accent-color);font-size:2.5rem;margin-bottom:1rem;text-align:center;font-weight:800;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.signup-container p{color:var(--accent-color);text-align:center;margin-bottom:2rem;font-size:1.1rem;opacity:.9}.signup-form{display:flex;flex-direction:column;gap:1.5rem}.signup-form .form-group input.error{border-color:#e63946;background-color:#e639461a}.error-message{color:#e63946;font-size:.875rem;margin-top:.5rem;display:block}.signup-submit{background:var(--gradient-primary);color:var(--white);border:none;padding:1rem;border-radius:8px;font-size:1.1rem;font-weight:700;cursor:pointer;transition:var(--transition);text-transform:uppercase;letter-spacing:1px;margin-top:1rem}.signup-submit:hover{transform:translateY(-2px);box-shadow:0 4px 12px #e6394633}.signup-footer{margin-top:2rem;text-align:center}.signup-footer p{margin-bottom:0;color:var(--accent-color)}.signup-footer a{color:var(--primary-color);text-decoration:none;font-weight:600;transition:var(--transition)}.signup-footer a:hover{color:var(--accent-color)}@media (max-width: 480px){.signup-container{padding:2rem}.signup-container h1{font-size:2rem}.signup-form{gap:1rem}}.favorite-icon{margin-left:.5rem;font-size:.9rem}.favorite-button{position:absolute;top:1rem;right:1rem;background:#181818cc;border:none;border-radius:50%;width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:var(--transition);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);font-size:1.2rem}.favorite-button:hover{transform:scale(1.1);background:#e63946cc}.favorite-button.active{background:#e63946cc}.favorites-page{max-width:1400px;margin:0 auto;padding:2rem}.favorites-page h1{color:var(--accent-color);font-size:2.5rem;margin-bottom:2rem;text-align:center;font-weight:800;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.favorites-empty{min-height:calc(100vh - 300px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem}.favorites-empty h1{color:var(--accent-color);font-size:2.5rem;margin-bottom:1rem;font-weight:800;background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.favorites-empty p{color:var(--accent-color);font-size:1.2rem;margin-bottom:2rem;opacity:.8}.book-card{position:relative}@media (max-width: 768px){.favorites-page{padding:1rem}.favorites-page h1{font-size:2rem}.favorite-button{width:2rem;height:2rem;font-size:1rem}}.toast-container{position:fixed;bottom:2rem;right:2rem;z-index:1000;display:flex;flex-direction:column;gap:1rem}.toast{padding:1rem 1.5rem;border-radius:8px;color:var(--white);font-weight:500;animation:slideIn .3s ease-out;display:flex;align-items:center;gap:.5rem;box-shadow:0 4px 12px #00000026;min-width:300px}.toast.success{background:linear-gradient(135deg,#2ecc71,#27ae60)}.toast.error{background:linear-gradient(135deg,#e74c3c,#c0392b)}@keyframes slideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes slideOut{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}.toast.exit{animation:slideOut .3s ease-in forwards}
