/* ================================================================
   Municipal Library — library.php
   3D books on wooden shelves + the "open the book" stage.
   ================================================================ */
.lb{--lb-paper:#F6F1E6;--lb-paper2:#EDE4D0;--lb-ink:#1D1A14;--lb-ink2:#4A4336;--lb-muted:#7A705F;
  --lb-forest:#003B34;--lb-gold:#5EC7B8;--lb-gold-d:#007A6B;--lb-ease:cubic-bezier(.22,1,.36,1);
  --lb-serif:'Montserrat', 'Inter', 'Cairo', sans-serif;--lb-sans:'Inter','Cairo','Segoe UI',sans-serif;
  background:var(--lb-paper);color:var(--lb-ink);font-family:var(--lb-sans)}
body.lang-ar .lb{--lb-serif:'Cairo',sans-serif;--lb-sans:'Cairo','Segoe UI',sans-serif}
.lb *,.lb *::before,.lb *::after{box-sizing:border-box}
.lb em{font-style:italic;color:var(--lb-gold)}
body.lang-ar .lb em{font-style:normal}
.lb button:focus-visible,.lb a:focus-visible,.lb input:focus-visible{outline:3px solid var(--lb-gold);outline-offset:3px}

/* ── Hero ─────────────────────────────────────────────────── */
.lb-hero{position:relative;overflow:hidden;color:#F3ECDD;padding:clamp(3.5rem,8vw,6rem) 0 clamp(4rem,9vw,7rem);
  background:
    radial-gradient(700px 420px at 78% 40%,rgba(94,199,184,.22),transparent 65%),
    repeating-linear-gradient(90deg,rgba(255,255,255,.018) 0 2px,transparent 2px 120px),
    linear-gradient(160deg,#00403A 0%,#002924 55%,#001E1A 100%)}
.lb-hero-light{position:absolute;inset:-30% 40% auto -10%;height:120%;background:radial-gradient(closest-side,rgba(255,214,140,.10),transparent);pointer-events:none}
.lb-hero-grid{position:relative;display:grid;grid-template-columns:1.15fr .85fr;gap:3rem;align-items:center}
.lb-eyebrow{display:inline-flex;align-items:center;gap:10px;padding:.4rem 1rem;border-radius:999px;border:1px solid rgba(94,199,184,.4);background:rgba(94,199,184,.1);
  color:var(--lb-gold);font-size:max(.75rem, var(--fs-min, 12px));font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.lb-h1{font-family:var(--lb-serif);font-weight:800;font-size:clamp(2.5rem,5.4vw, 4.6rem);line-height:1.02;letter-spacing:-.02em;margin:1.2rem 0 1.1rem;color:#F7F0E1}
body.lang-ar .lb-h1{line-height:1.3;letter-spacing:0}
.lb-lead{max-width:52ch;color:rgba(243,236,221,.72);font-size:1rem;line-height:1.75;margin:0 0 1.8rem}
.lb-search{display:flex;align-items:center;gap:12px;max-width:520px;padding:.35rem .5rem .35rem 1.1rem;border-radius:999px;background:rgba(255,255,255,.96);color:var(--lb-ink);
  box-shadow:0 20px 50px rgba(0,0,0,.35),0 0 0 1px rgba(94,199,184,.35);cursor:text}
.lb-search i{color:var(--lb-gold-d)}
.lb-search input{flex:1;min-width:0;border:0;background:none;outline:none;font:500 1rem/2.6 var(--lb-sans);color:var(--lb-ink)}
.lb-search input:focus-visible{outline:none}
.lb-search:focus-within{box-shadow:0 20px 50px rgba(0,0,0,.35),0 0 0 3px var(--lb-gold)}
.lb-search kbd{font:600 max(.75rem, var(--fs-min, 12px)) var(--lb-sans);padding:.3rem .6rem;border-radius:6px;background:var(--lb-paper2);color:var(--lb-muted);box-shadow:none}
.lb-stats{display:flex;flex-wrap:wrap;gap:1.6rem;margin-top:1.6rem;font-size:.875rem;color:rgba(243,236,221,.7)}
.lb-stats b{font-family:'Montserrat', 'Inter', 'Cairo', sans-serif;font-size:1.5rem;color:var(--lb-gold);margin-inline-end:4px}
.lb-feature{display:flex;flex-direction:column;align-items:center;text-align:center}
.lb-feature-tag{display:inline-flex;align-items:center;gap:8px;font-size:max(.75rem, var(--fs-min, 12px));font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--lb-gold);margin-bottom:1.4rem}
.lb-feature-stage{position:relative;padding:10px 0 40px}
.lb-feature-stage::after{content:"";position:absolute;left:50%;bottom:6px;width:220px;height:26px;transform:translateX(-50%);border-radius:50%;background:radial-gradient(closest-side,rgba(0,0,0,.55),transparent);filter:blur(4px)}
.lb-feature-cap{margin:0;font-family:var(--lb-serif);font-size:1.25rem;color:#F7F0E1}
.lb-feature-cap small{display:block;margin-top:.2rem;font-family:var(--lb-sans);font-size:.875rem;color:rgba(243,236,221,.6)}

/* ── Toolbar ──────────────────────────────────────────────── */
.lb-toolbar{position:sticky;top:68px;z-index:20;background:rgba(246,241,230,.92);backdrop-filter:blur(14px);border-bottom:1px solid rgba(29,26,20,.08)}
.lb-toolbar-in{display:flex;align-items:center;gap:1rem;padding-block:.8rem}
.lb-chips{flex:1;display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:2px}
.lb-chips::-webkit-scrollbar{display:none}
.lb-chip{--c:var(--lb-forest);flex:none;display:inline-flex;align-items:center;gap:8px;padding:.55rem 1rem;border-radius:999px;border:1px solid rgba(29,26,20,.12);background:#fff;
  font:600 .875rem/1 var(--lb-sans);color:var(--lb-ink2);cursor:pointer;transition:all .3s var(--lb-ease)}
.lb-chip i{color:var(--c);font-size:.8rem}
.lb-chip sup{font-size:max(.75rem, var(--fs-min, 12px));color:var(--lb-muted)}
.lb-chip:hover{border-color:var(--c);transform:translateY(-1px)}
.lb-chip.active{background:var(--c);border-color:var(--c);color:#fff;box-shadow:0 8px 18px color-mix(in srgb,var(--c) 35%,transparent)}
.lb-chip.active i,.lb-chip.active sup{color:rgba(255,255,255,.85)}
.lb-view{flex:none;display:flex;padding:4px;border-radius:999px;background:var(--lb-paper2)}
.lb-view-btn{width:38px;height:34px;border:0;border-radius:999px;background:none;color:var(--lb-muted);cursor:pointer}
.lb-view-btn.active{background:#fff;color:var(--lb-forest);box-shadow:0 2px 8px rgba(0,0,0,.08)}

.lb-body{padding-block:clamp(2.5rem,5vw,4rem) clamp(3rem,6vw,5rem)}

/* ── 3D book ──────────────────────────────────────────────── */
.lb-book{--w:132px;--hh:calc(var(--w) * 1.45 * var(--h,1));position:relative;flex:none;display:flex;flex-direction:column;align-items:center;gap:14px;
  width:var(--w);border:0;background:none;padding:0;cursor:pointer;perspective:1000px;scroll-snap-align:start;font:inherit;color:inherit}
.lb-3d{position:relative;display:block;width:var(--w);height:var(--hh);transform-style:preserve-3d;
  transform:rotateY(26deg);transition:transform .7s var(--lb-ease)}
.lb-face{position:absolute;top:0;display:block;height:100%}
.lb-front{inset:0;width:100%;transform:translateZ(calc(var(--t) / 2));border-radius:2px 5px 5px 2px;overflow:hidden;background:var(--c);
  box-shadow:inset 3px 0 6px rgba(0,0,0,.25)}
.lb-front img{width:100%;height:100%;object-fit:cover;display:block}
.lb-sheen{position:absolute;inset:0;background:linear-gradient(105deg,rgba(255,255,255,0) 30%,rgba(255,255,255,.28) 45%,rgba(255,255,255,0) 60%);
  transform:translateX(-120%);transition:transform 1s var(--lb-ease);pointer-events:none}
.lb-front::before{content:"";position:absolute;inset:0 auto 0 0;width:7px;z-index:2;background:linear-gradient(90deg,rgba(0,0,0,.35),rgba(255,255,255,.12) 60%,transparent)}
.lb-spine{left:calc(var(--t) / -2);width:var(--t);transform:rotateY(-90deg);background:color-mix(in srgb,var(--c) 78%,#000);
  display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.lb-spine span{writing-mode:vertical-rl;transform:rotate(180deg);font:700 max(.75rem, var(--fs-min, 12px))/1 var(--lb-serif);letter-spacing:.06em;color:rgba(255,236,190,.85);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-height:88%}
.lb-edge{right:calc(var(--t) / -2);width:var(--t);transform:rotateY(90deg);
  background:repeating-linear-gradient(90deg,#F4EEDF 0 1px,#E2D6BC 1px 2px);height:calc(100% - 6px);top:3px}
.lb-back{inset:0;width:100%;transform:rotateY(180deg) translateZ(calc(var(--t) / 2));background:color-mix(in srgb,var(--c) 85%,#000);border-radius:5px 2px 2px 5px}

/* Generated cover (no cover image) */
.lb-gen{position:absolute;inset:0;display:flex;padding:9px;
  background:
    radial-gradient(120% 80% at 30% 0%,rgba(255,255,255,.18),transparent 60%),
    repeating-linear-gradient(45deg,rgba(255,255,255,.035) 0 2px,transparent 2px 5px),
    var(--c)}
.lb-gen-frame{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;padding:14px 10px;text-align:center;
  border:1px solid rgba(255,226,160,.55);outline:1px solid rgba(255,226,160,.25);outline-offset:3px;color:#FBF3E0}
.lb-gen-frame i{font-size:1.05rem;color:#009383;opacity:.9}
.lb-gen-title{font:700 1rem/1.2 'Montserrat', 'Inter', 'Cairo', sans-serif;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.lb-gen[dir="rtl"] .lb-gen-title,.lb-gen[dir="rtl"] .lb-gen-author{font-family:'Cairo',sans-serif}
.lb-gen-rule{width:34px;height:1px;background:#009383;opacity:.7}
.lb-gen-author{font-size:max(.75rem, var(--fs-min, 12px));letter-spacing:.08em;text-transform:uppercase;opacity:.85}
.lb-gen[dir="rtl"] .lb-gen-author{text-transform:none;letter-spacing:0;font-size:max(.75rem, var(--fs-min, 12px))}

/* Hover / focus: pull the book off the shelf */
.lb-book:hover .lb-3d,.lb-book:focus-visible .lb-3d{transform:rotateY(4deg) translateY(-16px) translateZ(26px)}
.lb-book:hover .lb-sheen,.lb-book:focus-visible .lb-sheen{transform:translateX(120%)}
.lb-book:focus-visible{outline:none}
.lb-book:focus-visible .lb-front{outline:3px solid var(--lb-gold);outline-offset:3px}
.lb-book.is-lifted .lb-3d{visibility:hidden}

/* Name plate: hidden on shelves until hover, always shown in the grid */
.lb-label{display:flex;flex-direction:column;gap:3px;text-align:center;width:calc(var(--w) + 20px)}
.lb-label-t{font:700 .9375rem/1.25 var(--lb-serif);color:var(--lb-ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.lb-label-a{font-size:max(.75rem, var(--fs-min, 12px));color:var(--lb-muted)}
.lb-row .lb-label{position:absolute;top:calc(100% + 26px);opacity:0;transform:translateY(-6px);transition:opacity .35s,transform .35s var(--lb-ease);pointer-events:none;z-index:3;
  padding:.5rem .7rem;border-radius:10px;background:var(--lb-forest);box-shadow:0 10px 24px rgba(0,0,0,.25)}
.lb-row .lb-label-t{color:#F7F0E1;font-size:.8125rem}
.lb-row .lb-label-a{color:rgba(247,240,225,.65);font-size:max(.75rem, var(--fs-min, 12px))}
.lb-row .lb-book:hover .lb-label,.lb-row .lb-book:focus-visible .lb-label{opacity:1;transform:none}

/* Hero book: bigger, slowly turning */
.lb-book--hero{--w:210px;--h:1.02!important}
.lb-book--hero .lb-3d{transform:rotateY(-22deg) rotateX(4deg);animation:lbFloat 7s ease-in-out infinite}
.lb-book--hero:hover .lb-3d{animation-play-state:paused;transform:rotateY(0) translateZ(30px)}
.lb-book--hero .lb-label{display:none}
.lb-book--hero .lb-gen-title{font-size:1.5rem}
@keyframes lbFloat{0%,100%{transform:rotateY(-24deg) rotateX(4deg) translateY(0)}50%{transform:rotateY(-10deg) rotateX(2deg) translateY(-12px)}}

/* ── Shelves ──────────────────────────────────────────────── */
.lb-shelf{margin-bottom:clamp(2.6rem,5vw,4rem)}
.lb-shelf-head{display:flex;align-items:center;gap:12px;margin-bottom:.4rem}
.lb-shelf-icon{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--c);color:#fff;box-shadow:0 8px 18px color-mix(in srgb,var(--c) 35%,transparent)}
.lb-shelf-head h2{margin:0;font:700 clamp(1.35rem,2.4vw,1.8rem)/1.2 var(--lb-serif);color:var(--lb-ink)}
.lb-shelf-n{font-size:max(.75rem, var(--fs-min, 12px));font-weight:700;padding:.2rem .6rem;border-radius:999px;background:var(--lb-paper2);color:var(--lb-muted)}
.lb-shelf-all{margin-inline-start:auto;display:inline-flex;align-items:center;gap:8px;border:0;background:none;padding:.4rem 0;cursor:pointer;
  font:700 max(.75rem, var(--fs-min, 12px))/1 var(--lb-sans);letter-spacing:.1em;text-transform:uppercase;color:var(--c);transition:gap .3s var(--lb-ease)}
.lb-shelf-all:hover{gap:14px}
body.lang-ar .lb .fa-arrow-right{transform:scaleX(-1)}
.lb-shelf-frame{position:relative}
.lb-row{position:relative;z-index:1;display:flex;align-items:flex-end;gap:34px;overflow-x:auto;overflow-y:visible;scroll-snap-type:x proximity;
  padding:30px 30px 0;scrollbar-width:none}
/* Brass bookend after the last book — short shelves look deliberate, not empty */
.lb-row::after{content:"";flex:none;width:30px;height:118px;margin-inline-start:-8px;border-radius:4px 4px 2px 2px;
  background:linear-gradient(90deg,#8A6A2A,#8FD8CC 45%,#A47F33 70%,#6E5220);box-shadow:4px 6px 12px rgba(40,24,10,.3);
  clip-path:polygon(62% 0,100% 0,100% 100%,0 100%,0 90%,62% 90%)}
body.lang-ar .lb-row::after{transform:scaleX(-1)}
.lb-row::-webkit-scrollbar{display:none}
.lb-row .lb-book{padding-bottom:0}
.lb-plank{position:relative;height:22px;margin-top:-2px;border-radius:4px;
  background:linear-gradient(180deg,#9A6B3F 0%,#7A5230 40%,#5E3E22 100%);
  box-shadow:0 18px 26px -10px rgba(40,24,10,.55),inset 0 2px 0 rgba(255,255,255,.18)}
.lb-plank::before{content:"";position:absolute;inset:0;border-radius:inherit;opacity:.35;
  background:repeating-linear-gradient(90deg,rgba(0,0,0,.08) 0 3px,transparent 3px 40px),repeating-linear-gradient(90deg,rgba(255,255,255,.05) 0 1px,transparent 1px 13px)}
.lb-plank::after{content:"";position:absolute;inset:100% 1% auto;height:8px;background:linear-gradient(180deg,rgba(40,24,10,.35),transparent)}
.lb-scroll{position:absolute;top:50%;z-index:4;width:42px;height:42px;margin-top:-30px;border-radius:50%;border:1px solid rgba(29,26,20,.12);background:rgba(255,255,255,.92);
  color:var(--lb-ink2);cursor:pointer;box-shadow:0 8px 20px rgba(0,0,0,.12);opacity:0;transition:opacity .3s}
.lb-shelf-frame:hover .lb-scroll{opacity:1}
.lb-scroll-prev{inset-inline-start:-10px}.lb-scroll-next{inset-inline-end:-10px}
body.lang-ar .lb-scroll i{transform:scaleX(-1)}
.lb-scroll[hidden]{display:none}

/* ── Grid ─────────────────────────────────────────────────── */
.lb-count{font-size:.875rem;color:var(--lb-muted);margin:0 0 1.6rem}
.lb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:48px 24px;justify-items:center}
.lb-book--grid .lb-3d{transform:rotateY(18deg)}
.lb-book.lb-off{display:none}
.lb-book--grid.lb-in{animation:lbPop .6s var(--lb-ease) both;animation-delay:var(--d,0ms)}
@keyframes lbPop{from{opacity:0;transform:translateY(24px) scale(.95)}to{opacity:1;transform:none}}

.lb-empty{text-align:center;padding:3rem 1rem;color:var(--lb-muted)}
.lb-empty i{font-size:2.4rem;color:var(--lb-gold-d);margin-bottom:.8rem}
.lb-visit{display:flex;align-items:center;gap:1.4rem;flex-wrap:wrap;margin-top:2rem;padding:1.4rem 1.6rem;border-radius:20px;background:#fff;border:1px solid rgba(29,26,20,.08);box-shadow:0 14px 34px rgba(29,26,20,.06)}
.lb-visit > i{font-size:1.8rem;color:var(--lb-gold-d)}
.lb-visit div{flex:1;min-width:240px}
.lb-visit strong{font-family:var(--lb-serif);font-size:1.125rem}
.lb-visit p{margin:.3rem 0 0;color:var(--lb-ink2);font-size:.9375rem}
.lb-visit-btn{padding:.75rem 1.4rem;border-radius:999px;background:var(--lb-forest);color:#fff;font-weight:700;text-decoration:none;white-space:nowrap}
.lb-visit-btn:hover{color:#fff;background:#006B5E}

/* ── The open book ────────────────────────────────────────── */
.lb-stage{--W:340px;--H:490px;position:fixed;inset:0;z-index:6000;visibility:hidden;perspective:2400px}
.lb-stage.is-visible{visibility:visible}
.lb-backdrop{position:absolute;inset:0;opacity:0;transition:opacity .6s var(--lb-ease);backdrop-filter:blur(6px);
  background:radial-gradient(900px 600px at 50% 45%,rgba(40,30,15,.55),rgba(8,6,3,.9))}
.lb-stage.is-visible .lb-backdrop{opacity:1}
.lb-close{position:absolute;top:18px;inset-inline-end:20px;z-index:5;width:48px;height:48px;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.08);
  color:#fff;font-size:1.125rem;cursor:pointer;opacity:0;transition:opacity .4s,transform .35s var(--lb-ease),background .3s}
.lb-stage.is-open .lb-close{opacity:1}
.lb-close:hover{transform:rotate(90deg);background:rgba(94,199,184,.35)}
.lb-fly{position:absolute;left:50%;top:50%;width:var(--W);height:var(--H);margin:calc(var(--H) / -2) 0 0 calc(var(--W) / -2);
  transform-style:preserve-3d;transition:transform 1.1s var(--lb-ease)}
.lb-stage.is-open .lb-fly{transform:translateX(calc(var(--W) / 2))}
.lb-stage.book-rtl.is-open .lb-fly{transform:translateX(calc(var(--W) / -2))}
.lb-open{position:absolute;top:0;left:0;width:100%;height:100%;transform-style:preserve-3d}

/* Content page (under the cover) */
.lb-page{position:absolute;inset:0;border-radius:3px 10px 10px 3px;background:#FBF7EC;color:var(--lb-ink);overflow:hidden;
  background-image:linear-gradient(90deg,rgba(0,0,0,.12),rgba(0,0,0,0) 7%),radial-gradient(120% 90% at 100% 0%,rgba(255,255,255,.6),transparent 60%);
  box-shadow:1px 1px 0 #EDE4CF,2px 2px 0 #E2D7BD,3px 3px 0 #ECE3CE,4px 4px 0 #DCCFB3,6px 8px 24px rgba(0,0,0,.45)}
.book-rtl .lb-page{border-radius:10px 3px 3px 10px;background-image:linear-gradient(270deg,rgba(0,0,0,.12),rgba(0,0,0,0) 7%),radial-gradient(120% 90% at 0% 0%,rgba(255,255,255,.6),transparent 60%);
  box-shadow:-1px 1px 0 #EDE4CF,-2px 2px 0 #E2D7BD,-3px 3px 0 #ECE3CE,-4px 4px 0 #DCCFB3,-6px 8px 24px rgba(0,0,0,.45)}
.lb-page-scroll{height:100%;overflow-y:auto;padding:clamp(1.4rem,3.4vw,2.4rem) clamp(1.3rem,3vw,2.2rem);opacity:0;transition:opacity .6s var(--lb-ease)}
.lb-stage.is-open .lb-page-scroll{opacity:1;transition-delay:.75s}
.lb-page-cat{pointer-events:none;padding:.35rem .8rem;font-size:max(.75rem, var(--fs-min, 12px))}
.lb-page-title{font:800 clamp(1.5rem,2.6vw,2.1rem)/1.15 var(--lb-serif);margin:1rem 0 .4rem;color:var(--lb-ink)}
body.lang-ar .lb-page-title{line-height:1.4}
.lb-page-author{margin:0;font-style:italic;color:var(--lb-ink2)}
body.lang-ar .lb-page-author{font-style:normal}
.lb-page-rule{width:60px;height:2px;margin:1.1rem 0;background:linear-gradient(90deg,var(--lb-gold),transparent)}
.lb-page-desc{font-size:1rem;line-height:1.8;color:var(--lb-ink2)}
.lb-page-desc p{margin:0 0 .8rem}
.lb-page-desc p:first-child::first-letter{font:800 2.8em/.8 'Montserrat', 'Inter', 'Cairo', sans-serif;float:inline-start;margin-inline-end:.08em;margin-top:.08em;color:var(--lb-gold-d)}
body.lang-ar .lb-page-desc p:first-child::first-letter{font:inherit;float:none;margin:0;color:inherit}
.lb-page-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 1.4rem}
.lb-page-actions .lb-act-read{padding:.95rem 1.5rem;font-size:.9375rem}
.lb-noread{display:inline-flex;align-items:center;gap:8px;padding:.55rem .9rem;border-radius:999px;background:rgba(29,26,20,.06);color:var(--lb-muted);font-size:.8125rem;font-weight:600}

/* "Readable online" markers */
.lb-ribbon{position:absolute;top:-2px;right:12px;z-index:3;width:24px;height:36px;display:flex;align-items:flex-start;justify-content:center;padding-top:6px;
  background:linear-gradient(180deg,#009383,#5EC7B8);color:#3A2A08;font-size:max(.75rem, var(--fs-min, 12px));clip-path:polygon(0 0,100% 0,100% 100%,50% 78%,0 100%);
  box-shadow:0 2px 6px rgba(0,0,0,.3)}
.lb-book--hero .lb-ribbon{width:30px;height:46px;font-size:max(.75rem, var(--fs-min, 12px));right:18px}
.lb-label-read{display:inline-flex;align-items:center;justify-content:center;gap:6px;margin-top:5px;font-size:max(.75rem, var(--fs-min, 12px));font-weight:700;color:var(--lb-gold-d)}
.lb-row .lb-label-read{color:#009383}
.lb-chip-read{--c:#007A6B;border-color:rgba(94,199,184,.55);background:linear-gradient(135deg,#FFF9E6,#FFF)}
.lb-chip-read i{color:#007A6B}
.lb-stat-read{display:inline-flex;align-items:baseline;gap:4px;border:0;border-bottom:1px dashed rgba(94,199,184,.6);background:none;padding:0 0 2px;color:inherit;font:inherit;cursor:pointer;transition:color .25s}
.lb-stat-read i{font-size:.7rem;color:var(--lb-gold);transition:transform .3s var(--lb-ease)}
.lb-stat-read:hover{color:#fff}
.lb-stat-read:hover i{transform:translateX(3px)}
.lb-act{display:inline-flex;align-items:center;gap:9px;padding:.75rem 1.2rem;border-radius:999px;border:0;cursor:pointer;font:700 .875rem/1 var(--lb-sans);text-decoration:none;transition:transform .3s var(--lb-ease),box-shadow .3s}
.lb-act-read{background:linear-gradient(135deg,var(--lb-gold),#009383);color:#1D1A14;box-shadow:0 10px 22px rgba(94,199,184,.35)}
.lb-act-read:hover{transform:translateY(-2px);color:#1D1A14}
.lb-act-ghost{background:#fff;color:var(--lb-ink2);border:1px solid rgba(29,26,20,.14)}
.lb-act-ghost:hover{transform:translateY(-2px);color:var(--lb-ink)}
.lb-avail{display:inline-flex;align-items:center;gap:8px;font-size:.8125rem;font-weight:600;color:#006B5E;padding:.6rem 0}
.lb-avail.no{color:var(--lb-muted)}

/* Leaves that flutter after the cover */
.lb-leaf{position:absolute;inset:4px 6px 4px 0;border-radius:2px 8px 8px 2px;background:#F7F1E2;box-shadow:inset 8px 0 14px -10px rgba(0,0,0,.35);
  transform-origin:left center;transition:transform 1.05s var(--lb-ease),opacity .4s;backface-visibility:visible}
.book-rtl .lb-leaf{inset:4px 0 4px 6px;border-radius:8px 2px 2px 8px;transform-origin:right center}
.lb-stage.is-open .lb-leaf-1{transform:rotateY(-178deg);transition-delay:.16s,1.2s;opacity:0}
.lb-stage.is-open .lb-leaf-2{transform:rotateY(-176deg);transition-delay:.3s,1.3s;opacity:0}
.lb-stage.book-rtl.is-open .lb-leaf-1{transform:rotateY(178deg)}
.lb-stage.book-rtl.is-open .lb-leaf-2{transform:rotateY(176deg)}

/* Cover: front = the book's cover, back = inside cover (ex libris + details) */
.lb-cover3d{position:absolute;inset:0;transform-origin:left center;transform-style:preserve-3d;transition:transform 1.2s var(--lb-ease);z-index:3}
.book-rtl .lb-cover3d{transform-origin:right center}
.lb-stage.is-open .lb-cover3d{transform:rotateY(-180deg)}
.lb-stage.book-rtl.is-open .lb-cover3d{transform:rotateY(180deg)}
.lb-cover-front,.lb-cover-back{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden}
.lb-cover-front{border-radius:3px 10px 10px 3px;background:var(--c,#006B5E);box-shadow:0 30px 70px rgba(0,0,0,.55)}
.book-rtl .lb-cover-front{border-radius:10px 3px 3px 10px}
.lb-cover-front img{width:100%;height:100%;object-fit:cover;display:block}
.lb-cover-front::before{content:"";position:absolute;inset:0 auto 0 0;width:14px;z-index:2;background:linear-gradient(90deg,rgba(0,0,0,.4),rgba(255,255,255,.14) 55%,transparent)}
.book-rtl .lb-cover-front::before{inset:0 0 0 auto;background:linear-gradient(270deg,rgba(0,0,0,.4),rgba(255,255,255,.14) 55%,transparent)}
.lb-cover-front .lb-gen{padding:clamp(14px,3vw,22px)}
.lb-cover-front .lb-gen-frame{gap:16px;padding:28px 18px}
.lb-cover-front .lb-gen-frame i{font-size:1.8rem}
.lb-cover-front .lb-gen-title{font-size:clamp(1.5rem,3.4vw, 2.25rem);-webkit-line-clamp:5}
.lb-cover-front .lb-gen-author{font-size:.875rem}
.lb-cover-back{transform:rotateY(180deg);border-radius:10px 3px 3px 10px;padding:clamp(1.4rem,3vw,2.2rem);display:flex;flex-direction:column;gap:1.4rem;color:#3A3226;
  background:
    radial-gradient(circle at 20% 20%,rgba(255,255,255,.35),transparent 40%),
    repeating-linear-gradient(135deg,rgba(120,90,40,.06) 0 6px,transparent 6px 14px),
    #EFE4CB;
  box-shadow:inset -12px 0 20px -12px rgba(0,0,0,.35)}
.book-rtl .lb-cover-back{border-radius:3px 10px 10px 3px;box-shadow:inset 12px 0 20px -12px rgba(0,0,0,.35)}
.lb-exlibris{align-self:center;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;padding:1rem 1.2rem;border:2px double rgba(120,90,40,.45);border-radius:14px;max-width:88%;transform:rotate(-2deg)}
.lb-exlibris img{width:46px;height:46px;border-radius:50%;object-fit:cover;filter:sepia(.4)}
.lb-exlibris-t{font:italic 700 1.125rem 'Montserrat', 'Inter', 'Cairo', sans-serif;color:#7A5A20}
body.lang-ar .lb-exlibris-t{font-family:'Cairo',sans-serif;font-style:normal}
.lb-exlibris-n{font-size:max(.75rem, var(--fs-min, 12px));letter-spacing:.06em;text-transform:uppercase;color:#6A5A3E}
body.lang-ar .lb-exlibris-n{text-transform:none;letter-spacing:0;font-size:.8125rem}
.lb-meta{display:grid;grid-template-columns:auto 1fr;gap:.55rem 1rem;margin:0;font-size:.875rem;overflow:auto}
.lb-meta dt{font-size:max(.75rem, var(--fs-min, 12px));font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#8A7550;padding-top:.15rem}
body.lang-ar .lb-meta dt{letter-spacing:0;font-size:.8125rem}
.lb-meta dd{margin:0;color:#2E271C;font-weight:600}
.lb-meta-inline{display:none}

body.lb-lock{overflow:hidden}

/* ── Reading room (PDF.js) ────────────────────────────────── */
.rr{--pw:300px;--ph:420px;position:fixed;inset:0;z-index:6100;display:flex;flex-direction:column;color:#F3ECDD;
  background:radial-gradient(1100px 700px at 50% 45%,#3A2A18 0%,#20170D 55%,#120C06 100%);
  opacity:0;visibility:hidden;transition:opacity .45s var(--lb-ease),visibility 0s .45s}
.rr.open{opacity:1;visibility:visible;transition:opacity .45s var(--lb-ease),visibility 0s}
.rr::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background:repeating-linear-gradient(92deg,rgba(255,255,255,.012) 0 2px,transparent 2px 9px),repeating-linear-gradient(88deg,rgba(0,0,0,.05) 0 1px,transparent 1px 23px)}
.rr-bar{position:relative;z-index:2;display:flex;align-items:center;gap:14px;padding:.75rem clamp(.8rem,2.5vw,1.6rem);background:linear-gradient(180deg,rgba(0,0,0,.45),transparent)}
.rr-titles{flex:1;min-width:0;text-align:center}
.rr-titles strong{display:block;font:700 1rem/1.3 var(--lb-serif);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rr-titles small{display:block;font-size:max(.75rem, var(--fs-min, 12px));color:rgba(243,236,221,.6);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rr-tools{display:flex;gap:6px}
.rr-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:40px;padding:.5rem 1rem;border-radius:999px;border:1px solid rgba(243,236,221,.22);
  background:rgba(255,255,255,.05);color:#F3ECDD;font:600 .875rem/1 var(--lb-sans);cursor:pointer;text-decoration:none;transition:background .25s,border-color .25s}
.rr-btn:hover{background:rgba(94,199,184,.22);border-color:rgba(94,199,184,.6);color:#fff}
.rr-btn:focus-visible,.rr-nav:focus-visible,.rr input:focus-visible{outline:3px solid var(--lb-gold);outline-offset:2px}
.rr-icon{width:40px;padding:0}
.rr-gold{background:linear-gradient(135deg,var(--lb-gold),#009383);color:#1D1A14;border-color:transparent}
.rr-gold:hover{color:#1D1A14;background:linear-gradient(135deg,#8FD8CC,#B5E8E0)}
body.lang-ar .rr-back i{transform:scaleX(-1)}

.rr-stage{position:relative;flex:1;min-height:0;display:flex;align-items:center;justify-content:center;overflow:auto}
.rr-desk{position:relative;margin:auto;padding:20px;perspective:2600px}
.rr-book{position:relative;display:flex;filter:drop-shadow(0 30px 40px rgba(0,0,0,.55))}
.rr-page{position:relative;width:var(--pw);height:var(--ph);background:#FBF7EC;overflow:hidden;cursor:pointer}
.rr-page canvas{display:block;width:100%;height:100%}
.rr-left{border-radius:6px 0 0 6px}
.rr-right{border-radius:0 6px 6px 0}
.rr-left::after,.rr-right::after{content:"";position:absolute;top:0;bottom:0;width:14%;pointer-events:none}
.rr-left::after{right:0;background:linear-gradient(270deg,rgba(0,0,0,.22),rgba(0,0,0,.05) 40%,transparent)}
.rr-right::after{left:0;background:linear-gradient(90deg,rgba(0,0,0,.22),rgba(0,0,0,.05) 40%,transparent)}
.rr-page.is-blank{background:transparent;cursor:default}
.rr-page.is-blank canvas,.rr-page.is-blank::after{visibility:hidden}
.rr-book.single .rr-left{display:none}
.rr-book.single .rr-right{border-radius:6px}
.rr-book.single .rr-right::after{display:none}
/* page-stack edges */
.rr-book::before,.rr-book::after{content:"";position:absolute;top:3px;bottom:3px;width:6px;z-index:-1}
.rr-book::before{left:-5px;border-radius:4px 0 0 4px;background:repeating-linear-gradient(90deg,#E9E0CA 0 1px,#D3C6A8 1px 2px)}
.rr-book::after{right:-5px;border-radius:0 4px 4px 0;background:repeating-linear-gradient(90deg,#D3C6A8 0 1px,#E9E0CA 1px 2px)}

/* The turning leaf */
.rr-leaf{position:absolute;top:0;width:var(--pw);height:var(--ph);transform-style:preserve-3d;z-index:5;pointer-events:none}
.rr-leaf.from-right{left:var(--pw);transform-origin:left center}
.rr-leaf.from-left{left:0;transform-origin:right center}
.rr-book.single .rr-leaf.from-right{left:0}
.rr-leaf-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;background:#FBF7EC;overflow:hidden}
.rr-leaf-face canvas{display:block;width:100%;height:100%}
.rr-leaf-back{transform:rotateY(180deg)}
.rr-leaf-face::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;animation:rrShade var(--rr-dur,.85s) ease-in-out forwards}
.from-right .rr-leaf-front::after{background:linear-gradient(90deg,rgba(0,0,0,0),rgba(0,0,0,.28))}
.from-right .rr-leaf-back::after{background:linear-gradient(270deg,rgba(0,0,0,0),rgba(0,0,0,.28))}
.from-left .rr-leaf-front::after{background:linear-gradient(270deg,rgba(0,0,0,0),rgba(0,0,0,.28))}
.from-left .rr-leaf-back::after{background:linear-gradient(90deg,rgba(0,0,0,0),rgba(0,0,0,.28))}
@keyframes rrShade{0%{opacity:0}50%{opacity:1}100%{opacity:0}}
/* Shadow the turning leaf casts on the pages below it */
.rr-cast{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:0}
.rr-cast.cast-from-right{background:linear-gradient(90deg,rgba(0,0,0,.55),rgba(0,0,0,.12) 45%,transparent 80%)}
.rr-cast.cast-from-left{background:linear-gradient(270deg,rgba(0,0,0,.55),rgba(0,0,0,.12) 45%,transparent 80%)}
.rr-left .rr-cast.cast-from-right{background:linear-gradient(270deg,rgba(0,0,0,.5),transparent 70%)}
.rr-right .rr-cast.cast-from-left{background:linear-gradient(90deg,rgba(0,0,0,.5),transparent 70%)}
/* the turning page itself: a soft edge highlight so it reads as paper */
.rr-leaf-face{box-shadow:inset 0 0 0 1px rgba(0,0,0,.04)}
.rr-leaf.from-right .rr-leaf-front{box-shadow:inset -6px 0 12px -8px rgba(0,0,0,.25)}
.rr-leaf.from-left .rr-leaf-front{box-shadow:inset 6px 0 12px -8px rgba(0,0,0,.25)}

.rr-nav{position:absolute;top:50%;z-index:6;width:52px;height:52px;margin-top:-26px;border-radius:50%;border:1px solid rgba(243,236,221,.2);
  background:rgba(0,0,0,.35);color:#F3ECDD;font-size:1.125rem;cursor:pointer;transition:background .25s,transform .25s var(--lb-ease),opacity .25s}
.rr-nav:hover{background:rgba(94,199,184,.35);transform:scale(1.06)}
.rr-nav[disabled]{opacity:.2;cursor:default;transform:none}
.rr-nav-l{left:clamp(8px,2vw,24px)}.rr-nav-r{right:clamp(8px,2vw,24px)}

.rr-status{position:absolute;inset:0;z-index:7;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;color:rgba(243,236,221,.8);background:rgba(18,12,6,.55)}
.rr-status[hidden]{display:none}
.rr-error i{font-size:2.2rem;color:var(--lb-gold)}
.rr-spin{width:38px;height:38px;border-radius:50%;border:3px solid rgba(94,199,184,.25);border-top-color:var(--lb-gold);animation:rrSpin .9s linear infinite}
@keyframes rrSpin{to{transform:rotate(360deg)}}
.rr-resume{position:absolute;left:50%;bottom:18px;z-index:8;transform:translateX(-50%);display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:center;
  padding:.7rem .8rem .7rem 1.2rem;border-radius:999px;background:rgba(0,59,52,.94);box-shadow:0 14px 40px rgba(0,0,0,.45);border:1px solid rgba(94,199,184,.35);font-size:.875rem;animation:rrUp .5s var(--lb-ease)}
.rr-resume[hidden]{display:none}
.rr-resume i{color:var(--lb-gold)}
@keyframes rrUp{from{opacity:0;transform:translate(-50%,16px)}to{opacity:1;transform:translate(-50%,0)}}

.rr-foot{position:relative;z-index:2;display:flex;align-items:center;gap:16px;padding:.7rem clamp(1rem,4vw,3rem) 1rem;background:linear-gradient(0deg,rgba(0,0,0,.45),transparent)}
.rr-foot input[type=range]{flex:1;accent-color:var(--lb-gold);cursor:pointer}
body.lang-ar .rr-foot input[type=range]{direction:rtl}
.rr-label{flex:none;min-width:130px;text-align:end;font-size:.875rem;color:rgba(243,236,221,.75);font-variant-numeric:tabular-nums}
.rr:fullscreen .rr-bar{background:rgba(0,0,0,.35)}
@media (max-width:760px){
  .rr-titles{text-align:start}
  .rr-tools .rr-icon:not(#rrDownload){display:none}
  .rr-nav{width:42px;height:42px;margin-top:-21px;background:rgba(0,0,0,.5)}
  .rr-desk{padding:10px}
  .rr-label{min-width:0;font-size:max(.75rem, var(--fs-min, 12px))}
  .rr-foot{gap:10px;padding-inline:14px}
}
@media (prefers-reduced-motion:reduce){
  .rr-leaf-face::after{animation:none}
}

/* ── Responsive ───────────────────────────────────────────── */
@media (max-width:991px){
  .lb-hero-grid{grid-template-columns:1fr}
  .lb-feature{order:-1}
  .lb-book--hero{--w:170px}
}
@media (max-width:760px){
  .lb-toolbar{top:62px}
  .lb-book{--w:112px}
  .lb-row{gap:26px;padding-inline:18px}
  .lb-scroll{display:none}
  .lb-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:40px 14px}
  /* Phone: the book opens in place — the cover swings away and the page fills the frame */
  .lb-stage.is-open .lb-fly,.lb-stage.book-rtl.is-open .lb-fly{transform:none}
  .lb-stage.is-open .lb-cover3d{opacity:0;transition:transform 1.2s var(--lb-ease),opacity .4s 1s}
  .lb-meta-inline{display:grid;margin-bottom:1.2rem;padding:1rem;border-radius:12px;background:#F2EAD6}
}
@media (prefers-reduced-motion:reduce){
  .lb *,.lb *::before,.lb *::after{animation:none!important;transition-duration:.01ms!important;transition-delay:0s!important}
}
