.reading-rail{--reading-track-height:224px;--reading-thumb-height:28px;--reading-offset:0px;--reading-progress:0;position:fixed;left:max(0px,calc((100vw - 1184px)/2 - 42px));top:50%;transform:translateY(-50%);height:var(--reading-track-height);width:32px;z-index:15;pointer-events:none;color:var(--blue,#4055e8)}
.reading-rail[hidden]{display:none}
.reading-track-hit{position:absolute;inset:0;pointer-events:auto;cursor:pointer;touch-action:pan-y}
.reading-track,.reading-fill{position:absolute;left:15px;top:0;width:2px;height:100%;border-radius:3px;pointer-events:none}
.reading-track{background:#59648014}.reading-fill{background:linear-gradient(to bottom,#4055e81f,#4055e852);transform:scaleY(var(--reading-progress));transform-origin:top;transition:transform 90ms linear}
.reading-thumb{position:absolute;left:0;top:calc((var(--reading-thumb-height) - 40px)/2);width:32px;height:40px;transform:translate3d(0,var(--reading-offset),0);background:transparent;border:0;border-radius:20px;padding:0;pointer-events:auto;cursor:grab;touch-action:none;transition:transform 90ms linear;-webkit-tap-highlight-color:transparent}
.reading-thumb-visual{display:block;position:absolute;left:13px;top:calc((40px - var(--reading-thumb-height))/2);height:var(--reading-thumb-height);width:6px;border:1px solid #ffffffbd;border-radius:8px;background:linear-gradient(160deg,#8792f38c,#4055e8b0);box-shadow:0 0 0 4px #6575e90b,0 2px 8px #4055e81c;backdrop-filter:blur(6px);transition:box-shadow .25s,background .25s}
.reading-rail:hover .reading-thumb-visual,.reading-thumb:focus-visible .reading-thumb-visual{box-shadow:0 0 0 5px #6575e915,0 2px 10px #4055e833;background:linear-gradient(160deg,#8792f3b0,#4055e8d0)}
.reading-thumb:focus-visible{outline:none}.reading-thumb:focus-visible .reading-thumb-visual{outline:2px solid #4055e852;outline-offset:4px}
.reading-tooltip{position:absolute;left:40px;top:calc(var(--reading-offset) + var(--reading-thumb-height)/2);transform:translateY(-50%) translateX(-4px);padding:10px 14px;border:1px solid #dce0f4b3;border-radius:12px;background:#fffef8eb;backdrop-filter:blur(14px);box-shadow:0 6px 22px #3545730c;white-space:nowrap;color:#56608d;opacity:0;pointer-events:none;transition:opacity .18s,transform .22s}
.reading-tooltip strong{font:600 11px/1.6 "Microsoft YaHei",sans-serif;display:block;letter-spacing:.3px}.reading-tooltip>span{font:9px/1.8 "Microsoft YaHei",sans-serif;color:#9aa0b5;display:block;margin-top:2px}
.reading-rail:hover .reading-tooltip,.reading-rail:focus-within .reading-tooltip{opacity:1;transform:translateY(-50%) translateX(0)}
.reading-rail.is-reading-dragging .reading-thumb,.reading-rail.is-reading-dragging .reading-fill{transition:none;cursor:grabbing}.reading-rail-dragging{user-select:none}
@media(max-width:1199px){.reading-rail{left:0;width:24px}.reading-track,.reading-fill{left:11px}.reading-thumb{width:24px}.reading-thumb-visual{left:10px;width:4px}.reading-tooltip{left:30px}}
@media(max-width:780px){.reading-rail{width:20px}.reading-track,.reading-fill{left:9px}.reading-thumb{left:-2px;width:24px}}
@media(max-width:600px){.reading-rail{--reading-track-height:128px;--reading-thumb-height:24px;left:0;width:20px}.reading-track,.reading-fill{left:9px;width:2px}.reading-thumb{left:-2px;width:24px}.reading-thumb-visual{left:10px;width:4px}.reading-tooltip{display:none}.reading-thumb-visual{box-shadow:0 0 0 3px #6575e908,0 1px 5px #4055e81c}}
@media(prefers-reduced-motion:reduce){.reading-thumb,.reading-fill,.reading-tooltip,.reading-thumb-visual{transition:none!important}}
@media print{.reading-rail{display:none}}

/* Section colors remain translucent; only the actual thumb reveals its label. */
.reading-fill{background:color-mix(in srgb,var(--reading-color,#6575de) 28%,transparent)}
.reading-thumb-visual{background:color-mix(in srgb,var(--reading-color,#6575de) 55%,transparent);box-shadow:0 0 0 4px color-mix(in srgb,var(--reading-color,#6575de) 5%,transparent),0 2px 8px #4055e812}
.reading-rail:hover .reading-thumb-visual,.reading-thumb:focus-visible .reading-thumb-visual{background:color-mix(in srgb,var(--reading-color,#6575de) 55%,transparent);box-shadow:0 0 0 5px color-mix(in srgb,var(--reading-color,#6575de) 9%,transparent)}
.reading-rail:hover .reading-tooltip,.reading-rail:focus-within .reading-tooltip{opacity:0;transform:translateY(-50%) translateX(-4px)}
.reading-thumb:hover~.reading-tooltip{opacity:1;transform:translateY(-50%) translateX(0);color:var(--reading-color,#6575de)}

.reading-target-mark{position:absolute;left:12px;top:var(--reading-target-offset,0px);width:8px;height:8px;transform:translateY(-50%);border:1px solid var(--reading-target-color,#6575de);border-radius:50%;background:#fffdf5cc;box-shadow:0 0 0 3px color-mix(in srgb,var(--reading-target-color,#6575de) 8%,transparent);opacity:0;pointer-events:none;transition:opacity .15s}
.reading-target-tooltip{top:var(--reading-target-offset,0px);color:var(--reading-target-color,#6575de)}
.reading-rail.is-target-preview .reading-target-mark,.reading-rail.is-target-preview .reading-target-tooltip{opacity:1;transform:translateY(-50%) translateX(0)}
.reading-thumb:hover~.reading-target-tooltip{opacity:0}
@media(max-width:1199px){.reading-target-mark{left:8px}}
@media(max-width:780px){.reading-target-mark{left:6px}}
@media(max-width:600px){.reading-target-mark,.reading-target-tooltip{display:none}}

/* The current position becomes a subtle up-arrow when it can be clicked home. */
.reading-thumb-visual{left:50%;top:50%;transform:translate(-50%,-50%);transition:width .2s ease,height .2s ease,background .2s,box-shadow .2s,border-color .2s}
.reading-thumb-visual:after{content:"";position:absolute;inset:0;opacity:0;background:color-mix(in srgb,var(--reading-color,#6575de) 55%,transparent);clip-path:polygon(50% 0,100% 100%,0 100%);transition:opacity .16s}
.reading-thumb:hover .reading-thumb-visual{width:20px;height:17px;border-color:transparent;border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none}
.reading-thumb:hover .reading-thumb-visual:after{opacity:1}
@media(prefers-reduced-motion:reduce){.reading-thumb-visual:after{transition:none}}
