/* This window shows the existing nook at its original proportions. No artwork
   is regenerated, stitched, or downloaded separately for the library. */
.library-entrance[hidden]{display:none}
.library-entrance{border-radius:48% 48% 25% 25%}
.nook-light{position:absolute;left:47%;top:20%;width:36%;aspect-ratio:1;background:radial-gradient(circle,#ffcf6666,transparent 68%);border-radius:50%;pointer-events:none;animation:nook-glow 9s ease-in-out infinite}
.library-dialog{width:min(1120px,96vw);max-width:calc(100vw - 16px);height:min(820px,92svh);max-height:calc(100svh - 16px);padding:0;border:1px solid #8e713e;border-radius:26px;background:radial-gradient(ellipse at 12% 30%,#64401f44,transparent 55%),#121b15;color:#fff0ce;overflow:hidden;box-shadow:0 24px 100px #000c}
.library-dialog[open]{display:flex;flex-direction:column;animation:nook-enter .5s cubic-bezier(.2,.7,.2,1) both}
.library-dialog .dialog-heading{flex:0 0 auto;gap:16px;margin:0;padding:20px 26px;border-bottom:1px solid #c5a16535;background:#171e15}
.library-dialog h2{font:400 clamp(25px,3.5vw,38px)/1.3 Kaushan,cursive;color:#ffdc94}
.library-exit.close{display:flex;align-items:center;gap:8px;width:auto;height:auto;min-height:44px;padding:9px 14px;border:1px solid #b99b6266;border-radius:12px;background:#322c20;font:16px/1.4 system-ui;color:#ffedc4}
.library-exit:hover{background:#49402c}
.library-interior{display:grid;grid-template-columns:minmax(210px,28%) minmax(0,1fr);flex:1;min-height:0}
.library-welcome{padding:22px 18px;background:linear-gradient(140deg,#66431a2b,#07150d99);border-right:1px solid #b99b6229;overflow:auto}
.library-nook-view{position:relative;width:100%;aspect-ratio:360/400;background-image:url('/assets/bear-woodland.webp');background-size:426.6667% 256%;background-position:0% 32.0513%;border-radius:48% 48% 20% 20%;overflow:hidden;mask-image:radial-gradient(ellipse at 50% 45%,#000 49%,#000d 62%,transparent 76%)}
.nook-lantern{position:absolute;left:53%;top:23%;width:23%;aspect-ratio:1;background:radial-gradient(circle,#ffe9a44d,transparent 70%);mix-blend-mode:screen;animation:nook-glow 9s ease-in-out infinite;pointer-events:none}
.library-welcome-copy{padding:0 6px}
.library-owner{font-size:16px;font-weight:650;color:#ffdda0;margin:15px 0 8px;overflow-wrap:anywhere}
.library-status{font-size:16px;color:#e1d4b7;line-height:1.5;margin:0}
.library-invitation{font:400 23px/1.4 Kaushan,cursive;color:#ffe4af;margin:22px 0 10px}
.library-sleeping{font-size:14px;line-height:1.6;color:#b6baa6;margin:0}
.library-shelves{min-height:0;overflow:auto;overscroll-behavior:contain;padding:24px clamp(16px,3vw,34px) 32px;scrollbar-color:#987a49 #111b15;scrollbar-width:thin;background:radial-gradient(ellipse at top,#91712f20,transparent 65%)}
.library-books{--book-height:clamp(145px,18vw,232px);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 0;padding:0}
.library-book{position:relative;min-width:0;gap:8px;align-items:center;justify-content:flex-start;padding:0 12px 16px;background:none;border:0;border-bottom:12px solid #6f4d2c;border-radius:0;box-shadow:0 8px 6px -5px #000d;transition:background .2s;isolation:isolate}
.library-book::after{content:"";position:absolute;bottom:-12px;height:12px;left:0;right:0;background:linear-gradient(#bb8c484d,#2e1c1355);pointer-events:none}
.library-book img{height:var(--book-height);width:auto;max-width:100%;aspect-ratio:2/3;object-fit:contain;border-radius:2px 5px 5px 2px;box-shadow:3px 1px 0 #c4b18a,6px 5px 10px #0009;transition:transform .2s,filter .2s}
.library-book strong{font-size:15px;line-height:1.4;text-align:center;color:#f7e9c9;width:100%;margin-top:4px;overflow-wrap:anywhere}
.library-book small{font-size:14px;line-height:1.4;text-align:center;color:#cbd4ab}
.library-book.locked{opacity:1}
.library-book.locked img{filter:grayscale(1) brightness(.24);box-shadow:3px 1px 0 #575a4e,6px 5px 10px #0009}
.library-book.locked strong{color:#b2b6a6}
.library-book.locked small{color:#9ba891}
.library-book[href]:hover{transform:none;background:#ba99420d}
.library-book[href]:is(:hover,:focus-visible) img{transform:translateY(-5px);filter:brightness(1.08)}
.library-book:focus-visible,.library-exit:focus-visible{outline:3px solid #ffe1a0;outline-offset:4px}
.library-availability{font-size:14px;line-height:1.6;color:#dfd0ac;margin-top:26px}
@keyframes nook-enter{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}
@keyframes nook-glow{0%,100%{opacity:.4}50%{opacity:.85}}
.paused .library-dialog[open]{animation:none}
@media(max-width:700px){
 .library-dialog{height:94svh;border-radius:18px}
 .library-dialog .dialog-heading{padding:14px 16px;gap:10px}
 .library-dialog h2{font-size:25px}
 .library-exit.close{font-size:14px;padding:8px 10px}
 .library-interior{display:flex;flex-direction:column}
 .library-welcome{flex:0 0 auto;display:grid;grid-template-columns:94px 1fr;gap:12px;padding:10px 16px;border-right:0;border-bottom:1px solid #b99b6229;overflow:visible}
 .library-welcome-copy{align-self:center;padding:0}
 .library-owner{margin:0 0 4px;font-size:14px}
 .library-status{font-size:14px}
 .library-invitation{font-size:19px;margin:6px 0 0}
 .library-sleeping{display:none}
 .library-shelves{padding:22px 16px 28px;flex:1}
 .library-books{--book-height:clamp(145px,38vw,210px);grid-template-columns:repeat(2,minmax(0,1fr));gap:28px 0}
 .library-book{padding-inline:12px}
}
@media(max-height:500px) and (min-width:701px){.library-welcome{padding:12px}.library-nook-view{width:135px;margin:auto}.library-invitation{margin:10px 0}.library-dialog .dialog-heading{padding:10px 22px}.library-dialog h2{font-size:26px}}
@media(prefers-reduced-motion:reduce){.library-dialog[open],.nook-light,.nook-lantern{animation:none}}
.library-dialog .library-books[hidden],.library-clue[hidden]{display:none!important}
.library-book.locked{cursor:pointer;font:inherit;color:inherit}
.library-book.locked:is(:hover,:focus-visible){background:#ba994214}
.library-clue{max-width:580px;margin:16px auto;padding:24px;border:1px solid #b99b6266;border-radius:16px;background:#1c291d}
.library-clue h3{font-size:24px;line-height:1.3;color:#ffe1a0;margin:0 0 16px}
.library-clue p{font-size:18px;line-height:1.6;margin:0 0 24px}
.library-clue-actions{display:flex;flex-wrap:wrap;gap:12px}
.library-clue-actions a,.library-clue-actions button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 14px;border:1px solid #b99b6288;border-radius:10px;background:#322c20;color:#ffedc4;text-decoration:none;font:inherit;cursor:pointer}
.library-clue-actions :focus-visible,.library-availability a:focus-visible{outline:3px solid #ffe1a0;outline-offset:3px}
