.book-main{max-width:1500px;margin:auto;padding:28px 20px 60px}.book-heading{text-align:center;margin:12px auto 24px;max-width:900px}.book-heading h1{font-size:clamp(1.8rem,3vw,2.7rem);line-height:1.15;margin:16px 0 8px}.book-heading p{margin:8px 0;color:var(--muted)}.book-reader{background:#ddd4c5;border:1px solid #b8aa96;border-radius:12px;overflow:hidden;box-shadow:0 12px 36px #30271822}.book-reader button,.book-reader input{font:inherit}.book-reader button{padding:10px 16px;min-height:44px;border:1px solid #aa987b;border-radius:6px;background:linear-gradient(#fffdf8,#eee7d9);color:#263e2a;box-shadow:0 3px 0 #a7977c;cursor:pointer}.book-reader button:hover:not(:disabled){background:#fff}.book-reader button:active:not(:disabled){transform:translateY(2px);box-shadow:0 1px 0 #a7977c}.book-reader button:disabled{opacity:.45;cursor:default;box-shadow:none}.book-reader :focus-visible{outline:3px solid #385d45;outline-offset:3px}.book-tools,.book-navigation{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;padding:14px;background:#f4efe5}.book-tools{border-bottom:1px solid #c9bca7}.book-tools output{min-width:48px;text-align:center}.book-viewport{overflow:auto;max-height:72vh;padding:26px 22px;scrollbar-gutter:stable;overscroll-behavior:contain}.book-spread{display:flex;align-items:stretch;width:calc(1120px * var(--book-zoom,1));max-width:none;min-width:100%;margin:0 auto;perspective:2200px}.book-page{display:none;flex:1 0 50%;width:50%;min-width:0;background:#fffefb;box-sizing:border-box;position:relative;box-shadow:0 7px 14px #201a1830;padding:36px 38px 55px;min-height:770px}.book-page.is-visible{display:block}.book-page.left-page{background:linear-gradient(to right,#fffefb 94%,#e7e0d5);border-right:1px solid #d2c6b3}.book-page.right-page{background:linear-gradient(to right,#eee8de,#fffefb 6%)}.book-page .page-number{position:absolute;bottom:14px;left:0;right:0;text-align:center;font:14px Georgia,serif;color:#756b5b}.book-page h2{font:600 1.55em/1.2 Georgia,serif;text-align:center;margin:12px 0 30px}.book-text{font-family:Georgia,'Times New Roman',serif;font-size:calc(17px * var(--book-zoom,1));line-height:1.65;color:#28251f}.book-text p{margin:0 0 1.1em}.book-text ol{padding-left:1.4em}.book-text li{margin-bottom:1em}.book-text .passenger{padding-left:14px;border-left:2px solid #d5c6ab}.book-page img{display:block;width:100%;height:auto}.book-page.scan-page{padding:14px 14px 40px}.book-page figcaption{font:calc(17px * var(--book-zoom,1))/1.5 Georgia,serif;margin-top:20px;color:#353027}.book-page figure{margin:0}.photo-without-caption{position:relative;aspect-ratio:1819/2245;overflow:hidden}.photo-without-caption img{position:absolute;top:0;left:0;width:100%;max-width:none}.book-cover{display:block;border:0!important;padding:0!important;margin:0 auto;max-width:340px;transform:rotate(-2deg);box-shadow:10px 12px 18px #21180f55!important;background:#fff!important}.book-cover img{width:100%;display:block}.cover-invitation{text-align:center;color:#443c30;margin:22px 0 0}.book-reader.is-closed .book-spread,.book-reader.is-closed .book-navigation{display:none}.book-reader:not(.is-closed) .cover-section{display:none}.book-navigation{border-top:1px solid #c9bca7}.book-jump{display:flex;align-items:center;gap:8px;margin:0}.book-jump input{width:70px;min-height:44px;border:1px solid #a18e70;border-radius:4px;padding:6px;background:white;color:#222}.book-status{min-width:130px;text-align:center}.book-error{background:#f4efe5;color:#873727;text-align:center;margin:0;padding:0 10px 10px}.book-error:empty{display:none}.book-tip{text-align:center;font-size:.94rem;color:var(--muted);margin:18px 0}.book-spread.turn-next .right-page{animation:turn-in-right .42s ease-out}.book-spread.turn-prev .left-page{animation:turn-in-left .42s ease-out}@keyframes turn-in-right{from{transform:rotateY(-28deg);transform-origin:left;opacity:.5}to{transform:rotateY(0);opacity:1}}@keyframes turn-in-left{from{transform:rotateY(28deg);transform-origin:right;opacity:.5}to{transform:rotateY(0);opacity:1}}.book-reader:fullscreen{border-radius:0;width:100%;height:100%;display:flex;flex-direction:column}.book-reader:fullscreen .book-viewport{max-height:none;flex:1}.book-reader:fullscreen .book-navigation{flex-shrink:0}.binder-card{display:flex;align-items:center;gap:36px;max-width:1000px;margin:auto}.binder-card .binder-cover-link{display:block;flex:0 0 210px;transform:rotate(-3deg)}.binder-card img{width:100%;box-shadow:7px 9px 14px #30271a38}.binder-card h2{margin-top:8px}.book-reader [hidden]{display:none!important}@media(max-width:760px){.book-main{padding:20px 10px 40px}.book-heading h1{font-size:1.8rem}.book-viewport{padding:15px 10px;max-height:70vh}.book-spread{width:calc(100% * var(--book-zoom,1));min-width:100%}.book-page{flex-basis:100%;width:100%;padding:24px 22px 50px;min-height:580px}.book-page.left-page,.book-page.right-page{background:#fffefb;border:none}.book-text{font-size:calc(17px * var(--book-zoom,1))}.book-tools,.book-navigation{gap:9px;padding:12px 8px}.book-reader button{padding:8px 12px}.book-navigation .book-status{order:-1;flex-basis:100%}.binder-card{flex-direction:column;gap:24px}.binder-card .binder-cover-link{flex-basis:auto;max-width:200px}.book-page.scan-page{padding:8px 8px 36px}}@media(prefers-reduced-motion:reduce){.book-spread.turn-next .right-page,.book-spread.turn-prev .left-page{animation:none}}@media print{.site-header,.book-heading nav,.book-tools,.book-navigation,.book-tip,.cover-section{display:none!important}.book-reader,.book-viewport{overflow:visible;max-height:none;background:white;border:0}.book-spread{display:block!important;width:100%}.book-page{display:block!important;width:100%;box-shadow:none;break-after:page;background:white!important;min-height:0}.book-reader.is-closed .book-spread{display:block}}
.book-spread{width:calc(100% * var(--book-zoom,1))}.book-reader{scroll-margin-top:84px}.book-viewport{max-height:65vh}

/* Fit complete pages at the default zoom; reserve scrolling for enlargement. */
@media screen {
.book-reader:not(.is-closed) .book-viewport{max-height:none;min-height:0;flex:none;padding:16px;overflow:hidden;scrollbar-gutter:auto}
.book-reader:not(.is-closed) .book-viewport.is-zoomed{overflow:auto}
.book-stage{position:relative;margin:0 auto;flex-shrink:0}
.book-reader.is-closed .book-stage{display:none}
.book-spread{position:absolute;top:0;left:0;min-width:0;margin:0;transform-origin:top left}
.book-page{flex:0 0 560px;width:560px;min-height:770px;padding:36px 38px 55px}
.book-text{font-size:17px;line-height:1.5}
.book-text p{margin-bottom:.9em}
.book-page figcaption{font-size:17px}
.book-page.scan-page{padding:14px 14px 40px}
}
@media print{.book-stage{width:auto!important;height:auto!important}.book-spread{transform:none!important}}

@media screen{.book-page{height:800px;min-height:800px}.book-page.scan-page img{height:746px;object-fit:contain}.book-text{line-height:1.4}.book-text p{margin-bottom:.75em}.book-page figure>img{max-height:690px;object-fit:contain}}

.book-comparison{position:relative;--split:50%;aspect-ratio:1938/2400;overflow:hidden;isolation:isolate}
.book-page .book-comparison img{position:absolute;inset:0;width:100%;height:100%;max-height:none;object-fit:fill;display:block}
.book-comparison .book-color{clip-path:inset(0 0 0 var(--split))}
.photo-without-caption .book-comparison{width:100%;aspect-ratio:1819/2400}
.book-divider{position:absolute;z-index:2;left:var(--split);top:0;height:100%;width:3px;background:white;pointer-events:none;color:transparent;filter:drop-shadow(0 0 2px #243c28)}
.book-divider::after{content:'↔';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#fffdf6;color:#243c28;font:28px Georgia}
.book-comparison input[type=range]{position:absolute;z-index:3;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:ew-resize;touch-action:pan-y}
.book-comparison:focus-within{outline:4px solid #b28543;outline-offset:-4px}
.book-comparison-labels{display:flex;justify-content:space-between;gap:12px;font-size:15px;color:#4a5147;margin:8px 0}

/* Matching album mounts; scans themselves remain untouched. */
.book-photo-mount{padding:9px;background:#fffaf0;border:1px solid #d8cebc;box-shadow:3px 5px 10px #34291e30;box-sizing:border-box}
.book-color-layer{position:absolute;inset:0;clip-path:inset(0 0 0 var(--split));overflow:hidden}
.book-comparison .book-color{clip-path:none}
.photo-without-caption{aspect-ratio:auto;overflow:visible}
.photo-without-caption .book-comparison{aspect-ratio:1249/1543}
.book-page .photo-without-caption .book-comparison img{width:145.56%;height:155.52%;left:-26.64%;top:-23.02%;right:auto;bottom:auto;max-width:none}
.book-page figcaption{margin-top:14px}
.family-photo-page{font-size:15px;line-height:1.35}
.family-photo-page>p{font-size:.88em}
.family-photo-page figure{margin:16px auto 0}
.family-photo-page .book-photo-mount{max-width:350px;margin:auto}
.family-photo-page figcaption{font-size:14px;line-height:1.35;margin-top:12px}
.family-photo-page figcaption p{margin-bottom:8px}
.family-photo-page .caption-credit{text-align:right}
.family-album-page .book-photo-mount{width:100%;margin:0 auto}
.family-album-page figcaption{font-size:17px;line-height:1.4;margin-top:18px}
.family-album-page figcaption p{margin:0 0 12px}
.family-album-page .caption-credit{text-align:right}
.book-photo-mount{position:relative}
.book-reader .book-photo-enlarge{position:absolute;right:14px;bottom:14px;z-index:4;padding:0;width:40px;height:40px;min-height:40px;background:#fffdf4ed;font:28px Georgia;box-shadow:0 2px 5px #0004}
.book-photo-dialog{width:min(1200px,96vw);max-width:96vw;max-height:96dvh;padding:16px;border:1px solid #b8aa96;border-radius:10px;background:#f4efe5;color:#263e2a;overflow:auto}
.book-photo-dialog::backdrop{background:#141b16cf}
.book-photo-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:12px}
.book-photo-large{margin:auto}
.book-photo-dialog .book-comparison img{position:absolute;inset:0;width:100%;height:100%;max-height:none;object-fit:fill;display:block}
.book-photo-dialog .photo-without-caption .book-comparison img{width:145.56%;height:155.52%;left:-26.64%;top:-23.02%;right:auto;bottom:auto;max-width:none}
.book-photo-instruction{text-align:center;font-size:14px;margin:12px 0 0}
.book-page .scanned-crop img,.book-photo-dialog .scanned-crop img{width:var(--crop-width);height:var(--crop-height);left:var(--crop-left);top:var(--crop-top);right:auto;bottom:auto;max-width:none}
.person-album-page{font:17px/1.45 Georgia,serif}
.person-album-page h2{font-size:30px;margin:4px 0 12px}
.person-album-page h2 a{color:inherit;text-decoration-thickness:1px;text-underline-offset:5px}
.person-album-page .person-dates{text-align:center;font-size:16px;color:#756b5b;margin:0 0 20px}
.person-photo-pair{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start;margin-top:24px}
.person-photo-pair figure{min-width:0}
.person-photo-pair figcaption{font-size:16px;line-height:1.35;margin-top:12px}
.person-photo-pair .book-comparison-labels{font-size:12px;gap:5px}
.person-album-page .person-closing{margin-top:28px}

/* Captions follow their photograph; side captions remain left aligned. */
.book-page figcaption{text-align:center}
.book-page figcaption .caption-credit{text-align:center}
.book-page .book-side-caption{display:grid;grid-template-columns:210px minmax(0,1fr);column-gap:22px;row-gap:0;align-items:start;margin:18px 0 0}
.book-side-caption .book-photo-mount{grid-column:1;grid-row:1}
.book-side-caption .book-comparison-labels{grid-column:1;grid-row:2;font-size:12px}
.book-page .book-side-caption figcaption{grid-column:2;grid-row:1;align-self:center;text-align:left;margin:0;font-size:17px;line-height:1.4}

/* Page-six editorial album prototype. */
.book-page.heritage-story-page{background:linear-gradient(100deg,#f5eedf 0%,#f7f0e4 92%,#e6ddca 100%);padding:26px 34px 42px;color:#352e24;font-family:Georgia,serif}
.heritage-heading{display:flex;gap:20px;align-items:center;border-bottom:1px solid #d6c29c;padding-bottom:12px;margin-bottom:14px}
.heritage-year{font:italic 51px/.95 Georgia,serif;letter-spacing:-4px;color:#483c2c}
.book-page .heritage-heading h2{text-align:left;font:normal 20px/1.1 Georgia,serif;margin:0 0 7px}
.heritage-heading p{font-size:11px;line-height:1.35;color:#84643d;margin:0}
.book-page .heritage-photo{max-width:390px;margin:0 auto 12px}
.heritage-photo .book-photo-mount{padding:7px;border-color:#cbb58c;box-shadow:2px 4px 8px #4c392324}
.heritage-photo .book-comparison-labels{font-size:10px;letter-spacing:1.4px;text-transform:uppercase;color:#86613b;margin:7px 0 0}
.heritage-story,.heritage-people{border-top:1px solid #d6c29c;padding-top:10px}
.heritage-story-page h3{font:600 11px/1.2 Georgia,serif;letter-spacing:2.4px;text-transform:uppercase;color:#956a36;margin:0 0 8px}
.heritage-story>p{font:15px/1.43 Georgia,serif;margin:0}
.heritage-story>p:first-of-type::first-letter{float:left;font-size:37px;line-height:.9;padding:4px 4px 0 0;color:#886035}
.heritage-story .heritage-credit{text-align:right;font-size:12px;margin:6px 0 10px;color:#806c50}
.heritage-rows{display:grid;grid-template-columns:1fr 1.75fr;gap:20px}
.heritage-rows p{font-size:13px;line-height:1.4;margin:0}
.heritage-rows strong{display:block;font-size:10px;text-transform:uppercase;letter-spacing:1.3px;color:#956a36;margin-bottom:5px}
.heritage-rows a{color:inherit;text-decoration-color:#c6ab7e;text-underline-offset:2px}

/* Related family, portrait, and place layouts. */
.heritage-name-list{font:15px/1.5 Georgia,serif;margin:0}
.heritage-name-list strong{font-size:11px;letter-spacing:1px;text-transform:uppercase;color:#956a36}
.heritage-name-list a,.heritage-person-heading a{color:inherit;text-decoration-color:#c6ab7e;text-underline-offset:4px}
.heritage-person-heading{text-align:center;border-bottom:1px solid #d6c29c;padding:8px 0 16px;margin-bottom:20px}
.heritage-kicker{font:11px/1.3 Georgia,serif;letter-spacing:2px;text-transform:uppercase;color:#956a36;margin:0 0 12px}
.book-page .heritage-person-heading h2{font:normal 31px/1.15 Georgia,serif;margin:0 0 10px}
.heritage-date{font:15px/1.3 Georgia,serif;color:#806c50;margin:0}
.book-page .heritage-portrait{max-width:330px;margin:0 auto}
.heritage-story-page .book-comparison-labels{color:#86613b;font-size:10px;letter-spacing:1.4px;text-transform:uppercase}
.heritage-portrait figcaption{border-top:1px solid #d6c29c;padding-top:13px;font-size:15px}
.heritage-profile-link{text-align:center;font:14px Georgia,serif;margin-top:18px}
.heritage-profile-link a{color:#80603a;text-underline-offset:4px}
.book-page .heritage-landscape{margin:26px 0 0}
.heritage-landscape figcaption{border-top:1px solid #d6c29c;padding-top:20px;margin-top:20px;font:17px/1.6 Georgia,serif}
[data-page-id="hilpert-family-july-10-1892"] .heritage-story>p:first-of-type::first-letter{float:none;font-size:inherit;line-height:inherit;padding:0;color:inherit}

/* Fill David's portrait page while preserving its proportions. */
[data-page-id="david-august-hilpert-1890"] .heritage-person-heading{padding-top:0;padding-bottom:12px;margin-bottom:14px}
.book-page[data-page-id="david-august-hilpert-1890"] .heritage-portrait{max-width:415px}
[data-page-id="david-august-hilpert-1890"] .heritage-profile-link{position:absolute;bottom:43px;left:34px;right:34px;margin:0}

/* Album-wide layouts, keeping the original cover and dedication scans intact. */
.book-page.heritage-text-page{background:linear-gradient(100deg,#f5eedf,#f7f0e4 92%,#e6ddca);color:#352e24}
.heritage-text-page h2{border-bottom:1px solid #d6c29c;padding-bottom:12px;color:#604a30;font-weight:normal}
.heritage-text-page .passenger{border-color:#c8ab7d}
.book-page.heritage-full-portrait .heritage-portrait{max-width:415px}
.heritage-full-portrait .heritage-person-heading{padding-top:0;padding-bottom:12px;margin-bottom:14px}
.book-page .heritage-couple{max-width:385px;margin:0 auto}
.heritage-couple figcaption{font-size:15px;line-height:1.4}
.heritage-group-page figcaption{border-top:1px solid #d6c29c;padding-top:18px;font-size:17px;line-height:1.5}
.heritage-biography-page .heritage-person-heading{padding:0 0 10px;margin:0 0 14px}
.heritage-biography-page .heritage-person-heading h2{font-size:27px;margin:0}
.heritage-biography-page .heritage-kicker{margin-bottom:7px;font-size:10px}
.heritage-biography-page .person-dates{margin-bottom:14px;font-size:14px}
.heritage-biography-page>p{font-size:16px;line-height:1.4}
.heritage-biography-page .person-photo-pair{margin-top:18px}
.heritage-biography-page .person-closing{margin-top:18px}
.heritage-biography-page figcaption{font-size:15px;line-height:1.4}
.heritage-farm-pair .heritage-person-heading{padding:0 0 8px;margin-bottom:12px}
.heritage-farm-pair .heritage-person-heading h2{font-size:27px;margin-bottom:6px}
.heritage-farm-pair .heritage-kicker{margin-bottom:6px}
.book-page.heritage-farm-pair .book-side-caption{grid-template-columns:180px minmax(0,1fr);margin-top:14px}
.heritage-farm-pair figcaption{margin-top:10px;font-size:15px}

/* Shared story and identification sections across every photo layout. */
.heritage-story-page>.heritage-story,.heritage-story-page>.heritage-people{margin-top:16px}
.heritage-story-page>.heritage-story>p+p{margin-top:8px}
.heritage-biography-page .heritage-story>p{font-size:15px;line-height:1.43}
.heritage-biography-page .heritage-story{margin-top:16px}
.heritage-story-page .heritage-people{font-size:15px;line-height:1.43}
