.bookshelf-section{padding:2rem;min-height:100vh;background:linear-gradient(180deg,#0f0f1a 0,#1a1a2e 50%,#0f0f1a 100%)}.bookshelf-container{max-width:1400px;margin:0 auto}.bookshelf-header{text-align:center;margin-bottom:3rem;padding:1rem}.bookshelf-header h2{font-size:2.5rem;color:#f8f5f0;margin-bottom:.5rem;text-shadow:2px 2px 4px rgba(0,0,0,.3);font-family:Georgia,serif}.bookshelf-header h2 i{margin-right:.75rem;color:#fbbf24}.bookshelf-header p{color:#8888a0;font-style:italic;font-size:1.1rem}.bookshelf-display{perspective:2000px}.bookshelf-unit{position:relative;margin-bottom:3rem}.bookshelf-row{display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:25px;padding:30px 40px 20px;min-height:300px}.shelf-wood{height:20px;background:linear-gradient(180deg,#a0826d 0,#8d6e63 30%,#6d4c41 70%,#4e342e 100%);border-radius:4px;box-shadow:0 10px 30px rgba(0,0,0,.6),0 4px 8px rgba(0,0,0,.4),inset 0 2px 3px rgba(255,255,255,.15);position:relative}.shelf-bracket{display:none}.book-on-shelf{width:140px;height:200px;position:relative;cursor:pointer;transition:.4s cubic-bezier(.175, .885, .32, 1.275);transform-style:preserve-3d;perspective:1000px}.book-on-shelf:hover{transform:translateY(-15px) scale(1.08);z-index:20}.book-hover-actions{position:absolute;top:-35px;right:0;display:flex;gap:5px;opacity:0;visibility:hidden;transition:.3s;z-index:100}.book-on-shelf:hover .book-hover-actions{opacity:1;visibility:visible}.book-action-btn-small{width:30px;height:30px;border:none;border-radius:6px;background:rgba(0,0,0,.8);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:.2s}.book-action-btn-small:hover{background:#3b82f6;transform:scale(1.1)}.book-action-btn-small:last-child:hover{background:#ef4444}.book-on-shelf .book-spine{width:100%;height:100%;position:relative;transform-style:preserve-3d;transform:rotateY(-5deg);transition:transform .4s}.book-on-shelf:hover .book-spine{transform:rotateY(-15deg)}.book-on-shelf .book-spine::before{content:'';position:absolute;inset:0;background:var(--book-color,#8b4513);border-radius:2px 8px 8px 2px;box-shadow:5px 5px 20px rgba(0,0,0,.5),0 0 0 1px rgba(255,255,255,.1),inset 0 0 30px rgba(0,0,0,.2)}.book-on-shelf .book-spine::after{content:'';position:absolute;left:-12px;top:0;bottom:0;width:12px;background:linear-gradient(90deg,rgba(0,0,0,.4) 0,var(--book-color,#8b4513) 20%,var(--book-color,#8b4513) 100%);transform:rotateY(90deg);transform-origin:right center;border-radius:2px 0 0 2px}.book-on-shelf .book-spine-cover{width:100%;height:100%;object-fit:cover;border-radius:2px 8px 8px 2px;position:relative;z-index:1;box-shadow:inset 0 0 0 1px rgba(255,255,255,.1),inset -3px 0 10px rgba(0,0,0,.2)}.book-on-shelf .book-spine-title{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:15px;text-align:center;z-index:1;background:linear-gradient(145deg,var(--book-color,#8b4513) 0,color-mix(in srgb,var(--book-color,#8b4513) 80%,#000) 100%);border-radius:2px 8px 8px 2px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.1),inset -5px 0 15px rgba(0,0,0,.3),inset 0 -5px 15px rgba(0,0,0,.2)}.book-on-shelf .book-spine-title::before{content:'';position:absolute;top:10px;left:10px;right:10px;height:3px;background:rgba(255,255,255,.15);border-radius:2px}.book-on-shelf .book-spine-title::after{content:'';position:absolute;bottom:10px;left:10px;right:10px;height:3px;background:rgba(255,255,255,.15);border-radius:2px}.book-on-shelf .book-title-text{color:rgba(255,255,255,.95);font-size:14px;font-weight:700;line-height:1.3;text-shadow:1px 1px 3px rgba(0,0,0,.5);font-family:Georgia,'Times New Roman',serif;max-height:80px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical}.book-on-shelf .book-author-text{color:rgba(255,255,255,.7);font-size:11px;margin-top:10px;font-style:italic;text-shadow:1px 1px 2px rgba(0,0,0,.5)}.book-on-shelf .book-pages{position:absolute;right:-4px;top:3px;bottom:3px;width:8px;background:linear-gradient(90deg,#e8e0d0 0,#f5f0e5 30%,#fff 50%,#f5f0e5 70%,#e8e0d0 100%);border-radius:0 3px 3px 0;transform:rotateY(-10deg);transform-origin:left center;box-shadow:2px 0 5px rgba(0,0,0,.2),inset 0 0 3px rgba(0,0,0,.1);background-image:repeating-linear-gradient(0deg,transparent 0,transparent 3px,rgba(0,0,0,.03) 3px,rgba(0,0,0,.03) 4px)}.book-on-shelf .book-shadow{position:absolute;bottom:-10px;left:10%;right:10%;height:15px;background:radial-gradient(ellipse at center,rgba(0,0,0,.4) 0,transparent 70%);filter:blur(5px);z-index:-1;transition:.3s}.book-on-shelf:hover .book-shadow{bottom:-20px;opacity:.6;filter:blur(8px)}.book-tooltip{position:absolute;bottom:calc(100% + 50px);left:50%;transform:translateX(-50%) translateY(10px);background:linear-gradient(135deg,#2d2d3a 0,#1a1a2e 100%);color:#fff;padding:15px 20px;border-radius:12px;font-size:13px;opacity:0;visibility:hidden;transition:.3s;z-index:200;min-width:200px;max-width:280px;text-align:center;box-shadow:0 15px 40px rgba(0,0,0,.5),0 0 0 1px rgba(255,255,255,.1);pointer-events:none}.book-tooltip::after{content:'';position:absolute;top:100%;left:50%;transform:translateX(-50%);border:10px solid transparent;border-top-color:#1a1a2e}.book-tooltip strong{display:block;margin-bottom:8px;font-size:15px;color:#fbbf24}.book-tooltip p{margin:0;font-size:12px;color:#b0b0c0;line-height:1.5}.book-on-shelf:hover .book-tooltip{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}.empty-bookshelf{text-align:center;padding:4rem 2rem;color:#666;background:rgba(255,255,255,.02);border-radius:16px;border:2px dashed rgba(255,255,255,.08)}.empty-bookshelf i{font-size:5rem;margin-bottom:1.5rem;opacity:.3;color:#fbbf24}.empty-bookshelf p{font-size:1.3rem;color:#666}@media (max-width:768px){.bookshelf-section{padding:1rem}.bookshelf-header h2{font-size:1.8rem}.bookshelf-row{padding:20px;gap:15px;min-height:220px}.book-on-shelf{width:100px;height:150px}.book-on-shelf .book-title-text{font-size:11px}.book-on-shelf .book-author-text{font-size:9px}.shelf-wood{height:15px}.book-tooltip{display:none}}@media (max-width:480px){.book-on-shelf{width:80px;height:120px}.bookshelf-row{gap:10px}}