@import"https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@500;600&display=swap";.toast-viewport{position:fixed;top:calc(env(safe-area-inset-top,0px) + 18px);left:50%;transform:translate(-50%);z-index:200;display:flex;flex-direction:column;gap:9px;width:max-content;max-width:min(560px,calc(100vw - 32px));pointer-events:none}.toast-card{display:flex;align-items:center;gap:11px;min-height:54px;max-width:100%;padding:10px 10px 10px 17px;border:1px solid #e4d2b33d;border-radius:12px;background:linear-gradient(130deg,#34312bef,#242421f5);color:#f2e8d8;box-shadow:0 12px 36px #0005,inset 0 1px #fff8e90d;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);pointer-events:auto;animation:toast-enter .2s ease-out}.toast-card>svg{flex-shrink:0;color:#d4bd93}.toast-success>svg{color:#b4cba2}.toast-error>svg{color:#e3ae96}.toast-card>p{flex:1;min-width:0;margin:0;font-size:12px;line-height:1.7;overflow-wrap:anywhere}.toast-action{flex-shrink:0;min-height:34px;border:1px solid #d6bf974d;border-radius:7px;padding:6px 11px;font-size:11px;color:#efdbb6;background:#d8b77912}.toast-action:hover{background:#d8b77926}.toast-close{flex-shrink:0;display:grid;place-items:center;width:34px;height:34px;border-radius:7px;color:#c8bda9}.toast-close:hover{background:#fff8e911;color:#fff4e0}.toast-card button:focus-visible{outline:2px solid #ead0a4;outline-offset:2px}@keyframes toast-enter{0%{opacity:0;translate:0 -8px}to{opacity:1;translate:0 0}}@media(max-width:640px){.toast-viewport{top:calc(env(safe-area-inset-top,0px) + 12px);width:calc(100vw - 24px);max-width:none}.toast-card{gap:8px;padding-left:12px;border-radius:10px;flex-wrap:wrap}.toast-card>p{font-size:11px;flex-basis:calc(100% - 76px)}.toast-action{order:1;margin-left:27px}.toast-close{margin-left:auto}}@media(prefers-reduced-motion:reduce){.toast-card{animation:none}.toast-card>.spin{animation:none}}body:has(.reduce-motion) .toast-card,body:has(.reduce-motion) .toast-card>.spin{animation:none}.create-library-button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 25px;border:1px solid #dbb783;border-radius:7px;background:#f3e2c7;color:#302519;font-size:13px;font-weight:600;white-space:nowrap;box-shadow:0 2px 15px #130b0026;transition:background .2s,box-shadow .2s}.create-library-button:hover{background:#ffeed2;box-shadow:0 0 22px #e5be8220}.main-nav>a{position:relative;display:flex;align-items:center;font-size:12px;padding:0 2px;color:#bfb4a7;white-space:nowrap}.main-nav>a:hover,.main-nav>a.active{color:#efdfc6}.main-nav>a.active:after{position:absolute;content:"";height:2px;width:100%;background:var(--gold);bottom:0;left:0}.header-actions{margin-left:auto}.explore-page{min-height:100dvh}.explore-page .room-background{filter:blur(5px) brightness(.62) saturate(.82);transform:scale(1.035)}.explore-page .room-vignette{background:linear-gradient(180deg,#140f0ccc,transparent 42%,#120e0aaa),linear-gradient(90deg,#110d0955,transparent 30%,transparent 70%,#110d0955)}.explore-page .explore-header{position:sticky;top:0;z-index:20;flex-shrink:0;height:78px;gap:65px;background:#1b1612c9}.explore-header .main-nav{display:flex;gap:24px}.explore-header .main-nav>a{font-size:14px;padding:0 5px}.explore-account{margin-left:auto;display:flex;align-items:center}.explore-main{width:100%;padding:0 0 25px;flex:1}.explore-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:1500px;margin:0 auto;padding:34px 5% 18px}.explore-heading h1{margin:0;font:500 clamp(23px,2.3vw,32px) var(--serif);letter-spacing:-.8px}.reshuffle-button{display:flex;align-items:center;gap:10px;padding:10px 0 10px 12px;font-size:12px;white-space:nowrap;color:#e2d4c0}.reshuffle-button:hover{color:#fff1d9}.shuffle-pending{animation:spin 1.2s linear infinite}.explore-gallery{--card-width:min(68vw,860px,max(440px, calc((100svh - 385px)*1.52) ));--card-gap:24px}.explore-rail{position:relative;display:flex;gap:var(--card-gap);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain;padding:12px max(0px,calc((100% - var(--card-width))/2)) 14px;cursor:grab;user-select:none;-webkit-user-select:none;touch-action:auto}.explore-rail::-webkit-scrollbar{display:none}.explore-rail.is-dragging{cursor:grabbing;scroll-snap-type:none;scroll-behavior:auto}.explore-rail:focus-visible{outline-offset:-5px;border-radius:10px}.explore-card{flex:0 0 var(--card-width);width:var(--card-width);scroll-snap-align:center;scroll-snap-stop:normal;border:1px solid #aa865457;border-radius:14px;overflow:hidden;background:#251b14;box-shadow:0 20px 55px #0005;transform:scale(.93);opacity:.64;transition:transform .35s,opacity .35s,border-color .35s;transform-origin:center}.explore-card.is-active{transform:scale(1);opacity:1;border-color:#d4a75e;box-shadow:0 20px 70px #0006,0 0 0 1px #e9c89126}.shelf-preview{position:relative;aspect-ratio:1.52;display:grid;grid-template-rows:repeat(3,minmax(0,1fr));padding:2.2% 2.1% 0;border:clamp(7px,1vw,14px) solid #56391f;border-top-color:#785132;border-bottom:0;background:linear-gradient(90deg,#150d09a8,transparent 20%,#1009044f),url(/assets/reading-room.png) 50% 58%/230% auto;box-shadow:inset 0 0 0 2px #d3a46622,inset 0 18px 18px #0009,inset 12px 0 20px #0008}.shelf-preview:before{content:"";position:absolute;inset:0;background:linear-gradient(#321d0e99,#1b1009b3);pointer-events:none}.preview-row{position:relative;min-height:0;background:linear-gradient(180deg,#180e06d4,#4229125c 40%,#24150830);box-shadow:inset 0 10px 15px #0009}.preview-row:before{content:"";position:absolute;left:2%;right:2%;top:0;height:2px;background:#f0cb8a99;box-shadow:0 3px 18px 2px #ecae4933}.preview-plank{position:absolute;bottom:0;left:-1.2%;right:-1.2%;height:7%;background:linear-gradient(#b38b5480,#704b2bf0 18%,#382415 78%,#bf925147 95%);border-top:1px solid #cda86d73;box-shadow:0 6px 9px #000b}.preview-books{position:absolute;inset:8% 11% 7%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:1fr;gap:7%;align-items:end}.preview-book{height:93%;min-height:0;min-width:0;max-width:100%;aspect-ratio:.665;justify-self:center;position:relative;box-shadow:4px 3px 7px #0008;border-radius:1px 3px 2px 1px;transform:perspective(500px) rotateY(-5deg);overflow:hidden}.preview-book:nth-child(3n+2){height:88%;transform:perspective(500px) rotateY(3deg)}.preview-book:after{content:"";position:absolute;inset:0;box-shadow:inset 3px 0 2px #0004,inset -2px 0 #e7d8b677;border:1px solid #eee0bf2a;pointer-events:none}.preview-book img{width:100%;height:100%;display:block;object-fit:fill;pointer-events:none}.preview-book>span{display:flex;align-items:flex-start;justify-content:center;padding:18% 10%;width:100%;height:100%;font:500 clamp(7px,1vw,13px) var(--serif);line-height:1.7;text-align:center;background:linear-gradient(110deg,#ffffff09,#00000019);overflow-wrap:anywhere;overflow:hidden;color:#f4e9d5}.preview-diffuser{position:absolute;right:3%;bottom:7%;width:7%;height:32%}.preview-bottle{position:absolute;inset:0;background:linear-gradient(100deg,#0c1010,#313532 18%,#151c1b 55%,#080c0b);border:1px solid #a2ad922e;border-radius:20% 20% 12% 12%;box-shadow:4px 3px 6px #0007;display:grid;place-items:center}.preview-bottle:before{content:"";position:absolute;left:30%;right:30%;top:-13%;height:14%;background:linear-gradient(90deg,#756038,#dbc48d,#8c7245);border-radius:2px 2px 0 0}.preview-bottle>span{display:grid;place-items:center;width:53%;height:48%;border:1px solid #a28d5c;font:500 clamp(4px,.5vw,7px) Georgia,serif;letter-spacing:.5px;color:#c7af77}.preview-reeds{position:absolute;bottom:108%;left:50%;height:140%;width:1px}.preview-reeds i{position:absolute;bottom:0;width:1px;height:100%;transform-origin:bottom;background:linear-gradient(90deg,#3a3225,#b09a6a);box-shadow:1px 0 1px #0008}.preview-candle{position:absolute;left:3%;bottom:7%;width:5.4%;height:23%;border-radius:2px 2px 0 0;background:linear-gradient(90deg,#c1a773,#f4e4b8 40%,#e2ce9c);box-shadow:2px 2px 5px #0008}.preview-candle:after{content:"";position:absolute;left:-16%;right:-16%;bottom:0;height:13%;background:linear-gradient(90deg,#8c6b35,#e5c384,#937244);border-radius:50% 50% 1px 1px}.preview-candle>span{position:absolute;top:-6%;left:47%;height:10%;width:6%;background:#33261c}.preview-flame{position:absolute;width:22%;height:52%;left:39%;bottom:105%;border-radius:75% 25% 70% 30%;transform:rotate(-7deg);transform-origin:50% 100%;background:radial-gradient(ellipse at 50% 80%,#fff9d7 5%,#ffe9a1 45%,#f9b754 72%,#e5882b);box-shadow:0 0 12px 5px #efa64760,0 0 32px 15px #efaa2a1c}.is-lit .preview-flame{animation:candle-sway 2.7s ease-in-out infinite alternate}@keyframes candle-sway{0%,to{transform:rotate(-8deg) scaleY(.95);opacity:.92}35%{transform:rotate(7deg) scaleY(1.1);opacity:1}70%{transform:rotate(-3deg) scaleY(1.03);opacity:.96}}.explore-card-footer{display:flex;align-items:center;gap:16px;min-height:88px;padding:16px 24px;background:linear-gradient(115deg,#30271fe8,#211c17ed);border-top:1px solid #e2bf8330}.explore-avatar{width:48px;height:48px;flex-shrink:0;display:grid;place-items:center;border-radius:50%;background:#77634463;border:1px solid #c4ad7730;color:#f2e3c8;font:500 22px var(--serif)}.explore-card-copy{min-width:0;margin-right:auto}.explore-card-copy h2{font:500 clamp(16px,1.7vw,23px) var(--serif);line-height:1.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:-.4px}.explore-card-copy p{font-size:11px;color:#b8aa96;margin-top:3px}.enter-library-button{display:flex;align-items:center;gap:12px;padding:11px 15px;border:1px solid #cba267;border-radius:8px;white-space:nowrap;font-size:12px;color:#f4e2c2;transition:background .2s}.enter-library-button:hover{background:#c29b5020}.explore-controls{display:flex;align-items:center;flex-direction:column;gap:10px;padding-top:5px}.explore-stepper{display:flex;align-items:center;gap:24px}.explore-stepper>button{display:grid;place-items:center;width:38px;height:38px;border:1px solid #cfad7155;border-radius:50%;background:#29201780;color:#e0bc81}.explore-stepper>button:hover:not(:disabled){background:#9a773630}.explore-stepper>span{min-width:63px;text-align:center;font-size:12px;font-variant-numeric:tabular-nums;color:#b9a68c}.explore-stepper strong{font-weight:500;color:#f5e5c9}.explore-dots{display:flex;gap:0}.explore-dots>button{width:22px;height:24px;display:grid;place-items:center;padding:0}.explore-dots span{width:12px;height:4px;border-radius:5px;background:#8d765450;transition:background .2s,width .2s}.explore-dots [aria-current=true] span{width:16px;background:#f1c87a}.explore-placeholder{min-height:55vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;color:#d8c19d}.explore-placeholder p{font-size:14px;color:#c7b59c}@media(min-width:1600px){.explore-gallery{--card-width:min(62vw,1020px)}.explore-heading{padding-top:44px;padding-bottom:24px}}@media(max-width:900px){.explore-header{gap:32px}.explore-gallery{--card-width:78vw;--card-gap:12px}.explore-heading{padding-top:30px}.explore-card-footer{padding:13px 18px;gap:12px;min-height:80px}.explore-avatar{width:40px;height:40px;font-size:19px}.enter-library-button{padding:9px 12px;font-size:11px;gap:6px}}@media(max-width:640px){.explore-header{height:72px;padding:0 18px;gap:20px}.explore-header .brand{gap:6px}.explore-header .brand>span{font-size:24px}.explore-header .brand>svg{width:23px}.explore-header .main-nav{display:none}.explore-header:after{display:none}.create-library-button{min-height:38px;padding:0 15px;font-size:11px}.explore-heading{padding:30px 22px 20px;gap:8px}.explore-heading h1{font-size:23px}.reshuffle-button{font-size:10px;gap:6px;padding:8px 0}.reshuffle-button svg{width:16px}.explore-gallery{--card-width:86vw;--card-gap:10px}.explore-card{border-radius:11px;transform:scale(.95)}.shelf-preview{aspect-ratio:.86;border-width:9px;padding-top:4%}.preview-books{inset:12% 10% 7%;gap:5%;align-items:end}.preview-book{height:auto;max-height:93%;width:100%;aspect-ratio:.62}.preview-book:nth-child(3n+2){height:auto;width:94%}.preview-book>span{font-size:8px}.preview-diffuser{height:25%;width:7.3%;right:1.2%}.preview-candle{left:1.4%;width:5.5%;height:18%}.preview-bottle>span{font-size:4px}.explore-card-footer{padding:14px 14px 13px;gap:10px;flex-wrap:wrap}.explore-avatar{width:34px;height:34px;font-size:17px}.explore-card-copy{flex:1}.explore-card-copy h2{font-size:17px}.explore-card-copy p{font-size:10px}.enter-library-button{padding:8px 10px;font-size:10px;gap:4px}.enter-library-button svg{width:14px}.explore-controls{padding-top:9px}.explore-stepper{gap:21px}.explore-main{padding-bottom:25px}.app-header .main-nav .explore-nav-link{font-size:11px}.library-explore-link{display:inline-flex!important}.app-header.library-header{flex-wrap:wrap;height:auto;min-height:69px;row-gap:0;padding-top:14px;padding-bottom:10px}.library-header .main-nav{display:flex;order:3;width:100%;height:36px;gap:22px}.library-header .main-nav>a,.library-header .main-nav>button{font-size:11px}.library-header .header-actions{gap:8px}.library-header .brand>span{font-size:24px}.library-header .header-search{margin-left:auto}.library-header .header-actions{margin-left:0}}@media(prefers-reduced-motion:reduce){.explore-card,.explore-dots span,.is-lit .preview-flame{animation:none;transition:none}}@media(max-width:900px){.explore-page .explore-header{gap:32px}.app-header.library-header{flex-wrap:wrap;height:auto;padding-top:12px;padding-bottom:8px;row-gap:0}.library-header .main-nav{display:flex;order:3;width:100%;height:36px;gap:22px}}@media(max-width:640px){.explore-page .explore-header{height:72px;padding:0 18px;gap:20px}.explore-page .brand>span{font-size:24px}.explore-page .brand>svg{width:23px}}.library-page .library-heading{align-items:center}.library-heading-copy{display:flex;align-items:center;gap:24px;min-width:0;flex:1}.library-heading-copy h1{margin:0}.library-heading-copy .library-summary{padding:0;flex-shrink:0}.library-social{display:flex;align-items:center;gap:8px;flex-shrink:0}.library-social>button,.library-social>.library-like-count{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:0 13px;border:1px solid #c9af822e;border-radius:10px;background:#201b1680;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#d6c6af;font-size:12px}.library-social>button:hover:not(:disabled){background:#b49b7520;border-color:#d5b58c88}.library-social .library-like-button,.library-social .library-like-count{font-variant-numeric:tabular-nums}.library-social>.library-like-count{border-color:transparent;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}.library-social .is-liked{color:#e9a59d;border-color:#d98c824d;background:#ad61511a}.main-nav .liked-nav-link{gap:7px}.share-library-modal{padding:24px;max-width:460px}.share-library-modal h2{font-size:22px}.share-library-modal input{width:100%;min-height:46px;font-size:14px}.share-library-modal p{margin-top:14px;color:var(--muted);font-size:12px}.liked-load-more{display:flex;justify-content:center;padding:20px}.explore-collection-tabs{display:flex;gap:24px;padding:20px 5% 0;max-width:1500px;margin-inline:auto}.explore-collection-tabs a{min-height:44px;display:flex;align-items:center;gap:8px;color:var(--muted);border-bottom:2px solid transparent;font-size:13px}.explore-collection-tabs a[aria-current=page]{color:#f1dfc4;border-bottom-color:var(--gold)}.explore-dots{flex-wrap:wrap;justify-content:center;max-width:90vw}@media(min-width:641px)and (max-width:1000px){.liked-nav-link .nav-label{display:none}}@media(max-width:800px){.library-heading-copy{flex-direction:column;align-items:flex-start;gap:1px}.library-heading-copy .library-summary{text-align:left}.library-page .library-heading-copy .library-summary p{justify-content:flex-start}}@media(max-width:640px){.library-page .library-heading{min-height:72px;padding-block:8px}.library-heading-copy{align-items:stretch}.library-page .library-heading-copy h1{font-size:18px;line-height:1.4}.library-page .library-heading-copy .edit-title{min-height:30px;padding:5px}.library-social{gap:6px}.library-social>button,.library-social>.library-like-count{padding-inline:10px}.library-social .library-share-button{width:44px;padding:0}.library-share-button>span{display:none}.explore-collection-tabs{padding:12px 22px 0;gap:24px}}.modal.book-dialog{display:flex;flex-direction:column;width:100%;max-width:600px;max-height:min(760px,calc(100dvh - 64px));padding:0;overflow:hidden;border:1px solid #c6aa7f;border-radius:18px;background:transparent;box-shadow:0 0 0 5px #e1bc7a0d,0 32px 100px #000c}.book-dialog-heading{display:flex;align-items:flex-start;justify-content:space-between;flex-shrink:0;gap:24px;padding:24px 26px 22px 30px;border-bottom:1px solid #f5e8d12b;background:linear-gradient(135deg,#fff8ea0c,#fff8ea03);backdrop-filter:blur(14px) saturate(1.1);-webkit-backdrop-filter:blur(14px) saturate(1.1)}.book-dialog-heading>div{min-width:0}.book-dialog-kind{display:flex;align-items:center;gap:7px;color:#d1b68e;font-size:12px}.book-dialog-heading h2{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;margin-top:10px;font:500 23px/1.55 var(--serif);color:#f4e9d6;overflow-wrap:anywhere}.modal-close{display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;border:1px solid #fff4df40;border-radius:50%;background:#fff7e809;color:#fff3dd}.modal-close:hover{background:#fff7e81c;border-color:#fff4df80}.book-dialog-body{min-height:0;padding:26px 30px 30px;overflow-y:auto;background:#2d2923;overscroll-behavior:contain;scrollbar-gutter:stable;scrollbar-width:auto;scrollbar-color:#aa8b61 #24201a}.book-dialog-body::-webkit-scrollbar{width:10px}.book-dialog-body::-webkit-scrollbar-thumb{background:#aa8b61;border:2px solid #2d2923;border-radius:10px}.book-dialog-body::-webkit-scrollbar-track{background:#24201a}.book-dialog-body:focus-visible{outline:2px solid #d4b080;outline-offset:-4px}.book-facts{display:grid;gap:9px;margin:0;font-size:12px}.book-facts>div{display:grid;grid-template-columns:64px minmax(0,1fr);gap:14px}.book-facts dt{color:#ab9d88}.book-facts dd{margin:0;color:#e4d6c1;overflow-wrap:anywhere}.book-source-link{display:inline-flex;align-items:center;gap:6px;margin-top:18px;font-size:11px;color:#cfb48c}.book-source-link:hover{color:#ffe0ad}.book-dialog-description{margin-top:25px;padding-top:23px;border-top:1px solid var(--line)}.book-dialog-description h3{color:#ead8bc;font-size:13px;font-weight:500}.book-dialog-description p,.review-content{margin-top:16px;font-size:14px;line-height:2.05;color:#ded0ba;white-space:pre-wrap;overflow-wrap:anywhere}.review-content{margin-top:24px;font-family:var(--serif)}.review-content.no-note{color:#b5a58d;font-family:inherit}.book-dialog .record-summary{gap:12px;flex-wrap:wrap;padding:12px 14px}.book-dialog .status-pill,.book-dialog .record-summary time{font-size:12px}.book-dialog .field-label{font-size:12px}.book-dialog .field-label textarea{font-size:14px;min-height:160px}.book-dialog-footer{display:flex;align-items:center;flex-shrink:0;gap:12px;padding:18px 30px;border-top:1px solid #c6aa7f40;background:#25211c}.delete-book-button{display:inline-flex;justify-content:center;align-items:center;gap:9px;min-height:44px;padding:10px 18px;border:1px solid #b778636e;border-radius:8px;background:#b26a4917;color:#f0b4a0;font-size:13px}.book-dialog-footer>.delete-book-button{width:100%}.delete-book-button:hover{background:#b26a4938;border-color:#da987f}.delete-book-button.confirm{background:#864b38;color:#fff0e9;border-color:#bf7d64}.book-delete-confirm{width:100%}.book-delete-confirm p{margin-bottom:12px;color:#f0c1aa;font-size:13px}.book-delete-confirm>div{display:flex;justify-content:flex-end;gap:10px}.book-dialog-footer .secondary-button,.book-dialog-footer .primary-button{min-height:44px;border-radius:8px;font-size:12px}.review-footer{justify-content:flex-end}@media(max-width:640px){.modal.book-dialog{max-height:calc(100dvh - 32px);border-radius:15px}.book-dialog-heading{padding:19px 18px 18px 22px;gap:14px}.book-dialog-heading h2{font-size:19px;margin-top:8px}.book-dialog-body{padding:22px}.book-dialog-footer{padding:15px 22px}.book-dialog .field-label input,.book-dialog .field-label textarea{font-size:16px}}:root{font-family:DM Sans,Noto Sans KR,sans-serif;color:#eee4d5;background:#1b1612;font-synthesis:none;font-weight:400;font-size:14px;line-height:1.6;color-scheme:dark;--muted:#b8aa96;--gold:#d4b080;--line:rgba(219,191,149,.18);--green:#92a38a;--serif:"Noto Serif KR",serif}*{box-sizing:border-box}body{margin:0;min-width:360px}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{color:inherit;cursor:pointer;border:0;background:none}button:disabled{cursor:default;opacity:.38}a{color:inherit;text-decoration:none}button,a,input,textarea,select{outline-offset:5px}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid #e7c58e}button{transition:color .18s,background .18s,border-color .18s,transform .18s}button:not(:disabled):active{transform:translateY(1px)}input,textarea,select{color:inherit}button svg{flex-shrink:0}h1,h2,h3,p{margin:0}i{font-style:normal}::selection{background:#997449;color:#fff}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:#79634b;border-radius:6px}::-webkit-scrollbar-track{background:transparent}.app{position:relative;isolation:isolate;min-height:100vh;overflow:hidden;display:flex;flex-direction:column}.room-background{position:fixed;inset:0;z-index:-3;background:url(/assets/reading-room.png) center center/cover no-repeat;transition:filter .6s}.room-vignette{position:fixed;inset:0;z-index:-2;background:linear-gradient(180deg,#14110fc4,#16110d5c 25%,#15100c38 72%,#130f0cd1),linear-gradient(90deg,rgba(16,14,12,.18),transparent 30%,transparent 70%,rgba(16,14,12,.18));pointer-events:none}.app-header{height:90px;padding:0 4.6%;display:flex;align-items:center;gap:44px;border-bottom:1px solid rgba(221,193,153,.12);background:#1a16125c;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.brand{display:flex;align-items:center;gap:10px;color:#f0e4d0;white-space:nowrap}.brand>span{font:600 31px Cormorant Garamond,Georgia,serif;letter-spacing:-.6px}.brand-dot{color:var(--gold)}.brand svg{color:#e1bf90}.main-nav{display:flex;align-self:stretch;gap:27px;flex-shrink:0}.main-nav button{position:relative;font-size:12px;padding:0 2px;color:#bfb4a7}.main-nav button.active{color:#efdfc6}.main-nav button.active:after{position:absolute;content:"";height:2px;width:20px;background:var(--gold);bottom:0;left:calc(50% - 10px)}.main-nav button:hover{color:#fff}.header-search{margin-left:auto;display:flex;align-items:center;gap:12px;text-align:left;background:#ecd9c00f;border:1px solid rgba(235,210,177,.17);border-radius:7px;height:40px;width:310px;padding:0 13px;font-size:11px;color:#b5ab9c}.header-search:hover{background:#ecd9c01c}.header-search svg{color:#c5b69f}.header-search kbd{margin-left:auto}.header-actions{display:flex;align-items:center;gap:20px}.header-divider{height:19px;width:1px;background:var(--line)}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:6px;flex-shrink:0;color:var(--muted);padding:0}.icon-button:not(:disabled):hover{background:#e0caa81a;color:#f0debf}.profile-button{width:33px;height:33px;display:grid;place-items:center;border-radius:50%;border:1px solid #937455;background:#6b5540;color:#ecddc7;font:500 12px var(--serif)}kbd{font:11px DM Sans,sans-serif;min-width:20px;padding:0 4px;text-align:center;border:1px solid rgba(234,211,180,.18);border-radius:3px;color:#b8aa97}.library-main{width:min(1130px,calc(100% - 200px));margin:0 auto;flex:1}.library-heading{display:flex;justify-content:space-between;align-items:flex-end;padding:38px 9px 30px;gap:20px}.eyebrow{font-family:DM Sans,sans-serif;font-size:9px;letter-spacing:2px;font-weight:500;color:#c7ae87;display:flex;align-items:center;gap:9px}.eyebrow>span{width:4px;height:4px;background:#c7ae87;border-radius:50%}h1{font-family:var(--serif);font-size:31px;line-height:1.5;letter-spacing:-1.5px;font-weight:500;margin-top:8px;display:flex;align-items:center;gap:15px}.edit-title{color:#b69d7d;padding:7px;display:flex;opacity:.65}.edit-title:hover{opacity:1}.library-heading>div>p{font-size:11px;color:#bdb19f;margin-top:8px;letter-spacing:.2px}.library-summary{text-align:right;padding-bottom:2px;white-space:nowrap}.library-heading .library-summary p{font-size:11px;color:#bbae98;margin-top:12px}.library-summary p strong{font-size:16px;font-weight:500;color:#f1e3ca;margin-right:3px}.library-summary p>span{margin:0 10px;color:#7b6a53}.library-toolbar{margin:0 9px;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:0 0 15px;border-bottom:1px solid rgba(217,183,137,.23)}.filter-tabs{display:flex;gap:5px;align-items:center}.filter-tabs>button{display:flex;align-items:center;gap:6px;font-size:11px;color:#bfb3a0;padding:8px 10px;border:1px solid transparent;border-radius:5px;white-space:nowrap}.filter-tabs>button small{font-size:9px;color:#a7957e;margin-left:1px}.filter-tabs>button:hover{background:#e8d3b112}.filter-tabs>button.active{background:#b08c5821;border-color:#cfa86c4a;color:#ead3ac}.filter-tabs>button.active small{color:#d5b584}.toolbar-actions{display:flex;align-items:center;gap:12px}.sort-control{display:flex;align-items:center;position:relative;color:#b9aa94}.sort-control select{appearance:none;border:0;background:transparent;font-size:10px;padding:7px 19px 7px 5px;cursor:pointer;outline-offset:1px}.sort-control>svg{position:absolute;right:1px;pointer-events:none}.sort-control option{background:#30281f;color:#e6d9c4}.view-toggle{display:flex;border:1px solid var(--line);border-radius:5px;padding:2px;gap:2px}.view-toggle>button{width:27px;height:27px;display:grid;place-items:center;color:#9f8e76;border-radius:3px}.view-toggle>button.active{background:#cdb38f26;color:#e6d1ae}.add-book-button{border:1px solid #b99a6f;border-radius:5px;background:#cbb18b;color:#30261c;display:flex;align-items:center;gap:5px;height:34px;padding:0 12px;font-size:11px;font-weight:600;box-shadow:0 2px 10px #10090020;white-space:nowrap}.add-book-button:hover{background:#e1c7a0}.shelf-stage{position:relative;width:100%;aspect-ratio:1.72;margin-top:9px;isolation:isolate}.three-shelf{position:absolute;inset:0;transition:filter .6s}.three-shelf canvas{display:block;width:100%;height:100%;touch-action:pan-y}.shelf-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:15px;font-size:12px;color:#c5b291}.shelf-bottom{display:flex;align-items:center;justify-content:space-between;gap:15px;margin:7px 9px 0}.pagination{display:flex;gap:9px;align-items:center;font-size:10px;color:#927d61;margin-left:-90px}.pagination>span{display:flex;align-items:center;gap:10px;letter-spacing:1px}.pagination strong{font-weight:500;color:#e9d4b6}.pagination i{height:8px;width:1px;background:#7b6247;transform:rotate(20deg)}.pagination .icon-button{width:24px;height:25px}.subtle-button{display:flex;align-items:center;gap:6px;font-size:10px;color:#b7a68b}.subtle-button:hover{color:#ead7b5}.book-cover{aspect-ratio:2/3;position:relative;overflow:hidden;border-radius:1px 3px 3px 1px;flex-shrink:0;box-shadow:2px 4px 8px #0004;background:#576b64}.book-cover img{width:100%;height:100%;object-fit:cover;display:block}.book-cover>span{width:100%;height:100%;display:flex;gap:9px;padding:15%;align-items:center;justify-content:center;flex-direction:column;text-align:center;font-family:var(--serif);font-size:12px}.book-cover:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#0002 0,transparent 3%,#fff2 4%,transparent 6%,transparent 97%,#0002);border:1px solid #fff1}.empty-library{min-height:450px;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;background:radial-gradient(ellipse,#1a15105e,transparent 65%);gap:16px}.empty-library>div{width:78px;height:78px;background:#b5915320;border:1px solid #d3b98530;border-radius:50%;display:grid;place-items:center;margin-bottom:8px;color:#d9ba87}.empty-library h2{font:500 23px var(--serif)}.empty-library p{font-size:12px;color:#bbaa92}.empty-library .primary-button{margin-top:10px}.fallback-books{display:grid;grid-template-columns:repeat(4,1fr);gap:32px 35px;padding:30px 7%;background:#301e1299}.fallback-books button{display:flex;flex-direction:column;gap:10px;align-items:center;font-size:11px}.fallback-books .book-cover{width:100%;max-width:140px}.shelf-fallback{aspect-ratio:auto}.reading-list{padding:15px 10px 10px;background:#1d1711b8;border-radius:0 0 6px 6px;margin:0 9px;min-height:480px}.list-heading,.reading-row{display:grid;grid-template-columns:minmax(220px,1fr) 130px 115px 160px 16px;gap:15px;align-items:center}.list-heading{font-size:10px;color:#a89880;padding:9px 15px 15px;border-bottom:1px solid var(--line)}.reading-row{width:100%;padding:14px 15px;border-bottom:1px solid rgba(209,180,139,.1);text-align:left}.reading-row:hover{background:#e6cfad0e}.list-book{display:flex;align-items:center;gap:17px}.list-book .book-cover{width:42px}.list-book strong{font-size:12px;font-weight:500}.list-book small{display:block;font-size:10px;color:#a99b85;margin-top:5px}.reading-row time{font-size:11px;color:#b7a68b}.reading-row>svg{color:#9c8768}.status-pill{display:inline-flex;align-items:center;gap:6px;color:#c0b49f;font-size:10px;white-space:nowrap}.status-pill>span{width:4px;height:4px;border-radius:50%;background:#9e967b}.status-pill.finished{color:#b7c3a9}.status-pill.finished>span{background:#93ab82}.status-pill.reading{color:#e0bb7e}.status-pill.reading>span{background:#d9ae65}.status-pill.wishlist{color:#bea9c2}.status-pill.wishlist>span{background:#ac8daf}.modal-backdrop{position:fixed;inset:0;z-index:50;background:#090705c7;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);display:flex;align-items:center;justify-content:center;padding:30px;animation:fade-in .2s}.modal{background:linear-gradient(145deg,#332e27f5,#25221efb);border:1px solid #aa92714d;border-radius:13px;box-shadow:0 20px 100px #0008;width:100%;max-height:calc(100dvh - 60px);overflow-y:auto;animation:modal-in .25s}.modal-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;gap:20px}.modal-heading h2{font:500 23px var(--serif);margin-top:8px;letter-spacing:-.7px}.modal-heading .eyebrow{font-size:8px}.primary-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:#ceb28a;border:1px solid #d9be96;color:#33271b;padding:11px 20px;border-radius:6px;font-size:12px;font-weight:600;box-shadow:0 3px 15px #0002}.primary-button:hover{background:#e0c6a0}.full-width{width:100%}.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #ad947444;background:#b5957020;border-radius:5px;padding:9px 12px;font-size:11px;color:#d8c7ad}.secondary-button:hover{background:#b5957033}.text-button{display:inline-flex;align-items:center;gap:5px;color:#cfb68f;font-size:11px;padding:4px 0}.text-button:hover{color:#f3dbb3}.danger{color:#e5a28d}.field-label{display:block;font-size:11px;font-weight:500;color:#dbcdb8;line-height:1.5}.field-label>span{font-size:9px;margin-left:5px;color:#998970;font-weight:400}.field-label input,.field-label textarea{display:block;width:100%;margin-top:9px;border:1px solid #b49b752b;border-radius:5px;background:#16130f36;padding:11px 12px;color:#ebdeca;font-size:12px;outline-offset:1px}.field-label textarea{resize:vertical;min-height:85px;max-height:300px;line-height:1.9}.field-label input:focus,.field-label textarea:focus{border-color:#b9a17a80}.field-label input::placeholder,.field-label textarea::placeholder{color:#918571;font-size:11px}.character-count{display:block;text-align:right;color:#9b8c73;font-size:9px;margin-top:4px;font-weight:400}.record-fields{display:flex;flex-direction:column;gap:18px}.record-fields>.field-label:first-child{margin-bottom:-10px}.status-options{display:flex;gap:6px}.status-options button{flex:1;display:flex;align-items:center;justify-content:center;gap:5px;border:1px solid #bba5882b;border-radius:5px;font-size:11px;color:#a99d88;padding:9px 5px;background:#ffffff03}.status-options button.active{border-color:#8c9f765c;background:#7c956822;color:#c3d2b4}.status-options button:hover{background:#9d8c7130}.record-fields+.primary-button{margin-top:23px}.search-modal{max-width:690px}.search-input-row{display:flex;align-items:center;gap:14px;padding:18px 23px;border-bottom:1px solid var(--line);color:#c5b294}.search-input-row input{background:none;border:0;flex:1;min-width:0;font-size:14px;padding:7px 0;color:#f0e6d7;outline:none}.search-input-row input::placeholder{color:#b7aa94;font-size:13px}.search-meta{display:flex;align-items:center;justify-content:space-between;font-size:11px;padding:20px 25px 8px;color:#ded0b9}.search-results{max-height:440px;min-height:150px;overflow-y:auto;padding:0 14px}.search-result{display:flex;align-items:center;gap:16px;padding:15px 11px;border-bottom:1px solid #b9a1801a}.search-result:last-child{border:0}.search-result .book-cover{width:43px}.result-copy{flex:1;min-width:0}.result-copy strong{font-size:12px;font-weight:500;line-height:1.6;display:block}.result-copy p{display:flex;align-items:center;flex-wrap:wrap;gap:7px;color:#a99b85;font-size:10px;margin-top:5px}.result-copy i{height:9px;width:1px;background:#9c876346}.result-copy a{display:inline-flex;align-items:center;gap:3px;font-size:9px;color:#a8997f;margin-top:5px}.add-result{display:flex;align-items:center;justify-content:center;gap:5px;border:1px solid #ac987648;background:#ac987610;border-radius:5px;color:#dacaad;padding:7px 10px;font-size:10px;white-space:nowrap}.add-result:hover{background:#ac987631}.add-result.added{color:#a0ab90;background:transparent;border-color:transparent;opacity:.6}.search-footer{display:flex;align-items:center;gap:6px;padding:12px 25px;background:#19161140;border-top:1px solid var(--line);font-size:9px;color:#9d8e77}.search-footer>span:first-child{margin-right:auto}.search-footer kbd{font-size:8px;min-width:23px}.empty-search{text-align:center;padding:45px 15px;color:#ac997b;font-size:12px}.empty-search>svg{margin-bottom:14px}.empty-search small{display:block;margin-top:8px;font-size:10px;color:#a0927d}.spin{animation:spin 1s linear infinite}.add-modal{max-width:450px;padding:29px}.adding-book{display:flex;align-items:center;gap:20px;padding:18px;background:#c5a67b0a;border:1px solid #c5a67b20;border-radius:7px;margin-bottom:25px}.adding-book .book-cover{width:65px}.adding-book h3{font-family:var(--serif);font-size:16px;font-weight:500;margin:0}.adding-book p{font-size:10px;color:#b3a38a;margin-top:7px}.book-shadow{position:absolute;width:170px;height:15px;bottom:12px;background:#0006;filter:blur(11px);border-radius:50%}.book-introduction{padding:24px 0 20px;border-bottom:1px solid var(--line);margin-top:4px}.book-introduction h3,.my-record h3{font-weight:500;font-size:11px;display:flex;align-items:center;gap:7px;color:#daccb5}.book-introduction>p{font-size:11px;line-height:2.05;margin-top:12px;color:#beaf98;white-space:pre-line;overflow-wrap:anywhere}.my-record{padding:18px 0 0}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.record-summary{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:#ab9b7710;border:1px solid #a5957624;border-radius:5px}.record-summary time{font-size:11px;color:#c6b79d}.saved-note{font-family:var(--serif);font-size:11px;line-height:2.1;color:#d0c1a8;white-space:pre-wrap;overflow-wrap:anywhere;margin:14px 0 6px}.saved-note.no-note{font-family:inherit;color:#938670;font-size:10px}.settings-modal{max-width:470px;padding:29px}.toggle-row{position:relative;display:flex;justify-content:space-between;align-items:center;gap:20px;margin:22px 0;cursor:pointer}.toggle-row strong{display:block;font-size:11px;font-weight:500;color:#cfbfa4}.toggle-row small{display:block;font-size:10px;color:#a1937d;margin-top:4px}.toggle-row input{position:absolute;width:37px;height:22px;right:0;opacity:0;cursor:pointer;z-index:1}.toggle{width:34px;height:20px;border-radius:30px;border:1px solid #9f8b6933;background:#665a4933;position:relative;flex-shrink:0}.toggle:before{content:"";width:12px;height:12px;border-radius:50%;background:#ad9d81;position:absolute;left:3px;top:3px;transition:transform .2s}.toggle.on{background:#82916c66;border-color:#899b7655}.toggle.on:before{transform:translate(14px);background:#ced7bd}.toggle-row input:focus-visible+.toggle{outline:2px solid #e7c58e;outline-offset:4px}.backup-section{border-top:1px solid var(--line);padding-top:23px;margin-top:26px}.backup-section h3{font-size:12px;font-weight:500}.backup-section p{font-size:10px;line-height:1.9;color:#ab9d85;margin:8px 0 14px}.backup-actions{display:flex;gap:8px}.backup-actions>button{flex:1}.confirm-box{padding:12px;background:#c59b6120;border:1px solid #c59b6140;border-radius:5px;margin-top:12px;font-size:11px}.confirm-box>button+button{margin-left:17px}.confirm-box p{font-size:10px;line-height:1.8;color:#c7b292;margin-bottom:8px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}@keyframes spin{to{transform:rotate(360deg)}}.reduce-motion *{animation-duration:.01ms!important;transition-duration:.01ms!important}@media(min-width:1550px){.library-main{width:min(1250px,calc(100% - 250px))}.app-header{height:98px}.library-heading{padding-top:43px;padding-bottom:34px}.library-heading h1{font-size:36px}.library-heading>div>p{font-size:12px}.shelf-stage{max-height:660px}}@media(max-width:1150px){.app-header{gap:27px;padding:0 4%;height:78px}.header-search{width:260px}.main-nav{gap:20px}.header-actions{gap:13px}.library-main{width:calc(100% - 100px)}.library-heading{padding-top:30px;padding-bottom:25px}.filter-tabs>button{padding:7px;gap:4px;font-size:10px}.filter-tabs>button svg{width:13px}.toolbar-actions{gap:8px}.list-heading,.reading-row{grid-template-columns:minmax(200px,1fr) 110px 100px 115px 14px;gap:9px}}@media(max-width:900px){.app-header{gap:22px;height:73px}.brand>span{font-size:27px}.brand>svg{width:27px}.main-nav{display:none}.header-search{width:280px}.library-main{width:calc(100% - 48px)}.library-heading h1{font-size:29px}.library-heading .eyebrow{font-size:8px;letter-spacing:1.6px}.toolbar-actions .sort-control{display:none}.library-toolbar{gap:8px}.filter-tabs{gap:1px}.view-toggle{margin-right:3px}.pagination{margin-left:-50px}.room-background{background-position:47% center}}@media(max-width:640px){.app-header{padding:0 20px;height:69px;gap:12px}.brand{gap:8px}.brand>span{font-size:27px}.brand>svg{width:26px}.header-search{margin-left:auto;width:33px;padding:0;justify-content:center;background:none;border:none}.header-search>span,.header-search>kbd{display:none}.header-actions{gap:9px}.header-divider{display:none}.profile-button{height:29px;width:29px;font-size:10px}.library-main{width:calc(100% - 28px)}.library-heading{padding:29px 9px 24px;align-items:flex-start}.library-heading .eyebrow{font-size:6px;letter-spacing:1.45px;gap:6px}.library-heading .eyebrow>span{width:3px;height:3px}.library-heading h1{font-size:24px;margin-top:10px;gap:4px}.edit-title{padding:5px}.edit-title svg{width:12px}.library-heading>div>p{font-size:10px;margin-top:8px;letter-spacing:-.3px}.library-summary{padding-top:2px}.library-heading .library-summary p{font-size:8px;margin-top:14px;display:flex;align-items:baseline;gap:3px;flex-wrap:wrap;justify-content:flex-end;max-width:80px}.library-summary p strong{font-size:12px;margin-right:0}.library-summary p>span{margin:0 1px}.library-toolbar{margin:0 8px;flex-wrap:wrap;gap:12px;padding-bottom:12px}.filter-tabs{order:2;width:100%;justify-content:space-between;border-top:1px solid #bca2781f;padding-top:11px}.filter-tabs>button{font-size:10px;padding:6px 8px;gap:4px}.filter-tabs>button small{font-size:8px}.toolbar-actions{width:100%;justify-content:flex-end;gap:9px}.toolbar-actions .sort-control{display:flex;margin-right:auto}.sort-control select{font-size:10px}.view-toggle{margin-right:0}.view-toggle>button{width:25px;height:25px}.add-book-button{height:31px;font-size:10px;padding:0 10px}.shelf-stage{margin-top:17px;aspect-ratio:.87}.three-shelf{inset:0 -26%}.shelf-bottom{margin-top:4px;flex-wrap:wrap;gap:6px}.pagination{margin:0;gap:3px;font-size:9px}.pagination>span{gap:7px}.pagination .icon-button{width:18px}.shelf-bottom>.subtle-button{font-size:9px;margin-left:auto}.shelf-bottom>.subtle-button svg{width:11px}.room-background{background-position:48% center}.room-vignette{background:linear-gradient(180deg,#17120ee0,#1b140f65 40%,#1b140f33 70%,#15110edb)}.modal-backdrop{padding:15px}.modal{max-height:calc(100dvh - 30px);border-radius:11px}.search-modal{align-self:flex-start;margin-top:35px;max-height:calc(100dvh - 80px)}.search-input-row{padding:14px;gap:10px}.search-input-row input{font-size:12px}.search-input-row input::placeholder{font-size:11px}.search-meta{padding:16px 16px 8px;font-size:10px;gap:8px}.search-results{padding:0 7px;max-height:55dvh}.search-result{gap:11px;padding:13px 9px}.search-result .book-cover{width:37px}.result-copy strong{font-size:11px}.result-copy p{font-size:8px;gap:5px}.add-result{padding:6px 7px;font-size:9px;gap:3px}.add-result>svg{width:12px}.search-footer{padding:12px 16px;font-size:8px}.add-modal,.settings-modal{padding:24px}.modal-heading h2{font-size:21px}.reading-list{margin:0 8px;padding:0 6px;min-height:400px}.list-heading{display:none}.reading-row{grid-template-columns:1fr auto;gap:9px;padding:15px 4px;position:relative}.list-book{gap:12px}.list-book .book-cover{width:42px}.list-book strong{font-size:11px}.list-book small{font-size:8px;max-width:180px}.reading-row>.status-pill{font-size:8px;align-self:start;margin-top:7px}.reading-row>time{position:absolute;right:4px;top:42px;font-size:8px}.reading-row>svg{display:none}.empty-library{min-height:390px;padding:25px}.empty-library h2{font-size:20px}.empty-library p{font-size:11px}.fallback-books{grid-template-columns:repeat(3,1fr);gap:25px 16px;padding:20px 6%}.fallback-books button{font-size:9px}.backup-actions>button{font-size:10px;padding:9px 8px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media(max-width:640px){.library-heading .library-summary p{max-width:none;white-space:nowrap;flex-wrap:nowrap;gap:2px;font-size:7px}.library-summary p strong{font-size:11px}.library-summary{padding-top:2px;min-width:99px}}.app{overflow:clip}.shelf-scroll{position:relative;margin-top:9px}.shelf-scroll .shelf-stage{position:sticky;top:0;margin-top:0;max-height:none}.shelf-scroll .book-targets{overflow:clip}.shelf-scroll .book-target:nth-child(4n+1){left:16.5%}.shelf-scroll .book-target:nth-child(4n+2){left:34.7%}.shelf-scroll .book-target:nth-child(4n+3){left:52.9%}.shelf-scroll .book-target:nth-child(4n){left:71.1%}.fallback-cabinet{position:absolute;inset:2%;overflow:clip;border:10px solid #65462f;background:linear-gradient(90deg,#25180f,#392518 50%,#25180f)}.fallback-cabinet>div{position:absolute;left:0;right:0;height:10px;background:linear-gradient(#99704a,#58361e);box-shadow:0 7px 9px #0008}@media(max-width:640px){.shelf-scroll{margin-top:17px}.shelf-scroll .book-target:nth-child(4n+1){left:0}.shelf-scroll .book-target:nth-child(4n+2){left:28%}.shelf-scroll .book-target:nth-child(4n+3){left:56%}.shelf-scroll .book-target:nth-child(4n){left:82%}}.library-heading{padding:25px 9px 23px;align-items:center;min-height:95px}.library-heading h1{font:500 30px var(--serif);display:flex;align-items:center;gap:13px;margin:0;letter-spacing:-.8px;overflow-wrap:anywhere}.library-heading .library-summary p{margin:0;white-space:nowrap}.library-main{padding-bottom:35px}.shelf-bottom{justify-content:center}.pagination{margin-left:0}.book-targets{position:absolute;inset:0;pointer-events:none}.book-target{position:absolute;width:12%;height:23%;pointer-events:auto;border-radius:2px;background:transparent}.book-target:nth-child(4n+1){left:16.5%}.book-target:nth-child(4n+2){left:34.7%}.book-target:nth-child(4n+3){left:52.9%}.book-target:nth-child(4n){left:71.1%}.book-target:nth-child(-n+4){top:7%}.book-target:nth-child(n+5):nth-child(-n+8){top:36%}.book-target:nth-child(n+9){top:65%}.book-target:focus-visible{outline:2px solid #e7c58e;outline-offset:6px;box-shadow:0 0 20px #e7c58e33}.book-target.empty{visibility:hidden;pointer-events:none}.book-targets.can-drag .book-target.occupied{cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}.is-dragging .book-target{cursor:grabbing;outline:none;box-shadow:none}.is-dragging .book-target.empty,.is-dragging .book-target.drag-source{visibility:visible;border:1.5px dashed #e4c79980;background:#e4c79908;pointer-events:auto}.is-dragging .book-target.drop-target{border:2px dashed #ffe0a8;background:#edc98b20;box-shadow:0 0 22px #efc88924}.is-dragging .book-target.drop-target.occupied:not(.drag-source){border-style:solid;background:#edc98b18}.shelf-fallback{background:#38241788}.shelf-fallback .book-target{display:flex;align-items:center;justify-content:center}.shelf-fallback .book-target .book-cover{width:auto;height:100%;max-width:100%;pointer-events:none}.shelf-fallback.is-dragging .drag-source .book-cover{opacity:.2}.fallback-drag-preview{position:fixed;transform:translate(-50%,-50%);pointer-events:none;z-index:20;width:clamp(64px,9vw,125px);filter:drop-shadow(0 12px 14px #0008)}.fallback-keyboard-preview{position:absolute;inset:0;pointer-events:none;filter:drop-shadow(0 12px 14px #0008)}.shelf-fallback.is-dragging .fallback-keyboard-preview .book-cover{opacity:1}.book-inspector{position:absolute;z-index:2;left:55%;top:50%;transform:translateY(-50%);width:260px;max-width:43%;max-height:calc(100% - 24px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;animation:fade-in .25s}.book-actions{display:flex;flex-direction:column;gap:9px}.book-actions>button{display:flex;align-items:center;gap:13px;width:100%;padding:15px 17px;border:1px solid #d6b98b4d;border-radius:9px;background:linear-gradient(135deg,#3e382de8,#27241ef2);box-shadow:0 5px 20px #0003;font-size:12px;text-align:left;color:#e5d7c1;transition:background .15s,border-color .15s}.book-actions>button svg{color:#bfa682;flex-shrink:0}.book-actions>button:not([aria-disabled=true]):hover,.book-actions>button[aria-pressed=true]{background:#5c4b33eb;border-color:#ddbf8980}.list-heading,.reading-row{grid-template-columns:minmax(220px,1fr) 140px 120px 16px}.fallback-books{transition:opacity .2s}.has-selection .fallback-books{opacity:.2}.fallback-selected{--front-width:25%;--front-left:22%;position:absolute;left:var(--front-left);top:20%;width:var(--front-width);z-index:1}.fallback-selected img,.fallback-selected .book-cover{width:100%}.fallback-selected.face-side{width:calc(var(--front-width) * 1.5 * var(--surface-ratio));left:calc(var(--front-left) + var(--front-width) * .5 - var(--front-width) * .75 * var(--surface-ratio))}@media(max-width:900px){.library-heading h1{font-size:27px}.book-inspector{width:230px}.list-heading,.reading-row{grid-template-columns:minmax(180px,1fr) 110px 95px 14px;gap:8px}}@media(max-width:640px){.library-heading{padding:21px 9px;min-height:85px;gap:9px}.library-heading h1{font-size:23px;gap:5px;margin:0}.library-heading .library-summary p{font-size:8px;max-width:none;gap:3px;margin:0}.library-summary{min-width:0;padding:0}.book-target{width:18%;height:23%}.book-target:nth-child(4n+1){left:0}.book-target:nth-child(4n+2){left:28%}.book-target:nth-child(4n+3){left:56%}.book-target:nth-child(4n){left:82%}.book-inspector{left:55%;width:160px;max-width:43%}.book-actions{gap:8px}.book-actions>button{font-size:11px;gap:9px;padding:13px 11px;border-radius:8px}.book-actions>button svg{width:16px}.reading-row{grid-template-columns:1fr auto}.fallback-selected{--front-left:9%;--front-width:38%;top:25%}}.auth-main{flex:1;display:grid;place-items:center;padding:70px 22px;min-height:calc(100vh - 90px)}.auth-card{width:min(420px,100%);text-align:center;padding:46px 34px 40px;border:1px solid rgba(224,196,155,.3);border-radius:16px;background:#201d18e0;-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);box-shadow:0 24px 80px #0005}.auth-book-icon{color:var(--gold);margin-bottom:20px}.auth-card h1{display:block;margin:0;font-size:28px;letter-spacing:-1px}.auth-intro{color:var(--muted);font-size:13px;margin:12px 0 30px}.google-login-button{display:flex;align-items:center;justify-content:center;gap:14px;width:100%;min-height:46px;border:1px solid #747775;border-radius:7px;color:#1f1f1f;background:#fff;font-size:14px;font-weight:500}.google-login-button:hover{background:#f4f4f4}.google-login-button:disabled{opacity:.65;cursor:default}.google-login-button img{flex-shrink:0;object-fit:contain}.auth-loading{height:46px;display:grid;place-items:center;color:var(--gold)}.logout-button{font-size:11px;white-space:nowrap;color:var(--muted);padding:6px 0}.logout-button:hover{color:#fff}.header-actions{gap:15px}@media(max-width:640px){.header-actions{gap:10px}.auth-main{padding:40px 22px;min-height:calc(100vh - 69px)}.auth-card{padding:36px 24px}}.book-selection-dim{position:absolute;inset:0;z-index:1}.book-menu-heading{display:flex;align-items:flex-start;gap:12px;margin-bottom:12px;padding:16px;border:1px solid #f5e8d12b;border-radius:12px;background:linear-gradient(135deg,#fff8ea0c,#fff8ea03);backdrop-filter:blur(14px) saturate(1.1);-webkit-backdrop-filter:blur(14px) saturate(1.1);box-shadow:inset 0 1px #fff7e908,0 8px 24px #0002}.book-menu-heading h2{flex:1;min-width:0;font:500 21px/1.55 var(--serif);letter-spacing:-.5px;overflow-wrap:anywhere;color:#f4ecdf;text-shadow:0 2px 12px #0006}.book-menu-close{display:grid;place-items:center;flex-shrink:0;width:40px;height:40px;border:1px solid #fff4df40;border-radius:50%;color:#f5ebdc;background:#fff7e809}.book-menu-close:hover{background:#fff7e81c;border-color:#fff4df80}@media(max-width:640px){.book-menu-heading{gap:8px;padding:12px;margin-bottom:10px;border-radius:10px}.book-menu-heading h2{font-size:16px;letter-spacing:-.4px}.book-menu-close{width:36px;height:36px}.book-menu-close svg{width:18px}}.book-actions>button[aria-disabled=true]{color:#a29785;border-color:#b8aa9326;background:#28251fe8;box-shadow:none}.book-actions>button[aria-disabled=true] svg{color:#867b69}.book-actions>button[aria-disabled=true]:hover{border-color:#b8aa9366}.modal-heading>.icon-button,.search-input-row>.icon-button{width:40px;height:40px;border:1px solid #dac09c66;border-radius:50%;background:#514432;color:#fff3dd}.library-page .app-header.library-header{height:64px;min-height:64px;padding:0 4.6%;flex-wrap:nowrap;gap:28px}.library-page .library-header .main-nav{display:flex;order:0;width:auto;height:auto;gap:24px}.library-page .library-main{padding-bottom:16px}.library-page .library-heading{min-height:60px;padding:12px 9px;gap:16px}.library-page .library-heading h1{min-width:0;font-size:25px;gap:8px}.library-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.library-heading .edit-title{flex-shrink:0}.library-page .library-heading .library-summary p{margin:0}.library-page .library-toolbar{padding-bottom:9px}.shelf-scroll .shelf-stage{margin-inline:auto}.mobile-library-menu{display:none}.selected-book-space{position:absolute;inset:0;pointer-events:none;z-index:1}.selected-book-space .fallback-selected{pointer-events:auto}.library-menu-modal{max-width:400px;padding:22px}.library-menu-modal .modal-heading{margin-bottom:18px}.library-menu-modal .modal-heading h2{margin:0;font-size:22px}.library-menu-links{display:grid;gap:6px;margin-bottom:24px}.library-menu-links a{display:flex;align-items:center;gap:12px;min-height:48px;color:#e8d7bc}.library-menu-links a>svg:last-child{margin-left:auto}.library-menu-modal select{display:block;width:100%;min-height:48px;padding:10px 12px;margin-top:8px;border:1px solid #b49b7545;border-radius:8px;background:#211c17;font-size:16px}.library-menu-views{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0 24px}.library-menu-views button{display:flex;align-items:center;justify-content:center;gap:10px;min-height:48px;border:1px solid #b49b7538;border-radius:8px;color:#c6b79e}.library-menu-views button[aria-pressed=true]{background:#a98a5429;border-color:#d4b080;color:#f1dfbf}.library-menu-account{display:flex;justify-content:space-between;gap:16px;padding-top:16px;margin-top:20px;border-top:1px solid var(--line)}.library-menu-account:empty{display:none}.library-menu-account button{min-height:44px;color:#c2b197}@media(min-width:641px)and (max-width:1000px){.library-page .app-header.library-header{padding-inline:24px;gap:20px}.library-page .library-header .main-nav{gap:18px}.library-page .header-search{width:44px;padding:0;justify-content:center;flex-shrink:0}.library-page .header-search span,.library-page .header-search kbd{display:none}}@media(max-width:640px){.library-page .app-header.library-header{height:60px;min-height:60px;padding:0 14px;gap:10px}.library-page .brand{gap:7px}.library-page .brand>span{font-size:27px}.library-page .brand>svg{width:27px}.library-page .library-header .main-nav,.library-page .header-actions>.logout-button{display:none}.library-page .header-actions{margin-left:0;gap:6px}.library-page .brand{margin-right:auto}.library-page .header-search{margin:0;width:44px;height:44px;padding:0;justify-content:center;border:0;background:transparent;flex-shrink:0}.library-page .profile-button{width:40px;height:40px}.mobile-library-menu{display:grid;place-items:center;width:44px;height:44px;color:#d5c2a5;border-radius:8px}.mobile-library-menu:hover{background:#d5c2a51a}.library-page .library-heading{min-height:62px;padding:12px 3px;gap:8px}.library-page .library-heading h1{font-size:20px;letter-spacing:-.6px;gap:0}.library-page .edit-title{min-height:40px}.library-page .library-heading .library-summary p{font-size:10px}.library-page .library-summary p strong{font-size:13px}.library-page .library-summary p>span{margin-inline:3px}.library-page .library-toolbar{margin:0;padding:0 0 7px;display:block}.library-page .filter-tabs{width:100%;padding:0;border:0;gap:2px;overflow-x:auto;scrollbar-width:none}.library-page .filter-tabs::-webkit-scrollbar{display:none}.library-page .filter-tabs>button{min-height:44px;padding:8px;gap:5px;flex:1 0 auto}.library-page .filter-tabs>button>svg{display:none}.library-page .toolbar-actions{display:none}.library-page .shelf-scroll{margin-top:10px}body:has(.shelf-stage.has-selection){overflow:hidden}.shelf-scroll .shelf-stage.has-selection{position:fixed;inset:0;z-index:40;width:100%!important;height:100dvh!important;max-height:none;aspect-ratio:auto;margin:0;padding:max(20px,env(safe-area-inset-top)) 20px max(20px,env(safe-area-inset-bottom));display:grid;grid-template-rows:minmax(0,1fr) auto;gap:20px;background:#191510}.has-selection .three-shelf{inset:0}.has-selection .selected-book-space{position:relative;inset:auto;grid-row:1;min-height:0;width:100%}.has-selection .book-inspector{position:relative;grid-row:2;inset:auto;width:100%;max-width:440px;max-height:none;transform:none;margin-inline:auto;overflow:visible}.has-selection .book-menu-heading{padding:14px;margin-bottom:12px;gap:12px;align-items:center}.has-selection .book-menu-heading h2{font-size:19px;line-height:1.5;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}.has-selection .book-menu-close{width:44px;height:44px}.has-selection .book-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.has-selection .book-actions>button{min-height:50px;padding:12px;gap:9px;font-size:13px;justify-content:center}.has-selection .book-actions>button svg{width:18px}.selected-book-space .fallback-selected{height:86%;width:auto;max-width:80%;aspect-ratio:2/3;top:50%;left:50%;transform:translate(-50%,-50%)}.selected-book-space .fallback-selected.face-side{width:auto;aspect-ratio:var(--surface-ratio)}.selected-book-space .fallback-selected .book-cover,.selected-book-space .fallback-selected img{width:100%;height:100%;object-fit:contain}.modal-backdrop:has(.book-dialog){padding:max(8px,env(safe-area-inset-top)) 8px max(8px,env(safe-area-inset-bottom))}.modal.book-dialog{height:calc(100dvh - max(8px,env(safe-area-inset-top)) - max(8px,env(safe-area-inset-bottom)));max-height:none;border-radius:16px}.book-dialog .book-dialog-heading{padding:16px;gap:12px}.book-dialog .book-dialog-heading h2{font-size:18px}.book-dialog .book-dialog-body{flex:1;padding:20px}.book-dialog .book-dialog-footer{padding:12px 16px}.search-input-row input{font-size:16px}}@media(max-width:640px)and (max-height:600px){.shelf-scroll .shelf-stage.has-selection{padding:10px 16px;gap:8px}.has-selection .book-menu-heading{padding:8px 12px;margin-bottom:8px}.has-selection .book-menu-heading h2{font-size:16px;-webkit-line-clamp:2}.has-selection .book-actions{gap:6px}.has-selection .book-actions>button{min-height:44px;padding:8px}}
