.shelf__book{z-index:0;inline-size:var(--book-width,214px);aspect-ratio:11/16;color:var(--book-ink,#1a1a1a);transform-style:preserve-3d;cursor:pointer;will-change:transform;outline:none;flex:none;text-decoration:none;transition:transform .38s cubic-bezier(.22,.61,.36,1),filter .38s cubic-bezier(.22,.61,.36,1);display:block;position:relative;transform:translateY(0)translateZ(0)rotateY(-22deg)rotateX(2deg)scale(1)}@media (hover:hover) and (pointer:fine){.shelf__book:hover{z-index:10;filter:drop-shadow(0 32px 34px #000000ad);transition-timing-function:cubic-bezier(.34,1.4,.6,1);transform:translateY(-20px)translateZ(80px)rotateY(-4deg)rotateX(3deg)scale(1.06)}}.shelf__book:focus-visible{z-index:10;filter:drop-shadow(0 32px 34px #000000ad);transition-timing-function:cubic-bezier(.34,1.4,.6,1);transform:translateY(-20px)translateZ(80px)rotateY(-4deg)rotateX(3deg)scale(1.06)}.shelf__book:focus-visible:before{content:"";pointer-events:none;border:1px solid #f6f2eab3;position:absolute;inset:-14px}.book__object{transform-style:preserve-3d;pointer-events:none;position:absolute;inset:0}.book__face{backface-visibility:hidden;position:absolute;overflow:hidden}.book__face--front{z-index:2;color:var(--book-ink,#1a1a1a);background:radial-gradient(ellipse at 50% 16%, #ffffff85, transparent 54%), linear-gradient(90deg, #00000029, transparent 8%, transparent 100%), var(--book-cover,#f6f2ea);transform:translateZ(calc(var(--book-depth,34px) / 2));display:flex;inset:0;box-shadow:inset 0 0 0 1px #0000001a,inset 4px 0 #0000002e,inset 10px 0 18px #00000014,0 20px 48px #0000006b}.book__face--front:after{content:"";z-index:4;pointer-events:none;border:1px solid #1a1a1a24;position:absolute;inset:12px}.book__cover-plate{z-index:1;text-align:center;grid-template-rows:auto 1fr auto auto;justify-items:center;block-size:100%;inline-size:100%;padding:24px 18px 20px;display:grid;position:relative}.book__cover-eyebrow{letter-spacing:.24em;color:#1a1a1a94;overflow-wrap:anywhere;max-inline-size:100%;font-size:.45rem;line-height:1.35}.book__cover-title{max-block-size:8.8rem;max-inline-size:100%;font-size:var(--book-title-size,1.14rem);color:var(--book-ink,#1a1a1a);text-wrap:balance;overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto;align-self:center;padding:0 6px;line-height:1.08}.book__cover-mark{color:#1a1a1a85;place-items:center;display:grid}.book__cover-foot{letter-spacing:.32em;color:#1a1a1a7a;margin-top:12px;font-size:.52rem;line-height:1}.book__cover-image{z-index:3;object-fit:cover;background:var(--book-cover,#f6f2ea);block-size:100%;inline-size:100%;position:absolute;inset:0}.book__face--back{background:linear-gradient(90deg, #ffffff14, transparent 18%), linear-gradient(270deg, #00000042, transparent 24%), var(--book-spine,#1a1a1a);transform:rotateY(180deg) translateZ(calc(var(--book-depth,34px) / 2));inset:0;box-shadow:inset 0 0 0 1px #00000061,inset -8px 0 18px #0003}.book__face--spine{inline-size:var(--book-depth,34px);background:linear-gradient(90deg, #00000075, #ffffff14 48%, #00000057), var(--book-spine,#1a1a1a);transform-origin:0;place-items:center;display:grid;inset-block:0;inset-inline-start:0;transform:rotateY(-90deg);box-shadow:inset 1px 0 #ffffff1f,inset -1px 0 #00000073}.book__spine-title{writing-mode:vertical-rl;color:#f6f2eadb;letter-spacing:.07em;white-space:nowrap;text-overflow:ellipsis;text-shadow:0 1px #0000009e,0 0 5px #f6da9e29;max-block-size:62%;padding:18px 0;font-size:.66rem;line-height:1;overflow:hidden;transform:rotate(180deg)}.book__spine-band{border-block:1px solid #0000006b;block-size:8px;position:absolute;inset-inline:22%;box-shadow:inset 0 1px #ffffff14,0 1px #ffffff0f}.book__spine-band--top{inset-block-start:9%}.book__spine-band--bottom{inset-block-end:9%}.book__face--pages{inline-size:var(--book-depth,34px);transform-origin:100%;background:repeating-linear-gradient(90deg,#46361c2e 0 1px,#0000 1px 3px),linear-gradient(90deg,#d8ccb1,#f4ecd7 34%,#e3d8bd 68%,#fbf6e9);inset-block:0;inset-inline-end:0;transform:rotateY(90deg);box-shadow:inset 1px 0 #0000002e,inset -1px 0 #ffffff57}.book__face--top,.book__face--bottom{block-size:var(--book-depth,34px);background:repeating-linear-gradient(0deg,#46361c24 0 1px,#0000 1px 3px),linear-gradient(90deg,#d6caaf,#faf4e4 50%,#ded2b7);inset-inline:0}.book__face--top{transform-origin:top;inset-block-start:0;transform:rotateX(-90deg)}.book__face--bottom{transform-origin:bottom;inset-block-end:0;transform:rotateX(90deg)}@media (width<=700px){.book__cover-plate{padding:20px 15px 17px}.book__cover-title{max-block-size:7.4rem}.book__spine-title{font-size:.58rem}}@media (prefers-reduced-motion:reduce){.shelf__book,.shelf__book:focus-visible{filter:none;transition:none;transform:rotateY(-18deg)rotateX(1deg)}}.shelf-desktop__stage{--book-width:clamp(172px, 13vw, 224px);--shelf-gap:clamp(14px, 1.6vw, 24px);--shelf-drift-duration:540s;z-index:1;perspective:1700px;perspective-origin:50% 56%;cursor:grab;-webkit-user-select:none;user-select:none;flex:auto;align-items:center;min-block-size:0;display:flex;position:relative;overflow:hidden}.shelf-desktop__stage.is-dragging{cursor:grabbing}.shelf-desktop__drag-layer{inline-size:max-content;transform:translate3d(var(--drag-x,0px), 0, 0);transform-style:preserve-3d;will-change:transform;align-items:center;display:flex}.shelf-desktop__stage.is-dragging .shelf-desktop__track{animation-play-state:paused}.shelf-desktop__stage:before,.shelf-desktop__stage:after{content:"";z-index:2;pointer-events:none;inline-size:min(12vw,150px);position:absolute;inset-block:0}.shelf-desktop__stage:before{background:linear-gradient(90deg,#000,#0000);inset-inline-start:0}.shelf-desktop__stage:after{background:linear-gradient(270deg,#000,#0000);inset-inline-end:0}.shelf-desktop__track{inline-size:max-content;transform-style:preserve-3d;will-change:transform;animation:shelf-desktop-drift var(--shelf-drift-duration) linear infinite;align-items:center;margin-inline-start:max(2rem,8vw);display:flex}.shelf-desktop__set{align-items:center;gap:var(--shelf-gap);transform-style:preserve-3d;padding-inline-end:var(--shelf-gap);display:flex}@keyframes shelf-desktop-drift{0%{transform:translate(0,0)}to{transform:translate(-50%)}}@media (hover:hover) and (pointer:fine){.shelf-desktop__track:has(.shelf__book:hover){animation-play-state:paused}}.shelf-desktop__track:has(.shelf__book:focus-visible){animation-play-state:paused}@media (prefers-reduced-motion:reduce){.shelf-desktop__stage{scrollbar-color:#f6f2ea57 transparent;overflow:auto hidden}.shelf-desktop__track{padding-inline-end:2rem;animation:none;transform:none}.shelf-desktop__set[aria-hidden=true],.shelf-desktop__stage:before,.shelf-desktop__stage:after{display:none}}.shelf-mobile__stage{z-index:1;color:#f6f2ea;isolation:isolate;flex:auto;min-block-size:0;inline-size:100%;display:flex;position:relative;overflow:hidden}.shelf-mobile__stage:before,.shelf-mobile__stage:after{content:"";z-index:2;pointer-events:none;block-size:clamp(48px,10vh,92px);position:absolute;inset-inline:0}.shelf-mobile__stage:before{background:linear-gradient(#000 0%,#000000d1 42%,#0000 100%);inset-block-start:0}.shelf-mobile__stage:after{background:linear-gradient(#0000 0%,#000000d1 58%,#000 100%);inset-block-end:0}.shelf-mobile__viewport{z-index:1;min-block-size:0;inline-size:100%;-webkit-overflow-scrolling:touch;overscroll-behavior-y:contain;scrollbar-width:none;touch-action:pan-y;contain:layout paint;flex:auto;padding-block:clamp(.55rem,1.8vh,.95rem) clamp(.95rem,2.8vh,1.45rem);padding-inline-start:max(.95rem, calc(env(safe-area-inset-left) + .75rem));padding-inline-end:max(.95rem, calc(env(safe-area-inset-right) + .75rem));scroll-padding-block:clamp(52px,11vh,96px);position:relative;overflow:hidden auto}.shelf-mobile__viewport::-webkit-scrollbar{display:none}.shelf-mobile__list{flex-direction:column;gap:clamp(5px,1vh,8px);inline-size:100%;margin:0;padding:clamp(.15rem,.8vh,.45rem) 0;list-style:none;display:flex}.shelf-mobile__item{min-block-size:var(--shelf-mobile-card-height,82px);flex:none}.shelf-mobile__book{min-block-size:var(--shelf-mobile-card-height,82px);inline-size:100%;color:var(--shelf-mobile-cream,#f6f2ea);background:linear-gradient(90deg, var(--shelf-mobile-spine-edge,#0f0f0f) 0%, var(--shelf-mobile-spine,#1a1a1a) 15%, var(--shelf-mobile-spine-lift,#252525) 52%, var(--shelf-mobile-spine,#1a1a1a) 85%, var(--shelf-mobile-spine-edge,#0f0f0f) 100%);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;transform-origin:50%;border:1px solid #f6f2ea1f;border-radius:7px;outline:none;grid-template-columns:15px minmax(68px,.64fr) minmax(0,1.56fr) 30px;align-items:center;column-gap:clamp(.55rem,2.35vw,.9rem);padding:0 clamp(.78rem,3.5vw,1.1rem) 0 0;text-decoration:none;transition:transform .11s,border-color .11s;display:grid;position:relative;overflow:hidden;transform:scale(1);box-shadow:0 6px #00000047}.shelf-mobile__book:after{content:"";z-index:1;opacity:0;pointer-events:none;background:#f6f2ea1a;transition:opacity .11s;position:absolute;inset:0}.shelf-mobile__book:active{border-color:#f6f2ea38;transform:scale(.985)}.shelf-mobile__book:active:after{opacity:1}.shelf-mobile__book:focus-visible{outline-offset:2px;border-color:#f6f2ea73;outline:1px solid #f6f2eab8}.shelf-mobile__rib{opacity:.78;background:linear-gradient(90deg,#f6f2ea6b,#f6f2ea14);border-inline-end:1px solid #0000003d;align-self:stretch;inline-size:15px}.shelf-mobile__eyebrow,.shelf-mobile__title,.shelf-mobile__mark{z-index:2;position:relative}.shelf-mobile__eyebrow{min-inline-size:0;color:var(--shelf-mobile-cream,#f6f2ea);letter-spacing:.16em;opacity:.66;white-space:nowrap;text-overflow:ellipsis;font-size:.52rem;line-height:1.1;overflow:hidden}.shelf-mobile__title{min-inline-size:0;color:var(--shelf-mobile-cream,#f6f2ea);font-size:var(--shelf-mobile-title-size,1.14rem);letter-spacing:0;text-align:center;white-space:nowrap;text-overflow:ellipsis;text-shadow:0 1px #00000094;line-height:1;overflow:hidden}.shelf-mobile__mark{color:var(--shelf-mobile-cream,#f6f2ea);opacity:.78;place-items:center;display:grid}.shelf-mobile__mark svg{block-size:22px;inline-size:22px}.shelf-mobile__empty{color:#f6f2ea9e;text-align:center;place-items:center;min-block-size:42vh;margin:0;font-size:1.1rem;display:grid}@media (width<=380px){.shelf-mobile__viewport{padding-inline-start:max(.75rem, calc(env(safe-area-inset-left) + .62rem));padding-inline-end:max(.75rem, calc(env(safe-area-inset-right) + .62rem))}.shelf-mobile__book{grid-template-columns:14px minmax(58px,.54fr) minmax(0,1.6fr) 26px;column-gap:.48rem;padding-inline-end:.72rem}.shelf-mobile__rib{inline-size:14px}.shelf-mobile__eyebrow{letter-spacing:.13em;font-size:.48rem}.shelf-mobile__mark svg{block-size:20px;inline-size:20px}}@media (prefers-reduced-motion:reduce){.shelf-mobile__book,.shelf-mobile__book:after{transition:none}.shelf-mobile__book:active{transform:none}}.shelf{z-index:1100;color:#f6f2ea;background:#000;flex-direction:column;animation:.42s cubic-bezier(.22,.61,.36,1) both shelf-enter;display:flex;position:fixed;inset:0;overflow:hidden}@keyframes shelf-enter{0%{opacity:0}to{opacity:1}}.shelf__header{z-index:3;text-align:center;flex:none;padding:clamp(2.25rem,5vh,4rem) clamp(1.25rem,4vw,3rem) 1.25rem;position:relative}.shelf__eyebrow{letter-spacing:.36em;color:#f6f2ea85;margin:0 0 .95rem;font-size:.68rem;line-height:1}.shelf__title{letter-spacing:.08em;color:#f6f2ea;margin:0;font-size:4.75rem;line-height:.9}.shelf__subtitle{color:#f6f2eaa8;margin:.9rem 0 0;font-size:1.05rem;line-height:1.3}.shelf__close{color:#f6f2eabd;background:#0003;border:1px solid #f6f2ea3d;place-items:center;block-size:44px;inline-size:44px;transition:color .18s,background .18s,border-color .18s;display:grid;position:absolute;inset-block-start:1.35rem;inset-inline-end:1.35rem}.shelf__close:hover,.shelf__close:focus-visible{color:#000;background:#f6f2ea;border-color:#f6f2ea;outline:none}.shelf__footer{z-index:3;text-align:center;flex:none;padding:1rem clamp(1.25rem,4vw,3rem) clamp(1.3rem,3vh,2rem);position:relative}.shelf__hint{letter-spacing:.34em;color:#f6f2ea61;margin:0;font-size:.62rem;line-height:1.4}@media (width<=700px){.shelf__header{padding:2.95rem 1rem .35rem}.shelf__eyebrow{letter-spacing:.28em;margin-block-end:.65rem;font-size:.56rem}.shelf__title{letter-spacing:.07em;font-size:clamp(1.72rem,8.4vw,2.15rem);line-height:.94}.shelf__subtitle{margin-block-start:.5rem;font-size:.9rem}.shelf__close{block-size:40px;inline-size:40px;inset-block-start:.9rem;inset-inline-end:.9rem}.shelf__footer{padding:.55rem 1rem max(.85rem, env(safe-area-inset-bottom))}.shelf__hint{letter-spacing:.18em;font-size:.5rem}}@media (prefers-reduced-motion:reduce){.shelf{animation:none}}
