/* Actual cover artwork, presented as a tactile shelf. Digital spine labels are navigation. */
.tb-shelf[hidden]{display:none!important}
.tb-shelf{--shelf-ink:#f9edda;--shelf-muted:#d4c5b3;--shelf-line:#f5ead52b;position:relative;isolation:isolate;background:#321f22;color:var(--shelf-ink);overflow:hidden}
.tb-shelf .tb-shelf__inner{padding-block:30px 24px}
.tb-shelf .tb-shelf__heading{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:12px}
.tb-shelf .tb-shelf__eyebrow,.tb-shelf .tb-shelf__selected-label{text-transform:uppercase;letter-spacing:.17em;font:700 10px/1.5 Montserrat,sans-serif;color:#d8b58b;margin:0 0 10px}
.tb-shelf .tb-shelf__heading h2{color:var(--shelf-ink);font-size:clamp(1.85rem,3.4vw,3rem);line-height:1.15;letter-spacing:-.025em;margin:0}
.tb-shelf .tb-shelf__instructions{font-size:.85rem;color:var(--shelf-muted);margin:12px 0 0;line-height:1.6}
.tb-shelf .tb-shelf__mobile-hint{display:none}
.tb-shelf .tb-shelf__mobile{display:none}
.tb-shelf .tb-shelf__browse{color:var(--shelf-ink);flex-shrink:0;font-size:.8rem;font-weight:700;text-decoration:underline;text-underline-offset:6px;padding:12px 0}
.tb-shelf .tb-shelf__viewport{overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:#b9916470 transparent;overscroll-behavior-x:contain;position:relative;padding-top:20px;padding-bottom:16px;border-bottom:7px solid #5c3e32;box-shadow:0 9px 8px -8px #000b;scroll-padding-inline:20px}
.tb-shelf .tb-shelf__track{display:flex;align-items:flex-end;gap:9px;min-width:min-content;padding:0 20px;min-height:280px;perspective:1300px}
.tb-shelf .tb-shelf__book{appearance:none;border:0;position:relative;flex:0 0 58px;width:58px;height:260px;background:none;overflow:visible;padding:0;margin:0;color:#fff3df;text-align:left;cursor:pointer;transform-style:preserve-3d;transition:flex-basis .4s cubic-bezier(.2,.7,.25,1),width .4s cubic-bezier(.2,.7,.25,1),height .4s ease;outline-offset:8px}
.tb-shelf .tb-shelf__book:nth-child(3n){height:245px}.tb-shelf .tb-shelf__book:nth-child(4n){height:270px}
.tb-shelf .tb-shelf__spine{position:absolute;inset:0 auto 0 0;width:58px;background:var(--shelf-book-colour);border:1px solid #fff2;border-radius:3px 1px 1px 3px;box-shadow:inset 4px 0 4px #fff1,inset -5px 0 6px #0004,3px 3px 6px #0004;display:flex;align-items:center;flex-direction:column;padding:12px 8px;box-sizing:border-box;transform-origin:right center;transition:transform .4s cubic-bezier(.2,.7,.25,1),opacity .3s ease;backface-visibility:hidden}
.tb-shelf .tb-shelf__spine-number{font:500 10px/1 Montserrat,sans-serif;letter-spacing:.1em;opacity:.65;border-bottom:1px solid #fff3;width:100%;text-align:center;padding-bottom:10px;margin-bottom:10px}
.tb-shelf .tb-shelf__spine-title{writing-mode:vertical-rl;text-orientation:mixed;font-family:Georgia,serif;font-size:17px;line-height:1.15;letter-spacing:.01em;flex:1;overflow:hidden;max-width:38px;max-height:210px}
.tb-shelf .tb-shelf__spine-mark{font:500 7px/1 Montserrat,sans-serif;letter-spacing:.12em;opacity:.65;margin-top:10px}
.tb-shelf .tb-shelf__face{position:absolute;inset:0 0 0 12px;display:flex;align-items:center;justify-content:center;transform:rotateY(-88deg);transform-origin:left center;backface-visibility:hidden;opacity:0;transition:transform .5s cubic-bezier(.2,.7,.25,1),opacity .25s ease;filter:drop-shadow(10px 9px 7px #0007)}
.tb-shelf .tb-shelf__cover{display:block;max-width:100%;width:auto;max-height:100%;height:auto;object-fit:contain;box-shadow:2px 0 0 #e8dfcf,4px 0 0 #c8bca5}
.tb-shelf .tb-shelf__book.is-selected{flex-basis:245px;width:245px;height:280px}
.tb-shelf .tb-shelf__book.is-selected .tb-shelf__spine{transform:rotateY(-82deg);opacity:.6}
.tb-shelf .tb-shelf__book.is-selected .tb-shelf__face{transform:rotateY(-9deg);opacity:1}
.tb-shelf .tb-shelf__detail{display:flex;justify-content:space-between;gap:30px;align-items:center;border-bottom:1px solid var(--shelf-line);padding:26px 0 22px;min-height:133px;box-sizing:border-box}
.tb-shelf .tb-shelf__copy{min-width:0;max-width:66ch}
.tb-shelf .tb-shelf__selected-label{margin-bottom:6px;font-size:9px}
.tb-shelf .tb-shelf__title{color:var(--shelf-ink);font-size:clamp(1.35rem,2vw,1.8rem);line-height:1.25;margin:0}
.tb-shelf .tb-shelf__authors{color:var(--shelf-muted);font-size:.75rem;line-height:1.6;margin:8px 0 0}
.tb-shelf .tb-shelf__commerce{display:flex;gap:24px;align-items:center;flex-shrink:0}
.tb-shelf .tb-shelf__facts{display:flex;flex-direction:column;gap:5px}
.tb-shelf .tb-shelf__price{font-size:1.2rem;font-weight:700;white-space:nowrap}
.tb-shelf .tb-shelf__availability{font-size:.7rem;color:#d1dcc9}.tb-shelf .tb-shelf__availability.is-unavailable{color:#e4c4b7}
.tb-shelf .tb-shelf__open{border:1px solid #f7e7cc;background:#f7e7cc;color:#4d2927;min-height:48px;padding:12px 24px;font:700 .8rem/1.4 Montserrat,sans-serif;border-radius:3px;cursor:pointer;white-space:nowrap}
.tb-shelf .tb-shelf__open:hover{background:#fff5e6}
.tb-shelf .tb-shelf__controls{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-top:20px}
.tb-shelf .tb-shelf__note{font-size:.75rem;color:var(--shelf-muted);margin:0}
.tb-shelf .tb-shelf__navigation{display:flex;gap:20px;align-items:center}
.tb-shelf .tb-shelf__counter{color:var(--shelf-muted);font:500 .7rem/1 Montserrat,sans-serif;min-width:40px;text-align:center;font-variant-numeric:tabular-nums}
.tb-shelf .tb-shelf__arrow{font:600 .75rem/1.4 Montserrat,sans-serif;min-height:44px;padding:8px 12px;border:1px solid #f9edda55;color:var(--shelf-ink);background:transparent;border-radius:3px;cursor:pointer}
.tb-shelf .tb-shelf__arrow:hover:not(:disabled){background:#ffffff13;border-color:#f9edda}
.tb-shelf .tb-shelf__arrow:disabled{opacity:.3;cursor:default}
.tb-shelf :is(button,a):focus-visible{outline:3px solid #f5d69e;outline-offset:5px}
@media(min-width:768px) and (max-width:1023px){.tb-shelf .tb-shelf__book{flex-basis:52px;width:52px}.tb-shelf .tb-shelf__spine{width:52px}.tb-shelf .tb-shelf__book.is-selected{flex-basis:215px;width:215px}.tb-shelf .tb-shelf__commerce{gap:14px}.tb-shelf .tb-shelf__detail{gap:22px}}
@media(max-width:767px){
 .tb-shelf .tb-shelf__inner{padding-block:20px 18px}
 .tb-shelf .tb-shelf__heading{align-items:center;gap:12px;margin-bottom:16px}
 .tb-shelf .tb-shelf__heading h2{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
 .tb-shelf .tb-shelf__eyebrow{font-size:10px;letter-spacing:.12em;margin-bottom:4px}
 .tb-shelf .tb-shelf__instructions{font-size:.7rem;margin:0;line-height:1.5}
 .tb-shelf .tb-shelf__desktop-hint{display:none}.tb-shelf .tb-shelf__mobile-hint{display:inline}
 .tb-shelf .tb-shelf__browse{font-size:.67rem;padding:10px 0;text-underline-offset:4px}
 .tb-shelf .tb-shelf__viewport,.tb-shelf .tb-shelf__detail,.tb-shelf .tb-shelf__controls{display:none}
 .tb-shelf .tb-shelf__mobile{display:block}
 .tb-shelf .tb-shelf__rail{position:relative;display:flex;align-items:stretch;gap:12px;list-style:none;padding:0 0 12px;margin:0;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:0;scrollbar-width:thin;scrollbar-color:#b9916490 transparent;touch-action:pan-x pan-y pinch-zoom}
 .tb-shelf .tb-shelf__card{display:flex;flex-direction:column;flex:0 0 calc((100% - 12px)/2);width:calc((100% - 12px)/2);min-width:0;box-sizing:border-box;scroll-snap-align:start;padding:0 0 6px;list-style:none}
 .tb-shelf .tb-shelf__card-art{height:clamp(150px,48vw,270px);display:flex;align-items:center;justify-content:center;padding:0 4px 14px;box-sizing:border-box}
 .tb-shelf .tb-shelf__card-cover{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(4px 5px 4px #0005)}
 .tb-shelf .tb-shelf__card-title{font:500 clamp(.95rem,3.8vw,1.2rem)/1.3 Georgia,serif;color:var(--shelf-ink);margin:0 0 10px;overflow-wrap:anywhere}
 .tb-shelf .tb-shelf__card-facts{display:flex;flex-direction:column;gap:4px;margin-top:auto;margin-bottom:12px}
 .tb-shelf .tb-shelf__card-price{font-size:.95rem;line-height:1.3;white-space:nowrap}
 .tb-shelf .tb-shelf__card-open{width:100%;min-height:44px;padding:10px 6px;font-size:.7rem;border-radius:2px}
 .tb-shelf .tb-shelf__card-open:focus-visible{outline-offset:-4px;outline-color:#4d2927}
}
@media(prefers-reduced-motion:reduce){.tb-shelf .tb-shelf__book,.tb-shelf .tb-shelf__spine,.tb-shelf .tb-shelf__face{transition:none!important}.tb-shelf .tb-shelf__viewport,.tb-shelf .tb-shelf__rail{scroll-behavior:auto!important}}
