.hero-art{width:100%;max-width:640px;margin-left:auto;padding:0;}
.book-preview{position:relative;display:block;width:100%;aspect-ratio:3/2;padding:0;border:0;background:transparent;perspective:1600px;transform-style:preserve-3d;overflow:visible;isolation:isolate;}
.book-preview:focus-visible{outline:2px solid var(--sage-dark);outline-offset:5px;border-radius:8px;}
.book-preview-float{position:absolute;inset:0;display:block;transform-style:preserve-3d;animation:bookHover 6.2s ease-in-out infinite;}
.book-preview-shadow{position:absolute;z-index:-1;left:25%;right:25%;bottom:7%;height:7%;border-radius:50%;background:rgba(77,53,47,.18);filter:blur(19px);transform:translateY(13px);transition:transform 1s ease,opacity .7s ease,filter .7s ease;}
.book-cover-closed,.book-cover-panel{position:absolute;z-index:2;left:50%;top:50%;width:200%;height:200%;object-fit:contain;mix-blend-mode:normal;filter:drop-shadow(0 21px 22px rgba(66,44,39,.19));}
.book-cover-closed{clip-path:polygon(26.8% 8.7%,29.5% 6%,72.2% 5%,72.3% 90%,71.3% 91.2%,26.6% 93%,26.3% 91%);transform:translate(-50%,-50%);transition:opacity .2s ease;}
.book-cover-panel{z-index:4;clip-path:polygon(29.3% 8.2%,72.1% 5.8%,72.1% 90.2%,29.3% 92.4%);transform:translate(-50%,-50%) rotateY(0);transform-origin:29.3% 50%;backface-visibility:hidden;opacity:0;visibility:hidden;}
.book-spreads{position:absolute;inset:0;z-index:1;opacity:0;overflow:hidden;transform:scale(.95);transform-style:preserve-3d;transition:opacity .3s ease,transform .7s cubic-bezier(.2,.72,.22,1);}
.book-spread-current,.book-spread-next{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;mix-blend-mode:multiply;}
.book-spread-next{z-index:-1;opacity:0;}
.book-preview.is-opening .book-cover-closed{animation:closedBookDissolves .86s ease-in both;}
.book-preview.is-opening .book-cover-panel{visibility:visible;opacity:1;animation:coverOpens 1.12s cubic-bezier(.57,.05,.23,1) both;}
.book-preview.is-opening .book-spreads{animation:spreadAppears .95s .12s cubic-bezier(.2,.72,.22,1) both;}
.book-preview.is-opening .book-preview-shadow,.book-preview.is-open .book-preview-shadow{transform:translateY(19px) scale(1.04);filter:blur(24px);}
.book-preview.is-open .book-cover-closed,.book-preview.is-turning .book-cover-closed,.book-preview.is-closing .book-cover-closed{opacity:0;visibility:hidden;}
.book-preview.is-open .book-cover-panel,.book-preview.is-turning .book-cover-panel{opacity:0;visibility:hidden;}
.book-preview.is-open .book-spreads{opacity:1;transform:scale(1);overflow:visible;}
.book-preview.is-closing .book-cover-closed{visibility:visible;animation:closedBookReturns .8s .24s cubic-bezier(.2,.72,.22,1) both;}
.book-preview.is-closing .book-cover-panel{visibility:visible;opacity:1;animation:coverCloses 1.03s .03s cubic-bezier(.57,.05,.23,1) both;}
.book-preview.is-closing .book-spreads{animation:spreadFoldsAway .82s ease-in both;}
.book-preview.is-closing .book-preview-shadow{transform:translateY(13px);filter:blur(19px);}
.book-page-turn{position:absolute;z-index:3;left:50%;top:2%;width:50%;height:96%;transform-origin:left center;transform-style:preserve-3d;animation:turnPage 1.18s cubic-bezier(.56,.04,.22,1) both;pointer-events:none;}
.book-page-turn:after{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;background:linear-gradient(90deg,rgba(74,48,38,.3),rgba(74,48,38,.06) 18%,transparent 52%,rgba(74,48,38,.06) 83%,rgba(74,48,38,.17));opacity:.72;backface-visibility:hidden;}
.book-page-face{position:absolute;inset:0;backface-visibility:hidden;border-radius:0 2.3% 2.3% 0;background-repeat:no-repeat;background-size:200% 100%;mix-blend-mode:multiply;box-shadow:inset -8px 0 14px -13px rgba(46,32,26,.62);}
.book-page-front{background-position:right center;}
.book-page-back{transform:rotateY(180deg);background-position:left center;}
@keyframes bookHover{0%,100%{transform:translateY(0) rotateZ(-.45deg)}50%{transform:translateY(-12px) rotateZ(.35deg)}}
@keyframes closedBookDissolves{0%{opacity:1;transform:translate(-50%,-50%) scale(1)}42%{opacity:1;transform:translate(-50%,-50%) scale(.99)}100%{opacity:0;transform:translate(-50%,-50%) scale(.96)}}
@keyframes coverOpens{0%{opacity:1;transform:translate(-50%,-50%) rotateY(0)}100%{opacity:0;transform:translate(-50%,-50%) rotateY(-148deg)}}
@keyframes spreadAppears{0%{opacity:0;transform:scale(.94);filter:blur(1px)}100%{opacity:1;transform:scale(1);filter:blur(0)}}
@keyframes turnPage{0%{transform:rotateY(0);filter:drop-shadow(0 0 0 rgba(61,39,34,0))}18%{filter:drop-shadow(8px 4px 8px rgba(61,39,34,.2))}52%{filter:drop-shadow(1px 2px 5px rgba(61,39,34,.24))}100%{transform:rotateY(-180deg);filter:drop-shadow(-5px 3px 5px rgba(61,39,34,.12))}}
@keyframes spreadFoldsAway{0%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.94)}}
@keyframes coverCloses{0%{opacity:0;transform:translate(-50%,-50%) rotateY(-148deg)}100%{opacity:1;transform:translate(-50%,-50%) rotateY(0)}}
@keyframes closedBookReturns{0%{opacity:0;transform:translate(-50%,-50%) scale(.96)}100%{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@media(max-width:540px){.hero-art{max-width:440px;margin:34px auto 0}.book-cover-closed,.book-cover-panel{width:200%;height:200%}.book-preview-shadow{filter:blur(13px)}.book-preview.is-open .book-preview-shadow{filter:blur(17px)}}
@media(prefers-reduced-motion:reduce){.book-preview-float{animation:none}.book-preview,.book-preview *{animation-duration:.01ms!important;transition-duration:.01ms!important}.book-page-turn{animation-duration:.01ms!important}}
