.bookshelf-container{width:100%;height:480px;position:relative;display:flex;align-items:flex-end;justify-content:center}.bookshelf-viewport{position:relative;width:100%;height:520px;box-sizing:border-box;display:block;overflow:visible;perspective:none}.bookshelf-canvas{inset:0;width:100%;height:100%;display:block;-webkit-user-select:none;-moz-user-select:none;user-select:none}.bookshelf-canvas,.bookshelf-hit-row{position:absolute;pointer-events:none}.bookshelf-hit-row{left:50%;bottom:0;transform:translateX(-50%);display:flex;align-items:flex-end;gap:0;margin:0;padding:0;z-index:10}.book-slot{position:relative;flex:0 0 auto;margin:0;padding:0;border:0;outline:none;background:transparent;cursor:pointer;pointer-events:auto;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.book-slot:focus-visible{outline:2px solid #ed4266;outline-offset:4px}.book-slot.is-neighbor-shift{transform:translateX(var(--neighbor-shift,32px))}.metadata-wrapper{max-width:680px;width:100%;height:150px;margin:16px auto 36px;padding:0 24px;position:relative;flex:0 0 150px}.metadata-card{position:absolute;top:0;left:24px;right:24px;background:#ed4266;border:1px solid hsla(0,0%,100%,.15);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:12px;padding:22px 26px;opacity:0;transform:translateY(6px);pointer-events:none;transition:opacity .3s ease,transform .3s cubic-bezier(.22,1,.36,1)}.metadata-card.is-visible{opacity:1;transform:translateY(0);pointer-events:auto}.metadata-close-btn{position:absolute;top:16px;right:18px;background:none;border:none;color:rgba(244,246,248,.8);font-size:1.4rem;line-height:1;cursor:pointer;padding:4px;transition:color .2s}.metadata-close-btn:hover{color:#fff}.metadata-tagline{display:flex;align-items:center;gap:8px;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(244,246,248,.7);margin-bottom:8px}.metadata-title{font-size:1.35rem;font-weight:500;letter-spacing:-.02em;color:#f4f6f8;margin-bottom:4px}.metadata-author{font-size:.85rem;color:rgba(244,246,248,.8);margin-bottom:10px}.metadata-description{font-size:.88rem;line-height:1.5;color:rgba(244,246,248,.9);margin-bottom:14px}.metadata-footer{display:flex;align-items:center}.metadata-link{display:inline-flex;align-items:center;gap:6px;font-size:.82rem;font-weight:500;letter-spacing:.02em;color:#f4f6f8;text-decoration:none;border-bottom:1px solid rgba(244,246,248,.4);padding-bottom:2px;transition:border-color .2s,color .2s}.metadata-link:hover{color:#fff;border-color:#fff}.tuner-panel{position:fixed;bottom:24px;right:24px;z-index:100;font-size:.8rem}.tuner-toggle-btn{display:flex;align-items:center;gap:8px;background:hsla(0,0%,100%,.9);border:1px solid rgba(0,0,0,.08);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);color:#6a6a6a;padding:10px 18px;border-radius:30px;cursor:pointer;font-size:.8rem;font-weight:500;transition:all .2s ease;box-shadow:0 8px 24px rgba(0,0,0,.12)}.tuner-toggle-btn:hover{color:#1a1a1a;border-color:rgba(0,0,0,.2)}.tuner-body{position:absolute;bottom:50px;right:0;width:320px;background:hsla(0,0%,100%,.95);border:1px solid rgba(0,0,0,.08);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-radius:16px;padding:20px;box-shadow:0 16px 40px rgba(0,0,0,.15);opacity:0;transform:translateY(10px) scale(.96);pointer-events:none;transition:opacity .25s ease,transform .25s cubic-bezier(.22,1,.36,1)}.tuner-body.is-open{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}.tuner-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid rgba(0,0,0,.08)}.tuner-header h3{font-size:.85rem;font-weight:500;color:#1a1a1a}.tuner-reset-btn{background:none;border:none;color:#8a8a8a;cursor:pointer;font-size:.72rem;text-decoration:underline;transition:color .2s}.tuner-reset-btn:hover{color:#1a1a1a}.tuner-control{margin-bottom:14px}.tuner-label-row{display:flex;justify-content:space-between;font-size:.72rem;color:#6a6a6a;margin-bottom:6px}.tuner-val{color:#1a1a1a;font-family:monospace}.tuner-slider{width:100%;accent-color:#1a1a1a;cursor:pointer;height:4px;background:rgba(0,0,0,.1);border-radius:2px}.bookshelf-section{color:#1a1a1a;padding-top:40px}.bookshelf-section .metadata-wrapper{color:#1a1a1a}@media (max-width:768px){.bookshelf-container{height:330px}.bookshelf-viewport{height:320px}.metadata-wrapper{padding:0 16px;height:180px;flex-basis:180px}.metadata-card{left:16px;right:16px}.tuner-panel{bottom:16px;right:16px}.tuner-body{width:290px}}.gallery-section{padding-bottom:40px}.bookshelf-loader{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;overflow:hidden;background-color:#ed4266;transition:background-color 1s cubic-bezier(.22,1,.36,1),opacity .5s ease}.bookshelf-loader--zoom{background-color:#ed4266;opacity:1}.bookshelf-loader--shrink{background-color:#f4f6f8;opacity:1}.bookshelf-loader--fade{background-color:#f4f6f8;opacity:0}.bookshelf-loader__logo{display:block;width:45px;height:32px;transform-origin:center center;transition:none}.bookshelf-loader--fade .bookshelf-loader__logo,.bookshelf-loader--shrink .bookshelf-loader__logo{transition:transform .95s cubic-bezier(.22,1,.36,1)}@media (prefers-reduced-motion:reduce){.book-slot{transition:none}.bookshelf-loader{transition:opacity .3s ease;background-color:#f4f6f8}.bookshelf-loader .bookshelf-loader__logo{transition:none}}.book-card{--offset-x:0px;--offset-y:0px;--rotate:0deg;display:flex;flex-direction:column;align-items:center;width:100%;max-width:170px;transform-origin:center bottom;will-change:transform;cursor:default;margin:-12px -6px -6px;pointer-events:none}.book-card>*{pointer-events:auto}.book-inner{width:100%;transform:perspective(800px) translateZ(0) scale(1) rotateX(0deg) rotateY(0deg);transform-origin:center bottom;transform-style:preserve-3d;will-change:transform,box-shadow;transition:box-shadow .3s ease;box-shadow:0 6px 18px rgba(0,0,0,.08);border-radius:6px;overflow:hidden;background:transparent}.book-card:focus-visible{outline:none}.book-card:focus-visible .book-inner{outline:2px solid #3b82f6;outline-offset:4px}.book-cover-wrapper{width:100%;aspect-ratio:2/3;overflow:hidden;background:#e8e4dd;border-radius:6px}.bookshelf-section .book-cover-wrapper{background:#e8e4dd}.book-cover{width:100%;height:100%;-o-object-fit:cover;object-fit:cover;display:block;will-change:transform;image-rendering:auto;opacity:0;transition:opacity .3s ease}.book-cover.loaded{opacity:1}.book-caption{margin-top:14px;font-size:12.5px;line-height:1.4;color:#8a8a8a;text-align:center;font-weight:400;letter-spacing:.01em;max-width:100%;word-break:break-word;hyphens:auto;-webkit-user-select:none;-moz-user-select:none;user-select:none}.bookshelf-section .book-caption{color:#6a6a6a}@media (prefers-reduced-motion:reduce){.book-card,.book-inner{transition:none}.book-inner{transform:perspective(800px) translateZ(0) scale(1) rotateX(0deg) rotateY(0deg)!important;box-shadow:0 6px 18px rgba(0,0,0,.08)!important}.book-cover{transition:none}}@media (hover:none) and (pointer:coarse){.book-card:hover .book-inner{transform:perspective(800px) translateZ(0) scale(1) rotateX(0deg) rotateY(0deg);box-shadow:0 6px 18px rgba(0,0,0,.08)}.book-card:active .book-inner{transform:perspective(800px) translate3d(0,-4px,0) scale(1.02) rotateX(0deg) rotateY(0deg);box-shadow:0 12px 24px rgba(0,0,0,.1)}}.book-gallery-wrapper{width:100%;max-width:1400px;margin:0 auto;padding:50px 40px 60px}.book-gallery{--columns-desktop:6;--columns-tablet:4;--columns-mobile:2;--card-width:165px;--gap-horizontal:48px;--gap-vertical:56px;width:100%;margin:0 auto;padding:60px 0 0;display:grid;grid-template-columns:repeat(var(--columns-desktop),var(--card-width));justify-content:center;gap:var(--gap-vertical) var(--gap-horizontal);align-items:start}@media (max-width:1100px){.book-gallery-wrapper{padding:60px 32px 50px}.book-gallery{--columns-desktop:4;--card-width:170px;--gap-horizontal:40px;--gap-vertical:52px;grid-template-columns:repeat(var(--columns-tablet),var(--card-width));padding:50px 0 0}.book-gallery>*{margin-top:0}}@media (max-width:640px){.book-gallery-wrapper{padding:55px 20px 40px}.book-gallery{--columns-desktop:2;--card-width:155px;--gap-horizontal:28px;--gap-vertical:48px;grid-template-columns:repeat(var(--columns-mobile),var(--card-width));padding:40px 0 0;justify-content:center}.book-gallery>*{margin-top:0}}@media (max-width:400px){.book-gallery-wrapper{padding:0 16px 32px}.book-gallery{--card-width:140px;--gap-horizontal:20px;--gap-vertical:40px;padding:32px 0 0}.book-caption{font-size:11.5px}}@media (min-width:1400px){.book-gallery,.book-gallery-wrapper{max-width:1600px}.book-gallery{--card-width:170px;--gap-horizontal:56px}}