[data-virtual-shelf]{--shelf-cover-min:6.75rem;--shelf-cover-max:11.75rem;--shelf-column-gap:clamp(1rem, 4.2vw, 2rem);--shelf-row-gap:clamp(2rem, 5vw, 3.25rem);width:min(100%,108rem);min-height:100dvh;margin-inline:auto;padding:clamp(1rem,4vw,3rem) clamp(1rem,4vw,3rem) clamp(3rem,7vw,6rem)}[data-virtual-shelf] .shelf-search{width:min(100%,30rem);margin:0 0 clamp(2.5rem,6vw,4.5rem)}[data-virtual-shelf] [data-shelf-search]{appearance:none;border:1px solid var(--ink);background:var(--canvas);width:100%;min-height:3rem;color:var(--ink);outline-offset:0;transition-property:box-shadow,outline-color,outline-offset;transition-duration:.16s;transition-timing-function:var(--ease-out);border-radius:0;outline:0 solid #0000;padding:.75rem .875rem;font-size:1rem;line-height:1.5}[data-virtual-shelf] [data-shelf-search]::placeholder{color:var(--ink-muted);opacity:1}[data-virtual-shelf] [data-shelf-search]:focus-visible{outline:2px solid var(--focus);outline-offset:3px;box-shadow:3px 3px #0000001a}[data-virtual-shelf] [data-shelf-search]::-webkit-search-cancel-button{-webkit-appearance:none;display:none}[data-virtual-shelf] .shelf-grid{justify-content:space-between;align-items:start;gap:var(--shelf-row-gap) var(--shelf-column-gap);grid-template-columns:repeat(2,minmax(0,1fr));width:100%;margin:0;padding:0;list-style:none;display:grid}[data-virtual-shelf] .book-item{min-width:0}[data-virtual-shelf] .book-card{min-width:0;color:inherit;text-decoration:none;display:block}[data-virtual-shelf] .cover-wrap{aspect-ratio:2/3;background:var(--surface-recessed);transform-origin:bottom;width:100%;transition-property:scale,transform,box-shadow;transition-duration:.18s;transition-timing-function:var(--ease-out);border-radius:2px 6px 6px 2px;display:block;position:relative;overflow:hidden;transform:translateY(0);box-shadow:0 0 0 1px #0000000f,0 2px 3px #0000001a,0 15px 26px -16px #0000007a}[data-virtual-shelf] .cover-wrap:after{z-index:2;border-radius:inherit;content:"";pointer-events:none;background:linear-gradient(90deg,#00000021,#0000 3.5% 97%,#00000014),linear-gradient(#ffffff1a,#0000 5% 95%,#00000014);position:absolute;inset:0;box-shadow:inset 0 0 0 1px #0000001a}[data-virtual-shelf] .cover-fallback{background:linear-gradient(145deg, #ffffff2e, transparent 42%), hsl(var(--cover-hue,214) 32% 42%);color:#fff;flex-direction:column;justify-content:space-between;gap:1rem;padding:11%;display:flex;position:absolute;inset:0}[data-virtual-shelf] .fallback-title{letter-spacing:-.025em;text-wrap:balance;font-size:clamp(.65rem,1.15vw,.9rem);font-weight:650;line-height:1.12}[data-virtual-shelf] .fallback-author{opacity:.76;text-wrap:pretty;font-size:clamp(.52rem,.85vw,.7rem);line-height:1.25}[data-virtual-shelf] .book-cover{z-index:1;border-radius:inherit;object-fit:cover;outline-offset:-1px;outline:1px solid #0000001a;width:100%;height:100%;position:absolute;inset:0}[data-virtual-shelf] .virtual-spacer{pointer-events:none;grid-column:1/-1;width:100%;margin:0;padding:0}[data-virtual-shelf] .book-card:focus-visible{outline:none}[data-virtual-shelf] .book-card:focus-visible .cover-wrap{outline:2px solid var(--focus);outline-offset:4px}[data-virtual-shelf] .book-card:active .cover-wrap{scale:.96}@media (hover:hover) and (pointer:fine){[data-virtual-shelf] .book-card:hover .cover-wrap{transform:translateY(-4px);box-shadow:0 0 0 1px #00000014,0 5px 8px #0000001f,0 24px 34px -17px #00000085}}@media (width>=27rem){[data-virtual-shelf] .shelf-grid{grid-template-columns:repeat(auto-fill, minmax(var(--shelf-cover-min), var(--shelf-cover-max)))}}@media (width>=48rem){[data-virtual-shelf]{--shelf-cover-min:8.25rem}}@media (prefers-color-scheme:dark){html:not([data-theme]) [data-virtual-shelf] [data-shelf-search]:focus-visible{box-shadow:3px 3px #ffffff29}html:not([data-theme]) [data-virtual-shelf] .cover-wrap{box-shadow:0 0 0 1px #ffffff1a}html:not([data-theme]) [data-virtual-shelf] .book-cover{outline-color:#ffffff1a}}html[data-theme=dark] [data-virtual-shelf] [data-shelf-search]:focus-visible{box-shadow:3px 3px #ffffff29}html[data-theme=dark] [data-virtual-shelf] .cover-wrap{box-shadow:0 0 0 1px #ffffff1a}html[data-theme=dark] [data-virtual-shelf] .book-cover{outline-color:#ffffff1a}@media (prefers-reduced-motion:reduce){[data-virtual-shelf] [data-shelf-search],[data-virtual-shelf] .cover-wrap{transition-duration:.01ms}[data-virtual-shelf] .book-card:hover .cover-wrap{transform:none}[data-virtual-shelf] .book-card:active .cover-wrap{scale:1}}
