:root{--ink:#1a1d24;--ink-soft:#2a2e38;--paper:#f6f3ec;--paper-dim:#e9e4d8;--teal:#0f6b62;--teal-deep:#0b534c;--brass:#c9a227;--line:#1a1d2424;--font-display:"Fraunces", Georgia, serif;--font-ui:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;font-family:var(--font-ui);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;line-height:1.5}*{box-sizing:border-box}body{background:var(--paper);min-height:100vh;color:var(--ink);margin:0}.library{max-width:64rem;margin:0 auto;padding:clamp(1.5rem,4vw,3rem) 1.25rem 4rem}.masthead h1{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-size:clamp(1.8rem,5vw,2.6rem);font-weight:600}.masthead .eyebrow{text-transform:uppercase;letter-spacing:.18em;color:var(--teal);margin:0 0 .35rem;font-size:.72rem}.masthead-rule{border:0;border-top:2px solid var(--ink);margin:1rem 0 2rem}.shelf{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:1.75rem 1.25rem;margin:0;padding:0;list-style:none;display:grid}.shelf-item{align-items:center;gap:.4rem;display:flex}.shelf-item .issue-card{flex:1;min-width:0}.issue-card{color:inherit;text-decoration:none;display:block}.issue-card.available .cover{transition:transform .2s,box-shadow .2s;box-shadow:0 1px 2px #1a1d2433,0 8px 20px #1a1d2429}.issue-card.available:hover .cover,.issue-card.available:focus-visible .cover{transform:translateY(-4px);box-shadow:0 2px 3px #1a1d2433,0 14px 28px #1a1d2438}.cover{aspect-ratio:3/4;object-fit:cover;background:var(--paper-dim);border-radius:3px;width:100%}.cover.empty{color:#1a1d2466;font-family:var(--font-display);place-items:center;font-size:2rem;display:grid}.folio{margin-top:.55rem;font-size:.85rem;line-height:1.35}.folio strong{font-family:var(--font-display);font-weight:600;display:block}.folio time{color:#1a1d2499;font-variant-numeric:tabular-nums}.folio .pages{color:var(--teal-deep)}.library-note{color:#1a1d24a6}.shelf-share{align-self:flex-start;padding:.35rem .6rem;font-size:.85rem}.shelf-share.copied{border-color:var(--teal);color:var(--teal-deep)}.reader-stage{background:var(--ink);color:var(--paper);-webkit-user-select:none;user-select:none;touch-action:none;overscroll-behavior:contain;position:fixed;inset:0;overflow:hidden}.reader-view{visibility:hidden;perspective:1400px;pointer-events:none;z-index:0;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.reader-view.active,.reader-view.leaving{visibility:visible;z-index:1}.reader-view.z-top{z-index:2}.reader-view.single .reader-page{max-width:100vw}.pages-wrap{justify-content:center;align-items:center;gap:.5vw;width:fit-content;display:flex;position:relative}.pages-wrap.smooth{transition:transform .14s ease-out}.reader-page{object-fit:contain;max-width:49.5vw;max-height:100dvh}.reader-view.spread-view.fit-width .reader-page{width:49.5vw;height:auto;max-height:none}.reader-loading{color:#f6f3ec99;margin:0;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.reader-bar{z-index:4;padding:.7rem max(.75rem, env(safe-area-inset-left));opacity:0;pointer-events:none;justify-content:center;align-items:center;gap:.5rem;transition:opacity .25s;display:flex;position:fixed;left:0;right:0}.reader-bar.top{padding-top:calc(.7rem + env(safe-area-inset-top));background:linear-gradient(var(--ink), transparent) top / 100% 140% no-repeat;top:0}.reader-bar.bottom{padding-bottom:calc(.7rem + env(safe-area-inset-bottom));background:linear-gradient(transparent, var(--ink)) bottom / 100% 160% no-repeat;bottom:0}.reader-bar.visible{opacity:1;pointer-events:auto}.reader-bar .ghost-btn{white-space:nowrap;flex-shrink:0}.reader-bar.top .reader-title{flex:auto;min-width:0}.reader-title{text-overflow:ellipsis;white-space:nowrap;text-align:center;font-family:var(--font-display);font-weight:600;overflow:hidden}.folio-counter{font-variant-numeric:tabular-nums;letter-spacing:.06em;text-align:center;min-width:7ch;color:var(--brass);font-size:.9rem}.reader-view.turning-next-spread .reader-page.turning-page-hidden,.reader-view.turning-prev-spread .reader-page.turning-page-hidden{visibility:hidden}.reader-page.turning-leaf-next,.reader-page.turning-single-next{transform-origin:0;backface-visibility:hidden;z-index:3;animation:.5s cubic-bezier(.77,0,.175,1) forwards flip-leaf-next;position:relative}.reader-page.turning-leaf-prev,.reader-page.turning-single-prev{transform-origin:100%;backface-visibility:hidden;z-index:3;animation:.5s cubic-bezier(.77,0,.175,1) forwards flip-leaf-prev;position:relative}@keyframes flip-leaf-next{0%{transform:rotateY(0)}to{transform:rotateY(-180deg)}}@keyframes flip-leaf-prev{0%{transform:rotateY(0)}to{transform:rotateY(180deg)}}.ghost-btn{appearance:none;color:var(--paper);font:inherit;cursor:pointer;background:0 0;border:1px solid #f6f3ec59;border-radius:999px;justify-content:center;align-items:center;gap:.3rem;padding:.6rem .85rem;line-height:1;transition:border-color .15s,color .15s;display:inline-flex}.ghost-btn:hover:not(:disabled),.ghost-btn:focus-visible{border-color:var(--brass);color:var(--brass)}.ghost-btn:disabled{opacity:.35;cursor:default}.ghost-btn:focus-visible{outline:2px solid var(--brass);outline-offset:2px}.ghost-btn.compact{padding:.55rem .65rem;font-size:.85rem}.hint-veil{z-index:2;pointer-events:none;background:#1a1d2473;animation:.6s 3.4s forwards hint-fade-out;position:absolute;inset:0}.hint-zone{aspect-ratio:1/1.6;color:#ffffffe6;border:2px solid #ffffffd9;border-radius:18px;place-items:center;width:clamp(72px,22vw,160px);font-size:clamp(28px,6vw,44px);animation:1.4s ease-in-out infinite hint-pulse;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.hint-zone.left{left:4vw}.hint-zone.right{animation-delay:.35s;right:4vw}.hint-label{color:#fff;white-space:nowrap;background:#1a1d24bf;border-radius:999px;padding:.6rem 1.1rem;font-size:clamp(13px,3vw,16px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes hint-pulse{0%,to{opacity:.25;scale:.96}50%{opacity:1;scale:1.04}}@keyframes hint-fade-out{to{opacity:0;visibility:hidden}}@media (prefers-reduced-motion:reduce){.reader-page.turning-leaf-next,.reader-page.turning-leaf-prev,.reader-page.turning-single-next,.reader-page.turning-single-prev{animation:none}.pages-wrap.smooth{transition:none}.hint-zone{opacity:.8;animation:none}.hint-veil{animation-duration:.2s}.issue-card.available .cover{transition:none}}
