:root { font-family: 'Libre Baskerville', Georgia, serif; color: #29231e; background: #3d2418; }
* { box-sizing: border-box; }
html, body { margin: 0; min-width: 320px; height: 100%; overflow: hidden; }
button { font: inherit; cursor: pointer; }
a { color: inherit; text-decoration: none; }
button, a { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible { outline: 2px solid #d8a782; outline-offset: 3px; }
.visually-hidden { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.site-header { position: fixed; top: 0; left: 0; right: 0; z-index: 5; height: 68px; padding: 0 clamp(22px, 5vw, 80px); display: flex; align-items: center; gap: 52px; background: linear-gradient(rgba(30, 16, 10, .8), transparent); color: #f5e9d6; text-shadow: 0 1px 3px #20130f; }
.brand { font-family: 'Cormorant Garamond', Georgia, serif; font-size: 33px; font-weight: 600; letter-spacing: -.055em; line-height: 1; }
.brand span { color: #d8a782; }
.site-header nav { display: flex; align-items: center; gap: 28px; }
.nav-item { background: none; border: 0; padding: 10px 0; font-family: 'Cormorant Garamond', Georgia, serif; font-size: 20px; color: #d4c1a9; }
.nav-item.active { color: #fff1db; box-shadow: inset 0 -1px #fff1db; }
.nav-item[data-return] { white-space: nowrap; }
.header-actions { margin-left: auto; display: flex; align-items: center; gap: 12px; flex: none; }
.settings-control-icon { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; color: #e9d7bc; }
.settings-button:hover .settings-control-icon { background: #fff1db18; color: #fff1db; }
.settings-button:focus-visible { outline: none; }
.settings-button:focus-visible .settings-control-icon { outline: 2px solid #d8a782; outline-offset: -2px; }
.feed-controls { display: flex; align-items: center; gap: 14px; flex: none; }
.feed-controls[hidden] { display: none; }
.feed-control { min-width: 48px; height: 60px; padding: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; border: 0; background: none; color: #fff1db; font: 15px/1 'Cormorant Garamond', Georgia, serif; }
.feed-control-icon { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; border: 1px solid #e5c58b; border-radius: 50%; background: radial-gradient(circle at 30% 23%, #f0d599, #c69b53 62%, #8b652c); box-shadow: inset 0 0 0 2px #926b32, inset 0 0 0 3px #e5c58b, 0 2px 5px #160d0999; color: #3d2a13; }
.feed-control svg { display: block; width: 21px; height: 21px; flex: none; }
.feed-control:hover:not(:disabled) .feed-control-icon { filter: brightness(1.12); }
.feed-control:disabled { opacity: .4; cursor: default; }
.settings-dialog { width: min(560px, calc(100% - 28px)); max-height: calc(100dvh - 32px); padding: clamp(24px, 5vw, 40px); border: 1px solid #d5c5ac; border-radius: 10px; background: #f7efdf; color: #29231e; box-shadow: 0 24px 80px #160d0980; overflow-y: auto; overscroll-behavior: contain; }
.settings-dialog::backdrop { background: #160d0959; }
.settings-heading { position: sticky; top: 0; z-index: 1; display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding-bottom: 8px; background: #f7efdf; box-shadow: 0 -40px #f7efdf; }
.settings-heading h2 { margin: 6px 0 10px; font: 500 42px/1 'Cormorant Garamond', Georgia, serif; }
.settings-eyebrow { font: 12px 'Cormorant Garamond', Georgia, serif; letter-spacing: .15em; color: #806d5b; }
.settings-close { flex: none; width: 44px; height: 44px; border: 1px solid #c9bbaa; border-radius: 50%; background: none; color: #393126; font: 30px/1 Georgia, serif; }
.settings-note { margin: 0 0 22px; font: 12px/1.7 'Libre Baskerville', Georgia, serif; color: #756452; }
.settings-row { min-width: 0; margin: 0; padding: 22px 0; border: 0; border-bottom: 1px solid #d6c9b5; }
fieldset.settings-row { padding-top: 8px; }
.settings-row legend, .settings-row h3 { margin: 0; padding: 0; font: 600 24px 'Cormorant Garamond', Georgia, serif; }
.size-options { display: flex; gap: 8px; }
.size-options label { flex: 1; position: relative; cursor: pointer; }
.size-options input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.size-options span { min-height: 44px; display: grid; place-items: center; padding: 8px 4px; border: 1px solid #c9bbaa; border-radius: 5px; font: 20px 'Cormorant Garamond', Georgia, serif; }
.size-options input:checked + span { background: #1b3934; color: #f8edda; border-color: #1b3934; }
.size-options input:focus-visible + span { outline: 2px solid #805046; outline-offset: 3px; }
.settings-preview { margin-top: 18px; padding: 18px; background: #efe4d0; border-radius: 6px; }
.settings-preview p { margin: 10px 0 0; font-size: calc(16px * var(--reading-scale, 1)); line-height: 1.65; }
.settings-toggle { display: flex; align-items: center; justify-content: space-between; gap: 22px; cursor: pointer; }
.settings-toggle strong { display: block; font: 600 24px 'Cormorant Garamond', Georgia, serif; }
.settings-toggle small { display: block; margin-top: 6px; font: 12px/1.7 'Libre Baskerville', Georgia, serif; color: #756452; }
.settings-toggle input { flex: none; width: 24px; height: 24px; accent-color: #1b3934; cursor: pointer; }
.settings-toggle input:focus-visible { outline: 2px solid #805046; outline-offset: 3px; }
.settings-row .settings-note { margin: 8px 0 0; }
.settings-row .settings-note:empty { display: none; }
.settings-help { padding-bottom: 0; border-bottom: 0; }
.settings-help p { font-size: 12px; line-height: 1.7; color: #756452; }
#replay-guide { display: none; min-height: 44px; padding: 8px 0; border: 0; background: none; color: #1b3934; font: 600 22px 'Cormorant Garamond', Georgia, serif; text-decoration: underline; text-underline-offset: 4px; }
html[data-paper-texture="reduced"] .reading-panel { background-image: none; }
html[data-reduced-motion="true"] .action-feedback { transition: none; animation: none !important; }
html[data-reduced-motion="true"] .story-frame { transition: none; }
.rights-page { height: auto; min-height: 100dvh; overflow: auto; background: #3d2418 url('assets/library-wood.webp') center / cover fixed; }
.rights-content { width: min(700px, calc(100% - 32px)); margin: clamp(24px, 8vh, 80px) auto; padding: clamp(28px, 5vw, 60px); border-radius: 8px; background: #f7efdf url('assets/paper/classic.webp') center / cover; box-shadow: 0 24px 45px rgba(17, 9, 5, .35); }
.rights-back { color: #713f33; text-decoration: underline; text-underline-offset: 3px; font-size: 13px; }
.rights-content h1 { margin: 20px 0; font: 500 clamp(42px, 7vw, 64px)/1 'Cormorant Garamond', Georgia, serif; }
.rights-content p { font-size: 15px; line-height: 1.7; }
.feed { height: 100dvh; position: relative; overflow: hidden; background: radial-gradient(ellipse at 50% 43%, rgba(196, 136, 81, .13), rgba(14, 8, 6, .3)), url('assets/library-wood.webp') center / cover; }
.action-feedback { position: fixed; left: 25%; bottom: 110px; z-index: 6; display: flex; align-items: center; gap: 14px; margin: 0; padding: 7px 18px; border: 1px solid rgba(255, 241, 219, .25); border-radius: 99px; background: rgba(29, 52, 45, .9); box-shadow: 0 5px 18px rgba(17, 9, 5, .3); color: #fff1db; font: 600 19px/1.2 'Cormorant Garamond', Georgia, serif; letter-spacing: .03em; white-space: nowrap; pointer-events: none; opacity: 0; visibility: hidden; transform: translate(-50%, 7px); transition: opacity .2s ease, transform .2s ease; }
.action-feedback.visible { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
.passage-link { position: fixed; right: 8%; bottom: 32px; z-index: 6; min-height: 42px; padding: 8px 18px; border: 1px solid #b6915d; border-radius: 5px; background: #f4ecdd; color: #393126; font: 18px 'Cormorant Garamond', Georgia, serif; box-shadow: 0 5px 18px #170c0866; }
.passage-link[hidden] { display: none; }
.linked-passage { background: #d9ba6e66; color: inherit; }
.cover-decor { position: absolute; inset: 0; background-position: center; background-size: cover; pointer-events: none; }
.story, .empty-state { display: flex; position: absolute; inset: 0; height: 100dvh; align-items: center; justify-content: center; padding: 82px clamp(18px, 5vw, 80px) 24px; }
.card-stack { display: contents; }
.story-frame { display: grid; position: relative; z-index: 1; grid-template-columns: minmax(0, 45fr) minmax(0, 55fr); gap: 12px; width: min(1440px, 100%); height: min(820px, 100%); min-height: 0; }
.swipe-rail { display: none; }
.gesture-guide[hidden] { display: none; }
.gesture-guide { position: fixed; inset: 0; z-index: 10; color: #f8edda; text-shadow: 0 2px 5px #1d1714; pointer-events: none; }
.gesture-guide-map { position: absolute; bottom: 110px; left: 50%; transform: translateX(-50%); width: min(480px, calc(100% - 22px)); height: 76px; display: flex; flex-direction: column; justify-content: center; gap: 4px; }
.gesture-guide-zone { display: flex; align-items: center; justify-content: space-between; padding: 0 14px; }
.guide-zone-label { order: 1; font: 600 12px 'Cormorant Garamond', Georgia, serif; letter-spacing: .12em; }
.guide-page-hint { margin: 0; text-align: center; font: 600 17px 'Cormorant Garamond', Georgia, serif; }
.guide-move { display: flex; align-items: center; gap: 6px; font: 600 18px 'Cormorant Garamond', Georgia, serif; }
.guide-arrow { font: 26px/1 'Cormorant Garamond', Georgia, serif; }
.guide-save { color: #c5ebd0; order: 2; }
.guide-vertical { display: flex; align-items: center; justify-content: center; gap: 5px; margin: 0; font: 16px 'Cormorant Garamond', Georgia, serif; }
.guide-vertical span { font-size: 22px; line-height: 1; }
.book-cover, .reading-panel { min-width: 0; min-height: 0; border-radius: 9px; box-shadow: 0 24px 45px rgba(17, 9, 5, .35); }
.book-cover { position: relative; overflow: hidden; color: #fff0d4; background: radial-gradient(circle at 52% 37%, rgba(101,130,105,.19), transparent 55%), repeating-linear-gradient(92deg, transparent 0 3px, rgba(255,255,255,.015) 4px 5px), linear-gradient(135deg, #152b2a, #1f3933 55%, #122724); }
.story.has-cover-art .book-cover { background: linear-gradient(180deg, rgba(3,9,10,.1), rgba(4,10,11,.28) 40%, rgba(4,10,11,.42)), var(--cover-art) center / cover; }
.book-cover::before { content: ''; position: absolute; inset: 22px; border: 1px solid rgba(219, 199, 154, .45); border-radius: 4px; box-shadow: 0 0 0 7px rgba(219, 199, 154, .06); pointer-events: none; }
.cover-inner { height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: clamp(12px, 2vh, 28px); padding: clamp(40px, 6vw, 85px) 32px; text-align: center; }
.cover-mark, .cover-author, .cover-footer { font-family: 'Cormorant Garamond', Georgia, serif; letter-spacing: .19em; text-transform: uppercase; }
.cover-mark { position: absolute; top: clamp(46px, 6vw, 82px); font-size: 15px; }
.cover-title { margin: 0; max-width: 500px; font-family: 'Cormorant Garamond', Georgia, serif; font-size: clamp(48px, 6.1vw, 100px); font-weight: 500; line-height: .93; text-wrap: balance; }
.cover-rule { width: 85px; height: 1px; background: #c9ac77; }
.cover-author { font-size: clamp(15px, 1.5vw, 22px); line-height: 1.3; }
.cover-footer { position: absolute; bottom: clamp(44px, 5vw, 72px); font-size: 13px; opacity: .75; }
.reading-panel { display: flex; position: relative; flex-direction: column; overflow: hidden; padding: clamp(28px, 3.5vw, 60px); background: #f7efdf; }
.paper-classic .reading-panel { background: #f7efdf url('assets/paper/classic.webp') center / cover; }
.paper-aged .reading-panel { border-radius: 6px 4px 9px 5px; background: #e8d5b4 url('assets/paper/aged.webp') center / cover; clip-path: polygon(0 0, 100% 0, 100% 22%, 99.7% 22.8%, 99.9% 23.6%, 99.2% 24.8%, 99.5% 25.3%, 98.3% 26.1%, 98.9% 27%, 99.6% 27.5%, 99% 28.8%, 100% 29.5%, 100% 82%, 99.5% 83.2%, 99.8% 84%, 98.6% 85.1%, 99.4% 86%, 99% 87%, 100% 88%, 100% 100%, 0 100%); }
.paper-linen .reading-panel { background: #f8f3e9 url('assets/paper/linen.webp') center / cover; }
.paper-linen .reading-panel::before { content: ''; position: absolute; top: 0; bottom: 0; left: clamp(7px, 1.2vw, 17px); border-left: 3px double rgba(157, 122, 83, .36); pointer-events: none; }
.reading-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; flex: none; padding-bottom: 22px; border-bottom: 1px solid #c9bbaa; }
.book-heading { min-width: 0; }
.paper-title { margin: 0; font-family: 'Cormorant Garamond', Georgia, serif; font-size: clamp(37px, 4vw, 66px); font-weight: 500; line-height: .92; text-wrap: balance; }
.paper-author { margin: 17px 0 0; font-family: 'Cormorant Garamond', Georgia, serif; font-size: clamp(15px, 1.4vw, 21px); letter-spacing: .25em; text-transform: uppercase; }
.reading-actions { display: flex; flex-direction: column; gap: 9px; flex: none; padding-top: 4px; }
.mobile-page-nav, .mobile-actions { display: none; }
.save-button, .book-link-button, .read-link { display: flex; align-items: center; justify-content: center; gap: 10px; min-height: 42px; padding: 8px 13px; border: 1px solid #867d6d; border-radius: 5px; background: transparent; color: #393126; font-family: 'Cormorant Garamond', Georgia, serif; font-size: 18px; white-space: nowrap; }
.save-button { background: #1b3934; border-color: #1b3934; color: #f8edda; }
.save-button[aria-pressed="true"] { background: #805046; border-color: #805046; }
.book-link-button:hover, .read-link:hover { background: #ebe0cc; }
.book-link-button svg { display: block; width: 17px; height: 17px; flex: none; }
.bookmark-icon { width: 13px; height: 17px; display: block; background: currentColor; clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 73%, 0 100%); position: relative; }
.bookmark-icon::after { content: ''; position: absolute; inset: 2px; background: #1b3934; clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 70%, 0 100%); }
.save-button[aria-pressed="true"] .bookmark-icon::after { display: none; }
.page-content { min-height: 0; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #c2af95 transparent; padding: 27px 3px 16px 0; }
.chapter { margin-bottom: 22px; font-family: 'Cormorant Garamond', Georgia, serif; font-size: 17px; letter-spacing: .19em; text-transform: uppercase; }
.excerpt { --excerpt-size: clamp(15px, 1.25vw, 18px); font-size: calc(var(--excerpt-size) * var(--reading-scale, 1)); line-height: 1.7; }
.excerpt p { margin: 0 0 1.25em; }
.excerpt p:first-child::first-letter { float: left; font-family: 'Cormorant Garamond', Georgia, serif; font-size: 3.3em; line-height: .8; padding: .05em .12em 0 0; }
.rights-link { display: inline-block; margin-top: 12px; color: #713f33; text-decoration: underline; text-underline-offset: 3px; font: 16px 'Cormorant Garamond', Georgia, serif; }
.empty-page { width: min(600px, 100%); min-height: 320px; background: #f4eddf; box-shadow: 0 22px 55px rgba(17,9,5,.3); display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 30px; border-radius: 8px; }
.empty-page h2 { font-family: 'Cormorant Garamond', Georgia, serif; font-size: 42px; font-weight: 500; margin: 16px 0 5px; }
.empty-page p { font-size: 14px; line-height: 1.6; }
.empty-page button { background: none; border: 0; border-bottom: 1px solid #8c6657; padding: 5px; color: #713f33; font: 19px 'Cormorant Garamond', Georgia, serif; }
.saved-feed { overflow-y: auto; background: #e9dfcf url('assets/library-wood.webp') center / cover fixed; }
.saved-list { width: min(980px, 100%); min-height: 100%; margin: auto; padding: 116px 24px 70px; }
.saved-intro { color: #f6ead7; margin-bottom: 30px; text-shadow: 0 2px 5px #2a170f; }
.saved-eyebrow { font: 13px 'Cormorant Garamond', Georgia, serif; letter-spacing: .25em; }
.saved-intro h2 { margin: 5px 0; font: 500 clamp(44px, 6vw, 70px)/1 'Cormorant Garamond', Georgia, serif; }
.saved-intro p { margin: 8px 0 0; font-size: 13px; }
.saved-intro .rights-link { color: #fff1db; }
.saved-list ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 12px; }
.saved-pagination { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 16px; margin-top: 28px; color: #fff1db; font: 20px 'Cormorant Garamond', Georgia, serif; text-shadow: 0 2px 5px #2a170f; }
.saved-pagination button { min-height: 42px; padding: 6px 16px; border: 1px solid #e9dac2; border-radius: 5px; background: #f4ecdd; color: #393126; }
.saved-pagination button:disabled { opacity: .5; cursor: default; }
.saved-item { display: flex; align-items: center; gap: 25px; min-height: 142px; padding: 16px 24px; background: #f4ecdd; border-radius: 7px; box-shadow: 0 9px 24px rgba(17, 9, 5, .23); }
.saved-cover { flex: 0 0 75px; height: 108px; display: flex; align-items: center; justify-content: center; padding: 9px; background: linear-gradient(135deg, #1a3734, #102623); color: #f4e6ca; box-shadow: 2px 4px 8px #362b2255; text-align: center; }
.saved-cover span { font: 500 16px/.95 'Cormorant Garamond', Georgia, serif; overflow-wrap: anywhere; }
.saved-cover.illustrated { background-size: cover; background-position: center; }
.saved-cover.illustrated span { display: none; }
.saved-details .open-saved:hover { text-decoration: underline; text-underline-offset: 4px; }
.saved-details { flex: 1; min-width: 0; }
.saved-details h3 { margin: 0; font: 500 clamp(25px, 3vw, 36px)/1 'Cormorant Garamond', Georgia, serif; }
.saved-reading-cue { display: block; margin-top: 8px; color: #713f33; font: 16px/1.3 'Cormorant Garamond', Georgia, serif; }
.saved-details p { margin: 8px 0; font: 18px 'Cormorant Garamond', Georgia, serif; }
.saved-meta { color: #806d5b; font: 12px 'Cormorant Garamond', Georgia, serif; letter-spacing: .13em; }
.saved-actions { display: flex; flex-direction: column; gap: 8px; align-items: stretch; }
.saved-actions .save-button, .saved-actions .book-link-button, .saved-actions .read-link { min-height: 36px; font-size: 16px; }
@media (max-width: 900px) {
  .story-frame { grid-template-columns: minmax(0, 42fr) minmax(0, 58fr); }
  .reading-panel { padding: 28px; }
  .reading-head { display: block; }
  .reading-actions { flex-direction: row; padding-top: 16px; }
  .paper-title { font-size: 40px; }
}
@media (max-width: 700px) {
  .action-feedback { left: 50%; bottom: 68px; font-size: 18px; }
  .passage-link { left: 50%; right: auto; bottom: 68px; min-height: 40px; max-width: calc(100% - 118px); transform: translateX(-50%); }
  body:has(.passage-link:not([hidden])) .page-count { visibility: hidden; }
  .action-feedback.over-page-nav { left: var(--feedback-left); top: var(--feedback-top); bottom: auto; width: var(--feedback-width); height: var(--feedback-height); display: flex; align-items: center; justify-content: center; gap: 10px; padding: 0 16px; border-radius: 6px; background: #214a41; font-size: 21px; transform: none; box-shadow: 0 3px 12px rgba(17, 9, 5, .2); }
  .action-feedback.over-page-nav::before { content: '✓'; font: 20px/1 Georgia, serif; }
  .action-feedback.over-page-nav[data-action="next"] { background: #efe1c5; border-color: #e3cfa8; color: #393126; }
  .action-feedback.over-page-nav[data-action="next"]::before { content: '→'; }
  .action-feedback.over-page-nav[data-action="remove"]::before { content: '−'; }
  .action-feedback.over-page-nav.visible { animation: feedback-reveal .24s ease-out both; }
  @keyframes feedback-reveal { from { clip-path: inset(100% 0 0); } to { clip-path: inset(0); } }
  .site-header { height: 55px; padding: 0 17px; justify-content: space-between; gap: 10px; }
  .brand { font-size: 27px; }
  .site-header nav { gap: 12px; }
  .nav-item { font-size: 18px; }
  .header-actions { gap: 4px; }
  .feed-controls { gap: 6px; }
  .feed-control { min-width: 44px; height: 50px; gap: 3px; font-size: 13px; }
  .feed-control-icon, .settings-control-icon { width: 30px; height: 30px; }
  .feed-control svg { width: 18px; height: 18px; }
  .settings-heading h2 { font-size: 36px; }
  .desktop-controls { display: none; }
  #replay-guide { display: block; }
  .saved-list { padding: 86px 12px 35px; }
  .saved-intro { margin: 0 7px 22px; }
  .saved-item { gap: 14px; padding: 12px; min-height: 130px; }
  .saved-cover { flex-basis: 64px; height: 96px; }
  .saved-cover span { font-size: 14px; }
  .saved-details h3 { font-size: 26px; }
  .saved-actions { align-self: stretch; justify-content: center; }
  .saved-actions .save-button, .saved-actions .book-link-button, .saved-actions .read-link { padding: 5px 7px; font-size: 14px; }
  .story, .empty-state { padding: 61px 11px 10px; }
  .story { flex-direction: column; touch-action: none; }
  .cover-decor { display: none; }
  .card-stack { display: block; position: relative; flex: 1; width: min(480px, 100%); min-height: 0; isolation: isolate; }
  .story-frame { display: block; width: 100%; height: 100%; overflow: hidden; border-radius: 8px; transition: transform .18s ease-out; }
  .story-frame[data-swipe] { transition: none; }
  .swipe-rail { display: block; position: absolute; inset: 0; z-index: 0; border-radius: 8px; opacity: 0; pointer-events: none; }
  .swipe-rail[data-swipe="save"],
  .swipe-rail[data-swipe="saved"] { opacity: 1; background: #214a41; color: #f8edda; }
  .swipe-rail[data-swipe="next"] { opacity: 1; background: #efe1c5; color: #393126; }
  .rail-save, .rail-next { display: none; position: absolute; top: 50%; width: 80px; transform: translateY(-50%); flex-direction: column; align-items: center; gap: 9px; font: 600 23px 'Cormorant Garamond', Georgia, serif; }
  .rail-save { left: 6px; }
  .rail-next { right: 6px; }
  .rail-arrow { font-size: 35px; line-height: .7; }
  .swipe-rail[data-swipe="save"] .rail-save,
  .swipe-rail[data-swipe="saved"] .rail-save,
  .swipe-rail[data-swipe="next"] .rail-next { display: flex; }
  .book-cover, .reading-panel { position: absolute; inset: 0; border-radius: 8px; }
  .story .page-turn-sheet { z-index: 3; pointer-events: none; }
  .story[data-page="0"] .reading-panel, .story:not([data-page="0"]) .book-cover { visibility: hidden; pointer-events: none; }
  .story.has-cover-art .book-cover { background-position: center, center 22%; }
  .book-cover::before { inset: 13px; }
  .cover-inner { padding: 35px 26px 14px; gap: 14px; }
  .cover-mark { top: 22px; font-size: 11px; }
  .cover-footer { display: none; }
  .cover-title { font-size: clamp(32px, 8.5vw, 56px); line-height: .94; max-width: 350px; }
  .cover-rule { width: 45px; }
  .cover-author { font-size: 13px; letter-spacing: .12em; }
  .reading-panel { padding: 30px 28px 20px; }
  .reading-head { display: none; }
  .mobile-page-nav { display: flex; align-items: center; justify-content: space-between; flex: none; width: min(480px, 100%); height: 44px; color: #f8edda; font: 17px 'Cormorant Garamond', Georgia, serif; text-shadow: 0 1px 3px #20130f; }
  .mobile-page-nav button { width: 48px; height: 40px; border: 0; background: none; color: inherit; font: 36px/1 'Cormorant Garamond', Georgia, serif; }
  .mobile-page-nav button:disabled { opacity: .3; cursor: default; }
  .mobile-actions { display: flex; justify-content: center; align-items: center; gap: 8px; flex: none; width: min(480px, 100%); min-height: 56px; padding: 6px; border-radius: 6px; background: #f1e5cf; }
  body:has(.gesture-guide:not([hidden])) .card-stack { margin-bottom: 76px; }
  .story.is-swiping-away .mobile-page-nav, .story.is-swiping-away .mobile-actions { visibility: hidden; }
  .save-button, .book-link-button, .read-link { min-height: 34px; padding: 5px 11px; font-size: 15px; }
  .page-content { display: flex; flex-direction: column; overflow: hidden; padding: 0; }
  .chapter { display: none; }
  .excerpt { --excerpt-size: 16px; flex: 1; min-height: 0; overflow: hidden; column-fill: auto; column-gap: 0; line-height: 1.65; }
}
@media (min-width: 701px) { .gesture-guide { display: none; } }
@media (max-width: 520px) {
  .saved-item { display: grid; grid-template-columns: 64px minmax(0, 1fr); gap: 8px 14px; }
  .saved-cover { grid-row: 1 / 3; }
  .saved-actions { flex-direction: row; justify-content: flex-start; flex-wrap: wrap; }
  .saved-actions .save-button, .saved-actions .book-link-button, .saved-actions .read-link { min-height: 32px; }
}
@media (max-width: 380px) {
  .site-header { padding-inline: 11px; gap: 6px; }
  body:has(.nav-item[data-return]) .site-header [data-view="discover"] { display: none; }
  .brand { font-size: 24px; }
  .site-header nav { gap: 8px; }
  .nav-item { font-size: 16px; }
  .feed-controls { gap: 2px; }
  .mobile-actions { gap: 5px; }
  .mobile-actions .save-button, .mobile-actions .book-link-button, .mobile-actions .read-link { padding: 5px 6px; gap: 5px; font-size: 14px; }
  .mobile-actions .book-link-button svg { width: 15px; height: 15px; }
}
@media (max-height: 680px) and (min-width: 701px) {
  .site-header { height: 52px; }
  .story, .empty-state { padding-top: 64px; }
  .reading-panel { padding-top: 24px; padding-bottom: 18px; }
  .reading-head { padding-bottom: 12px; }
  .page-content { padding-top: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .action-feedback { transition: none; animation: none !important; }
  .story-frame { transition: none; }
}
