.library{--lib-ease-in-out:cubic-bezier(0.77,0,0.175,1);--wood:#9a7448;--plank-top:color-mix(in oklab,var(--bg-raised) 82%,var(--wood) 18%);--plank-front:color-mix(in oklab,var(--bg-sunk) 66%,var(--wood) 34%)}.lib-top{position:sticky;top:0;z-index:30;transition:background-color .3s ease,box-shadow .3s ease}.lib-top[data-scrolled]{background:color-mix(in oklab,var(--bg) 86%,transparent);box-shadow:0 1px 0 var(--rule);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.lib-hero{padding:clamp(24px,5vh,52px) 0 24px}.lib-hero-row{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:20px 32px}.lib-add{display:inline-flex;height:56px;flex-shrink:0;align-items:center;gap:16px;padding:0 10px 0 13px;border-radius:999px;border:1px solid var(--rule-strong);background:var(--bg-raised);box-shadow:0 1px 0 rgb(0 0 0/.03),0 6px 18px -10px rgb(0 0 0/.22);color:var(--ink);animation:rise .6s .15s var(--ease-out) both;transition:transform .16s var(--ease-out),border-color .25s ease,box-shadow .3s var(--ease-out)}.lib-add:active{transform:scale(.98)}.lib-add-title{display:block;font-size:14.5px;font-weight:600;line-height:1.25}.lib-add-sub{display:block;margin-top:1px;font-size:12.5px;line-height:1.3;color:var(--ink-3)}.lib-add-plus{display:grid;width:34px;height:34px;flex-shrink:0;margin-left:6px;place-items:center;border-radius:999px;background:var(--bg-sunk);color:var(--ink-2);transition:background-color .25s ease,color .25s ease,transform .45s var(--ease-out)}@media (hover:hover) and (pointer:fine){.lib-add:hover{border-color:color-mix(in oklab,var(--ink) 26%,var(--rule-strong));box-shadow:0 1px 0 rgb(0 0 0/.03),0 12px 26px -12px rgb(0 0 0/.32)}.lib-add:hover .lib-add-plus{background:var(--ink);color:var(--bg);transform:rotate(90deg)}.lib-add:hover .mark-disc:nth-child(2){transform:translateX(4px)}.lib-add:hover .mark-disc:nth-child(3){transform:translateX(8px)}}.lib-add.is-compact{height:40px;margin-left:auto;gap:12px;padding:0 15px 0 7px;animation:none}@media (hover:hover) and (pointer:fine){.lib-add.is-compact:hover .mark-disc:nth-child(2){transform:translateX(2px)}.lib-add.is-compact:hover .mark-disc:nth-child(3){transform:translateX(4px)}}.lib-add.is-compact .lib-add-title{font-size:13.5px}@media (max-width:639px){.lib-add:not(.is-compact){width:100%}.lib-add:not(.is-compact) .lib-add-plus{margin-left:auto}}.mark-stack{display:inline-flex;flex-shrink:0;isolation:isolate}.mark-disc{position:relative;display:grid;width:var(--mark);height:var(--mark);place-items:center;border-radius:999px;background:var(--bg);color:var(--ink);box-shadow:0 0 0 2px var(--bg-raised),0 0 0 2.5px var(--rule-strong);transition:transform .4s var(--ease-out)}.mark-disc+.mark-disc{margin-left:calc(var(--mark) * -.28)}.lib-title{font-family:var(--font-serif);font-size:clamp(42px,6vw,72px);font-weight:420;line-height:.98;letter-spacing:-.03em;color:var(--ink);font-variation-settings:"opsz" 72;animation:rise .7s var(--ease-out) both}.lib-stats{display:flex;min-height:21px;flex-wrap:wrap;gap:4px 0;margin-top:14px;font-size:14px;color:var(--ink-3);animation:rise .7s .08s var(--ease-out) both}.lib-stats>span:not(:last-child):after{content:"·";margin:0 10px;color:var(--ink-4)}.lib-stats b{font-weight:500;color:var(--ink);font-variant-numeric:tabular-nums}.lib-tools{display:flex;flex-wrap:wrap;align-items:center;gap:10px;animation:rise .7s .18s var(--ease-out) both}.lib-tools.is-topic{padding-top:22px;animation:none}.lib-switch{display:inline-grid;grid-template-columns:1fr 1fr;padding:3px;background:var(--bg-sunk)}.lib-switch,.lib-switch button{position:relative;border-radius:999px}.lib-switch button{z-index:1;display:inline-flex;height:32px;align-items:center;justify-content:center;gap:7px;padding:0 15px;font-size:13.5px;font-weight:500;color:var(--ink-3);transition:color .2s ease}.lib-switch button[aria-checked=true]{color:var(--ink)}.lib-switch-pill{position:absolute;top:3px;bottom:3px;left:3px;width:calc((100% - 6px) / 2);border-radius:999px;background:var(--bg-raised);box-shadow:0 1px 2px rgb(0 0 0/.08),0 2px 8px -2px rgb(0 0 0/.1);transition:transform .32s var(--ease-out)}.lib-switch[data-view=topics] .lib-switch-pill{transform:translateX(100%)}.lib-back{display:inline-flex;height:38px;align-items:center;gap:4px;padding:0 14px 0 9px;border-radius:999px;font-size:13.5px;font-weight:500;color:var(--ink-2);background:var(--bg-sunk);transition:background-color .2s ease,color .2s ease}.lib-back:hover{color:var(--ink);background:color-mix(in oklab,var(--bg-sunk) 80%,var(--ink) 8%)}.lib-search{display:flex;height:38px;width:260px;max-width:100%;align-items:center;gap:8px;padding:0 10px 0 13px;border-radius:999px;border:1px solid var(--rule);background:var(--bg-raised);transition:border-color .2s ease}.lib-search:focus-within{border-color:var(--rule-strong)}.lib-search input{height:100%;min-width:0;flex:1;background:transparent;font-size:14px;color:var(--ink);outline:none}.lib-search input::placeholder{color:var(--ink-4)}@media (max-width:639px){.lib-search{width:100%;order:3}}.lib-sort{display:inline-flex;align-items:center;margin-left:auto;padding:3px;border-radius:999px;background:var(--bg-sunk)}.lib-sort button{height:30px;padding:0 12px;border-radius:999px;font-size:13px;font-weight:500;color:var(--ink-3);transition:color .2s ease,background-color .2s ease,box-shadow .2s ease}.lib-sort button:hover{color:var(--ink)}.lib-sort button[aria-checked=true]{color:var(--ink);background:var(--bg-raised);box-shadow:0 1px 2px rgb(0 0 0/.08)}.lib-chips{display:flex;gap:6px;overflow-x:auto;margin:14px -16px 0;padding:2px 16px 4px;animation:rise .7s .24s var(--ease-out) both}@media (min-width:640px){.lib-chips{flex-wrap:wrap;margin:14px 0 0;padding:2px 0 4px}}.lib-chip{display:inline-flex;height:32px;flex-shrink:0;align-items:center;gap:5px;padding:0 12px 0 10px;border-radius:999px;border:1px solid var(--rule);background:var(--bg-raised);font-size:13px;font-weight:500;color:var(--ink-2);transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .16s var(--ease-out)}.lib-chip:hover{border-color:var(--rule-strong);color:var(--ink)}.lib-chip:active{transform:scale(.97)}.lib-chip[aria-pressed=true]{border-color:transparent;background:var(--c,var(--ink));color:var(--bg)}.lib-chip[aria-pressed=true][style]{color:#fff}.lib-emoji{font-size:14px;line-height:1}.lib-n{font-variant-numeric:tabular-nums;color:var(--ink-4);font-weight:400}.lib-chip[aria-pressed=true] .lib-n{color:inherit;opacity:.65}.lib-tools .lib-chips{margin:0;padding:0;animation:none}.lib-chip-row{position:relative;margin:14px -16px 0;animation:rise .7s .2s var(--ease-out) both}.lib-chip-row .lib-chips{flex-wrap:nowrap;margin:0;padding:2px 16px 4px;animation:none}@media (min-width:640px){.lib-chip-row{margin:16px 0 0}.lib-chip-row .lib-chips{padding:2px 0 4px}}.lib-chip-row[data-r] .lib-chips{mask-image:linear-gradient(90deg,#000 calc(100% - 80px),transparent)}.lib-chip-row[data-l] .lib-chips{mask-image:linear-gradient(90deg,transparent,#000 80px)}.lib-chip-row[data-l][data-r] .lib-chips{mask-image:linear-gradient(90deg,transparent,#000 80px,#000 calc(100% - 80px),transparent)}.lib-chip-page{position:absolute;top:calc(50% - 1px);z-index:1;display:grid;width:30px;height:30px;place-items:center;border-radius:999px;border:1px solid var(--rule);background:var(--bg-raised);color:var(--ink-2);box-shadow:var(--shadow-card);opacity:0;pointer-events:none;transform:translateY(-50%) scale(.88);transition:opacity .2s ease,transform .3s var(--ease-out),color .2s ease}.lib-chip-page.is-l{left:0}.lib-chip-page.is-r{right:0}.lib-chip-row[data-l]:hover .lib-chip-page.is-l,.lib-chip-row[data-r]:hover .lib-chip-page.is-r{opacity:1;pointer-events:auto;transform:translateY(-50%)}.lib-chip-page:hover{color:var(--ink)}@media (hover:none){.lib-chip-page{display:none}}.lib-hint{margin-top:8px;text-align:center;font-size:12.5px;color:var(--ink-4);animation:fade 1s 1.4s both}.bookcase{position:relative;margin-top:34px;transition:height .6s var(--ease-out)}.bookcase>*{position:absolute;top:0;left:0}.plank{right:0;height:18px;border-radius:2px 2px 4px 4px;background:linear-gradient(180deg,var(--plank-top) 0 6px,color-mix(in oklab,var(--plank-front),white 14%) 6px 7px,var(--plank-front) 7px 100%),var(--plank-front);box-shadow:inset 0 -2px 0 rgb(0 0 0/.08),0 18px 24px -14px rgb(40 30 20/.45);transition:transform .6s var(--ease-out);animation:plank-in .8s var(--ease-out) both;animation-delay:calc(var(--i) * 90ms)}.plank:before{content:"";position:absolute;left:0;right:0;bottom:100%;height:26px;background:linear-gradient(0deg,rgb(40 30 20/.09),transparent);pointer-events:none}[data-theme=ink] .plank:before,[data-theme=night] .plank:before{background:linear-gradient(0deg,rgb(0 0 0/.3),transparent)}@keyframes plank-in{0%{opacity:0;clip-path:inset(0 50% 0 50%)}to{opacity:1;clip-path:inset(0 0 0 0)}}.plank-label{display:inline-flex;align-items:center;height:26px;padding:0 9px 0 8px;border-radius:999px;font-size:12.5px;font-weight:500;color:var(--ink-3);white-space:nowrap;transition:transform .75s var(--lib-ease-in-out),background-color .2s ease,color .2s ease;animation:fade .5s .4s both}.plank-n{margin-left:6px;font-weight:400;font-variant-numeric:tabular-nums;color:var(--ink-4)}button.plank-label:hover{background:var(--bg-sunk);color:var(--ink)}button.plank-label:hover .plank-n{color:var(--ink-3)}.bookend{color:color-mix(in oklab,var(--ink) 30%,#8f8577);transition:transform .75s var(--lib-ease-in-out);pointer-events:none}.shelf-pile,.shelf-plant{pointer-events:none;transition:transform .75s var(--lib-ease-in-out),opacity .4s var(--ease-out)}.shelf-pile[data-hidden],.shelf-plant[data-hidden]{opacity:0}.plant-leaves{transform-origin:46px 86px;animation:sway 7s ease-in-out infinite}@keyframes sway{50%{transform:rotate(-2deg)}}.shelf-pile span{display:block;height:14px;margin-top:1px;border-radius:2px;box-shadow:inset 0 0 0 1px rgb(0 0 0/.12);background-image:linear-gradient(180deg,rgb(255 255 255/.14),transparent 40%,rgb(0 0 0/.16))!important;position:relative}.shelf-pile span:after{content:"";position:absolute;top:3px;bottom:3px;left:12px;width:7px;border-left:1.5px solid rgb(255 255 255/.4);border-right:1.5px solid rgb(255 255 255/.4)}.bk-x{transition:transform .8s var(--lib-ease-in-out);will-change:transform;pointer-events:none}.bk-y{transition:transform .8s var(--ease-out)}.bk-x[data-jump],.bk-y[data-jump]{transition:none}.bk-in{transition:opacity .4s var(--ease-out),transform .5s var(--ease-out)}.bk-in[data-out]{opacity:0;transform:translateY(-34px) rotate(-2deg);pointer-events:none}.is-entering .bk-in:not([data-out]){animation:book-drop .75s var(--ease-out) both;animation-delay:calc(var(--i) * 26ms + .12s)}@keyframes book-drop{0%{opacity:0;transform:translateY(-40px)}}.bk-in[data-fresh]{animation:book-fresh 1.2s var(--ease-out) both}.bk-in[data-fresh] .spine{box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--rubric),3px 0 6px -3px rgb(0 0 0/.35)}@keyframes book-fresh{0%{opacity:0;transform:translateY(-160px) rotate(-10deg)}55%{opacity:1;transform:translateY(0) rotate(0)}72%{transform:translateY(-12px) rotate(1deg)}to{transform:none}}.bk{pointer-events:auto;display:block;padding:0;border:0;background:none;border-radius:2px;outline:none}.bk .spine{transition:transform .32s var(--ease-out),box-shadow .32s var(--ease-out),filter .32s ease}@media (hover:hover) and (pointer:fine){.bk:hover .spine{transform:translateY(-14px);box-shadow:inset 0 0 0 1px rgb(0 0 0/.12),5px 10px 16px -8px rgb(0 0 0/.42);filter:brightness(1.04);transition-duration:.42s,.42s,.3s;transition-timing-function:var(--ease-spring),var(--ease-out),ease}}.bk:active .spine{transform:translateY(-8px) scale(.985);transition-duration:.12s}.bk:focus-visible .spine{transform:translateY(-14px);outline:2px solid var(--rubric);outline-offset:3px}.spine{position:relative;display:flex;flex-direction:column;align-items:center;border-radius:2px 2px 1px 1px;font-family:var(--font-serif);box-shadow:inset 0 0 0 1px rgb(0 0 0/.12),3px 0 6px -3px rgb(0 0 0/.35);user-select:none}.spine:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(90deg,rgb(0 0 0/.24),rgb(255 255 255/.13) 15%,rgb(255 255 255/.04) 32%,transparent 58%,rgb(0 0 0/.2)),repeating-linear-gradient(0deg,rgb(255 255 255/.035) 0 1px,transparent 1px 3px)}.spine-title-wrap{position:relative;display:flex;min-height:0;width:100%;flex:1;align-items:center;justify-content:center;overflow:hidden;padding:34px 3px 8px}.spine-title{writing-mode:vertical-rl;max-height:100%;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:1.12;font-weight:460;letter-spacing:.004em}.spine.is-wide .spine-title{white-space:normal;text-wrap:balance;max-block-size:2.24em;text-overflow:clip}.spine-title-wrap.is-label{flex:0 1 auto;width:calc(100% - 10px);max-height:62%;margin:36px 0 10px;padding:12px 2px;border-radius:1px;background:#f4ecda;color:#2a2520;box-shadow:inset 0 0 0 1px rgb(0 0 0/.14),inset 0 0 0 3px #f4ecda,inset 0 0 0 4px rgb(0 0 0/.1)}.spine-title-wrap.is-label+.spine-author{margin-top:auto}.spine[data-style=sans] .spine-title{font-family:var(--font-sans);font-weight:500;letter-spacing:.01em}.spine[data-style=foil] .spine-title{font-weight:480;color:#ecd391}.spine[data-style=foil][data-light] .spine-title{color:#5a3f12}.spine-bands{position:absolute;left:0;right:0;height:7px;border-top:1.5px solid color-mix(in oklab,var(--fg) 55%,transparent);border-bottom:1.5px solid color-mix(in oklab,var(--fg) 55%,transparent)}.spine-bands.top{top:13px}.spine-bands.bottom{bottom:30px}.spine-orn{position:absolute;top:11px;font-size:10px;color:#ecd391;opacity:.85}.spine[data-light] .spine-orn{color:#5a3f12}.glyph{display:inline-block;flex-shrink:0;vertical-align:-.22em;object-fit:contain;user-select:none}.spine-emoji{position:absolute;top:8px;filter:drop-shadow(0 1px 1px rgb(0 0 0/.3))}.spine-author{position:relative;max-width:100%;overflow:hidden;padding:0 4px 10px;line-height:1.2;white-space:nowrap;opacity:.8}.spine-author,.spine-by{font-family:var(--font-sans);font-weight:500;letter-spacing:.01em}.spine-by{margin-inline-start:.8em;font-size:.78em;opacity:.76}.spine[data-style=bands] .spine-author{padding-bottom:42px}.spine[data-style=bands] .spine-title-wrap{padding-bottom:6px}.spine.is-narrow[data-style=bands] .spine-title-wrap{padding-bottom:40px}.spine.is-narrow .spine-title-wrap{padding-bottom:14px}.spine-ribbon{position:absolute;top:-13px;right:24%;width:7px;height:15px;background:var(--rubric);clip-path:polygon(0 0,100% 0,100% 100%,0 100%);box-shadow:inset -1px 0 0 rgb(0 0 0/.15)}.cover{position:relative;display:flex;width:100%;height:100%;flex-direction:column;overflow:hidden;border-radius:inherit;container-type:inline-size}.cover:before{inset:4cqw 4cqw 4cqw 9cqw;border:1px solid color-mix(in oklab,currentColor 28%,transparent)}.cover:after,.cover:before{content:"";position:absolute;pointer-events:none}.cover:after{inset:0;background:radial-gradient(120% 70% at 20% 0,rgb(255 255 255/.13),transparent 60%),linear-gradient(90deg,rgb(0 0 0/.16),rgb(255 255 255/.08) 3%,transparent 8%,transparent 88%,rgb(0 0 0/.07)),repeating-linear-gradient(0deg,rgb(255 255 255/.025) 0 1px,transparent 1px 3px)}.cover-plate{position:relative;flex-shrink:0;aspect-ratio:1.1;margin:9cqw 9cqw 0 13cqw;overflow:hidden;border-radius:1px;background:#f4ecd9;box-shadow:0 0 0 1px rgb(0 0 0/.18),0 2px 6px -2px rgb(0 0 0/.35)}.cover-plate img{width:100%;height:100%;object-fit:cover}.cover-plate img.is-revealing{animation:plate-in 1.1s .25s var(--ease-out) both}@keyframes plate-in{0%{opacity:0;transform:scale(1.08)}}.cover-glyph{margin:-.3cqw 0 0 -.4cqw;width:4.8cqw!important;height:4.8cqw!important}.cover-type{position:relative;display:flex;min-height:0;flex:1;flex-direction:column;justify-content:flex-end;padding:0 9cqw 10cqw 14cqw}.cover-kicker{display:flex;align-items:center;gap:2.4cqw;font-family:var(--font-sans);font-size:4.2cqw;font-weight:500;line-height:1;letter-spacing:.01em;opacity:.78}.cover-title{margin-top:4.5cqw;display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:3;font-family:var(--font-serif);font-size:8.8cqw;font-weight:500;line-height:1.04;letter-spacing:-.015em;text-wrap:balance}.cover-author{margin-top:3.6cqw;font-family:var(--font-sans);font-size:4.6cqw;font-weight:500;letter-spacing:.01em;opacity:.82}.cover-hinge{position:absolute;top:0;bottom:0;left:5.5cqw;width:1.6cqw;background:linear-gradient(90deg,rgb(0 0 0/.16),rgb(255 255 255/.12))}.topic-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:18px;margin-top:30px}.topic-card{position:relative;display:flex;flex-direction:column;overflow:hidden;border-radius:22px;border:1px solid color-mix(in oklab,var(--c) 16%,var(--rule));background:color-mix(in oklab,var(--c) 7%,var(--bg-raised));text-align:left;box-shadow:var(--shadow-card);transition:transform .3s var(--ease-out),box-shadow .3s var(--ease-out),border-color .3s ease;animation:rise .6s var(--ease-out) both;animation-delay:calc(var(--i) * 60ms)}.topic-card-art{height:188px;overflow:hidden;background:color-mix(in oklab,var(--c) 9%,#f6efdf);border-bottom:1px solid color-mix(in oklab,var(--c) 14%,transparent)}.topic-card-art img,.topic-head-art img{width:100%;height:100%;object-fit:cover;mix-blend-mode:multiply;animation:art-in .9s var(--ease-out) both;animation-delay:calc(var(--i, 0) * 60ms + 80ms);transition:transform .6s var(--ease-out)}@keyframes art-in{0%{opacity:0;transform:scale(1.06)}}@media (hover:hover) and (pointer:fine){.topic-card:hover .topic-card-art img{transform:scale(1.04)}}.mini-shelf{display:flex;height:72px;align-items:flex-end;gap:2px;margin:6px 20px 20px;border-bottom:5px solid color-mix(in oklab,var(--c) 30%,var(--rule-strong));border-radius:0 0 2px 2px}.mini-spine{display:block;flex-shrink:0;border-radius:1.5px 1.5px 0 0;background-image:linear-gradient(90deg,rgb(0 0 0/.2),rgb(255 255 255/.12) 25%,transparent 60%,rgb(0 0 0/.16));box-shadow:inset 0 0 0 1px rgb(0 0 0/.1);transition:transform .3s var(--ease-out);transition-delay:calc(var(--j) * 22ms)}@media (hover:hover) and (pointer:fine){.topic-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-pop);border-color:color-mix(in oklab,var(--c) 30%,var(--rule))}.topic-card:hover .mini-spine{transform:translateY(-7px)}}.topic-card:active{transform:scale(.99)}.topic-head{display:grid;gap:28px;align-items:end;padding-top:26px}.topic-head-art{height:200px;overflow:hidden;border-radius:22px;border:1px solid color-mix(in oklab,var(--c) 14%,var(--rule));background:color-mix(in oklab,var(--c) 9%,#f6efdf)}@media (min-width:860px){.topic-head{grid-template-columns:minmax(0,1fr) 420px;gap:48px}.topic-head-art{order:2;height:280px}}.face-out{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(46%,168px),1fr));gap:40px 28px;margin-top:26px;padding-top:10px}.face-out>li{animation:rise .6s var(--ease-out) both;animation-delay:calc(var(--i) * 45ms + .12s)}.face-btn{display:block;width:100%;padding:0;border:0;background:none;perspective:900px;outline:none}.face-cover{position:relative;aspect-ratio:1/1.42;border-radius:3px 6px 6px 3px;box-shadow:0 1px 1px rgb(0 0 0/.1),0 20px 32px -18px rgb(40 30 20/.55),0 4px 10px -4px rgb(40 30 20/.2);transform-origin:left center;transition:transform .35s var(--ease-out),box-shadow .35s var(--ease-out)}@media (hover:hover) and (pointer:fine){.face-btn:hover .face-cover{transform:rotateY(-16deg) translateY(-4px);box-shadow:0 1px 1px rgb(0 0 0/.1),18px 26px 36px -18px rgb(40 30 20/.6),0 4px 10px -4px rgb(40 30 20/.2)}}.face-btn:focus-visible .face-cover{outline:2px solid var(--rubric);outline-offset:4px}.face-ribbon{position:absolute;bottom:-16px;right:22%;width:9px;height:22px;background:var(--rubric);clip-path:polygon(0 0,100% 0,100% 100%,50% 78%,0 100%)}.ob-stage{position:fixed;inset:0;z-index:90}.ob-backdrop{position:absolute;inset:0;background:color-mix(in oklab,var(--bg) 70%,transparent);backdrop-filter:blur(10px) saturate(.9);-webkit-backdrop-filter:blur(10px) saturate(.9);animation:fade .45s var(--ease-out) both;transition:opacity .5s .42s var(--ease-out)}.ob-stage[data-phase=out] .ob-backdrop{opacity:0;pointer-events:none}.ob-world{position:absolute;inset:0;perspective:2400px;pointer-events:none;transition:transform .42s var(--ease-out),opacity .42s var(--ease-out)}.ob-stage[data-phase=leaving] .ob-world{transform:scale(1.08);opacity:0}.ob-shift{position:absolute;left:50%;top:50%;transform-style:preserve-3d}.ob-book{transform-style:preserve-3d;pointer-events:auto}.ob-book,.ob-face{position:absolute;left:0;top:0}.ob-face{width:100%;height:100%;backface-visibility:hidden;-webkit-backface-visibility:hidden}.ob-back,.ob-board{border-radius:6px 3px 3px 6px}.ob-board{border-radius:3px 6px 6px 3px;box-shadow:inset 0 0 0 1px rgb(0 0 0/.15),0 34px 60px -30px rgb(0 0 0/.55)}.ob-spine{overflow:hidden}.ob-spine .spine{box-shadow:none;border-radius:0}.ob-edge{background:repeating-linear-gradient(90deg,#f4eddd 0 1px,#e0d6bf 1px 2px)}.ob-edge.is-top{background:repeating-linear-gradient(0deg,#f4eddd 0 1px,#e0d6bf 1px 2px)}.ob-page{overflow:hidden;border-radius:2px 5px 5px 2px;background:var(--bg-raised);color:var(--ink);box-shadow:inset 14px 0 18px -14px rgb(0 0 0/.28),1px 1px 0 rgb(0 0 0/.08),2px 2px 0 #ece4d2,3px 3px 0 rgb(0 0 0/.06)}.ob-page-in{display:flex;height:100%;flex-direction:column;overflow-y:auto;padding:26px 24px 20px 30px}.ob-page-in>*{opacity:0;transform:translateY(8px);transition:opacity .2s var(--ease-out),transform .2s var(--ease-out)}.ob-stage[data-phase=leaving] .ob-page-in>*,.ob-stage[data-phase=open] .ob-page-in>*{opacity:1;transform:none;transition-duration:.55s}.ob-stage[data-phase=open] .ob-page-in>:nth-child(2){transition-delay:50ms}.ob-stage[data-phase=open] .ob-page-in>:nth-child(3){transition-delay:.1s}.ob-stage[data-phase=open] .ob-page-in>:nth-child(4){transition-delay:.14s}.ob-stage[data-phase=open] .ob-page-in>:nth-child(5){transition-delay:.18s}.ob-stage[data-phase=open] .ob-page-in>:nth-child(6){transition-delay:.22s}.ob-stage[data-phase=open] .ob-page-in>:nth-child(7){transition-delay:.26s}.ob-stage[data-phase=open] .ob-page-in>:nth-child(8){transition-delay:.3s}.ob-stage[data-phase=open] .ob-page-in>:nth-child(9){transition-delay:.34s}.ob-kicker{display:flex;align-items:center;justify-content:space-between;gap:8px}.ob-chip{position:relative;display:inline-flex;min-width:0;height:28px;align-items:center;gap:6px;padding:0 9px 0 7px;border-radius:999px;background:color-mix(in oklab,var(--c) 13%,transparent);color:color-mix(in oklab,var(--c) 78%,var(--ink));font-size:12.5px;font-weight:500;white-space:nowrap;cursor:pointer;transition:background-color .2s ease}.ob-chip:hover{background:color-mix(in oklab,var(--c) 20%,transparent)}.ob-chip:focus-within{outline:2px solid var(--rubric);outline-offset:2px}.ob-chip select{position:absolute;inset:0;width:100%;opacity:0;cursor:pointer}.ob-chip-caret{margin-left:-1px;opacity:.6}.ob-tools{display:inline-flex;flex-shrink:0;gap:2px;margin-right:-6px}.ob-title{margin-top:18px;font-family:var(--font-serif);font-size:27px;font-weight:450;line-height:1.08;letter-spacing:-.016em;text-wrap:balance}.ob-title-btn{font:inherit;letter-spacing:inherit;text-align:inherit;text-wrap:inherit;color:inherit;cursor:text;border-radius:4px;text-decoration:underline dashed transparent 1px;text-underline-offset:5px;transition:text-decoration-color .2s ease}.ob-title-btn:hover{text-decoration-color:var(--rule-strong)}.ob-title-field{display:block;width:100%;resize:none;overflow:hidden;field-sizing:content;min-height:1.08em;padding:0;margin-bottom:-2px;border:0;border-bottom:1.5px solid var(--rubric);background:transparent;color:inherit;outline:none}.ob-author{margin-top:9px;font-size:14px;font-weight:500;line-height:1.35;color:var(--ink-2)}.ob-meta{display:block;margin-top:2px;font-size:12.5px;font-weight:400;color:var(--ink-3);font-variant-numeric:tabular-nums}.ob-dek{display:-webkit-box;margin-top:18px;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:5;font-family:var(--font-serif);font-size:15.5px;line-height:1.5;color:var(--ink-2);text-wrap:pretty}.ob-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}.ob-tags>span{padding:3px 9px 3px 7px;border-radius:999px;border:1px solid var(--rule);font-size:12px;color:var(--ink-2)}.ob-progress{display:flex;flex-direction:column;gap:7px;margin-top:auto;padding-top:18px;font-size:12.5px;color:var(--ink-3)}.ob-bar{display:block;height:3px;overflow:hidden;border-radius:9px;background:var(--rule)}.ob-bar>span{display:block;height:100%;border-radius:inherit;background:var(--rubric)}.ob-actions{margin-top:14px}.ob-read{display:flex;width:100%;height:44px;align-items:center;justify-content:center;gap:8px;border-radius:999px;background:var(--ink);color:var(--bg);font-size:14.5px;font-weight:500;transition:transform .15s var(--ease-out),opacity .2s ease}.ob-read:active{transform:scale(.98)}.ob-read:disabled{opacity:.75}.ob-err{margin-top:8px;font-size:12.5px;line-height:1.4;color:var(--rubric-text)}.ob-sub{display:flex;justify-content:space-between;margin-top:10px}.ob-link,.ob-sub{align-items:center}.ob-link{display:inline-flex;gap:6px;font-size:12.5px;color:var(--ink-3);transition:color .2s ease}.ob-link:hover{color:var(--ink)}.ob-link kbd{font-size:10px;padding:2px 5px}.ob-cover{position:absolute;inset:0;transform-origin:left center;transform-style:preserve-3d}.ob-cover-front{overflow:hidden;border-radius:3px 6px 6px 3px;box-shadow:0 34px 60px -30px rgb(0 0 0/.55)}.ob-cover-inside{display:grid;place-items:center;transform:rotateY(180deg);border-radius:6px 3px 3px 6px;border:5px solid var(--c);background-color:color-mix(in oklab,var(--c2) 18%,#f6f0e3);background-image:radial-gradient(color-mix(in oklab,var(--c) 20%,transparent) 1px,transparent 1.4px),radial-gradient(color-mix(in oklab,var(--c) 11%,transparent) 1px,transparent 1.4px);background-size:14px 14px;background-position:0 0,7px 7px;box-shadow:inset -16px 0 22px -16px rgb(0 0 0/.28),0 34px 60px -30px rgb(0 0 0/.5)}.ex-libris{display:flex;width:70%;flex-direction:column;align-items:center;padding:22px 18px 18px;border-radius:2px;background:#fbf8f1;color:#2a2520;text-align:center;box-shadow:inset 0 0 0 1px rgb(0 0 0/.12),inset 0 0 0 5px #fbf8f1,inset 0 0 0 6px rgb(0 0 0/.08),0 1px 1px rgb(0 0 0/.06),0 12px 24px -14px rgb(0 0 0/.38)}.ex-art{display:grid;height:62px;place-items:center}.ex-art .glyph{margin:0 auto}.ex-head{margin-top:12px;font-family:var(--font-sans);font-size:11.5px;color:#8a7f71}.ex-name{margin-top:3px;max-width:100%;font-family:var(--font-serif);font-size:22px;font-weight:450;line-height:1.15;letter-spacing:-.01em;text-wrap:balance}.ex-rule{display:block;width:28px;height:1px;margin:12px 0 10px;background:rgb(0 0 0/.16)}.ex-meta{font-family:var(--font-sans);font-size:11px;color:#9a8f81}::view-transition{pointer-events:none}::view-transition-group(.lib-morph){animation-duration:.6s;animation-timing-function:cubic-bezier(.77,0,.175,1)}::view-transition-image-pair(.lib-morph){animation-name:lib-soften}@keyframes lib-soften{40%{filter:blur(1.5px)}}::view-transition-old(.lib-exit){animation:lib-out .22s var(--ease-out) both}::view-transition-new(.lib-enter){animation:lib-in .5s .12s var(--ease-out) both}@keyframes lib-out{to{opacity:0;transform:translateY(-6px)}}@keyframes lib-in{0%{opacity:0;transform:translateY(12px)}}@media (prefers-reduced-motion:reduce){.bk-x,.bk-y,.bookend,.plank-label,.shelf-pile,.shelf-plant{transition-duration:0s!important}.bk-in[data-fresh],.is-entering .bk-in:not([data-out]),.plank,.plant-leaves{animation:none}.bk-in[data-out],.bk:hover .spine,.face-btn:hover .face-cover,.topic-card:hover{transform:none}.cover-plate img.is-revealing,.topic-card-art img,.topic-head-art img{animation:fade .4s both}::view-transition-group(*),::view-transition-new(*),::view-transition-old(*){animation-duration:0s!important;animation-delay:0s!important}}.duotone{position:relative;display:block;background:var(--ink-c);isolation:isolate}.duotone,.duotone img{width:100%;height:100%}.duotone img{object-fit:cover;filter:grayscale(1) contrast(1.15) brightness(1.08);mix-blend-mode:screen}.duotone:after{content:"";position:absolute;inset:0;background:#f1e5cc;mix-blend-mode:multiply;pointer-events:none}.ob-icon{display:grid;width:30px;height:30px;flex-shrink:0;place-items:center;border-radius:999px;color:var(--ink-3);transition:color .2s ease,background-color .2s ease,transform .15s var(--ease-out)}.ob-icon:hover{color:var(--ink);background:var(--bg-sunk)}.ob-icon:active{transform:scale(.92)}.ob-icon[aria-pressed=true]{color:#c99a1d}.ob-tags>span.is-word{border-style:dashed;color:var(--ink-3)}.lib-news{display:inline-flex;align-items:center;gap:8px;margin-top:16px;padding:5px 14px 5px 7px;border-radius:999px;border:1px solid color-mix(in oklab,#8e3b76 30%,var(--rule));background:color-mix(in oklab,#8e3b76 8%,var(--bg-raised));font-size:13.5px;font-weight:500;color:var(--ink);animation:rise .6s .3s var(--ease-out) both;transition:transform .15s var(--ease-out)}.lib-news:active{transform:scale(.98)}.starter{display:grid;gap:14px;margin-top:26px;animation:rise .6s .5s var(--ease-out) both}@media (min-width:900px){.starter{grid-template-columns:1.6fr 1fr 1fr}}.starter-card{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:20px;border-radius:20px;border:1px solid var(--rule);background:var(--bg-raised);text-align:left;box-shadow:var(--shadow-card);transition:border-color .2s ease,transform .25s var(--ease-out)}button.starter-card:hover{border-color:var(--rule-strong)}button.starter-card:active{transform:scale(.99)}.starter-card.is-classics{flex-direction:row;align-items:center;gap:22px}@media (max-width:560px){.starter-card.is-classics{flex-direction:column;align-items:flex-start}}.starter-fan{position:relative;width:150px;height:120px;flex-shrink:0}.starter-fan img{position:absolute;top:10px;left:calc(var(--i) * 22px);width:66px;height:92px;object-fit:cover;border-radius:2px 4px 4px 2px;box-shadow:0 1px 1px rgb(0 0 0/.1),0 10px 18px -10px rgb(0 0 0/.5);transform:rotate(calc((var(--i) - 2) * 4deg)) translateY(calc(abs(var(--i) - 2) * 4px));transition:transform .35s var(--ease-out)}@media (hover:hover) and (pointer:fine){.starter-card:hover .starter-fan img{transform:rotate(calc((var(--i) - 2) * 7deg)) translateY(calc(abs(var(--i) - 2) * 6px - 6px))}}.starter-title{font-family:var(--font-serif);font-size:20px;line-height:1.15;color:var(--ink)}.starter-body{font-size:13px;line-height:1.5;color:var(--ink-3)}.starter-icon{display:grid;width:42px;height:42px;margin-bottom:4px;place-items:center;border-radius:12px;background:var(--bg-sunk);color:var(--ink-2)}.starter-icon.is-agent{width:auto;place-items:center start;background:none}.add-btn,.starter-btn{display:inline-flex;height:36px;align-items:center;gap:7px;margin-top:8px;padding:0 16px;border-radius:999px;background:var(--ink);color:var(--bg);font-size:13.5px;font-weight:500;transition:transform .15s var(--ease-out),opacity .2s ease}.add-btn{margin-top:0}.add-btn:active,.starter-btn:active{transform:scale(.97)}.add-btn:disabled,.starter-btn:disabled{opacity:.55}.starter-note{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--ink-4)}.add-panel{position:absolute;left:50%;top:max(6vh,24px);width:min(560px,calc(100vw - 24px));max-height:calc(100dvh - max(12vh, 48px));overflow-y:auto;translate:-50% 0;padding:18px 20px 22px;border-radius:22px;border:1px solid var(--rule);background:var(--bg-raised);box-shadow:var(--shadow-pop);animation:pop-in .22s var(--ease-out) both}.add-text{display:block;width:100%;margin-top:14px;padding:12px 14px;border-radius:14px;border:1px solid var(--rule);background:var(--bg);font-size:14px;line-height:1.5;color:var(--ink);resize:vertical;outline:none;transition:border-color .2s ease}.add-text:focus{border-color:var(--rule-strong)}.add-text::placeholder{color:var(--ink-4)}.add-rows{max-height:260px;margin-top:14px;overflow-y:auto;border-top:1px solid var(--rule)}.add-rows li{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--rule);animation:rise .35s var(--ease-out) both}.add-dot{display:grid;width:22px;height:22px;flex-shrink:0;place-items:center;border-radius:999px;background:var(--bg-sunk);color:var(--ink-3)}.add-rows li[data-state=already] .add-dot,.add-rows li[data-state=saved] .add-dot{background:color-mix(in oklab,var(--good) 16%,transparent);color:var(--good)}.add-rows li[data-state=failed] .add-dot{background:var(--rubric-wash);color:var(--rubric-text)}.lib-label{font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-4)}.arr{position:fixed;left:50%;bottom:max(20px,env(safe-area-inset-bottom));z-index:90;width:min(520px,calc(100vw - 32px));padding:14px 14px 16px 16px;overflow:hidden;border-radius:20px;border:1px solid var(--rule-strong);background:var(--bg-raised);box-shadow:0 24px 60px -20px rgb(0 0 0/.4),0 2px 6px rgb(0 0 0/.06);transform:translateX(-50%);animation:arr-in .45s var(--ease-out) both}.arr[data-leaving]{animation:arr-out .24s var(--ease-out) both}@keyframes arr-in{0%{opacity:0;transform:translate(-50%,28px) scale(.96)}}@keyframes arr-out{to{opacity:0;transform:translate(-50%,16px) scale(.98)}}.arr-head{display:flex;align-items:center;gap:10px}.arr-who{display:grid;width:30px;height:30px;flex-shrink:0;place-items:center;border-radius:999px;background:var(--bg);color:var(--ink);box-shadow:0 0 0 1px var(--rule-strong)}.arr:not([data-done]) .arr-who{animation:arr-pulse 1.6s ease-in-out infinite}@keyframes arr-pulse{50%{box-shadow:0 0 0 1px var(--rule-strong),0 0 0 6px color-mix(in oklab,var(--ink) 8%,transparent)}}.arr-line{min-width:0;flex:1;font-size:14px;line-height:1.35;color:var(--ink-2)}.arr-line b{font-weight:600;color:var(--ink)}.arr-count{min-width:26px;height:22px;padding:0 7px;place-items:center;background:var(--ink);color:var(--bg);font-size:12px;font-weight:600}.arr-count,.arr-x{display:grid;border-radius:999px}.arr-x{width:28px;height:28px;flex-shrink:0;place-items:center;color:var(--ink-3);transition:background-color .15s ease,color .15s ease}.arr-x:hover{background:var(--bg-sunk);color:var(--ink)}.arr-row{display:flex;align-items:center;gap:14px;margin-top:12px}.arr-books{display:flex;flex-shrink:0;align-items:flex-end;padding-left:4px}.arr-book{position:relative;width:34px;height:48px;overflow:hidden;border-radius:2px 4px 4px 2px;box-shadow:0 0 0 1px rgb(0 0 0/.14),2px 4px 10px -4px rgb(0 0 0/.45),inset 3px 0 0 rgb(0 0 0/.16);transform-origin:50% 100%;animation:arr-pop .55s cubic-bezier(.34,1.36,.64,1) both}.arr-book+.arr-book,.arr-book+.arr-more{margin-left:-10px}.arr-book>.duotone,.arr-book>img{position:absolute;inset:5px 4px 12px 6px;width:auto;height:auto;object-fit:cover}.arr-book>.duotone img{width:100%;height:100%}@keyframes arr-pop{0%{opacity:0;transform:translateY(-46px) rotate(-14deg) scale(.8)}60%{opacity:1}}.arr-more{display:grid;height:48px;padding:0 9px;place-items:center;border-radius:4px;background:var(--bg-sunk);color:var(--ink-2);font-size:12.5px;font-weight:600;box-shadow:0 0 0 1px var(--rule-strong);animation:fade .3s both}.arr-latest{min-width:0;flex:1;animation:arr-line .4s var(--ease-out) both}@keyframes arr-line{0%{opacity:0;transform:translateY(8px)}}.arr-title{display:block;overflow:hidden;font-family:var(--font-serif);font-size:16px;line-height:1.25;color:var(--ink);text-overflow:ellipsis;white-space:nowrap}.arr-topic{display:inline-flex;align-items:center;gap:5px;margin-top:2px;font-size:12.5px;color:var(--ink-3)}.arr-bar{position:absolute;inset:auto 0 0 0;height:3px;background:linear-gradient(90deg,transparent,color-mix(in oklab,var(--ink) 55%,transparent),transparent) 0 0 /40% 100% no-repeat;animation:arr-bar 1.4s linear infinite}@keyframes arr-bar{0%{background-position:-40% 0}to{background-position:140% 0}}.arr-actions{display:flex;align-items:center;gap:6px;margin-top:12px}.arr-show{display:inline-flex;padding:6px 14px;border-radius:999px;background:var(--ink);color:var(--bg);font-size:13px;font-weight:600;animation:arr-line .35s var(--ease-out) both;transition:transform .15s var(--ease-out)}.arr-show:active{transform:scale(.97)}.arr-undo{display:inline-flex;padding:6px 12px;border-radius:999px;color:var(--ink-3);font-size:13px;font-weight:500;animation:arr-line .35s var(--ease-out) both;transition:background-color .15s ease,color .15s ease,transform .15s var(--ease-out)}.arr-undo:hover{background:var(--bg-sunk);color:var(--ink)}.arr-undo:active{transform:scale(.97)}.arr-confetti{position:fixed;inset:0;z-index:91;pointer-events:none}.arr-confetti>span{position:fixed;will-change:transform,opacity}@media (prefers-reduced-motion:reduce){.arr,.arr-book,.arr-latest,.arr-show{animation-name:fade}.arr-bar,.arr:not([data-done]) .arr-who{animation:none}.arr[data-leaving]{animation:none;opacity:0;transition:opacity .2s ease}}