/* Page-specific rules; common interior layout is in components.css. */
.photo-book-main .photo-book-reader-head { position:sticky; top:var(--site-header-offset); z-index:5; background:var(--paper); padding:16px 0; }
.photo-book-main .book-toolbar { display:flex; flex-wrap:wrap; gap:8px; }.book-toolbar button,.book-toolbar select,.book-lightbox-close { min-height:48px; padding:8px 14px; border:1px solid var(--green); border-radius:10px; background:var(--card); color:var(--green); }
.photo-book-main .book-stage { background:var(--cream); border-radius:22px; padding:24px; }.photo-book-main .book-spread { display:grid; grid-template-columns:1fr 1fr; gap:24px; }.photo-book-main .book-page { min-width:0; padding:24px; border-radius:16px; background:var(--card); }.photo-book-main .book-photo-frame img { max-height:65vh; object-fit:contain; }.book-thumbnails { display:flex; gap:8px; flex-wrap:wrap; }.book-thumbnails button { width:70px; padding:4px; background:var(--paper); border:2px solid transparent; }.book-thumbnails button.is-active { border-color:var(--green); }.book-status { margin-top:16px; }.book-progress { height:4px; background:var(--line); }.book-progress span { display:block; height:100%; background:var(--green); }
.book-lightbox { position:fixed; inset:0; z-index:100; display:none; background:rgb(20 20 20 / .88); padding:20px; }.book-lightbox.is-open { display:grid; place-items:center; }.book-lightbox-panel { width:min(100%,1100px); max-height:100%; overflow:auto; background:var(--card); padding:16px; border-radius:16px; }.book-lightbox-header { display:flex; justify-content:space-between; }.book-lightbox img { max-height:75vh; width:auto; margin:auto; object-fit:contain; }.photo-book-zoom-open { overflow:hidden; }
.photo-book-main [hidden], .book-lightbox[hidden] { display:none !important; }
.photo-book-main .work-index-grid { grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; }
.photo-book-main .work-index-section { display:grid; gap:12px; min-width:0; }
.photo-book-main .work-index-list { display:grid; grid-template-columns:minmax(0,1fr); gap:9px; }
.photo-book-main .work-index-card { min-width:0; border-radius:16px; background:var(--card); }
.photo-book-main .work-index-card > button { display:grid; grid-template-columns:74px minmax(0,1fr); align-items:center; width:100%; padding:0; border:0; border-radius:16px; background:transparent; color:inherit; text-align:left; font:inherit; cursor:pointer; }
.photo-book-main .work-index-card img { width:74px; height:74px; object-fit:cover; border-radius:16px; }
.photo-book-main .work-index-copy { display:grid; min-width:0; gap:4px; padding:10px 12px; overflow-wrap:anywhere; }
.reader-mode-mobile { display:none; }
@media(max-width:760px) { .photo-book-main .book-spread, .photo-book-main .work-index-grid { grid-template-columns:minmax(0,1fr); }.reader-mode-desktop { display:none; }.reader-mode-mobile { display:inline; } }
.book-stage.is-sliding-next .book-spread { animation:kamishibai-slide-next .5s cubic-bezier(.2,.72,.2,1) both; }
.book-stage.is-sliding-prev .book-spread { animation:kamishibai-slide-prev .5s cubic-bezier(.2,.72,.2,1) both; }
@keyframes kamishibai-slide-next { 0%,100% { opacity:1; transform:translateX(0); } 48% { opacity:.42; transform:translateX(-7%); } }
@keyframes kamishibai-slide-prev { 0%,100% { opacity:1; transform:translateX(0); } 48% { opacity:.42; transform:translateX(7%); } }
@media(prefers-reduced-motion:reduce) { .book-stage.is-sliding-next .book-spread, .book-stage.is-sliding-prev .book-spread { animation:none; } }
.book-reader-close { display:none; }
@media(min-width:761px) {
  body.book-reader-modal-open { overflow:hidden; }
  .photo-book-main .photo-book-reader { display:none; }
  .photo-book-main .photo-book-reader.is-book-modal-open { display:grid; grid-template-rows:auto minmax(0,1fr); position:fixed; inset:0; z-index:80; padding:24px; overflow:auto; background:var(--paper); }
  .photo-book-main .photo-book-reader.is-book-modal-open .photo-book-reader-head { position:static; }
  .photo-book-main .photo-book-reader.is-book-modal-open .book-reader-close { display:inline-flex; }
}
@media(max-width:760px) {
  .photo-book-main .book-photo-frame.is-zoomed { position:fixed; inset:0; z-index:100; display:grid; place-content:center; padding:20px; background:var(--paper); overflow:auto; }
  .photo-book-main .book-photo-frame.is-zoomed img { max-height:80vh; object-fit:contain; }
}

/* Long publication titles must fit narrow native select controls. */
.photo-book-main .book-toolbar select { min-width:0; max-width:100%; }
