.file-index .file-choices {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 19rem), 1fr));
  align-items: stretch;
  gap: 0 1.25rem;
}
.file-index .file-choices a.library-file {
  display: grid;
  grid-template-columns: clamp(5.4rem, 8vw, 7.3rem) minmax(0, 1fr);
  align-content: center;
  align-items: center;
  gap: .9rem;
  padding: .75rem 0;
  border: 0;
  border-block-end: 1px solid var(--rule);
  color: var(--ink);
  text-decoration: none;
}
.library-thumb {
  display: grid;
  place-items: center;
  aspect-ratio: 5 / 3;
  overflow: hidden;
  background: #e9e9e5;
}
.library-thumb img { width: 100%; height: 100%; object-fit: contain; }
.library-file-copy { display: grid; align-content: center; gap: .25rem; min-width: 0; }
.file-index .library-file-copy span { color: var(--muted); opacity: 1; font-size: .72rem; line-height: 1.4; }
.library-file-copy strong { font-size: .92rem; font-weight: 540; line-height: 1.55; overflow-wrap: anywhere; }
.library-file:is(:hover, :focus-visible) .library-file-copy strong {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: .2em;
}
.library-file:focus-visible { outline: 2px solid var(--focus); outline-offset: 3px; }
.library-edition { padding: .45rem .55rem; background: #e5e2d9; }
.library-leaf {
  width: 83%;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 2px;
  padding: .36rem .35rem;
  background: #fdfbf3;
  border-inline-start: 2px solid #9d8265;
  box-shadow: 1px 1px 0 #b7b2a5;
  min-height: 0;
  overflow: hidden;
}
.library-leaf small { font-size: .46rem; line-height: 1.3; color: #544c41; }
.library-leaf b { font-size: .88rem; line-height: 1.15; }
.library-leaf .library-snippet {
  font-size: .49rem;
  line-height: 1.42;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.edition-table, .edition-study { background: #dce7e0; }
.edition-table .library-leaf, .edition-study .library-leaf {
  background: #f7fbf8;
  border-inline-start-color: #52816e;
  border-block-end: 3px double #7e9d8f;
}
.edition-campaign, .edition-report { background: #dce4eb; }
.edition-campaign .library-leaf, .edition-report .library-leaf { background: #f3f7fa; border-inline-start-color: #52768c; }
.edition-print .library-leaf { width: 66%; border-inline-start-color: #8d644d; }
@media (max-width: 450px) {
  .file-index .file-choices a.library-file { grid-template-columns: 5.7rem minmax(0,1fr); }
}

.library-shortcuts { display:flex; flex-wrap:wrap; gap:0 1.2rem; }
.file-index.artwork-index .file-choices {
  grid-template-columns:repeat(auto-fill,minmax(min(100%,15rem),1fr)); gap:1rem clamp(1rem,2vw,2rem);
}
.file-index.artwork-index .file-choices a.library-file {
  grid-template-columns:minmax(0,1fr); align-content:start; gap:.8rem;
}
.artwork-index .library-thumb { width:100%; height:clamp(11rem,21vw,17rem); aspect-ratio:auto; padding:.6rem; background:#ecece7; }
.artwork-index .library-file-copy strong { font-size:1.05rem; }
.file-index .print-viewer { border-top:2px solid var(--ink); scroll-margin-block-start:1rem; padding-block:1.1rem 1.4rem; margin-bottom:2.5rem; }
.print-viewer:focus-visible { outline:none; }
.print-viewer:focus-visible header h2 { text-decoration:underline; text-underline-offset:.16em; text-decoration-thickness:2px; }
.print-viewer > header { display:flex; align-items:start; justify-content:space-between; gap:1rem; margin-block-end:1.3rem; }
.print-viewer > header h2 { font-size:clamp(1.6rem,4vw,3.2rem); margin:0; line-height:1.16; }
.print-viewer > header p { margin:.55rem 0 0; }
.print-viewer a:not(.print-zoom) { display:inline-flex; align-items:center; min-height:44px; }
.print-plates { display:grid; grid-template-columns:minmax(0,1fr); gap:clamp(.6rem,2vw,2rem); touch-action:pan-y pinch-zoom; }
.print-plates.print-pair { grid-template-columns:repeat(2,minmax(0,1fr)); }
.print-plates figure { margin:0; min-width:0; }
.print-zoom { display:grid; place-items:center; height:clamp(15rem,43vh,33rem); background:#ecece7; padding:clamp(.5rem,1.3vw,1rem); cursor:zoom-in; }
.print-zoom img { display:block; width:100%; height:100%; min-height:0; object-fit:contain; }
.print-plates figcaption { margin-block:.75rem 0; }
.print-plates strong { font-size:clamp(1rem,2vw,1.45rem); }
.print-plates figcaption p { max-width:63ch; line-height:1.6; margin:.35rem 0 0; }
.print-view-actions,.print-pagination,.print-pagination nav { display:flex; flex-wrap:wrap; align-items:center; gap:.3rem 1.5rem; }
.print-view-actions { border-top:1px solid var(--rule); padding-block:.4rem; }
.print-mode { font-weight:700; }
.print-pagination { border-top:1px solid var(--rule); justify-content:space-between; padding-block:.4rem; }
.print-pagination nav a:not(.print-zoom) { display:grid; align-content:center; gap:.2rem; text-decoration:none; }
.print-pagination a small { color:var(--muted); }
.print-pagination a:is(:hover,:focus-visible) strong { text-decoration:underline; }
@media(max-width:700px) {
  .print-viewer > header { flex-wrap:wrap; gap:0 .8rem; }
  .print-plates.print-pair .print-zoom { height:clamp(10rem,52vw,17rem); padding:.35rem; }
  .print-plates.print-pair figcaption p { font-size:.9rem; line-height:1.5; }
  .print-plates figcaption a { font-size:.9rem; }
  .print-pagination { align-items:start; gap:0 1rem; }
}
@media(prefers-reduced-motion:no-preference) {
  .print-zoom img { transition:transform .2s var(--ease); }
  .print-zoom:is(:hover,:focus-visible) img { transform:scale(1.015); }
}
