/* ReadHub — Book cover zoom (hover magnifier + fullscreen pinch viewer) */

/* Cursor + hint ---------------------------------------------------------- */
img[data-rh-zoom]{cursor:zoom-in;-webkit-tap-highlight-color:transparent}
a img[data-rh-zoom]{cursor:pointer}
img[data-rh-zoom].rh-zoom-active{transform:none!important;transition:none!important}
img[data-rh-zoom]:focus-visible{outline:3px solid #f5c518;outline-offset:3px}

.rh-zoom-hint{display:flex;align-items:center;justify-content:center;gap:.35rem;margin-top:.6rem;font-size:.72rem;line-height:1.2;color:var(--gray-400,#9aa3b8);letter-spacing:.02em;font-weight:600}
.rh-zoom-hint svg{width:13px;height:13px;flex:none;opacity:.85}
.rh-zoom-hint span{display:inline-flex;align-items:center;gap:.35rem}
.rh-zoom-hint .rh-zh-touch{display:none}
@media (hover:none),(pointer:coarse){
  .rh-zoom-hint .rh-zh-fine{display:none}
  .rh-zoom-hint .rh-zh-touch{display:inline-flex}
}

/* Desktop hover layers --------------------------------------------------- */
.rh-zl{position:fixed;z-index:99990;pointer-events:none;opacity:0;transition:opacity .16s ease;
  background-repeat:no-repeat;background-color:#fff}
.rh-zl.on{opacity:1}
.rh-zl-inner{box-shadow:0 0 0 1px rgba(0,0,0,.08) inset;border-radius:4px}
.rh-zl-lens{z-index:99989;background:rgba(255,255,255,.35);border:1px solid rgba(30,53,216,.5);border-radius:2px;background-color:rgba(255,255,255,.3)}
.rh-zl-pane{border-radius:10px;box-shadow:0 18px 60px rgba(10,26,74,.35),0 0 0 1px rgba(10,26,74,.12);background-color:#fff}

/* Fullscreen viewer ------------------------------------------------------ */
html.rh-zv-lock,html.rh-zv-lock body{overflow:hidden!important}
.rh-zv{position:fixed;inset:0;z-index:100000;display:none;color:#fff;
  font-family:var(--font-body,inherit);touch-action:none;-webkit-user-select:none;user-select:none}
.rh-zv.open{display:block}
.rh-zv-bg{position:absolute;inset:0;background:rgba(10,26,74,.95);opacity:0;transition:opacity .25s ease;
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
.rh-zv.shown .rh-zv-bg{opacity:1}
.rh-zv-stage{position:absolute;inset:0;overflow:hidden;touch-action:none;cursor:grab}
.rh-zv-stage.drag{cursor:grabbing}
.rh-zv-img{position:absolute;left:50%;top:50%;max-width:none;max-height:none;margin:0;
  transform-origin:0 0;border-radius:6px;background:#fff;
  box-shadow:0 20px 70px rgba(0,0,0,.55);-webkit-user-drag:none;user-select:none;pointer-events:none}
.rh-zv-img.anim{transition:transform .32s cubic-bezier(.2,.8,.2,1)}
.rh-zv-top{position:absolute;left:0;right:0;top:0;display:flex;align-items:center;gap:.75rem;
  padding:max(.75rem,env(safe-area-inset-top)) max(.9rem,env(safe-area-inset-right)) .75rem max(.9rem,env(safe-area-inset-left));
  background:linear-gradient(to bottom,rgba(7,12,30,.75),transparent);opacity:0;transition:opacity .25s;pointer-events:none}
.rh-zv.shown .rh-zv-top,.rh-zv.shown .rh-zv-bar{opacity:1}
.rh-zv-title{flex:1;min-width:0;font-family:var(--font-display,'Playfair Display',Georgia,serif);font-weight:700;font-size:1.05rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rh-zv-btn{pointer-events:auto;display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:44px;
  padding:0 .9rem;border:0;border-radius:99px;background:rgba(255,255,255,.14);color:#fff;font:inherit;font-size:1.25rem;
  line-height:1;cursor:pointer;text-decoration:none;transition:background .15s,transform .15s;-webkit-tap-highlight-color:transparent}
.rh-zv-btn:hover{background:rgba(255,255,255,.26)}
.rh-zv-link:hover{background:#f5c518}
.rh-zv-btn:active{transform:scale(.94)}
.rh-zv-btn:focus-visible{outline:3px solid #f5c518;outline-offset:2px}
.rh-zv-link{font-size:.85rem;font-weight:700;background:var(--gold,#e8a020);color:#0a1a4a}
.rh-zv-link:hover{background:#f5c518;color:#0a1a4a}
.rh-zv-close{font-size:1.6rem;padding:0}
.rh-zv-bar{position:absolute;left:50%;transform:translateX(-50%);bottom:max(1rem,env(safe-area-inset-bottom));
  display:flex;align-items:center;gap:.4rem;padding:.35rem;border-radius:99px;background:rgba(20,28,60,.78);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;transition:opacity .25s}
.rh-zv-bar .rh-zv-btn{min-width:40px;height:40px;padding:0 .7rem;background:transparent}
.rh-zv-bar .rh-zv-btn:hover{background:rgba(255,255,255,.16)}
.rh-zv-lvl{min-width:3.2rem;text-align:center;font-size:.8rem;font-weight:700;font-variant-numeric:tabular-nums;opacity:.85}
.rh-zv-help{position:absolute;left:0;right:0;bottom:calc(max(1rem,env(safe-area-inset-bottom)) + 58px);text-align:center;
  font-size:.78rem;color:rgba(255,255,255,.7);pointer-events:none;opacity:0;transition:opacity .4s}
.rh-zv.shown .rh-zv-help{opacity:1}
.rh-zv.used .rh-zv-help{opacity:0}
.rh-zv.loading .rh-zv-lvl::after{content:" ·";animation:rhzvp 1s infinite}
@keyframes rhzvp{50%{opacity:.2}}

@media (max-width:600px){.rh-zv-title{font-size:.95rem}.rh-zv-link{padding:0 .75rem}}
@media print{.rh-zv,.rh-zl{display:none!important}}
@media (prefers-reduced-motion:reduce){
  .rh-zl,.rh-zv-bg,.rh-zv-img.anim,.rh-zv-top,.rh-zv-bar,.rh-zv-help{transition:none!important}
}
