.book-home {
  --book-ink: #203b32;
  --book-paper: #f5f3ec;
  --book-muted: #646861;
  background: #000;
  color: #e5e5df;
  letter-spacing: 0;
}

.book-home * { letter-spacing: 0; }
.book-home a { text-underline-offset: 5px; }
.book-home a:hover { text-decoration: underline; }
.book-home :focus-visible { outline: 2px solid #28785a; outline-offset: 5px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.book-masthead { display: flex; justify-content: space-between; align-items: center; min-height: 80px; padding: 20px 42px; }
.book-brand { display: flex; gap: 20px; align-items: center; text-decoration: none; }
.book-brand img { width: 62px; height: 31px; object-fit: contain; filter: invert(1); }
.book-brand span { font-size: 12px; }
.book-masthead nav { display: flex; gap: 36px; }
.book-masthead nav a { font-size: 13px; text-decoration: none; }
.book-main { position: relative; width: calc(100% - 80px); margin: 0 auto; }
.book-heading { display: none; }
.book-stage { position: relative; width: 100%; }
#production-book { margin: auto; }
.book-page { background: var(--book-paper); color: #252b27; border: 1px solid #d4d5cc; }
.page-content { position: relative; display: flex; flex-direction: column; width: 100%; height: 100%; min-height: 570px; padding: 38px 42px 62px; overflow: hidden; }
.book-page h1, .book-page h2 { font-family: var(--font-display); font-weight: 600; }
.book-page h1 { font-size: 58px; line-height: 1.04; }
.book-page h2 { font-size: 42px; line-height: 1.12; }
.book-page h3 { font-size: 17px; line-height: 1.3; font-weight: 500; }
.book-page em { font-style: italic; font-weight: inherit; }
.page-kicker, .page-heading { font-size: 11px; line-height: 1.5; }
.page-kicker { margin-bottom: 34px; }
.page-folio { position: absolute; bottom: 22px; left: 42px; right: 42px; display: flex; justify-content: space-between; padding-top: 12px; border-top: 1px solid #cdd0c5; font-size: 10px; line-height: 1.3; color: var(--book-muted); }
.page-note { font-size: 12px; line-height: 1.65; max-width: 34ch; margin-top: auto; padding-top: 24px; }
.statement-page h1 { margin: 20px 0 24px; color: var(--book-ink); }
.definition-page .page-heading { display: flex; justify-content: space-between; align-items: start; }
.page-heading img { width: 64px; height: 30px; object-fit: contain; }
.definition-body { margin-top: auto; padding: 28px 0; }
.definition-body h2 { margin-bottom: 26px; }
.definition-body p { font-size: 19px; line-height: 1.6; max-width: 31ch; }
.definition-page .page-note { margin-top: 0; border-top: 1px solid #cdd0c5; padding-top: 20px; }
.role-page { background: #254437; color: #f5f3ec; }
.role-page h2 { font-size: 64px; line-height: 1.05; }
.role-page .page-folio { color: #c2d0c3; border-color: #648272; }
.book-cover { background: #244336; color: #f5f3ec; border-color: #17392b; }
.book-cover .page-content { border-left: 9px solid #1d382c; }
.cover-top { display: flex; justify-content: space-between; font-size: 11px; }
.cover-mark { width: 80%; height: auto; margin: auto; }
.cover-bottom { display: flex; align-items: end; justify-content: space-between; gap: 20px; }
.cover-bottom h2 { font-family: var(--font-body); font-weight: 500; font-size: 34px; }
.cover-bottom p, .cover-bottom a { font-size: 11px; }
.book-cover .page-folio { color: #c2d0c3; border-color: #648272; }
.project-name { margin: auto 0; }
.project-monogram { display: block; font-size: 70px; font-weight: 600; line-height: 1; margin-bottom: 32px; color: #9c3e35; }
.project-name h2 { font-size: 32px; }
.project-caption { display: flex; align-items: end; justify-content: space-between; gap: 20px; padding-top: 24px; }
.project-caption p, .project-caption a { font-size: 12px; line-height: 1.6; }
.project-caption a { white-space: nowrap; }
.light-page { background: #d6dadd; }
.light-title { margin: auto 0; }
.light-title h2 { font-size: 76px; line-height: 1; color: #263740; }
.edition-year { display: block; font-size: 12px; margin-bottom: 22px; }
.body-copy { font-size: 16px; line-height: 1.65; margin-top: 24px; max-width: 37ch; }
.book-credits { margin: 28px 0 20px; }
.book-credits > div { display: grid; grid-template-columns: 100px 1fr; gap: 12px; border-top: 1px solid #cdd0c5; padding: 15px 0; }
.book-credits dt { font-size: 11px; color: var(--book-muted); }
.book-credits dd { font-size: 14px; line-height: 1.5; }
.page-link { font-size: 12px; margin-top: auto; width: fit-content; }
.audience-page h2 { font-size: 42px; line-height: 1.2; }
.process-page h2 { margin-bottom: 26px; }
.process-list { list-style: none; padding: 0; margin: 0; }
.process-list li { display: grid; grid-template-columns: 34px 1fr; gap: 8px; border-top: 1px solid #cdd0c5; padding: 18px 0; }
.process-list li > span { font-size: 11px; padding-top: 4px; color: var(--book-muted); }
.process-list p { font-size: 13px; line-height: 1.5; margin-top: 6px; }
.contact-page { background: #e9ede5; }
.contact-page h2 { font-size: 54px; }
.contact-email { font-size: 13px; margin-top: 28px; overflow-wrap: anywhere; }
.back-cover .cover-bottom { display: block; }
.back-cover .cover-bottom p { margin-bottom: 10px; }
.book-controls { display: none; }
.book-footer { display: flex; justify-content: space-between; align-items: center; height: 80px; padding: 20px 42px 24px; gap: 18px; font-size: 11px; color: #a7aaa5; }
.book-footer a { color: #e5e5df; text-decoration: none; }
.book-home:not(.book-ready) #production-book { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
.book-home:not(.book-ready) .book-page { min-height: 570px; }
.book-home:not(.book-ready) .page-content { height: 100%; }

@media (min-width: 0px) {
  .book-stage { min-height: 470px; height: calc(100svh - 160px); display: grid; place-items: center; }
  .book-home:not(.book-ready) .book-stage { height: auto; }
  .book-ready #production-book { transition: transform 650ms ease; filter: drop-shadow(0 18px 22px #0008); }
  .book-front #production-book { transform: translateX(-25%); }
  .book-back #production-book { transform: translateX(25%); }
  .book-portrait #production-book { transform: none; }
  .book-ready .book-page { border: 0; border-radius: 0 8px 8px 0; box-shadow: inset 9px 0 12px -11px #0009; cursor: pointer; }
  /* Composite each sheet's scaled content with its opaque paper surface.
     Descendants must not remain separate 3D faces during a rigid page turn. */
  .book-ready .book-page.stf__item { transform-style: flat; backface-visibility: hidden; -webkit-backface-visibility: hidden; }
  .book-ready .page-content { backface-visibility: hidden; -webkit-backface-visibility: hidden; }
  .book-ready .book-page.--left { border-radius: 8px 0 0 8px; box-shadow: inset -9px 0 12px -11px #0009; }
  .book-ready .page-content { min-height: 0; width: 300px; height: 400px; padding: 24px 24px 44px; transform: scale(var(--page-scale, 1)); transform-origin: top left; }
.book-ready .book-controls { position: absolute; top: calc(50% + var(--book-height, 640px) / 2 + 6px); left: 50%; transform: translateX(-50%); display: flex; gap: 12px; align-items: center; height: 44px; }
  .book-ready.book-front .book-controls { visibility: hidden; }
  .book-ready .book-controls:focus-within { visibility: visible; }
}
.icon-button { display: inline-flex; flex: 0 0 40px; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 0; border: 1px solid #b7beb5; background: transparent; border-radius: 0; cursor: pointer; }
.icon-button:hover { background: #f1f3ef; }
.icon-button:disabled { opacity: 0.3; cursor: default; }
.page-picker select { max-width: 240px; width: 215px; height: 40px; padding: 0 28px 0 12px; border: 1px solid transparent; border-radius: 0; background: transparent; color: inherit; font-size: 12px; cursor: pointer; }
.page-picker select:hover { border-color: #b7beb5; }
.book-status { margin-left: auto; font-size: 11px; color: #5d645f; }
.turn-controls { display: flex; gap: 8px; margin-left: 14px; }
.book-ready .icon-button { width: 32px; height: 32px; flex-basis: 32px; border: 0; }
.book-ready .icon-button img { filter: invert(1); opacity: 0.65; }
.book-ready .icon-button:hover { background: #202321; }
.book-ready .book-status { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.book-ready .page-picker { position: relative; font-size: 11px; }
.book-ready .page-picker summary { cursor: pointer; color: #a7aaa5; }
.book-ready .page-picker select { position: absolute; bottom: 32px; left: 50%; transform: translateX(-50%); background: #202321; border: 1px solid #424942; color: #eee; }
.book-ready .page-kicker { margin-bottom: 22px; font-size: 9px; }
.book-ready .page-heading { font-size: 9px; }
.book-ready .page-heading img { width: 38px; height: 20px; }
.book-ready .page-folio { bottom: 16px; left: 24px; right: 24px; padding-top: 8px; font-size: 8px; }
.book-ready .page-note { font-size: 10px; padding-top: 14px; }
.book-ready .book-page h1 { font-size: 34px; line-height: 1.08; }
.book-ready .statement-page h1 { margin: 12px 0 18px; }
.book-ready .book-page h2 { font-size: 26px; }
.book-ready .definition-body { padding: 18px 0; }
.book-ready .definition-body h2 { margin-bottom: 16px; }
.book-ready .definition-body p { font-size: 13px; line-height: 1.5; }
.book-ready .definition-page .page-note { padding-top: 12px; }
.book-ready .role-page h2 { font-size: 40px; }
.book-ready .cover-top { font-size: 9px; }
.book-ready .cover-bottom { display: block; }
.book-ready .cover-bottom h2 { font-size: 25px; }
.book-ready .cover-bottom p { margin-top: 10px; }
.book-ready .cover-bottom p, .book-ready .cover-bottom a { font-size: 9px; }
.book-ready .book-cover .page-content { border-left-width: 5px; }
.book-ready .project-monogram { font-size: 46px; margin-bottom: 20px; }
.book-ready .project-name h2 { font-size: 24px; }
.book-ready .project-caption { padding-top: 16px; gap: 10px; }
.book-ready .project-caption p, .book-ready .project-caption a { font-size: 10px; }
.book-ready .light-title h2 { font-size: 52px; }
.book-ready .edition-year { font-size: 10px; margin-bottom: 16px; }
.book-ready .body-copy { font-size: 12px; line-height: 1.5; margin-top: 16px; }
.book-ready .book-credits { margin: 20px 0 12px; }
.book-ready .book-credits > div { grid-template-columns: 70px 1fr; gap: 8px; padding: 10px 0; }
.book-ready .book-credits dt { font-size: 9px; }
.book-ready .book-credits dd { font-size: 11px; line-height: 1.4; }
.book-ready .page-link { font-size: 10px; }
.book-ready .audience-page h2 { font-size: 28px; line-height: 1.2; }
.book-ready .process-page h2 { margin-bottom: 12px; }
.book-ready .process-list li { grid-template-columns: 22px 1fr; padding: 8px 0; }
.book-ready .process-list li > span { font-size: 9px; }
.book-ready .process-list h3 { font-size: 13px; }
.book-ready .process-list p { font-size: 11px; margin-top: 4px; }
.book-ready .contact-page h2 { font-size: 34px; }
.book-ready .contact-email { font-size: 11px; margin-top: 20px; }
.book-photo { width: 100%; height: 280px; object-fit: contain; margin: 24px 0; }
.book-ready .book-photo { height: 174px; margin: 16px 0; }
.book-ready .photo-page .page-note { padding-top: 0; font-size: 9px; }
.book-ready .story-page .body-copy { font-size: 11px; line-height: 1.5; }
.book-ready .compact-credits { margin: 14px 0 10px; }
.book-ready .compact-credits > div { padding: 7px 0; }
@media (max-width: 1199px) {
  .book-main { width: calc(100% - 64px); }
  .page-content { padding: 30px 30px 58px; }
  .page-folio { left: 30px; right: 30px; }
  .book-page h1 { font-size: 48px; }
  .book-page h2 { font-size: 34px; }
  .role-page h2 { font-size: 52px; }
  .light-title h2 { font-size: 64px; }
  .audience-page h2 { font-size: 36px; }
  .definition-body p { font-size: 17px; }
  .book-credits > div { grid-template-columns: 85px 1fr; padding: 12px 0; }
}
@media (max-width: 899px) {
  .book-masthead { padding: 20px 22px; min-height: 76px; }
  .book-masthead nav { gap: 20px; }
  .book-brand span { display: none; }
  .book-main { width: calc(100% - 40px); max-width: 570px; }
  .book-home:not(.book-ready) #production-book { grid-template-columns: 1fr; gap: 20px; }
  .book-footer { padding: 24px 22px; flex-wrap: wrap; }
  .page-content { min-height: 570px; }
}
@media (prefers-reduced-motion: reduce) {
  /* Explicit product direction: keep user-triggered book turns animated. */
  .book-ready #production-book { transition: transform 650ms ease !important; }
  .book-home:not(.book-ready) .book-stage { height: auto; }
  .book-home:not(.book-ready) #production-book { gap: 24px; }
}

.reading-options { position: absolute; right: 0; top: 0; z-index: 5; }
.reader-toggle { background: transparent; color: #c2c7c1; border: 1px solid #555d56; padding: 10px 14px; font: inherit; font-size: 12px; cursor: pointer; min-height: 44px; }
.reader-toggle[hidden] { display: none; }
.book-reader .reading-options { position: sticky; top: 12px; display: flex; justify-content: end; margin-bottom: 24px; }
.book-reader .reader-toggle { background: #203b32; color: #f5f3ec; }
.book-home.book-reader #production-book { display: block; max-width: 740px; }
.book-reader .book-page { margin-bottom: 24px; min-height: 0; scroll-margin-top: 72px; }
.book-reader .page-content { min-height: 0; padding: 32px; overflow: visible; }
.book-reader .page-folio { position: static; margin-top: 32px; }
.book-reader .book-page h1 { font-size: clamp(36px, 7vw, 58px); }
.book-reader .book-page h2 { font-size: clamp(30px, 6vw, 44px); }
.book-reader .body-copy, .book-reader .definition-body p, .book-reader .page-note { font-size: 18px; line-height: 1.65; max-width: 60ch; }
.book-reader .book-credits dd, .book-reader .process-list p { font-size: 17px; }
.book-reader .book-credits dt, .book-reader .page-kicker { font-size: 14px; }
.book-reader .page-link, .book-reader .project-caption a, .book-reader .project-caption p, .book-reader .contact-email { font-size: 16px; }
.book-reader .page-link { margin-top: 24px; }
.book-reader .book-photo { height: auto; margin: 24px 0; }
.book-reader .cover-mark { max-width: 300px; margin: 48px auto; }
.book-reader .page-kicker { margin-bottom: 24px; }
.book-reader .book-footer { height: auto; }
@media (min-width: 1000px) {
  .book-ready:not(.book-front):not(.book-back) .book-masthead { min-height: 56px; height: 56px; padding: 10px 32px; }
  .book-ready:not(.book-front):not(.book-back) .book-stage { height: calc(100svh - 112px); }
  .book-ready:not(.book-front):not(.book-back) .book-footer { height: 56px; padding: 6px 32px; }
  .book-ready:not(.book-front):not(.book-back) .reading-options { top: -51px; right: 280px; }
  .book-ready:not(.book-front):not(.book-back) .book-controls { top: calc(50% + var(--book-height, 640px) / 2 + 4px); height: 32px; }
}
@media (max-width: 899px) {
  .book-masthead nav { gap: 18px; }
  .book-ready .icon-button { width: 44px; height: 44px; flex-basis: 44px; }
  .book-ready .page-picker summary { min-height: 44px; display: flex; align-items: center; }
  .book-footer { height: auto; min-height: 80px; padding-top: 16px; gap: 12px 18px; }
  .book-footer .email-tools { width: 100%; }
  .book-reader .page-content { padding: 24px; }
  .book-reader .book-credits > div { grid-template-columns: 76px 1fr; }
}
