/* Book reviews: a short cover turn, followed by an accessible reading dialog. */
.review-dialog.review-book {
  width:1040px;
  max-width:calc(100vw - 64px);
  max-height:calc(100dvh - 48px);
  padding:0;
  border:0;
  border-radius:6px 12px 12px 6px;
  background:#f6efdd;
  box-shadow:0 28px 90px #071b23aa,0 5px 0 #c8bba1,0 9px 0 #314e42;
  scrollbar-width:thin;
  scrollbar-color:#b8aa8d #f6efdd;
  overflow:auto;
}
.review-book::backdrop {background:#0d2429db;backdrop-filter:blur(6px)}
.review-book>.dialog-close {position:sticky;float:right;margin:12px 12px -48px 0;top:12px;right:12px;z-index:10;background:#faf6eb;border-color:#cbbd9e;color:#30483d;box-shadow:0 2px 8px #42351e12}
.reading-book {position:relative;perspective:2200px;isolation:isolate}
.reading-spread {display:grid;grid-template-columns:1fr 1fr;min-height:630px;border:7px solid #314e42;border-radius:5px 11px 11px 5px;background:#f9f3e5}
.reading-title-page,.reading-review-page {position:relative;min-width:0;padding:44px 42px 50px}
.reading-title-page {display:flex;flex-direction:column;align-items:center;justify-content:flex-start;text-align:center;background:radial-gradient(ellipse at 25% 25%,#fffaf0,transparent 80%),linear-gradient(90deg,#e7ddc5 0,#f4ebd8 3%,#f7f0e0 90%,#d8cbb1 100%);border-right:1px solid #b3a489}
.reading-title-page::after {content:'';position:absolute;top:0;right:-7px;bottom:0;width:14px;background:linear-gradient(90deg,#76694f18,#76694f38 45%,#fff9e775 56%,transparent);z-index:1;pointer-events:none}
.reading-title-page>.eyebrow {color:#87663b;font-size:9px;letter-spacing:2px;margin:0 0 24px}
.reading-miniature {width:123px;height:176px;margin-bottom:24px;transform:rotate(-3deg);flex-shrink:0}
.reading-title-page h2 {font-size:32px;line-height:1.17;letter-spacing:-.7px;text-wrap:balance;max-width:340px}
.reading-author {font-size:13px;color:#677063;margin-top:14px}
.reading-series {font-family:var(--serif);font-size:17px;font-style:italic;color:#897250;margin-top:5px}
.reading-rating {margin-top:22px}
.reading-rating:empty {display:none}
.reading-rating .tail-rating {justify-content:center}
.reading-details {display:flex;flex-wrap:wrap;justify-content:center;gap:7px 14px;margin-top:15px;font-size:10px;color:#727462}
.reading-review-page {padding-top:48px;background:linear-gradient(90deg,#d7c9ae55,#fffaf000 7%,#fffaf000 95%,#d7c9ae66),#fbf7ed}
.reading-running-head {display:flex;justify-content:space-between;align-items:center;margin-right:14px;color:#967a50;font-size:8px;letter-spacing:2.4px;padding-bottom:17px;border-bottom:1px solid #b5a07a55}
.reading-running-head span:last-child {font-size:13px;letter-spacing:0}
.reading-review-page h3 {font-size:30px;letter-spacing:-.5px;line-height:1.2;margin:25px 0 22px}
.reading-prose {font-family:var(--serif);font-size:15.5px;line-height:1.75;color:#364b40;overflow-wrap:anywhere}
.reading-prose p+p {margin-top:17px}
.reading-prose p:first-child::first-letter {float:left;font-size:51px;line-height:.9;margin:7px 6px 0 0;color:#97633c}
.reading-prose br {display:block;content:'';margin-top:13px}
.reading-signature {font-size:11px;color:#817c6d;margin-top:25px}
.reading-signature span {font-family:var(--serif);font-style:italic;font-size:23px;color:#95603a;margin-left:5px}
.reading-actions {display:flex;flex-direction:column;align-items:flex-start;gap:14px;margin-top:23px}
.reading-actions .button {font-size:11px;padding:12px 17px;min-height:44px}
.reading-actions .published-link {font-size:11px;color:#607164;text-decoration:underline;text-underline-offset:4px;padding-block:4px}
.reading-page-number {position:absolute;bottom:17px;left:0;right:0;text-align:center;font-family:var(--serif);color:#9c8969;font-size:12px}
.opening-cover {display:none;position:absolute;z-index:4;left:50%;top:0;width:50%;height:100%;transform-origin:left center;transform-style:preserve-3d;pointer-events:none}
.opening-cover-front,.opening-cover-back {position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:3px 11px 11px 3px}
.opening-cover-front {transform:rotateY(0deg) translateZ(.5px)}
.opening-cover-front>.title-card {border-radius:3px 11px 11px 3px;box-shadow:12px 12px 28px #18271e45,inset -4px 0 #e2c28788,inset 0 0 0 2px #d9b37955;padding:16% 14%}
.opening-cover-front .title-card-brand {font-size:10px;letter-spacing:3px}
.opening-cover-front .title-card-ornament {font-size:34px}
.opening-cover-front .title-card-name {font-size:clamp(26px,3.3vw,43px);line-height:1.14}
.opening-cover-front .title-card-author {font-size:12px;letter-spacing:1.5px}
.opening-cover-back {display:flex;flex-direction:column;align-items:center;justify-content:center;gap:30px;transform:rotateY(180deg) translateZ(.5px);background:linear-gradient(90deg,#e5d8bc,#f5ecd8 12%,#f7efdd 90%,#c8b89a);border:7px solid #314e42;color:#9a815a;font-family:var(--serif);font-style:italic;font-size:24px;text-align:center}
.opening-cover-back::before {content:'';position:absolute;inset:28px;border:1px solid #b8a07866}
.book-opening {animation:foxtale-book-arrive 960ms cubic-bezier(.22,.7,.2,1) both}
.book-opening .reading-spread {animation:foxtale-pages-reveal 420ms 240ms ease-out both}
.reading-title-page>* {transition:opacity 180ms ease-out}
.book-opening .reading-title-page>* {opacity:0;transition:none}
.book-opening .opening-cover {display:block;animation:foxtale-cover-turn 960ms cubic-bezier(.35,.05,.2,1) both;will-change:transform}
/* Fading the 3D hinge flattens its faces and makes the front show through.
   Fade each face separately, keeping the hinge fully opaque throughout. */
.book-opening .opening-cover-front,.book-opening .opening-cover-back {animation:foxtale-cover-fade 960ms cubic-bezier(.35,.05,.2,1) both}
@keyframes foxtale-book-arrive {
  0% {transform:translateX(-23%) scale(.82);opacity:0;background:transparent;box-shadow:none}
  14% {opacity:1;background:transparent;box-shadow:none}
  45% {background:transparent;box-shadow:none}
  100% {transform:translateX(0) scale(1);opacity:1}
}
@keyframes foxtale-cover-turn {
  0%,12% {transform:rotateY(-4deg)}
  100% {transform:rotateY(-178deg)}
}
@keyframes foxtale-cover-fade {0%,78%{opacity:1}100%{opacity:0}}
@keyframes foxtale-pages-reveal {from{opacity:0}to{opacity:1}}
@media(max-width:760px) {
  .review-dialog.review-book {max-width:calc(100vw - 24px);max-height:calc(100dvh - 28px)}
  .reading-spread {grid-template-columns:1fr;min-height:0;border-width:5px}
  .reading-title-page {display:grid;grid-template-columns:76px minmax(0,1fr);column-gap:22px;text-align:left;padding:38px 27px 27px;border-right:0;border-bottom:1px solid #d8cbb1;background:linear-gradient(90deg,#e7ddc555,transparent 8%),#f5eddb}
  .reading-title-page::after {display:none}
  .reading-title-page>.eyebrow {grid-column:1/-1;font-size:7px;letter-spacing:1.4px;margin-bottom:22px}
  .reading-miniature {grid-column:1;grid-row:2/6;width:76px;height:110px;margin:0;align-self:start}
  .reading-title-page h2 {grid-column:2;font-size:24px;text-wrap:pretty}
  .reading-author {grid-column:2;font-size:11px;margin-top:10px}
  .reading-series {grid-column:2;font-size:14px}
  .reading-rating {grid-column:1/-1;margin-top:22px}
  .reading-rating .tail-rating {justify-content:flex-start}
  .reading-details {grid-column:1/-1;justify-content:flex-start;margin-top:9px;font-size:10px}
  .reading-title-page .reading-page-number {display:none}
  .reading-review-page {padding:24px 27px 43px;background:linear-gradient(90deg,#d7c9ae33,transparent 7%),#fbf7ed}
  .reading-running-head {font-size:7px;margin-right:0}
  .reading-review-page h3 {font-size:29px;margin-block:20px}
  .reading-prose {font-size:16px;line-height:1.8}
  .reading-actions .published-link {padding-block:12px}
  .opening-cover {left:0;width:100%;height:min(600px,calc(100dvh - 28px))}
  .opening-cover-front .title-card-name {font-size:34px}
  .opening-cover-front .title-card-brand {font-size:9px}
  .opening-cover-front .title-card-author {font-size:11px}
  .book-opening {animation-name:foxtale-book-arrive-mobile}
  @keyframes foxtale-book-arrive-mobile {from{transform:translateY(12px) scale(.96);opacity:0}20%,to{transform:none;opacity:1}}
}
@media(prefers-reduced-motion:reduce) {
  .review-book,.review-book * {animation:none!important;transition:none!important}
  .review-book .opening-cover {display:none!important}
  .review-book .reading-spread {opacity:1!important}
}
