.webgl-ready .library-bottom{display:flex;flex-direction:column;gap:9px!important;bottom:14px!important;max-width:92vw}
.webgl-ready .library-bottom>.hint{display:none}
.book-dock{display:flex;gap:12px;max-width:min(540px,86vw);padding:9px 15px;overflow-x:auto;scrollbar-width:none;background:#fff3dcdb;border:1px solid #d2b58a;border-radius:18px;box-shadow:0 5px 18px #30201420;overscroll-behavior:contain}
.book-dock::-webkit-scrollbar{display:none}.book-dock button{position:relative;flex:0 0 32px;padding:0;border:0;background:none;border-radius:3px;opacity:.55;transition:opacity .2s,transform .2s;cursor:pointer}.book-dock img{display:block;width:32px;height:42px;object-fit:cover;border-radius:2px;box-shadow:1px 2px 3px #38251255}.book-dock button[aria-current=true]{opacity:1;transform:translateY(-2px);outline:2px solid #bc8f48;outline-offset:3px}.book-dock button:hover,.book-dock button:focus-visible{opacity:1}.book-dock .mini-progress{display:block;height:3px;margin-top:5px;background:#bdab8d66;border-radius:3px;overflow:hidden}.mini-progress i{display:block;height:100%;background:#9b7539}.night .book-dock{background:#352e25e8;border-color:#8d7550}.night .mini-progress i{background:#e2bc73}.webgl-ready .shelf-navigation .round{width:44px!important;height:44px!important;min-width:44px;min-height:44px}.webgl-ready.scene-reading .book-dock{display:none}
@media(max-width:600px){.book-dock{gap:11px;padding:7px 12px}.book-dock img{width:27px;height:36px}.book-dock button{flex-basis:27px}.webgl-ready .library-bottom{width:auto!important;bottom:max(8px,env(safe-area-inset-bottom))!important}.webgl-ready .shelf-navigation .round{width:38px!important;height:38px!important;min-width:38px;min-height:38px}}
@media(prefers-reduced-motion:reduce){.book-dock button{transition:none}}
/* Larger touch targets without enlarging the cover artwork. */
.book-dock{align-items:center;gap:4px;position:relative}.book-dock button{flex-basis:44px;min-height:54px;display:flex;flex-direction:column;align-items:center;justify-content:center}.book-dock .mini-progress{width:32px}.book-dock button[aria-current=true]{outline-offset:0}.book-dock button:focus-visible,.shelf-navigation button:focus-visible,#cover-open:focus-visible{outline:3px solid #dcb05f!important;outline-offset:4px}.book-dock button:active{transform:scale(.94)}
@media(max-width:600px){.book-dock button{flex-basis:44px;min-height:48px}.book-dock .mini-progress{width:27px}.webgl-ready .shelf-navigation .round{width:44px!important;height:44px!important;min-width:44px;min-height:44px}.webgl-ready .landing-card{padding:18px 22px!important}.webgl-ready .landing-card .primary{min-height:48px!important}.webgl-ready .landing-caption{max-width:calc(100vw - 135px);overflow:hidden;text-overflow:ellipsis}}
@media(max-height:520px) and (orientation:landscape){.webgl-ready .library-top{top:64px!important}.webgl-ready .library-bottom{flex-direction:row;bottom:6px!important}.book-dock{padding:4px 10px}.book-dock button{min-height:43px}.book-dock img{width:24px;height:30px}.book-dock .mini-progress{width:24px}.webgl-ready .landing-card{padding:10px 18px!important}.webgl-ready .landing-card .detail-notice{font-size:10px!important}.webgl-ready .landing-card .primary{min-height:42px!important}}
@media(max-height:520px) and (orientation:landscape){.webgl-ready .landing-card{left:70%!important;width:42vw!important;max-width:380px!important}.webgl-ready .landing-caption{font-size:11px!important}}

/* V14: light parchment controls and restrained depth. */
.webgl-ready .library-bottom,.webgl-ready.night .library-bottom{background:transparent!important;backdrop-filter:none;box-shadow:none}
.webgl-ready .tabs,.webgl-ready .filters,.webgl-ready .library-top>div{background:#f7ecd8ed!important;border:1px solid #d9c29b!important;box-shadow:0 3px 10px #67451d12!important;color:#70573d!important}
.webgl-ready .library-top button{color:#765c40!important;text-shadow:none!important}
.webgl-ready .library-top button.active,.webgl-ready .library-top button[aria-selected=true]{background:#fffbef!important;color:#59432e!important;box-shadow:0 2px 5px #74512418!important}
.webgl-ready .landing-card{background:#fff9eb!important;border:1px solid #dec7a0!important;box-shadow:0 10px 28px #46311c25!important}
.webgl-ready .landing-card::before{border-color:#e8d8bb!important}
.webgl-ready .landing-card .primary{background:linear-gradient(#bd855c,#ae724d)!important;box-shadow:0 3px 7px #79502a20!important}
.webgl-ready.night .book-dock{background:#eee0c8ee;border-color:#c5ac84}.webgl-ready.night .mini-progress i{background:#9b7539}

@media(min-height:521px){.webgl-ready .library-top{top:clamp(170px,18vh,195px)!important}.webgl-ready .tabs{padding:4px!important}.webgl-ready .tabs button{padding:8px 16px!important;font-size:14px!important}}

.webgl-ready .library-top{top:var(--filter-top,180px)!important}

/* V18: a small stitched fabric name tag, anchored above the object. */
.keepsake-label{position:fixed;z-index:12;pointer-events:none;max-width:min(240px,75vw);min-width:88px;padding:13px 21px 12px;text-align:center;box-sizing:border-box;background:linear-gradient(135deg,#fffaf0,#eee4ce);color:#514631;border:2px solid #e8d9ba;border-radius:22px;box-shadow:0 4px 0 #d6c3a0,0 9px 18px #3c2c2429;transform:translate(-50%,-90%);opacity:0;transition:opacity .18s,transform .22s;isolation:isolate}
.keepsake-label:before{content:"";position:absolute;inset:6px;border:1px dashed #9a9277;border-radius:16px;z-index:-1}.keepsake-label:after{content:"";position:absolute;inset:0;border-radius:inherit;background:repeating-linear-gradient(0deg,transparent 0 2px,#997e4d08 2px 3px),repeating-linear-gradient(90deg,transparent 0 2px,#997e4d08 2px 3px);z-index:-1}.keepsake-label strong{display:block;font:600 20px/1.4 Georgia,'Songti SC',serif;letter-spacing:.04em}.keepsake-label small{display:block;font:11px/1.5 system-ui;color:#8c8068;margin-top:2px}.keepsake-label.visible{opacity:1;transform:translate(-50%,-100%)}.scene-reading .keepsake-label,.is-reading .keepsake-label{display:none}
@media(prefers-reduced-motion:reduce){.keepsake-label{transition:none}}@media(max-width:600px){.keepsake-label{padding:11px 17px}.keepsake-label strong{font-size:18px}}

#dream-canvas[data-input="pointer"]:focus-visible{outline:none!important}

/* V19: readable title cards, distinct from the scene lighting. */
.webgl-ready .book-dock{max-width:min(850px,90vw);gap:12px;padding:8px;background:none;border:0;box-shadow:none;border-radius:0;align-items:stretch}
.webgl-ready .book-dock button{flex:0 0 220px;min-height:110px;gap:12px;padding:16px 20px;background:#fff8e9;border:2px solid #c6af89;border-radius:18px;opacity:.88;box-shadow:0 5px 0 #a78b6455,0 10px 20px #3020141a;color:#544130}
.webgl-ready .book-dock strong{font:700 22px/1.35 Georgia,'Songti SC',serif;white-space:normal;text-align:center;text-shadow:0 1px white}
.webgl-ready .book-dock small{font-size:12px;color:#847057}.webgl-ready .book-dock .mini-progress{width:100%;height:5px;margin:0;background:#e8dcc6}.webgl-ready .book-dock button[aria-current=true]{opacity:1;outline:2px solid #bb934e;outline-offset:2px;border-color:#ba914b;background:#fffaf0}.webgl-ready .book-dock button:hover{transform:translateY(-3px)}
@media(max-width:600px){.webgl-ready .book-dock{max-width:90vw;gap:10px}.webgl-ready .book-dock button{flex-basis:160px;min-height:90px;padding:12px;gap:8px}.webgl-ready .book-dock strong{font-size:18px}}
@media(max-height:520px){.webgl-ready .book-dock button{min-height:68px;flex-basis:160px;gap:4px;padding:8px}.webgl-ready .book-dock strong{font-size:16px}}

/* V20: quiet navigation and a paper story card. */
.library-top{display:none!important}
.webgl-ready .landing-card{background:radial-gradient(ellipse at top,#fffdf3,#f8efd9)!important;border:3px solid #333b52!important;outline:1px solid #cab384;outline-offset:-10px;border-radius:20px!important;box-shadow:0 12px 24px #33271935!important;padding:28px 34px!important}
.webgl-ready .landing-card h2{color:#3f5362;font-size:clamp(27px,4vw,42px);text-shadow:0 2px #fff;letter-spacing:1px}.webgl-ready .landing-card .eyebrow{color:#b0904e}.webgl-ready .landing-card .primary{background:#fff8e5!important;color:#394255!important;border:5px solid #c69d68!important;outline:1px solid #f3dfad;box-shadow:0 5px 10px #59432930!important;border-radius:40px!important}.return-shelf{display:block;margin:12px auto 0;padding:7px 20px;background:#fff7e7;color:#62523d;border:2px solid #c7a578;border-radius:24px;font:inherit;font-size:13px;cursor:pointer}
@media(max-width:600px){.webgl-ready .landing-card{padding:20px 24px!important}.webgl-ready .landing-card h2{font-size:27px}}
