.book-spin-stage{--book-red:#e64c44;--book-red-dark:#cc3e37;--gold:#c8a46b;--bs-warm-white:#f5f4f0;--bs-ink:#2a0b09;--bs-W:240px;--bs-H:386px;--bs-D:34px;perspective:1700px;perspective-origin:50% 42%;width:100%;padding:calc(var(--bs-D) + 24px) var(--bs-D);justify-content:center;align-items:center;display:flex}.book-spin-tilt{transform-style:preserve-3d;transform:rotateX(-6deg)}.book-spin-book{width:var(--bs-W);height:var(--bs-H);transform-style:preserve-3d;will-change:transform;position:relative;transform:rotateY(-18deg)}.book-spin-stage.is-playing .book-spin-book{animation:14s linear .4s infinite bs-spin}@keyframes bs-spin{0%{transform:rotateY(-18deg)}50%{transform:rotateY(162deg)}to{transform:rotateY(342deg)}}.bs-face{position:absolute;top:50%;left:50%}.bs-front,.bs-back{width:var(--bs-W);height:var(--bs-H);margin-left:calc(var(--bs-W) / -2);margin-top:calc(var(--bs-H) / -2);backface-visibility:hidden;overflow:hidden;box-shadow:inset 0 0 60px #00000029}.bs-front{transform:translateZ(calc(var(--bs-D) / 2));background:#000;border-radius:2px 6px 6px 2px}.bs-front img{object-fit:cover;width:100%;height:100%;display:block}.bs-back{transform:rotateY(180deg) translateZ(calc(var(--bs-D) / 2));background:var(--book-red);color:var(--bs-warm-white);border-radius:6px 2px 2px 6px;flex-direction:column;padding:20px 22px 14px;display:flex}.bs-endorse{color:var(--bs-ink);text-align:center;font-size:8px;font-style:italic;line-height:1.32}.bs-endorse b{margin-top:2px;font-style:normal;font-weight:700;display:block}.bs-lead{color:#fff;text-align:center;margin:11px 0 9px;font-size:10px;font-weight:700;line-height:1.34}.bs-body{text-align:center;color:#fffffff5;margin:0 0 8px;font-size:8.2px;line-height:1.42}.bs-closing{color:#fff;text-align:center;margin-top:2px;font-size:8.4px;font-style:italic;line-height:1.36}.bs-closing b{color:var(--bs-ink);margin-top:2px;font-style:normal;font-weight:700;display:block}.bs-spacer{flex:auto;min-height:6px}.bs-footer{flex-direction:column;align-items:center;gap:4px;display:flex}.bs-imprint{letter-spacing:.16em;text-transform:uppercase;color:var(--bs-ink);font-size:7px;font-weight:700}.bs-barcode{background:#fff;border-radius:1px;padding:5px 8px 3px}.bs-barcode svg{display:block}.bs-web{letter-spacing:.1em;color:var(--bs-ink);font-size:6.5px}.bs-spine{width:var(--bs-D);height:var(--bs-H);margin-left:calc(var(--bs-D) / -2);margin-top:calc(var(--bs-H) / -2);transform:rotateY(-90deg) translateZ(calc(var(--bs-W) / 2));background:linear-gradient(90deg, var(--book-red-dark), var(--book-red) 35%, var(--book-red) 65%, var(--book-red-dark));color:var(--bs-warm-white);flex-direction:column;justify-content:space-between;align-items:center;padding:18px 0;display:flex}.bs-spine-title{writing-mode:vertical-rl;letter-spacing:.04em;white-space:nowrap;font-family:"Source Serif 4",Georgia,serif;font-size:20px;font-weight:700;transform:rotate(180deg)}.bs-spine-author{writing-mode:vertical-rl;letter-spacing:.12em;text-transform:uppercase;opacity:.95;font-size:11px;transform:rotate(180deg)}.bs-spine-pub{writing-mode:vertical-rl;letter-spacing:.14em;text-transform:uppercase;opacity:.85;font-size:8px;transform:rotate(180deg)}.bs-edge{background:linear-gradient(var(--book-red-dark), var(--book-red) 22%, var(--book-red) 78%, var(--book-red-dark))}.bs-right{width:var(--bs-D);height:var(--bs-H);margin-left:calc(var(--bs-D) / -2);margin-top:calc(var(--bs-H) / -2);transform:rotateY(90deg) translateZ(calc(var(--bs-W) / 2));background:linear-gradient(90deg, var(--book-red), var(--book-red-dark));border-radius:0 2px 2px 0}.bs-top{width:var(--bs-W);height:var(--bs-D);margin-left:calc(var(--bs-W) / -2);margin-top:calc(var(--bs-D) / -2);transform:rotateX(90deg) translateZ(calc(var(--bs-H) / 2))}.bs-bottom{width:var(--bs-W);height:var(--bs-D);margin-left:calc(var(--bs-W) / -2);margin-top:calc(var(--bs-D) / -2);transform:rotateX(-90deg) translateZ(calc(var(--bs-H) / 2))}.bs-shadow{width:calc(var(--bs-W) * 1.05);height:46px;margin-left:calc(var(--bs-W) * -.525);transform:rotateX(90deg) translateZ(calc(var(--bs-H) / -2 - 10px));filter:blur(3px);pointer-events:none;background:radial-gradient(50% 50%,#0000008c,#0000 70%);position:absolute;top:50%;left:50%}@media (prefers-reduced-motion:reduce){.book-spin-book{animation:none;transform:rotateY(-22deg)}}@media (width<=400px){.book-spin-stage{zoom:.9}}@media (width<=360px){.book-spin-stage{zoom:.75}}
