.shelf{--spine-w:46px;--spine-gap:6px;--shelf-h:248px;position:relative}.marketing{--grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.6 -0.12'/%3E%3C/filter%3E%3Cfilter id='m'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.035' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.5 -0.1'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23m)'/%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E")}.shelf-stage{position:relative}.shelf-spines{display:flex;align-items:flex-end;gap:var(--spine-gap);height:var(--shelf-h);overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:none;padding:20px 16px 0}.shelf-spines::-webkit-scrollbar{display:none}.shelf-spines>:first-child{margin-left:auto}.shelf-spines>:last-child{margin-right:auto}.shelf-slot{flex:none;display:flex;align-items:flex-end;height:100%;width:calc(var(--spine-w) * var(--w));scroll-snap-align:center;transition:width var(--slot-ms,.48s) cubic-bezier(.22,1,.36,1)}.leather{position:relative;isolation:isolate;background-color:var(--leather)}.leather:before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;background-image:var(--grain);background-size:220px 220px;opacity:.5;pointer-events:none}.leather-soft:before{opacity:.4}.spine{flex:none;width:calc(var(--spine-w) * var(--w))}.cover-spine,.spine{border-radius:4px 4px 1px 1px;background-image:linear-gradient(90deg,rgba(0,0,0,.42),rgba(0,0,0,.08) 14%,hsla(0,0%,100%,.06) 34%,hsla(0,0%,100%,.02) 52%,rgba(0,0,0,.12) 78%,rgba(0,0,0,.4));box-shadow:inset 0 1px 0 hsla(0,0%,100%,.08),6px 0 10px -6px rgba(32,29,26,.45)}.spine{transition:transform .2s cubic-bezier(.22,1,.36,1)}.spine[aria-checked=false]:hover{transform:translateY(-4px)}.spine-hubs{position:absolute;inset-inline:0;height:22px;background:linear-gradient(rgb(var(--gilt)/.85),rgb(var(--gilt)/.85)) 0 0 /100% 1px no-repeat,linear-gradient(180deg,rgba(0,0,0,.35),hsla(0,0%,100%,.2) 38%,rgba(0,0,0,.28)) 0 5px /100% 7px no-repeat,linear-gradient(180deg,rgba(0,0,0,.35),hsla(0,0%,100%,.2) 38%,rgba(0,0,0,.28)) 0 14px /100% 7px no-repeat,linear-gradient(rgb(var(--gilt)/.85),rgb(var(--gilt)/.85)) 0 100% /100% 1px no-repeat}.spine-hubs-head{top:5%}.spine-hubs-tail{bottom:5%}.cover-title,.spine-label{font-family:var(--font-serif),Georgia,serif;font-weight:500;line-height:1;letter-spacing:.03em;white-space:nowrap;color:rgb(var(--gilt));background:var(--label);border-radius:2px;box-shadow:inset 0 0 0 1px rgb(var(--gilt)/.5),inset 0 1px 2px rgba(0,0,0,.35),0 1px 0 hsla(0,0%,100%,.18);text-shadow:0 1px 0 rgba(0,0,0,.55);-webkit-font-smoothing:antialiased;font-kerning:normal}.spine-label{position:absolute;left:50%;top:calc(5% + 28px);translate:-50% 0;writing-mode:vertical-rl;font-size:16px;padding:11px 6px}.shelf-cover{position:absolute;z-index:11;display:none;align-items:flex-start;justify-content:center;padding-top:18%;opacity:0;pointer-events:none}.shelf-cover[data-show]{display:flex}.shelf-cover>.cover-spine{position:absolute;inset:0;z-index:2;border-radius:inherit;opacity:0;pointer-events:none}.cover-title{font-size:clamp(18px,1.8vw,26px);padding:14px 18px;white-space:normal;text-align:center;max-width:78%}.book-case{border-radius:7px;padding:10px;transform-origin:left center;background-image:radial-gradient(120% 80% at 18% 0,hsla(0,0%,100%,.12),transparent 60%),linear-gradient(180deg,hsla(0,0%,100%,.04),rgba(0,0,0,.2));box-shadow:0 30px 40px -24px rgba(32,29,26,.6),0 6px 14px -6px rgba(32,29,26,.3),inset 0 1px 0 hsla(0,0%,100%,.1),inset 0 -2px 0 rgba(0,0,0,.25)}.book-case:after{content:"";position:absolute;inset:4px;border:1.5px dashed rgb(var(--gilt)/.5);border-radius:5px;pointer-events:none}.book-pages{background:linear-gradient(90deg,#fbf7ee,#fffdf8 18%,#fffdf8 82%,#fbf7ee);box-shadow:0 1px 0 #ece4d4,0 2px 0 #f8f3e9,0 3px 0 #e7ddcb,0 4px 0 #f5efe3}.ribbon{transition:opacity .18s ease-out;background:linear-gradient(90deg,#8f6a2e,#c9a45e 45%,#a98143);clip-path:polygon(0 0,100% 0,100% 100%,50% 84%,0 100%)}.book-leaf{position:absolute;z-index:20;display:none;transform-style:preserve-3d;transform-origin:left center;pointer-events:none}.book-leaf[data-fold]{display:block}.shelf-book[data-folding] .ribbon{opacity:0}.leaf-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;transform-style:preserve-3d}.leaf-b{transform:rotateY(180deg)}.leaf-face>*{position:absolute;inset:0}.leaf-page{padding:10px 0 10px 10px;border-radius:7px 0 0 7px;box-shadow:0 24px 36px -22px rgba(32,29,26,.55)}.leaf-paper{height:100%;border-radius:2px 0 0 2px;background:linear-gradient(90deg,#fbf7ee,#fffdf8 18%,#fffdf8 86%,rgba(32,29,26,.12))}.leaf-face>.leaf-shade{z-index:1;border-radius:7px;background:rgb(var(--ink));opacity:0;pointer-events:none}.leaf-cover{display:flex;justify-content:center;align-items:flex-start;padding-top:18%}.leaf-inside{border-radius:7px}@media (min-width:768px){.book-leaf{transform-origin:right center}.leaf-cover{border-radius:0 7px 7px 0}.leaf-a .leaf-cover,.leaf-b .leaf-inside{display:none}}@media (max-width:767px){.leaf-a .leaf-page,.leaf-b .leaf-cover{display:none}}.shelf-stage:has(.spine[aria-checked=true]:focus-visible) .shelf-book{outline:2px solid rgb(var(--ink)/.7);outline-offset:3px}.marketing ::-moz-selection{background:rgb(var(--gilt)/.6);color:rgb(var(--ink))}.marketing ::selection{background:rgb(var(--gilt)/.6);color:rgb(var(--ink))}.shelf-book ::-moz-selection{background:color-mix(in srgb,var(--leather) 26%,transparent)}.shelf-book ::selection{background:color-mix(in srgb,var(--leather) 26%,transparent)}.shelf-book{margin:20px 16px 0}@media (max-width:1279px){.spine[aria-checked=true]{transform:translateY(-14px);box-shadow:0 0 0 2px rgb(var(--gilt)),0 10px 16px -8px rgba(32,29,26,.5)}}@media (min-width:640px) and (max-width:1279px){.shelf-book{width:calc(100% - 48px);max-width:760px;margin-inline:auto}}.answer-lines{background-image:linear-gradient(transparent calc(2rem - 1px),rgb(var(--line)) calc(2rem - 1px));background-size:100% 2rem;background-attachment:local;line-height:2rem}@media (min-width:640px){.shelf{--spine-w:54px;--shelf-h:264px}.shelf-spines{padding-inline:24px}.spine-label{font-size:18px;padding:12px 6px}}@media (min-width:1280px){.shelf{--spine-w:clamp(38px,3.5vw,54px);--spine-gap:clamp(4px,0.45vw,7px);--shelf-h:clamp(440px,calc(100svh - 400px),520px);max-width:1440px;margin-inline:auto;padding-inline:40px}.shelf-spines{overflow:visible;padding:0}.shelf-spines>:first-child,.shelf-spines>:last-child{margin-inline:0}.shelf-slot[data-open]{width:var(--book-width)}.shelf-slot[data-out] .spine{opacity:0;transition:none}.shelf-cover{left:calc(var(--book-left) + var(--book-width) / 2)}.book-leaf,.shelf-cover{bottom:0;width:calc(var(--book-width) / 2);height:calc(var(--shelf-h) - 8px)}.book-leaf,.shelf-book{left:var(--book-left)}.shelf-book{position:absolute;bottom:0;width:var(--book-width);height:calc(var(--shelf-h) - 8px);margin:0;z-index:10}.spine-label{top:calc(5% + 36px);font-size:clamp(19px,1.6vw,25px);padding:14px 7px}}.shelf-ledge{position:relative;height:26px;margin-top:-1px;background:linear-gradient(rgb(var(--canvas)) 0 9px,rgb(var(--sand)) 9px 100%);box-shadow:inset 0 1px 0 rgb(var(--line)),inset 0 9px 0 -8px hsla(0,0%,100%,.5),inset 0 -1px 0 rgb(var(--oat)),0 18px 24px -18px rgba(32,29,26,.4)}.shelf-ledge:after{content:"";position:absolute;inset:9px 0 auto;height:1px;background:rgb(var(--oat))}@media (prefers-reduced-motion:reduce){.shelf-book,.shelf-book *,.shelf-slot,.spine{transition:none!important}.spine[aria-checked=false]:hover{transform:none}}.speak-take[data-armed] .speak-word{opacity:.18}.speak-take[data-play] .speak-word{animation:speak-word .42s cubic-bezier(.22,1,.36,1) both}.speak-take[data-play] .speak-bar{transform-origin:center;animation:speak-bar .9s ease-in-out 3 alternate}.speak-take[data-play] .speak-dot{animation:speak-dot 1.2s ease-in-out 5}@keyframes speak-word{0%{opacity:.18;filter:blur(2px)}to{opacity:1;filter:blur(0)}}@keyframes speak-bar{to{transform:scaleY(.45)}}@keyframes speak-dot{50%{opacity:.35}}@media (prefers-reduced-motion:reduce){.speak-take .speak-bar,.speak-take .speak-dot,.speak-take .speak-word{animation:none!important;opacity:1!important}}