:root{--jade:#294b35;--paper:#f8f1df;--gold:#b69657;--ink:#34362f}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{font-family:Georgia,"Times New Roman",serif;background:#071b12;color:var(--ink)}.library-room{position:fixed;inset:0;overflow:hidden;background:#071b12;isolation:isolate}.library-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;display:block;user-select:none;-webkit-user-drag:none;z-index:1}.library-room::after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:radial-gradient(circle at 52% 38%,rgba(255,244,210,.08),rgba(4,18,10,.06) 48%,rgba(4,18,10,.16) 100%)}.ambience{position:absolute;inset:0;z-index:5;pointer-events:none;overflow:hidden}.room-light{position:absolute;inset:0;background:radial-gradient(circle at 51% 31%,rgba(255,246,208,.10),transparent 42%);animation:roomBreathe 13s ease-in-out infinite}@keyframes roomBreathe{0%,100%{opacity:.24}50%{opacity:.46}}.window-glow{position:absolute;left:44%;top:14%;width:25%;height:40%;border-radius:50%;background:radial-gradient(circle,rgba(255,252,224,.15),rgba(255,244,192,.03) 54%,transparent 73%);mix-blend-mode:screen;animation:windowGlow 15s ease-in-out infinite}@keyframes windowGlow{0%,100%{opacity:.22;transform:scale(.99)}50%{opacity:.42;transform:scale(1.025)}}.lantern{position:absolute;border-radius:50%;background:radial-gradient(circle,rgba(255,205,101,.30),rgba(255,220,142,.08) 45%,transparent 72%);mix-blend-mode:screen;animation:lantern 5.7s ease-in-out infinite}@keyframes lantern{0%,100%{opacity:.30;transform:scale(.98)}30%{opacity:.54;transform:scale(1.025)}68%{opacity:.38;transform:scale(1)}}.l1{left:28.5%;top:4%;width:7%;height:14%}.l2{left:70%;top:4%;width:7%;height:14%;animation-delay:-1.8s}.l3{left:20%;top:52%;width:6.5%;height:13%;animation-delay:-3s}.l4{left:95%;top:62%;width:5%;height:12%;animation-delay:-.8s}.steam{position:absolute;left:26.7%;top:74.7%;width:14px;height:58px;border-left:2px solid rgba(255,252,230,.62);border-radius:50%;filter:blur(.5px);opacity:0;animation:steam 5.8s ease-in-out infinite}.s2{left:27.4%;top:74.0%;height:49px;animation-delay:-2s}.s3{left:28.2%;top:74.8%;height:62px;animation-delay:-3.7s}@keyframes steam{0%{opacity:0;transform:translate(0,16px) scale(.75)}22%{opacity:.52}70%{opacity:.16}100%{opacity:0;transform:translate(12px,-52px) scale(1.1)}}.cat-breathe{position:absolute;left:9.4%;top:80.3%;width:13.8%;height:8%;border-radius:50%;background:radial-gradient(ellipse,rgba(255,226,159,.12),transparent 72%);mix-blend-mode:screen;animation:catBreath 6.8s ease-in-out infinite}@keyframes catBreath{0%,100%{opacity:.06;transform:scale(.985)}50%{opacity:.17;transform:scale(1.025)}}.zzz{position:absolute;left:20.5%;top:74.4%;font-weight:700;color:rgba(65,83,58,.43);text-shadow:0 1px 5px rgba(255,255,255,.9);opacity:0;animation:zzz 10s ease-in-out infinite}.z2{left:21.4%;top:72.7%;font-size:17px;animation-delay:-1.1s}.z3{left:22.5%;top:70.9%;font-size:21px;animation-delay:-2.2s}@keyframes zzz{0%,64%,100%{opacity:0;transform:translate(0,8px) scale(.85)}73%{opacity:.52}92%{opacity:0;transform:translate(7px,-25px) scale(1.04)}}.dust{position:absolute;width:3px;height:3px;border-radius:50%;background:rgba(255,246,206,.72);opacity:0;animation:dust var(--t,19s) linear infinite;animation-delay:var(--d,0s)}.d1{left:20%;top:54%;--t:19s}.d2{left:35%;top:32%;--t:22s;--d:-5s}.d3{left:48%;top:46%;--t:18s;--d:-9s}.d4{left:58%;top:28%;--t:23s;--d:-13s}.d5{left:72%;top:51%;--t:21s;--d:-7s}.d6{left:84%;top:36%;--t:20s;--d:-16s}.d7{left:42%;top:70%;--t:24s;--d:-14s}.d8{left:76%;top:21%;--t:21s;--d:-6s}@keyframes dust{0%{opacity:0;transform:translate(0,30px)}14%{opacity:.34}68%{opacity:.15}100%{opacity:0;transform:translate(36px,-115px)}}.hit,.bottom-nav a{position:absolute;z-index:12;background:transparent;border:0;padding:0;cursor:pointer;text-decoration:none}.hit:after,.bottom-nav a:after{content:"";position:absolute;inset:4%;border-radius:12px;opacity:0;background:radial-gradient(ellipse,rgba(255,238,177,.26),rgba(255,238,177,.04) 58%,transparent 78%);box-shadow:0 0 26px rgba(196,161,84,.15);transition:opacity .35s ease;pointer-events:none}.hit:hover:after,.hit:focus-visible:after,.bottom-nav a:hover:after,.bottom-nav a:focus-visible:after{opacity:1}.hit:focus-visible,.bottom-nav a:focus-visible{outline:2px solid rgba(232,205,137,.8);outline-offset:2px}.return{left:5.6%;top:27.1%;width:12.6%;height:10.3%}.featured{left:42%;top:36.8%;width:16.8%;height:45.8%}.shelf.vietnam{left:76.2%;top:13.7%;width:8.2%;height:24.8%}.shelf.japan{left:86%;top:13.6%;width:8%;height:24.8%}.shelf.animals{left:76.2%;top:39.1%;width:8.2%;height:22.8%}.shelf.thailand{left:86%;top:39.2%;width:8%;height:22.8%}.action{left:83.2%;width:11%;height:4.95%}.action.preview{top:65.8%}.action.cover{top:70.8%}.action.walk{top:75.8%}.action.letters{top:80.7%}.action.buy{top:85.5%}.bottom-nav{position:absolute;left:4.2%;right:2%;bottom:1.1%;height:7.3%;z-index:13;display:grid;grid-template-columns:11.5fr 12.2fr 12.4fr 12.9fr 11.5fr 9.3fr 11.5fr 12.1fr;gap:.65%}.bottom-nav a{position:relative;inset:auto}.bottom-nav a[aria-current="page"]:after{opacity:.08}.return-veil{position:fixed;inset:0;z-index:300;display:grid;place-items:center;background:radial-gradient(circle,#fff4d5 0,#ead39e 48%,#526b53 100%);opacity:0;pointer-events:none;transition:opacity 1.15s ease}.return-veil.active{opacity:1}.return-veil span{background:rgba(255,250,235,.9);border:1px solid rgba(183,151,84,.4);border-radius:999px;padding:14px 24px;color:var(--jade);letter-spacing:.07em}.reader-modal,.cover-modal,.sneak-modal,.magnify-modal{position:fixed;inset:0;z-index:240;display:grid;place-items:center;padding:18px;background:rgba(35,42,31,.34);backdrop-filter:blur(4px) brightness(.84);opacity:0;pointer-events:none;transition:opacity .32s ease}.reader-modal.active,.cover-modal.active,.sneak-modal.active,.magnify-modal.active{opacity:1;pointer-events:auto}.reader-shell{position:relative;width:min(1120px,84vw);height:min(840px,82dvh);overflow:hidden;border-radius:28px;background:linear-gradient(180deg,#fbf6ea,#ecdcbc);border:1px solid rgba(181,148,82,.42);box-shadow:0 34px 100px rgba(38,35,24,.37),inset 0 0 0 1px rgba(255,255,255,.72)}.reader-shell:before{content:"";position:absolute;inset:10px;border:1px solid rgba(183,151,84,.27);border-radius:20px;pointer-events:none}.reader-head{height:104px;text-align:center;padding:16px 60px 3px;color:var(--jade)}.reader-head small{text-transform:uppercase;letter-spacing:.22em;font-size:9px;color:#927b50}.reader-head h1{font-weight:500;font-size:clamp(22px,2.3vw,32px);margin:2px 0;line-height:1.05}.reader-head p{font-size:12px;font-style:italic;color:#687161;margin:1px 0}.reader-rule{display:flex;justify-content:center;align-items:center;gap:12px;margin:3px auto}.reader-rule:before,.reader-rule:after{content:"";width:88px;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent)}.reader-rule span{color:var(--gold);font-size:12px}.reader-stage{position:absolute;left:64px;right:64px;top:114px;bottom:54px;overflow:hidden;overscroll-behavior:contain;padding:10px 8px 26px;scrollbar-width:thin;scrollbar-color:rgba(123,102,65,.35) transparent}.reader-stage::-webkit-scrollbar{width:8px}.reader-stage::-webkit-scrollbar-thumb{background:rgba(123,102,65,.28);border-radius:999px}.reader-pages{width:100%;min-height:100%;display:flex;align-items:flex-start;justify-content:center}.preview-sheet{flex:0 0 auto;width:min(680px,100%);background:#fffaf0;border:1px solid rgba(173,142,79,.34);border-radius:16px;overflow:hidden;box-shadow:0 20px 40px rgba(54,46,31,.14);cursor:zoom-in}.preview-sheet img{display:block;width:100%;height:auto;object-fit:contain}.reader-pages.double{gap:18px}.reader-pages.double .preview-sheet{width:min(470px,48%)}.reader-arrow,.reader-close,.modal-close,.magnify-close{position:absolute;display:grid;place-items:center;border:1px solid rgba(183,151,84,.38);background:rgba(249,241,220,.92);color:var(--jade);cursor:pointer;box-shadow:0 10px 20px rgba(39,31,20,.10)}.reader-close,.modal-close,.magnify-close{right:18px;top:16px;width:42px;height:42px;border-radius:50%;font-size:28px;line-height:1}.reader-arrow{top:50%;transform:translateY(-50%);width:44px;height:68px;border-radius:16px;font-size:40px}.reader-arrow.prev{left:14px}.reader-arrow.next{right:14px}.reader-arrow:disabled{opacity:.35;cursor:default}.reader-foot{position:absolute;left:70px;right:70px;bottom:14px;display:flex;align-items:center;justify-content:space-between;gap:14px;font-size:12px;color:#6b6658}.reader-foot span{color:var(--jade);font-weight:700}.cover-card,.sneak-card{width:min(980px,94vw);background:linear-gradient(180deg,#fbf6ea,#ecdcbc);border-radius:28px;border:1px solid rgba(181,148,82,.42);box-shadow:0 34px 100px rgba(38,35,24,.37);padding:28px;position:relative}.cover-card{max-width:780px;text-align:center}.cover-card h2{margin:4px 0 12px;color:var(--jade);font-weight:500}.cover-card small,.sneak-copy small{display:block;text-transform:uppercase;letter-spacing:.16em;color:#8d7753;font-size:10px}.cover-card img{width:min(480px,100%);border-radius:18px;box-shadow:0 20px 42px rgba(54,46,31,.16)}.sneak-card{display:grid;grid-template-columns:.9fr 1.1fr;gap:28px;align-items:center}.sneak-image-wrap{padding:12px;background:rgba(255,251,243,.82);border-radius:20px}.sneak-image{width:100%;border-radius:14px;box-shadow:0 18px 36px rgba(54,46,31,.16)}.sneak-copy h2{font-size:clamp(28px,3.6vw,42px);margin:6px 0 10px;color:var(--jade);font-weight:500}.sneak-copy p{line-height:1.7}.sneak-status{font-style:italic;color:#6f6a5c}.sneak-copy a{display:inline-flex;text-decoration:none;color:var(--jade);font-weight:700;padding:10px 14px;border-radius:999px;background:rgba(255,251,243,.84);border:1px solid rgba(181,148,82,.28)}.magnify-modal{background:rgba(16,20,13,.80)}.magnify-image{max-width:min(96vw,1380px);max-height:90dvh;border-radius:18px;box-shadow:0 28px 70px rgba(0,0,0,.35)}.magnify-close{position:fixed;right:18px;top:18px}@media(max-width:980px){.reader-shell{width:92vw;height:84dvh}.reader-stage{left:44px;right:44px}.sneak-card{grid-template-columns:1fr}.reader-foot{font-size:11px;left:44px;right:44px}}@media(max-width:700px){.library-art{object-fit:contain;background:#071b12}.reader-shell{width:95vw;height:86dvh;border-radius:18px}.reader-head{height:86px;padding:12px 44px 2px}.reader-head p{display:none}.reader-stage{left:32px;right:32px;top:92px;bottom:48px}.preview-sheet,.reader-pages.double .preview-sheet{width:100%}.reader-pages.double{gap:0}.reader-arrow{width:34px;height:58px;font-size:34px}.reader-arrow.prev{left:4px}.reader-arrow.next{right:4px}.reader-foot{left:34px;right:34px;bottom:10px;display:block;text-align:center}.cover-card,.sneak-card{padding:20px}.return{left:4.9%;top:27.1%;width:14%;height:10.3%}.featured{left:41%;top:37.1%;width:18%;height:45.5%}}

/* v4.3 ultra-fine Library polish */
.library-room{background:#ece4d2}.library-room::before{content:"";position:absolute;inset:-2%;z-index:0;background:url('library-room-art-approved.png') center/cover no-repeat;filter:blur(14px) saturate(.94) brightness(1.02);opacity:.36;transform:scale(1.025)}.library-art{z-index:1;image-rendering:auto}.hit:after,.bottom-nav a:after{transition:opacity .25s ease}.reader-modal{padding:24px;background:rgba(35,42,31,.31);backdrop-filter:blur(4px) brightness(.86)}.reader-shell{width:min(1040px,82vw);height:min(790px,80dvh);border-radius:24px}.reader-shell:before{inset:9px;border-radius:17px}.reader-head{height:96px;padding-top:13px}.reader-head h1{font-size:clamp(21px,2vw,29px)}.reader-stage{top:101px;left:58px;right:58px;bottom:48px;padding-top:6px}.preview-sheet{width:min(700px,100%);padding:0;border-radius:12px;appearance:none;-webkit-appearance:none}.preview-sheet img{image-rendering:auto}.reader-arrow{opacity:.78;transition:opacity .2s ease,transform .2s ease}.reader-arrow:hover{opacity:1}.reader-arrow.prev:hover{transform:translateY(-50%) translateX(-2px)}.reader-arrow.next:hover{transform:translateY(-50%) translateX(2px)}.reader-close,.modal-close,.magnify-close{transition:transform .2s ease,background .2s ease}.reader-close:hover,.modal-close:hover,.magnify-close:hover{transform:scale(1.04);background:#fff8e8}.reader-foot{bottom:11px}.cover-card,.sneak-card{border-radius:24px}.cover-card img,.sneak-image{image-rendering:auto}
@media(max-height:760px) and (min-width:760px){.reader-shell{height:76dvh;width:min(920px,80vw)}.reader-head{height:78px;padding-top:8px}.reader-head p{display:none}.reader-stage{top:80px;bottom:43px}.preview-sheet{width:min(650px,92%)}}
@media(max-width:700px){.library-room::before{opacity:.62}.library-art{object-fit:contain}.reader-modal{padding:10px}.reader-shell{width:94vw;height:84dvh}.reader-stage{top:88px}.reader-head{height:82px}.reader-foot small{display:none}}
@media(prefers-reduced-motion:reduce){.room-light,.window-glow,.lantern,.steam,.cat-breathe,.zzz,.dust{animation:none!important}.reader-modal,.cover-modal,.sneak-modal,.magnify-modal{transition:none!important}}

/* =========================================================
   v4.7 LOCKED JADE VALLEY BOOK PREVIEW
   No vertical scrolling. Physical spread + thumbnail rail.
   ========================================================= */
.preview-reader{position:fixed;inset:0;z-index:245;display:grid;place-items:center;padding:14px;background:rgba(21,35,24,.52);backdrop-filter:blur(7px) brightness(.77);opacity:0;pointer-events:none;transition:opacity .32s ease}
.preview-reader.active{opacity:1;pointer-events:auto}
.preview-desk{position:relative;width:min(1510px,96vw);height:min(900px,94dvh);overflow:hidden;display:grid;grid-template-rows:66px minmax(0,1fr) 112px 54px;border-radius:26px;background:linear-gradient(180deg,#fcf6e8 0%,#f2e4c6 100%);border:1px solid rgba(182,150,87,.55);box-shadow:0 38px 110px rgba(14,20,13,.44),inset 0 0 0 1px rgba(255,255,255,.7);isolation:isolate}
.preview-desk::before{content:"";position:absolute;inset:9px;z-index:0;border:1px solid rgba(182,150,87,.23);border-radius:19px;pointer-events:none}
.preview-desk::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(circle at 13% 8%,rgba(214,171,177,.11),transparent 23%),radial-gradient(circle at 88% 88%,rgba(101,137,94,.10),transparent 24%),linear-gradient(90deg,rgba(110,87,50,.02),transparent 12%,transparent 88%,rgba(110,87,50,.02))}
.preview-top{position:relative;z-index:3;display:flex;align-items:center;justify-content:center;text-align:center;padding:8px 70px;border-bottom:1px solid rgba(182,150,87,.22)}
.preview-top h2{margin:0;color:var(--jade);font-weight:500;font-size:clamp(25px,2.2vw,36px);letter-spacing:.08em;text-transform:uppercase;line-height:1}
.preview-top small{display:block;margin-top:4px;color:#7c6d50;font-size:11px;letter-spacing:.08em}
.preview-reader-close{position:absolute;right:17px;top:11px;z-index:8;width:43px;height:43px;border-radius:50%;border:1px solid rgba(182,150,87,.40);background:rgba(253,247,232,.92);color:var(--jade);font:500 28px/1 Georgia,serif;cursor:pointer;box-shadow:0 10px 22px rgba(39,31,20,.13);transition:transform .2s ease,background .2s ease}
.preview-reader-close:hover{transform:scale(1.05);background:#fffaf0}
.preview-main{position:relative;z-index:2;display:grid;grid-template-columns:240px minmax(0,1fr);gap:18px;min-height:0;padding:15px 22px 11px}
.preview-side{min-height:0;display:flex;flex-direction:column;align-items:stretch;justify-content:center;gap:12px;padding:0 4px}
.preview-side-title{text-align:center;color:#6c5a3c;text-transform:uppercase;letter-spacing:.13em;font-size:12px}
.preview-side-title::before,.preview-side-title::after{content:"  ❧  ";color:#78906a}
.preview-cover-card{position:relative;width:min(190px,100%);aspect-ratio:1870/2420;margin:0 auto;border-radius:5px;overflow:hidden;background:#fff9e8;border:1px solid rgba(143,112,61,.35);box-shadow:0 18px 34px rgba(49,39,23,.20),5px 6px 0 rgba(126,98,56,.08)}
.preview-cover-card img{display:block;width:100%;height:100%;object-fit:cover;image-rendering:auto}
.preview-side-actions{display:grid;gap:9px}
.preview-side-actions button{appearance:none;display:flex;align-items:center;justify-content:center;min-height:42px;padding:9px 12px;border-radius:10px;border:1px solid rgba(162,126,64,.39);background:linear-gradient(180deg,#fbf4df,#ead7ad);color:var(--jade);font:700 13px Georgia,serif;letter-spacing:.03em;cursor:pointer;box-shadow:0 8px 18px rgba(43,34,20,.09);transition:transform .18s ease,box-shadow .18s ease}
.preview-side-actions button.primary{background:linear-gradient(#496f50,#294b35);color:#fff4d5;border-color:rgba(230,203,137,.43)}
.preview-side-actions button:hover{transform:translateY(-1px);box-shadow:0 11px 22px rgba(43,34,20,.13)}
.preview-book-zone{position:relative;min-width:0;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) 34px;align-items:stretch}
.preview-book-stage{position:relative;min-height:0;display:flex;align-items:center;justify-content:center;padding:2px 58px 4px}
.preview-spread{position:relative;height:100%;max-height:100%;width:100%;display:flex;align-items:center;justify-content:center;gap:0;perspective:1800px;transition:opacity .16s ease,transform .2s ease}
.preview-spread.turn-next{opacity:.25;transform:translateX(-12px) scale(.992)}
.preview-spread.turn-prev{opacity:.25;transform:translateX(12px) scale(.992)}
.preview-page{position:relative;height:min(100%,600px);max-width:48%;aspect-ratio:1870/2420;appearance:none;border:1px solid rgba(137,106,57,.28);padding:0;overflow:hidden;background:#fffaf0;cursor:zoom-in;box-shadow:0 18px 36px rgba(43,34,20,.17);z-index:2}
.preview-page.left{border-radius:12px 2px 2px 12px;box-shadow:0 18px 34px rgba(43,34,20,.15),inset -18px 0 20px rgba(84,63,31,.07)}
.preview-page.right{border-radius:2px 12px 12px 2px;box-shadow:0 18px 34px rgba(43,34,20,.15),inset 18px 0 20px rgba(84,63,31,.07)}
.preview-page.single{border-radius:10px;max-width:52%}
.preview-page img{display:block;width:100%;height:100%;object-fit:contain;image-rendering:auto;background:#fffaf0}
.preview-gutter{width:17px;height:94%;margin:0 -3px;z-index:4;border-radius:50%;background:linear-gradient(90deg,rgba(85,61,27,.12),rgba(255,252,240,.82) 48%,rgba(85,61,27,.12));box-shadow:0 0 14px rgba(70,50,25,.10);pointer-events:none}
.preview-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:10;width:48px;height:64px;border-radius:50%;border:1px solid rgba(230,205,146,.45);background:linear-gradient(#496f50,#294b35);color:#fff2c8;font:500 43px/1 Georgia,serif;display:grid;place-items:center;cursor:pointer;box-shadow:0 12px 24px rgba(38,30,18,.20);transition:transform .18s ease,filter .18s ease,opacity .18s ease}
.preview-arrow.prev{left:3px}.preview-arrow.next{right:3px}.preview-arrow:hover:not(:disabled){filter:brightness(1.08)}.preview-arrow.prev:hover:not(:disabled){transform:translateY(-50%) translateX(-2px)}.preview-arrow.next:hover:not(:disabled){transform:translateY(-50%) translateX(2px)}.preview-arrow:disabled{opacity:.25;cursor:default}
.preview-count{display:flex;align-items:center;justify-content:center;color:#66583f;font-size:13px;letter-spacing:.05em}.preview-count::before,.preview-count::after{content:"❧";margin:0 10px;color:#78906a}
.preview-thumbs{position:relative;z-index:3;display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:9px;align-items:center;padding:8px 20px 7px;border-top:1px solid rgba(182,150,87,.22);border-bottom:1px solid rgba(182,150,87,.22);background:rgba(255,249,235,.54)}
.preview-thumb{position:relative;appearance:none;padding:3px 3px 18px;border:1px solid rgba(150,119,66,.27);border-radius:7px;background:rgba(255,250,240,.74);height:94px;cursor:pointer;box-shadow:0 5px 13px rgba(43,34,20,.07);transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}
.preview-thumb img{display:block;width:100%;height:100%;object-fit:contain;image-rendering:auto}.preview-thumb span{position:absolute;left:0;right:0;bottom:3px;text-align:center;font:700 10px Georgia,serif;color:#655841}.preview-thumb:hover{transform:translateY(-2px);box-shadow:0 8px 16px rgba(43,34,20,.11)}.preview-thumb.active{border-color:#607b58;box-shadow:0 0 0 2px rgba(83,118,79,.18),0 8px 16px rgba(43,34,20,.11);background:#fff9e8}.preview-thumb.active span{color:var(--jade)}
.preview-bottom{position:relative;z-index:3;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:6px 22px 7px}.preview-bottom .bottom-link{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:8px 17px;border-radius:10px;text-decoration:none;border:1px solid rgba(162,126,64,.38);font-weight:700;font-size:13px;letter-spacing:.03em;box-shadow:0 7px 16px rgba(43,34,20,.08)}.preview-bottom .bottom-link.return{justify-self:start;background:linear-gradient(#496f50,#294b35);color:#fff3d0}.preview-bottom .bottom-link.walk{justify-self:end;background:linear-gradient(#496f50,#294b35);color:#fff3d0}.preview-bottom .crest-medallion{width:46px;height:46px;border-radius:50%;object-fit:cover;border:1px solid rgba(152,119,65,.35);box-shadow:0 7px 16px rgba(43,34,20,.10)}
.preview-about{position:absolute;left:50%;top:50%;z-index:20;width:min(520px,82%);transform:translate(-50%,-50%) scale(.97);padding:26px 28px;border-radius:22px;background:linear-gradient(180deg,#fdf8ec,#efe0bf);border:1px solid rgba(182,150,87,.47);box-shadow:0 26px 70px rgba(25,24,16,.30);opacity:0;pointer-events:none;transition:opacity .2s ease,transform .2s ease}.preview-about.active{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}.preview-about h3{margin:0 0 8px;color:var(--jade);font-weight:500;font-size:32px}.preview-about p{margin:0 0 10px;font-size:16px;line-height:1.6;color:#4c473b}.preview-about-close{position:absolute;right:12px;top:10px;width:35px;height:35px;border-radius:50%;border:1px solid rgba(182,150,87,.36);background:#fff8e8;color:var(--jade);font-size:24px;cursor:pointer}

@media(max-height:790px) and (min-width:901px){
 .preview-desk{height:94dvh;grid-template-rows:58px minmax(0,1fr) 92px 48px}.preview-main{grid-template-columns:205px minmax(0,1fr);padding-top:10px;padding-bottom:8px}.preview-cover-card{width:154px}.preview-side{gap:8px}.preview-side-actions button{min-height:35px;font-size:12px}.preview-thumbs{gap:7px;padding-top:6px;padding-bottom:5px}.preview-thumb{height:76px;padding-bottom:15px}.preview-page{height:min(100%,520px)}.preview-bottom{padding-top:4px;padding-bottom:5px}.preview-bottom .crest-medallion{width:39px;height:39px}.preview-top h2{font-size:25px}}
@media(max-width:1100px){.preview-desk{width:98vw}.preview-main{grid-template-columns:185px minmax(0,1fr);gap:10px;padding-left:13px;padding-right:13px}.preview-cover-card{width:150px}.preview-book-stage{padding-left:48px;padding-right:48px}.preview-side-title{font-size:10px}.preview-page{max-width:49%}}
@media(max-width:820px){
 .preview-desk{width:98vw;height:96dvh;grid-template-rows:56px minmax(0,1fr) 82px 46px;border-radius:17px}.preview-main{display:block;padding:8px 10px}.preview-side{display:none}.preview-book-zone{height:100%}.preview-book-stage{padding:0 36px}.preview-spread{gap:0}.preview-page{max-width:50%;height:min(100%,560px)}.preview-page.single{max-width:78%}.preview-gutter{width:10px}.preview-arrow{width:36px;height:54px;font-size:34px}.preview-arrow.prev{left:0}.preview-arrow.next{right:0}.preview-thumbs{gap:5px;padding-left:9px;padding-right:9px}.preview-thumb{height:66px;padding:2px 2px 13px}.preview-thumb span{font-size:8px;bottom:1px}.preview-bottom{padding-left:10px;padding-right:10px}.preview-bottom .bottom-link{min-height:34px;padding:6px 11px;font-size:11px}.preview-bottom .crest-medallion{width:34px;height:34px}.preview-top h2{font-size:21px}.preview-top small{display:none}}
@media(max-width:560px){.preview-page.left,.preview-gutter{display:none}.preview-page.right,.preview-page.single{max-width:84%;border-radius:10px}.preview-thumbs{grid-template-columns:repeat(5,1fr);height:82px;overflow:hidden}.preview-thumb:nth-child(n+6){display:none}.preview-bottom .bottom-link.walk{display:none}.preview-bottom{grid-template-columns:1fr auto}.preview-bottom .crest-medallion{justify-self:end}.preview-top{padding-left:48px;padding-right:48px}.preview-top h2{font-size:18px}}
@media(prefers-reduced-motion:reduce){.preview-reader,.preview-spread,.preview-thumb,.preview-arrow,.preview-about{transition:none!important}}

/* =========================================================
   v4.8 GILDED READER — antique gold trim from approved concept
   ========================================================= */
.preview-reader{background:rgba(18,32,21,.58);backdrop-filter:blur(8px) brightness(.74)}
.preview-desk{
  border:2px solid rgba(144,101,40,.82);
  background:
    radial-gradient(circle at 14% 8%,rgba(220,176,182,.11),transparent 23%),
    radial-gradient(circle at 88% 88%,rgba(101,137,94,.09),transparent 24%),
    linear-gradient(180deg,#fdf8ed 0%,#f4e7ca 100%);
  box-shadow:
    0 38px 110px rgba(14,20,13,.46),
    inset 0 0 0 2px rgba(232,205,148,.82),
    inset 0 0 0 7px rgba(151,108,48,.09),
    inset 0 0 45px rgba(166,124,54,.06);
}
.preview-desk::before{inset:13px;border:1px solid rgba(157,114,48,.46);border-radius:16px;box-shadow:inset 0 0 0 3px rgba(230,203,146,.08)}
.preview-desk::after{z-index:0;background:
  linear-gradient(90deg,rgba(167,125,58,.035),transparent 11%,transparent 89%,rgba(167,125,58,.035)),
  radial-gradient(circle at 13% 7%,rgba(219,173,179,.10),transparent 22%),
  radial-gradient(circle at 90% 91%,rgba(108,138,99,.09),transparent 24%)}
.gilt-corner{position:absolute;z-index:7;width:50px;height:50px;display:grid;place-items:center;color:rgba(139,98,40,.82);font-size:33px;line-height:1;pointer-events:none;text-shadow:0 1px rgba(255,250,232,.8)}
.gilt-corner.tl{left:7px;top:5px;transform:rotate(-44deg)}
.gilt-corner.tr{right:7px;top:5px;transform:scaleX(-1) rotate(-44deg)}
.gilt-corner.bl{left:7px;bottom:5px;transform:scaleY(-1) rotate(-44deg)}
.gilt-corner.br{right:7px;bottom:5px;transform:scale(-1) rotate(-44deg)}
.preview-top{border-bottom:0;padding:7px 70px 5px}
.preview-top>div{position:relative;min-width:min(560px,54vw);padding:7px 30px 6px;border-radius:12px;background:linear-gradient(180deg,rgba(255,251,240,.92),rgba(243,230,201,.85));border:1px solid rgba(150,106,45,.60);box-shadow:inset 0 0 0 2px rgba(231,204,148,.22),0 6px 14px rgba(61,45,26,.08)}
.preview-top>div::before,.preview-top>div::after{position:absolute;top:50%;transform:translateY(-50%);color:rgba(142,102,46,.76);font-size:18px}.preview-top>div::before{content:"❦";left:11px}.preview-top>div::after{content:"❧";right:11px}
.preview-top h2{letter-spacing:.095em;color:#24452f;text-shadow:0 1px rgba(255,252,239,.85)}
.preview-top small{color:#806a43}
.preview-reader-close{border:2px solid rgba(144,101,40,.58);box-shadow:inset 0 0 0 2px rgba(230,203,146,.22),0 10px 22px rgba(39,31,20,.14);background:linear-gradient(#fffaf0,#eadbb9)}
.preview-side-title{color:#745a31}.preview-side-title::before,.preview-side-title::after{color:#9b7738}
.preview-cover-card{border:2px solid rgba(145,105,49,.52);box-shadow:0 18px 34px rgba(49,39,23,.20),inset 0 0 0 2px rgba(232,207,153,.18),5px 6px 0 rgba(126,98,56,.07)}
.preview-side-actions button{border:1px solid rgba(145,104,46,.62);box-shadow:inset 0 0 0 2px rgba(238,214,159,.18),0 8px 18px rgba(43,34,20,.09);background:linear-gradient(180deg,#fff9e9,#ead5a7)}
.preview-side-actions button.primary{background:linear-gradient(#4c7152,#294b35);border:1px solid rgba(232,205,141,.72);box-shadow:inset 0 0 0 2px rgba(169,126,56,.26),0 8px 18px rgba(43,34,20,.12)}
.preview-book-stage::before{content:"";position:absolute;left:45px;right:45px;top:5px;bottom:6px;border-radius:20px;border:1px solid rgba(161,119,54,.16);pointer-events:none;box-shadow:inset 0 0 28px rgba(156,113,50,.035)}
.preview-page{border-color:rgba(149,109,49,.36)}
.preview-gutter{background:linear-gradient(90deg,rgba(117,80,31,.15),rgba(255,252,240,.88) 48%,rgba(117,80,31,.15));box-shadow:0 0 12px rgba(99,68,27,.12)}
.preview-arrow{border:2px solid rgba(232,204,139,.66);box-shadow:inset 0 0 0 2px rgba(139,98,40,.42),0 12px 24px rgba(38,30,18,.22);background:linear-gradient(#506f52,#294b35)}
.preview-count{color:#6d5631}.preview-count::before,.preview-count::after{color:#9d7c3c}
.preview-thumbs{margin:0 14px;border:1px solid rgba(150,108,48,.40);border-radius:14px;background:linear-gradient(180deg,rgba(255,251,240,.72),rgba(239,223,190,.58));box-shadow:inset 0 0 0 2px rgba(232,204,147,.14);padding-left:16px;padding-right:16px}
.preview-thumb{border:1px solid rgba(150,109,48,.34);background:rgba(255,250,240,.85);box-shadow:inset 0 0 0 1px rgba(235,211,162,.08),0 5px 13px rgba(43,34,20,.07)}
.preview-thumb:hover{border-color:rgba(155,111,47,.58)}
.preview-thumb.active{border-color:rgba(143,100,40,.82);box-shadow:0 0 0 2px rgba(230,201,137,.46),0 0 0 4px rgba(74,111,80,.12),0 8px 16px rgba(43,34,20,.11);background:#fff9e8}
.preview-bottom{padding-left:28px;padding-right:28px}
.preview-bottom .bottom-link{border:1px solid rgba(144,102,45,.62);box-shadow:inset 0 0 0 2px rgba(232,205,146,.18),0 7px 16px rgba(43,34,20,.10)}
.preview-bottom .bottom-link.return,.preview-bottom .bottom-link.walk{border-color:rgba(231,203,139,.65);box-shadow:inset 0 0 0 2px rgba(139,98,40,.34),0 8px 18px rgba(43,34,20,.12)}
.preview-bottom .crest-medallion{border:2px solid rgba(149,107,48,.60);box-shadow:0 0 0 2px rgba(233,207,153,.38),0 7px 16px rgba(43,34,20,.12)}
.preview-about{border:2px solid rgba(145,103,45,.60);box-shadow:0 26px 70px rgba(25,24,16,.30),inset 0 0 0 2px rgba(231,204,149,.20),inset 0 0 0 7px rgba(153,111,49,.05)}
.preview-about::before{content:"❦";position:absolute;left:14px;top:12px;color:rgba(148,107,49,.64);font-size:18px}.preview-about::after{content:"❧";position:absolute;right:14px;bottom:12px;color:rgba(148,107,49,.64);font-size:18px}
@media(max-width:820px){.gilt-corner{font-size:24px;width:36px;height:36px}.preview-desk{border-width:1px}.preview-top>div{min-width:0;width:68vw;padding-left:20px;padding-right:20px}.preview-top>div::before,.preview-top>div::after{display:none}.preview-thumbs{margin-left:6px;margin-right:6px;padding-left:7px;padding-right:7px}}

/* =========================================================
   v4.9 STABILIZATION - shared art coordinates + safe reader
   ========================================================= */
html,body{width:100%;height:100%;overflow:hidden}.library-v49{background:#0b1e14}.library-room{position:fixed;inset:0;overflow:hidden;background:#10261a;isolation:isolate}.library-room::before{content:"";position:absolute;inset:-5%;z-index:-2;background:url('web/library-room-art.webp') center/cover no-repeat;filter:blur(18px) saturate(.86) brightness(.72);transform:scale(1.05)}.library-room::after{content:"";position:absolute;inset:0;z-index:-1;background:rgba(8,24,15,.13);pointer-events:none}.library-coordinate{position:absolute;left:50%;top:50%;width:max(100vw,calc(100dvh * 1.7768332));height:max(100dvh,calc(100vw / 1.7768332));transform:translate(-50%,-50%);overflow:hidden}.library-coordinate>picture{position:absolute;inset:0;display:block;width:100%;height:100%}.library-coordinate .library-art{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:fill!important;background:transparent!important}.library-coordinate .ambience{position:absolute;inset:0}.library-touch-menu{display:none}.library-status{position:absolute;z-index:15;display:grid;place-items:center;background:linear-gradient(180deg,rgba(247,231,190,.98),rgba(225,199,141,.98));border:1px solid rgba(107,79,36,.72);box-shadow:inset 0 0 0 1px rgba(255,247,219,.72);color:#294b35;font:700 clamp(6px,.7vw,12px)/1 Georgia,"Times New Roman",serif;text-transform:uppercase;letter-spacing:.04em;pointer-events:none}.library-status.preview-status{left:78.15%;top:33.94%;width:6.6%;height:3.15%;transform:rotate(-.25deg)}.library-status.release-status{left:82.52%;top:83.82%;width:10.45%;height:4.8%;font-size:clamp(6px,.66vw,11px);border-radius:2px}.hit.touch-glow::after{opacity:1}.preview-reader,.cover-modal,.sneak-modal,.magnify-modal{visibility:hidden}.preview-reader.active,.cover-modal.active,.sneak-modal.active,.magnify-modal.active{visibility:visible}.modal-open{overflow:hidden}.preview-cover-card img{width:100%;height:100%;object-fit:cover}.preview-thumb img{width:100%;height:100%;object-fit:cover}.preview-page{min-width:0!important}.preview-bottom .bottom-link.return{white-space:nowrap}.preview-bottom .bottom-link[data-no-transition]{cursor:pointer}.sneak-copy [data-sneak-link]{margin-top:4px}.preview-reader button,.cover-modal button,.sneak-modal button,.magnify-modal button{touch-action:manipulation}.preview-thumb{touch-action:manipulation}.preview-spread{min-width:0}.preview-book-stage{min-width:0}.preview-book-zone{min-width:0}.preview-main{min-width:0}
@media(max-width:800px){.library-room::before{opacity:.9;filter:blur(15px) saturate(.84) brightness(.72)}.library-coordinate{width:min(100vw,calc(100dvh * 1.7768332));height:min(100dvh,calc(100vw / 1.7768332))}.hit,.bottom-nav{display:none!important}.library-touch-menu{position:fixed;left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));z-index:70;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:10px;border-radius:19px;background:rgba(251,246,233,.91);border:1px solid rgba(182,150,87,.48);box-shadow:0 20px 54px rgba(7,22,13,.34);backdrop-filter:blur(9px)}.library-touch-menu a,.library-touch-menu button{display:flex;align-items:center;justify-content:center;min-height:44px;padding:9px 8px;border:1px solid rgba(152,116,58,.35);border-radius:12px;background:rgba(255,251,240,.9);color:#294b35;text-decoration:none;font:700 12px/1.2 Georgia,serif;text-align:center}.library-touch-menu .primary{background:linear-gradient(#4a704f,#294b35);color:#fff3d0;border-color:rgba(230,204,141,.55)}.library-status{font-size:clamp(3px,1.35vw,7px)}.library-status.release-status{font-size:clamp(3px,1.25vw,6px)}}
@media(max-width:720px){.preview-reader{padding:4px!important}.preview-desk{width:calc(100vw - 8px)!important;max-width:none!important;min-width:0!important;height:calc(100dvh - 8px)!important;max-height:none!important;grid-template-rows:48px minmax(0,1fr) 88px 46px!important;border-radius:14px!important}.preview-desk::before{inset:7px!important}.preview-main{display:block!important;min-width:0!important;min-height:0!important;padding:5px 5px 2px!important}.preview-side{display:none!important}.preview-book-zone{display:grid!important;width:100%!important;height:100%!important;min-width:0!important;min-height:0!important;grid-template-rows:minmax(0,1fr) 29px!important}.preview-book-stage{width:100%!important;min-width:0!important;min-height:0!important;padding:0 34px 1px!important}.preview-book-stage::before{left:31px!important;right:31px!important;top:2px!important;bottom:2px!important}.preview-spread{width:100%!important;min-width:0!important;height:100%!important;max-width:100%!important;gap:0!important}.preview-page,.preview-page.single,.preview-page.left,.preview-page.right{display:block!important;flex:0 1 auto!important;width:auto!important;min-width:0!important;max-width:calc(100vw - 86px)!important;height:min(100%,calc((100vw - 86px) * 1.29411765))!important;max-height:100%!important;aspect-ratio:1870/2420!important;border-radius:9px!important}.preview-gutter{display:none!important}.preview-arrow{width:30px!important;height:52px!important;font-size:31px!important}.preview-arrow.prev{left:0!important}.preview-arrow.next{right:0!important}.preview-count{height:29px!important;font-size:11px!important}.preview-thumbs{display:flex!important;height:88px!important;min-width:0!important;margin:0 5px!important;padding:5px 7px 4px!important;gap:6px!important;overflow-x:auto!important;overflow-y:hidden!important;scroll-snap-type:x proximity;overscroll-behavior-x:contain}.preview-thumb,.preview-thumb:nth-child(n){display:block!important;flex:0 0 48px!important;width:48px!important;height:75px!important;padding:2px 2px 14px!important;scroll-snap-align:center}.preview-thumb span{font-size:8px!important}.preview-bottom{min-width:0!important;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)!important;padding:4px 8px!important;gap:5px!important}.preview-bottom .bottom-link{min-width:0!important;min-height:32px!important;padding:5px 8px!important;font-size:10px!important;overflow:hidden;text-overflow:ellipsis}.preview-bottom .crest-medallion{width:32px!important;height:32px!important}.preview-top{padding:3px 48px!important}.preview-top>div{width:auto!important;min-width:0!important;padding:5px 12px!important}.preview-top h2{font-size:16px!important;white-space:nowrap}.preview-top small{display:none!important}.preview-reader-close{right:8px!important;top:5px!important;width:36px!important;height:36px!important;font-size:24px!important}.gilt-corner{display:none!important}.preview-about{width:calc(100% - 30px)!important;max-height:calc(100% - 32px)!important;overflow:auto!important;padding:22px 20px!important}.preview-about h3{font-size:26px!important}.preview-about p{font-size:14px!important}.cover-card,.sneak-card{width:calc(100vw - 20px)!important;max-height:calc(100dvh - 20px)!important;overflow:auto!important;padding:18px!important}.cover-card img{max-height:70dvh!important;width:auto!important;max-width:100%!important}.sneak-card{grid-template-columns:1fr!important;gap:13px!important}.sneak-image-wrap{max-width:250px;margin:auto}.magnify-image{max-width:calc(100vw - 12px)!important;max-height:calc(100dvh - 70px)!important;border-radius:10px!important}}
@media(max-width:560px){.preview-bottom .bottom-link.walk{display:none!important}.preview-bottom{grid-template-columns:minmax(0,1fr) auto!important}.preview-bottom .crest-medallion{justify-self:end!important}.preview-bottom .bottom-link.return{width:max-content!important;max-width:calc(100vw - 78px)!important;justify-self:start!important}}
@media(max-width:360px){.preview-book-stage{padding-left:31px!important;padding-right:31px!important}.preview-page,.preview-page.single,.preview-page.left,.preview-page.right{max-width:calc(100vw - 76px)!important;height:min(100%,calc((100vw - 76px) * 1.29411765))!important}.preview-thumb{flex-basis:44px!important;width:44px!important}}
@supports not (height:100dvh){.library-coordinate{width:max(100vw,calc(100vh * 1.7768332));height:max(100vh,calc(100vw / 1.7768332))}@media(max-width:800px){.library-coordinate{width:min(100vw,calc(100vh * 1.7768332));height:min(100vh,calc(100vw / 1.7768332))}.preview-desk{height:calc(100vh - 8px)!important}}}
/* v4.9 narrow-phone grid containment: prevent intrinsic footer/header width
   from widening the reader's single grid column beyond its canvas. */
@media(max-width:720px){.preview-desk{grid-template-columns:minmax(0,1fr)!important}.preview-top,.preview-main,.preview-thumbs,.preview-bottom{min-width:0!important;max-width:100%!important}.preview-main,.preview-bottom{width:auto!important}.preview-thumbs{width:auto!important}.preview-book-zone,.preview-book-stage{max-width:100%!important}}
