.book-section{position:relative;isolation:isolate;overflow:clip;background:radial-gradient(ellipse at 28% 65%,#b49a6820,transparent 55%)}
.book-section .section-label,.book-section .book-grid{position:relative;z-index:1}
.window-shadow{position:absolute;inset:2% auto auto 6%;width:47%;height:90%;pointer-events:none;opacity:.23;transform:perspective(700px) rotateY(20deg) rotateZ(-27deg) skewY(-14deg);background:linear-gradient(90deg,transparent 46%,#030501 46% 53%,transparent 53%),repeating-linear-gradient(0deg,transparent 0 105px,#030501 105px 125px);border:25px solid #030501;filter:blur(5px);mask-image:linear-gradient(180deg,transparent,#000 15% 80%,transparent)}
.book-section .book-object,.book-section .book-object:hover{transform-style:preserve-3d;transform:rotateY(calc(-24deg + var(--book-progress,.4)*42deg)) rotateZ(calc(-7deg + var(--book-progress,.4)*7deg)) translateY(calc(25px - var(--book-progress,.4)*50px));transition:transform .22s ease-out,filter .8s;filter:brightness(.75);box-shadow:-23px 40px 55px #000b,3px 3px 0 #5c594d,7px 5px 0 #b2a995}
.book-section.book-in-view .book-object{filter:brightness(1)}
.book-object img{position:relative;z-index:1}
.book-page-edge{position:absolute;inset:5px -8px 1px auto;width:10px;background:repeating-linear-gradient(0deg,#c6bca7 0 1px,#6b6555 1px 2px);transform:translateZ(-3px);border-radius:0 2px 2px 0}
.book-sheen{position:absolute;inset:0;z-index:2;overflow:hidden;pointer-events:none}
.book-sheen:before{content:'';position:absolute;inset:-10%;background:linear-gradient(105deg,transparent 30%,#fff2ce00 40%,#fff2ce40 49%,#fff2ce08 54%,transparent 65%);mix-blend-mode:screen;transform:translateX(140%);animation:cover-light 5s ease-in-out infinite;animation-play-state:paused}
.book-in-view .book-sheen:before{animation-play-state:running}
@keyframes cover-light{0%,15%{transform:translateX(130%)}70%,100%{transform:translateX(-130%)}}
.threshold{background:radial-gradient(ellipse at 50% 55%,#4c3a2725,transparent 60%);padding-top:80px}
.threshold h2{font-size:clamp(44px,4.6vw,70px)}
.threshold-door-scene{display:block;position:relative;isolation:isolate;perspective:1100px;width:280px;height:420px;margin:42px auto 30px;padding:13px;border:0;background:linear-gradient(90deg,#29251c,#4d4331 4%,#211f18 8% 92%,#51452f 96%,#29251c);box-shadow:0 25px 60px #000b,0 0 0 1px #85734b40;border-radius:3px 3px 0 0;cursor:pointer;transform-style:preserve-3d}
.doorway{display:block;position:relative;width:100%;height:100%;background:radial-gradient(ellipse at 50% 70%,#4c422423,#030403 75%);perspective:1100px;box-shadow:inset 0 0 25px #000;transform-style:preserve-3d}
.door-leaf{display:block;position:absolute;inset:0;transform-origin:right center;backface-visibility:hidden;transition:transform 1.2s cubic-bezier(.22,.61,.36,1),filter 1s;box-shadow:-3px 0 8px #0008}
.door-leaf img{display:block;width:100%;height:100%;object-fit:fill;border:1px solid #a58b4e24;filter:brightness(.75)}
.threshold-door-scene:hover .door-leaf img{filter:brightness(.95)}
.door-light{position:absolute;inset:0;display:block;background:radial-gradient(ellipse at 50% 90%,#a78f4e30,transparent 70%);opacity:0;transition:opacity 1s}
.door-floor{position:absolute;bottom:-35px;left:-25%;width:150%;height:45px;background:radial-gradient(ellipse,#8f774b20,transparent 70%);transform:rotateX(65deg);pointer-events:none}
.door-cinema{position:fixed;inset:0;z-index:120;display:grid;place-items:center;overflow:hidden;background:#060806;opacity:0;transition:opacity .2s;pointer-events:none;perspective:1000px}
.door-cinema .threshold-door-scene{margin:0;width:min(68vw,330px);height:min(102vw,495px);transition:transform 1.5s cubic-bezier(.4,0,.45,1),opacity .7s;transform-origin:center 65%}
.door-cinema.is-entering{opacity:1}
.door-cinema.is-entering .door-leaf{transform:rotateY(112deg);filter:brightness(.4)}
.door-cinema.is-entering .door-light{opacity:1}
.door-cinema.is-entering .threshold-door-scene{transform:translateZ(0) scale(3.3);transition-delay:.32s}
html.door-transitioning{overflow:hidden}
#excerpt-dialog{background:radial-gradient(ellipse at 20% 10%,#fff6dd90,transparent 55%),linear-gradient(110deg,#d8ceb6,#eee5cf 42%,#ded3ba);box-shadow:0 30px 100px #000b,inset 0 0 70px #7e64381a;border:1px solid #aa97704d}
#excerpt-dialog[open]{animation:page-arrives .65s ease-out both}
@keyframes page-arrives{from{opacity:0;transform:translateY(18px) scale(.96)}to{opacity:1;transform:none}}
@media(max-width:650px){.window-shadow{width:80%;left:-8%;top:25%;height:60%;opacity:.3}.threshold{padding-top:60px}.threshold h2{font-size:45px}.threshold-door-scene{width:240px;height:360px;padding:11px;margin:35px auto 25px}.threshold>p{font-size:14px}.book-section .book-object{box-shadow:-18px 30px 40px #000b,3px 3px 0 #5c594d,7px 5px 0 #b2a995}}
@media(prefers-reduced-motion:reduce){.book-section .book-object,.book-section .book-object:hover{transform:rotateY(-10deg) rotateZ(-3deg);filter:none}.book-sheen{display:none}.door-cinema{display:none}#excerpt-dialog[open]{animation:none}}
