.blot-rating{align-items:center;gap:5px;display:inline-flex}.blot-rating .b{border:1px solid color-mix(in srgb, var(--violet) 55%, transparent);border-radius:58% 42% 50% 50%/48% 55% 45% 52%;flex-shrink:0;width:11px;height:11px;position:relative}.blot-rating .b:after{content:"";border-radius:inherit;background:var(--violet);position:absolute;inset:-1px;transform:scale(0)}.blot-rating .b.full:after{transform:none}.blot-rating .b.half:after{clip-path:inset(0 50% 0 0);transform:none}.blot-rating .num{font-family:var(--font-ui), system-ui, sans-serif;color:var(--ink-muted);margin-left:4px;font-size:12px}.blot-rating.sm .b{width:9px;height:9px}.blot-rating.sm{gap:4px}.jacket-link{color:inherit;height:100%;text-decoration:none;display:block}.jacket{background:var(--paper-raised);border:1px solid var(--rule);border-radius:10px;flex-direction:column;height:100%;padding:14px 14px 18px;transition:border-color .25s;display:flex;box-shadow:0 18px 36px -24px #211d2673}.dark .jacket{box-shadow:0 18px 36px -20px #0009}.jacket:hover{border-color:color-mix(in srgb, var(--violet) 55%, var(--rule))}.jacket .cover{aspect-ratio:2/3;border:1px solid color-mix(in srgb, var(--violet) 24%, var(--rule));border-radius:5px;margin-bottom:14px;position:relative;overflow:hidden}.jacket .cover img{filter:saturate(.94)}.jacket .cover:after{content:"";background:color-mix(in srgb, var(--violet) 5%, transparent);pointer-events:none;z-index:1;position:absolute;inset:0}.jacket .cover .no-cover{color:var(--violet);background:var(--violet-wash);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.jacket .book{font-family:var(--font-display), Georgia, serif;color:var(--ink);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:18px;font-weight:600;line-height:1.25;transition:color .2s;display:-webkit-box;overflow:hidden}.jacket:hover .book{color:var(--violet)}.jacket .by{font-family:var(--font-body), Georgia, serif;color:var(--ink-muted);margin-top:3px;margin-bottom:14px;font-size:13.5px;font-style:italic}.jacket .verdict{color:var(--ink-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:10px;margin-bottom:14px;font-size:14px;line-height:1.6;display:-webkit-box;overflow:hidden}.jacket .shelf-line{border-top:1px solid var(--rule);justify-content:space-between;align-items:center;gap:8px;margin-top:auto;padding-top:12px;display:flex}.jacket .shelf-line .date{font-family:var(--font-ui), system-ui, sans-serif;letter-spacing:.06em;color:var(--ink-faint);font-size:11px}.shelf-row-link{color:inherit;text-decoration:none;display:block}.shelf-row{background:var(--paper-raised);border:1px solid var(--rule);border-radius:10px;gap:20px;padding:18px;transition:border-color .25s;display:flex}.shelf-row:hover{border-color:color-mix(in srgb, var(--violet) 55%, var(--rule))}.shelf-row .cover{border:1px solid color-mix(in srgb, var(--violet) 24%, var(--rule));border-radius:5px;flex-shrink:0;width:96px;min-height:140px;position:relative;overflow:hidden}@media (min-width:640px){.shelf-row .cover{width:118px}}.shelf-row .cover img{filter:saturate(.94)}.shelf-row .cover .no-cover{color:var(--violet);background:var(--violet-wash);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.shelf-row .body{flex-direction:column;flex:1;min-width:0;display:flex}.shelf-row .head{flex-wrap:wrap;align-items:baseline;gap:4px 10px;display:flex}.shelf-row .book{font-family:var(--font-display), Georgia, serif;color:var(--ink);font-size:21px;font-weight:600;transition:color .2s}.shelf-row:hover .book{color:var(--violet)}.shelf-row .by{font-family:var(--font-body), Georgia, serif;color:var(--ink-muted);font-size:14px;font-style:italic}.shelf-row .review-title{color:var(--ink);margin-top:6px;font-size:15px}.shelf-row .verdict{color:var(--ink-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:8px;font-size:14.5px;line-height:1.65;display:-webkit-box;overflow:hidden}.shelf-row .tail{font-family:var(--font-ui), system-ui, sans-serif;letter-spacing:.06em;color:var(--ink-faint);flex-wrap:wrap;align-items:center;gap:8px 18px;margin-top:auto;padding-top:12px;font-size:11.5px;display:flex}.shelf-row .tail .go{font-family:var(--font-hand), cursive;letter-spacing:0;color:var(--violet);opacity:0;margin-left:auto;font-size:17px;transition:opacity .25s}.shelf-row:hover .tail .go{opacity:1}.folio-nav{justify-content:center;align-items:center;gap:6px;margin:52px 0 12px;display:flex}.folio-nav .arrow,.folio-nav .pg{font-family:var(--font-ui), system-ui, sans-serif;border:1px solid var(--rule-strong);min-width:38px;height:38px;color:var(--ink-muted);cursor:pointer;background:0 0;border-radius:6px;justify-content:center;align-items:center;font-size:13px;transition:color .25s,border-color .25s,background .25s;display:inline-flex}.folio-nav .arrow:hover:not(:disabled),.folio-nav .pg:hover{color:var(--violet);border-color:var(--violet);background:var(--violet-wash)}.folio-nav .arrow:disabled{opacity:.4;cursor:not-allowed}.folio-nav .pg.now{color:var(--violet);border-color:var(--violet);background:var(--violet-wash);font-weight:600}.folio-nav .dots{color:var(--ink-faint);padding:0 4px}.blot-rating.lg .b{width:14px;height:14px}.blot-rating.lg{gap:6px}.blot-rating.lg .num{color:var(--ink);font-size:14px;font-weight:600}.open-book{border-bottom:1px solid var(--rule);margin-top:-4rem;padding:140px 24px 64px;position:relative;overflow:hidden}.open-book .currents{pointer-events:none;opacity:.5;position:absolute;inset:0}.dark .open-book .currents{opacity:.35}.open-book .inner{z-index:1;max-width:960px;margin:0 auto;position:relative}.open-book .spread{text-align:center;flex-direction:column;align-items:center;gap:36px;margin-top:28px;display:flex}@media (min-width:760px){.open-book .spread{text-align:left;flex-direction:row;align-items:flex-end;gap:52px}}.mounted-jacket{background:var(--paper-raised);border:1px solid var(--rule);border-radius:8px;flex-shrink:0;width:190px;padding:9px;box-shadow:0 24px 48px -28px #211d268c}@media (min-width:640px){.mounted-jacket{width:224px}}.dark .mounted-jacket{box-shadow:0 24px 48px -22px #000000b3}.mounted-jacket .cover{aspect-ratio:2/3;border:1px solid color-mix(in srgb, var(--violet) 26%, var(--rule));border-radius:4px;position:relative;overflow:hidden}.mounted-jacket .cover img{filter:saturate(.94)}.mounted-jacket .no-cover{color:var(--violet);background:var(--violet-wash);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.open-book .titles h1{margin:10px 0 6px;font-size:clamp(32px,4.6vw,52px);line-height:1.08}.open-book .titles .by{font-family:var(--font-body), Georgia, serif;color:var(--ink-muted);font-size:17px;font-style:italic}.open-book .review-title{font-family:var(--font-body), Georgia, serif;color:var(--ink);margin-top:18px;font-size:18px}.open-book .mark-line{border-top:1px solid var(--rule);align-items:baseline;gap:12px;margin-top:20px;padding-top:14px;display:inline-flex}.book-colophon{border-top:1px solid var(--rule);flex-wrap:wrap;gap:10px 36px;margin-top:22px;padding:16px 0 0;display:flex}.book-colophon .entry{align-items:baseline;gap:10px;display:flex}.book-colophon .what{font-family:var(--font-ui), system-ui, sans-serif;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-faint);font-size:10px;font-weight:500}.book-colophon .is{font-family:var(--font-body), Georgia, serif;color:var(--ink);font-size:14px}.review-pull{border-left:2px solid var(--pw,var(--violet));font-family:var(--font-body), Georgia, serif;color:var(--ink-muted);margin:0 0 34px;padding-left:18px;font-size:18.5px;font-style:italic;line-height:1.7}.ink-tag{font-family:var(--font-ui), system-ui, sans-serif;letter-spacing:.1em;text-transform:uppercase;color:var(--pw,var(--violet));font-size:10.5px;font-weight:500}.your-mark{border-top:1px solid var(--rule);flex-wrap:wrap;align-items:center;gap:10px 22px;margin-top:44px;padding-top:18px;display:flex}.blot-pick{align-items:center;gap:7px;display:inline-flex}.blot-pick button{cursor:pointer;background:0 0;border:none;padding:4px;display:inline-flex}.blot-pick button:disabled{opacity:.55;cursor:not-allowed}.blot-pick .b{border:1px solid color-mix(in srgb, var(--pw,var(--violet)) 55%, transparent);border-radius:58% 42% 50% 50%/48% 55% 45% 52%;width:15px;height:15px;position:relative}.blot-pick .b:after{content:"";border-radius:inherit;background:var(--pw,var(--violet));opacity:0;transition:opacity .2s;position:absolute;inset:-1px}.blot-pick .inked .b:after{opacity:1}.blot-pick .tally{font-family:var(--font-body), Georgia, serif;color:var(--ink-muted);min-width:34px;margin-left:6px;font-size:14px}.your-mark .note{color:var(--ink-faint);font-size:13px;font-style:italic}.shelve-head{z-index:1;max-width:880px;margin:0 auto;padding:132px 24px 44px;position:relative}.shelve-head h1{margin:12px 0;font-size:clamp(30px,4vw,44px);line-height:1.1}.shelve-head .lede{color:var(--ink-muted);line-height:1.75}.shelve-wrap{z-index:1;max-width:880px;margin:0 auto;padding:0 24px 84px;position:relative}.shelve-sec{align-items:center;gap:12px;margin:40px 0 22px;display:flex}.shelve-sec:first-child{margin-top:0}.shelve-sec .blot{width:10px;height:10px}.shelve-sec:after{content:"";background:var(--rule);flex:1;height:1px}.field-info{color:var(--ink-faint);margin-top:6px;font-size:12.5px;font-style:italic}.char-count{font-family:var(--font-ui), system-ui, sans-serif;letter-spacing:.06em;color:var(--ink-faint);text-align:right;margin-top:6px;font-size:11px}.cover-drop{aspect-ratio:2/3;border:1px dashed var(--rule-strong);background:var(--tint,transparent);border-radius:8px;justify-content:center;align-items:center;transition:border-color .25s;display:flex;position:relative;overflow:hidden}.cover-drop:hover{border-color:var(--violet)}.cover-drop.has-cover{border-style:solid;border-color:var(--rule)}.cover-drop img{object-fit:cover;width:100%;height:100%}.cover-drop .empty{color:var(--ink-faint);text-align:center;flex-direction:column;align-items:center;gap:10px;padding:16px;font-size:13px;font-style:italic;display:flex}.cover-drop .unpin{background:var(--paper-raised);border:1px solid var(--rule-strong);color:var(--ink-muted);cursor:pointer;border-radius:999px;padding:5px;transition:color .25s,border-color .25s;position:absolute;top:8px;right:8px}.cover-drop .unpin:hover{color:var(--rose);border-color:var(--rose)}
