.reader-shell {max-width:var(--book-width);margin:2rem auto 0;background-color:var(--paper-light);background-image:url(/assets/images/site/paper-grain.svg),radial-gradient(ellipse at 12% 15%,rgba(255,250,240,.55),transparent 65%),linear-gradient(100deg,#f8f0e1,#f2e4ce 98%);background-size:256px 256px,100% 100%,100% 100%;background-repeat:repeat,no-repeat,no-repeat;border:1px solid var(--paper-edge);box-shadow:0 12px 36px var(--shadow-soft),3px 3px 0 var(--paper-edge);padding:3rem clamp(1.3rem,6vw,5rem)}
.reader-header,.story-body,.reader-end {max-width:var(--reader-width);margin-inline:auto}
.breadcrumbs {display:flex;flex-wrap:wrap;gap:.2rem .6rem;font-size:.8rem;margin-bottom:2rem;align-items:center}
.breadcrumbs a {display:inline-block;min-height:44px;padding:.5rem 0}
.reader-header h1 {font-size:clamp(2rem,4.5vw,3.25rem)}
.reader-header .chapter-title {font-family:var(--font-display);font-size:1.2rem;margin:.5rem 0 1.75rem}
.reader-header .notice {margin-bottom:1.25rem}
.story-body {font-family:var(--font-reading);font-size:clamp(1.08rem,1rem + .25vw,1.2rem);line-height:1.55;scroll-margin-top:1.25rem}
.story-body p {margin:0 0 .75rem}
.story-body h2 {font-size:1.6rem;margin:2.7rem 0 1.25rem;line-height:1.3}
.story-body .opening {font-size:1.08em}
.story-dialogue,.inner-thought,.exclamation,.story-emphasis {font-family:var(--font-reading)}
.dialogue-block {margin:1.5rem 0;padding-left:1.25rem;border-left:2px solid var(--paper-edge)}
.inner-thought {font-style:italic}
.exclamation,.story-emphasis {font-weight:600;letter-spacing:.015em}
.environmental-text {font-family:var(--font-ui);font-size:.85rem;font-weight:600;letter-spacing:.04em;border-block:1px solid var(--soft-border);padding:1rem;margin:1.5rem 0;text-align:center}
.reader-end {margin-top:1.5rem;padding-top:1.25rem;border-top:1px solid var(--paper-edge)}
.reader-paged {touch-action:pan-y pinch-zoom}
.book-page {display:flow-root;outline-offset:.5rem}
.book-page > :last-child {margin-bottom:0}
.reader-paged .book-page {min-height:28rem}
.page-turner {display:grid;grid-template-columns:1fr auto 1fr;gap:.75rem;align-items:center;margin:0 auto 1.25rem}
.page-turner button {min-width:64px;min-height:48px;padding:.35rem .85rem;background:transparent;border:1px solid var(--paper-edge);border-radius:2px;color:var(--book-ink);font-family:var(--font-reading);font-size:1.25rem;line-height:1.2}
.page-turner button:first-child {justify-self:start}
.page-turner button[data-page-next] {justify-self:end}
.page-turner button:hover:not(:disabled) {background:rgba(255,253,250,.55);border-color:var(--book-accent)}
.page-turner button:disabled {opacity:.3;cursor:default}
.page-label {font-family:var(--font-ui);font-size:.8rem;color:var(--book-muted);text-align:center}
.swipe-hint {display:none;grid-column:1/-1;text-align:center;font-family:var(--font-ui);font-size:.75rem;color:var(--book-muted)}
@media (pointer:coarse) {.swipe-hint {display:block}}
@media (prefers-reduced-motion:no-preference) {
 .reader-paged .book-page:not([hidden]) {animation:page-next .2s ease-out}
 .reader-paged[data-turn=previous] .book-page:not([hidden]) {animation-name:page-previous}
 @keyframes page-next {from {opacity:.35;transform:translateX(12px)} to {opacity:1;transform:translateX(0)}}
 @keyframes page-previous {from {opacity:.35;transform:translateX(-12px)} to {opacity:1;transform:translateX(0)}}
}
.installment-nav {display:grid;grid-template-columns:1fr 1fr 1fr;gap:.5rem;align-items:stretch;margin-top:1.5rem;font-family:var(--font-ui);font-size:.8rem}
.installment-nav a {display:flex;justify-content:center;align-items:center;min-height:48px;border:1px solid var(--soft-border);padding:.7rem .3rem;text-align:center;text-decoration:none}
.installment-nav a:hover {background:var(--white)}
.installment-nav .next {background:var(--book-accent-dark);color:var(--white);border-color:var(--book-accent-dark)}
.installment-nav .next:hover {background:var(--book-ink)}
.reading-progress {position:fixed;inset:0 0 auto;height:3px;z-index:5;pointer-events:none;background:transparent}
.reading-progress span {display:block;height:100%;background:var(--book-accent-dark);transform:scaleX(0);transform-origin:left}
.reading-status {font: .75rem var(--font-ui);color:var(--book-muted);margin:1rem 0}
@media(max-width:600px) {
 .reader-container {width:100%}
 .reader-shell {margin:.75rem 0 0;padding:1.3rem max(1rem,env(safe-area-inset-left));border-inline:0;box-shadow:none}
 .reader-header h1 {font-size:2rem}
 .reader-header .chapter-title {margin-bottom:1.1rem}
 .breadcrumbs {margin-bottom:1rem}
 .story-body {font-size:1.1rem}
 .installment-nav {gap:.35rem}
}
@media print {
 .site-header,.site-footer,.reading-progress,.installment-nav,.newsletter,.reader-header .notice,.page-turner {display:none!important}
 .reader-paged .book-page[hidden] {display:flow-root!important}
 .reader-paged .book-page {min-height:0;animation:none!important;break-after:page}
 .reader-paged .book-page:last-child {break-after:auto}
 .reader-shell {border:0;box-shadow:none;margin:0;padding:0;background:white}
 body {background:white}
}

.reader-archive-link {margin-top:1.5rem}
