/* Six actual CSS 3D faces; the supplied PDF cover is the front texture. */
.pass-stage{position:relative;isolation:isolate;display:flex;flex-direction:column;gap:42px;padding:55px 25px 35px;perspective:1400px;perspective-origin:50% 40%;overflow:visible}.pass-stage:after{content:"";position:absolute;bottom:80px;left:18%;width:68%;height:30px;border-radius:50%;background:#15351244;filter:blur(20px);transform:rotate(-6deg);z-index:-1}.pass-card.pass-cover.book{--book-depth:32px;--book-half:16px;--book-yaw:32deg;--book-pitch:4deg;position:relative;width:min(100%,300px);max-width:300px;aspect-ratio:1278/1800;padding:0;margin:0 auto;background:none;border:0;border-radius:0;overflow:visible;transform-style:preserve-3d;box-shadow:none;transform:translateY(var(--pass-y,0px)) rotateZ(-2deg) rotateX(var(--book-pitch)) rotateY(calc(var(--book-yaw) + var(--pass-turn,-10deg) * .35)) scale(var(--pass-scale,1));transition:transform .65s cubic-bezier(.2,.7,.2,1)}.pass-card.pass-cover.book:hover{transform:translateY(var(--pass-y,0px)) rotateZ(-2deg) rotateX(var(--book-pitch)) rotateY(calc(var(--book-yaw) + var(--pass-turn,-10deg) * .35)) scale(var(--pass-scale,1))}.pass-card.pass-cover.book:before,.pass-card.pass-cover.book:after{display:none}.book>.book-face{position:absolute;display:block;box-sizing:border-box;backface-visibility:hidden;-webkit-backface-visibility:hidden;transform-style:preserve-3d;z-index:auto}.book .book-front{top:0;left:0;width:100%;height:100%;transform:translateZ(var(--book-half));overflow:hidden;border-radius:2px 5px 5px 2px;box-shadow:inset 3px 0 4px #0003}.book-front>img{display:block;width:100%;height:100%;object-fit:fill}.book-cover-gloss{position:absolute;inset:0;background:linear-gradient(90deg,#0003,transparent 3%,#ffffff33 4%,#00000012 6%,transparent 9%),linear-gradient(115deg,transparent 25%,#ffffff1c 48%,transparent 70%);background-position:var(--pass-shine,0%) 0;pointer-events:none}.book .book-back{top:0;left:0;width:100%;height:100%;transform:translateZ(calc(-1 * var(--book-half))) rotateY(180deg);background:linear-gradient(115deg,#ce8c31,#b0772f);border-radius:4px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:25px}.book-back img{width:42%;height:auto}.book-back span{font-size:9px;letter-spacing:.12em;color:#35220b}.book .book-spine{top:0;left:0;width:var(--book-depth);height:100%;transform:translateX(-50%) rotateY(-90deg);background:linear-gradient(90deg,#87521e,#c58a3d 18%,#db9c4f 45%,#ac712c 88%,#7b4d21);border-radius:2px;display:flex;align-items:center;justify-content:center;box-shadow:inset -2px 0 3px #0003}.book .book-pages{top:1%;left:100%;height:98%;width:calc(var(--book-depth) - 4px);transform:translateX(-50%) rotateY(90deg);background:repeating-linear-gradient(90deg,#faf9ed 0px,#faf9ed 1px,#c9c8b9 1px,#e4e3d5 2px);box-shadow:inset 5px 0 8px #0002}.book .book-top,.book .book-bottom{left:1%;width:98%;height:calc(var(--book-depth) - 4px);background:repeating-linear-gradient(0deg,#f9f8ee 0px,#f9f8ee 1px,#c6c4b5 1px,#e5e3d7 2px)}.book .book-top{top:0;transform:translateY(-50%) rotateX(90deg)}.book .book-bottom{top:100%;transform:translateY(-50%) rotateX(-90deg)}.book-controls{display:flex;gap:8px;justify-content:center;position:relative;z-index:1;flex-wrap:wrap}.book-controls button{border:1px solid #bbcba8;border-radius:25px;padding:10px 15px;background:#edf2e5;color:#275f19;font-size:12px;transition:background .2s,color .2s}.book-controls button[aria-pressed=true]{background:#275f19;border-color:#275f19;color:white}.book-controls button:hover{border-color:#275f19}.book.view-pages{--book-yaw:-20deg!important}.workshop-library>.workshop-library-grid{margin-top:22px}.workshop-library-grid .library-item{max-width:none;border-top:1px solid #c6d0bd}.workshop-library-grid .library-item h3{font-size:20px}.workshop-library-grid .library-item>span:last-child{bottom:30px}
@media(max-width:1000px) and (min-width:761px){.pass-card.pass-cover.book{max-width:250px}.pass-stage{padding-left:10px;padding-right:10px}}
@media(max-width:760px){.pass-stage{padding:45px 30px 25px;gap:35px;perspective:1000px}.pass-card.pass-cover.book,.pass-card.pass-cover.book:hover{--book-depth:28px;--book-half:14px;max-width:240px;transform:rotateZ(-4deg) rotateX(6deg) rotateY(var(--book-yaw));will-change:auto}.pass-stage:after{bottom:74px;filter:blur(15px)}.workshop-library-grid .library-item h3{font-size:18px}}
@media(prefers-reduced-motion:reduce){.pass-card.pass-cover.book,.pass-card.pass-cover.book:hover{transform:rotateZ(-3deg) rotateX(6deg) rotateY(var(--book-yaw));transition:none;will-change:auto}.book-controls button{transition:none}}
/* Original chapter colors: page-edge index zone, not a decorative rainbow. */
.book-pages .chapter-register{position:absolute;left:0;right:0;top:4.5%;height:8.2%;display:flex;overflow:hidden;box-shadow:0 1px 1px #0000000c,inset 0 1px 1px #ffffff33}.chapter-register>span{display:block;flex:var(--chapter-weight) 0 0;min-width:0;height:100%;background-color:var(--chapter-color);background-image:repeating-linear-gradient(90deg,transparent 0px,transparent .7px,#ffffff16 .7px,#ffffff16 1px)}

/* Open the original cover around its left hinge to reveal the real contents spread. */
html:not(.js) .book-controls{display:none}
.book .book-front{transform-origin:0 50%;transition:transform .95s cubic-bezier(.22,.68,.2,1)}
.book>.book-face:not(.book-front){transition:opacity .35s ease}
.book .book-open-spread{position:absolute;left:-100%;top:0;width:200%;height:100%;padding:0;background:#fff;border-radius:3px;transform:translateZ(calc(var(--book-half) - .5px));transform-style:preserve-3d;backface-visibility:hidden;box-shadow:0 25px 45px #17351224;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility 0s linear .9s;pointer-events:none;z-index:auto}
.book-open-spread>img{display:block;width:100%;height:100%;object-fit:fill;border-radius:3px}
.book-open-spread .book-fold{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,transparent 47%,#00000005 48.5%,#00000024 49.8%,#ffffff50 50.1%,#0000000a 51.2%,transparent 53%);box-shadow:inset 0 0 0 1px #17351218}
.pass-card.pass-cover.book.view-open,.pass-card.pass-cover.book.view-open:hover{--book-yaw:0deg;transform:translateX(50%) rotateX(3deg) rotateZ(-1deg);transition:transform .95s cubic-bezier(.22,.68,.2,1)}
.book.view-open .book-front{transform:translateZ(var(--book-half)) rotateY(-172deg)}
.book.view-open>.book-face:not(.book-front){opacity:0}
.book.view-open .book-open-spread{opacity:1;visibility:visible;transition:opacity .45s ease .12s,visibility 0s}
.pass-stage.book-is-open:after{left:-5%;width:110%;transform:none;opacity:.55}
@media(max-width:1000px) and (min-width:761px){
  .pass-card.pass-cover.book.view-open{width:min(100%,230px)}
}
@media(max-width:760px){
  .pass-card.pass-cover.book.view-open,.pass-card.pass-cover.book.view-open:hover{width:min(38vw,160px);max-width:160px;transform:translateX(50%) rotateX(2deg);transition:transform .8s cubic-bezier(.22,.68,.2,1)}
  .pass-stage.book-is-open{padding-top:30px;padding-bottom:25px;gap:30px}
  .pass-stage.book-is-open:after{left:0;width:100%;bottom:65px}
  .book-controls button{white-space:nowrap}
}
@media(prefers-reduced-motion:reduce){
  .book .book-front,.book>.book-face:not(.book-front),.book .book-open-spread,.book.view-open .book-open-spread,.pass-card.pass-cover.book.view-open,.pass-card.pass-cover.book.view-open:hover{transition:none}
}

/* Three book views share an accessible, optional full-size preview. */
.pass-stage .book-controls{flex-wrap:wrap;max-width:100%;gap:7px}
.pass-stage .book-enlarge{background:none;border:0;padding:5px;color:#275f19;font-size:12px;text-decoration:underline;text-underline-offset:4px;margin-top:-25px}
.pass-stage .book-enlarge[hidden]{display:none}
.book-view-caption{font-size:11px;line-height:1.6;text-align:center;color:#627056;margin: -22px 0 0;max-width:350px}
.pass-preview{width:min(1200px,94vw);max-height:92dvh;padding:0;border:1px solid #c8d2be;border-radius:16px;background:#f5f6ef;color:#173512;box-shadow:0 30px 100px #0005}
.pass-preview::backdrop{background:#071406b8;backdrop-filter:blur(8px)}
.pass-preview-bar{position:sticky;top:0;left:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 22px;background:#f5f6eff5;border-bottom:1px solid #d1dcc7}
.pass-preview-bar h2{font-size:15px;letter-spacing:0;margin:0}
.pass-preview-bar button{white-space:nowrap;border:1px solid #bcccab;border-radius:25px;padding:10px 15px;background:#e7eedc;color:#275f19;font-size:12px}
.pass-preview>img{display:block;width:100%;height:auto}
.homepage-qr{display:flex;align-items:center;gap:18px;flex-shrink:0;font-size:12px;font-weight:600}
.homepage-qr img{display:block;background:white;border-radius:8px;padding:5px}
@media(max-width:760px){.pass-preview-bar{padding:13px;gap:10px}.pass-preview-bar h2{font-size:12px}.pass-preview-bar button{padding:9px 12px}.pass-preview>img{min-width:680px}.pass-stage .book-controls button{padding:9px 10px}.homepage-qr{flex-wrap:wrap}.book-view-caption{margin-top:-15px}}
