@font-face{font-family:LibrarySerif;src:url('assets/library/library-serif-v2.woff2') format('woff2');font-weight:200 900;font-display:swap}
#libraryRoom{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;border:0;padding:0;border-radius:0;background:#392619;color:#f7e6c2;overflow:hidden;isolation:isolate;font-family:LibrarySerif,SimSun,serif}
#libraryRoom::backdrop{background:#2b1b13}
.library-background{position:absolute;inset:0;z-index:-2;background:url('assets/library/library-background.webp') center/cover no-repeat;filter:brightness(.66) blur(1px)}
.library-veil{position:absolute;inset:0;z-index:-1;background:#1e130c18;pointer-events:none}
.library-back{position:absolute;top:2.2%;left:3.1%;display:flex;align-items:center;gap:8px;padding:4px 0;border:0;background:transparent;color:#f7e7c9;font:400 clamp(13px,1.15vw,20px)/1.5 LibrarySerif,SimSun,serif;z-index:4}
.library-back img{width:20px;height:20px}
.library-heading{position:absolute;left:7.1%;top:5.1%;right:38%;display:block;text-shadow:0 3px 18px #160b08}
.library-heading h2{font:700 clamp(45px,5vw,90px)/1.05 LibrarySerif,SimSun,serif;letter-spacing:.03em;margin:0}
.library-heading p{font:400 clamp(16px,1.65vw,29px)/1.7 LibrarySerif,SimSun,serif;letter-spacing:.09em;margin:7px 0 0}
.library-search{position:absolute;left:42.7%;top:11.3%;width:19%;height:48px;display:flex;align-items:center;gap:12px;border:1px solid #d3bc975c;border-radius:30px;background:#f4e5c010;padding:9px 16px;box-shadow:0 0 10px #29150e30;z-index:2}
.library-search img{width:22px;height:22px;flex:none;opacity:.8}
.library-search input{min-width:0;width:100%;border:0;outline:0;background:transparent;color:#fff0d3;font:400 clamp(12px,.95vw,17px)/1.6 LibrarySerif,SimSun,serif}
.library-search input::placeholder{color:#d7c5a998}
.library-search:focus-within{outline:2px solid #e3bd7a;outline-offset:3px}
.library-tabs{position:absolute;left:7%;right:38.7%;top:22%;height:48px;display:flex;align-items:start;gap:15px;border-bottom:1px solid #ba8e535c}
.library-tabs button{border:1px solid transparent;border-radius:25px;background:transparent;color:#f3dfb9;font:400 clamp(15px,1.35vw,24px)/1.4 LibrarySerif,SimSun,serif;padding:7px 27px;white-space:nowrap}
.library-tabs button[aria-pressed=true]{background:#9d67294f;border-color:#bc8c48;box-shadow:inset 0 -2px 2px #f5c56e20;color:#fff1d5}
.library-collection{position:absolute;left:4%;right:36.8%;top:28.5%;bottom:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:#cfab72 #6d482e25;padding:8px 15px 60px 0;overscroll-behavior:contain;scroll-behavior:smooth}
.library-collection::-webkit-scrollbar{width:6px}.library-collection::-webkit-scrollbar-thumb{background:#d3ac73;border-radius:8px}
.library-shelf-row{--cover-h:clamp(140px,23.4dvh,260px);position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;isolation:isolate;padding:0 clamp(30px,3.8vw,85px) 22px;gap:10px;min-height:calc(var(--cover-h) + 77px)}
.library-shelf-row:first-child{--cover-h:clamp(160px,26.6dvh,285px)}
.library-shelf-row::before{content:'';position:absolute;z-index:-1;left:0;right:0;top:calc(var(--cover-h) - 9px);height:38px;background:url('assets/library/library-shelf.webp') center/100% 950% no-repeat;pointer-events:none}
.library-book{min-width:0;border:0;padding:0 8px;background:transparent;color:#fff0d0;display:flex;align-items:center;flex-direction:column;text-align:center;cursor:pointer}
.library-cover{width:clamp(110px,12.4vw,230px);max-width:90%;height:var(--cover-h);position:relative;display:block;border-radius:3px;box-shadow:0 6px 15px #160b075e;transition:transform .22s,box-shadow .22s;flex:none}
.library-cover img{width:100%;height:100%;display:block;object-fit:fill;border-radius:3px}
.library-book[data-book=meaning] .library-cover img{object-fit:cover;object-position:center top}
.library-book:hover .library-cover{transform:translateY(-4px);box-shadow:0 7px 20px #0008,0 0 12px #edc17855}
.library-book[aria-pressed=true] .library-cover{outline:2px solid #ffdc85;outline-offset:0;box-shadow:0 0 8px #ffcf56,0 0 24px #ffb52680}
.library-book.is-flashing .library-cover{animation:library-gold-flash .8s ease-out}
@keyframes library-gold-flash{0%,50%{box-shadow:0 0 8px #fff4c9,0 0 28px #ffd467,0 0 40px #eea636b0}100%{box-shadow:0 0 8px #ffcf56,0 0 24px #ffb52680}}
.library-bookmark{display:none;position:absolute;right:4%;top:0;width:10%;height:auto;filter:drop-shadow(0 2px 2px #4b2f21)}
.library-cover .library-bookmark{display:none;height:auto;object-fit:contain;width:10%}
.library-book[aria-pressed=true] .library-bookmark{display:block}
.library-book strong{display:block;font:700 clamp(13px,1.05vw,19px)/1.55 LibrarySerif,SimSun,serif;margin-top:10px;max-width:100%;text-wrap:balance}
.library-book small{display:block;font:400 clamp(10px,.82vw,15px)/1.6 LibrarySerif,SimSun,serif;color:#e5cc9f;margin-top:1px;max-width:100%;text-wrap:balance}
.library-empty{text-align:center;line-height:1.8;padding:60px 18px;color:#f2d7a8}
.library-scroll-cue{position:absolute;left:7%;right:38.5%;bottom:1.4%;margin:0;text-align:center;font:400 clamp(12px,1.02vw,18px)/1.6 LibrarySerif,SimSun,serif;letter-spacing:.09em;color:#e3c69b;pointer-events:none;text-shadow:0 2px 7px #221208}
.library-scroll-cue[hidden]{display:none}
.library-detail{position:absolute;right:2.1%;top:6.1%;width:min(35vw,calc(93dvh / 1.5));height:93dvh;font-family:LibrarySerif,SimSun,serif;color:#56321e;filter:drop-shadow(0 9px 18px #1b0a0c40)}
.library-paper-art{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none}
.library-detail-content{position:absolute;top:15.5%;bottom:4.5%;left:14%;right:11%;overflow:auto;scrollbar-width:thin;scrollbar-color:#c39c68 transparent;padding:0 1px 4px}
.library-kicker{font:400 clamp(14px,1.1vw,19px)/1.5 LibrarySerif,SimSun,serif;margin:0 0 4px}
.library-detail h3{font:700 clamp(25px,3vw,53px)/1.25 LibrarySerif,SimSun,serif;letter-spacing:.025em;margin:0 0 7px;overflow-wrap:anywhere}
.library-detail-topics{font:400 clamp(12px,1.03vw,18px)/1.6 LibrarySerif,SimSun,serif;margin:0;color:#85582f}
.library-rule{border:0;border-top:1px solid #bc925b57;margin:27px 0 23px}
.library-invite{font:400 clamp(20px,1.8vw,31px)/1.6 LibrarySerif,SimSun,serif;margin:0 0 17px;letter-spacing:.04em}
.library-people{display:grid;gap:17px}
.library-person{position:relative;display:flex;align-items:center;gap:18px;min-height:clamp(92px,14dvh,140px);padding:9px 36px 9px 12px;border:1px solid #c39c6a46;border-radius:16px;background:#fff8e329;cursor:pointer;transition:border-color .2s,box-shadow .2s,background .2s}
.library-person.is-selected{border-color:#bf842d;box-shadow:0 2px 5px #a06a3438;background:#fff3d743}
.library-person img{width:clamp(66px,7.1vw,120px);height:clamp(66px,7.1vw,120px);border-radius:50%;object-fit:cover;flex:none}
.library-person strong{display:block;font:700 clamp(20px,1.8vw,31px)/1.3 LibrarySerif,SimSun,serif;margin-bottom:5px}
.library-person span span{font:400 clamp(12px,1.03vw,18px)/1.5 LibrarySerif,SimSun,serif;color:#8a5f37;display:block}
.library-person input{position:absolute;right:14px;top:31%;width:21px;height:21px;margin:0;accent-color:#bd8437;cursor:pointer}
.library-start{display:flex;align-items:center;justify-content:center;gap:22px;width:100%;margin-top:18px;min-height:54px;padding:10px 16px;border:1px solid #774315;border-radius:30px;background:#875021;color:#fff1ce;font:400 clamp(18px,1.4vw,24px)/1.4 LibrarySerif,SimSun,serif;cursor:pointer}
.library-start img{width:25px;height:25px}
.library-start:hover{background:#9a602b;box-shadow:0 0 14px #b77c3930}
.library-intro{font:400 clamp(12px,1vw,17px)/1.6 LibrarySerif,SimSun,serif;color:#83532e;text-align:center;margin:7px 0 0}
.library-intro summary{cursor:pointer;text-decoration:underline;text-underline-offset:4px;list-style:none}
.library-intro p{font-family:LibrarySerif,SimSun,serif;font-size:14px;line-height:1.9;text-align:left;background:#fff5dd99;padding:10px;border-radius:8px}
.library-disclaimer{font:400 clamp(11px,.82vw,14px)/1.6 LibrarySerif,SimSun,serif;color:#98784d;text-align:center;margin:25px 0 0}
#libraryRoom button:focus-visible,#libraryRoom input:focus-visible,.library-person:focus-within{outline:2px solid #efc66f;outline-offset:4px}
#libraryChat{width:min(760px,93vw);height:min(800px,90dvh);max-height:93dvh;border:1px solid #bc945a;border-radius:22px;padding:25px;background:#f6e7cb;color:#54331e;overflow:hidden;font-family:LibrarySerif,SimSun,serif}
#libraryChat::backdrop{background:#1c110caa;backdrop-filter:blur(4px)}
.library-chat-layout{height:100%;display:flex;flex-direction:column;gap:13px}
.library-chat-head{display:flex;align-items:center;gap:14px;flex:none}.library-chat-head img{width:60px;height:60px;object-fit:cover;border-radius:50%}.library-chat-head h3{margin:0;font-size:25px}.library-chat-head p{margin:4px 0 0;font-size:12px;line-height:1.6;color:#886540}
.library-chat-back{margin-left:auto;align-self:start;background:transparent;border:1px solid #bb9565;border-radius:18px;padding:7px 12px;color:#79522e;white-space:nowrap;font-size:12px}
.library-chat-log{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:12px 5px;scrollbar-width:thin;scrollbar-color:#bd945e transparent}
.library-chat-message{max-width:90%;background:#fffbf0;border:1px solid #d6bb9466;border-radius:14px;padding:12px 16px;margin:0 0 13px;font:16px/1.9 LibrarySerif,SimSun,serif;white-space:pre-wrap;overflow-wrap:anywhere}
.library-chat-message.me{background:#e6d0a8;margin-left:auto;color:#563919}
.library-chat-options{display:flex;flex-wrap:wrap;gap:7px;flex:none}.library-chat-options button{border:1px solid #c3a074;background:#fff7e6;border-radius:20px;padding:7px 13px;color:#79502b;font:13px/1.6 LibrarySerif,SimSun,serif}
.library-chat-form{display:flex;gap:10px;align-items:end;flex:none}.library-chat-form textarea{resize:none;min-height:60px;max-height:110px;flex:1;min-width:0;border:1px solid #c6a677;background:#fffbf1;color:#50301c;border-radius:12px;padding:10px 12px;font:15px/1.7 LibrarySerif,SimSun,serif}
.library-chat-form button{border:1px solid #86501f;border-radius:20px;padding:10px 20px;background:#875021;color:#fff1d0;min-height:43px}
.library-chat-save{display:flex;align-items:center;gap:10px;flex:none;font:12px/1.5 sans-serif;color:#876541}.library-chat-save button{border:0;background:transparent;color:#80542d;text-decoration:underline;padding:3px;white-space:nowrap}
@media(min-width:701px) and (max-height:720px){.library-heading{top:6%}.library-heading h2{font-size:clamp(40px,4.6vw,68px)}.library-heading p{font-size:clamp(15px,1.5vw,22px)}.library-search{height:38px;top:11%}.library-tabs{top:22%;height:40px}.library-tabs button{font-size:16px;padding:5px 20px}.library-collection{top:30%}.library-detail{height:91dvh;width:33%;right:2.7%}.library-detail-content{top:14.7%;bottom:4%}.library-kicker{font-size:13px;margin-bottom:5px}.library-detail h3{font-size:31px}.library-detail-topics{font-size:12px}.library-rule{margin:15px 0}.library-invite{font-size:20px;margin-bottom:10px}.library-person{min-height:84px;gap:10px;padding-left:8px}.library-person img{width:66px;height:66px}.library-person strong{font-size:22px}.library-person span span{font-size:12px}.library-people{gap:10px}.library-start{min-height:40px;margin-top:12px;font-size:17px}.library-disclaimer{font-size:10px;margin-top:12px}.library-intro{font-size:12px}.library-person input{right:10px;width:17px;height:17px}}
@media(min-width:701px) and (max-width:1100px) and (min-height:721px){.library-heading{right:45%;left:5%;top:7%}.library-heading h2{font-size:50px}.library-heading p{font-size:16px}.library-search{left:5%;top:20%;width:48%;height:40px}.library-tabs{left:4%;right:46%;top:27%;gap:0}.library-tabs button{padding:7px 10px;font-size:15px}.library-collection{left:2%;right:43.5%;top:34%}.library-shelf-row{grid-template-columns:repeat(2,minmax(0,1fr));padding-inline:4px;--cover-h:190px!important}.library-cover{width:145px}.library-detail{right:2%;top:24%;width:40%;height:min(72dvh,780px)}.library-detail h3{font-size:28px}.library-invite{font-size:19px}.library-rule{margin:17px 0}.library-person{gap:8px;min-height:90px;padding-right:30px}.library-person img{width:63px;height:63px}.library-person strong{font-size:21px}.library-person span span{font-size:12px}.library-start{font-size:17px;min-height:43px}.library-disclaimer{margin-top:13px}.library-scroll-cue{right:45%}}
@media(max-width:700px){#libraryRoom{overflow-y:auto}.library-background{position:fixed;background-position:40% center}.library-back{position:relative;top:auto;left:auto;margin:19px 22px 0;font-size:14px}.library-heading{position:relative;inset:auto;margin:24px 23px 15px;text-align:left}.library-heading h2{font-size:48px;letter-spacing:.04em}.library-heading p{font-size:16px;margin-top:8px;letter-spacing:.03em}.library-search{position:relative;inset:auto;width:calc(100% - 46px);height:42px;margin:18px 23px}.library-tabs{position:relative;inset:auto;margin:0 23px;height:44px;gap:3px}.library-tabs button{font-size:15px;padding:7px 17px}.library-collection{position:relative;inset:auto;max-height:54dvh;margin:15px 10px 0;padding-right:8px;padding-bottom:20px}.library-shelf-row{grid-template-columns:repeat(2,minmax(0,1fr));--cover-h:180px!important;gap:8px;min-height:250px;padding:0 8px 18px}.library-cover{width:132px;max-width:87%}.library-book strong{font-size:14px}.library-book small{font-size:10px}.library-shelf-row::before{height:29px;top:171px}.library-scroll-cue{display:none}.library-detail{position:relative;inset:auto;width:min(94%,540px);height:auto;aspect-ratio:1007/1562;margin:2px auto 25px;scroll-margin-top:10px}.library-detail-content{top:15%;left:11%;right:8%}.library-kicker{font-size:13px;margin-bottom:7px}.library-detail h3{font-size:31px}.library-detail-topics{font-size:12px}.library-rule{margin:18px 0}.library-invite{font-size:21px;margin-bottom:13px}.library-people{gap:12px}.library-person{min-height:90px;gap:10px;padding-right:30px}.library-person img{width:70px;height:70px}.library-person strong{font-size:22px}.library-person span span{font-size:12px}.library-person input{right:10px;width:17px;height:17px}.library-start{min-height:43px;margin-top:14px;font-size:18px}.library-intro{font-size:12px}.library-disclaimer{font-size:10px;margin-top:15px}#libraryChat{padding:17px;height:92dvh}.library-chat-head h3{font-size:21px}.library-chat-head img{width:47px;height:47px}.library-chat-message{font-size:14px;max-width:95%}.library-chat-options button{font-size:12px}.library-chat-form button{padding:9px 14px}.library-chat-save{align-items:start}}
@media(max-width:350px){.library-heading h2{font-size:42px}.library-heading p{font-size:14px}.library-tabs button{font-size:13px;padding:7px 12px}.library-detail h3{font-size:26px}.library-rule{margin:13px 0}.library-invite{font-size:18px}.library-person{min-height:76px;padding:7px 28px 7px 6px;gap:7px}.library-person img{width:56px;height:56px}.library-person strong{font-size:20px}.library-person span span{font-size:11px}.library-people{gap:8px}.library-start{font-size:16px;margin-top:10px}.library-disclaimer{margin-top:10px}}
@media(prefers-reduced-motion:reduce){.library-book.is-flashing .library-cover{animation:none}.library-cover,.library-person{transition:none}.library-collection{scroll-behavior:auto}}

.library-start img{transform:rotate(180deg)}

#libraryHeading:focus{outline:none}.library-person img{transform:scale(1.12)}
.library-book[data-book=compassion] .library-cover img{object-fit:cover;object-position:center 30%}
.library-book[data-book=compassion] .library-cover .library-bookmark{object-fit:contain}
.library-person input{opacity:0}
.library-person::after{content:'';position:absolute;right:14px;top:31%;width:22px;height:22px;background:url('assets/library/circle.svg') center/contain no-repeat;pointer-events:none}
.library-person.is-selected::after{background-image:url('assets/library/check-circle-fill.svg')}
@media(max-width:1100px){.library-person::after{right:10px;width:18px;height:18px}}

.library-foreground{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;z-index:2;pointer-events:none}
@media(max-width:1100px){.library-foreground{display:none}}
