body.hide-bottom-nav .bottom-navigation{display:none}body.hide-bottom-nav .bottom-navigation.modal-nav{display:flex}.bottom-navigation{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:calc(53vh * (320 / 420) * .9);height:6vh;display:flex;align-items:flex-start;justify-content:space-between;border-top-left-radius:3vh;border-top-right-radius:3vh;padding:.7vh 1.4vh;background:var(--theme-bg-card);-webkit-backdrop-filter:blur(1vh);backdrop-filter:blur(1vh);z-index:1000;opacity:1}.nav-item{width:4.6vh;height:4.6vh;background-color:transparent;border:none;border-radius:50%;color:#888;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s ease;position:relative;padding:0}.nav-item .nav-icon{width:1.8vh!important;height:1.8vh!important;color:var(--theme-text-tertiary);transition:color .3s ease;stroke:currentColor;stroke-width:2!important;stroke-linecap:round;stroke-linejoin:round;fill:none}.nav-item.invisible{opacity:0;pointer-events:none}.nav-item.collections-icon,.nav-item.feed-icon,.nav-item.friends-icon,.nav-item.library-icon,.nav-item.settings-icon{opacity:1}.nav-item.active .nav-icon{color:var(--theme-text-primary)}.nav-item:not(.invisible):hover{background-color:transparent;color:var(--theme-text-primary)}.nav-item:not(.invisible):hover .nav-icon{color:var(--theme-text-primary)}.bottom-navigation.mobile-safari{height:8vh}.nav-badge{position:absolute;top:.3vh;right:.3vh;min-width:1.6vh;height:1.6vh;padding:0 .4vh;background-color:#ef4444;color:var(--theme-text-primary);font-size:1vh;font-weight:600;border-radius:.8vh;display:flex;align-items:center;justify-content:center;line-height:1;box-shadow:0 1px 3px rgba(0,0,0,.3)}.background-changer{position:fixed;z-index:1000;pointer-events:all}.main-frame{gap:.7vh;padding:.7vh;-webkit-backdrop-filter:blur(1vh);backdrop-filter:blur(1vh);border-radius:3.7vh;animation:fadeInUp .3s ease-out}.frame-icon,.main-frame{display:flex;align-items:center;background:hsla(0,0%,100%,.1)}.frame-icon{width:4.6vh;height:4.6vh;border-radius:50%;border:none;color:#fff;justify-content:center;cursor:pointer;transition:all .2s ease;flex-shrink:0}.frame-icon.nav-left svg{width:2.6vh;height:2.6vh;stroke-width:2;transform:translateX(-.1vh)}.frame-icon.nav-right svg{width:2.6vh;height:2.6vh;stroke-width:2;transform:translateX(.1vh)}.frame-icon svg{width:2vh;height:2vh;stroke-width:2}.frame-icon:hover:not(:disabled){background:hsla(0,0%,100%,.2)}.frame-icon:active{transform:scale(.95)}.frame-icon:disabled{opacity:.4;cursor:not-allowed;transform:none}.check-btn{background:rgba(34,197,94,.8)}.check-btn:hover:not(:disabled){background:#22c55e}.trash-btn{background:hsla(0,0%,100%,.1)}.trash-btn:hover:not(:disabled){background:rgba(239,68,68,.8)}.sun-btn{background:hsla(0,0%,100%,.1);transition:transform .2s ease,background .2s ease;cursor:grab}.sun-btn.dragging,.sun-btn:hover:not(:disabled){background:rgba(251,191,36,.8)}.sun-btn.dragging{cursor:grabbing}.upload-loading{display:flex;align-items:center;justify-content:center}.spinner{width:1.4vh;height:1.4vh;border:2px solid hsla(0,0%,100%,.2);border-top-color:hsla(0,0%,100%,.6);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(1vh)}to{opacity:1;transform:translateY(0)}}.domain-selector{position:fixed;bottom:6vh;left:50%;transform:translateX(-50%);z-index:1000;background:hsla(0,0%,100%,.1);backdrop-filter:blur(.5vh);-webkit-backdrop-filter:blur(.5vh);border-radius:3.7vh;padding:1.4vh;animation:bounceUp .4s cubic-bezier(.34,1.56,.64,1)}@keyframes bounceUp{0%{opacity:0;transform:translateX(-50%) translateY(5vh) scale(.8)}60%{opacity:1;transform:translateX(-50%) translateY(-.8vh) scale(1.02)}80%{transform:translateX(-50%) translateY(.3vh) scale(.99)}to{transform:translateX(-50%) translateY(0) scale(1)}}.domain-selector-grid{gap:1.4vh}.domain-selector-card,.domain-selector-grid{display:flex;justify-content:center;align-items:center}.domain-selector-card{width:4.5vh;height:4.5vh;background-color:hsla(0,0%,100%,.1);border:none;border-radius:50%;padding:0;cursor:pointer;transition:all .15s ease;position:relative}.domain-selector-card:hover:not(.disabled){background-color:hsla(0,0%,100%,.2);transform:scale(1.08)}.domain-selector-card:active:not(.disabled){transform:scale(.95)}.domain-selector-card.active{background-color:rgba(13,122,95,.6)}.domain-selector-card.active:hover{background-color:rgba(13,122,95,.7)}.domain-selector-card.disabled{background-color:hsla(0,0%,100%,.05);cursor:not-allowed;opacity:.4}.domain-selector-icon{width:2.2vh;height:2.2vh;color:hsla(0,0%,100%,.9);display:flex;align-items:center;justify-content:center}.domain-selector-card.disabled .domain-selector-icon{color:hsla(0,0%,100%,.4)}.domain-selector-icon svg{width:100%;height:100%}.domain-selector.in-modal{position:absolute;z-index:9999}.profile-section{width:calc(11vh * (320 / 100));height:12vh;flex-direction:column;justify-content:flex-start;position:absolute;top:calc(50% + 4vh - 56vh/2 - 11vh - 4vh - 2vh);left:50%;transform:translateX(-50%);user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.profile-image-container,.profile-section{display:flex;align-items:center;overflow:visible}.profile-image-container{width:5.2vh;height:5.2vh;background-color:#262626;border-radius:50%;justify-content:center;position:relative}.profile-image-clickable{cursor:pointer;transition:opacity .2s ease}.profile-image-clickable:hover{opacity:.8}.domain-badge{position:absolute;bottom:0;right:-.5vh;width:2.2vh;height:2.2vh;background-color:rgba(38,38,38,.95);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:10;transition:transform .2s ease,background-color .2s ease}.domain-badge:hover{transform:scale(1.15);background-color:rgba(60,60,60,.95)}.domain-badge svg{color:hsla(0,0%,100%,.85)}.profile-image{object-fit:cover}.default-profile-icon,.profile-image{width:100%;height:100%;border-radius:50%}.default-profile-icon{display:flex;align-items:center;justify-content:center;background-color:#262626;cursor:default}.default-profile-icon.hidden{display:none}.default-plus-icon{width:3vh;height:3vh;stroke-width:2;color:#a0a0a0}.image-upload-overlay{position:absolute;inset:0;background-color:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s;cursor:default}.camera-icon{width:2.5vh;height:2.5vh}.hidden-input{display:none}.user-name{font-size:1.7vh;font-weight:500;margin-top:.5vh;will-change:transform;transform:translateZ(0);cursor:default;color:var(--theme-text-primary)}.user-name,.user-name-input{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;width:100%}.user-name-input{background:transparent;border:none;outline:none;color:inherit;font-family:inherit;font-size:inherit;font-weight:inherit;padding:0;margin:0}.user-bio{font-size:1.4vh;font-weight:400;margin-top:.3vh;color:var(--theme-text-secondary);cursor:default;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;will-change:transform;transform:translateZ(0);text-align:center;width:100%;transition:color .2s ease}.user-bio:hover{color:var(--theme-text-primary)}.user-bio-input{background:transparent;border:none;outline:none;color:inherit;font-family:inherit;font-size:inherit;font-weight:inherit;padding:0;margin:0}.user-bio-input,.user-username{text-align:center;width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-username{font-size:1.2vh;font-weight:400;margin-top:.3vh;color:var(--theme-text-tertiary);cursor:pointer;transition:color .2s ease}.user-username:hover{color:var(--theme-text-secondary)}.user-username.clickable-hint{color:rgba(139,92,246,.6)}.user-username.clickable-hint:hover{color:rgba(139,92,246,.9)}.base-stats{width:calc(53vh * (320 / 420) * .9);font-size:1.2vh;color:#a0a0a0;position:relative;will-change:transform;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;overflow:visible;z-index:100}.base-stats,.stats-icon-left,.stats-icon-right{height:4.6vh;display:flex;align-items:center;justify-content:center}.stats-icon-left,.stats-icon-right{position:absolute;width:4.6vh;background-color:transparent;border-radius:0}.stats-icon-left{left:0}.stats-icon-right{right:0}.stats-icon-left .icon,.stats-icon-right .icon{width:100%;height:100%;color:var(--theme-text-secondary);cursor:pointer;background-color:var(--theme-bg-card);border-radius:50%;padding:1.4vh;display:flex;align-items:center;justify-content:center;box-sizing:border-box;transition:color .2s ease,background-color .2s ease}.stats-icon-left .icon:hover,.stats-icon-right .icon:hover{background-color:var(--theme-bg-hover);color:var(--theme-text-primary)}.stats-icon-left .icon svg,.stats-icon-right .icon svg{width:1.8vh;height:1.8vh;stroke-width:2}.stats-content{gap:1vh;flex:1}.stat-item,.stats-content{display:flex;align-items:center;justify-content:center;height:100%}.stat-item{white-space:nowrap;cursor:pointer;padding:0 1.4vh;background-color:var(--theme-bg-card);border-radius:2.3vh;flex-shrink:0;transition:background-color .2s ease,color .2s ease;user-select:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none}.stat-item:hover:not(.disabled){background-color:var(--theme-bg-hover)}.stat-item span{font-size:1.2vh;transition:color .2s ease}.stat-item .stat-value,.stat-item span{color:var(--theme-text-secondary);font-weight:400}.stat-item .stat-value{margin-left:.5vh;display:flex;align-items:center;gap:.3vh}.stat-item .stat-icon{display:flex;align-items:center;justify-content:center}.stat-item .stat-icon svg{width:1.2vh;height:1.2vh;stroke-width:2}.stat-item.active-stat .stat-icon svg{color:#4ade80}.stat-item:hover:not(.disabled) .stat-value,.stat-item:hover:not(.disabled) span{color:var(--theme-text-primary)}.stat-item.active-stat{background-color:rgba(13,122,95,.5)}.stat-item.active-stat:hover{background-color:rgba(13,122,95,.7)}.stat-item.active-stat .stat-value,.stat-item.active-stat span{color:var(--theme-text-primary)}.stat-item.disabled{opacity:.5;cursor:default}.stat-item.disabled:hover{background-color:var(--theme-bg-card)}.search-input-container{width:calc(53vh * (320 / 420) * .9);height:4.6vh;display:flex;align-items:center;background-color:var(--theme-bg-card);border-radius:2.3vh;position:absolute;top:calc(50% + 4vh - 56vh/2 - 4.6vh + 1vh);left:50%;transform:translateX(-50%);margin:0 auto;overflow:visible;z-index:100}.search-icon-left,.search-icon-right{display:flex;align-items:center;justify-content:center;height:4.6vh;width:4.6vh;flex-shrink:0;z-index:1}.search-icon-right{cursor:pointer;border-radius:50%}.search-icon-right,.search-icon-right:hover{background-color:transparent}.search-icon-right:hover .search-icon{color:var(--theme-text-primary)}.search-icon{width:1.8vh;height:1.8vh;color:var(--theme-text-secondary);stroke-width:2}.search-input{flex:1;min-width:0;height:100%;background:transparent;border:none;padding:0;color:var(--theme-text-primary);font-size:1.7vh;outline:none;text-align:left;box-sizing:border-box;will-change:transform;transform:translateZ(0)}.search-input:focus{outline:none}.search-input::placeholder{color:#888}.search-icon-left.filter-toggle{cursor:pointer;position:relative;background-color:transparent;border-radius:50%;z-index:200}.search-icon-left.filter-toggle .search-icon{color:var(--theme-text-secondary)}.search-icon-left.filter-toggle .search-icon.filter-active{color:var(--theme-text-primary)}.filter-dropdown{position:absolute;top:calc(100% + .7vh);left:50%;transform:translateX(-50%);backdrop-filter:blur(1.4vh);-webkit-backdrop-filter:blur(1.4vh);border-radius:50vh;padding:.7vh;flex-direction:column;gap:.7vh;z-index:9999}.filter-dropdown,.filter-option{background-color:var(--theme-bg-card);display:flex}.filter-option{width:4.6vh;height:4.6vh;border-radius:50%;cursor:pointer;color:var(--theme-text-secondary);align-items:center;justify-content:center;transition:color .2s ease,background-color .2s ease}.filter-option:hover{background-color:var(--theme-bg-hover)}.filter-option.active,.filter-option:hover{color:var(--theme-text-primary)}.filter-option svg{width:1.8vh;height:1.8vh;flex-shrink:0;stroke-width:2}.filter-option span{display:none}.filter-option .mbti-group-label{display:flex;font-size:1.2vh;font-weight:600;color:inherit}.library-stats-wrapper{width:100%;height:4.6vh;position:relative;z-index:100}.view-mode-icon{width:auto;height:1.8vh}.view-mode-icon rect,.view-mode-icon-grid rect{stroke-width:6}.view-mode-toggle-wrapper{position:relative;display:flex;align-items:center;justify-content:center}.view-mode-dropdown{position:absolute;top:calc(100% + .7vh);left:50%;transform:translateX(-50%);backdrop-filter:blur(1.4vh);-webkit-backdrop-filter:blur(1.4vh);border-radius:50vh;padding:.7vh;flex-direction:column;gap:.7vh;z-index:9999}.view-mode-dropdown,.view-mode-option{background-color:var(--theme-bg-card);display:flex}.view-mode-option{width:4.6vh;height:4.6vh;border-radius:50%;cursor:pointer;color:var(--theme-text-secondary);align-items:center;justify-content:center;transition:background-color .2s ease,color .2s ease}.view-mode-option:hover{background-color:var(--theme-bg-hover)}.view-mode-option.active,.view-mode-option:hover{color:var(--theme-text-primary)}.view-mode-option .view-mode-icon{height:1.6vh}:root{--vh:1px;--vw:1px;--aspect-ratio:calc(9 / 16);--scale-factor:1}.blurred{filter:blur(3vh)}@keyframes fadeInNew{0%{opacity:0;transform:translateY(1vh)}to{opacity:1;transform:translateY(0)}}.flex-center{display:flex;justify-content:center;align-items:center}.flex-column,.flex-column-center{display:flex;flex-direction:column}.flex-column-center{justify-content:center;align-items:center}.transparent-placeholder::placeholder{color:transparent}.cursor-pointer{cursor:pointer}.cursor-grab{cursor:grab;height:6vh}.cursor-grabbing{cursor:grabbing}.page-corner{width:8vh;height:8vh;overflow:visible;z-index:3;pointer-events:auto}.page-corner,.page-corner-svg{position:absolute;bottom:0;right:0}.page-corner-svg{width:100%;height:100%;transform-origin:bottom right;transition:transform .3s ease-in-out}.page-corner-fill{transition:fill .2s ease-in-out}.page-corner.hovered .page-corner-svg{transform:scale(1.1)}.page-corner-content{position:absolute;bottom:8%;right:5%;display:flex;align-items:center;justify-content:center;z-index:4;transform:none;width:4.5vh;cursor:text}.page-count{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.page-count,.page-count-input{color:#6a6a6a;font-size:1.4vh;text-align:center;width:100%}.page-count-input{background:transparent;border:none;outline:none;padding:0;margin:0}.book-cover .page-corner{border-bottom-right-radius:2vh;overflow:visible}.blur-reveal-book-cover{width:100%;height:100%;position:relative;overflow:hidden;cursor:pointer;border-radius:.2vh 2vh 2vh .2vh}.blur-reveal-folder{position:absolute;top:0;left:0;right:0;height:calc(100% - 8vh);border-radius:2vh;pointer-events:none;z-index:2}.blur-reveal-shape-container{position:absolute;width:100%;height:100%;top:0;left:0}.blur-reveal-bubble{animation:blur-reveal-float 16s ease-in-out infinite;animation-delay:var(--shape-animation-delay);animation-duration:var(--shape-animation-duration)}.blur-reveal-blob,.blur-reveal-bubble{position:absolute;width:calc(var(--shape-size) * 1vh);height:calc(var(--shape-size) * 1vh);left:var(--shape-left);top:var(--shape-top);background:var(--shape-color);border-radius:var(--shape-border-radius);opacity:var(--shape-opacity);transition:background 2s ease,border-radius 2s ease}.blur-reveal-blob{animation:blur-reveal-morph 20s ease-in-out infinite;animation-delay:var(--shape-animation-delay);animation-duration:var(--shape-animation-duration)}@keyframes blur-reveal-float{0%,to{transform:translate(0) scale(1)}25%{transform:translate(60px,-100px) scale(1.1)}50%{transform:translate(-40px,-180px) scale(.9)}75%{transform:translate(80px,-100px) scale(1.05)}}@keyframes blur-reveal-morph{0%,to{transform:translate(0) rotate(0deg)}25%{transform:translate(20px,30px) rotate(90deg)}50%{transform:translate(-20px,-30px) rotate(180deg)}75%{transform:translate(30px,-20px) rotate(270deg)}}.blur-reveal-blur-layer{filter:blur(60px);z-index:1}.blur-reveal-blur-layer,.blur-reveal-clear-layer{position:absolute;width:100%;height:100%;top:0;left:0}.blur-reveal-clear-layer{z-index:2;opacity:0;transition:opacity .05s}.blur-reveal-label-blurred,.blur-reveal-label-clear{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:4.6vh;font-weight:600;color:var(--theme-text-primary);white-space:nowrap;pointer-events:none;animation:blur-reveal-label-float 3s ease-in-out infinite}.blur-reveal-label-blurred{opacity:.9;z-index:1}.blur-reveal-label-clear{opacity:1;z-index:2}@keyframes blur-reveal-label-float{0%,to{transform:translate(-50%,-50%) translateY(0)}50%{transform:translate(-50%,-50%) translateY(-.5vh)}}.blur-reveal-tooltip{position:absolute;bottom:110%;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.9);color:var(--theme-text-primary);padding:1vh 1.4vh;border-radius:1vh;font-size:1.2vh;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s;z-index:100}.blur-reveal-book-cover:hover .blur-reveal-tooltip{opacity:1}.modal-result-item{width:100%;height:100%;flex-shrink:0;scroll-snap-align:center;display:flex;align-items:flex-start;justify-content:center;margin-right:4vh;padding-top:1vh;padding-bottom:2vh;box-sizing:border-box;overflow:visible;will-change:transform,opacity;transform:translateZ(0)}.modal-result-item.dragging{opacity:1!important;z-index:10!important;box-shadow:0 .4vh .8vh rgba(0,0,0,.3);transition:box-shadow .2s ease-in-out!important}.sortable-book-container:not(.edit-mode){transform:var(--book-transform,none)!important;transition:var(--book-transition,transform .3s ease)!important;opacity:var(--book-opacity,1)!important;z-index:var(--book-z-index,auto)!important;will-change:transform,opacity}.sortable-book-container{will-change:transform,opacity}.sortable-book-container.edit-mode{animation:appleShake .5s infinite!important;transform-origin:center center}.library-grid-container.is-dragging .sortable-book-container.edit-mode,.user-books-container.is-dragging .sortable-book-container.edit-mode{animation:none!important;transform:var(--book-transform,none)!important;transition:var(--book-transition,transform .3s ease)!important;opacity:var(--book-opacity,1)!important}@keyframes appleShake{0%,to{transform:translateZ(0) rotate(0deg)}25%{transform:translate3d(calc(-1px * var(--scale-factor)),0,0) rotate(calc(-1deg * var(--scale-factor)))}50%{transform:translate3d(calc(1px * var(--scale-factor)),0,0) rotate(calc(1deg * var(--scale-factor)))}75%{transform:translate3d(calc(-1px * var(--scale-factor)),0,0) rotate(calc(-1deg * var(--scale-factor)))}}.book-cover{width:calc(53vh * (320 / 420) * .9);height:53vh;display:flex;align-items:center;justify-content:center;will-change:transform,opacity;transform:translateZ(0)}.library-grid-item .modal-result-item{margin-right:0;padding:0;width:100%;height:100%}.library-grid-item .book-cover{width:100%;height:100%;border-radius:.1vh 1vh 1vh .1vh}.library-grid-item .delete-icon-container{bottom:calc(-1 * 2.8vh / 2);width:2.8vh;height:2.8vh}.library-grid-item .delete-icon{width:1.4vh;height:1.4vh}.book-cover-placeholder{position:absolute;inset:0;background-color:#333;color:var(--theme-text-primary);text-align:center;padding:1vh}.book-title-placeholder{font-size:1.4vh;margin-bottom:.5vh;overflow-wrap:break-word;word-break:keep-all;hyphens:auto}.book-author-placeholder{font-size:1vh;color:#ccc;line-height:1.2;overflow-wrap:break-word;word-break:keep-all}.favorite-icon-container{top:1vh;right:1vh;z-index:1}.drag-overlay-item{transform:rotate(-1deg) scale(1);z-index:10000;filter:drop-shadow(0 2vh 4vh rgba(0,0,0,.4));animation:dragFloat 2s ease-in-out infinite alternate}.drag-overlay-item.drag-left{transform:rotate(-1deg) scale(1);animation:dragFloatLeft 2s ease-in-out infinite alternate}.drag-overlay-item.drag-right{transform:rotate(-1deg) scale(1);animation:dragFloatRight 2s ease-in-out infinite alternate}.drag-overlay-book{transition:none!important;transform:translateZ(0);backface-visibility:hidden;-webkit-backface-visibility:hidden}@keyframes dragFloat{0%{transform:rotate(3deg) scale(1) translateY(0)}to{transform:rotate(3deg) scale(1) translateY(-.5vh)}}@keyframes dragFloatLeft{0%{transform:rotate(3deg) scale(1) translateY(0)}to{transform:rotate(3deg) scale(1) translateY(-.5vh)}}@keyframes dragFloatRight{0%{transform:rotate(-3deg) scale(1) translateY(0)}to{transform:rotate(-3deg) scale(1) translateY(-.5vh)}}.sortable-book-container[data-dragging=true]{opacity:0!important;transform:scale(.95)!important;transition:none!important}.modal-result-item.drag-over{border:.2vh dashed #4a9eff;background-color:rgba(74,158,255,.05);transform:scale(1.02);transition:all .2s ease-out}.sortable-book-container:hover{transform:translateY(-.3vh);transition:transform .2s ease-out}.sortable-book-container:active{transform:scale(.98);transition:transform .1s ease-out}.add-book-item{will-change:transform;transform:translateZ(0)}.add-book-item .book-cover{opacity:var(--book-opacity,1);transition:none}.add-book-plus-container{width:100%;height:100%;background-color:var(--theme-bg-card);border-radius:.2vh 2vh 2vh .2vh;display:flex;justify-content:center;align-items:center;cursor:pointer;transition:none}.add-book-plus-container:hover{background-color:var(--theme-bg-hover)}.add-book-plus-container:hover .add-book-plus-icon{opacity:1}.add-book-plus-icon{width:8vh;height:8vh;color:var(--theme-text-primary);opacity:.7;stroke-width:2;transition:opacity .3s ease}.library-header{width:min(41.8vh,90%);display:flex;flex-direction:column;align-items:center;padding-top:10vh;margin-bottom:3vh;margin-left:auto;margin-right:auto;gap:1vh;position:relative;z-index:100}body.ios .library-header{padding-top:8vh}.library-header>*{opacity:1}.book-cover{width:100%;height:100%;position:relative;overflow:visible;border-radius:.2vh 2vh 2vh .2vh;cursor:pointer;transition:transform .3s ease-in-out,opacity .8s ease-in-out;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.book-cover-visible{opacity:1}.book-cover-image{width:100%;height:100%;object-fit:cover;object-position:center;border-radius:.2vh 2vh 2vh .2vh}.white-line-optimized-img-container{position:relative;width:100%;height:100%}.white-line-optimization-indicator{position:absolute;top:.75vh;right:.75vh;z-index:10;pointer-events:none}.optimization-dot{width:.75vh;height:.75vh;background-color:rgba(0,150,255,.7);border-radius:50%;animation:optimization-pulse 1.5s ease-in-out infinite}@keyframes optimization-pulse{0%,to{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.3)}}.white-line-optimizing{filter:brightness(.95)}.content-plus-container{width:10vh;height:10vh;border-radius:50%;display:flex;align-items:center;justify-content:center;background-color:#222}.content-plus-icon{width:4.6vh;height:4.6vh;color:var(--theme-text-primary)}.library-page-container .indicator-dot{min-width:1.2vh!important;width:1.2vh!important;height:1.2vh!important;border-radius:50%!important;margin:0 .6vh!important;border:none!important;cursor:pointer!important;padding:0!important;transition:background-color .2s ease,opacity .2s ease!important;flex-shrink:0!important;opacity:0!important;-webkit-user-select:none!important;-moz-user-select:none!important;-ms-user-select:none!important;user-select:none!important;pointer-events:auto!important}.library-page-container .indicator-dot.active{background-color:#c8c8c8!important}.library-page-container .indicator-dot:not(.active){background-color:hsla(0,0%,78%,.2)!important}.library-page-container .indicator-dot:hover{background-color:hsla(0,0%,78%,.5)!important}.library-page-container .indicator-dot.empty{min-width:1.2vh!important;width:1.2vh!important;height:1.2vh!important;border-radius:50%!important;margin:0 .6vh!important;background-color:hsla(0,0%,78%,.1)!important;cursor:default!important;flex-shrink:0!important}.library-page-container .indicator-dot.empty:hover{background-color:hsla(0,0%,78%,.1)!important;transform:none!important}.delete-icon-container{position:absolute;bottom:calc(-1 * 4vh / 2);left:50%;transform:translateX(-50%);width:4vh;height:4vh;background-color:red;border-radius:50%;display:flex;align-items:center;justify-content:center;z-index:5}.delete-icon{color:var(--theme-text-primary);width:2vh;height:2vh}.add-book-item{pointer-events:auto;cursor:pointer;width:100%;height:100%;flex-shrink:0;scroll-snap-align:center;margin-right:4vh;box-sizing:border-box}.add-book-item,.favorite-icon-container{display:flex;align-items:center;justify-content:center}.favorite-icon-container{position:absolute;bottom:calc(-1 * 4vh / 2);left:50%;transform:translateX(-50%);width:4vh;height:4vh;background-color:var(--theme-text-primary);border-radius:50%;z-index:5;box-shadow:0 0 .5vh rgba(0,0,0,.3)}.favorite-icon{width:2.5vh;height:2.5vh;color:#ff3b5c}.book-cover-placeholder{width:100%;height:100%;background-color:#222;border-radius:.2vh 2vh 2vh .2vh;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;padding:2vh;box-sizing:border-box}.book-cover-placeholder.hidden{display:none}.book-title-placeholder{font-size:2.5vh;color:#a0a0a0;text-align:center;font-weight:700;line-height:1.2;word-break:break-word;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}.book-author-placeholder{position:absolute;bottom:3vh;left:50%;transform:translateX(-50%);font-size:1.4vh;color:#666;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:90%}.library-view-container{height:100%}.library-grid-wrapper{width:calc(53vh * (320 / 420) * .9 + 2.8vh);max-width:calc(53vh * (320 / 420) * .9 + 2.8vh);height:100vh;max-height:100vh;background-color:transparent;display:flex;flex-direction:column;position:relative;margin:0 auto;padding:0;overflow:visible}.library-grid-scroll{flex:1;overflow-y:scroll!important;overflow-x:hidden;padding:0 1.4vh;min-height:0;scroll-behavior:smooth;background-color:transparent;touch-action:pan-y;-webkit-overflow-scrolling:touch;height:calc(100vh - 10vh);-ms-overflow-style:none;scrollbar-width:none;display:flex;flex-direction:column;align-items:center;-webkit-mask-image:linear-gradient(180deg,#000 0,#000 85%,transparent);mask-image:linear-gradient(180deg,#000 0,#000 85%,transparent)}.library-grid-scroll::-webkit-scrollbar{display:none}.library-grid-scroll .library-header{width:100%}.library-grid-content{width:100%;padding-bottom:10vh}.library-grid-container{display:grid;grid-template-columns:repeat(2,1fr);gap:1.4vh;width:100%}.library-grid-container.is-dragging{touch-action:none}.library-grid-scroll.is-dragging{-webkit-mask-image:none;mask-image:none}.library-grid-container.edit-mode{row-gap:2.8vh}.library-grid-item.drag-overlay-item{width:calc((53vh * (320 / 420) * .9 - 1.4vh) / 2);aspect-ratio:24/35;transform:rotate(3deg) scale(1.05);filter:drop-shadow(0 1vh 2vh rgba(0,0,0,.3))}.library-grid-item{width:100%;aspect-ratio:24/35;position:relative}.library-grid-item .book-cover-image{width:100%;height:100%;object-fit:cover;border-radius:.1vh 1vh 1vh .1vh}.library-grid-item .book-cover-placeholder{border-radius:.1vh 1vh 1vh .1vh}.library-grid-item .page-corner{width:4vh;height:4vh;border-bottom-right-radius:1.4vh}.library-grid-item .page-corner-content{width:2.25vh}.library-grid-item .page-count,.library-grid-item .page-count-input{font-size:.7vh}.library-grid-item .delete-button{position:absolute;top:.5vh;right:.5vh;z-index:10}.library-grid-item .add-book-item{margin-right:0;padding:0}.library-grid-item .add-book-plus-container{border-radius:.1vh 1vh 1vh .1vh}.library-grid-item .add-book-plus-icon{width:4vh;height:4vh}.library-grid-scroll.modal-open{overflow:hidden}.library-grid-scroll.domain-selector-open .library-grid-content{display:none}