/* A quiet personal project, using the portfolio's existing paper and rules. */
.book-feature{margin-top:76px}.book-feature-body{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:80px;padding:54px 64px 58px;border-bottom:1px solid var(--line)}
.book-feature-copy{max-width:430px}.book-feature-copy :is(h3,h4){font-size:clamp(30px,3vw,43px);font-weight:550;letter-spacing:-1.5px;line-height:1.12;margin:17px 0 22px}.book-feature-copy p{font-size:17px;line-height:1.65;color:var(--muted);margin:0 0 25px}.book-feature-links{display:flex;gap:22px;align-items:center;flex-wrap:wrap}.book-feature-links button{font:inherit;font-size:13px;color:var(--ink);background:none;padding:0 0 5px;border:0;border-bottom:1px solid var(--line);cursor:pointer}.book-feature-links button:first-child{border-color:var(--ink)}
.book-cover-button{display:block;position:relative;justify-self:center;width:min(100%,320px);padding:0;border:0;background:transparent;perspective:1300px;cursor:pointer;color:var(--ink)}
.book-object{display:block;position:relative;transform:rotateY(-13deg) rotateZ(-3deg);transform-style:preserve-3d;transition:transform .55s cubic-bezier(.2,.7,.2,1);box-shadow:18px 22px 30px -14px #0004}
.book-object::before{content:"";position:absolute;left:100%;top:3px;bottom:-2px;width:9px;transform-origin:left;transform:rotateY(80deg);background:repeating-linear-gradient(to right,#e8e5dc 0 1px,#faf9f3 1px 2px);border:1px solid #d9d5cc}
.book-object::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0002,transparent 2%,#fff2 3%,transparent 5%);pointer-events:none}.book-object img{display:block;width:100%;height:auto;border:1px solid #0001}.book-cover-button:hover .book-object,.book-cover-button:focus-visible .book-object{transform:rotateY(-5deg) rotateZ(-1deg) translateY(-5px)}.book-cover-note{display:block;font-size:10px;color:var(--muted);letter-spacing:.06em;margin-top:26px}
.book-reader{--book-paper:#fffefa;--book-ink:#171816;--book-rule:#d6d4cc;--page-size:min(38vw,51svh,460px);width:calc(100% - 48px);max-width:1440px;height:calc(100svh - 48px);max-height:1000px;padding:0;border:1px solid var(--book-rule);background:#f4f2ea;color:var(--book-ink);overflow:auto;box-shadow:0 28px 80px #0003}.book-reader::backdrop{background:#0b0d0ab8;backdrop-filter:blur(7px)}.book-reader[open]{display:flex;flex-direction:column}.book-reader-header{display:flex;justify-content:space-between;align-items:center;gap:20px;border-bottom:1px solid var(--book-rule);padding:20px 28px;flex-shrink:0}.book-reader-heading{display:flex;align-items:center;gap:18px}.book-reader-heading strong{font-size:14px;font-weight:500}.book-reader-heading span{font-size:10px;letter-spacing:1.2px;color:#707168}.book-reader-close{border:1px solid var(--book-rule);background:transparent;color:inherit;font-size:24px;width:44px;height:44px;cursor:pointer}.book-reader-body{display:flex;flex:1;min-height:0;flex-direction:column;align-items:center;justify-content:center;padding:24px 30px}.book-reader-kicker{font-size:10px;letter-spacing:1.5px;color:#707168;text-transform:uppercase;margin:0 0 22px}.book-hit{width:calc(var(--page-size)*2 + 48px);height:calc(var(--page-size) + 48px);display:flex;align-items:center;justify-content:center;position:relative;touch-action:pan-y;user-select:none;-webkit-user-select:none;cursor:grab;outline-offset:6px;flex-shrink:0}.book-hit:focus-visible{outline:2px solid #30b759}.book-hit[data-dragging=true]{cursor:grabbing}.physical-book{width:calc(var(--page-size)*2);height:var(--page-size);position:relative;perspective:2000px;transform:translateX(0);transition:transform .55s cubic-bezier(.22,.75,.2,1);flex-shrink:0}.physical-book[data-position=front]{transform:translateX(calc(var(--page-size)*-.5))}.physical-book[data-position=back]{transform:translateX(calc(var(--page-size)*.5))}.book-base{position:absolute;top:0;width:50%;height:100%;background:var(--book-paper);box-shadow:0 18px 30px -14px #1e241c66,0 0 0 1px #0001;overflow:hidden}.book-base[data-side=left]{left:0}.book-base[data-side=right]{left:50%}.book-base[hidden]{display:none}.book-base img,.book-turn-face img{width:100%;height:100%;object-fit:contain;display:block;pointer-events:none;-webkit-user-drag:none}.book-base::after{content:"";position:absolute;inset:0;pointer-events:none}.book-base[data-side=left]::after{background:linear-gradient(90deg,transparent 88%,#00000006 95%,#00000018 100%)}.book-base[data-side=right]::after{background:linear-gradient(90deg,#00000018,transparent 7%)}.physical-book[data-position=front] .book-base::after,.physical-book[data-position=back] .book-base::after{background:linear-gradient(90deg,#0002,transparent 3%)}.book-base.endpaper{background:#faf9f3}.book-turn{position:absolute;top:0;width:50%;height:100%;z-index:4;transform-style:preserve-3d;will-change:transform;pointer-events:none}.book-turn[data-direction=next]{left:50%;transform-origin:left center}.book-turn[data-direction=previous]{left:0;transform-origin:right center}.book-turn-face{position:absolute;inset:0;background:var(--book-paper);backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden;box-shadow:0 0 0 1px #0001}.book-turn-face.back{transform:rotateY(180deg)}.book-turn-face::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#0000001c,transparent 15%,#00000012);opacity:var(--fold-shade,0)}.book-turn-face.back::after{background:linear-gradient(270deg,#00000025,transparent 20%)}.book-turn[hidden]{display:none}.book-reader-controls{width:min(100%,600px);display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:20px}.book-arrow{height:44px;width:44px;display:grid;place-items:center;cursor:pointer;background:transparent;border:1px solid var(--book-rule);border-radius:50%;font:inherit;font-size:20px;color:inherit}.book-arrow:hover:not(:disabled){background:#e7e6dc}.book-arrow:disabled{opacity:.3;cursor:default}.book-page-status{font-size:12px;font-variant-numeric:tabular-nums}.book-reader-hint{font-size:11px;color:#707168;margin:16px 0 0;text-align:center;line-height:1.5}.book-reader-footer{border-top:1px solid var(--book-rule);padding:17px 28px;display:flex;align-items:baseline;justify-content:space-between;gap:24px;flex-shrink:0}.book-reader-footer p{font-size:12px;color:#707168;margin:0}.book-view-toggle{font:inherit;font-size:12px;border:0;border-bottom:1px solid var(--book-rule);background:none;padding:0 0 3px;color:inherit;cursor:pointer;white-space:nowrap}.book-film{max-width:100%;height:min(65svh,700px);background:#161713;object-fit:contain}.book-film[hidden],.book-reader-reading[hidden]{display:none}.book-reader-reading{display:flex;flex-direction:column;align-items:center}.book-reader-loading{min-height:18px;font-size:11px;color:#707168;margin:0}.book-reader-loading:empty{visibility:hidden}
@media(max-width:760px){.book-feature{margin-top:55px}.book-feature-body{grid-template-columns:1fr;gap:40px;padding:28px 0 32px}.book-feature-copy{order:1}.book-feature-copy :is(h3,h4){font-size:31px}.book-feature-copy p{font-size:16px}.book-cover-button{width:min(72%,270px)}.book-cover-note{margin-top:20px}.book-reader{--page-size:min(calc(100vw - 54px),48svh,500px);width:calc(100% - 16px);height:calc(100svh - 16px);max-height:none}.book-reader-header{padding:12px 14px;gap:10px}.book-reader-heading{display:block}.book-reader-heading strong{display:block;font-size:12px;max-width:220px;line-height:1.4}.book-reader-heading span{display:block;font-size:8px;margin-top:3px}.book-reader-body{padding:16px 10px;justify-content:center}.book-reader-kicker{margin-bottom:14px;font-size:9px}.book-hit{width:calc(var(--page-size) + 24px);height:calc(var(--page-size) + 24px)}.physical-book{width:var(--page-size);height:var(--page-size)}.physical-book[data-position]{transform:none}.book-base{width:100%;left:0!important}.book-base[data-side=left]{display:none}.book-base::after{background:linear-gradient(90deg,#0001,transparent 3%)!important}.book-turn{width:100%;left:0!important}.book-reader-controls{margin-top:12px;padding:0 7px}.book-reader-hint{font-size:11px;margin-top:15px}.book-reader-footer{padding:16px;align-items:flex-start;gap:12px}.book-reader-footer p{font-size:11px;max-width:175px}.book-view-toggle{font-size:11px;white-space:normal;text-align:right}.book-film{height:min(66svh,650px)}.book-reader-loading{font-size:10px}}
@media(prefers-reduced-motion:reduce){.book-object,.physical-book{transition:none}.book-turn{will-change:auto}}
html.anniversary-reader-open,html.anniversary-reader-open body{overflow:hidden!important;overscroll-behavior:none}
/* Keep the reader independent of the site's global footer and navigation layout. */
.book-reader-footer{margin:0}
.book-reader{--page-size:min(38vw,max(120px,calc(100svh - 380px)),460px)}
.book-reader-body{padding:18px 30px}
.book-reader-kicker{margin-bottom:12px}
.book-hit{height:calc(var(--page-size) + 24px)}
.book-reader-controls{margin-top:12px;max-width:600px;position:static;padding:0;background:transparent;border:0;flex-direction:row}
.book-reader-hint{margin-top:12px}
.book-reader-loading:empty{display:none}
@media(max-width:760px){.book-reader{--page-size:min(calc(100vw - 54px),48svh,500px)}.book-reader-body{padding:16px 10px}.book-reader-controls{display:flex;font-size:12px;gap:20px;max-width:600px;padding:0 7px;justify-content:space-between}.book-reader-controls button{flex-shrink:0}}
.book-hit{touch-action:pan-y pinch-zoom}

/* Running and illustration share one Away from the desk section. */
.personal-subheading{display:flex;align-items:baseline;gap:22px;padding:23px 0 18px;border-top:1px solid var(--line)}
.personal-subheading>span:first-child{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.personal-subheading h3{font-size:16px;font-weight:500;letter-spacing:0;margin:0}
.personal-subheading .section-aside{font-size:12px}
.away-section .grit-body{border-top:0;padding-top:8px}
.away-section .book-feature{margin-top:34px}
@media(max-width:760px){.personal-subheading{padding:20px 0 16px;gap:20px}.away-section .book-feature{margin-top:30px}.away-section .grit-body{padding-top:5px}}
/* Print-reference chapter names precede each sequence of illustrations. */
.book-chapter-page{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:30px;text-align:center;background:#fff;color:#171816}
.book-chapter-page>span{font-size:clamp(10px,1vw,13px);font-weight:400;letter-spacing:.04em}
.book-chapter-page>strong{font-size:clamp(24px,3vw,40px);font-weight:650;line-height:1.2;letter-spacing:-.035em;overflow-wrap:anywhere}
@media(max-width:760px){.book-chapter-page>span{font-size:11px}.book-chapter-page>strong{font-size:30px}}
