:root{--library-cream:#f4e4c3;--library-muted:#c9ad86;--library-ink:#2d190f;--library-gold:#c89550}
.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}
.library-body{min-height:100vh;color:var(--library-cream);background:#1d0e09;font-family:Outfit,"Noto Sans SC",system-ui,sans-serif}
.library-background{position:fixed;inset:0;z-index:-2;background:url('../media/library-bg.jpg') center/cover no-repeat}
.library-background:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(19,8,5,.58),rgba(19,8,5,.16) 58%,rgba(19,8,5,.46)),linear-gradient(180deg,rgba(14,6,4,.28),transparent 30%,rgba(14,6,4,.32))}
.library-topbar{height:68px;padding:0 clamp(18px,4vw,66px);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;color:#fff1d2;background:linear-gradient(180deg,rgba(22,9,5,.86),rgba(22,9,5,.44));border-bottom:1px solid rgba(255,226,178,.2);position:relative;z-index:5;text-shadow:0 2px 5px #160702}
.library-brand,.library-back{color:inherit;text-decoration:none;font-size:.875rem;font-weight:800;letter-spacing:.04em}.library-brand span{color:#efba64;margin-right:7px}.library-back{justify-self:end}
.library-status{margin:0;display:flex;align-items:center;gap:9px;font-size:.75rem;letter-spacing:.16em}.library-status b{display:grid;place-items:center;min-width:32px;height:25px;padding:0 7px;border:1px solid rgba(255,235,198,.5);border-radius:99px}
.library-shell{width:min(1510px,calc(100% - 48px));height:calc(100vh - 112px);min-height:600px;margin:22px auto;display:grid;grid-template-columns:280px minmax(0,1fr);border:1px solid rgba(255,226,176,.25);box-shadow:0 30px 80px rgba(10,3,1,.56);background:rgba(34,16,9,.6);backdrop-filter:blur(12px)}
.library-sidebar{min-height:0;padding:30px 24px;background:linear-gradient(180deg,rgba(38,18,10,.94),rgba(28,12,7,.91));border-right:1px solid rgba(255,222,169,.2);display:flex;flex-direction:column}
.library-title{padding:0 8px 24px;border-bottom:1px solid rgba(255,226,181,.2)}.library-title p,.library-collection__head p{margin:0;color:#d4ad70;font-size:.75rem;font-weight:900;letter-spacing:.17em}.library-title h1{margin:9px 0 8px;font-family:"Noto Serif SC",serif;font-size:2.7rem;line-height:1.08;letter-spacing:-.06em}.library-title span{color:var(--library-muted);font-size:.875rem}
.library-categories{padding-top:15px;overflow:auto;scrollbar-width:thin;scrollbar-color:#9f7044 transparent}.library-categories>p{margin:18px 11px 7px;color:#a9845e;font-size:.75rem;font-weight:800;letter-spacing:.16em}
.library-category{width:100%;min-height:44px;padding:7px 9px;border:1px solid transparent;border-radius:3px;background:transparent;color:#e7d3af;display:flex;align-items:center;justify-content:space-between;gap:10px;font:700 .875rem/1.3 inherit;cursor:pointer;text-align:left;transition:.18s}.library-category:hover{background:rgba(255,232,191,.08)}.library-category.is-active{border-color:rgba(235,189,119,.48);background:linear-gradient(90deg,rgba(199,142,74,.24),rgba(199,142,74,.06));color:#fff2d4;box-shadow:inset 3px 0 #d59a4e}.library-category>span{display:flex;align-items:center;gap:10px}.library-category i{width:29px;height:29px;border:1px solid rgba(236,202,148,.3);border-radius:50%;display:grid;place-items:center;color:#d8ae70;font-size:.75rem;font-style:normal}.library-category:first-child i{width:auto;border:0;border-radius:0;font-size:.625rem;letter-spacing:.08em}.library-category b{min-width:26px;height:23px;padding:0 6px;border-radius:99px;background:rgba(255,236,203,.09);display:grid;place-items:center;color:#cdb28b;font-size:.75rem}
.library-collection{min-width:0;min-height:0;padding:30px 34px 0;background:linear-gradient(180deg,rgba(40,21,13,.69),rgba(29,13,8,.81));display:flex;flex-direction:column}.library-collection__head{display:flex;justify-content:space-between;align-items:end;padding:0 5px 20px;border-bottom:1px solid rgba(255,225,178,.17)}.library-collection__head h2{margin:6px 0 0;font-family:"Noto Serif SC",serif;font-size:1.9rem}.library-collection__head>span{color:var(--library-muted);font-size:.875rem}.library-collection__head>span b{color:#f0c37d;font-size:1.4rem;margin-right:4px}
.library-search{height:52px;margin:18px 5px 0;padding:0 8px 0 16px;display:flex;align-items:center;gap:11px;border:1px solid rgba(241,202,139,.28);background:rgba(13,6,3,.38);box-shadow:inset 0 1px rgba(255,255,255,.04);transition:.18s}.library-search:focus-within{border-color:#daa45d;box-shadow:0 0 0 3px rgba(218,164,93,.13)}.library-search label{color:#dfb36f;font-size:1.5rem;line-height:1}.library-search input{min-width:0;flex:1;border:0;outline:0;background:transparent;color:#fff3dc;font:600 .95rem/1.4 inherit}.library-search input::placeholder{color:#aa9275}.library-search kbd{padding:3px 8px;border:1px solid rgba(239,207,157,.24);border-bottom-color:rgba(239,207,157,.4);border-radius:4px;color:#a99070;background:rgba(255,255,255,.05);font:700 .75rem/1.3 inherit}.library-search button{height:34px;padding:0 11px;border:0;border-radius:3px;color:#efd6ad;background:rgba(214,159,86,.17);font:700 .8rem/1 inherit;cursor:pointer}.library-search button:hover{background:rgba(214,159,86,.27)}
.book-grid{min-height:0;overflow:auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));align-content:start;gap:30px 24px;padding:28px 6px 54px;scrollbar-width:thin;scrollbar-color:#b98349 rgba(255,255,255,.05);background:repeating-linear-gradient(180deg,transparent 0,transparent 307px,rgba(9,3,1,.55) 308px,rgba(165,105,53,.34) 312px,rgba(17,7,3,.7) 322px)}
.book-card{min-width:0;padding:0;border:0;background:transparent;color:var(--library-cream);font:inherit;text-align:left;cursor:pointer;transition:.2s}.book-card:hover,.book-card:focus-visible{transform:translateY(-7px)}.book-card:focus-visible{outline:3px solid #efbe6f;outline-offset:6px}
.book-cover{--cover-accent:#8b6241;position:relative;display:block;width:100%;aspect-ratio:3/4;border:1px solid rgba(255,226,174,.32);border-radius:2px 6px 6px 2px;overflow:hidden;background:linear-gradient(135deg,color-mix(in srgb,var(--cover-accent) 78%,#1c0b06),color-mix(in srgb,var(--cover-accent) 35%,#100604));box-shadow:-7px 8px 0 rgba(14,5,2,.45),0 16px 24px rgba(8,2,0,.37),inset 8px 0 0 rgba(255,221,166,.08);isolation:isolate}
.book-cover:before{content:"";position:absolute;inset:9px 8px 9px 13px;z-index:1;border:1px solid rgba(255,224,172,.38);box-shadow:inset 0 0 0 3px rgba(20,7,3,.18);pointer-events:none}.book-cover:after{content:"";position:absolute;z-index:2;left:7px;top:0;bottom:0;width:2px;background:rgba(255,225,177,.25);box-shadow:4px 0 7px rgba(10,3,1,.55);pointer-events:none}.book-cover>img{position:absolute;inset:0;z-index:3;width:100%;height:100%;object-fit:cover}.book-cover>img:not([src]),.book-cover>img[src=""]{display:none}.book-cover>img:not([src])+.book-cover__generated,.book-cover>img[src=""]+.book-cover__generated{display:flex}
.book-cover__generated{position:absolute;inset:0;z-index:1;padding:22px 18px 20px;display:none;flex-direction:column;text-align:center;align-items:center;color:#fff0cd}.book-cover__number{align-self:flex-end;color:rgba(255,235,196,.68);font-size:.75rem;font-style:normal;letter-spacing:.12em}.book-cover__generated strong{margin:auto 0;font-family:"Noto Serif SC",serif;font-size:clamp(1rem,1.45vw,1.25rem);line-height:1.65;text-shadow:0 2px 4px rgba(13,3,0,.65)}.book-cover__generated strong:before,.book-cover__generated strong:after{content:"";display:block;width:30px;height:1px;margin:12px auto;background:rgba(255,230,180,.6)}.book-cover__generated small{font-size:.75rem;font-weight:800;letter-spacing:.13em;color:#f0c986}.book-cover__shine{position:absolute;inset:0;z-index:4;background:linear-gradient(112deg,rgba(255,255,255,.13),transparent 28%,transparent 72%,rgba(0,0,0,.12));pointer-events:none}
.book-card__info{display:block;padding:15px 3px 0}.book-card__info>strong{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-family:"Noto Serif SC",serif;font-size:1rem}.book-card__info>span{display:flex;justify-content:space-between;gap:8px;margin-top:7px;color:#c3a985;font-size:.75rem}.book-card__info i{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-style:normal}.book-card__category{color:#e3b66f}
.library-empty{margin:auto;text-align:center;color:#d1b48c}.library-empty>span{font-size:2.2rem}.library-empty h3{font-family:"Noto Serif SC",serif;font-size:1.25rem}.library-empty p{font-size:.875rem}
.book-reader{width:min(1120px,calc(100% - 34px));height:min(780px,calc(100vh - 34px));max-width:none;max-height:none;padding:0;border:1px solid rgba(255,229,188,.38);color:var(--library-ink);background:#ead9b6;box-shadow:0 35px 110px rgba(10,3,0,.88);overflow:hidden}.book-reader[open]{display:grid;grid-template-rows:auto minmax(0,1fr)}.book-reader::backdrop{background:rgba(10,4,2,.84);backdrop-filter:blur(8px)}.book-reader__bar{min-height:84px;padding:17px 72px 16px 34px;display:flex;align-items:center;border-bottom:1px solid rgba(83,45,24,.23);background:linear-gradient(180deg,#f1e3c5,#e2cca1)}.book-reader__bar>div{min-width:0}.book-reader__bar h2{margin:4px 0 0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-family:"Noto Serif SC",serif;font-size:clamp(1.35rem,3vw,2rem);line-height:1.25}.book-detail__category{margin:0;color:#8b4c25;font-size:.72rem;font-weight:900;letter-spacing:.14em}.book-detail__close{position:absolute;z-index:7;right:18px;top:17px;width:46px;height:46px;border:1px solid rgba(85,48,26,.2);border-radius:50%;background:rgba(255,255,255,.18);color:#4d2a17;font-size:1.8rem;cursor:pointer}.book-detail__close:hover{background:rgba(255,255,255,.42)}.book-reader__body{min-height:0;display:grid;grid-template-columns:250px minmax(0,1fr)}.book-reader__intro{padding:32px 30px;border-right:1px solid rgba(79,42,22,.18);background:rgba(111,69,37,.07);overflow:auto}.book-detail__cover{width:174px;margin:0 auto 24px}.book-detail__byline{margin:0 0 20px;text-align:center;color:#75583f;font-size:.84rem}.book-reader dl{display:grid;grid-template-columns:auto 1fr;gap:9px 15px;margin:0;padding:17px 0;border-block:1px solid rgba(91,51,25,.2);font-size:.82rem}.book-reader dt{color:#87674c}.book-reader dd{margin:0;text-align:right;font-weight:800}.book-reader__page{min-width:0;padding:42px clamp(34px,6vw,76px) 64px;overflow:auto;background:linear-gradient(90deg,rgba(109,71,38,.07),transparent 18px),#f5ead0;box-shadow:inset 10px 0 25px rgba(80,46,25,.06);scrollbar-width:thin;scrollbar-color:#a47b50 transparent}.book-detail__summary{margin:0 0 28px;padding:0 0 26px;border-bottom:1px solid rgba(92,55,30,.18);color:#70503a;font:700 1rem/1.9 "Noto Serif SC",serif}.book-detail__text{color:#342218;font:1.08rem/2.05 "Noto Serif SC",serif}.book-detail__text p{margin:0 0 1.45em;text-align:justify}.book-detail__action{display:inline-flex;align-items:center;justify-content:center;margin-top:24px;padding:12px 22px;border:1px solid #6b3b21;background:#67371e;color:#fff1d4;text-decoration:none;font-size:.875rem;font-weight:900;transition:.18s}.book-detail__action:hover{background:#4d2715;transform:translateY(-1px)}
@media(max-width:1100px){.library-shell{grid-template-columns:245px minmax(0,1fr)}.library-sidebar{padding-inline:18px}.book-grid{grid-template-columns:repeat(auto-fill,minmax(135px,1fr));gap-inline:19px}.library-collection{padding-inline:24px}}
@media(max-width:760px){.library-topbar{grid-template-columns:1fr auto}.library-status{display:none}.library-shell{width:calc(100% - 24px);height:auto;min-height:calc(100vh - 92px);margin:12px auto;grid-template-columns:1fr}.library-sidebar{padding:20px 16px 13px;border-right:0;border-bottom:1px solid rgba(255,222,169,.2)}.library-title{padding:0 4px 16px}.library-title h1{font-size:2rem}.library-categories{display:flex;gap:7px;padding-top:13px;overflow-x:auto}.library-categories>p{display:none}.library-category{width:auto;min-width:max-content;min-height:40px;padding:6px 10px}.library-category>span{gap:7px}.library-category i{width:26px;height:26px}.library-category b{min-width:23px}.library-collection{padding:22px 18px 0;min-height:600px}.library-search{margin-top:14px}.book-grid{overflow:visible;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 18px;background:repeating-linear-gradient(180deg,transparent 0,transparent 318px,rgba(9,3,1,.55) 319px,rgba(165,105,53,.34) 323px,rgba(17,7,3,.7) 333px)}.book-reader{width:calc(100% - 18px);height:calc(100vh - 18px)}.book-reader__bar{min-height:72px;padding:13px 64px 12px 20px}.book-detail__close{right:12px;top:12px;width:42px;height:42px}.book-reader__body{display:block;overflow:auto}.book-reader__intro{display:grid;grid-template-columns:110px 1fr;gap:18px;padding:22px;border-right:0;border-bottom:1px solid rgba(79,42,22,.18);overflow:visible}.book-detail__cover{width:110px;margin:0;grid-row:1/3}.book-detail__byline{text-align:left;align-self:end;margin:0}.book-reader dl{align-self:start}.book-reader__page{padding:30px 24px 50px;overflow:visible}.book-detail__text{font-size:1rem;line-height:1.95}}
@media(max-width:520px){.library-back{font-size:0}.library-back:after{content:"← 大厅";font-size:.8rem}.library-topbar{padding-inline:15px}.library-brand{font-size:.8rem}.library-collection__head h2{font-size:1.45rem}.library-search kbd{display:none}.book-card__info>span{display:block}.book-card__author{display:none}.book-reader__intro{grid-template-columns:88px 1fr;padding:18px}.book-detail__cover{width:88px}.book-reader dl{font-size:.75rem}.book-reader__page{padding:27px 21px 48px}.book-detail__summary{font-size:.92rem}}
