/* Publications reading room: independent of Fiction, Lore and image-viewer UI. */
.publication-lead,.publication-subtitle { color:var(--muted); max-width:780px; line-height:1.65; font-size:clamp(16px,2vw,19px); }
.publication-lead { margin-top:20px; }
.publication-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,245px),1fr));gap:26px;max-width:1250px;margin-inline:auto; }
.publication-card { min-width:0;background:var(--bg-alt);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden; }
.publication-cover { display:block;aspect-ratio: 3 / 4;overflow:hidden;background:#18151a; }
.publication-cover img { display:block;width:100%;height:100%;object-fit:cover;transition:transform .25s; }
.publication-card:hover .publication-cover img { transform:scale(1.025); }
.publication-cover-placeholder { height:100%;display:grid;place-items:center;font:20px Georgia,serif;letter-spacing:.13em;color:#c8ad83; }
.publication-copy { padding:18px 20px 23px; }
.publication-kicker,.publication-metadata {font:11px/1.55 var(--font-mono);color:var(--muted-dim);letter-spacing:.08em;text-transform:uppercase;}
.publication-copy h2 { font-size:clamp(21px,2vw,26px);margin:10px 0 8px;line-height:1.2; }
.publication-copy h2 a { color:var(--ink);text-decoration:none; }
.publication-copy p { color:var(--muted);line-height:1.6;font-size:14px;margin:0 0 18px; }
.publication-read {color:var(--cyan);font:12px/1.5 var(--font-mono);text-decoration:none;}
.publication-empty {color:var(--muted);padding:26px 0; }
.publication-head .home-chip {display:inline-flex;margin-top:16px;}
.publication-metadata { margin-top:16px; }
.publication-main { padding-top:12px; }
.reader {max-width:1240px;margin:0 auto;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;background:#100f13; }
.reader-toolbar {position:relative;z-index:1;background:#17161b;border-bottom:1px solid #353138;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:9px;padding:10px 12px;color:#e8e0d8;}
.reader-toolbar button,.reader-toolbar input,.reader-toolbar a {font:12px/1.1 var(--font-mono);color:#f0e6d7;border:1px solid #565059;background:#262329;border-radius:6px;min-height:36px;padding:8px 10px;text-decoration:none;}
.reader-toolbar button {cursor:pointer;min-width:36px;}
.reader-toolbar button:focus-visible,.reader-toolbar a:focus-visible,.reader-stage:focus-visible {outline:2px solid var(--cyan);outline-offset:2px;}
.reader-toolbar button:disabled {opacity:.4;cursor:not-allowed;}
.reader-toolbar label,.reader-toolbar span {font:12px var(--font-mono);}
.reader-page-nav,.reader-zoom {display:flex;flex-wrap:wrap;align-items:center;gap:8px;}
.reader-page-nav input {width:58px;text-align:center;appearance:textfield;}
.reader-page-nav input::-webkit-inner-spin-button {appearance:none;}
.reader-stage {min-height:56vh;max-height:min(83vh,1150px);overflow:auto;overscroll-behavior:contain;display:flex;flex-direction:column;align-items:center;background:#222024;padding:22px;position:relative;}
.reader-pages {display:flex;align-items:start;justify-content:center;gap:10px;min-width:100%;max-width:none;}
.reader-pages canvas {display:block;height:auto;max-width:none;box-shadow:0 8px 28px #0008;background:#fff;}
.reader-stage iframe {width:100%;height:75vh;border:0;background:white;}
.reader-stage.is-fallback {display:block;max-height:none;padding:10px;}
#reader-status {color:#dfd5cb;text-align:center;font:13px/1.6 var(--font-mono);padding:35px 10px;}
.reader-footer {display:flex;gap:10px;flex-wrap:wrap;justify-content:space-between;padding:13px 17px;color:var(--muted-dim);font:11px/1.5 var(--font-mono);}
.reader-footer a {color:var(--cyan);}
.reader:fullscreen {width:100vw;max-width:none;height:100dvh;border-radius:0;display:flex;flex-direction:column;}
.reader:fullscreen .reader-stage {flex:1;max-height:none;}
@media(max-width:690px) {
 .reader-toolbar {justify-content:center;}
 .reader-page-nav,.reader-zoom {justify-content:center;}
 .reader-toolbar button,.reader-toolbar input,.reader-toolbar a {min-height:40px;}
 .reader-stage {padding:10px;min-height:48vh;max-height:75vh;}
 .reader-footer span {display:none;}
}

.reader-stage.is-fallback .reader-pages { display:block; min-width:0; width:100%; }
