/* Homepage book preview only; existing site and Buy page styles stay intact. */
.book-preview { margin-top: 44px; }
.book-hint { color: var(--muted); font-size: 13px; margin: 0 0 24px; }
.book-viewport { overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; cursor: grab; border-radius: 3px; }
.book-viewport::-webkit-scrollbar { display: none; }
.book-viewport:focus-visible { outline: 1px solid #aaa; outline-offset: 7px; }
.book-viewport.is-dragging { cursor: grabbing; scroll-snap-type: none; user-select: none; }
.book-track { display: flex; gap: 40px; position: relative; }
.book-slide { flex: 0 0 100%; min-width: 0; margin: 0; padding: 22px 24px 0; scroll-snap-align: start; scroll-snap-stop: always; }
.book-spread { display: flex; position: relative; width: min(100%, 790px); margin: auto; box-shadow: 0 18px 35px #0009, 0 2px 0 #b8b8b8, 0 4px 0 #777; border-radius: 2px; }
.book-page { display: block; width: 50%; border: 0; padding: 0; background: #fff; cursor: zoom-in; position: relative; }
.book-page img { width: 100%; height: auto; display: block; user-select: none; }
.book-page:first-child { border-radius: 3px 0 0 3px; }
.book-page:last-child { border-radius: 0 3px 3px 0; }
.book-page::after { content: ''; position: absolute; inset: 0; pointer-events: none; }
.book-page:first-child::after { background: linear-gradient(90deg, #00000005, transparent 12%, transparent 91%, #00000021); }
.book-page:last-child::after { background: linear-gradient(90deg, #00000025, transparent 9%, transparent 96%, #00000005); }
.book-page:focus-visible { outline: 3px solid #777; outline-offset: -3px; z-index: 1; }
.book-slide figcaption { text-align: center; margin: 30px auto 0; max-width: 580px; min-height: 82px; }
.book-slide figcaption h3 { font-family: 'DM Sans', sans-serif; font-size: 17px; font-weight: 600; margin: 0 0 5px; }
.book-slide figcaption p { color: var(--muted); font-size: 14px; margin: 0; }
.book-controls { display: flex; justify-content: center; align-items: center; gap: 32px; margin-top: 24px; }
.book-arrow { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 50%; background: transparent; color: var(--paper); cursor: pointer; transition: border-color .2s, background .2s; }
.book-arrow:hover:not(:disabled) { border-color: #888; background: #ffffff08; }
.book-arrow:disabled { opacity: .25; cursor: default; }
.book-arrow:focus-visible, .book-dots button:focus-visible { outline: 2px solid #ddd; outline-offset: 4px; }
.book-progress { display: flex; flex-direction: column; align-items: center; gap: 5px; }
.book-dots { display: flex; gap: 2px; }
.book-dots button { width: 26px; height: 26px; padding: 0; border: 0; background: transparent; cursor: pointer; display: grid; place-items: center; }
.book-dots button::after { content: ''; width: 5px; height: 5px; border-radius: 50%; background: #555; transition: background .2s, transform .2s; }
.book-dots button[aria-current]::after { background: #eee; transform: scale(1.3); }
.book-count { color: var(--muted); font-size: 11px; letter-spacing: .15em; font-variant-numeric: tabular-nums; }
.book-finale { width: min(100%, 790px); min-height: 561px; display: flex; gap: 60px; align-items: center; justify-content: center; margin: auto; }
.book-cover { width: 40%; height: auto; box-shadow: 12px 18px 35px #000; border: 1px solid #333; transform: rotate(-3deg); }
.book-final-copy { max-width: 330px; }
.book-final-copy h3 { font-family: 'Barlow Condensed', sans-serif; text-transform: uppercase; font-size: clamp(36px, 4vw, 52px); line-height: 1.05; margin: 0 0 20px; }
.book-final-copy > p:not(.eyebrow) { color: var(--muted); margin-bottom: 28px; }
.book-final-copy .eyebrow { font-size: 11px; margin-bottom: 18px; }
.book-final-copy .button { min-width: 195px; }
.book-reader { width: min(100% - 24px, 1050px); max-height: 92dvh; padding: 0; border: 1px solid #444; background: #111; color: white; overscroll-behavior: contain; }
.book-reader::backdrop { background: #000d; }
.book-reader form { position: sticky; top: 0; z-index: 2; display: flex; justify-content: flex-end; background: #111; border-bottom: 1px solid #333; }
.book-reader-close { padding: 12px 20px; border: 0; background: transparent; color: white; font: inherit; cursor: pointer; }
.book-reader-close span { margin-left: 20px; font-size: 24px; }
.book-reader > img { display: block; width: 100%; height: auto; }
@media (max-width: 800px) {
  .book-preview { margin-top: 30px; }
  .book-hint { font-size: 12px; line-height: 1.5; }
  .book-slide { padding: 14px 5px 0; }
  .book-slide figcaption { margin-top: 24px; min-height: 96px; }
  .book-slide figcaption h3 { font-size: 16px; }
  .book-slide figcaption p { font-size: 13px; }
  .book-controls { gap: 20px; margin-top: 12px; }
  .book-finale { min-height: calc(61.06vw + 113px); gap: 18px; }
  .book-cover { width: 35%; }
  .book-final-copy { width: 57%; }
  .book-final-copy h3 { font-size: clamp(28px, 7vw, 42px); margin-bottom: 14px; }
  .book-final-copy .eyebrow { font-size: 9px; letter-spacing: .1em; }
  .book-final-copy > p:not(.eyebrow) { font-size: 12px; margin-bottom: 20px; }
  .book-final-copy .button { min-width: 0; width: 100%; padding: 13px 16px; gap: 10px; font-size: 13px; }
}
@media (prefers-reduced-motion: reduce) { .book-viewport { scroll-behavior: auto; } .book-cover { transform: none; } }
