.library{max-width:72rem;padding-block:clamp(1.25rem,3vw,2rem) 5rem;padding-left:max(1.25rem, env(safe-area-inset-left));padding-right:max(1.25rem, env(safe-area-inset-right));font-family:var(--font-text);margin:0 auto}.library [hidden]{display:none!important}.lib-back{margin:0 0 1.5rem;font-size:.9rem}.lib-back a{color:var(--accent)}.lib-head{margin-top:clamp(2rem,5vw,3.25rem)}.lib-head h1{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:clamp(2.2rem,5.5vw,3.4rem);font-weight:400;line-height:1.05}.lib-stats{max-width:60ch;color:var(--ink-soft);margin:.75rem 0 0;font-size:clamp(1rem,2vw,1.15rem);line-height:1.5}.library .continue{max-width:32rem;margin:3rem 0 0}.started{margin:1.5rem 0 0}.started-row{scroll-snap-type:x proximity;scrollbar-width:none;gap:.75rem;margin:0;padding:0 0 .25rem;list-style:none;display:flex;overflow-x:auto}.started-row::-webkit-scrollbar{display:none}.started-book{scroll-snap-align:start;flex:none;width:13rem;position:relative}.started-book a{box-sizing:border-box;border:1px solid var(--ruling);border-left:3px solid var(--ink);background:var(--surface);height:100%;color:var(--ink);gap:.3rem;padding:.75rem 2.25rem .8rem .9rem;text-decoration:none;display:grid}.started-book a:hover{border-left-color:var(--accent)}.started-title{font-family:var(--font-display);-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:1.05rem;font-weight:500;line-height:1.15;display:-webkit-box;overflow:hidden}.started-where{color:var(--ink-soft);font-size:.8rem}.started-bar{background:var(--ruling);height:3px;margin-top:auto;display:block}.started-bar span{background:var(--ink);height:100%;display:block}.started-remove{width:2.5rem;height:2.5rem;color:var(--ink-faint);cursor:pointer;background:0 0;border:0;font-size:1.25rem;line-height:1;position:absolute;top:0;right:0}.started-remove:hover{color:var(--accent)}.started-remove:focus-visible,.started-book a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.started-undo{color:var(--ink-soft);margin:.5rem 0 0;font-size:.85rem}.started-undo button{font:inherit;color:var(--accent);cursor:pointer;background:0 0;border:0;padding:.4rem .25rem;text-decoration:underline}.library .colophon{border-top:1px solid var(--ruling);max-width:62ch;color:var(--ink-faint);margin-top:5rem;padding-top:1.5rem;font-size:.85rem;line-height:1.6}@media (width<=47.99rem){.lib-head{margin-top:1.5rem}.lib-head h1{font-size:2.1rem}.lib-stats{margin-top:.4rem;font-size:1rem}.library.home{padding-top:0}.started{margin:1rem calc(-1 * max(1.25rem, env(safe-area-inset-right))) .25rem 0}.started-row{padding-right:1.25rem}}.lenses{margin-top:0}.lens-bar{border-bottom:1px solid var(--ruling);align-items:baseline;gap:.25rem 1.25rem;display:flex}.lens-tabs{scrollbar-width:none;align-items:baseline;gap:1.75rem;min-width:0;display:flex;position:relative;overflow-x:auto}.lens-tabs::-webkit-scrollbar{display:none}.lens-tab{min-height:48px;font-family:var(--font-display);color:var(--ink-faint);white-space:nowrap;align-items:center;font-size:clamp(1.1rem,2.4vw,1.35rem);text-decoration:none;transition:color .2s;display:inline-flex}.lens-tab:hover{color:var(--ink-soft)}.lens-tab[aria-selected=true]{color:var(--ink)}.lens-ink{background:var(--accent);border-radius:1px;height:1.5px;transition:left .32s cubic-bezier(.2,.8,.2,1),width .32s cubic-bezier(.2,.8,.2,1),opacity .2s;position:absolute;bottom:0}.sort{z-index:6;display:flex;position:relative}.sort-btn{min-height:44px;font:inherit;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;align-items:center;gap:.35rem;margin:0;padding:0;font-size:.92rem;display:inline-flex}.sort-now{color:var(--ink);text-decoration:underline;text-decoration-color:var(--ruling);text-underline-offset:.25em}.sort-btn:hover .sort-now{text-decoration-color:var(--ink-faint)}.sort-btn svg{fill:none;stroke:currentColor;stroke-width:1.5px;width:.75rem;height:.75rem;transition:transform .2s}.sort-btn[aria-expanded=true] svg{transform:rotate(180deg)}.sort-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.sort-menu{background:var(--surface);border:1px solid var(--ruling);border-radius:var(--radius);min-width:12rem;margin:.25rem 0 0;padding:.35rem 0;list-style:none;animation:.18s cubic-bezier(.2,.8,.2,1) backwards menu-in;position:absolute;top:100%;left:-.75rem;box-shadow:0 12px 32px #0000001f}.sort-menu a{min-height:44px;color:var(--ink-soft);align-items:center;padding:0 .75rem 0 1rem;font-size:.95rem;text-decoration:none;display:flex}.sort-menu a:hover,.sort-menu a:focus-visible{color:var(--ink);background:color-mix(in srgb, var(--ink) 5%, transparent);outline:none}.sort-menu a[aria-current=true]{color:var(--ink);box-shadow:inset 2px 0 0 var(--accent)}@keyframes menu-in{0%{opacity:0;transform:translateY(-.35rem)}}.lens-tools button{font:inherit;color:var(--ink-soft);border:1px solid var(--ruling);border-radius:var(--radius);cursor:pointer;background:0 0;padding:.35rem .7rem}.lens-tools button:hover:not(:disabled){color:var(--accent);border-color:currentColor}.lens-tools button:disabled{opacity:.4;cursor:default}.lens-tab:focus-visible,.lens-tools button:focus-visible,.stage .w:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.lens-tools{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem 2rem;margin-top:1rem;display:flex}.lens-note{max-width:62ch;color:var(--ink-faint);margin:0;font-size:.85rem;line-height:1.55}.zoom{gap:.35rem;display:flex}.zoom button{min-width:2.25rem;font-size:1rem;line-height:1}.lens-error,.lens-empty{color:var(--ink-soft);margin:2rem 0 0}.stage{margin-top:1.5rem;position:relative}.stage .w{color:var(--ink);text-decoration:none}.is-flow .w.is-out{opacity:.16}.stage-wall{grid-template-columns:repeat(auto-fill,minmax(min(100%,19rem),1fr));column-gap:2.5rem;display:grid}.is-flow .w{border-top:1px solid var(--ruling);flex-direction:column;gap:.9rem;padding:1.4rem 0 1.6rem;animation:.4s ease-out backwards lens-appear;display:flex}.is-flow .w-dot{display:none}.w-incipit{font-family:var(--font-text);text-wrap:pretty;font-size:1.12rem;line-height:1.55}.w-incipit:before{content:"„"}.w-incipit:after{content:"”"}.is-flow .w-meta{opacity:0;gap:.15rem;transition:opacity .2s;display:grid}.is-flow .w:hover .w-meta,.is-flow .w:focus-visible .w-meta{opacity:1}.is-flow .w:hover .w-incipit{color:var(--accent)}@media (hover:none){.is-flow .w-meta{opacity:.85}}.w-title{font-family:var(--font-display);letter-spacing:-.01em;font-size:1.15rem;font-weight:500;line-height:1.2}.w-by{color:var(--ink-faint);font-variant-numeric:tabular-nums;font-size:.8rem}.stage-viewport{overscroll-behavior-x:contain;overflow:auto hidden}.stage-world{position:relative}.is-placed .w{width:0;height:0;animation:.4s ease-out backwards lens-appear;position:absolute}.is-placed .w-dot{background:var(--ink-soft);border-radius:50%;width:7px;height:7px;position:absolute;top:-3.5px;left:-3.5px}.is-placed .w.is-long .w-dot{background:var(--ink);width:9px;height:9px;top:-4.5px;left:-4.5px}.is-placed .w.is-titled .w-dot{width:5px;height:5px;top:-2.5px;left:-2.5px}.is-placed .w.is-over .w-dot{display:none}.is-placed .w:before{content:"";position:absolute;inset:-6px}.is-placed .w-meta{transform:translateY(calc(var(--title-size,16px) * -.575));white-space:nowrap;pointer-events:none;display:grid;position:absolute;top:0;left:8px}.is-placed .w.is-titled .w-meta{left:var(--title-offset)}.is-placed .w.on-left .w-meta{left:auto;right:var(--title-offset);text-align:right}.is-placed .w-title{color:var(--ink);font-size:var(--title-size,1rem);line-height:1.15}.is-placed .w.face-display .w-title{font-family:var(--font-display);letter-spacing:-.01em;font-weight:500}.is-placed .w.face-ui .w-title{font-family:var(--font-ui);color:var(--ink-soft)}.is-placed .w-by{font-size:12px;line-height:1.4}.is-placed .w.is-titled .w-meta{pointer-events:auto}.is-placed .w.is-open{z-index:3}.is-placed .w.is-open .w-title{color:var(--accent)}.is-placed .w.is-open .w-meta{text-shadow:0 0 3px var(--paper), 0 0 6px var(--paper)}.is-placed .w.is-open:not(.is-titled) .w-meta{background:var(--paper);border:1px solid var(--ruling);border-radius:var(--radius);padding:.3rem .5rem;transform:translateY(-50%)}.is-placed .w.is-open:not(.is-titled) .w-title{font-family:var(--font-display);font-size:1rem}.is-placed .w.is-out .w-dot,.is-placed.has-kin .w:not(.is-kin) .w-dot{background:var(--ruling)}.is-placed .w.is-out .w-title,.is-placed .w.is-out .w-by,.is-placed.has-kin .w:not(.is-kin) .w-title,.is-placed.has-kin .w:not(.is-kin) .w-by{color:var(--ruling)}.is-placed .w.is-kin .w-dot{background:var(--accent)}.is-placed .w.is-kin{z-index:2}.g-tick{border-left:1px solid var(--ruling);position:absolute;top:0;bottom:0}.g-tick-label{white-space:nowrap;font-family:var(--font-ui);color:var(--ink-faint);font-variant-numeric:tabular-nums;font-size:.75rem;position:absolute;top:.2rem;left:.35rem}.g-gap{background:repeating-linear-gradient(135deg, transparent 0 5px, var(--ruling) 5px 6px);position:absolute;top:0;bottom:0}.g-gap-label{writing-mode:vertical-rl;background:var(--paper);font-family:var(--font-ui);color:var(--ink-faint);font-variant-numeric:tabular-nums;padding:.3rem 0;font-size:.7rem;position:absolute;left:50%;transform:translate(-50%)}.g-band{border:1px solid var(--ink-faint);border-top:0;border-radius:0 0 2px 2px;height:1.15rem;margin:0 2px;position:absolute}.g-band-label{width:fit-content;max-width:100%;font-family:var(--font-display);color:var(--ink-faint);white-space:nowrap;text-overflow:ellipsis;padding:0 .35rem;font-size:.8rem;font-style:italic;line-height:1.1rem;display:block;position:sticky;left:0;overflow:hidden}.g-label{font-family:var(--font-ui);color:var(--ink-soft);white-space:nowrap;text-shadow:0 0 3px var(--paper), 0 0 3px var(--paper), 0 0 6px var(--paper);pointer-events:none;z-index:1;font-size:.8rem;line-height:1;position:absolute;transform:translate(-50%,-50%)}.g-label.has-kin{pointer-events:auto;cursor:default}.g-label.has-kin:hover{color:var(--accent)}.g-span{border-top:1px solid var(--accent);pointer-events:none;height:0;position:absolute}.g-span:before,.g-span:after{content:"";border-left:1px solid var(--accent);height:7px;position:absolute;top:-4px}.g-span:before{left:0}.g-span:after{right:0}.g-span-label{color:var(--accent);white-space:nowrap;font-size:.75rem;position:absolute;top:.35rem;left:0}.g-density{pointer-events:none;position:absolute;overflow:visible}.g-density path{fill:var(--ink-faint);opacity:.5}@keyframes lens-appear{0%{opacity:0}to{opacity:1}}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=47.99rem){.lens-bar{z-index:5;margin:0 calc(-1 * max(1.25rem, env(safe-area-inset-right))) 0 calc(-1 * max(1.25rem, env(safe-area-inset-left)));padding:0 max(1.25rem, env(safe-area-inset-right)) 0 max(1.25rem, env(safe-area-inset-left));background:var(--paper);position:sticky;top:0}.lens-tabs{flex:1;gap:1.1rem;padding-right:1.25rem;mask-image:linear-gradient(90deg,#000 calc(100% - 1.25rem),#0000)}.lens-tab{font-family:var(--font-ui);font-size:.95rem}.lens-tools{flex-direction:column}.lens-tools:not(:has(.lens-note,.zoom,.reshuffle)){display:none}.stage{margin-top:.5rem}}@media (prefers-reduced-motion:reduce){.is-flow .w,.is-placed .w{animation:none}.is-flow .w-meta{transition:none}}.stage.is-waiting{border:1px solid var(--ruling);border-radius:var(--radius);place-items:center;min-height:18rem;display:grid}.stage.is-waiting.is-map,.stage.is-waiting.is-places{height:min(76vh,46rem)}.stage-wait{color:var(--ink-faint);font-size:.85rem;animation:1.4s ease-in-out infinite alternate stage-wait}@keyframes stage-wait{0%{opacity:.35}}@media (width<=47.99rem){.stage.is-waiting{margin-inline:calc(-1 * max(1.25rem, env(safe-area-inset-left)));border-inline:0;border-radius:0}.stage.is-waiting.is-map{height:62svh}.stage.is-waiting.is-places{height:71.5976vw}}@media (prefers-reduced-motion:reduce){.stage-wait{animation:none}}
