body{overflow-x:hidden}.bookshelf-room.svelte-18oij9c{min-height:100vh;background:#8b4513;position:relative;overflow-x:hidden}.wood-background.svelte-18oij9c{position:absolute;top:0;right:0;bottom:0;left:0;background-image:url(../../../grain-options/2.jpg);background-size:256px 256px;background-repeat:repeat;background-position:0 0;opacity:.9;z-index:0}.wood-background.svelte-18oij9c:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(45deg,rgba(139,69,19,.1) 0%,transparent 50%,rgba(101,67,33,.1) 100%),linear-gradient(135deg,rgba(160,82,45,.05) 0%,transparent 50%,rgba(139,69,19,.05) 100%);box-shadow:inset 0 0 200px #6543214d,inset 0 0 100px #8b451333}.lighting-overlay.svelte-18oij9c{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 50% 20%,rgba(255,220,150,.15),transparent 70%),linear-gradient(to bottom,rgba(0,0,0,.05),transparent 30%,rgba(0,0,0,.1));pointer-events:none;z-index:1}.container.svelte-18oij9c{position:relative;z-index:2;width:100%;max-width:1400px;margin:0 auto;padding:3rem 2rem}.bookshelf-header.svelte-18oij9c{text-align:center;margin-bottom:4rem;position:relative}.bookshelf-header.svelte-18oij9c h1:where(.svelte-18oij9c){font-size:clamp(2.5rem,5vw,4rem);color:#1a0f0a;text-shadow:0 1px 0 rgba(255,255,255,.1),0 -1px 0 rgba(0,0,0,.8),inset 0 1px 2px rgba(0,0,0,.5);font-family:Georgia,serif;margin-bottom:1rem;font-weight:700}.bookshelf-header.svelte-18oij9c p:where(.svelte-18oij9c){font-size:clamp(1.1rem,2vw,1.4rem);color:#2c1810;font-style:italic;text-shadow:0 1px 0 rgba(255,255,255,.08),0 -1px 0 rgba(0,0,0,.6);font-weight:500}.bookshelf-container.svelte-18oij9c{width:100%;max-width:1200px;margin:0 auto;padding:2rem 0}.shelf-row.svelte-18oij9c{position:relative;margin-bottom:3rem;height:280px;overflow:visible}.wooden-shelf.svelte-18oij9c{position:absolute;bottom:0;left:0;right:0;height:60px;z-index:1}.shelf-surface.svelte-18oij9c{position:absolute;top:0;left:0;right:0;height:40px;background:linear-gradient(to bottom,#fff,#f5f5f5);border-radius:4px 4px 0 0;box-shadow:0 2px 8px #0000004d,inset 0 1px #fff9}.shelf-surface.svelte-18oij9c:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(to bottom,rgba(255,255,255,.1),transparent 50%,rgba(0,0,0,.1));border-radius:4px 4px 0 0}.shelf-edge.svelte-18oij9c{position:absolute;top:40px;left:0;right:0;height:20px;background:linear-gradient(to bottom,#f5f5f5,#e8e8e8);box-shadow:0 4px 12px #0006,inset 0 1px #fff6}.shelf-shadow.svelte-18oij9c{position:absolute;top:60px;left:10px;right:10px;height:20px;background:linear-gradient(to bottom,rgba(0,0,0,.2),transparent);border-radius:50%;z-index:-1}.shelf-books.svelte-18oij9c{position:absolute;bottom:20px;left:0;right:0;height:220px;display:flex;justify-content:space-evenly;align-items:flex-end;gap:1rem;padding:0 3rem;z-index:2;overflow:visible;max-width:100%}.book-card.svelte-18oij9c{--book-width: 180px;--book-height: 240px;--book-depth: 25px;--book-border-radius: 0 4px 4px 0;background:transparent;border:none;cursor:pointer;padding:0;perspective:1200px;flex:0 0 auto;position:relative}.book-card.svelte-18oij9c:hover,.book-card.selected.svelte-18oij9c{z-index:10}.book-card.selected.svelte-18oij9c .book-3d-wrapper:where(.svelte-18oij9c){animation:svelte-18oij9c-bookOpenAnimation .4s ease-out forwards}.book-3d-wrapper.svelte-18oij9c{width:var(--book-width);height:var(--book-height);position:relative;transform-style:preserve-3d;transition:transform .4s cubic-bezier(.4,0,.2,1)}.book-card.svelte-18oij9c:hover .book-3d-wrapper:where(.svelte-18oij9c){transform:translateY(-5px) rotateY(-15deg)}.book-card.selected.svelte-18oij9c .book-3d-wrapper:where(.svelte-18oij9c){transform:translateY(-20px) rotateY(-25deg) scale(1.05)}.book-cover-front.svelte-18oij9c{width:var(--book-width);height:var(--book-height);position:absolute;top:0;left:0;border-radius:var(--book-border-radius);overflow:hidden;transform-style:preserve-3d;box-shadow:2px 2px 8px #0000004d,0 0 0 1px #ffffff1a;z-index:2}.cover-texture.svelte-18oij9c{width:100%;height:100%;position:relative;overflow:hidden;background:linear-gradient(135deg,color-mix(in srgb,var(--book-color) 80%,#000000 20%),color-mix(in srgb,var(--book-color) 70%,#000000 30%)),url(../../../texture/fabric.jpg);background-size:100%,300px;background-repeat:no-repeat,repeat;background-blend-mode:normal,soft-light}.cover-texture.svelte-18oij9c:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 60% 40% at center,rgba(255,255,255,.1) 0%,transparent 70%),linear-gradient(to bottom,rgba(0,0,0,.1),transparent 30%,rgba(0,0,0,.2));-webkit-backdrop-filter:blur(.5px);backdrop-filter:blur(.5px)}.cover-content.svelte-18oij9c{position:absolute;top:0;right:0;bottom:0;left:0;padding:20px 15px}.cover-content.no-padding.svelte-18oij9c{padding:0;display:flex;align-items:center;justify-content:center}.cover-border.svelte-18oij9c{width:100%;height:100%;border:2px solid rgba(255,255,255,.3);border-radius:4px;padding:15px;display:flex;flex-direction:column;align-items:center;text-align:center;transition:all .3s ease;background:#0003;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px)}.book-title.svelte-18oij9c{font-size:20px;font-weight:700;margin-bottom:8px;font-family:Georgia,serif;line-height:1.2;color:#fff;text-shadow:2px 2px 4px rgba(0,0,0,.8)}.book-cover-image-container.svelte-18oij9c{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;z-index:-1}.book-cover-image.svelte-18oij9c{width:100%;height:100%;object-fit:cover;object-position:center;box-shadow:inset 0 0 20px #0006}.book-pages.svelte-18oij9c{position:absolute;top:3px;height:calc(var(--book-height) - 6px);width:var(--book-depth);transform:translate(calc(var(--book-width) - var(--book-depth) / 2 - 1px)) rotateY(90deg) translate(calc(var(--book-depth) / 2));background:linear-gradient(90deg,#f5f3ed,#faf8f2 30%,#eae8e2),repeating-linear-gradient(to bottom,transparent 0px,transparent 3px,rgba(0,0,0,.02) 3px,rgba(0,0,0,.02) 4px);background-blend-mode:normal,overlay;z-index:1}.book-spine.svelte-18oij9c{position:absolute;top:0;left:0;height:var(--book-height);width:var(--book-depth);transform-origin:left center;transform:rotateY(90deg);background:linear-gradient(90deg,rgba(0,0,0,.1) 0%,transparent 50%,rgba(0,0,0,.15) 100%),color-mix(in srgb,var(--book-color) 85%,#000000 15%);border-radius:4px 0 0 4px;z-index:1}.book-back.svelte-18oij9c{position:absolute;top:0;left:0;width:var(--book-width);height:var(--book-height);transform:translateZ(calc(-1 * var(--book-depth)));background:color-mix(in srgb,var(--book-color) 70%,#000000 30%);border-radius:4px 0 0 4px}.bookshelf-room.svelte-18oij9c{transition:transform .5s cubic-bezier(.4,0,.2,1),opacity .3s ease}.bookshelf-room.transitioning-out.svelte-18oij9c{transform:translate(-100%);opacity:.8}.bookshelf-room.returning.svelte-18oij9c{transform:translate(-100%);opacity:0;animation:svelte-18oij9c-slideFromLeft .5s cubic-bezier(.4,0,.2,1) forwards}.bookshelf-room.svelte-18oij9c:not(.returning):not(.transitioning-out){transform:translate(0);opacity:1;transition:none}@keyframes svelte-18oij9c-fadeIn{0%{opacity:0}to{opacity:1}}@keyframes svelte-18oij9c-slideFromRight{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes svelte-18oij9c-bookOpenAnimation{0%{transform:translateY(0) rotateY(0) scale(1)}50%{transform:translateY(-15px) rotateY(-30deg) scale(1.08)}to{transform:translateY(-10px) rotateY(-25deg) scale(1.05)}}@keyframes svelte-18oij9c-slideFromLeft{0%{transform:translate(-100%);opacity:0}to{transform:translate(0);opacity:1}}@media (max-width: 768px){.shelf-books.svelte-18oij9c{gap:.75rem;padding:0 1.5rem;bottom:20px;height:220px}.book-card.svelte-18oij9c{--book-width: 140px;--book-height: 220px;--book-depth: 20px}.shelf-row.svelte-18oij9c{height:280px}.book-title.svelte-18oij9c{font-size:16px}}@media (max-width: 480px){.container.svelte-18oij9c{padding:2rem 1rem}.shelf-books.svelte-18oij9c{gap:.5rem;padding:0 1rem;bottom:20px;height:190px}.book-card.svelte-18oij9c{--book-width: 120px;--book-height: 190px;--book-depth: 18px}.shelf-row.svelte-18oij9c{height:250px}.book-title.svelte-18oij9c{font-size:14px}}@media (min-width: 1200px){.shelf-books.svelte-18oij9c{gap:1.5rem;padding:0 4rem;bottom:20px;height:260px}.book-card.svelte-18oij9c{--book-width: 200px;--book-height: 260px;--book-depth: 30px}.shelf-row.svelte-18oij9c{height:320px}.book-title.svelte-18oij9c{font-size:22px}}
