/* Riley Locke 4.85.0 — Living Reader OS. Lightweight depth + motion layer. */
body.rl-reader-os-v24{--ro30-accent:#4b8b67;--ro30-glow:rgba(86,139,103,.18);--ro30-gold:rgba(177,139,56,.16);overflow-x:hidden}
body.rl-reader-os-v24:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;background:radial-gradient(circle at 88% 10%,rgba(88,145,107,.09),transparent 28%),radial-gradient(circle at 12% 82%,rgba(181,147,74,.06),transparent 26%)}

/* Reader rail: more intentional, calmer, and visibly active. */
body.rl-reader-os-v24 .rl-ro24-rail{box-shadow:12px 0 38px rgba(12,35,22,.08)}
body.rl-reader-os-v24 .rl-ro24-logo{position:relative;letter-spacing:-.025em}
body.rl-reader-os-v24 .rl-ro24-logo:after{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:#9bd1ab;margin-left:8px;vertical-align:8px;box-shadow:0 0 0 4px rgba(155,209,171,.10)}
body.rl-reader-os-v24 .rl-ro24-rail nav a{position:relative;transition:background-color .18s ease,color .18s ease,transform .18s ease}
body.rl-reader-os-v24 .rl-ro24-rail nav a:hover{transform:translateX(2px)}
body.rl-reader-os-v24 .rl-ro24-rail nav a.is-active:before{content:"";position:absolute;left:2px;top:50%;width:3px;height:18px;border-radius:999px;background:#a7d2b3;transform:translateY(-50%)}
body.rl-reader-os-v24 .rl-ro24-profile-mini{transition:border-color .18s ease,background-color .18s ease,transform .18s ease}
body.rl-reader-os-v24 .rl-ro24-profile-mini:hover{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.18);transform:translateY(-1px)}

/* Operator Dock: deliberately separate from public reader navigation. */
body.rl-reader-os-v24 .rl-ro30-operator-dock{display:grid!important;grid-template-columns:30px minmax(0,1fr) auto;gap:9px;align-items:center;margin-top:10px;padding:10px 11px;border:1px solid rgba(169,215,183,.22);border-radius:11px;color:#eaf3ed!important;background:linear-gradient(135deg,rgba(96,151,113,.15),rgba(255,255,255,.025))!important;text-decoration:none!important;transition:transform .18s ease,border-color .18s ease,background .18s ease}
body.rl-reader-os-v24 .rl-ro30-operator-dock:hover{transform:translateY(-1px);border-color:rgba(169,215,183,.38);background:linear-gradient(135deg,rgba(96,151,113,.22),rgba(255,255,255,.05))!important}
body.rl-reader-os-v24 .rl-ro30-dock-mark{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:#dcebdd;color:#173e2b;font:800 11px/1 var(--ro-sans);box-shadow:inset 0 0 0 1px rgba(24,62,43,.08)}
body.rl-reader-os-v24 .rl-ro30-dock-copy{min-width:0}
body.rl-reader-os-v24 .rl-ro30-dock-copy strong,body.rl-reader-os-v24 .rl-ro30-dock-copy small{display:block!important}
body.rl-reader-os-v24 .rl-ro30-dock-copy strong{font-size:10px!important;line-height:1.2;color:#fff!important;letter-spacing:.01em}
body.rl-reader-os-v24 .rl-ro30-dock-copy small{font-size:8px!important;color:#97aa9e!important;margin-top:2px}
body.rl-reader-os-v24 .rl-ro30-dock-arrow{color:#a8cbb2;font-size:14px;transition:transform .18s ease}
body.rl-reader-os-v24 .rl-ro30-operator-dock:hover .rl-ro30-dock-arrow{transform:translateX(2px)}

/* Top bar and search gain a little depth without returning to dark controls. */
body.rl-reader-os-v24 .rl-ro24-top{box-shadow:0 8px 24px rgba(24,51,34,.035)}
body.rl-reader-os-v24 form.rl-ro24-search{transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}
body.rl-reader-os-v24 form.rl-ro24-search:focus-within{border-color:#8daf98!important;box-shadow:0 0 0 4px rgba(76,130,93,.09)!important;transform:translateY(-1px)}
body.rl-reader-os-v24 .rl-ro24-top>div a,body.rl-reader-os-v24 .rl-ro24-btn{transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background-color .16s ease}
body.rl-reader-os-v24 .rl-ro24-top>div a:hover,body.rl-reader-os-v24 .rl-ro24-btn:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(21,49,31,.07)}

/* Hero becomes a calm living surface. Pointer position is supplied by tiny JS. */
body.rl-reader-os-v24 .rl-ro24-hero{position:relative;overflow:hidden;isolation:isolate;--ro30-x:78%;--ro30-y:24%;transition:box-shadow .25s ease,border-color .25s ease}
body.rl-reader-os-v24 .rl-ro24-hero:before{content:"";position:absolute;inset:-1px;z-index:-2;background:radial-gradient(circle at var(--ro30-x) var(--ro30-y),rgba(115,169,129,.22),transparent 27%),radial-gradient(circle at 12% 86%,rgba(196,162,80,.10),transparent 24%);transition:background .15s linear}
body.rl-reader-os-v24 .rl-ro24-hero:after{content:"";position:absolute;width:250px;height:250px;border-radius:50%;right:-95px;top:-105px;border:1px solid rgba(55,112,81,.10);box-shadow:0 0 0 38px rgba(55,112,81,.026),0 0 0 78px rgba(55,112,81,.018);z-index:-1}
body.rl-reader-os-v24 .rl-ro24-hero>*{position:relative;z-index:1}
body.rl-reader-os-v24 .rl-ro24-hero:hover{border-color:#c9d9cc!important;box-shadow:0 18px 44px rgba(23,56,36,.09)!important}

/* A compact live strip reuses already-loaded data. */
.rl-ro30-pulse{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:12px 0 3px}
.rl-ro30-pulse-item{min-width:0;display:grid;grid-template-columns:26px 1fr;gap:8px;align-items:center;padding:9px 10px;border:1px solid #dce4dd;border-radius:11px;background:rgba(255,255,255,.78);color:#25362c!important;box-shadow:0 7px 20px rgba(22,49,32,.035);transition:transform .18s ease,border-color .18s ease,background .18s ease}
.rl-ro30-pulse-item:hover{transform:translateY(-1px);border-color:#c3d5c7;background:#fff}
.rl-ro30-pulse-item strong,.rl-ro30-pulse-item small{display:block!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rl-ro30-pulse-item strong{font-size:9px!important;color:#263a2e!important}.rl-ro30-pulse-item small{font-size:8px!important;color:#718078!important;margin-top:1px}
.rl-ro30-pulse-icon{width:26px;height:26px;border-radius:8px;background:#edf4ec;display:grid;place-items:center;color:#397357;font-size:11px;font-weight:900}
.rl-ro30-pulse-item.is-live{grid-template-columns:12px 1fr}.rl-ro30-live-dot{width:7px;height:7px;border-radius:50%;background:#4e9169;box-shadow:0 0 0 4px rgba(78,145,105,.11)}

/* Cards feel responsive instead of static. */
body.rl-reader-os-v24 .rl-ro24-panel,body.rl-reader-os-v24 .rl-ro24-metric,body.rl-reader-os-v24 .rl-ro24-book-card,body.rl-reader-os-v24 .rl-ro24-list-row,body.rl-reader-os-v24 .rl-mb28-book,body.rl-reader-os-v24 .rl-series27-card{transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
body.rl-reader-os-v24 .rl-ro24-panel:hover,body.rl-reader-os-v24 .rl-ro24-metric:hover{border-color:#cad8cc!important;box-shadow:0 16px 36px rgba(21,53,33,.075)!important}
body.rl-reader-os-v24 .rl-ro24-book-card:hover,body.rl-reader-os-v24 .rl-mb28-book:hover,body.rl-reader-os-v24 .rl-series27-card:hover{transform:translateY(-3px);border-color:#c4d5c8!important;box-shadow:0 18px 40px rgba(20,50,31,.11)!important}
body.rl-reader-os-v24 .rl-ro24-cover{overflow:hidden}
body.rl-reader-os-v24 .rl-ro24-cover img,body.rl-reader-os-v24 .rl-mb28-cover img{transition:transform .35s cubic-bezier(.2,.7,.2,1),filter .25s ease}
body.rl-reader-os-v24 .rl-ro24-book-card:hover .rl-ro24-cover img,body.rl-reader-os-v24 .rl-mb28-book:hover .rl-mb28-cover img{transform:scale(1.025);filter:saturate(1.03)}
body.rl-reader-os-v24 .rl-ro24-section-head a{transition:transform .16s ease,color .16s ease;display:inline-block}
body.rl-reader-os-v24 .rl-ro24-section-head a:hover{transform:translateX(3px);color:#245f43!important}

/* Progress bars animate only after JS notices them. */
body.rl-reader-os-v24 .rl-ro24-progress i,body.rl-reader-os-v24 .rl-mb28-progress i{transition:width .75s cubic-bezier(.2,.75,.25,1)}

/* Section movement: never hidden, just gently settles into place. */
body.rl-reader-os-v24 .rl-ro30-reveal{transform:translateY(8px);transition:transform .45s cubic-bezier(.2,.7,.2,1),box-shadow .2s ease,border-color .2s ease}
body.rl-reader-os-v24 .rl-ro30-reveal.is-seen{transform:translateY(0)}

/* Subtle ambient daypart shifts chosen from the browser's local time. */
body.rl-reader-os-v24[data-ro-daypart="morning"] .rl-ro24-hero:before{background:radial-gradient(circle at var(--ro30-x) var(--ro30-y),rgba(165,190,117,.20),transparent 28%),radial-gradient(circle at 10% 90%,rgba(216,184,103,.10),transparent 24%)}
body.rl-reader-os-v24[data-ro-daypart="evening"] .rl-ro24-hero:before{background:radial-gradient(circle at var(--ro30-x) var(--ro30-y),rgba(102,147,120,.20),transparent 28%),radial-gradient(circle at 10% 90%,rgba(157,129,168,.07),transparent 25%)}

@keyframes rlRo30Pulse{0%,100%{box-shadow:0 0 0 4px rgba(78,145,105,.10)}50%{box-shadow:0 0 0 7px rgba(78,145,105,.025)}}
@media (prefers-reduced-motion:no-preference){.rl-ro30-live-dot{animation:rlRo30Pulse 2.8s ease-in-out infinite}}
@media (prefers-reduced-motion:reduce){body.rl-reader-os-v24 *,body.rl-reader-os-v24 *:before,body.rl-reader-os-v24 *:after{scroll-behavior:auto!important;animation:none!important;transition-duration:.01ms!important}}
@media(max-width:1050px){.rl-ro30-pulse{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.rl-ro30-pulse{grid-template-columns:1fr 1fr}.rl-ro30-pulse-item{padding:8px}.rl-ro30-pulse-item:nth-child(n+3){display:none}body.rl-reader-os-v24 .rl-ro30-operator-dock{display:none!important}}
