.book-scene{perspective:2400px}.book-ground{position:absolute;left:50%;bottom:-42px;height:26px;width:70%;transform:translateX(-50%);border-radius:50%;background:rgba(0,0,0,.18);filter:blur(14px)}.book-box{position:relative;transform-style:preserve-3d}.closed-book{--closed-book-reveal-d:calc(var(--book-w) * 0.26);perspective:900px}.closed-book .book-reveal{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .26s ease-out}.closed-book .book-reveal:after,.closed-book .book-reveal:before{content:"";pointer-events:none;position:absolute;display:block}.closed-book .book-reveal:before{top:40px;height:calc(100% - 80px);width:calc(var(--closed-book-reveal-d) - 2px);background:linear-gradient(90deg,rgb(234,234,234),rgba(0,0,0,0) 70%),linear-gradient(rgb(255,255,255),rgb(250,250,250));transform:translateX(calc(var(--book-w) - var(--closed-book-reveal-d) / 2 - 6px)) rotateY(90deg) translateX(calc(var(--closed-book-reveal-d) / 2))}.closed-book .book-reveal:after{inset:0;border-radius:var(--cover-radius-spine,2px) var(--cover-radius-outer,12px) var(--cover-radius-outer,12px) var(--cover-radius-spine,2px);background:url(/book/back-cover.svg) no-repeat 50%/100% 100%;transform:translateZ(calc(-1 * var(--closed-book-reveal-d)))}.closed-book:hover .book-reveal{transform:rotateY(-20deg) scale(1.04) translateX(-8px)}.closed-book:active .book-reveal{transform:none;transition-duration:.12s}@media (prefers-reduced-motion:reduce){.closed-book .book-reveal,.closed-book:hover .book-reveal{transform:none;transition:none}}.book-face{position:absolute;backface-visibility:hidden;overflow:hidden}.book-art{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;display:block;pointer-events:none;-webkit-user-drag:none;user-select:none}.face-back,.face-front{inset:0;border-radius:var(--cover-radius-spine,2px) var(--cover-radius-outer,12px) var(--cover-radius-outer,12px) var(--cover-radius-spine,2px)}.face-front{overflow:visible;transform:translateZ(calc(var(--book-d) / 2))}.face-back{transform:rotateY(180deg) translateZ(calc(var(--book-d) / 2))}.face-left,.face-right{top:0;height:100%;width:var(--book-d);left:calc(50% - var(--book-d) / 2)}.face-left{transform:rotateY(-90deg) translateZ(calc(var(--book-w) / 2))}.face-bottom,.face-top{left:0;width:100%;height:var(--book-d);top:calc(50% - var(--book-d) / 2)}.face-top{transform:rotateX(90deg) translateZ(calc(var(--book-h) / 2))}.face-bottom{transform:rotateX(-90deg) translateZ(calc(var(--book-h) / 2))}.face-right>.book-art{width:var(--book-h);height:var(--book-d);transform-origin:top left;transform:translateX(var(--book-d)) rotate(90deg)}.face-bottom>.book-art{filter:brightness(.96)}.book-page{position:absolute;inset:var(--cover-overhang-y,0) var(--cover-overhang-x,0) var(--cover-overhang-y,0) 0;border-radius:var(--page-radius-spine,2px) var(--page-radius-outer,12px) var(--page-radius-outer,12px) var(--page-radius-spine,2px);overflow:hidden}.book-page-left{inset:var(--cover-overhang-y,0) 0 var(--cover-overhang-y,0) var(--cover-overhang-x,0);transform:translateX(calc(-100% - var(--cover-overhang-x, 0)));border-radius:var(--page-radius-outer,12px) var(--page-radius-spine,2px) var(--page-radius-spine,2px) var(--page-radius-outer,12px);z-index:3}.book-page-email>.book-art,.book-page-left>.book-art{transform:scaleX(-1)}.book-endpaper{position:absolute;inset:0;overflow:hidden;border-radius:var(--cover-radius-spine,2px) var(--cover-radius-outer,12px) var(--cover-radius-outer,12px) var(--cover-radius-spine,2px)}.book-endpaper>.book-art{transform:scaleX(-1)}.book-cover{position:absolute;inset:0;padding:0;border:none;background:transparent;transform-origin:left center;transform-style:preserve-3d;z-index:2}.book-cover-face{position:absolute;inset:0;backface-visibility:hidden;border-radius:var(--cover-radius-spine,2px) var(--cover-radius-outer,12px) var(--cover-radius-outer,12px) var(--cover-radius-spine,2px);overflow:hidden}.book-cover-front{box-shadow:0 18px 45px rgba(0,0,0,.28)}.book-cover-back,.book-cover-front{display:flex;align-items:center;justify-content:center}.book-cover-back{transform:rotateY(180deg);border-radius:var(--cover-radius-outer,12px) var(--cover-radius-spine,2px) var(--cover-radius-spine,2px) var(--cover-radius-outer,12px)}.book-back-cover{transform-style:preserve-3d;transform-origin:right center;z-index:5}.book-back-cover,.book-back-cover-face{position:absolute;width:100%;height:100%}.book-back-cover-face{backface-visibility:hidden;display:flex;align-items:center;justify-content:center}.book-back-cover-back{transform:rotateY(180deg)}.page-leaf{position:absolute;inset:var(--cover-overhang-y,0) var(--cover-overhang-x,0) var(--cover-overhang-y,0) 0;transform-origin:left center;transform-style:preserve-3d;pointer-events:none;z-index:15}.page-leaf-face{position:absolute;inset:0;backface-visibility:hidden;border-radius:var(--page-radius-spine,2px) var(--page-radius-outer,12px) var(--page-radius-outer,12px) var(--page-radius-spine,2px);overflow:hidden;box-shadow:0 8px 24px rgba(0,0,0,.18)}.page-leaf-back{transform:rotateY(180deg);border-radius:var(--page-radius-outer,12px) var(--page-radius-spine,2px) var(--page-radius-spine,2px) var(--page-radius-outer,12px)}.page-leaf-back>.book-art{transform:scaleX(-1)}@keyframes book-caret-blink{0%,50%{opacity:1}50.01%,to{opacity:0}}.book-caret{animation:book-caret-blink 1s step-end infinite}@media (prefers-reduced-motion:reduce){.book-caret{animation:none}}