/* A pull cord at the edge of the reading area; it never changes the page width. */
.pull-to-top{--charm-width:clamp(72px,6.6vw,102px);--cord-length:clamp(132px,21vh,206px);--attachment-x:47.5%;position:fixed;top:0;right:clamp(8px,1.15vw,26px);width:var(--charm-width);padding-top:var(--cord-length);z-index:25;pointer-events:none;transform:translateY(calc(-100% - 24px));transition:transform .62s cubic-bezier(.22,.8,.25,1);will-change:transform}
.pull-to-top[data-state="visible"]{transform:translateY(0);transition-timing-function:cubic-bezier(.2,1.18,.3,1)}
.pull-to-top[data-state="pulling"]{transform:translateY(10px);transition:transform .12s ease-out}
.pull-cord{position:absolute;left:var(--attachment-x);top:-24px;height:calc(var(--cord-length) + 24px + var(--charm-width) * .058);width:2px;transform:translateX(-50%);background:linear-gradient(90deg,#b3c2d0,#f7fbfe 50%,#8096b1);box-shadow:1px 0 1px #23365512;pointer-events:none}
.pull-charm{position:relative;display:block;width:100%;margin:0;padding:0;line-height:0;transform-origin:var(--attachment-x) 5.58%;pointer-events:none;cursor:pointer;filter:drop-shadow(0 3px 3px #26395620);border-radius:14px;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.pull-charm:disabled{opacity:1;cursor:default}
.pull-to-top[data-state="visible"] .pull-charm{pointer-events:auto;animation:charm-settle .85s ease-out both}
.pull-charm img{width:100%;height:auto;object-fit:contain;user-select:none;-webkit-user-drag:none}
.pull-label{position:absolute;right:calc(100% + 8px);top:45%;white-space:nowrap;line-height:1;font-size:11px;letter-spacing:.12em;background:#fffef5f2;border:1px solid #e9e5c9;color:#425c77;border-radius:5px;padding:8px 10px;opacity:0;transform:translateX(4px);transition:opacity .18s,transform .18s;pointer-events:none}
.pull-charm:hover .pull-label,.pull-charm:focus-visible .pull-label{opacity:1;transform:translateX(0)}
.pull-fallback{display:none}
.pull-instructions{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.pull-to-top[data-dragging="true"]{transition:none}
.pull-to-top[data-dragging="true"] .pull-charm{animation:none!important;rotate:0deg;cursor:grabbing;filter:drop-shadow(0 5px 8px #274f7940);outline:2px dashed #6a9fc680;outline-offset:4px}
.pull-to-top[data-dragging="true"] .pull-label{display:block;opacity:1;transform:none;background:#edf8ff;color:#315b7c;border-color:#bfd9eb;letter-spacing:.05em}
body.pull-is-dragging,body.pull-is-dragging *{user-select:none!important;-webkit-user-select:none!important;cursor:grabbing!important}
.pull-charm.asset-missing .pull-fallback{display:grid;place-items:center;width:100%;aspect-ratio:1;background:#edf7fe;border:1px solid #c1dce8;border-radius:50%;font-size:30px;line-height:1;color:#315b86}
.pull-charm.asset-missing img{display:none}
body[data-view="cover"] .pull-to-top{display:none}
@keyframes charm-settle{0%{rotate:-5deg}38%{rotate:3deg}70%{rotate:-1.5deg}100%{rotate:0deg}}
@media(max-width:760px){.pull-to-top{--charm-width:58px;--cord-length:112px;right:6px}.pull-cord{width:1.5px}.pull-label{display:none}}
@media(max-height:520px){.pull-to-top{--charm-width:54px;--cord-length:92px}}
[data-motion="reduced"] .pull-to-top,[data-motion="reduced"] .pull-charm{animation:none!important;transition:none!important}
@media(prefers-reduced-motion:reduce){.pull-to-top,.pull-charm{animation:none!important;transition:none!important}}
