/* A quiet shelf for books, papers and the notes between them. */
.reading-page { --read-paper:#f7f3e8; --read-white:#fffefa; --read-ink:#242722; --read-indigo:#263d57; --read-red:#bd4b36; --read-line:#dcdacf; --read-muted:#696c64; margin:0; background:var(--read-paper); color:var(--read-ink); font:400 16px/1.8 -apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans","Yu Gothic","Microsoft YaHei",sans-serif; -webkit-font-smoothing:antialiased; }
.reading-page *, .reading-page *::before, .reading-page *::after { box-sizing:border-box; }
.reading-page [hidden] { display:none !important; }
.reading-page :is(h1,h2,p,dl,dd,figure) { margin:0; }
.reading-page a { color:inherit; text-decoration:none; }
.reading-page :is(button,select) { font:inherit; color:inherit; }
.reading-page button { cursor:pointer; -webkit-tap-highlight-color:transparent; }
.reading-page :is(a,button,select):focus-visible { outline:2px solid var(--read-red); outline-offset:5px; }
.reading-page ::selection { background:#e7cf9b; color:var(--read-ink); }
.reading-container { width:100%; max-width:1280px; margin-inline:auto; padding-inline:clamp(22px,4.2vw,54px); }
.reading-skip { position:fixed; top:-100px; left:20px; z-index:10; padding:10px 16px; background:var(--read-indigo); color:white !important; }
.reading-skip:focus { top:12px; }
.reading-header { border-bottom:1px solid var(--read-line); }
.reading-header__inner { display:flex; align-items:center; justify-content:space-between; gap:24px; min-height:94px; }
.reading-home { display:inline-flex; align-items:center; gap:15px; min-height:44px; font-size:13px; letter-spacing:.02em; }
.reading-home > span:first-child { font-size:20px; color:var(--read-red); }
.reading-wordmark { color:var(--read-indigo) !important; font-size:12px; font-weight:650; letter-spacing:.16em; }
.reading-languages { display:flex; align-items:center; gap:8px; font-size:12px; }
.reading-languages > span { color:#b6b7ad; }
.reading-languages button { min-height:44px; border:0; border-bottom:1px solid transparent; padding:10px 2px; background:none; color:var(--read-muted); }
.reading-languages button[aria-pressed=true] { color:var(--read-red); border-bottom-color:var(--read-red); }
#reading-main { outline:0; min-height:65vh; }
.reading-intro { padding-block:63px 44px; border-bottom:1px solid var(--read-ink); }
.reading-kicker { display:flex; align-items:center; gap:19px; color:var(--read-indigo); font-size:11px; font-weight:550; letter-spacing:.14em; }
.reading-index { display:grid; place-items:center; width:35px; height:35px; background:#e6ddc9; color:#4f4737; font-size:12px; letter-spacing:.02em; }
.reading-intro h1 { margin-top:22px; max-width:900px; font-size:clamp(42px,5.3vw,68px); line-height:1.25; font-weight:600; letter-spacing:-.045em; text-wrap:balance; }
.reading-page:lang(en) .reading-intro h1 { font-family:Georgia,"Times New Roman",serif; font-weight:400; }
.reading-intro__bottom { display:flex; align-items:flex-end; justify-content:space-between; gap:30px; margin-top:26px; }
.reading-intro__bottom > p:first-child { max-width:45em; font-size:15px; line-height:1.9; color:var(--read-muted); }
.reading-updated { font-size:11px; line-height:1.8; color:var(--read-muted); white-space:nowrap; }
.reading-library { padding-top:28px; }
.reading-library__controls { display:flex; align-items:center; justify-content:space-between; gap:25px; }
.reading-filters { display:flex; flex-wrap:wrap; gap:8px; }
.reading-filters button { display:inline-flex; align-items:center; gap:20px; min-height:46px; padding:10px 17px; border:1px solid var(--read-line); background:transparent; font-size:13px; line-height:1.5; transition:background .15s,color .15s,border-color .15s; }
.reading-filters button > span:last-child { font-size:10px; opacity:.7; font-variant-numeric:tabular-nums; }
.reading-filters button:hover { border-color:var(--read-indigo); }
.reading-filters button[aria-pressed=true] { background:var(--read-indigo); color:var(--read-paper); border-color:var(--read-indigo); }
.reading-status-control { display:flex; align-items:center; gap:12px; font-size:11px; color:var(--read-muted); }
.reading-status-control select { max-width:190px; min-height:44px; padding:9px 26px 9px 11px; border:1px solid var(--read-line); border-radius:0; background:var(--read-paper); color:var(--read-ink); font-size:12px; }
.reading-results { min-height:20px; margin-block:21px 19px !important; font-size:11px; line-height:1.8; color:var(--read-muted); letter-spacing:.035em; }
.reading-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:27px; padding-bottom:92px; align-items:stretch; }
.reading-book { min-width:0; background:var(--read-white); border:1px solid #dedfd6; box-shadow:0 3px 15px #263d5704; }
.reading-book__link { display:flex; flex-direction:column; height:100%; }
.reading-cover { display:flex; align-items:center; justify-content:center; position:relative; width:100%; aspect-ratio:1.24; padding:25px; background:#eeeee6; overflow:hidden; border-bottom:1px solid #e8e7df; }
.reading-cover img { display:block; width:100%; height:100%; object-fit:contain; filter:drop-shadow(0 4px 7px #24272213); transition:transform .4s; }
@media (hover:hover) { .reading-book__link:hover .reading-cover img { transform:translateY(-3px); } }
.reading-cover--type { padding:38px; background:#efede4; }
.reading-cover--type::before { content:""; position:absolute; inset:25px 24%; background:#fcfaf2; border:1px solid #d9d4c4; border-left:5px solid #d0c8b4; box-shadow:4px 5px 0 #24272208; }
.reading-cover__title { position:relative; z-index:1; max-width:7em; max-height:6.4em; text-align:center; font-family:"Songti SC","Yu Mincho",Georgia,serif; font-size:20px; line-height:1.6; color:var(--read-indigo); overflow:hidden; overflow-wrap:anywhere; }
.reading-cover__brand { position:absolute; bottom:40px; z-index:1; max-width:45%; font-size:6px; line-height:1.6; letter-spacing:.08em; color:#8d8a7b; text-align:center; }
.reading-book__copy { display:flex; flex-direction:column; flex:1; padding:24px 25px 20px; }
.reading-book__badges { display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; }
.reading-book__kind { color:var(--read-indigo); font-size:11px; font-weight:550; }
.reading-book__status { display:inline-flex; align-items:center; align-self:flex-start; gap:6px; font-size:10px; font-weight:400; line-height:1.7; color:var(--read-muted); }
.reading-book__status::before { content:""; display:block; width:5px; height:5px; border-radius:50%; background:#9a9c8c; }
.reading-book--reading .reading-book__status::before, .reading-book__status--reading::before { background:var(--read-red); }
.reading-book--finished .reading-book__status::before, .reading-book__status--finished::before { background:#83916b; }
.reading-book--wishlist .reading-book__status::before, .reading-book__status--wishlist::before { background:#c4a057; }
.reading-book__title { margin-top:15px !important; font-size:24px; line-height:1.55; font-weight:550; letter-spacing:-.025em; overflow-wrap:anywhere; }
.reading-book__author { margin-top:10px !important; font-size:13px; line-height:1.9; color:var(--read-muted); white-space:pre-line; overflow-wrap:anywhere; }
.reading-book__progress { display:flex; flex-wrap:wrap; justify-content:space-between; gap:5px 12px; margin-top:23px !important; font-size:11px; line-height:1.9; color:var(--read-muted); }
.reading-book__progress > span:last-child { color:var(--read-indigo); overflow-wrap:anywhere; }
.reading-book__foot { display:flex; align-items:center; justify-content:space-between; gap:15px; min-height:42px; padding-top:13px; margin-top:auto; }
.reading-book__progress + .reading-book__foot { padding-top:18px; }
.reading-date { font-size:10px; line-height:1.8; color:var(--read-muted); font-weight:400; font-variant-numeric:tabular-nums; }
.reading-book__arrow { margin-left:auto; color:var(--read-indigo); font-size:21px; line-height:1; }
.reading-state { max-width:680px; padding-block:53px 85px; min-height:330px; }
.reading-state__mark { display:grid; place-items:center; width:49px; height:49px; margin-bottom:24px; background:#e9e1cf; color:var(--read-indigo); font-size:24px; }
.reading-state h2 { font-size:26px; line-height:1.65; font-weight:500; letter-spacing:-.025em; }
.reading-state p { max-width:38em; margin-top:15px; font-size:14px; line-height:1.95; color:var(--read-muted); }
.reading-retry { min-height:44px; border:1px solid var(--read-indigo); background:var(--read-indigo); color:var(--read-paper) !important; padding:10px 20px; margin-top:25px; font-size:13px !important; }
.reading-state__back { display:inline-flex; min-height:44px; align-items:center; margin-top:22px; font-size:13px; color:var(--read-indigo) !important; text-decoration:underline !important; text-underline-offset:5px; }
.reading-detail { padding-bottom:85px; }
.reading-detail__toolbar { display:flex; align-items:center; justify-content:space-between; gap:20px; padding-block:27px; border-bottom:1px solid var(--read-line); }
.reading-back { display:inline-flex; align-items:center; gap:13px; min-height:44px; font-size:13px; line-height:1.8; color:var(--read-indigo) !important; }
.reading-back > span { color:var(--read-red); font-size:20px; }
.reading-permalink { font-size:11px; color:var(--read-muted) !important; min-height:44px; display:inline-flex; align-items:center; }
.reading-detail__header { display:grid; grid-template-columns:235px minmax(0,1fr); gap:clamp(38px,6vw,83px); padding-block:55px 62px; border-bottom:1px solid var(--read-line); align-items:start; }
.reading-cover--large { aspect-ratio:3/4; padding:22px; border:1px solid var(--read-line); }
.reading-cover--large.reading-cover--type::before { inset:22px 18%; }
.reading-cover--large .reading-cover__title { max-width:6em; font-size:23px; max-height:none; overflow:visible; }
.reading-cover--large .reading-cover__brand { bottom:38px; max-width:55%; }
.reading-detail__eyebrow { font-size:10px; letter-spacing:.1em; line-height:1.9; color:var(--read-muted); margin-bottom:20px !important; }
.reading-detail__title { max-width:24em; margin-top:20px !important; font-size:clamp(30px,3.5vw,45px); font-weight:550; line-height:1.5; letter-spacing:-.035em; overflow-wrap:anywhere; outline:0; }
.reading-meta { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:17px 25px; margin-top:28px !important; }
.reading-meta__item { min-width:0; }
.reading-meta dt { font-size:10px; line-height:1.8; color:var(--read-muted); margin-bottom:4px; }
.reading-meta dd { font-size:14px; line-height:1.9; white-space:pre-line; overflow-wrap:anywhere; }
.reading-meta .reading-date { font-size:13px; color:var(--read-ink); }
.reading-source-link { color:var(--read-indigo) !important; text-decoration:underline !important; text-underline-offset:4px; }
.reading-detail__description { margin-top:30px !important; max-width:54em; font-size:15px; line-height:2; white-space:pre-wrap; color:var(--read-muted); overflow-wrap:anywhere; }
.reading-notes { max-width:820px; margin-inline:auto; padding-top:36px; }
.reading-notes__count { font-size:11px; color:var(--read-muted); margin-bottom:32px !important; }
.reading-note { padding-block:30px 38px; border-bottom:1px solid var(--read-line); }
.reading-note:first-of-type { padding-top:0; }
.reading-note__heading { display:flex; align-items:baseline; justify-content:space-between; gap:15px 25px; flex-wrap:wrap; }
.reading-note__heading h2 { font-size:25px; font-weight:500; line-height:1.6; letter-spacing:-.025em; overflow-wrap:anywhere; }
.reading-note__body { margin-top:23px !important; font-size:17px; line-height:2.1; font-weight:400; white-space:pre-wrap; overflow-wrap:anywhere; }
.reading-note__body--empty { font-size:14px; color:var(--read-muted); }
.reading-notes__empty { padding-block:15px 45px; }
.reading-notes__empty h2 { font-size:25px; font-weight:500; line-height:1.7; }
.reading-notes__empty p { margin-top:16px; color:var(--read-muted); font-size:14px; line-height:2; }
.reading-back--bottom { margin-top:38px; }
.reading-footer { border-top:1px solid var(--read-indigo); }
.reading-footer__inner { display:flex; justify-content:space-between; flex-wrap:wrap; gap:15px 25px; padding-block:26px 32px; color:var(--read-muted); font-size:10px; line-height:1.8; }
.reading-footer__inner > span:first-child { color:var(--read-indigo); letter-spacing:.1em; }
.reading-noscript { padding:25px; text-align:center; font-size:14px; }
@media (max-width:1050px) { .reading-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:25px; } .reading-detail__header { grid-template-columns:195px minmax(0,1fr); gap:40px; } }
@media (max-width:700px) {
  .reading-header__inner { min-height:79px; gap:15px; padding-block:13px; }
  .reading-wordmark { display:none; }
  .reading-home { font-size:12px; gap:10px; }
  .reading-languages { font-size:11px; gap:5px; }
  .reading-intro { padding-block:39px 32px; }
  .reading-intro h1 { font-size:43px; margin-top:23px; }
  .reading-intro__bottom { flex-direction:column; align-items:flex-start; gap:19px; margin-top:23px; }
  .reading-intro__bottom > p:first-child { font-size:14px; }
  .reading-updated { font-size:10px; }
  .reading-library { padding-top:23px; }
  .reading-library__controls { flex-direction:column; align-items:flex-start; gap:18px; }
  .reading-filters { width:100%; gap:7px; }
  .reading-filters button { justify-content:center; flex:1; padding-inline:12px; gap:16px; font-size:12px; }
  .reading-status-control { width:100%; justify-content:space-between; }
  .reading-status-control select { min-width:146px; max-width:65%; }
  .reading-results { margin-block:19px 17px !important; }
  .reading-grid { grid-template-columns:1fr; gap:25px; padding-bottom:61px; }
  .reading-cover { aspect-ratio:1.33; padding:28px; }
  .reading-cover--type { padding:40px; }
  .reading-cover__title { font-size:24px; }
  .reading-book__copy { padding:24px; }
  .reading-book__title { font-size:25px; }
  .reading-state { padding-block:38px 62px; }
  .reading-state h2 { font-size:24px; }
  .reading-detail { padding-bottom:60px; }
  .reading-detail__toolbar { padding-block:17px; }
  .reading-back { font-size:12px; gap:9px; }
  .reading-permalink { font-size:10px; }
  .reading-detail__header { grid-template-columns:1fr; gap:29px; padding-block:34px 37px; }
  .reading-cover--large { width:166px; max-width:55%; aspect-ratio:3/4; padding:15px; }
  .reading-cover--large.reading-cover--type { padding:26px; }
  .reading-cover--large.reading-cover--type::before { inset:15px 16%; }
  .reading-cover--large .reading-cover__title { font-size:18px; }
  .reading-cover--large .reading-cover__brand { font-size:5px; bottom:29px; }
  .reading-detail__eyebrow { margin-bottom:15px !important; }
  .reading-detail__title { font-size:32px; line-height:1.5; margin-top:15px !important; }
  .reading-meta { gap:18px; margin-top:24px !important; }
  .reading-meta dd { font-size:13px; }
  .reading-detail__description { font-size:15px; }
  .reading-notes { padding-top:29px; }
  .reading-note { padding-block:25px 31px; }
  .reading-note__heading h2 { font-size:23px; }
  .reading-note__body { font-size:16px; line-height:2.1; }
  .reading-note__body--empty { font-size:14px; }
  .reading-footer__inner { padding-block:24px 28px; font-size:9px; }
}
@media (max-width:360px) { .reading-container { padding-inline:18px; } .reading-home { gap:7px; } .reading-languages { gap:3px; } .reading-meta { grid-template-columns:1fr; } }
@media (prefers-reduced-motion:reduce) { .reading-page *, .reading-page *::before, .reading-page *::after { transition:none !important; animation:none !important; scroll-behavior:auto !important; } }
@media print { .reading-header,.reading-filters,.reading-status-control,.reading-detail__toolbar,.reading-back,.reading-footer,.reading-skip { display:none !important; } .reading-page { background:white; color:black; } .reading-container { padding:0; } .reading-detail__header { grid-template-columns:160px 1fr; } .reading-note { break-inside:avoid; } .reading-note__body { font-size:12pt; } .reading-source-link { text-decoration:none !important; } }
/* A fallback cover is a small typographic preview; the full title stays in h1. */
.reading-cover--large.reading-cover--type .reading-cover__title { max-width:64%; max-height:7.75em; font-size:18px; line-height:1.55; overflow:hidden; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:5; }
@media (max-width:700px) { .reading-cover--large.reading-cover--type .reading-cover__title { font-size:15px; max-width:64%; max-height:7.75em; } }
