.bookcase{--line:140px;--ledge:12px;margin-top:var(--s3)}.bookcase__shelf+.bookcase__shelf{margin-top:var(--s2)}.bookcase__label{margin-bottom:var(--s0);font-size:var(--step--2);letter-spacing:var(--tracking-caps);text-transform:uppercase;color:var(--ink-mute)}.bookcase__row{align-content:flex-start;align-items:flex-end;column-gap:2px;row-gap:var(--ledge);padding-bottom:var(--ledge);background-image:repeating-linear-gradient(to bottom, transparent 0 var(--line), var(--shelf-edge) var(--line) calc(var(--line) + 2px), var(--shelf-wood) calc(var(--line) + 2px) calc(var(--line) + 8px), color-mix(in oklch, var(--shelf-wood) 72%, black) calc(var(--line) + 8px) calc(var(--line) + var(--ledge)));flex-wrap:wrap;display:flex;position:relative;overflow:clip visible}.bookcase__spine{appearance:none;font:inherit;color:inherit;width:var(--t);height:var(--line);cursor:pointer;-webkit-tap-highlight-color:transparent;translate:var(--part,0px) 0;transition:translate var(--dur-slow) var(--ease-out-expo) var(--delay,0s);background:0 0;border:0;flex:none;margin:0;padding:0;position:relative}.bookcase__spine[data-start]{margin-left:10px}@media (pointer:coarse){.bookcase__spine{min-width:24px}}.bookcase__spine:focus-visible{outline:none}.bookcase__back{height:var(--h);color:var(--spine-ink);background-color:var(--spine);background-image:linear-gradient(to bottom, transparent 7%, color-mix(in oklch, var(--spine-ink) 26%, transparent) 7% calc(7% + 1px), transparent calc(7% + 1px) calc(9% + 1px), color-mix(in oklch, var(--spine-ink) 18%, transparent) calc(9% + 1px) calc(9% + 2px), transparent calc(9% + 2px) calc(90% - 2px), color-mix(in oklch, var(--spine-ink) 18%, transparent) calc(90% - 2px) calc(90% - 1px), transparent calc(90% - 1px)), linear-gradient(to right, #0000003d, transparent 24%, #ffffff0f 46%, transparent 64%, #0003);transform-origin:50% 100%;transition:translate var(--dur-fast) var(--ease-out), opacity .12s linear;border-radius:1.5px 1.5px 0 0;justify-content:center;align-items:center;display:flex;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.bookcase__back:after{content:"";pointer-events:none;opacity:0;transition:opacity var(--dur-fast) linear;background:#ffffff14;position:absolute;inset:0}.bookcase__lettering{writing-mode:vertical-rl;max-inline-size:calc(var(--h) * .8);text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-display);font-style:italic;font-weight:500;font-size:clamp(9px, calc(var(--t) * .56), 12.5px);letter-spacing:.01em;font-kerning:normal;text-rendering:optimizelegibility;opacity:.94;line-height:1;overflow:hidden}@media (hover:hover) and (pointer:fine){.bookcase__spine:hover .bookcase__back{translate:0 -5px}.bookcase__spine:hover .bookcase__back:after{opacity:1}}.bookcase__spine:focus-visible{z-index:2}.bookcase__spine:focus-visible .bookcase__back{outline:2px solid var(--focus);outline-offset:1px;translate:0 -5px}.bookcase__spine[aria-expanded=true] .bookcase__back{opacity:0;transition:none}.bookcase__spine[data-lean] .bookcase__back{animation:.82s cubic-bezier(.3,.7,.4,1) 90ms bookcase-lean}.bookcase__spine[data-lean=right] .bookcase__back{transform-origin:100% 100%;--lean:2.2deg}.bookcase__spine[data-lean=left] .bookcase__back{transform-origin:0 100%;--lean:-2.2deg}@keyframes bookcase-lean{35%{rotate:var(--lean)}72%{rotate:calc(var(--lean) * -.2)}}.bookcase__book{left:var(--x);top:var(--y);width:var(--bw);height:var(--bh);z-index:4;pointer-events:none;transform-origin:0 100%;scale:var(--s);translate:0 var(--ly,0px);perspective:900px;perspective-origin:20% 40%;--turn:.72s cubic-bezier(.22, 1, .36, 1);transition:scale var(--turn), translate var(--dur) var(--ease-out);position:absolute}.bookcase__body{transform-style:preserve-3d;transform-origin:0;transition:transform var(--turn);position:absolute;inset:0;transform:translate(0)rotateY(90deg)}.bookcase__book[data-state=open]{translate:0;scale:1}.bookcase__book[data-state=open] .bookcase__body{transform:translateX(calc(var(--bw) * -.5)) rotateY(14deg)}.bookcase__book[data-state=open] .bookcase__front{pointer-events:auto}.bookcase__book[data-state=closing],.bookcase__book[data-state=closing] .bookcase__body{transition-duration:var(--dur);transition-timing-function:var(--ease-in-out)}.bookcase__front,.bookcase__edge{-webkit-backface-visibility:hidden;backface-visibility:hidden;position:absolute;top:0;bottom:0}.bookcase__front{transform:translateZ(calc(var(--d) / 2));background:var(--spine);cursor:pointer;border-radius:1px 3px 3px 1px;display:block;left:0;right:0;overflow:hidden;box-shadow:inset 3px 0 6px -3px #00000059}.bookcase__front img{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity .22s linear;position:absolute;inset:0}.bookcase__front img[data-ready]{opacity:1}.bookcase__front .cover-gen{--w:var(--bw)}.bookcase__front:focus-visible{outline:2px solid var(--focus);outline-offset:3px}.bookcase__edge{width:var(--d);left:calc(var(--d) / -2);color:var(--spine-ink);background-color:var(--spine);background-image:linear-gradient(90deg,#00000042,#0000 26% 74%,#0003);border-radius:2px 0 0 2px;justify-content:center;align-items:center;display:flex;overflow:hidden;transform:rotateY(-90deg)}.bookcase__edge .bookcase__lettering{max-inline-size:calc(var(--bh) * .8)}.bookcase__shadow{z-index:-1;background:radial-gradient(ellipse at 50% 40%, rgb(var(--shadow-ink) / calc(.42 * var(--shadow-a))), rgb(var(--shadow-ink) / calc(.12 * var(--shadow-a))) 46%, transparent 70%);opacity:0;width:120%;height:14px;transition:opacity var(--dur) var(--ease-out);position:absolute;bottom:-7px;left:0;translate:-50%}.bookcase__book[data-state=open] .bookcase__shadow{opacity:1}.bookcase__caption{z-index:5;padding:var(--s1) 0 calc(var(--s0) + env(safe-area-inset-bottom));isolation:isolate;position:sticky;bottom:0}.bookcase__caption:before{content:"";z-index:-1;background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-mask-image:linear-gradient(to bottom, transparent, #000 var(--s1));mask-image:linear-gradient(to bottom, transparent, #000 var(--s1));position:absolute;inset:0}.bookcase__caption{min-height:2.6rem;font-size:var(--step--1);color:var(--ink-soft);flex-wrap:wrap;align-items:baseline;gap:.25rem .9rem;display:flex}.bookcase__caption>*{animation:bookcase-caption .26s var(--ease-out) both}@keyframes bookcase-caption{0%{opacity:0;translate:0 4px}}.bookcase__hint{color:var(--ink-mute)}.bookcase__hint-touch{display:none}@media (hover:none){.bookcase__hint-fine{display:none}.bookcase__hint-touch{display:inline}}.bookcase__n{color:var(--ink-mute);font-variant-numeric:tabular-nums;min-width:2ch}.bookcase__title{font-family:var(--font-display);font-style:italic;font-size:var(--step-1);color:var(--ink-strong);line-height:1.15;text-decoration:none}a.bookcase__title:hover{color:var(--accent)}.bookcase__meta{color:var(--ink-soft)}.bookcase__guide{white-space:nowrap;font-size:var(--step--2);color:var(--accent);border:1px solid color-mix(in oklch, var(--accent) 50%, transparent);border-radius:2px;align-self:center;align-items:center;gap:.3em;padding:.25em .5em;line-height:1;display:inline-flex}.bookcase__guide:before{content:"";background:var(--accent);border-radius:50%;width:4px;height:4px}.bookcase__actions{flex-wrap:wrap;gap:.25rem 1rem;margin-left:auto;display:inline-flex}.bookcase__act{appearance:none;font:inherit;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;padding:.35rem 0;text-decoration:none}.bookcase__act:hover{color:var(--accent)}.bookcase__act--go{color:var(--ink-strong)}@media (width<=719px){.bookcase{--line:124px}.bookcase__row{margin-inline:calc(var(--gutter) * -1);padding-top:26px;padding-inline:var(--gutter);background-position:0 26px;background-repeat:repeat-x;background-size:100% calc(var(--line) + var(--ledge));overscroll-behavior-x:contain;scrollbar-width:none;background-attachment:local;flex-wrap:nowrap;overflow:auto hidden}.bookcase__row::-webkit-scrollbar{display:none}.bookcase__row:after{content:"";flex:none;width:1px}.bookcase__actions{margin-left:0}}@media (prefers-reduced-motion:no-preference){:root:not([data-vt-nav]) .page-open>.bookcase{animation:bookcase-in .52s var(--ease-out-expo) .25s backwards}@keyframes bookcase-in{0%{opacity:0;transform:translateY(7px)}}}@media (prefers-reduced-motion:reduce){.bookcase__spine,.bookcase__back,.bookcase__book,.bookcase__body{transition:none!important}.bookcase__spine[data-lean] .bookcase__back,.bookcase__caption>*{animation:none}.bookcase__book{scale:1}.bookcase__body{transform:translateX(calc(var(--bw) * -.5)) rotateY(14deg)}.bookcase__book{opacity:0;transition:opacity .16s linear!important}.bookcase__book[data-state=open]{opacity:1}}.head[data-astro-cid-xiwavarn]{padding-block:var(--s4) var(--s3)}.head[data-astro-cid-xiwavarn] h1[data-astro-cid-xiwavarn]{font-size:var(--step-4)}.head__grid[data-astro-cid-xiwavarn]{gap:var(--s3);margin-top:var(--s2);grid-template-columns:minmax(0,1fr) 18rem;align-items:start;display:grid}.head__desc[data-astro-cid-xiwavarn]{font-size:var(--step-0);color:var(--ink)}.facts[data-astro-cid-xiwavarn]{gap:var(--s1);border-top:var(--rule-section);padding-top:var(--s1);margin:0;display:grid}.facts[data-astro-cid-xiwavarn] div[data-astro-cid-xiwavarn]{gap:var(--s1);grid-template-columns:7.5rem minmax(0,1fr);align-items:baseline;display:grid}.facts[data-astro-cid-xiwavarn] dt[data-astro-cid-xiwavarn]{color:var(--ink-mute);font-size:var(--step--2);letter-spacing:var(--tracking-caps);text-transform:uppercase;align-self:baseline}.facts[data-astro-cid-xiwavarn] dd[data-astro-cid-xiwavarn]{color:var(--ink-strong);margin:0}.facts[data-astro-cid-xiwavarn] dd[data-astro-cid-xiwavarn] a[data-astro-cid-xiwavarn]{min-height:24px;margin-block:-.2em;padding-block:.2em;display:inline-block}.facts__src[data-astro-cid-xiwavarn]{color:var(--ink-soft);font-size:var(--step--2);line-height:1.5}.facts__src[data-astro-cid-xiwavarn]>summary[data-astro-cid-xiwavarn]{cursor:pointer;color:var(--ink-soft);align-items:center;min-height:32px;display:flex}.facts__src[data-astro-cid-xiwavarn]>p[data-astro-cid-xiwavarn]{margin-top:var(--s0);color:var(--ink-mute)}.segnav[data-astro-cid-xiwavarn]{gap:var(--s1) var(--s2);margin-top:var(--s3);padding:var(--s1) 0;border-top:var(--rule);border-bottom:var(--rule);top:var(--header-h);background:var(--glass-bg);backdrop-filter:var(--glass-blur);z-index:5;flex-wrap:wrap;display:flex;position:sticky}.segnav[data-astro-cid-xiwavarn] a[data-astro-cid-xiwavarn]{min-height:44px;margin-block:calc(-1 * var(--s0));color:var(--ink-soft);align-items:center;text-decoration:none;display:inline-flex}.segnav[data-astro-cid-xiwavarn] a[data-astro-cid-xiwavarn]:hover{color:var(--ink-strong)}.segnav__browse[data-astro-cid-xiwavarn]{margin-left:auto;color:var(--accent)!important}.segnav[data-astro-cid-xiwavarn]{scrollbar-gutter:stable}.segment[data-astro-cid-xiwavarn]{padding-block:var(--s3);scroll-margin-top:calc(var(--header-h) + 4rem)}.segment__head[data-astro-cid-xiwavarn]{align-items:baseline;gap:var(--s0) var(--s2);margin-bottom:var(--s2);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.segment__label[data-astro-cid-xiwavarn]{font-style:italic;font-size:var(--step-3)}.segment__sub[data-astro-cid-xiwavarn]{color:var(--ink-soft);font-size:var(--step-1);font-style:italic}.segment__desc[data-astro-cid-xiwavarn]{color:var(--ink-soft);max-width:62ch;margin-top:calc(-1 * var(--s0));grid-column:1/-1;line-height:1.5}.segment__browse[data-astro-cid-xiwavarn]{min-height:24px;color:var(--ink-mute);align-items:center;text-decoration:none;display:inline-flex}.segment__browse[data-astro-cid-xiwavarn]:hover{color:var(--accent)}.rows[data-astro-cid-xiwavarn]{border-top:var(--rule-section);margin:0;padding:0;list-style:none}.row[data-astro-cid-xiwavarn]{gap:var(--s1) var(--s2);padding:var(--s1) 0;border-bottom:var(--rule);grid-template-columns:2rem 4.5rem minmax(0,1fr) auto;align-items:baseline;scroll-margin-block:30vh;display:grid}.row--found[data-astro-cid-xiwavarn]{animation:row-found 1.8s var(--ease-out) both}@keyframes row-found{0%,30%{background:color-mix(in oklch, var(--accent-wash) 70%, transparent)}to{background:0 0}}@media (prefers-reduced-motion:reduce){.row--found[data-astro-cid-xiwavarn]{animation-duration:2.4s;animation-timing-function:step-end}}.row__n[data-astro-cid-xiwavarn]{color:var(--ink-mute);font-variant-numeric:tabular-nums;text-align:right}.row__book[data-astro-cid-xiwavarn]{align-self:center;place-items:end center;height:5.4rem;display:grid}.row__book[data-astro-cid-xiwavarn] .book[data-astro-cid-xiwavarn]{--ry:22deg}.row__text[data-astro-cid-xiwavarn]{gap:var(--s-1);min-width:0;display:grid}.row__title[data-astro-cid-xiwavarn]{font-size:var(--step-1);color:var(--ink-strong);line-height:1.15;text-decoration:none}.row__title[data-astro-cid-xiwavarn]:hover{color:var(--accent)}.row__meta[data-astro-cid-xiwavarn]{color:var(--ink-soft);font-size:var(--step--2)}.row__meta[data-astro-cid-xiwavarn] a[data-astro-cid-xiwavarn]{text-decoration:none}.row__note[data-astro-cid-xiwavarn]{color:var(--ink-mute)}.row__ed[data-astro-cid-xiwavarn]{align-items:baseline;gap:0 var(--s1);color:var(--ink-mute);font-size:var(--step--2);flex-wrap:wrap;display:flex}.row__ed-name[data-astro-cid-xiwavarn]{min-width:0}.row__buy[data-astro-cid-xiwavarn]{min-height:24px;color:var(--accent);border-bottom:1px solid color-mix(in oklch, currentColor 45%, transparent);align-items:center;margin-block:-.3em;line-height:1.2;text-decoration:none;display:inline-flex}.row__buy[data-astro-cid-xiwavarn]:hover{border-bottom-color:currentColor}.foot[data-astro-cid-xiwavarn]{padding-block:var(--s2) var(--s3)}.row__end[data-astro-cid-xiwavarn]{align-items:baseline;gap:var(--s1);justify-self:end;display:flex}.row__diff[data-astro-cid-xiwavarn]{color:var(--ink-mute);font-size:var(--step--2);letter-spacing:var(--tracking-caps);text-transform:uppercase;white-space:nowrap}.row__guide[data-astro-cid-xiwavarn]{white-space:nowrap;font-size:var(--step--2);color:var(--accent);border:1px solid color-mix(in oklch, var(--accent) 50%, transparent);border-radius:2px;align-items:center;gap:.3em;padding:.25em .5em;line-height:1;display:inline-flex}.row__guide[data-astro-cid-xiwavarn]:before{content:"";background:var(--accent);border-radius:50%;width:4px;height:4px}@media (width<=720px){.row__end[data-astro-cid-xiwavarn]{grid-column:3;justify-self:start}.row__guide[data-astro-cid-xiwavarn]{order:-1}.head__grid[data-astro-cid-xiwavarn]{grid-template-columns:1fr}.row[data-astro-cid-xiwavarn]{grid-template-columns:1.5rem 3.5rem minmax(0,1fr)}.row__diff[data-astro-cid-xiwavarn]{display:none}.segment__head[data-astro-cid-xiwavarn]{grid-template-columns:1fr}}
