/* A six-faced CSS book, using the existing cover artwork. */
.gr-original-home .gr-book-stage-3d{display:block;width:min(340px,calc(100% - 40px));max-width:340px;margin:0 auto 18px;position:relative;opacity:1;transform:none;animation:none;overflow:visible}
.gr-book-scene{--gr-book-depth:28px;--gr-book-half:14px;position:relative;width:100%;aspect-ratio:2/3;perspective:1600px;perspective-origin:50% 45%;isolation:auto}
.gr-book-rotor{position:absolute;inset:0;transform-style:preserve-3d;transform-origin:50% 50%;transform:rotateX(5deg) rotateY(-25deg);animation:gr-book-full-turn 20s linear infinite;will-change:transform}
@keyframes gr-book-full-turn{from{transform:rotateX(var(--gr-book-pitch,5deg)) rotateY(calc(var(--gr-book-yaw,0deg) - 25deg))}to{transform:rotateX(var(--gr-book-pitch,5deg)) rotateY(calc(var(--gr-book-yaw,0deg) - 385deg))}}
.gr-book-face{position:absolute;backface-visibility:hidden;-webkit-backface-visibility:hidden;box-sizing:border-box}
.gr-book-front,.gr-book-back{inset:0;border-radius:2px 5px 5px 2px}
.gr-book-front{transform:translateZ(var(--gr-book-half));background:#F2E7DA;overflow:hidden}
.gr-original-home .gr-book-front img{display:block;width:100%;height:100%;max-height:none;object-fit:cover;max-width:none;border-radius:0;box-shadow:none;animation:none;transform:none;will-change:auto}
.gr-book-front::after{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:linear-gradient(90deg,rgba(46,33,26,.3),rgba(255,255,255,.2) 1.2%,rgba(46,33,26,.13) 2.6%,transparent 5%,transparent 94%,rgba(255,255,255,.15));box-shadow:inset -1px 0 0 rgba(46,33,26,.18)}
.gr-book-back{transform:rotateY(180deg) translateZ(var(--gr-book-half));background:radial-gradient(ellipse at 50% 30%,#FAF7F2,#F2E7DA 76%);border:1px solid #D4C6B6;color:#8E5629;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:38px 25px 31px;text-align:center;box-shadow:inset 5px 0 11px rgba(46,33,26,.09)}
.gr-book-back::after{content:"";position:absolute;inset:14px;border:1px solid rgba(184,125,75,.3);pointer-events:none}
.gr-book-back-title{font-family:var(--font-heading);font-size:26px;font-weight:600;line-height:1.25;max-width:235px;color:#9E6535}
.gr-book-back-subtitle{font-family:var(--font-body);font-size:12px;line-height:1.7;color:#8E5629;max-width:220px;margin-top:14px}
.gr-book-back-quote{font-family:var(--font-body);font-size:15px;line-height:1.8;color:#8E5629;max-width:230px;padding-block:24px}
.gr-book-back-author{font-family:var(--font-heading);font-size:15px;font-weight:600;letter-spacing:1px;color:#8E5629}
.gr-book-back-mark{width:44px;height:30px;margin:19px auto 0;color:#B87D4B}
.gr-book-spine{left:calc(0px - var(--gr-book-half));top:0;width:var(--gr-book-depth);height:100%;transform:rotateY(-90deg);background:linear-gradient(90deg,#B87D4B,#DFCAAF 17%,#EBDBC7 48%,#C6824C);border-block:1px solid #9E6535;display:flex;align-items:center;justify-content:center;overflow:hidden}
.gr-book-spine span{writing-mode:vertical-rl;transform:rotate(180deg);font-family:var(--font-heading);font-size:14px;line-height:1;font-weight:600;letter-spacing:.7px;color:#4A3B32;white-space:nowrap}
.gr-book-pages{left:calc(100% - var(--gr-book-half));top:3px;width:var(--gr-book-depth);height:calc(100% - 6px);transform:rotateY(90deg);background:repeating-linear-gradient(90deg,#FAF7F2 0 2px,#D4C6B6 2px 3px);box-shadow:inset 0 0 5px rgba(46,33,26,.15);border-block:1px solid #D4C6B6}
.gr-book-top,.gr-book-bottom{left:1px;width:calc(100% - 2px);height:var(--gr-book-depth);background:repeating-linear-gradient(0deg,#FAF7F2 0 2px,#D4C6B6 2px 3px);box-shadow:inset 0 0 5px rgba(46,33,26,.12)}
.gr-book-top{top:calc(0px - var(--gr-book-half));transform:rotateX(90deg)}
.gr-book-bottom{top:calc(100% - var(--gr-book-half));transform:rotateX(-90deg)}
.gr-book-floor-shadow{position:absolute;left:4%;right:4%;height:25px;bottom:-21px;z-index:-1;background:rgba(46,33,26,.2);border-radius:50%;filter:blur(12px);transform:rotate(-3deg);pointer-events:none}
.gr-book-stage-3d.is-dragging .gr-book-rotor,.gr-book-stage-3d.is-user-paused .gr-book-rotor,.gr-book-stage-3d.is-offscreen .gr-book-rotor,.gr-book-stage-3d.is-tab-hidden .gr-book-rotor{animation-play-state:paused}
.gr-original-home .gr-hero-visual-wrap:has(.gr-book-stage-3d) .gr-hero-float-quote{z-index:4;bottom:-22px}

@media(max-width:960px){.gr-original-home .gr-book-stage-3d{width:min(300px,calc(100% - 40px));margin-top:18px}.gr-book-scene{--gr-book-depth:24px;--gr-book-half:12px}}
@media(max-width:600px){
 .gr-original-home .gr-book-stage-3d{width:min(270px,calc(100% - 46px));margin:16px auto 14px}
 .gr-book-scene{--gr-book-depth:22px;--gr-book-half:11px;perspective:1200px}
 .gr-book-back{padding:30px 20px 26px}
 .gr-book-back-title{font-size:22px}
 .gr-book-back-subtitle{font-size:10px}
 .gr-book-back-quote{font-size:13px;padding-block:15px}
 .gr-book-back-author{font-size:12px}
 .gr-book-spine span{font-size:12px}
 .gr-original-home .gr-hero-visual-wrap:has(.gr-book-stage-3d) .gr-hero-float-quote{bottom:auto;margin-top:22px}
}
@media(prefers-reduced-motion:reduce){.gr-book-rotor{animation:none!important;transform:rotateX(var(--gr-book-pitch,5deg)) rotateY(calc(var(--gr-book-yaw,0deg) - 25deg));will-change:auto}}
@media print{.gr-book-rotor{animation:none!important;transform:rotateY(-20deg)}}

.gr-book-scene{cursor:grab;touch-action:pan-y;user-select:none;-webkit-user-select:none;outline:none}
.gr-book-stage-3d.is-dragging .gr-book-scene{cursor:grabbing}
.gr-book-front img{user-select:none;-webkit-user-drag:none;pointer-events:none}
.gr-book-scene:focus-visible{outline:2px solid #B87D4B;outline-offset:10px;border-radius:4px}

/* Pointer interaction must not draw a focus frame around the 3D scene. */
.gr-original-home .gr-book-stage-3d.is-pointer-active .gr-book-scene,
.gr-original-home .gr-book-stage-3d.is-pointer-active .gr-book-scene:focus,
.gr-original-home .gr-book-stage-3d.is-pointer-active .gr-book-scene:focus-visible{outline:none!important;box-shadow:none!important}
