 .weekly-reader { max-width: 72rem; margin: auto; }
.weekly-back { display: inline-block; margin-bottom: 1rem; }
.weekly-reader h1 { margin-block: .35rem 1.25rem; }
.weekly-tools { position: sticky; top: 0; z-index: 2; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: .75rem; padding: .7rem; background: #f6faf8; border: 1px solid #cadfd8; border-radius: .75rem; }
.weekly-controls, .weekly-download { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem; }
.weekly-controls output { min-width: 4.5ch; text-align: center; font-variant-numeric: tabular-nums; }
.weekly-controls button:disabled { opacity: .55; cursor: not-allowed; }
.weekly-hint { margin: .75rem 0; }
.weekly-desk { display: grid; place-items: center; padding: clamp(.55rem, 3vw, 2rem); background: #e5eeea; border-radius: .8rem; }
.weekly-book { width: min(100%, 52rem); aspect-ratio: 595 / 842; position: relative; box-shadow: 0 10px 30px #0b263545; background: #fff; touch-action: pan-y pinch-zoom; }
.weekly-book img, .weekly-book canvas { display: block; position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.weekly-book .weekly-curl { z-index: 1; pointer-events: none; }
@media(max-width: 38rem) {
  .weekly-tools { justify-content: center; }
  .weekly-download { justify-content: center; }
  .weekly-hint { font-size: .875rem; }
}
