:root{--paper: #EFEAE0;--paper-2: #F7F4EC;--wood: #8A6A45;--wood-dark: #6B5033;--ink: #221D16;--ink-soft: #6B6153;--ink-faint: #9C9384;--line: rgba(34, 29, 22, .1);--reading: #B0812C;--done: #4E6B4F;--serif: "Songti SC", "STSong", Georgia, "Times New Roman", serif;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--ease: cubic-bezier(.32, .72, 0, 1)}*{box-sizing:border-box}html,body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}body{background-image:radial-gradient(circle at 18% 12%,rgba(255,255,255,.55),transparent 42%),radial-gradient(circle at 82% 78%,rgba(138,106,69,.07),transparent 48%)}.wrap{max-width:1180px;margin:0 auto;padding:40px 28px 80px}.head{margin-bottom:30px}.head h1{font-family:var(--serif);font-size:30px;font-weight:600;letter-spacing:.12em;margin:0 0 8px}.head .sub{font-size:12.5px;color:var(--ink-soft);letter-spacing:.04em}.head .sub b{color:var(--ink);font-weight:600}.filters{display:flex;flex-wrap:wrap;gap:7px;margin:22px 0 8px;align-items:center}.chip{font:inherit;font-size:12px;letter-spacing:.03em;padding:5px 13px;border-radius:999px;border:1px solid var(--line);background:transparent;color:var(--ink-soft);cursor:pointer;transition:all .2s var(--ease)}.chip:hover{border-color:#221d1642;color:var(--ink)}.chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--paper-2)}.chip .n{opacity:.5;margin-left:5px;font-size:11px}.shelf{margin:34px 0 0}.shelf-head{display:flex;align-items:baseline;gap:12px;margin-bottom:12px}.shelf-head .zh{font-family:var(--serif);font-size:17px;letter-spacing:.1em;font-weight:600}.shelf-head .en{font-size:11px;font-style:italic;color:var(--ink-faint);letter-spacing:.06em}.shelf-head .cnt{margin-left:auto;font-size:11.5px;color:var(--ink-soft);font-variant-numeric:tabular-nums}.rail-outer{position:relative}.rail{display:flex;gap:20px;overflow-x:auto;overflow-y:hidden;padding:6px 2px 20px;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:rgba(34,29,22,.18) transparent}.rail::-webkit-scrollbar{height:6px}.rail::-webkit-scrollbar-thumb{background:#221d1629;border-radius:3px}.rail::-webkit-scrollbar-track{background:transparent}.plank{height:9px;border-radius:2px;background:linear-gradient(180deg,var(--wood) 0%,var(--wood-dark) 62%,#55401f 100%);box-shadow:0 6px 14px #221d1633,inset 0 1px #ffffff29}.book{flex:0 0 auto;width:116px;scroll-snap-align:start;background:none;border:0;padding:0;cursor:pointer;text-align:left;font:inherit;color:inherit;transition:transform .26s var(--ease),opacity .22s var(--ease)}.book:hover{transform:translateY(-7px)}.book:focus-visible{outline:2px solid var(--reading);outline-offset:4px;border-radius:3px}.book.dim{opacity:.2}.cover{position:relative;width:116px;height:168px;border-radius:2px 4px 4px 2px;overflow:hidden;background:linear-gradient(135deg,#d9d0c0,#c3b79f);box-shadow:0 3px 10px #221d1633,0 10px 22px #221d1621}.cover img{width:100%;height:100%;object-fit:cover;display:block}.cover:after{content:"";position:absolute;inset:0 auto 0 0;width:7px;background:linear-gradient(90deg,rgba(0,0,0,.3),rgba(0,0,0,.05) 62%,transparent);pointer-events:none}.cover .ph{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:14px 10px;font-family:var(--serif);font-size:13px;line-height:1.5;text-align:center;color:#5a4b37;letter-spacing:.06em}.badge{position:absolute;top:7px;right:7px;z-index:2;font-size:10px;line-height:1;padding:4px 7px;border-radius:999px;color:#fff;letter-spacing:.05em;box-shadow:0 1px 4px #0000004d}.badge.reading{background:var(--reading)}.badge.done{background:var(--done)}.book .meta{padding:9px 1px 0}.book .t{font-size:12.5px;line-height:1.4;font-weight:600;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.book .a{font-size:11px;color:var(--ink-faint);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.book.done .t{color:var(--ink-soft)}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#1c17116b;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:24px;z-index:40;animation:fade .2s var(--ease)}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(14px) scale(.985)}}.sheet{background:var(--paper-2);border-radius:6px;max-width:560px;width:100%;max-height:88vh;overflow-y:auto;padding:30px 32px 26px;box-shadow:0 24px 70px #1c171157;animation:rise .3s var(--ease);position:relative}.sheet .x{position:absolute;top:16px;right:16px;border:0;background:none;font-size:20px;line-height:1;color:var(--ink-faint);cursor:pointer;padding:4px 8px;border-radius:4px}.sheet .x:hover{color:var(--ink);background:#221d160f}.sheet .top{display:flex;gap:20px;margin-bottom:20px}.sheet .top .cover{width:104px;height:150px;flex:0 0 auto}.sheet h2{font-family:var(--serif);font-size:21px;margin:0 0 5px;line-height:1.35;letter-spacing:.04em;padding-right:22px}.sheet .orig{font-size:12px;font-style:italic;color:var(--ink-faint);margin-bottom:9px}.sheet .by{font-size:13px;color:var(--ink-soft)}.rows{border-top:1px solid var(--line);margin-top:4px}.row{display:flex;gap:14px;padding:9px 0;border-bottom:1px solid var(--line);font-size:12.5px}.row .k{width:74px;flex:0 0 auto;color:var(--ink-faint)}.row .v{color:var(--ink)}.row .v.warn{color:#8c5a2b}.setrow{display:flex;gap:8px;margin-top:20px}.setrow .chip{flex:1;text-align:center;padding:9px 0;font-size:12.5px}.setrow .chip[aria-pressed=true].reading{background:var(--reading);border-color:var(--reading);color:#fff}.setrow .chip[aria-pressed=true].done{background:var(--done);border-color:var(--done);color:#fff}.dlink{display:inline-block;margin-top:16px;font-size:12px;color:var(--ink-soft);text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:1px}.dlink:hover{color:var(--ink);border-color:var(--ink-soft)}.foot{margin-top:54px;padding-top:18px;border-top:1px solid var(--line);font-size:11.5px;color:var(--ink-faint);line-height:1.75}@media(max-width:700px){.wrap{padding:26px 16px 60px}.head h1{font-size:23px}.book,.cover{width:96px}.cover{height:139px}.rail{gap:14px}.sheet{padding:26px 20px 22px}.sheet .top{flex-direction:column;gap:14px}.sheet .top .cover{width:92px;height:133px}}
