* { box-sizing: border-box; }
html, body { width: 100%; height: 100%; margin: 0; }
body { overflow: hidden; background: #111; color: white; font-family: Manrope, system-ui, sans-serif; }
a { color: inherit; text-decoration: none; }
svg { display: block; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.reader-shell { height: 100dvh; display: grid; grid-template-rows: 68px minmax(0,1fr); }
.reader-topbar { min-width: 0; padding: 0 18px; display: grid; grid-template-columns: 42px auto auto minmax(0,1fr) auto; align-items: center; gap: 18px; background: #111; border-bottom: 1px solid rgba(255,255,255,.18); }
.reader-back { width: 42px; height: 42px; display: grid; place-items: center; border: 1px solid rgba(255,255,255,.35); }
.reader-back:hover { background: #ff5538; border-color: #ff5538; }
.reader-back svg { width: 18px; height: 18px; }
.reader-logo { display: inline-flex; align-items: baseline; gap: 7px; white-space: nowrap; }
.reader-logo span { font-weight: 800; letter-spacing: -.055em; }
.reader-logo em { font-family: Newsreader, Georgia, serif; font-size: 1rem; }
.reader-issue { padding-left: 18px; display: flex; flex-direction: column; border-left: 1px solid rgba(255,255,255,.22); white-space: nowrap; }
.reader-issue small { color: rgba(255,255,255,.43); font-size: .55rem; font-weight: 800; letter-spacing: .13em; }
.reader-issue strong { font-family: Newsreader, Georgia, serif; font-size: 1.05rem; font-weight: 400; }
.reader-search-context { min-width: 0; overflow: hidden; color: rgba(255,255,255,.55); font-size: .67rem; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
.reader-pdf { padding: 10px 13px; display: inline-flex; align-items: center; gap: 10px; border: 1px solid rgba(255,255,255,.35); font-size: .62rem; font-weight: 800; letter-spacing: .07em; text-transform: uppercase; }
.reader-pdf:hover { background: #1727f5; border-color: #1727f5; }
.reader-pdf svg { width: 15px; height: 15px; }
.reader-stage { min-height: 0; background: #2b2c2f; }
.reader-stage iframe { width: 100%; height: 100%; display: block; border: 0; }
.missing { min-height: 100%; padding: 30px; display: grid; place-items: center; text-align: center; }
.missing p { color: #ff5538; font-size: .65rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.missing h1 { margin: 18px 0; font-family: Newsreader, Georgia, serif; font-size: clamp(3rem, 8vw, 7rem); font-weight: 400; }
.missing a { display: inline-block; padding: 13px 18px; border: 1px solid white; font-size: .7rem; font-weight: 800; text-transform: uppercase; }
@media (max-width: 720px) {
  .reader-shell { grid-template-rows: 58px minmax(0,1fr); }
  .reader-topbar { padding: 0 8px; grid-template-columns: 40px minmax(0,1fr) auto; gap: 9px; }
  .reader-logo, .reader-search-context { display: none; }
  .reader-issue { padding-left: 0; border-left: 0; overflow: hidden; }
  .reader-issue strong { overflow: hidden; font-size: .94rem; text-overflow: ellipsis; }
  .reader-pdf { width: 40px; height: 40px; padding: 0; justify-content: center; font-size: 0; }
}
