.reader-body { min-height: 100vh; color: #fff; background: #191919; }
.reader-header { min-height: 72px; padding: 10px 28px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; border-bottom: 1px solid #333; font-size: .72rem; }
.reader-header > div { display: flex; align-items: center; gap: 8px; }
.reader-header > div img { width: 46px; height: 46px; object-fit: contain; border-radius: 50%; }
.reader-header b, .reader-header small { display: block; }
.reader-header b { font: 700 1.35rem var(--serif); }
.reader-header small { color: #c7575b; font-size: .55rem; text-transform: uppercase; letter-spacing: .14em; }
.reader-header > a:last-child { justify-self: end; }
.reader-main { padding: 44px 20px 54px; }
.reader-intro { text-align: center; max-width: 680px; margin: 0 auto 34px; }
.reader-intro h1 { margin: 9px 0; font: 700 clamp(2.2rem,4vw,3.6rem)/1 var(--serif); }
.reader-intro p { color: #999; font-size: .76rem; line-height: 1.6; }
.book-shell { display: grid; grid-template-columns: 50px minmax(0,760px) 50px; gap: 18px; justify-content: center; align-items: center; }
.book-shell > button { width: 48px; height: 48px; border: 1px solid #444; border-radius: 50%; color: #fff; background: transparent; cursor: pointer; }
.book-shell > button:disabled { opacity: .25; cursor: default; }
.book { position: relative; aspect-ratio: 842.25 / 1190.25; perspective: 1400px; }
.page { position: absolute; inset: 0; display: none; overflow: hidden; color: #1c1b19; background: #f4f0e7; box-shadow: 0 30px 80px rgba(0,0,0,.35); transform-origin: left center; }
.page.active { display: block; animation: pageIn .45s ease both; }
.page.turn-back { transform-origin: right center; }
.issue-page img { width: 100%; height: 100%; object-fit: contain; background: #f6f0e5; }
@keyframes pageIn { from { opacity: 0; transform: rotateY(-10deg) translateX(16px); } to { opacity: 1; transform: none; } }
.reader-controls { max-width: 760px; margin: 20px auto 0; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; color: #888; font-size: .68rem; }
.reader-controls > button { justify-self: end; border: 0; color: #bbb; background: transparent; cursor: pointer; }
.reader-controls > div { display: flex; gap: 7px; }
.reader-controls i { width: 6px; height: 6px; border-radius: 50%; background: #555; }
.reader-controls i.active { background: #fff; }
@media(max-width:650px) {
  .reader-header { grid-template-columns: 1fr auto; padding-inline: 14px; }
  .reader-header > div { display: none; }
  .reader-main { padding: 28px 8px 40px; }
  .book-shell { grid-template-columns: 32px minmax(0,1fr) 32px; gap: 3px; }
  .book-shell > button { width: 30px; height: 30px; }
  .reader-controls { padding: 0 36px; }
  .reader-controls > button { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .page.active { animation: none; }
}
