/* Library content inside the shared site header and footer. */
/* The library sits on the same background as the rest of the site. */
body.bl-body{margin:0;isolation:isolate}
.bl-body *{box-sizing:border-box}.bl-main a{color:inherit;text-decoration:none}.bl-body [hidden]{display:none!important}.bl-main :focus-visible{outline:2px solid #d5b5ff;outline-offset:6px}.bl-body .bl-skip{position:fixed;top:-100px;left:20px;z-index:99999;padding:12px;background:#fff;color:#111}.bl-body .bl-skip:focus{top:10px}
.bl-atmosphere{display:none}
.bl-nav,.bl-main,.bl-footer{width:min(1320px,calc(100% - 100px));margin-inline:auto}.bl-nav{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:32px 0;border-bottom:1px solid #ffffff12}.bl-wordmark{display:flex;gap:18px;align-items:center;font-weight:800;font-size:25px;letter-spacing:-2px}.bl-wordmark span{font-size:9px;font-weight:500;letter-spacing:2px}.bl-nav nav{display:flex;gap:28px;font-size:12px;color:#bab5c3}.bl-nav a:hover{color:#dac0ff}
.bl-heading{display:flex;align-items:end;justify-content:space-between;gap:35px;margin:76px 0 12px}.bl-eyebrow{font:500 10px/1.6 ui-monospace,monospace;letter-spacing:2.8px;color:#bfa2de;text-transform:uppercase;margin:0 0 20px}.bl-heading h1{font:400 clamp(52px,7.5vw,104px)/1.05 Georgia,serif;letter-spacing:-5px;margin:0;color:#eeeae3}.bl-heading h1 em{font-weight:400;color:#c5b1de}.bl-intro{font-size:14px;color:#a29da9;margin-top:24px}.bl-stats{display:flex;gap:38px;padding-bottom:12px}.bl-stats div{display:flex;flex-direction:column}.bl-stats strong{font:400 40px/1.2 Georgia,serif}.bl-stats span{font-size:10px;color:#a29da9;margin-top:8px}
.bl-feature{position:relative;display:grid;grid-template-columns:1fr 1.15fr;gap:9%;align-items:center;padding:68px 7% 80px;margin:30px 0 55px;border-bottom:1px solid #ffffff16;min-height:510px}.bl-feature-art{position:relative;display:grid;place-items:center;perspective:1100px;min-width:0}.bl-feature-art::before{content:"";position:absolute;inset:-35% -30%;background:radial-gradient(ellipse,#ae79542b,transparent 64%);filter:blur(28px);pointer-events:none}.bl-feature-art>a{display:block;width:min(100%,235px)}
.bl-book{--book-color:#2f3a4a;position:relative;display:block;aspect-ratio:2/3;width:100%;border-radius:2px 6px 6px 2px;background:var(--book-color);box-shadow:9px 12px 18px #0009,1px 0 0 #ffffff30 inset;isolation:isolate;transition:transform .4s ease,box-shadow .4s ease}
.bl-book[data-tone="1"]{--book-color:#31444d}.bl-book[data-tone="2"]{--book-color:#63452f}.bl-book[data-tone="3"]{--book-color:#394737}.bl-book[data-tone="4"]{--book-color:#5a3434}
.bl-book::after{content:"";position:absolute;inset:0;z-index:3;border-radius:inherit;background:linear-gradient(90deg,#0008,transparent 2%,#fff2 3%,#0003 5%,transparent 9%,transparent 96%,#fff1);pointer-events:none;box-shadow:inset 0 0 0 1px #ffffff12}
.bl-cover-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:inherit;background:var(--book-color);z-index:2}.bl-cover-fallback{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-between;padding:12% 12% 10% 15%;background:radial-gradient(circle at 100% 60%,#ffffff16,transparent 65%);overflow:hidden}.bl-cover-fallback strong{font:400 clamp(16px,1.5vw,25px)/1.2 Georgia,serif;overflow-wrap:anywhere}.bl-cover-fallback small{font-size:8px;letter-spacing:1px;line-height:1.5}.bl-cover-fallback>span{font-size:32px;color:#d7b386}
.bl-feature-art>.bl-book{max-width:235px}.bl-feature-art .bl-book{transform:rotate(-5deg) rotateY(-13deg);box-shadow:20px 30px 36px #000b}.bl-feature-art a:hover .bl-book{transform:rotate(-2deg) rotateY(-6deg)}.bl-feature-copy{position:relative;min-width:0}.bl-feature-copy h1,.bl-feature-copy h2{font:400 clamp(32px,4vw,57px)/1.1 Georgia,serif;letter-spacing:-1.3px;margin:0 0 16px;overflow-wrap:anywhere}.bl-author{color:#c0bac7;font-size:16px;margin:0}.bl-note{font:italic 21px/1.6 Georgia,serif;color:#d6c8dc;max-width:36ch}.bl-details{font-size:11px;color:#aaa3b2;margin:25px 0}.bl-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:#c2a3e0;margin-right:10px;box-shadow:0 0 15px #c2a3e0}.bl-link{display:inline-flex;gap:35px;align-items:center;font-size:12px;border-bottom:1px solid #b69bc16b;padding:10px 0}.bl-link:hover{color:#d7b6ff}.bl-facts{font-size:12px;border-top:1px solid #ffffff17;padding-top:15px}.bl-facts div{display:flex;gap:20px;padding:5px 0}.bl-facts dt{color:#a59aac;min-width:70px}.bl-facts dd{margin:0}
.bl-collection-top{display:flex;align-items:end;justify-content:space-between;gap:20px}.bl-collection h2{font:400 42px/1.2 Georgia,serif;margin:0}.bl-collection h2 span{color:#c69fe7}.bl-count{font:11px ui-monospace,monospace;color:#aaa0b6}.bl-filters{display:flex;gap:25px;margin:30px 0 48px;padding:22px 0;border-block:1px solid #ffffff12}.bl-filters label{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}.bl-filters label:first-child{flex:2}.bl-filters label>span{font-size:10px;color:#a99bb4}.bl-filters input,.bl-filters select{font-family:inherit;font-size:13px;background:#ffffff04;border:1px solid #ffffff12;border-radius:4px;color:#e7e0eb;padding:12px;width:100%;min-width:0}.bl-filters select option{background:#19151f}
.bl-shelves{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));column-gap:42px;row-gap:44px}.bl-item{min-width:0}.bl-book-stage{position:relative;padding:0 10px 23px;perspective:800px}.bl-book-stage::after{content:"";height:9px;position:absolute;bottom:0;left:-21px;right:-21px;background:linear-gradient(#3a333e,#17141c 32%,#09080d);border-top:1px solid #67566d66;box-shadow:0 10px 14px #0008}.bl-item a:hover .bl-book,.bl-item a:focus-visible .bl-book{transform:translateY(-8px);box-shadow:10px 22px 26px #000c}.bl-item-text{padding:18px 4px}.bl-item h3{font-family:inherit;font-weight:500;line-height:1.5;font-size:13px;margin:0 0 5px;overflow-wrap:anywhere}.bl-item p{font-size:11px;color:#aaa1b1;margin:0 0 8px}.bl-item small{font-size:9px;color:#bca0d0}.bl-ribbon{position:absolute;z-index:4;top:-4px;right:19px;font:8px ui-monospace,monospace;letter-spacing:1px;writing-mode:vertical-rl;background:#6e4887;padding:12px 7px 20px;clip-path:polygon(0 0,100% 0,100% 100%,50% 92%,0 100%)}
.bl-reading-notes{max-width:740px;margin:0 auto 100px}.bl-prose{font:19px/1.85 Georgia,serif;color:#d6ceda;overflow-wrap:anywhere;margin-bottom:45px}.bl-prose img{max-width:100%;height:auto}.bl-prose a{text-decoration:underline}.bl-prose blockquote{border-left:2px solid #a580c5;padding-left:22px;margin-inline:0}.bl-empty{padding:40px 0;color:#ada1b7}.bl-footer{display:flex;justify-content:space-between;gap:25px;border-top:1px solid #ffffff16;padding:28px 0;margin-top:80px;color:#a197ad;font:9px ui-monospace,monospace;letter-spacing:1px}.bl-footer span:last-child{font:italic 15px Georgia,serif;letter-spacing:0}
@media(min-width:1500px){.bl-shelves{column-gap:55px}.bl-book-stage::after{left:-28px;right:-28px}}
@media(max-width:1050px){.bl-shelves{grid-template-columns:repeat(4,minmax(0,1fr));gap:30px}.bl-book-stage::after{left:-15px;right:-15px}.bl-stats{gap:20px}.bl-heading{align-items:start}.bl-heading h1{letter-spacing:-3px}.bl-feature{padding-inline:4%;gap:12%}}
@media(max-width:760px){.bl-nav,.bl-main,.bl-footer{width:calc(100% - 40px)}.bl-wordmark span{display:none}.bl-nav{padding:22px 0}.bl-nav nav{gap:15px;font-size:10px}.bl-heading{display:block;margin-top:42px}.bl-heading h1{font-size:62px}.bl-stats{margin-top:25px;gap:35px}.bl-stats strong{font-size:30px}.bl-feature{padding:42px 0;gap:9%;grid-template-columns:.8fr 1fr;min-height:0}.bl-feature-copy h1,.bl-feature-copy h2{font-size:29px}.bl-feature .bl-eyebrow{font-size:8px;letter-spacing:1px}.bl-author{font-size:12px}.bl-details{font-size:10px;margin:14px 0}.bl-note{font-size:17px}.bl-shelves{grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}.bl-book-stage{padding:0 4px 15px}.bl-book-stage::after{left:-13px;right:-13px}.bl-filters{flex-wrap:wrap;gap:14px}.bl-filters label:first-child{flex-basis:100%}.bl-collection h2{font-size:35px}.bl-eyebrow{font-size:9px}.bl-footer{flex-direction:column}.bl-cover-fallback strong{font-size:17px}.bl-cover-fallback small{font-size:6px}}
@media(max-width:480px){.bl-shelves{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:30px}.bl-feature{grid-template-columns:1fr;padding-top:32px}.bl-feature-art{margin:0 0 38px}.bl-feature-art>a,.bl-feature-art>.bl-book{width:170px}.bl-feature-copy{text-align:center}.bl-feature-copy h1,.bl-feature-copy h2{font-size:36px}.bl-facts{text-align:left}.bl-heading h1{font-size:54px}.bl-feature-art .bl-cover-fallback strong{font-size:23px}.bl-feature-art .bl-cover-fallback small{font-size:7px}.bl-book-stage::after{left:-15px;right:-15px}.bl-nav nav a:nth-child(2){display:none}.bl-reading-notes{margin-bottom:50px}.bl-prose{font-size:17px}}
@media(prefers-reduced-motion:reduce){.bl-body *{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
@media(max-width:480px){.bl-feature-art::before{inset:-10% 0}}
.bl-cover-fallback strong{display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden;min-height:0}.bl-cover-fallback small,.bl-cover-fallback>span{flex-shrink:0}

/* Reuse page spacing without the global grid changing the book layout. */
.bl-main.site-main{display:block;max-width:1320px;color:#eeeae3;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.6}

/* 0.11 · Archive redesign: hero, latest reading, books and manga. */
.bl-main{--bl-violet:#9d7bff;--bl-violet-soft:#c6b3ff;--bl-line:#ffffff17;--bl-glass:linear-gradient(160deg,#ffffff0d,#ffffff03 60%);--bl-radius:16px}
.bl-icon{width:28px;height:28px;flex:none;fill:none;stroke:var(--bl-violet);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.bl-glass{border:1px solid var(--bl-line);border-radius:var(--bl-radius);background:var(--bl-glass);box-shadow:inset 0 1px 0 #ffffff0d,0 20px 40px #0005;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.bl-section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:26px}.bl-section-head h2{font:400 clamp(30px,3.2vw,40px)/1.15 Georgia,serif;letter-spacing:-.6px;margin:0;color:#f1edf6}.bl-section-head h2 span{color:var(--bl-violet)}.bl-section-head p{margin:6px 0 0;font-size:13px;color:#a8a1b3}.bl-section-head .bl-count{margin:0}
.bl-chip{display:inline-flex;align-items:center;gap:2px;margin:0 0 18px;padding:6px 14px;border:1px solid var(--bl-line);border-radius:999px;background:#ffffff0a;font:500 10px/1.4 ui-monospace,monospace;letter-spacing:1.6px;text-transform:uppercase;color:#e3d9ff}.bl-chip .bl-dot{background:var(--bl-violet);box-shadow:0 0 12px var(--bl-violet)}
.bl-chips{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0 0 18px;padding:0}.bl-chips li{padding:5px 13px;border:1px solid var(--bl-line);border-radius:999px;font-size:11px;color:#d8d1e2;background:#ffffff06}
.bl-cats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin:0 0 34px}
.bl-cat{display:grid;grid-template-columns:minmax(120px,.85fr) minmax(0,1fr);gap:24px;align-items:center;min-height:190px;padding:20px 26px 20px 20px;overflow:hidden;transition:border-color .3s ease,transform .3s ease}.bl-cat:hover,.bl-cat:focus-visible{border-color:#9d7bff66;transform:translateY(-2px)}
.bl-cat-stack{position:relative;display:block;height:150px}.bl-cat-stack .bl-book{position:absolute;bottom:0;width:auto;height:100%;transition:transform .35s ease}.bl-cat-stack .bl-book:nth-child(1){left:0;z-index:3}.bl-cat-stack .bl-book:nth-child(2){left:24%;z-index:2;transform:scale(.92) rotate(4deg);transform-origin:bottom}.bl-cat-stack .bl-book:nth-child(3){left:48%;z-index:1;transform:scale(.84) rotate(8deg);transform-origin:bottom;opacity:.85}.bl-cat:hover .bl-cat-stack .bl-book:nth-child(1){transform:translateY(-6px) rotate(-2deg)}.bl-cat-stack .bl-cover-fallback strong{font-size:12px}.bl-cat-stack .bl-cover-fallback small{font-size:5px}.bl-cat-stack .bl-cover-fallback>span{font-size:16px}
.bl-cat-empty{display:grid;place-items:center;height:100%;border:1px dashed var(--bl-line);border-radius:10px}
.bl-cat-copy{display:flex;flex-direction:column;min-width:0}.bl-cat-title{display:flex;align-items:center;gap:16px;font:400 clamp(30px,3vw,40px)/1.1 Georgia,serif;color:#f4f1f8}.bl-round{display:grid;place-items:center;width:36px;height:36px;border:1px solid #ffffff40;border-radius:50%}.bl-round .bl-icon{width:16px;height:16px;stroke:#fff}.bl-cat-count{margin:6px 0 12px;font:400 16px/1.4 Georgia,serif;color:var(--bl-violet-soft)}.bl-cat-text{font-size:13px;line-height:1.6;color:#b2abbd;max-width:36ch}
.bl-toolbar{position:sticky;top:12px;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:10px;margin:0 0 46px;border:1px solid var(--bl-line);border-radius:999px;background:#0e0c15d9;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);scroll-margin-top:24px}
.bl-tabs{display:flex;gap:4px;min-width:0}.bl-tab{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border:1px solid transparent;border-radius:999px;background:none;color:#bdb6c8;font:inherit;font-size:13px;cursor:pointer;transition:background .25s ease,color .25s ease}.bl-tab span{font:11px ui-monospace,monospace;color:#8f879b}.bl-tab:hover{color:#fff}.bl-tab[aria-pressed="true"]{color:#fff;border-color:#9d7bff80;background:linear-gradient(180deg,#9d7bff33,#9d7bff14);box-shadow:0 0 24px #9d7bff33}.bl-tab[aria-pressed="true"] span{color:var(--bl-violet-soft)}.bl-tab:focus-visible{outline:2px solid #d5b5ff;outline-offset:2px}
.bl-toolbar .bl-filters{display:flex;align-items:center;gap:10px;margin:0;padding:0;border:0;flex:0 1 380px;min-width:0}
.bl-search{position:relative;flex:1;min-width:0}.bl-search .bl-icon{position:absolute;left:15px;top:50%;width:18px;height:18px;transform:translateY(-50%);stroke:#bdb6c8;pointer-events:none}.bl-toolbar .bl-search input{width:100%;padding:11px 16px 11px 44px;border:1px solid var(--bl-line);border-radius:999px;background:#ffffff08;color:#eee8f4;font:inherit;font-size:13px}.bl-search input:focus{outline:none;border-color:#9d7bff99}
.bl-more{position:relative}.bl-more summary{display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--bl-line);border-radius:50%;cursor:pointer;list-style:none}.bl-more summary::-webkit-details-marker{display:none}.bl-more summary .bl-icon{width:18px;height:18px;stroke:#d6cfe0}.bl-more[open] summary{border-color:#9d7bff99;background:#9d7bff1f}
.bl-more-panel{position:absolute;right:0;top:calc(100% + 12px);display:flex;flex-direction:column;gap:14px;width:250px;padding:18px;border:1px solid var(--bl-line);border-radius:16px;background:#14111c;box-shadow:0 24px 50px #000a}.bl-more-panel label{display:flex;flex-direction:column;gap:6px}.bl-more-panel span{font-size:10px;color:#a99bb4}.bl-more-panel select{width:100%;padding:10px;border:1px solid var(--bl-line);border-radius:8px;background:#0e0c15;color:#e7e0eb;font:inherit;font-size:13px}
.bl-recent{margin:0 0 60px}.bl-row{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(130px,14vw,170px);gap:26px;margin:0;padding:6px 2px 18px;list-style:none;overflow-x:auto;scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:#9d7bff55 transparent}.bl-row li{scroll-snap-align:start;min-width:0}.bl-row a{display:flex;flex-direction:column}.bl-row .bl-book{margin-bottom:14px;border-radius:4px}.bl-row a:hover .bl-book,.bl-row a:focus-visible .bl-book{transform:translateY(-6px)}.bl-row a>strong{font:400 15px/1.3 Georgia,serif;color:#f1edf6;overflow-wrap:anywhere}.bl-row a>span{margin-top:4px;font-size:11.5px;color:#a8a1b3}.bl-row a>small{position:relative;margin-top:12px;padding-bottom:10px;font-size:10.5px;color:#b9b1c5}.bl-row a>small::after{content:"";position:absolute;left:0;bottom:0;width:62%;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--bl-violet) 0 22%,#ffffff1a 22%)}
.bl-collection{margin-bottom:70px}.bl-collection .bl-section-head{margin-bottom:40px}
.bl-numbers{padding-top:44px;border-top:1px solid var(--bl-line)}.bl-numbers ul{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px;margin:0;padding:0;list-style:none}.bl-numbers li{display:flex;align-items:center;gap:18px;padding:22px 22px}.bl-numbers strong{font:400 28px/1.1 Georgia,serif;color:#fff}.bl-numbers span{margin-top:4px;font-size:11.5px;color:#aaa3b6}
@media(max-width:1100px){.bl-spot{grid-template-columns:minmax(130px,200px) minmax(0,1fr)}.bl-spot-quote{display:none}.bl-numbers ul{grid-template-columns:repeat(3,minmax(0,1fr))}.bl-cat{grid-template-columns:110px minmax(0,1fr);padding-right:20px}.bl-cat-stack{height:130px}}
@media(max-width:860px){.bl-hero{grid-template-columns:1fr;min-height:0}.bl-hero-art{inset:-30px -20px auto 20%;height:420px}.bl-hero-quote{display:none}.bl-cats{grid-template-columns:1fr}.bl-toolbar{flex-wrap:wrap;border-radius:22px}.bl-toolbar .bl-filters{flex:1 1 100%}}
@media(max-width:760px){.bl-hero h1{letter-spacing:-2.5px}.bl-hero .bl-intro{font-size:17px}.bl-hero-stats>div{min-width:0;flex:1;padding:18px}.bl-spot{grid-template-columns:1fr;text-align:left}.bl-spot-art{width:150px}.bl-numbers ul{grid-template-columns:repeat(2,minmax(0,1fr))}.bl-numbers li{padding:18px;gap:14px}.bl-tabs{width:100%}.bl-tab{flex:1;justify-content:center;padding:10px 12px}.bl-toolbar{top:8px}.bl-row{gap:18px}}
@media(max-width:480px){.bl-hero-stats small{display:none}.bl-cat{grid-template-columns:90px minmax(0,1fr);gap:16px;min-height:150px}.bl-cat-stack{height:110px}.bl-cat-title{font-size:28px}.bl-numbers li:last-child{grid-column:1/-1}}
@media(max-width:480px){.bl-cat{grid-template-columns:120px minmax(0,1fr)}.bl-cat-stack .bl-book:nth-child(2){left:18%}.bl-cat-stack .bl-book:nth-child(3){left:36%}}
/* The shared mobile type scale would shrink the library's display titles and labels. */
@media(max-width:700px){body .site-main.bl-main .bl-hero h1{font-size:clamp(52px,15vw,64px);line-height:.98;letter-spacing:-2px}body .site-main.bl-main .bl-spot h2{font-size:30px;line-height:1.1}body .site-main.bl-main .bl-spot p.bl-chip{font-size:9px;letter-spacing:1.2px;line-height:1.4}body .site-main.bl-main p.bl-eyebrow{font-size:10px}body .site-main.bl-main .bl-section-head p,body .site-main.bl-main .bl-spot p.bl-spot-text{font-size:14px}}
/* Manga: tankōbon proportions, flat glossy cover and its own placeholder. */
.bl-book[data-format="manga"]{--book-color:#f2eee6;aspect-ratio:128/182;border-radius:5px}
/* The tankōbon mould: a soft glued spine that curves instead of hinging, the fold of the dust jacket and its laminated sheen. */
.bl-book[data-format="manga"]::after{background:
 linear-gradient(90deg,#0000005c,#00000024 1.1%,#ffffff47 2.4%,#ffffff0f 4%,transparent 5.5%,transparent 6.3%,#0000001c 6.7%,transparent 7.6%,transparent 97.5%,#ffffff2e),
 linear-gradient(112deg,#ffffff3d,#ffffff0d 20%,transparent 36%,transparent 70%,#00000026);
 box-shadow:inset 0 0 0 1px #ffffff1f,inset 0 1px 0 #ffffff4d,inset 0 -2px 3px #0000002e}
.bl-manga-fallback{padding:0;justify-content:flex-start;background:#f2eee6;color:#16131c}
.bl-manga-fallback::before{content:"";height:7%;background:#c7372f;flex:none}
.bl-cover-fallback.bl-manga-fallback strong{margin:9% 9% 0;font:900 clamp(13px,1.25vw,20px)/1.05 Inter,-apple-system,"Segoe UI",sans-serif;text-transform:uppercase;letter-spacing:-.3px;-webkit-line-clamp:4}
.bl-manga-fallback b{margin:auto 9% 0;align-self:flex-start;min-width:1.5em;padding:2px 8px;background:#16131c;color:#f2eee6;font:800 clamp(18px,2vw,32px)/1.2 Inter,-apple-system,sans-serif;text-align:center}
.bl-cover-fallback.bl-manga-fallback small{margin:6% 9% 9%;font-size:8px;letter-spacing:.5px;color:#4b4552}
.bl-cat-stack .bl-manga-fallback strong{font-size:10px}.bl-cat-stack .bl-manga-fallback b{font-size:14px}
/* The latest reading lives inside the hero. */
@media(max-width:860px){.bl-main.site-main{overflow-x:clip}}
/* Page block peeking out from under the cover, for a bit of depth. */
.bl-book::before{content:"";position:absolute;z-index:-1;top:1.5%;bottom:1.5%;right:-4px;width:8px;border-radius:0 2px 2px 0;background:linear-gradient(90deg,#0000004d,transparent 45%),repeating-linear-gradient(90deg,#f1ebdd 0 1px,#cfc6b4 1px 2px);box-shadow:inset 0 1px 0 #ffffff80,inset 0 -1px 0 #00000033,2px 2px 4px #0006}
/* The fallback cover is opaque so the page block stays behind it. */
.bl-cover-fallback{background-color:var(--book-color);border-radius:inherit}
.bl-book[data-format="manga"]::before{background:linear-gradient(90deg,#0000003d,transparent 50%),repeating-linear-gradient(90deg,#fbf9f4 0 1px,#dedad0 1px 2px)}
.bl-feature-art .bl-book::before,.bl-spot-art .bl-book::before{right:-6px;width:10px}
@media(prefers-reduced-motion:reduce){.bl-row{scroll-behavior:auto}}
/* Every shelf slot is as tall as a hardcover; shorter manga stand on the same board. */
.bl-book-stage{display:grid;align-items:end}
.bl-book-stage::before{content:"";grid-area:1/1;aspect-ratio:2/3;width:100%;pointer-events:none}
.bl-book-stage>.bl-book{grid-area:1/1}
.bl-book-stage::after{height:10px;border-radius:2px;background:linear-gradient(#453c4c,#1b1721 30%,#0a090e);border-top:1px solid #8a76934d}
/* Smooth page block: fine stripes shimmer when the cover moves or tilts. */
.bl-book::before{background:linear-gradient(90deg,#00000059,transparent 55%),linear-gradient(180deg,#f4eee0,#d9d0bd)}
.bl-book[data-format="manga"]::before{top:.8%;bottom:.8%;right:-3px;width:6px;border-radius:0 3px 3px 0;background:linear-gradient(90deg,#00000052,transparent 60%),linear-gradient(180deg,#fdfcf8,#e6e2d8)}
/* Hero in the site's own voice: sans display type, compact stats, no scenery. */
/* Room for the three stacked covers so they do not run into the text. */
@media(min-width:481px){.bl-cat{grid-template-columns:minmax(150px,.85fr) minmax(0,1fr)}}
/* The latest reading sits directly in the hero, without a card of its own. */
/* The filters stay where the collection starts instead of following the page. */
.bl-library{scroll-margin-top:90px}
.bl-toolbar{position:static}
@media(max-width:560px){.bl-tab{padding:10px 8px}}
@media(max-width:760px){.bl-toolbar .bl-filters{flex-wrap:nowrap}.bl-toolbar .bl-filters label:first-child{flex-basis:auto}}
/* The latest reading leads the page; the page title becomes a compact header above it. */
/* Each book has the proportions of its own cover (--r = width ÷ height), so nothing is cropped. */
.bl-book{--r:.6667;aspect-ratio:var(--r)}
.bl-book[data-format="manga"]{--r:.7033;aspect-ratio:var(--r)}
/* On the shelves and in the recent row every book fits a 2:3 slot and stands on its base. */
.bl-book-stage{container-type:inline-size}
.bl-book-stage>.bl-book{width:min(100%,calc(150cqw*var(--r)));justify-self:center}
.bl-row li{container-type:inline-size}
.bl-row .bl-book{width:min(100%,calc(150cqw*var(--r)));margin-top:max(0px,calc(150cqw - 100cqw/var(--r)))}
/* Compact hero: the whole featured book fits in the first screen, over a glow in the colours of its cover. */

/* On narrow screens the featured book is centred and larger, with its details centred beneath. */
@media(max-width:760px){
}
/* The glow fades to nothing inside its own box, so no browser can show a clipped rectangle around it. */
/* Category cards: an upright stack that fans out on hover. No tilt and no page block, which looked ragged at this size. */
.bl-cat-stack .bl-book::before{display:none}
.bl-cat-stack .bl-book{transform-origin:bottom left;transition:transform .35s ease}
.bl-cat-stack .bl-book:nth-child(2){transform:scale(.92)}
.bl-cat-stack .bl-book:nth-child(3){transform:scale(.84)}
.bl-cat:hover .bl-cat-stack .bl-book:nth-child(1),.bl-cat:focus-visible .bl-cat-stack .bl-book:nth-child(1){transform:translateY(-4px)}
.bl-cat:hover .bl-cat-stack .bl-book:nth-child(2),.bl-cat:focus-visible .bl-cat-stack .bl-book:nth-child(2){transform:translateX(8px) scale(.92)}
.bl-cat:hover .bl-cat-stack .bl-book:nth-child(3),.bl-cat:focus-visible .bl-cat-stack .bl-book:nth-child(3){transform:translateX(16px) scale(.84)}
/* Glow made of two plain gradients tinted by the script; blur filters drew visible rectangles in Safari. */
/* One type family for the whole library: the site's sans. Book-cover placeholders keep their own lettering. */
.bl-main{--bl-sans:system-ui,-apple-system,"Segoe UI",sans-serif}
.bl-section-head h2{font:650 clamp(22px,2.2vw,28px)/1.15 var(--bl-sans);letter-spacing:-.03em}
.bl-cat-title{font:650 clamp(24px,2.4vw,32px)/1.1 var(--bl-sans);letter-spacing:-.035em}
.bl-cat-count{font:500 14px/1.4 var(--bl-sans)}
.bl-row a>strong{font:600 14px/1.35 var(--bl-sans)}
.bl-numbers strong{font:700 26px/1.1 var(--bl-sans);letter-spacing:-.03em}
.bl-feature-copy h1,.bl-feature-copy h2{font:700 clamp(30px,3.6vw,50px)/1.06 var(--bl-sans);letter-spacing:-.045em}
.bl-note{font:400 18px/1.6 var(--bl-sans)}
.bl-prose{font:400 17px/1.8 var(--bl-sans)}
/* Page header as a single slim row: title and description on the left, the two counts as plain text on the right. */
.bl-numbers p{display:flex;flex-direction:column;margin:0}
/* 0.12 · Top of the archive as one scene: the intro on the left; on the right the latest reading standing in front
   of the five before it, on a lit floor, over a glow in the colours of its cover and a faint count of readings. */
.bl-top{position:relative;display:grid;grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);gap:clamp(8px,1.5vw,24px);align-items:center;margin:6px 0 52px;isolation:isolate}
.bl-top::before{content:"";position:absolute;inset:-70px 0 -40px 0;z-index:-2;pointer-events:none;background:radial-gradient(ellipse 30% 42% at 70% 44%,rgb(var(--glow-a,110 82 190)/.42),transparent 100%),radial-gradient(ellipse 18% 34% at 80% 62%,rgb(var(--glow-b,90 60 170)/.2),transparent 100%),radial-gradient(ellipse 24% 42% at 25% 45%,#7c5cff1c,transparent 100%)}
.bl-top-copy{position:relative;z-index:2}
.bl-top .bl-eyebrow{margin:0 0 14px;font-size:11px;font-weight:600;letter-spacing:2.4px;color:var(--bl-violet-soft)}
.bl-top h1{font:700 clamp(38px,4.9vw,66px)/1.03 var(--bl-sans);letter-spacing:-.05em;margin:0;color:#f7f3ff}
.bl-top h1 em{font-style:normal;background:linear-gradient(90deg,#b9a2ff,#8f6bff);-webkit-background-clip:text;background-clip:text;color:transparent}
.bl-top h1 .bl-line{display:block}
.bl-top .bl-intro{font:400 16px/1.55 var(--bl-sans);color:#c9c2d6;max-width:34ch;margin:18px 0 30px}
.bl-top-stats{display:flex;flex-wrap:wrap;gap:12px 0;margin:0;padding:0;list-style:none}
.bl-top-stats li{display:flex;flex-direction:column;padding:0 clamp(16px,2.2vw,30px);border-left:1px solid var(--bl-line)}
.bl-top-stats li:first-child{padding-left:0;border-left:0}
.bl-top-stats strong{font:700 clamp(26px,2.7vw,36px)/1 var(--bl-sans);letter-spacing:-.04em;color:#fff}
.bl-top-stats span{display:flex;align-items:center;gap:7px;margin-top:9px;font:400 14px/1.3 var(--bl-sans);color:#c5bed2}
.bl-top-stats .bl-icon{width:16px;height:16px;stroke-width:1.8}
/* Faint count of readings behind the covers. */
.bl-top-mark{position:absolute;z-index:-1;left:34%;top:2%;display:flex;flex-direction:column;margin:0;font:800 clamp(120px,19vw,250px)/.86 var(--bl-sans);letter-spacing:-.06em;color:#8f7bd60f;pointer-events:none;user-select:none}
.bl-top-mark small{margin:0 0 10px 6px;font:600 clamp(11px,1.1vw,15px)/1 ui-monospace,monospace;letter-spacing:.5em;text-transform:uppercase;color:#a99be02b}
.bl-fan{position:relative;height:clamp(380px,41vw,520px)}
/* Lit floor under the books. */
.bl-fan::before{content:"";position:absolute;left:14%;right:0;bottom:-9%;height:30%;z-index:0;background:radial-gradient(closest-side,#8a63ff66,#8a63ff26 55%,transparent 100%);pointer-events:none}
/* The older covers sink into the dark where the caption sits. */
.bl-fan::after{content:"";position:absolute;left:-12%;bottom:-6%;width:78%;height:70%;z-index:4;background:radial-gradient(ellipse 50% 62% at 42% 100%,#0b0b10 30%,#0b0b10d9 55%,transparent 100%);pointer-events:none}
.bl-fan-item{position:absolute;display:block;transform-origin:50% 100%;transition:transform .55s cubic-bezier(.2,.8,.2,1);animation:bl-rise .9s cubic-bezier(.2,.8,.2,1) backwards,bl-float 8s ease-in-out infinite}
.bl-fan-item .bl-book{box-shadow:14px 18px 28px #000b}
.bl-fan-item .bl-book::after{background:#0b0b10;opacity:var(--dim,0);box-shadow:none}
.bl-fan-main{left:49%;bottom:7%;width:31%;max-width:310px;z-index:5;rotate:-4deg}
.bl-fan-main .bl-book{box-shadow:26px 30px 50px #000d,0 0 60px rgb(var(--glow-a,110 82 190)/.25)}
.bl-fan-main .bl-book::before{right:-7px;width:12px}
.bl-fan-item[data-fan="1"]{left:33%;bottom:10%;width:24%;max-width:235px;z-index:4;rotate:-3deg;--dim:.3;--hx:-14px;animation-delay:.08s,-2s}
.bl-fan-item[data-fan="2"]{left:68%;bottom:10%;width:24%;max-width:235px;z-index:3;rotate:6deg;--dim:.3;--hx:16px;animation-delay:.16s,-4s}
.bl-fan-item[data-fan="3"]{left:20%;bottom:12%;width:20%;max-width:195px;z-index:2;rotate:-6deg;--dim:.48;--hx:-24px;animation-delay:.24s,-5.5s}
.bl-fan-item[data-fan="4"]{left:80%;bottom:12%;width:17%;max-width:170px;z-index:2;rotate:11deg;--dim:.5;--hx:26px;animation-delay:.32s,-7s}
.bl-fan-item[data-fan="5"]{left:9%;bottom:14%;width:17%;max-width:165px;z-index:1;rotate:-9deg;--dim:.62;--hx:-32px;animation-delay:.4s,-3s}
.bl-fan:hover .bl-fan-item,.bl-fan:focus-within .bl-fan-item{transform:translate(var(--hx,0),-6px)}
.bl-fan-item:hover .bl-book::after,.bl-fan-item:focus-visible .bl-book::after{opacity:0}
@keyframes bl-rise{from{opacity:0;transform:translateY(36px) scale(.94)}}
@keyframes bl-float{50%{translate:0 -8px}}
/* The caption of the latest reading sits straight on the scene, over the fading covers. */
.bl-last{position:absolute;left:4%;bottom:4%;z-index:8;width:min(42%,420px);animation:bl-rise .9s .3s cubic-bezier(.2,.8,.2,1) backwards}
.bl-last .bl-chip{margin:0 0 10px;padding:0;border:0;background:none;gap:0;font-size:10.5px;letter-spacing:2px;color:var(--bl-violet-soft)}
.bl-last .bl-chip .bl-dot{background:var(--bl-violet);box-shadow:0 0 12px var(--bl-violet)}
.bl-last h2{font:700 clamp(22px,2.5vw,34px)/1.1 var(--bl-sans);letter-spacing:-.035em;margin:0 0 6px;overflow-wrap:anywhere;color:#fff}
.bl-last-author{margin:0 0 16px;font:400 clamp(14px,1.3vw,17px)/1.4 var(--bl-sans);color:#cfc8d8}
.bl-last .bl-link{gap:12px;padding:0 0 5px;border-bottom:2px solid var(--bl-violet);font:600 clamp(14px,1.3vw,17px)/1.4 var(--bl-sans);color:#fff}
.bl-last .bl-link:hover{color:var(--bl-violet-soft)}
@media(max-width:900px){.bl-top{grid-template-columns:1fr;gap:20px}.bl-top .bl-intro{max-width:52ch}.bl-top::before{background:radial-gradient(ellipse 42% 30% at 56% 62%,rgb(var(--glow-a,110 82 190)/.36),transparent 100%),radial-gradient(ellipse 30% 20% at 68% 78%,rgb(var(--glow-b,90 60 170)/.2),transparent 100%)}.bl-top-mark{left:auto;right:0;top:0}.bl-fan{height:clamp(400px,66vw,520px)}}
@media(max-width:700px){body .site-main.bl-main .bl-top h1{font-size:clamp(36px,10.5vw,46px);line-height:1.04;letter-spacing:-.045em}body .site-main.bl-main .bl-last h2{font-size:24px;line-height:1.12}body .site-main.bl-main .bl-top p.bl-chip{font-size:9.5px;letter-spacing:1.6px;line-height:1.4}body .site-main.bl-main .bl-last p.bl-last-author{font-size:14.5px}}
/* Phones: the latest reading comes right after the intro, larger and centred; the counts follow it. */
@media(max-width:560px){
 .bl-top{display:flex;flex-direction:column;align-items:stretch;gap:0}
 .bl-top-copy{display:contents}
 .bl-top .bl-intro{margin-bottom:6px}
 .bl-top-mark{top:auto;right:-4%;margin-top:150px;font-size:42vw}
 .bl-fan{order:1;height:auto;padding-top:156%;margin:14px 0 30px}
 .bl-fan::before{left:0;right:0;bottom:22%;height:18%}
 .bl-fan::after{left:-6%;width:112%;bottom:0;height:46%;background:linear-gradient(0deg,#0b0b10 52%,#0b0b10d9 68%,transparent 100%)}
 .bl-fan-main{left:19%;bottom:31%;width:62%;max-width:none;rotate:-2deg}
 .bl-fan-item[data-fan="1"]{left:-3%;bottom:36%;width:36%;max-width:none;--dim:.4}
 .bl-fan-item[data-fan="2"]{left:67%;bottom:36%;width:36%;max-width:none;--dim:.45}
 .bl-fan-item[data-fan="3"],.bl-fan-item[data-fan="4"],.bl-fan-item[data-fan="5"]{display:none}
 .bl-last{left:0;right:0;bottom:0;width:auto}
 .bl-top-stats{order:2;justify-content:space-between}
}
/* Tilted covers must never widen the page. */
body.bl-body{overflow-x:clip}
/* The caption fades while it swaps to the book being pointed at. */
.bl-last>*{transition:opacity .14s ease,translate .14s ease}
.bl-last.is-changing>*{opacity:0;translate:0 4px}
.bl-fan-item:hover,.bl-fan-item:focus-visible{filter:none}
/* The cover being pointed at comes forward with a halo in its own colour (--halo, violet when unknown). */
.bl-fan-item .bl-book{transition:transform .4s ease,box-shadow .35s ease}
.bl-fan-item:hover,.bl-fan-item:focus-visible{z-index:6}
.bl-fan-item:hover .bl-book,.bl-fan-item:focus-visible .bl-book{box-shadow:0 0 0 1px rgb(var(--halo,169 139 255)/.6),0 0 26px rgb(var(--halo,169 139 255)/.75),0 0 72px rgb(var(--halo,169 139 255)/.5),18px 24px 40px #000c}
/* The caption label is a solid violet tag so it reads at a glance. */
.bl-last .bl-chip{margin-bottom:12px;padding:6px 12px 6px 10px;border-radius:999px;background:linear-gradient(180deg,#9d7bff,#7c5cff);box-shadow:0 6px 18px #7c5cff59;font-weight:700;color:#fff}
.bl-last .bl-chip .bl-dot{margin-right:8px;background:#fff;box-shadow:0 0 10px #fff}
@media(max-width:700px){body .site-main.bl-main .bl-top p.bl-chip{color:#fff}}
.bl-last .bl-chip{white-space:nowrap;font-size:10px;letter-spacing:1.2px}
/* With a background image the scene becomes a framed panel: the photo on the right, darkened towards the text. */
.bl-top.has-image{margin-top:10px;padding:clamp(26px,3.6vw,54px) clamp(22px,3.6vw,54px) clamp(22px,3vw,44px);border:1px solid var(--bl-line);border-radius:28px;overflow:hidden;background:#0b0b10;box-shadow:0 30px 70px #0007,inset 0 1px 0 #ffffff12}
.bl-top.has-image::before{inset:0;background:linear-gradient(90deg,#0b0b10f5 0%,#0b0b10d1 30%,#0b0b1066 58%,#0b0b1026 100%),linear-gradient(0deg,#0b0b10b3 0%,transparent 34%),radial-gradient(ellipse 30% 46% at 70% 44%,rgb(var(--glow-a,110 82 190)/.22),transparent 100%),var(--hero-image) right center/cover no-repeat}
.bl-top.has-image .bl-top-mark{color:#ffffff0b}.bl-top.has-image .bl-top-mark small{color:#ffffff26}
.bl-top.has-image .bl-fan::after{background:radial-gradient(ellipse 50% 62% at 42% 100%,#0b0b10e6 25%,#0b0b1099 55%,transparent 100%)}
.bl-top.has-image .bl-fan::before{opacity:.6}
@media(max-width:900px){.bl-top.has-image::before{background:linear-gradient(180deg,#0b0b10f2 0%,#0b0b10cc 34%,#0b0b1059 62%,#0b0b10d9 100%),var(--hero-image) 72% center/cover no-repeat}}
@media(max-width:560px){.bl-top.has-image{padding:24px 18px 22px;border-radius:22px}}
.bl-top-stats{flex-wrap:nowrap}.bl-top-stats li{padding-inline:clamp(12px,1.7vw,28px)}.bl-top-stats span{white-space:nowrap}
@media(min-width:901px){.bl-top.has-image{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr)}.bl-top.has-image h1{font-size:clamp(34px,4.4vw,62px)}}
@media(max-width:560px){.bl-top-mark{display:none}}
/* Five books: the latest reading and two earlier ones on either side, all clearly visible. */
@media(min-width:901px){
 .bl-top,.bl-top.has-image{grid-template-columns:minmax(0,.76fr) minmax(0,1.24fr)}
 .bl-fan{height:clamp(390px,40vw,520px)}
 .bl-fan-main{left:44%;bottom:6%;width:31%;max-width:300px}
 .bl-fan-item[data-fan="1"]{left:26%;bottom:10%;width:25%;max-width:240px;--dim:.1}
 .bl-fan-item[data-fan="2"]{left:68%;bottom:10%;width:25%;max-width:240px;--dim:.1}
 .bl-fan-item[data-fan="3"]{left:10%;bottom:13%;width:21%;max-width:200px;--dim:.22}
 .bl-fan-item[data-fan="4"]{left:83%;bottom:13%;width:19%;max-width:185px;--dim:.24}
 .bl-last{left:0;bottom:3%;width:min(40%,380px)}
 .bl-fan::after,.bl-top.has-image .bl-fan::after{left:-10%;bottom:-8%;width:66%;height:50%;background:radial-gradient(ellipse 50% 70% at 36% 100%,#0b0b10f2 22%,#0b0b10a6 52%,transparent 100%)}
}
.bl-last h2,.bl-last-author,.bl-last .bl-link{text-shadow:0 2px 14px #000c}
/* The count of readings is a small tag in the top right corner; the fan is only as tall as its books, so it sits higher. */
.bl-top-mark,.bl-top.has-image .bl-top-mark{left:auto;right:clamp(22px,3.6vw,54px);top:clamp(20px,2.6vw,36px);z-index:3;flex-direction:row;align-items:baseline;gap:10px;font:700 clamp(22px,2.2vw,30px)/1 var(--bl-sans);letter-spacing:-.03em;color:#ffffffb3}
.bl-top-mark small,.bl-top.has-image .bl-top-mark small{margin:0;font:600 10.5px/1 ui-monospace,monospace;letter-spacing:.28em;color:#ffffff80}
.bl-top:not(.has-image) .bl-top-mark{right:0;top:0}
@media(min-width:901px){.bl-fan{height:auto;aspect-ratio:1/.6}.bl-fan-main{bottom:4%}.bl-fan-item[data-fan="1"],.bl-fan-item[data-fan="2"]{bottom:8%}.bl-fan-item[data-fan="3"],.bl-fan-item[data-fan="4"]{bottom:11%}}
@media(max-width:900px){.bl-top-mark,.bl-top.has-image .bl-top-mark{top:clamp(20px,3vw,30px)}}
/* Shelves with depth: a lit back wall, the top face the books stand on, a front edge catching violet light and a shadow beneath. */
.bl-shelves{--shelf-x:21px;row-gap:34px}
@media(min-width:1500px){.bl-shelves{--shelf-x:28px}}
@media(max-width:1050px){.bl-shelves{--shelf-x:15px}}
@media(max-width:760px){.bl-shelves{--shelf-x:13px}}
@media(max-width:480px){.bl-shelves{--shelf-x:15px}}
.bl-book-stage{padding-top:14px}
.bl-book-stage::after{left:calc(-1*var(--shelf-x));right:calc(-1*var(--shelf-x));bottom:0;height:100%;z-index:-1;border:0;border-radius:0;box-shadow:none;background:
 linear-gradient(90deg,#d9ccff5c,#b9a2ff40) left bottom 11px/100% 1px no-repeat,
 linear-gradient(#3d3349,#1c1722 45%,#0c0a10) bottom/100% 11px no-repeat,
 linear-gradient(0deg,#ffffff24,#ffffff08) left bottom 11px/100% 12px no-repeat,
 radial-gradient(ellipse 58% 62% at 50% 100%,#9d7bff26,transparent 70%) left bottom 23px/100% calc(100% - 23px) no-repeat}
.bl-book-stage>.bl-book{box-shadow:7px 2px 14px #0008,0 13px 12px -9px #000e,1px 0 0 #ffffff30 inset}
.bl-item-text{position:relative;padding-top:20px}
.bl-item-text::before{content:"";position:absolute;top:0;left:calc(-1*var(--shelf-x));right:calc(-1*var(--shelf-x));height:18px;background:linear-gradient(#000000b3,#00000040 45%,transparent);pointer-events:none}
.bl-item h3{font-size:13.5px;font-weight:600;line-height:1.4}

/* The shelf and its shadow fade out where a row ends (classes set by the script), so no square edges show. */
.bl-item{--shelf-mask:none}
.bl-item.is-row-start{--shelf-mask:linear-gradient(90deg,transparent,#000 44px)}
.bl-item.is-row-end{--shelf-mask:linear-gradient(270deg,transparent,#000 44px)}
.bl-item.is-row-start.is-row-end{--shelf-mask:linear-gradient(90deg,transparent,#000 44px,#000 calc(100% - 44px),transparent)}
.bl-book-stage::after,.bl-item-text::before{-webkit-mask-image:var(--shelf-mask);mask-image:var(--shelf-mask)}

/* Optional sagas: a fan of covers standing on the shelf. Its titles open in a drawer under that row, so nothing moves. */
.bl-series{align-self:start;grid-column:span 2}
.bl-series-summary{display:block;width:100%;margin:0;padding:0;border:0;background:none;font:inherit;color:inherit;text-align:left;cursor:pointer;-webkit-tap-highlight-color:transparent}
.bl-series-summary:focus-visible{outline:2px solid #d5b5ff;outline-offset:5px;border-radius:4px}
.bl-series-stage,.bl-series-copy{display:block}
/* Two slots wide: --u is the width of one slot, so the front cover is as large as a single title and the shelf stays level. */
/* Sizes are percentages of the stage, not container units: Safari can size the row from the window width when a saga is shown again after a filter, leaving a tall empty row. */
.bl-series-stage{display:grid;grid-template-columns:minmax(0,1fr);--u:calc((100% - 2*var(--shelf-x) - var(--stage-pad,20px))/2);--peek:15%}
.bl-series-stage::before{width:var(--u)}
.bl-series-art{grid-area:1/1;align-self:stretch;min-width:0;display:flex;justify-content:flex-start;align-items:flex-end}
.bl-series-art>.bl-book{--w:min(var(--u),calc(1.5*var(--u)*var(--r)));flex:none;width:var(--w);transform-origin:bottom right;transition:transform .4s ease,box-shadow .4s ease,filter .4s ease;box-shadow:7px 2px 14px #0008,0 13px 12px -9px #000e,1px 0 0 #ffffff30 inset}
.bl-series-art>.bl-book:nth-child(1){z-index:4}
.bl-series-art>.bl-book:nth-child(n+2){margin-left:calc(var(--peek) - var(--w))}
.bl-series-art>.bl-book:nth-child(2){z-index:3;transform:scale(.88);filter:brightness(.9)}
.bl-series-art>.bl-book:nth-child(3){z-index:2;transform:scale(.77);filter:brightness(.78)}
.bl-series-art>.bl-book:nth-child(4){z-index:1;transform:scale(.67);filter:brightness(.66)}
@media(max-width:760px){.bl-series-stage{--stage-pad:8px}}
/* Two-column phones: one slot, with the other covers barely showing behind. */
@media(max-width:480px){.bl-series{grid-column:auto}.bl-series-stage{--u:100%;--peek:6%}.bl-series-art{justify-content:center}}
/* The fan shows four covers; a longer saga says how many more wait in the drawer. */
.bl-series-more{grid-area:1/1;justify-self:end;align-self:end;z-index:5;margin:0 0 10px;padding:4px 9px;border:1px solid #c8b5ff4d;border-radius:999px;background:#17121fd9;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);font-size:11px;font-weight:600;line-height:1;color:#e6d9fb;pointer-events:none}
/* Fewer covers open the fan wider, so a short saga fills its two slots instead of leaving a gap. */
@media(min-width:481px){.bl-series[data-count="3"] .bl-series-stage{--peek:22%}.bl-series[data-count="2"] .bl-series-stage{--peek:38%}}
.bl-series-art>.bl-book:nth-child(n+2)::before{display:none}
.bl-series-summary:hover .bl-book:nth-child(1),.bl-series-summary:focus-visible .bl-book:nth-child(1){transform:translateY(-8px);box-shadow:10px 22px 26px #000c}
.bl-series-summary:hover .bl-book:nth-child(2),.bl-series-summary:focus-visible .bl-book:nth-child(2){transform:translateX(1.5cqw) scale(.88);filter:brightness(1)}
.bl-series-summary:hover .bl-book:nth-child(3),.bl-series-summary:focus-visible .bl-book:nth-child(3){transform:translateX(3cqw) scale(.77);filter:brightness(.9)}
.bl-series-summary:hover .bl-book:nth-child(4),.bl-series-summary:focus-visible .bl-book:nth-child(4){transform:translateX(4.5cqw) scale(.67);filter:brightness(.8)}
.bl-series-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.bl-series-title{display:block;min-width:0;font-size:13.5px;font-weight:600;line-height:1.4;margin:0 0 5px;overflow-wrap:anywhere}
.bl-series-arrow{flex:none;font-size:15px;line-height:1;color:#c9b3e6;transition:transform .3s ease}
.bl-series-summary:hover .bl-series-arrow,.bl-series-summary:focus-visible .bl-series-arrow{transform:translateX(3px)}
.bl-series-summary[aria-expanded="true"] .bl-series-arrow{transform:rotate(90deg)}
.bl-series-summary[aria-expanded="true"] .bl-series-title{color:#dcc8ff}
.bl-series-author{display:block;font-size:11px;color:#aaa1b1;margin:0 0 8px}
.bl-series-meta{display:block;font-size:9px;color:#bca0d0}
/* Dense flow lets the following titles fill the row beside an open saga, and the gap a two-slot saga would leave at a row end. */
.bl-collection>.bl-shelves,.bl-main>.bl-shelves{grid-auto-flow:row dense}
.bl-js .bl-series-panel:not(.is-open),html:not(.bl-js) .bl-series-close{display:none}
.bl-series-panel{position:relative;grid-column:1/-1;min-width:0;padding:20px 0 4px;isolation:isolate}
.bl-series-panel::before{content:"";position:absolute;z-index:-1;inset:0 calc(-1*var(--shelf-x));border:1px solid #c8b5ff1f;border-radius:18px;background:linear-gradient(#ffffff08,#ffffff03)}
.bl-series-panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin:0 0 22px}
.bl-series-matches{margin:0;font-size:12px;color:#c2b6cf}
.bl-series-close{flex:none;padding:0;border:0;background:none;font:inherit;font-size:12px;color:#dfcff5;cursor:pointer}
.bl-series-close:hover,.bl-series-close:focus-visible{color:#fff}
.bl-series-close:focus-visible{outline:2px solid #d5b5ff;outline-offset:4px;border-radius:4px}
/* Phones and tablets: no fan. The latest reading stands upright between the two before it, and its caption sits below instead of over the covers. */
@media(max-width:900px){
 .bl-fan{display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-end;gap:0 4%;height:auto;padding-top:0;margin:18px 0 26px}
 .bl-fan::after,.bl-top.has-image .bl-fan::after{display:none}
 .bl-fan::before{left:8%;right:8%;top:38%;bottom:auto;height:34%}
 .bl-fan .bl-fan-item{position:relative;left:auto;bottom:auto;max-width:none;rotate:0deg;--hx:0px}
 .bl-fan .bl-fan-main{order:2;width:min(38%,250px)}
 .bl-fan .bl-fan-item[data-fan="1"]{order:1;width:min(25%,165px);--dim:.28}
 .bl-fan .bl-fan-item[data-fan="2"]{order:3;width:min(25%,165px);--dim:.28}
 .bl-fan .bl-fan-item[data-fan="3"],.bl-fan .bl-fan-item[data-fan="4"],.bl-fan .bl-fan-item[data-fan="5"]{display:none}
 .bl-fan .bl-last{position:relative;order:4;flex:1 1 100%;left:auto;right:auto;bottom:auto;width:auto;margin-top:26px}
}
@media(max-width:560px){.bl-fan{gap:0 3.5%}.bl-fan .bl-fan-main{width:44%}.bl-fan .bl-fan-item[data-fan="1"],.bl-fan .bl-fan-item[data-fan="2"]{width:24%}.bl-fan .bl-fan-item:not(.bl-fan-main) .bl-cover-fallback{padding:10% 9% 8% 12%}.bl-fan .bl-fan-item:not(.bl-fan-main) .bl-cover-fallback strong{font-size:11px;-webkit-line-clamp:4}.bl-fan .bl-fan-item:not(.bl-fan-main) .bl-cover-fallback small{font-size:5px}.bl-fan .bl-fan-item:not(.bl-fan-main) .bl-cover-fallback>span{font-size:14px}}
/* The caption ends with the author line: the cover and the title are the links to the book. */
.bl-last .bl-last-author{margin-bottom:0}
/* Yearly reading goal under the hero counts. */
/* A div, not a paragraph: the theme's mobile type scale enlarges every paragraph in .site-main. */
.bl-main .bl-goal{display:flex;flex-direction:column;gap:8px;max-width:340px;margin:24px 0 0;font:400 13px/1.3 var(--bl-sans);color:#c5bed2}
.bl-goal-bar{display:block;height:6px;border-radius:99px;background:#ffffff14;overflow:hidden}
.bl-goal-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--bl-violet),var(--bl-violet-soft))}
.bl-goal.is-done .bl-goal-text{color:#fff}
@media(max-width:560px){.bl-main .bl-goal{order:3;max-width:none;margin-top:20px}}
