.bookshelf{--bw:138px;--bh:210px;--bd:30px;--book-lap:-.18;--book-turn:32deg;content-visibility:auto;contain-intrinsic-size:auto 520px;position:relative}.bookshelf__frame{position:relative;overflow:hidden}.bookshelf__frame:before,.bookshelf__frame:after{content:"";z-index:4;pointer-events:none;width:5%;min-width:28px;position:absolute;inset-block:0}.bookshelf__frame:before{background:linear-gradient(90deg, var(--background) 0%, color-mix(in srgb, var(--background) 72%, transparent) 45%, transparent 100%);inset-inline-start:0}.bookshelf__frame:after{background:linear-gradient(270deg, var(--background) 0%, color-mix(in srgb, var(--background) 72%, transparent) 45%, transparent 100%);inset-inline-end:0}.bookshelf__viewport{perspective:1500px;perspective-origin:50% 42%;padding-block:4rem 2.75rem}.bookshelf__viewport:after{content:"";background:linear-gradient(90deg,#0000,#c9a45c8c 18% 82%,#0000);height:1px;margin-top:.6rem;display:block}.bookshelf__rail{width:max-content;transform-style:preserve-3d;animation:shelfDrift var(--shelf-drift,72s) linear infinite;align-items:flex-end;display:flex}.bookshelf__frame:hover .bookshelf__rail,.bookshelf__frame:focus-within .bookshelf__rail,.bookshelf.is-holding .bookshelf__rail{animation-play-state:paused}@keyframes shelfDrift{0%{transform:translate(0,0)}to{transform:translate(-50%)}}@keyframes shelfDriftRtl{0%{transform:translate(0,0)}to{transform:translate(50%)}}[dir=rtl] .bookshelf__rail{animation-name:shelfDriftRtl}.shelf-book{transform-style:preserve-3d;z-index:1;--book-a:#34302a;--book-b:#17150f;--book-c:#221f1a;--book-d:#0a0a0b;--book-foil:#e8cd8e;--book-text:#fff;--book-text-soft:#ffffffb8;--book-text-shadow:0 1px 2px #00000080;flex:none;margin-inline-end:calc(var(--bw) * var(--book-lap));position:relative}.shelf-book:hover,.shelf-book:focus-within{z-index:5}.shelf-book.is-open{z-index:6}.shelf-book--t1{--book-a:#34302a;--book-b:#17150f;--book-c:#221f1a;--book-d:#0a0a0b;--book-foil:#e8cd8e}.shelf-book--t2{--book-a:#e6c982;--book-b:#b08c46;--book-c:#c29d55;--book-d:#7a5b22;--book-foil:#3b2b0f;--book-text:#0a0a0b;--book-text-soft:#0a0a0bb3;--book-text-shadow:0 1px 0 #ffffff59}.shelf-book--t3{--book-a:#4a4640;--book-b:#23211d;--book-c:#322f2a;--book-d:#151412;--book-foil:#c9a45c}.shelf-book--t4{--book-a:#f4e9cd;--book-b:#d2bd92;--book-c:#dfcba2;--book-d:#a88d5c;--book-foil:#7a5b22;--book-text:#0a0a0b;--book-text-soft:#0a0a0ba8;--book-text-shadow:0 1px 0 #ffffff73}.shelf-book--t5{--book-a:#a07c45;--book-b:#604622;--book-c:#7a5b2e;--book-d:#3d2c13;--book-foil:#f1dda8}.shelf-book--t6{--book-a:#5c432a;--book-b:#2e2115;--book-c:#40301e;--book-d:#1c140c;--book-foil:#e8cd8e}.shelf-book__hit{inset-inline-start:0;width:var(--bw);height:var(--bh);cursor:pointer;appearance:none;background:0 0;border:0;margin:0;padding:0;display:block;position:absolute;bottom:0}.shelf-book__hit:focus-visible{outline:2px solid var(--brand-gold);outline-offset:6px;border-radius:6px}.shelf-book__3d{pointer-events:none;width:var(--bw);height:var(--bh);transform-style:preserve-3d;transform-origin:0 100%;transform:rotateY(var(--book-turn));transition:transform .52s cubic-bezier(.2,.7,.2,1);display:block;position:relative}.shelf-book:hover .shelf-book__3d,.shelf-book:focus-within .shelf-book__3d{transform:translate3d(0,-20px,110px)rotateY(13deg)scale(1.05)}.shelf-book.is-measuring,.shelf-book.is-measuring *{transition:none!important}.shelf-book.is-open .shelf-book__3d{transform:translate3d(var(--book-shift,0px), -4px, 140px) rotateY(7deg) scale(1.14);transition-duration:.62s}.shelf-book__cover,.shelf-book__inside,.shelf-book__back,.shelf-book__pages,.shelf-book__spine{border-radius:2px 4px 4px 2px;position:absolute;inset:0}.shelf-book__inside,.shelf-book__back,.shelf-book__pages,.shelf-book__spine{backface-visibility:hidden}.shelf-book__inside,.shelf-book__cover-lining{visibility:hidden;transition:visibility 0s linear .76s}.shelf-book.is-open .shelf-book__inside,.shelf-book.is-open .shelf-book__cover-lining{visibility:visible;transition-delay:0s}.shelf-book__cover{transform-style:preserve-3d;transform-origin:0;transform:translate3d(0, 0, calc(var(--bd) / 2));transition:transform .76s cubic-bezier(.62,.04,.2,1)}.shelf-book__cover-front,.shelf-book__cover-lining{backface-visibility:hidden;border-radius:2px 4px 4px 2px;position:absolute;inset:0;overflow:hidden}.shelf-book__cover-front{background:radial-gradient(126% 96% at 12% -6%, #fff3, transparent 58%), linear-gradient(155deg, var(--book-a) 0%, var(--book-b) 58%, var(--book-d) 100%);box-shadow:inset 0 0 0 1px #00000040,inset 0 -22px 30px -22px #0000008c}.shelf-book__cover-lining{font-size:calc(var(--bw) / 11);background:radial-gradient(120% 100% at 30% 18%,#fffdf8 0%,#f6efdf 68%,#eadfc6 100%);flex-direction:column;justify-content:center;align-items:center;gap:.5em;padding-inline:8%;display:flex;transform:rotateY(180deg);box-shadow:inset 0 0 0 1px #7a5b222e}.shelf-book__lining-mark{color:var(--brand-gold-deep);font-family:var(--font-heading-stack);letter-spacing:.04em;text-align:center;font-size:.95em;font-weight:600;line-height:1.15}.shelf-book__grain{pointer-events:none;background:repeating-linear-gradient(0deg,#ffffff0b 0 1px,#0000 1px 4px);position:absolute;inset:0}.shelf-book__plate{border-radius:2px;height:44%;position:absolute;top:8%;left:11%;right:9%;overflow:hidden;box-shadow:0 3px 8px -3px #0000008c,inset 0 0 0 1px #e8cd8e73}.shelf-book__art{object-fit:cover;object-position:50% 42%}.shelf-book__rule{background:linear-gradient(90deg, transparent, var(--book-foil) 22%, var(--book-foil) 78%, transparent);opacity:.8;border-radius:1px;height:2px;position:absolute;top:56%;left:11%;right:9%}.shelf-book__label{text-align:start;display:block;position:absolute;bottom:1.5rem;left:11%;right:9%}.shelf-book__title{-webkit-line-clamp:3;color:var(--book-text);font-family:var(--font-heading-stack);text-shadow:var(--book-text-shadow);-webkit-box-orient:vertical;font-size:.82rem;font-weight:600;line-height:1.2;display:-webkit-box;overflow:hidden}.shelf-book__author{color:var(--book-text-soft);margin-top:.28rem;font-size:.6rem;font-weight:600;display:block}.shelf-book__imprint{color:var(--book-foil);letter-spacing:.22em;text-transform:uppercase;opacity:.8;font-size:.46rem;font-weight:700;position:absolute;bottom:.55rem;left:11%;right:9%}.shelf-book__hinge{background:linear-gradient(90deg,#0000006b 0%,#0000004d 38%,#ffffff1f 62%,#0000 100%);width:10px;position:absolute;top:0;bottom:0;left:0}.shelf-book__edge{background:linear-gradient(90deg,#0000,#fff4d673 30%,#fff4d64d 70%,#0000);height:1px;position:absolute;top:0;left:0;right:0}.shelf-book__sheen{opacity:0;pointer-events:none;background:linear-gradient(115deg,#0000 34%,#ffecbe33 46%,#ffecbe0f 53%,#0000 64%);transition:opacity .34s ease-out,transform .62s cubic-bezier(.2,.7,.2,1);position:absolute;inset:-20% -40%;transform:translate(-18%)}.shelf-book:hover .shelf-book__sheen,.shelf-book:focus-within .shelf-book__sheen,.shelf-book.is-open .shelf-book__sheen{opacity:1;transform:translate(12%)}.shelf-book__dim{opacity:0;pointer-events:none;background:#0a0a0b;transition:opacity .32s ease-out;position:absolute;inset:0}@media (hover:hover){.bookshelf__frame:hover .shelf-book__dim{opacity:.32}}.shelf-book:hover .shelf-book__dim,.shelf-book:focus-within .shelf-book__dim,.shelf-book.is-open .shelf-book__dim{opacity:0}.shelf-book__pages{transform:translate3d(0, 0, calc(var(--bd) / 2 - 4px));background:linear-gradient(90deg,#0003 0%,#0000 14%),repeating-linear-gradient(90deg,#fffdf6 0 2px,#ebe3d0 2px 3px);border-radius:1px;inset:3px 3px 3px 7px}.shelf-book__spine{width:var(--bd);transform-origin:0;transform:translate3d(0, 0, calc(var(--bd) / -2)) rotateY(-90deg);background:linear-gradient(180deg, #ffffff29 0 2px, #00000057 2px 4px, transparent 4px 12%, var(--book-foil) 12% 12.6%, #0000004d 12.6% 15%, var(--book-foil) 15% 15.6%, transparent 15.6% 84.4%, var(--book-foil) 84.4% 85%, #0000004d 85% 87.4%, var(--book-foil) 87.4% 88%, transparent 88% calc(100% - 4px), #00000057 calc(100% - 4px) calc(100% - 2px), #ffffff29 calc(100% - 2px) 100%), linear-gradient(90deg, var(--book-d) 0%, var(--book-c) 22%, var(--book-a) 50%, var(--book-c) 78%, var(--book-d) 100%);border-radius:3px 0 0 3px;left:0;right:auto;overflow:hidden}.shelf-book__spine-text{color:var(--book-foil);font-family:var(--font-heading-stack);letter-spacing:.03em;white-space:nowrap;writing-mode:vertical-rl;place-items:center;padding-inline:2rem;font-size:.56rem;font-weight:600;display:grid;position:absolute;inset:0;overflow:hidden;transform:rotate(180deg)}.shelf-book__back{background:linear-gradient(155deg, var(--book-c) 0%, var(--book-d) 100%);transform:translate3d(0, 0, calc(var(--bd) / -2));box-shadow:inset 0 0 0 1px #0000004d}.shelf-book.is-open .shelf-book__cover{transform:translate3d(0, 0, calc(var(--bd) / 2)) rotateY(-152deg)}.shelf-book__inside{transform:translate3d(0, 0, calc(var(--bd) / 2 - 2px));text-align:start;background:linear-gradient(100deg,#f3ecdd 0%,#fdfaf2 16%,#fffdf8 100%);border-radius:1px;flex-direction:column;padding:.75rem .6rem .6rem .7rem;display:flex;inset:6px 6px 6px 13px;overflow:hidden;box-shadow:inset 7px 0 12px -9px #00000080}.shelf-book__page-kicker{color:var(--brand-gold-deep);letter-spacing:.14em;text-transform:uppercase;font-size:.5rem;font-weight:800;display:block}.shelf-book__page-title{-webkit-line-clamp:3;color:var(--brand-ink);font-family:var(--font-heading-stack);overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto;-webkit-box-orient:vertical;margin-top:.28rem;font-size:.78rem;font-weight:600;line-height:1.18;display:-webkit-box;overflow:hidden}.shelf-book__page-author{color:var(--brand-ink-muted);margin-top:.22rem;font-size:.58rem;font-weight:600;display:block}.shelf-book__page-rule{background:linear-gradient(90deg,#0000,#c9a45c99 18% 82%,#0000);height:1px;margin-top:.5rem}.shelf-book__page-facts{flex-wrap:wrap;gap:.25rem;margin-top:.45rem;display:flex}.shelf-book__fact{background:var(--brand-gold-soft);color:var(--brand-gold-deep);white-space:nowrap;border-radius:999px;padding:.1rem .4rem;font-size:.54rem;font-weight:700}.shelf-book__fact--price{background:var(--brand-ink);color:var(--brand-gold-light)}.shelf-book__page-blurb{-webkit-line-clamp:4;color:var(--brand-ink-muted);-webkit-box-orient:vertical;margin-top:.45rem;font-size:.56rem;font-weight:500;line-height:1.45;display:-webkit-box;overflow:hidden}.shelf-book__shadow{pointer-events:none;background:radial-gradient(50% 50%,#0a0a0b6b 0%,#0a0a0b38 45%,#0000 74%);height:24px;transition:opacity .3s ease-out,transform .52s cubic-bezier(.2,.7,.2,1);position:absolute;bottom:-9px;left:-4%;right:4%;transform:scaleY(.55)}.shelf-book:hover .shelf-book__shadow,.shelf-book:focus-within .shelf-book__shadow{opacity:.55;transform:translateY(4px)scale(1.1,.48)}.shelf-book.is-open .shelf-book__shadow{opacity:.42;transform:translateY(7px)scale(1.22,.44)}.shelf-book__go{text-align:center;opacity:0;visibility:hidden;pointer-events:none;text-decoration:none;transition:opacity .2s ease-out .26s,visibility .2s linear .26s;display:block}.shelf-book__go-pill{color:var(--brand-ink);white-space:nowrap;background:linear-gradient(135deg,#e8cd8e 0%,#c9a45c 45%,#b8914a 100%);border-radius:999px;padding:.35em .8em;font-size:.72em;font-weight:700;line-height:1.25;transition:background .2s ease-out,color .2s ease-out;display:inline-block;box-shadow:0 .25em .6em -.3em #7a5b2299}.shelf-book.is-open .shelf-book__go{opacity:1;visibility:visible;pointer-events:auto}.shelf-book__go:hover .shelf-book__go-pill{background:var(--brand-ink);color:var(--brand-gold-light)}.shelf-book__go:focus-visible{outline:none}.shelf-book__go:focus-visible .shelf-book__go-pill{outline:2px solid var(--brand-gold);outline-offset:3px}@media (max-width:640px){.bookshelf{--bw:112px;--bh:170px;--bd:24px;contain-intrinsic-size:auto 430px}.bookshelf__viewport{padding-block:3.25rem 2.5rem}.shelf-book.is-open .shelf-book__3d{transform:translate3d(var(--book-shift,0px), -4px, 120px) rotateY(7deg) scale(1.1)}.shelf-book__page-blurb,.shelf-book__imprint{display:none}.shelf-book__title{font-size:.72rem}.shelf-book__page-title{-webkit-line-clamp:4;font-size:.68rem}}@media (prefers-reduced-motion:reduce){.bookshelf__rail,[dir=rtl] .bookshelf__rail{animation:none}.shelf-book__3d,.shelf-book__cover,.shelf-book__go,.shelf-book__go-pill,.shelf-book__shadow,.shelf-book__sheen,.shelf-book__dim{transition-duration:1ms}.shelf-book:hover .shelf-book__sheen,.shelf-book:focus-within .shelf-book__sheen,.shelf-book.is-open .shelf-book__sheen{opacity:0}}
